diff --git a/.gitignore b/.gitignore
index 7026e200fd..fee6267cf6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,3 +11,9 @@ package-lock.json
composer.lock
/var
tsconfig.json
+.button-migration/*.log
+
+# Migration tool runtime state
+.button-migration/
+migrations/*/.migration-state/
+*.migration.log
diff --git a/composer.json b/composer.json
index 97beea181e..3385484998 100644
--- a/composer.json
+++ b/composer.json
@@ -27,6 +27,7 @@
"ibexa/content-forms": "~6.0.x-dev",
"ibexa/core": "~6.0.x-dev",
"ibexa/design-engine": "~6.0.x-dev",
+ "ibexa/design-system-twig": "~6.0.x-dev",
"ibexa/rest": "~6.0.x-dev",
"ibexa/search": "~6.0.x-dev",
"ibexa/twig-components": "~6.0.x-dev",
diff --git a/dependencies.json b/dependencies.json
new file mode 100644
index 0000000000..9923a337f2
--- /dev/null
+++ b/dependencies.json
@@ -0,0 +1,11 @@
+{
+ "recipesEndpoint": "",
+ "packages": [
+ {
+ "requirement": "dev-IBX-11332-link-c as 5.0.x-dev",
+ "repositoryUrl": "https://github.com/ibexa/design-system-twig",
+ "package": "ibexa/design-system-twig",
+ "shouldBeAddedAsVCS": false
+ }
+ ]
+}
\ No newline at end of file
diff --git a/features/standard/UserCreation.feature b/features/standard/UserCreation.feature
index 4bfe8d89d9..624e81c2e9 100644
--- a/features/standard/UserCreation.feature
+++ b/features/standard/UserCreation.feature
@@ -37,8 +37,8 @@ Feature: User management
| First name | testuseredited |
| Last name | lastnameedited |
And I set content fields for user
- | label | Username | Password | Confirm password | Email |
- | User account | testuser | Test123456 | Test123456 | test@test.org |
+ | label | Username | Password | Confirm password | Email | Enabled |
+ | User account | testuser | Test123456 | Test123456 | test@test.org | Yes |
And I perform the "Update" action
Then I should be on Content view Page for "Users/testuseredited lastnameedited"
And content attributes equal
diff --git a/src/bundle/Resources/encore/ibexa.css.config.js b/src/bundle/Resources/encore/ibexa.css.config.js
index 62dfba962e..7dfada06f7 100644
--- a/src/bundle/Resources/encore/ibexa.css.config.js
+++ b/src/bundle/Resources/encore/ibexa.css.config.js
@@ -5,6 +5,7 @@ module.exports = (Encore) => {
path.resolve(__dirname, '../public/scss/ibexa-bootstrap.scss'),
path.resolve(__dirname, '../public/scss/ibexa.scss'),
path.resolve(__dirname, '../public/scss/ui/ibexa-modules.scss'),
+ path.resolve(__dirname, '../public/scss/ibexa-ids-assets.scss'),
path.resolve('./vendor/ibexa/admin-ui-assets/src/bundle/Resources/public/vendors/flatpickr/dist/flatpickr.min.css'),
path.resolve(
'./vendor/ibexa/admin-ui-assets/src/bundle/Resources/public/vendors/flatpickr/dist/plugins/confirmDate/confirmDate.css',
@@ -18,6 +19,7 @@ module.exports = (Encore) => {
])
.addEntry('ibexa-admin-ui-security-base-css', [
path.resolve(__dirname, '../public/scss/ibexa-bootstrap.scss'),
+ path.resolve('./vendor/ibexa/admin-ui-assets/src/bundle/Resources/public/vendors/ids-assets/dist/css/styles.css'),
path.resolve(__dirname, '../public/scss/ibexa.scss'),
]);
};
diff --git a/src/bundle/Resources/encore/ibexa.js.config.js b/src/bundle/Resources/encore/ibexa.js.config.js
index 30b8296fd9..2e9b2cb849 100644
--- a/src/bundle/Resources/encore/ibexa.js.config.js
+++ b/src/bundle/Resources/encore/ibexa.js.config.js
@@ -49,6 +49,7 @@ const layout = [
path.resolve(__dirname, '../public/js/scripts/admin.focus.mode.js'),
path.resolve(__dirname, '../public/js/scripts/sidebar/main.menu.js'),
path.resolve(__dirname, '../public/js/scripts/admin.input.text.js'),
+ path.resolve('./vendor/ibexa/design-system-twig/src/bundle/Resources/public/ts/init_components.ts'),
path.resolve(__dirname, '../public/js/scripts/admin.table.js'),
path.resolve(__dirname, '../public/js/scripts/core/collapse.js'),
path.resolve(__dirname, '../public/js/scripts/admin.dropdown.js'),
@@ -247,9 +248,13 @@ module.exports = (Encore) => {
])
.addEntry('ibexa-admin-ui-login-js', [
path.resolve(__dirname, '../public/js/scripts/admin.input.text.js'),
+ path.resolve('./vendor/ibexa/design-system-twig/src/bundle/Resources/public/ts/init_components.ts'),
path.resolve(__dirname, '../public/js/scripts/login.js'),
])
- .addEntry('ibexa-admin-ui-reset-password-js', [path.resolve(__dirname, '../public/js/scripts/admin.input.text.js')])
+ .addEntry('ibexa-admin-ui-reset-password-js', [
+ path.resolve(__dirname, '../public/js/scripts/admin.input.text.js'),
+ path.resolve('./vendor/ibexa/design-system-twig/src/bundle/Resources/public/ts/init_components.ts'),
+ ])
.addEntry('ibexa-admin-ui-user-invitation-modal', [path.resolve(__dirname, '../public/js/scripts/user.invitation.modal.js')])
.addEntry('ibexa-admin-ui-tabs-js', [
path.resolve(__dirname, '../public/js/scripts/admin.location.tab.js'),
diff --git a/src/bundle/Resources/public/js/scripts/admin.contenttype.copy.js b/src/bundle/Resources/public/js/scripts/admin.contenttype.copy.js
index af8a99514c..42494971e4 100644
--- a/src/bundle/Resources/public/js/scripts/admin.contenttype.copy.js
+++ b/src/bundle/Resources/public/js/scripts/admin.contenttype.copy.js
@@ -1,5 +1,5 @@
(function (global, doc, ibexa, Routing) {
- const copyButtons = doc.querySelectorAll('.ibexa-btn--copy-content-type');
+ const copyButtons = doc.querySelectorAll('.ids-btn--copy-content-type');
const copyContentType = ({ currentTarget }) => {
const contentTypeCopyForm = doc.querySelector('form[name="content_type_copy"]');
const contentTypeIdentifierInput = contentTypeCopyForm.querySelector('#content_type_copy_content_type');
diff --git a/src/bundle/Resources/public/js/scripts/admin.contenttype.edit.js b/src/bundle/Resources/public/js/scripts/admin.contenttype.edit.js
index eb8935244d..0276a5dd97 100644
--- a/src/bundle/Resources/public/js/scripts/admin.contenttype.edit.js
+++ b/src/bundle/Resources/public/js/scripts/admin.contenttype.edit.js
@@ -381,7 +381,7 @@
const isMatrixColumnId = input.classList.contains('ibexa-input--matrix-column-identifier');
const isMatrixColumnIdInvalid = !isInputEmpty && isMatrixColumnId && !MATRIX_COLUMN_ID_PATTERN.test(input.value);
const field = input.closest('.form-group');
- const labelNode = field?.querySelector('.ibexa-label');
+ const labelNode = field?.querySelector('.ids-label');
const errorNode = field?.querySelector('.ibexa-form-error');
const isInvalid = isInputEmpty || isMatrixColumnIdInvalid;
diff --git a/src/bundle/Resources/public/js/scripts/admin.contenttype.relation.default.location.js b/src/bundle/Resources/public/js/scripts/admin.contenttype.relation.default.location.js
index 6525c48b14..fffb04627c 100644
--- a/src/bundle/Resources/public/js/scripts/admin.contenttype.relation.default.location.js
+++ b/src/bundle/Resources/public/js/scripts/admin.contenttype.relation.default.location.js
@@ -53,7 +53,7 @@ import * as middleEllipsisHelper from '@ibexa-admin-ui/src/bundle/Resources/publ
};
const resetStartingLocation = ({ currentTarget }) => {
const container = currentTarget.closest('.ibexa-default-location');
- const udwBtn = container.querySelector('.ibexa-btn--udw-relation-default-location');
+ const udwBtn = container.querySelector('.ids-btn--udw-relation-default-location');
const pathSelector = container.querySelector('.ibexa-default-location__path-selector');
const { relationRootInputSelector } = udwBtn.dataset;
@@ -62,7 +62,7 @@ import * as middleEllipsisHelper from '@ibexa-admin-ui/src/bundle/Resources/publ
pathSelector.classList.remove('ibexa-default-location__path-selector--filled');
};
const attachEvents = (container) => {
- const udwBtn = container.querySelector('.ibexa-btn--udw-relation-default-location');
+ const udwBtn = container.querySelector('.ids-btn--udw-relation-default-location');
const deleteBtn = container.querySelector(SELECTOR_RESET_STARTING_LOCATION_BTN);
const choices = container.querySelectorAll('input[type="radio"]');
@@ -71,12 +71,15 @@ import * as middleEllipsisHelper from '@ibexa-admin-ui/src/bundle/Resources/publ
choices.forEach((choice) => choice.addEventListener('change', toggleDisabledState.bind(null, container), false));
};
const toggleDisabledState = (container) => {
- const locationBtn = container.querySelector('.ibexa-btn--udw-relation-default-location');
+ const locationBtn = container.querySelector('.ids-btn--udw-relation-default-location');
const deleteBtn = container.querySelector(SELECTOR_RESET_STARTING_LOCATION_BTN);
const isDisabled = !container.querySelector('input[value="1"]').checked;
- locationBtn.classList.toggle('disabled', isDisabled);
- deleteBtn?.classList.toggle('disabled', isDisabled);
+ locationBtn.disabled = isDisabled;
+
+ if (deleteBtn) {
+ deleteBtn.disabled = isDisabled;
+ }
};
doc.body.addEventListener(
diff --git a/src/bundle/Resources/public/js/scripts/admin.context.menu.js b/src/bundle/Resources/public/js/scripts/admin.context.menu.js
index 1d3c82ee53..03b25f5d95 100644
--- a/src/bundle/Resources/public/js/scripts/admin.context.menu.js
+++ b/src/bundle/Resources/public/js/scripts/admin.context.menu.js
@@ -7,11 +7,13 @@
const menuButtons = [
...adaptedItemsContainer.querySelectorAll(
- '.ibexa-context-menu__item > .ibexa-btn:not(.ibexa-btn--more), .ibexa-context-menu__item > .ibexa-split-btn',
+ '.ibexa-context-menu__item > .ibexa-btn:not(.ibexa-btn--more), .ibexa-context-menu__item > .ids-btn:not(.ibexa-btn--more), .ibexa-context-menu__item > .ibexa-split-btn',
),
];
const popupMenuElement = adaptedItemsContainer.querySelector('.ibexa-context-menu__item--more .ibexa-multilevel-popup-menu');
const showPopupButton = adaptedItemsContainer.querySelector('.ibexa-btn--more');
+ const getButtonLabel = (button) => button.querySelector('.ids-btn__label, .ibexa-btn__label')?.textContent ?? '';
+ const getItemButton = (item) => item.querySelector('.ids-btn, .ibexa-btn');
if (!showPopupButton) {
return;
@@ -24,7 +26,7 @@
return adaptedItemsContainer.querySelector('.ibexa-context-menu__item');
},
onAdapted: (visibleItems, hiddenItems) => {
- const hiddenButtonsIds = [...hiddenItems].map((item) => item.querySelector('.ibexa-btn').id);
+ const hiddenButtonsIds = [...hiddenItems].map((item) => getItemButton(item)?.id).filter(Boolean);
const topBranchItems = multilevelPopupMenu.getBranchItems(topBranch);
topBranchItems.forEach((branchItem) => {
@@ -51,7 +53,7 @@
const mainBtn = menuButton.querySelector('.ibexa-split-btn__main-btn');
const splitBtn = menuButton.querySelector('.ibexa-split-btn__toggle-btn');
const relatedMainBtnId = mainBtn.id;
- const mainBtnLabel = mainBtn.querySelector('.ibexa-btn__label').textContent;
+ const mainBtnLabel = getButtonLabel(mainBtn);
const {
alternativeMainBtnLabel: mainBtnAlternativeLabel,
alternativeMainBtnSublabel: mainBtnAlternativeSublabel,
@@ -60,7 +62,7 @@
const subitemsBtns = [...splitBtn.branchElement.querySelectorAll('.ibexa-popup-menu__item-content')];
const subitems = subitemsBtns.map((subitemBtn) => {
- const subitemLabel = subitemBtn.querySelector('.ibexa-btn__label').textContent;
+ const subitemLabel = getButtonLabel(subitemBtn);
const relatedSubitemBtnId = subitemBtn.id;
return {
@@ -108,7 +110,7 @@
}
const relatedBtnId = menuButton.id;
- const label = menuButton.querySelector('.ibexa-btn__label').textContent;
+ const label = getButtonLabel(menuButton);
return {
label,
diff --git a/src/bundle/Resources/public/js/scripts/admin.limitation.pick.js b/src/bundle/Resources/public/js/scripts/admin.limitation.pick.js
index 0a89be4347..aaf413933d 100644
--- a/src/bundle/Resources/public/js/scripts/admin.limitation.pick.js
+++ b/src/bundle/Resources/public/js/scripts/admin.limitation.pick.js
@@ -176,7 +176,7 @@
udwRoot = ReactDOMClient.createRoot(udwContainer);
udwRoot.render(
React.createElement(ibexa.modules.UniversalDiscovery, {
- onConfirm: handleUdwConfirm.bind(this, event.target),
+ onConfirm: handleUdwConfirm.bind(this, event.currentTarget),
onCancel: closeUDW,
title,
multiple: true,
diff --git a/src/bundle/Resources/public/js/scripts/admin.location.add.custom_url.js b/src/bundle/Resources/public/js/scripts/admin.location.add.custom_url.js
index 8668cff04f..ba398b6ff5 100644
--- a/src/bundle/Resources/public/js/scripts/admin.location.add.custom_url.js
+++ b/src/bundle/Resources/public/js/scripts/admin.location.add.custom_url.js
@@ -4,15 +4,23 @@
if (modal) {
const discardBtns = modal.querySelectorAll('[data-bs-dismiss="modal"]');
const submitBtn = modal.querySelector('#custom_url_add_add');
- const input = modal.querySelector('[required="required"]');
+ const input = modal.querySelector('#custom_url_add_path') || modal.querySelector('[name="custom_url_add[path]"]');
const siteRootCheckbox = modal.querySelector('[name="custom_url_add[site_root]"]');
const toggleButtonState = () => {
+ if (!input || !submitBtn) {
+ return;
+ }
+
const hasValue = input.value.trim().length !== 0;
const methodName = hasValue ? 'removeAttribute' : 'setAttribute';
submitBtn[methodName]('disabled', true);
};
const clearValues = () => {
+ if (!input) {
+ return;
+ }
+
input.value = '';
toggleButtonState();
};
@@ -20,11 +28,21 @@
const isChecked = event.target.checked;
const siteAccessSelect = modal.querySelector('.ibexa-custom-url-from__item--siteacces .ibexa-dropdown');
+ if (!siteAccessSelect) {
+ return;
+ }
+
siteAccessSelect.classList.toggle('ibexa-dropdown--is-disabled', isChecked);
};
- input.addEventListener('input', toggleButtonState, false);
- siteRootCheckbox.addEventListener('change', toggleSiteAccessSelect, false);
+ if (input) {
+ input.addEventListener('input', toggleButtonState, false);
+ }
+
+ if (siteRootCheckbox) {
+ siteRootCheckbox.addEventListener('change', toggleSiteAccessSelect, false);
+ }
+
discardBtns.forEach((btn) => btn.addEventListener('click', clearValues, false));
}
})(window, window.document);
diff --git a/src/bundle/Resources/public/js/scripts/admin.location.add.translation.js b/src/bundle/Resources/public/js/scripts/admin.location.add.translation.js
index f63ae54c3e..ef9bff4e12 100644
--- a/src/bundle/Resources/public/js/scripts/admin.location.add.translation.js
+++ b/src/bundle/Resources/public/js/scripts/admin.location.add.translation.js
@@ -9,7 +9,7 @@
if (!modal) {
return;
}
- const buttonCreate = modal.querySelector('.ibexa-btn--create-translation');
+ const buttonCreate = modal.querySelector('.ids-btn--create-translation');
if (!buttonCreate) {
return;
}
diff --git a/src/bundle/Resources/public/js/scripts/admin.location.view.js b/src/bundle/Resources/public/js/scripts/admin.location.view.js
index 9690526b75..4a7dea5085 100644
--- a/src/bundle/Resources/public/js/scripts/admin.location.view.js
+++ b/src/bundle/Resources/public/js/scripts/admin.location.view.js
@@ -29,7 +29,7 @@ import { checkIsContainer } from './helpers/content.type.helper';
bootstrap.Modal.getOrCreateInstance(doc.querySelector('#version-draft-conflict-modal')).hide();
};
const attachModalListeners = (wrapper) => {
- const addDraftButton = wrapper.querySelector('.ibexa-btn--add-draft');
+ const addDraftButton = wrapper.querySelector('.ids-btn--add-draft');
const conflictModal = doc.querySelector('#version-draft-conflict-modal');
if (addDraftButton) {
@@ -37,7 +37,7 @@ import { checkIsContainer } from './helpers/content.type.helper';
}
wrapper
- .querySelectorAll('.ibexa-btn--prevented')
+ .querySelectorAll('.ids-btn--prevented')
.forEach((btn) => btn.addEventListener('click', (event) => event.preventDefault(), false));
if (conflictModal) {
diff --git a/src/bundle/Resources/public/js/scripts/admin.notifications.filters.js b/src/bundle/Resources/public/js/scripts/admin.notifications.filters.js
index 33fb21d9d9..71f31fc1f9 100644
--- a/src/bundle/Resources/public/js/scripts/admin.notifications.filters.js
+++ b/src/bundle/Resources/public/js/scripts/admin.notifications.filters.js
@@ -1,8 +1,9 @@
(function (global, doc) {
+ const SELECTOR_FILTER_CHECKBOX = '.ids-input--checkbox:not([name="dropdown-checkbox"])';
const searchForm = doc.querySelector('.ibexa-list-search-form');
const filtersContainerNode = doc.querySelector('.ibexa-list-filters');
- const applyFiltersBtn = filtersContainerNode.querySelector('.ibexa-btn--apply');
- const clearFiltersBtn = filtersContainerNode.querySelector('.ibexa-btn--clear');
+ const applyFiltersBtn = filtersContainerNode.querySelector('.ids-btn--apply');
+ const clearFiltersBtn = filtersContainerNode.querySelector('.ids-btn--clear');
const statusFilterNode = filtersContainerNode.querySelector('.ibexa-list-filters__item--statuses');
const typeFilterNode = filtersContainerNode.querySelector('.ibexa-list-filters__item--type');
const datetimeFilterNodes = filtersContainerNode.querySelectorAll('.ibexa-list-filters__item--date-time .ibexa-picker');
@@ -13,9 +14,7 @@
}
const sourceSelect = filterNode.querySelector('.ibexa-list-filters__item-content .ibexa-dropdown__source .ibexa-input--select');
- const checkboxes = filterNode.querySelectorAll(
- '.ibexa-list-filters__item-content .ibexa-input--checkbox:not([name="dropdown-checkbox"])',
- );
+ const checkboxes = filterNode.querySelectorAll(`.ibexa-list-filters__item-content ${SELECTOR_FILTER_CHECKBOX}`);
const timePicker = filterNode.querySelector('.ibexa-date-time-picker__input');
if (sourceSelect) {
@@ -45,9 +44,7 @@
return;
}
- const checkboxes = filterNode.querySelectorAll(
- '.ibexa-list-filters__item-content .ibexa-input--checkbox:not([name="dropdown-checkbox"])',
- );
+ const checkboxes = filterNode.querySelectorAll(`.ibexa-list-filters__item-content ${SELECTOR_FILTER_CHECKBOX}`);
checkboxes.forEach((checkbox) => {
checkbox.addEventListener('change', filterChange, false);
});
@@ -80,7 +77,7 @@
}
const select = filterNode.querySelector('.ibexa-dropdown__source .ibexa-input--select');
- const checkedCheckboxes = filterNode.querySelectorAll('.ibexa-input--checkbox:checked');
+ const checkedCheckboxes = filterNode.querySelectorAll(`${SELECTOR_FILTER_CHECKBOX}:checked`);
if (isNodeDatePicker(filterNode)) {
const timePicker = filterNode.querySelector('.ibexa-date-time-picker__input');
diff --git a/src/bundle/Resources/public/js/scripts/admin.notifications.list.js b/src/bundle/Resources/public/js/scripts/admin.notifications.list.js
index e17cdcb55a..10ab3a0dee 100644
--- a/src/bundle/Resources/public/js/scripts/admin.notifications.list.js
+++ b/src/bundle/Resources/public/js/scripts/admin.notifications.list.js
@@ -1,6 +1,7 @@
import { isFirefox } from '@ibexa-admin-ui/src/bundle/Resources/public/js/scripts/helpers/browser.helper.js';
(function (global, doc, ibexa, Translator, Routing) {
+ const SELECTOR_NOTIFICATION_CHECKBOX = '.ibexa-notification-list__mark-row-checkbox';
const SELECTOR_MODAL_ITEM = '.ibexa-notifications-modal__item';
const SELECTOR_GO_TO_NOTIFICATION = '.ibexa-notification-view-all__show';
const SELECTOR_TOGGLE_NOTIFICATION = '.ibexa-notification-view-all__mail';
@@ -10,7 +11,7 @@ import { isFirefox } from '@ibexa-admin-ui/src/bundle/Resources/public/js/script
const markAsReadBtn = doc.querySelector('.ibexa-notification-list__btn-mark-as-read');
const deleteBtn = doc.querySelector('.ibexa-notification-list__btn-delete');
const notificationsCheckboxes = [
- ...doc.querySelectorAll('.ibexa-notification-list .ibexa-table__cell--has-checkbox .ibexa-input--checkbox'),
+ ...doc.querySelectorAll(`.ibexa-notification-list .ibexa-table__cell--has-checkbox ${SELECTOR_NOTIFICATION_CHECKBOX}`),
];
const notificationsTable = doc.querySelector('.ibexa-table--notifications');
const uncheckCheckboxesEvent = new CustomEvent('ibexa-uncheck-checkboxes', {
diff --git a/src/bundle/Resources/public/js/scripts/admin.search.autocomplete.js b/src/bundle/Resources/public/js/scripts/admin.search.autocomplete.js
index 96adaa9c01..b2abddd3ce 100644
--- a/src/bundle/Resources/public/js/scripts/admin.search.autocomplete.js
+++ b/src/bundle/Resources/public/js/scripts/admin.search.autocomplete.js
@@ -10,7 +10,7 @@
}
const globalSearchInput = globalSearch.querySelector('.ibexa-global-search__input');
- const clearBtn = globalSearch.querySelector(' .ibexa-input-text-wrapper__action-btn--clear');
+ const clearBtn = globalSearch.querySelector('.ids-clear-btn, .ibexa-input-text-wrapper__action-btn--clear');
const autocompleteNode = globalSearch.querySelector('.ibexa-global-search__autocomplete');
const autocompleteListNode = globalSearch.querySelector('.ibexa-global-search__autocomplete-list');
const autocompleteResultsCountNumber = globalSearch.querySelector('.ibexa-global-search__autocomplete-total-count-number');
@@ -152,6 +152,6 @@
};
globalSearchInput.addEventListener('keyup', handleTyping, false);
- clearBtn.addEventListener('click', hideAutocomplete, false);
+ clearBtn?.addEventListener('click', hideAutocomplete, false);
doc.addEventListener('keydown', focusSearch, false);
})(window, document, window.ibexa, window.Routing, window.Translator);
diff --git a/src/bundle/Resources/public/js/scripts/admin.search.filters.js b/src/bundle/Resources/public/js/scripts/admin.search.filters.js
index 7f6b1dcc1c..f5a2e6783b 100644
--- a/src/bundle/Resources/public/js/scripts/admin.search.filters.js
+++ b/src/bundle/Resources/public/js/scripts/admin.search.filters.js
@@ -1,14 +1,16 @@
+import Chip from '@ibexa-design-system/src/bundle/Resources/public/ts/components/chip';
+
(function (global, doc, ibexa, flatpickr, React, ReactDOMClient) {
const { escapeHTML, escapeHTMLAttribute } = ibexa.helpers.text;
const { dangerouslySetInnerHTML } = ibexa.helpers.dom;
const { getInstance } = ibexa.helpers.objectInstances;
let getUsersTimeout;
- const SELECTOR_TAG = '.ibexa-tag';
+ const SELECTOR_TAG = '.ids-chip';
const token = doc.querySelector('meta[name="CSRF-Token"]').content;
const siteaccess = doc.querySelector('meta[name="SiteAccess"]').content;
const filters = doc.querySelector('.ibexa-filters');
- const clearBtn = filters.querySelector('.ibexa-btn--clear');
- const applyBtn = filters.querySelector('.ibexa-btn--apply');
+ const clearBtn = filters.querySelector('.ids-btn--clear');
+ const applyBtn = filters.querySelector('.ids-btn--apply');
const contentTypeSelect = doc.querySelector('.ibexa-filters__item--content-type .ibexa-filters__select');
const sectionSelect = doc.querySelector('.ibexa-filters__item--section .ibexa-filters__select');
const lastModifiedSelectNode = doc.querySelector('.ibexa-filters__item--modified .ibexa-filters__select');
@@ -35,7 +37,7 @@
const lastCreatedPeriod = doc.querySelector(lastCreatedPeriodSelector);
const lastCreatedStartDate = doc.querySelector(lastCreatedStartDateSelector);
const lastCreatedEndDate = doc.querySelector(lastCreatedEndDateSelector);
- const creatorInput = doc.querySelector('.ibexa-filters__item--creator .ibexa-input');
+ const creatorInput = doc.querySelector('.ibexa-filters__item--creator input:not([type="hidden"])');
const isInitializedCreatorInput = !!creatorInput.value;
const searchCreatorInput = doc.querySelector('#search_creator');
const usersList = doc.querySelector('.ibexa-filters__item--creator .ibexa-filters__user-list');
@@ -108,6 +110,7 @@
const methodName = isEnabled ? 'removeAttribute' : 'setAttribute';
applyBtn[methodName]('disabled', !isEnabled);
+ // ids-btn--disabled class no longer needed - native [disabled] attribute handles styling
};
const toggleDatesSelectVisibility = (event, select, dateRange) => {
const datesRangeNode = doc.querySelector(event.target.dataset.targetSelector);
@@ -234,7 +237,7 @@
form.submit();
};
const clearContentType = (event) => {
- const checkbox = doc.querySelector(event.currentTarget.dataset.targetSelector);
+ const checkbox = doc.querySelector(event.currentTarget.closest('.ids-chip').dataset.targetSelector);
checkbox.checked = false;
removeSearchTag(event);
@@ -265,6 +268,21 @@
'last-modified': (event) => clearDataRange(event, lastModifiedSelect, lastModifiedDateRange),
'last-created': (event) => clearDataRange(event, lastCreatedSelect, lastCreatedDateRange),
};
+ const initSearchTagChips = () => {
+ for (const tagType in clearSearchTagBtnMethods) {
+ const chips = doc.querySelectorAll(`.ibexa-search-criteria-tags__tag--${tagType}.ids-chip`);
+
+ chips.forEach((chip) => {
+ if (!chip.dataset.idsInitialized) {
+ const chipInstance = new Chip(chip);
+
+ chipInstance.init();
+ }
+
+ chip.addEventListener('ids:chip:delete:before', clearSearchTagBtnMethods[tagType], false);
+ });
+ }
+ };
const showMoreContentTypes = (event) => {
const btn = event.currentTarget;
const contentTypesList = btn
@@ -315,11 +333,7 @@
sectionSelect.addEventListener('change', toggleDisabledStateOnApplyBtn, false);
}
- for (const tagType in clearSearchTagBtnMethods) {
- const tagBtns = doc.querySelectorAll(`.ibexa-tag__remove-btn--${tagType}`);
-
- tagBtns.forEach((btn) => btn.addEventListener('click', clearSearchTagBtnMethods[tagType], false));
- }
+ initSearchTagChips();
lastModifiedPeriod.addEventListener('change', toggleDisabledStateOnApplyBtn, false);
lastModifiedStartDate.addEventListener('change', toggleDisabledStateOnApplyBtn, false);
diff --git a/src/bundle/Resources/public/js/scripts/admin.section.list.js b/src/bundle/Resources/public/js/scripts/admin.section.list.js
index e0b630d227..997177771e 100644
--- a/src/bundle/Resources/public/js/scripts/admin.section.list.js
+++ b/src/bundle/Resources/public/js/scripts/admin.section.list.js
@@ -1,5 +1,5 @@
(function (global, doc, ibexa, React, ReactDOMClient) {
- const btns = doc.querySelectorAll('.ibexa-btn--open-udw');
+ const btns = doc.querySelectorAll('.ids-btn--open-udw');
const udwContainer = doc.getElementById('react-udw');
let udwRoot = null;
const closeUDW = () => udwRoot.unmount();
diff --git a/src/bundle/Resources/public/js/scripts/admin.section.view.js b/src/bundle/Resources/public/js/scripts/admin.section.view.js
index 5754137b0a..2dd3d0f25a 100644
--- a/src/bundle/Resources/public/js/scripts/admin.section.view.js
+++ b/src/bundle/Resources/public/js/scripts/admin.section.view.js
@@ -1,5 +1,5 @@
(function (global, doc, ibexa, React, ReactDOMClient) {
- const btns = doc.querySelectorAll('.ibexa-btn--open-udw');
+ const btns = doc.querySelectorAll('.ids-btn--open-udw, .ids-btn--open-udw');
const udwContainer = doc.getElementById('react-udw');
let udwRoot = null;
const closeUDW = () => udwRoot.unmount();
diff --git a/src/bundle/Resources/public/js/scripts/admin.table.js b/src/bundle/Resources/public/js/scripts/admin.table.js
index cd95832999..325c822c9c 100644
--- a/src/bundle/Resources/public/js/scripts/admin.table.js
+++ b/src/bundle/Resources/public/js/scripts/admin.table.js
@@ -1,4 +1,5 @@
(function (global, doc) {
+ const SELECTOR_TABLE_CHECKBOX = '.ids-input--checkbox';
const ibexaTables = doc.querySelectorAll('.ibexa-table');
const setMainCheckboxState = (mainCheckbox, subCheckboxes, event) => {
const isFromJS = event?.detail?.isFromJS ?? false;
@@ -61,9 +62,9 @@
}
const mainCheckboxIndex = [...headCells].indexOf(headCellWithCheckbox);
- const mainCheckbox = headCellWithCheckbox.querySelector('.ibexa-input--checkbox');
+ const mainCheckbox = headCellWithCheckbox.querySelector(SELECTOR_TABLE_CHECKBOX);
const subCheckboxes = tableBody.querySelectorAll(
- `.ibexa-table__cell--has-checkbox:nth-child(${mainCheckboxIndex + 1}) .ibexa-input--checkbox`,
+ `.ibexa-table__cell--has-checkbox:nth-child(${mainCheckboxIndex + 1}) ${SELECTOR_TABLE_CHECKBOX}`,
);
if (!mainCheckbox) {
@@ -138,7 +139,7 @@
const uncheckCheckboxes = (table) => {
const mainCheckbox = table.querySelector('.ibexa-table__header-cell-checkbox');
- const subCheckboxes = [...table.querySelectorAll('.ibexa-table__cell--has-checkbox .ibexa-input--checkbox')];
+ const subCheckboxes = [...table.querySelectorAll(`.ibexa-table__cell--has-checkbox ${SELECTOR_TABLE_CHECKBOX}`)];
mainCheckbox.checked = false;
mainCheckbox.indeterminate = false;
diff --git a/src/bundle/Resources/public/js/scripts/admin.trash.js b/src/bundle/Resources/public/js/scripts/admin.trash.js
index 9c6ac384f3..bcd7dfc9f0 100644
--- a/src/bundle/Resources/public/js/scripts/admin.trash.js
+++ b/src/bundle/Resources/public/js/scripts/admin.trash.js
@@ -16,7 +16,7 @@
const { numberOfSubitems } = event.detail;
const sendToTrashModal = document.querySelector('.ibexa-modal--trash-location');
const modalBody = sendToTrashModal.querySelector('.modal-body');
- const modalSendToTrashButton = sendToTrashModal.querySelector('.modal-footer .ibexa-btn--confirm-send-to-trash');
+ const modalSendToTrashButton = sendToTrashModal.querySelector('.modal-footer .ids-btn--confirm-send-to-trash');
const { contentName } = sendToTrashModal.dataset;
if (numberOfSubitems) {
diff --git a/src/bundle/Resources/public/js/scripts/admin.trash.list.js b/src/bundle/Resources/public/js/scripts/admin.trash.list.js
index c65abaa918..ae57b4b0a3 100644
--- a/src/bundle/Resources/public/js/scripts/admin.trash.list.js
+++ b/src/bundle/Resources/public/js/scripts/admin.trash.list.js
@@ -17,10 +17,10 @@
const sortDirection = doc.querySelector('#trash_search_sort_direction');
const creatorInput = doc.querySelector('.ibexa-trash-search-form__item--creator .ibexa-trash-search-form__input');
const usersList = doc.querySelector('.ibexa-trash-search-form__item--creator .ibexa-trash-search-form__user-list');
- const resetCreatorBtn = doc.querySelector('.ibexa-btn--reset-creator');
+ const resetCreatorBtn = doc.querySelector('.ids-btn--reset-creator');
const searchCreatorInput = doc.querySelector('#trash_search_creator');
const sortableColumns = doc.querySelectorAll('.ibexa-table__sort-column');
- const btns = doc.querySelectorAll('.ibexa-btn--open-udw');
+ const btns = doc.querySelectorAll('.ids-btn--open-udw, .ids-btn--open-udw');
const udwContainer = doc.getElementById('react-udw');
const autoSendNodes = doc.querySelectorAll('.ibexa-trash-search-form__item--auto-send');
const errorMessage = Translator.trans(/* @Desc("Cannot fetch user list") */ 'trash.user_list.error', {}, 'ibexa_trash_ui');
diff --git a/src/bundle/Resources/public/js/scripts/admin.url.wildcards.create.js b/src/bundle/Resources/public/js/scripts/admin.url.wildcards.create.js
index a957dc5937..b748ff9edb 100644
--- a/src/bundle/Resources/public/js/scripts/admin.url.wildcards.create.js
+++ b/src/bundle/Resources/public/js/scripts/admin.url.wildcards.create.js
@@ -7,8 +7,12 @@
const discardBtns = modal.querySelectorAll('[data-bs-dismiss="modal"]');
const submitBtn = modal.querySelector('[type="submit"]');
- const inputs = [...modal.querySelectorAll('[required="required"]')];
+ const inputs = [...modal.querySelectorAll('[required], [required="required"]')];
const toggleButtonState = () => {
+ if (!submitBtn || inputs.length === 0) {
+ return;
+ }
+
const isInvalid = inputs.some((input) => input.value.trim().length === 0);
const methodName = isInvalid ? 'setAttribute' : 'removeAttribute';
diff --git a/src/bundle/Resources/public/js/scripts/admin.version.edit.conflict.js b/src/bundle/Resources/public/js/scripts/admin.version.edit.conflict.js
index da4114023c..e28b703ad6 100644
--- a/src/bundle/Resources/public/js/scripts/admin.version.edit.conflict.js
+++ b/src/bundle/Resources/public/js/scripts/admin.version.edit.conflict.js
@@ -41,5 +41,5 @@
.catch(showErrorNotification);
};
- doc.querySelectorAll('.ibexa-btn--content-draft-edit').forEach((button) => button.addEventListener('click', editVersion, false));
+ doc.querySelectorAll('.ids-btn--content-draft-edit').forEach((button) => button.addEventListener('click', editVersion, false));
})(window, window.document, window.bootstrap, window.ibexa, window.Translator, window.Routing);
diff --git a/src/bundle/Resources/public/js/scripts/button.content.edit.js b/src/bundle/Resources/public/js/scripts/button.content.edit.js
index e16ad17bdd..d286f6417b 100644
--- a/src/bundle/Resources/public/js/scripts/button.content.edit.js
+++ b/src/bundle/Resources/public/js/scripts/button.content.edit.js
@@ -35,14 +35,14 @@
wrapper.innerHTML = modalHtml;
const conflictModal = doc.querySelector('#version-draft-conflict-modal');
- const addDraftButton = wrapper.querySelector('.ibexa-btn--add-draft');
+ const addDraftButton = wrapper.querySelector('.ids-btn--add-draft');
if (addDraftButton) {
addDraftButton.addEventListener('click', addDraft, false);
}
wrapper
- .querySelectorAll('.ibexa-btn--prevented')
+ .querySelectorAll('.ids-btn--prevented')
.forEach((btn) => btn.addEventListener('click', (wrapperBtnEvent) => wrapperBtnEvent.preventDefault(), false));
bootstrap.Modal.getOrCreateInstance(conflictModal).show();
@@ -80,5 +80,5 @@
.catch(showErrorNotification);
};
- doc.querySelectorAll('.ibexa-btn--content-edit').forEach((button) => button.addEventListener('click', editVersion, false));
+ doc.querySelectorAll('.ids-btn--content-edit').forEach((button) => button.addEventListener('click', editVersion, false));
})(window, window.document, window.bootstrap, window.ibexa, window.Translator, window.Routing);
diff --git a/src/bundle/Resources/public/js/scripts/button.prevent.default.js b/src/bundle/Resources/public/js/scripts/button.prevent.default.js
index 0e9039e75a..7bf575388d 100644
--- a/src/bundle/Resources/public/js/scripts/button.prevent.default.js
+++ b/src/bundle/Resources/public/js/scripts/button.prevent.default.js
@@ -1,3 +1,3 @@
(function (global, doc) {
- doc.querySelectorAll('.ibexa-btn--prevented').forEach((btn) => btn.addEventListener('click', (event) => event.preventDefault(), false));
+ doc.querySelectorAll('.ids-btn--prevented').forEach((btn) => btn.addEventListener('click', (event) => event.preventDefault(), false));
})(window, window.document);
diff --git a/src/bundle/Resources/public/js/scripts/button.state.toggle.js b/src/bundle/Resources/public/js/scripts/button.state.toggle.js
index a06a27b90f..e17acd6ac0 100644
--- a/src/bundle/Resources/public/js/scripts/button.state.toggle.js
+++ b/src/bundle/Resources/public/js/scripts/button.state.toggle.js
@@ -1,8 +1,9 @@
(function (global, doc) {
+ const SELECTOR_TABLE_CHECKBOX = '.ids-input--checkbox';
const toggleForms = doc.querySelectorAll('.ibexa-toggle-btn-state');
toggleForms.forEach((toggleForm) => {
- const checkboxes = [...toggleForm.querySelectorAll('.ibexa-table__cell--has-checkbox .ibexa-input--checkbox')];
+ const checkboxes = [...toggleForm.querySelectorAll(`.ibexa-table__cell--has-checkbox ${SELECTOR_TABLE_CHECKBOX}`)];
const buttonRemove = doc.querySelector(toggleForm.dataset.toggleButtonId);
if (!buttonRemove) {
diff --git a/src/bundle/Resources/public/js/scripts/button.translation.edit.js b/src/bundle/Resources/public/js/scripts/button.translation.edit.js
index c6de4dfd00..7181521a01 100644
--- a/src/bundle/Resources/public/js/scripts/button.translation.edit.js
+++ b/src/bundle/Resources/public/js/scripts/button.translation.edit.js
@@ -2,11 +2,11 @@
class EditTranslation {
constructor(config) {
this.container = config.container;
- this.toggler = config.container.querySelector('.ibexa-btn--translations-list-toggler');
+ this.toggler = config.container.querySelector('.ids-btn--translations-list-toggler');
this.extraActionsContainer = config.container.querySelector('.ibexa-extra-actions');
this.closeBtn = config.container.querySelector('.ibexa-extra-actions__close-btn');
this.confirmBtn = config.container.querySelector('.ibexa-extra-actions__confirm-btn');
- this.languagesBtns = config.container.querySelectorAll('.ibexa-btn--select-language');
+ this.languagesBtns = config.container.querySelectorAll('.ids-btn--select-language');
this.backdrop = config.backdrop;
this.tableNode = null;
@@ -64,8 +64,8 @@
this.confirmBtn.dataset.languageCode = languageCode;
this.confirmBtn.disabled = false;
- this.languagesBtns.forEach((btn) => btn.classList.remove('ibexa-btn--active'));
- event.currentTarget.classList.add('ibexa-btn--active');
+ this.languagesBtns.forEach((btn) => btn.classList.remove('ids-btn--active'));
+ event.currentTarget.classList.add('ids-btn--active');
}
resetLanguageSelector() {
@@ -73,7 +73,7 @@
this.confirmBtn.dataset.languageCode = null;
this.confirmBtn.disabled = true;
- this.languagesBtns.forEach((btn) => btn.classList.remove('ibexa-btn--active'));
+ this.languagesBtns.forEach((btn) => btn.classList.remove('ids-btn--active'));
}
init() {
diff --git a/src/bundle/Resources/public/js/scripts/button.trigger.js b/src/bundle/Resources/public/js/scripts/button.trigger.js
index bd1092535d..3e93ad4777 100644
--- a/src/bundle/Resources/public/js/scripts/button.trigger.js
+++ b/src/bundle/Resources/public/js/scripts/button.trigger.js
@@ -2,7 +2,7 @@
doc.addEventListener(
'DOMContentLoaded',
() => {
- const buttons = doc.querySelectorAll('.ibexa-btn--trigger');
+ const buttons = doc.querySelectorAll('.ids-btn--trigger');
const trigger = (event) => {
event.preventDefault();
diff --git a/src/bundle/Resources/public/js/scripts/core/dropdown.js b/src/bundle/Resources/public/js/scripts/core/dropdown.js
index b69bf0c740..f587021d99 100644
--- a/src/bundle/Resources/public/js/scripts/core/dropdown.js
+++ b/src/bundle/Resources/public/js/scripts/core/dropdown.js
@@ -152,7 +152,7 @@
this.sourceInput.querySelectorAll('option').forEach((option) => (option.selected = false));
this.itemsListContainer.querySelectorAll('.ibexa-dropdown__item--selected').forEach((option) => {
- const checkbox = option.querySelector('.ibexa-input--checkbox');
+ const checkbox = option.querySelector('.ibexa-dropdown__item-checkbox');
option.classList.remove('ibexa-dropdown__item--selected');
@@ -211,7 +211,11 @@
const value = this.getValueFromElement(element);
if (value && !this.canSelectOnlyOne) {
- element.querySelector('.ibexa-input').checked = selected;
+ const checkbox = element.querySelector('.ibexa-dropdown__item-checkbox');
+
+ if (checkbox) {
+ checkbox.checked = selected;
+ }
}
this.itemsListContainer.querySelector(`[data-value=${value}]`).classList.toggle('ibexa-dropdown__item--selected', selected);
@@ -314,7 +318,11 @@
itemSelected.classList.remove('ibexa-dropdown__item--selected');
if (!this.canSelectOnlyOne) {
- itemSelected.querySelector('.ibexa-input').checked = false;
+ const checkbox = itemSelected.querySelector('.ibexa-dropdown__item-checkbox');
+
+ if (checkbox) {
+ checkbox.checked = false;
+ }
}
if (optionSelect) {
diff --git a/src/bundle/Resources/public/js/scripts/core/toggle.button.js b/src/bundle/Resources/public/js/scripts/core/toggle.button.js
index 19bf315f33..1a7a6580fe 100644
--- a/src/bundle/Resources/public/js/scripts/core/toggle.button.js
+++ b/src/bundle/Resources/public/js/scripts/core/toggle.button.js
@@ -4,7 +4,10 @@
class ToggleButton {
constructor(config) {
this.toggleNode = config.toggleNode;
- this.inputsSelector = config?.inputsSelector || 'input';
+ this.inputsSelector = config?.inputsSelector || (this.toggleNode.classList.contains('ids-toggle') ? '.ids-toggle__source input' : 'input');
+ this.checkedClass = this.toggleNode.classList.contains('ids-toggle') ? 'ids-toggle--checked' : 'ibexa-toggle--is-checked';
+ this.disabledClass = this.toggleNode.classList.contains('ids-toggle') ? 'ids-toggle--disabled' : 'ibexa-toggle--is-disabled';
+ this.focusedClass = this.toggleNode.classList.contains('ids-toggle') ? 'ids-toggle--focused' : 'ibexa-toggle--is-focused';
this.toggleState = this.toggleState.bind(this);
this.addFocus = this.addFocus.bind(this);
@@ -18,18 +21,18 @@
const toggler = event.currentTarget;
- if (toggler.classList.contains('ibexa-toggle--is-disabled')) {
+ if (toggler.classList.contains(this.disabledClass)) {
return;
}
- const isChecked = toggler.classList.toggle('ibexa-toggle--is-checked');
+ const isChecked = toggler.classList.toggle(this.checkedClass);
if (toggler.classList.contains('ibexa-toggle--radio')) {
const valueToSet = isChecked ? 1 : 0;
toggler.querySelector(`.form-check input[value="${valueToSet}"]`).checked = true;
} else {
- const toggleInput = toggler.querySelector('.ibexa-toggle__input');
+ const toggleInput = toggler.querySelector(this.inputsSelector);
toggleInput.checked = isChecked;
toggleInput.dispatchEvent(new Event('change'));
@@ -39,25 +42,25 @@
addFocus(event) {
event.preventDefault();
- const toggler = event.currentTarget.closest('.ibexa-toggle');
+ const toggler = event.currentTarget.closest('.ibexa-toggle, .ids-toggle');
- if (toggler.classList.contains('ibexa-toggle--is-disabled')) {
+ if (toggler.classList.contains(this.disabledClass)) {
return;
}
- toggler.classList.add('ibexa-toggle--is-focused');
+ toggler.classList.add(this.focusedClass);
}
removeFocus(event) {
event.preventDefault();
- const toggler = event.currentTarget.closest('.ibexa-toggle');
+ const toggler = event.currentTarget.closest('.ibexa-toggle, .ids-toggle');
- if (toggler.classList.contains('ibexa-toggle--is-disabled')) {
+ if (toggler.classList.contains(this.disabledClass)) {
return;
}
- toggler.classList.remove('ibexa-toggle--is-focused');
+ toggler.classList.remove(this.focusedClass);
}
toggleStateOnSpacePressed(event) {
diff --git a/src/bundle/Resources/public/js/scripts/cotf/create.js b/src/bundle/Resources/public/js/scripts/cotf/create.js
index d4e938c51c..721a159aea 100644
--- a/src/bundle/Resources/public/js/scripts/cotf/create.js
+++ b/src/bundle/Resources/public/js/scripts/cotf/create.js
@@ -1,5 +1,5 @@
(function (global, doc, ibexa, React, ReactDOMClient, Translator, Routing) {
- const btns = doc.querySelectorAll('.ibexa-btn--cotf-create');
+ const btns = doc.querySelectorAll('.ids-btn--cotf-create');
const udwContainer = doc.getElementById('react-udw');
let udwRoot = null;
const closeUDW = () => udwRoot.unmount();
diff --git a/src/bundle/Resources/public/js/scripts/fieldType/ibexa_author.js b/src/bundle/Resources/public/js/scripts/fieldType/ibexa_author.js
index 117997bd48..1fd31d76d8 100644
--- a/src/bundle/Resources/public/js/scripts/fieldType/ibexa_author.js
+++ b/src/bundle/Resources/public/js/scripts/fieldType/ibexa_author.js
@@ -1,6 +1,7 @@
(function (global, doc, ibexa) {
- const SELECTOR_REMOVE_AUTHOR = '.ibexa-btn--remove-author';
+ const SELECTOR_REMOVE_AUTHOR = '.ids-btn--remove-author';
const SELECTOR_AUTHOR = '.ibexa-data-source__author';
+ const SELECTOR_AUTHOR_CHECKBOX = '.ibexa-data-source__author-checkbox';
const SELECTOR_FIELD = '.ibexa-field-edit--ibexa_author';
const SELECTOR_LABEL = '.ibexa-data-source__label';
const SELECTOR_FIELD_EMAIL = '.ibexa-data-source__field--email';
@@ -104,17 +105,17 @@
toggleBulkDeleteButtonState(event) {
const container = event.target.closest(SELECTOR_FIELD);
- const checkboxes = container.querySelectorAll('.ibexa-input--checkbox');
+ const checkboxes = container.querySelectorAll(SELECTOR_AUTHOR_CHECKBOX);
const isAnyCheckboxSelected = [...checkboxes].some((checkbox) => checkbox.checked);
- const bulkDeleteButton = container.querySelector('.ibexa-btn--bulk-remove-author');
+ const bulkDeleteButton = container.querySelector('.ids-btn--bulk-remove-author');
bulkDeleteButton.toggleAttribute('disabled', !isAnyCheckboxSelected);
}
removeSelectedItems(event) {
const container = event.target.closest(SELECTOR_FIELD);
- const selectedCheckboxes = container.querySelectorAll('.ibexa-input--checkbox:checked');
- const bulkDeleteButton = container.querySelector('.ibexa-btn--bulk-remove-author');
+ const selectedCheckboxes = container.querySelectorAll(`${SELECTOR_AUTHOR_CHECKBOX}:checked`);
+ const bulkDeleteButton = container.querySelector('.ids-btn--bulk-remove-author');
selectedCheckboxes.forEach((checkbox) => checkbox.closest(SELECTOR_AUTHOR).remove());
@@ -123,7 +124,7 @@
const authorsRowsExist = !!container.querySelector(SELECTOR_AUTHOR);
if (!authorsRowsExist) {
- container.querySelector('.ibexa-btn--add-author').click();
+ container.querySelector('.ids-btn--add-author').click();
}
this.updateDisabledState(container);
@@ -246,19 +247,19 @@
},
{
isValueValidator: false,
- selector: '.ibexa-data-source__author .ibexa-input--checkbox',
+ selector: `.ibexa-data-source__author ${SELECTOR_AUTHOR_CHECKBOX}`,
eventName: 'change',
callback: 'toggleBulkDeleteButtonState',
},
{
isValueValidator: false,
- selector: '.ibexa-btn--bulk-remove-author',
+ selector: '.ids-btn--bulk-remove-author',
eventName: 'click',
callback: 'removeSelectedItems',
},
{
isValueValidator: false,
- selector: '.ibexa-btn--add-author',
+ selector: '.ids-btn--add-author',
eventName: 'click',
callback: 'addItem',
},
diff --git a/src/bundle/Resources/public/js/scripts/fieldType/ibexa_gmap_location.js b/src/bundle/Resources/public/js/scripts/fieldType/ibexa_gmap_location.js
index 00825473c5..c4e789d183 100644
--- a/src/bundle/Resources/public/js/scripts/fieldType/ibexa_gmap_location.js
+++ b/src/bundle/Resources/public/js/scripts/fieldType/ibexa_gmap_location.js
@@ -454,7 +454,7 @@
const latitudeInput = field.querySelector(SELECTOR_LAT_INPUT);
const areCoordsSet = !!longitudeInput.value.length && !!latitudeInput.value.length;
const locateMeBtn = field.querySelector('.ibexa-data-source__locate-me .btn');
- const searchBtn = field.querySelector('.ibexa-btn--search-by-address');
+ const searchBtn = field.querySelector('.ids-btn--search-by-address');
const mapContainer = field.querySelector('.ibexa-data-source__map');
let mapConfig = {
zoom: areCoordsSet ? 15 : 1,
diff --git a/src/bundle/Resources/public/js/scripts/fieldType/ibexa_keyword.js b/src/bundle/Resources/public/js/scripts/fieldType/ibexa_keyword.js
index ac7bc1945d..7c8449d027 100644
--- a/src/bundle/Resources/public/js/scripts/fieldType/ibexa_keyword.js
+++ b/src/bundle/Resources/public/js/scripts/fieldType/ibexa_keyword.js
@@ -61,7 +61,7 @@
invalidStateSelectors: [SELECTOR_TAGGIFY, SELECTOR_LABEL],
},
{
- selector: `${SELECTOR_FIELD} .ibexa-data-source__input.form-control`,
+ selector: `${SELECTOR_FIELD} .ibexa-data-source__input`,
eventName: 'change',
callback: 'validateKeywords',
errorNodeSelectors: [SELECTOR_ERROR_NODE],
@@ -70,7 +70,7 @@
],
});
- const keywordInput = field.querySelector('.ibexa-data-source__input-wrapper .ibexa-data-source__input.form-control');
+ const keywordInput = field.querySelector('.ibexa-data-source__input-wrapper .ibexa-data-source__input');
class EzKeywordTaggify extends ibexa.core.Taggify {
afterTagsUpdate() {
const tags = [...this.tags];
diff --git a/src/bundle/Resources/public/js/scripts/helpers/form.validation.helper.js b/src/bundle/Resources/public/js/scripts/helpers/form.validation.helper.js
index 9057dae6d7..36eb265b23 100644
--- a/src/bundle/Resources/public/js/scripts/helpers/form.validation.helper.js
+++ b/src/bundle/Resources/public/js/scripts/helpers/form.validation.helper.js
@@ -18,7 +18,7 @@ const checkIsEmpty = (field) => {
let errorMessage = '';
const Translator = getTranslator();
const input = field.querySelector('.ibexa-input');
- const label = field.querySelector('.ibexa-label');
+ const label = field.querySelector('.ids-label');
if (label) {
const fieldName = label.innerText;
@@ -35,7 +35,7 @@ const checkIsEmpty = (field) => {
};
const validateIsEmptyField = (field) => {
const input = field.querySelector('.ibexa-input');
- const label = field.querySelector('.ibexa-label');
+ const label = field.querySelector('.ids-label');
const errorWrapper = field.querySelector('.ibexa-form-error');
const validatorOutput = checkIsEmpty(field);
const { isValid, errorMessage } = validatorOutput;
diff --git a/src/bundle/Resources/public/js/scripts/sidebar/btn/content.edit.js b/src/bundle/Resources/public/js/scripts/sidebar/btn/content.edit.js
index a2d8d1287e..cb6d9de02d 100644
--- a/src/bundle/Resources/public/js/scripts/sidebar/btn/content.edit.js
+++ b/src/bundle/Resources/public/js/scripts/sidebar/btn/content.edit.js
@@ -1,9 +1,9 @@
(function (global, doc) {
- const editButtons = doc.querySelectorAll('.ibexa-btn--edit');
+ const editButtons = doc.querySelectorAll('.ids-btn--edit');
editButtons.forEach((editButton) => {
const languageRadioOption = doc.querySelector(
- `.ibexa-extra-actions--edit.ibexa-extra-actions--prevent-show[data-actions="${editButton.dataset.actions}"] .ibexa-input--radio`,
+ `.ibexa-extra-actions--edit.ibexa-extra-actions--prevent-show[data-actions="${editButton.dataset.actions}"] .ids-input--radio`,
);
if (!languageRadioOption) {
diff --git a/src/bundle/Resources/public/js/scripts/sidebar/btn/content.hide.js b/src/bundle/Resources/public/js/scripts/sidebar/btn/content.hide.js
index d04f59264b..60e32afcc3 100644
--- a/src/bundle/Resources/public/js/scripts/sidebar/btn/content.hide.js
+++ b/src/bundle/Resources/public/js/scripts/sidebar/btn/content.hide.js
@@ -1,5 +1,5 @@
(function (global, doc, bootstrap) {
- const hideButton = doc.querySelector('.ibexa-btn--hide');
+ const hideButton = doc.querySelector('.ids-btn--hide');
const modal = doc.querySelector('#hide-content-modal');
const form = doc.querySelector('form[name="content_visibility_update"]');
const visiblity = doc.querySelector('#content_visibility_update_visible');
@@ -9,7 +9,7 @@
}
if (modal) {
- modal.querySelector('.ibexa-btn--confirm').addEventListener('click', () => {
+ modal.querySelector('.ids-btn--confirm').addEventListener('click', () => {
visiblity.value = 0;
form.submit();
});
diff --git a/src/bundle/Resources/public/js/scripts/sidebar/btn/content.reveal.js b/src/bundle/Resources/public/js/scripts/sidebar/btn/content.reveal.js
index b82f904cd1..3c656ec67a 100644
--- a/src/bundle/Resources/public/js/scripts/sidebar/btn/content.reveal.js
+++ b/src/bundle/Resources/public/js/scripts/sidebar/btn/content.reveal.js
@@ -1,5 +1,5 @@
(function (global, doc) {
- const revealButton = doc.querySelector('.ibexa-btn--reveal');
+ const revealButton = doc.querySelector('.ids-btn--reveal');
const form = doc.querySelector('form[name="content_visibility_update"]');
const visiblity = doc.querySelector('#content_visibility_update_visible');
diff --git a/src/bundle/Resources/public/js/scripts/sidebar/btn/contenttype.edit.js b/src/bundle/Resources/public/js/scripts/sidebar/btn/contenttype.edit.js
index 437a1b5f8c..87a65792a5 100644
--- a/src/bundle/Resources/public/js/scripts/sidebar/btn/contenttype.edit.js
+++ b/src/bundle/Resources/public/js/scripts/sidebar/btn/contenttype.edit.js
@@ -1,6 +1,6 @@
(function (global, doc) {
- const editButton = doc.querySelector('.ibexa-btn--edit');
- const languageRadioOption = doc.querySelector('.ibexa-extra-actions--edit.ibexa-extra-actions--prevent-show .ibexa-input--radio');
+ const editButton = doc.querySelector('.ids-btn--edit');
+ const languageRadioOption = doc.querySelector('.ibexa-extra-actions--edit.ibexa-extra-actions--prevent-show .ids-input--radio');
const editActions = doc.querySelector('.ibexa-extra-actions--edit');
const btns = editActions.querySelectorAll('.form-check [type="radio"]');
const changeHandler = () => {
diff --git a/src/bundle/Resources/public/js/scripts/sidebar/btn/location.edit.js b/src/bundle/Resources/public/js/scripts/sidebar/btn/location.edit.js
index 5b8d3029e8..177a7e2ab3 100644
--- a/src/bundle/Resources/public/js/scripts/sidebar/btn/location.edit.js
+++ b/src/bundle/Resources/public/js/scripts/sidebar/btn/location.edit.js
@@ -21,7 +21,7 @@
doc.body.dispatchEvent(event);
};
const attachModalListeners = (wrapper, form, btns) => {
- const addDraftButton = wrapper.querySelector('.ibexa-btn--add-draft');
+ const addDraftButton = wrapper.querySelector('.ids-btn--add-draft');
const conflictModal = doc.querySelector('#version-draft-conflict-modal');
if (addDraftButton) {
@@ -29,7 +29,7 @@
}
wrapper
- .querySelectorAll('.ibexa-btn--prevented')
+ .querySelectorAll('.ids-btn--prevented')
.forEach((btn) => btn.addEventListener('click', (event) => event.preventDefault(), false));
if (conflictModal) {
@@ -54,12 +54,12 @@
const checkedBtn = event.currentTarget;
const languageCode = checkedBtn.value;
const checkVersionDraftLink = Routing.generate('ibexa.version_draft.has_no_conflict', { contentId, languageCode, locationId });
- const activeLanguageItem = event.target.closest('.ibexa-instant-filter__group-item')?.querySelector('.ibexa-label');
- const allLanguageItems = form.querySelectorAll('.ibexa-instant-filter__group-item .ibexa-label');
+ const activeLanguageItem = event.target.closest('.ibexa-instant-filter__group-item')?.querySelector('.ids-label');
+ const allLanguageItems = form.querySelectorAll('.ibexa-instant-filter__group-item .ids-label');
const submitBtn = form.querySelector('.ibexa-extra-actions__confirm-btn');
allLanguageItems.forEach((item) => {
- item.classList.remove('ibexa-label--active');
+ item.classList.remove('ids-label--active');
});
fetch(checkVersionDraftLink, {
@@ -83,7 +83,7 @@
}
submitBtn.disabled = false;
- activeLanguageItem?.classList.add('ibexa-label--active');
+ activeLanguageItem?.classList.add('ids-label--active');
});
};
const attachEventsToEditActionsWidget = (container) => {
diff --git a/src/bundle/Resources/public/js/scripts/sidebar/btn/user.edit.js b/src/bundle/Resources/public/js/scripts/sidebar/btn/user.edit.js
index d2a8204ced..6d1e791ac4 100644
--- a/src/bundle/Resources/public/js/scripts/sidebar/btn/user.edit.js
+++ b/src/bundle/Resources/public/js/scripts/sidebar/btn/user.edit.js
@@ -1,6 +1,6 @@
(function (global, doc) {
- const editButton = doc.querySelector('.ibexa-btn--edit-user');
- const languageRadioOption = doc.querySelector('.ibexa-extra-actions--edit-user.ibexa-extra-actions--prevent-show .ibexa-input--radio');
+ const editButton = doc.querySelector('.ids-btn--edit-user');
+ const languageRadioOption = doc.querySelector('.ibexa-extra-actions--edit-user.ibexa-extra-actions--prevent-show .ids-input--radio');
const editActions = doc.querySelector('.ibexa-extra-actions--edit-user');
if (!editActions || !languageRadioOption) {
diff --git a/src/bundle/Resources/public/js/scripts/sidebar/extra.actions.js b/src/bundle/Resources/public/js/scripts/sidebar/extra.actions.js
index e531ccf33c..e36d02a516 100644
--- a/src/bundle/Resources/public/js/scripts/sidebar/extra.actions.js
+++ b/src/bundle/Resources/public/js/scripts/sidebar/extra.actions.js
@@ -5,9 +5,9 @@ import { getInstance } from '@ibexa-admin-ui/src/bundle/Resources/public/js/scri
const CLASS_EXPANDED = 'ibexa-context-menu--expanded';
const CLASS_PREVENT_SHOW = 'ibexa-extra-actions--prevent-show';
const closeBtns = doc.querySelectorAll(
- '.ibexa-extra-actions .ibexa-btn--close, .ibexa-extra-actions .ibexa-extra-actions__btn--cancel',
+ '.ibexa-extra-actions .ids-btn--close, .ibexa-extra-actions .ibexa-extra-actions__btn--cancel',
);
- const btns = [...doc.querySelectorAll('.ibexa-btn--extra-actions')];
+ const btns = [...doc.querySelectorAll('.ids-btn--extra-actions, .ids-btn--extra-actions')];
const menu = doc.querySelector('.ibexa-context-menu');
const backdrop = new ibexa.core.Backdrop();
const formsInitialData = new Map();
diff --git a/src/bundle/Resources/public/js/scripts/sidebar/side.panel.js b/src/bundle/Resources/public/js/scripts/sidebar/side.panel.js
index 48fa8891db..9ed57d203b 100644
--- a/src/bundle/Resources/public/js/scripts/sidebar/side.panel.js
+++ b/src/bundle/Resources/public/js/scripts/sidebar/side.panel.js
@@ -1,7 +1,7 @@
(function (global, doc, ibexa) {
const CLASS_HIDDEN = 'ibexa-side-panel--hidden';
const sidePanelCloseBtns = doc.querySelectorAll(
- '.ibexa-side-panel .ibexa-btn--close, .ibexa-side-panel .ibexa-side-panel__btn--cancel',
+ '.ibexa-side-panel .ids-btn--close, .ibexa-side-panel .ibexa-side-panel__btn--cancel',
);
const sidePanelTriggers = [...doc.querySelectorAll('.ibexa-side-panel-trigger')];
const panelBackdrops = new Map();
diff --git a/src/bundle/Resources/public/js/scripts/udw/copy.js b/src/bundle/Resources/public/js/scripts/udw/copy.js
index 3378b5b0f8..91f33b85dd 100644
--- a/src/bundle/Resources/public/js/scripts/udw/copy.js
+++ b/src/bundle/Resources/public/js/scripts/udw/copy.js
@@ -1,5 +1,5 @@
(function (global, doc, ibexa, React, ReactDOMClient, Translator) {
- const btns = doc.querySelectorAll('.ibexa-btn--udw-copy');
+ const btns = doc.querySelectorAll('.ids-btn--udw-copy');
const form = doc.querySelector('form[name="location_copy"]');
const input = form.querySelector('#location_copy_new_parent_location');
const udwContainer = doc.getElementById('react-udw');
diff --git a/src/bundle/Resources/public/js/scripts/udw/copy_subtree.js b/src/bundle/Resources/public/js/scripts/udw/copy_subtree.js
index fa1670e5ca..47853926be 100644
--- a/src/bundle/Resources/public/js/scripts/udw/copy_subtree.js
+++ b/src/bundle/Resources/public/js/scripts/udw/copy_subtree.js
@@ -1,5 +1,5 @@
(function (global, doc, ibexa, React, ReactDOMClient, Translator) {
- const btns = doc.querySelectorAll('.ibexa-btn--udw-copy-subtree');
+ const btns = doc.querySelectorAll('.ids-btn--udw-copy-subtree');
const form = doc.querySelector('form[name="location_copy_subtree"]');
const input = form.querySelector('#location_copy_subtree_new_parent_location');
const udwContainer = doc.querySelector('#react-udw');
diff --git a/src/bundle/Resources/public/js/scripts/udw/move.js b/src/bundle/Resources/public/js/scripts/udw/move.js
index 731872e2ef..35731284a3 100644
--- a/src/bundle/Resources/public/js/scripts/udw/move.js
+++ b/src/bundle/Resources/public/js/scripts/udw/move.js
@@ -1,5 +1,5 @@
(function (global, doc, ibexa, React, ReactDOMClient, Translator) {
- const btns = doc.querySelectorAll('.ibexa-btn--udw-move');
+ const btns = doc.querySelectorAll('.ids-btn--udw-move');
const form = doc.querySelector('form[name="location_move"]');
if (!form) {
diff --git a/src/bundle/Resources/public/js/scripts/udw/swap.js b/src/bundle/Resources/public/js/scripts/udw/swap.js
index fd6a59159c..66685ada98 100644
--- a/src/bundle/Resources/public/js/scripts/udw/swap.js
+++ b/src/bundle/Resources/public/js/scripts/udw/swap.js
@@ -1,5 +1,5 @@
(function (global, doc, ibexa, React, ReactDOMClient, Translator) {
- const btns = doc.querySelectorAll('.ibexa-btn--udw-swap');
+ const btns = doc.querySelectorAll('.ids-btn--udw-swap');
const form = doc.querySelector('form[name="location_swap"]');
if (!form) {
diff --git a/src/bundle/Resources/public/js/scripts/user.invitation.modal.js b/src/bundle/Resources/public/js/scripts/user.invitation.modal.js
index 6adc58b8d4..e9d253ea8a 100644
--- a/src/bundle/Resources/public/js/scripts/user.invitation.modal.js
+++ b/src/bundle/Resources/public/js/scripts/user.invitation.modal.js
@@ -9,7 +9,7 @@ export class UserInvitationModal {
this.modal = options.modal;
this.stickyTopContainer = this.modal.querySelector('.ibexa-user-invitation-modal__sticky-top');
this.searchInput = this.modal.querySelector('.ibexa-user-invitation-modal__search-input');
- this.searchBtn = this.modal.querySelector('.ibexa-input-text-wrapper__action-btn--search');
+ this.searchBtn = this.modal.querySelector('.ids-input-text__search-btn, .ibexa-input-text-wrapper__action-btn--search');
this.searchNoEntries = this.modal.querySelector('.ibexa-user-invitation-modal__search-no-entries');
this.badFileAlert = this.modal.querySelector('.ibexa-user-invitation-modal__bad-file-alert');
this.badFileAlertCloseBtn = this.badFileAlert.querySelector('.ibexa-alert__close-btn');
@@ -490,7 +490,7 @@ export class UserInvitationModal {
this.goToNextIssueBtn.addEventListener('click', this.scrollToNextIssue, false);
this.searchInput.addEventListener('keyup', this.handleSearch, false);
- this.searchBtn.addEventListener('keyup', this.handleSearch, false);
+ this.searchBtn?.addEventListener('keyup', this.handleSearch, false);
this.fakeSubmitBtn.addEventListener(
'click',
diff --git a/src/bundle/Resources/public/scss/_adaptive-filters.scss b/src/bundle/Resources/public/scss/_adaptive-filters.scss
index f423a08baa..52e4831f26 100644
--- a/src/bundle/Resources/public/scss/_adaptive-filters.scss
+++ b/src/bundle/Resources/public/scss/_adaptive-filters.scss
@@ -121,7 +121,7 @@
align-items: flex-end;
padding-right: calculateRem(16px);
- .ibexa-label {
+ .ids-label {
margin-top: 0;
}
}
@@ -171,7 +171,7 @@
}
}
- &--fake.ibexa-btn.ibexa-btn {
+ &--fake:is(.ibexa-btn, .ids-btn) {
height: 0;
padding-top: 0;
padding-bottom: 0;
diff --git a/src/bundle/Resources/public/scss/_add-translation.scss b/src/bundle/Resources/public/scss/_add-translation.scss
index 6ec2ebd9df..d3520cc824 100644
--- a/src/bundle/Resources/public/scss/_add-translation.scss
+++ b/src/bundle/Resources/public/scss/_add-translation.scss
@@ -10,7 +10,7 @@
flex-wrap: wrap;
padding-bottom: calculateRem(140px);
- .ibexa-label {
+ .ids-label {
margin-top: 0;
}
}
diff --git a/src/bundle/Resources/public/scss/_buttons.scss b/src/bundle/Resources/public/scss/_buttons.scss
index 91f22189a0..83123980f3 100644
--- a/src/bundle/Resources/public/scss/_buttons.scss
+++ b/src/bundle/Resources/public/scss/_buttons.scss
@@ -590,7 +590,7 @@
}
}
-.ibexa-btn--content-edit {
+.ids-btn--content-edit {
background-color: transparent;
cursor: pointer;
}
@@ -604,3 +604,9 @@
button:focus {
outline: 0;
}
+
+a.ids-btn {
+ &:hover {
+ text-decoration: none;
+ }
+}
diff --git a/src/bundle/Resources/public/scss/_content-type-edit.scss b/src/bundle/Resources/public/scss/_content-type-edit.scss
index 9f94d7b4e3..595861e0f5 100644
--- a/src/bundle/Resources/public/scss/_content-type-edit.scss
+++ b/src/bundle/Resources/public/scss/_content-type-edit.scss
@@ -57,7 +57,7 @@
.form-check {
margin-bottom: calculateRem(16px);
- .ibexa-label {
+ .ids-label {
margin-bottom: 0;
}
}
diff --git a/src/bundle/Resources/public/scss/_context-menu.scss b/src/bundle/Resources/public/scss/_context-menu.scss
index 812536c808..6d60cabce5 100644
--- a/src/bundle/Resources/public/scss/_context-menu.scss
+++ b/src/bundle/Resources/public/scss/_context-menu.scss
@@ -37,7 +37,8 @@
&--more {
position: relative;
- .ibexa-btn--more {
+ .ibexa-btn--more,
+ .ibexa-btn--more.ids-btn {
align-items: center;
height: calculateRem(48px);
}
diff --git a/src/bundle/Resources/public/scss/_custom-url-form.scss b/src/bundle/Resources/public/scss/_custom-url-form.scss
index 7626b45f09..e39b2788b4 100644
--- a/src/bundle/Resources/public/scss/_custom-url-form.scss
+++ b/src/bundle/Resources/public/scss/_custom-url-form.scss
@@ -6,7 +6,7 @@
margin-bottom: calculateRem(24px);
&:first-child {
- .ibexa-label {
+ .ids-label {
margin-top: 0;
}
}
@@ -25,13 +25,13 @@
&--checked {
display: none;
- .ibexa-toggle--is-checked + & {
+ .ids-toggle--checked + & {
display: block;
}
}
&--unchecked {
- .ibexa-toggle--is-checked + .ibexa-custom-url-from__info-text--checked + & {
+ .ids-toggle--checked + .ibexa-custom-url-from__info-text--checked + & {
display: none;
}
}
diff --git a/src/bundle/Resources/public/scss/_default-location.scss b/src/bundle/Resources/public/scss/_default-location.scss
index 14cd478e60..e1e424ac5a 100644
--- a/src/bundle/Resources/public/scss/_default-location.scss
+++ b/src/bundle/Resources/public/scss/_default-location.scss
@@ -10,16 +10,16 @@
display: flex;
align-items: center;
- .ibexa-btn__label--change {
+ .ids-btn__label--change {
display: none;
}
&--filled {
- .ibexa-btn__label--change {
+ .ids-btn__label--change {
display: inline;
}
- .ibexa-btn__label--select {
+ .ids-btn__label--select {
display: none;
}
}
diff --git a/src/bundle/Resources/public/scss/_details.scss b/src/bundle/Resources/public/scss/_details.scss
index 5519de600a..91b15b5cb5 100644
--- a/src/bundle/Resources/public/scss/_details.scss
+++ b/src/bundle/Resources/public/scss/_details.scss
@@ -19,7 +19,7 @@
flex-basis: 25%;
padding: calculateRem(8px) calculateRem(8px) calculateRem(8px) 0;
- .ibexa-label {
+ .ids-label {
margin-top: calculateRem(8px);
margin-bottom: 0;
}
diff --git a/src/bundle/Resources/public/scss/_dropdown.scss b/src/bundle/Resources/public/scss/_dropdown.scss
index 319de4f673..65ac913683 100644
--- a/src/bundle/Resources/public/scss/_dropdown.scss
+++ b/src/bundle/Resources/public/scss/_dropdown.scss
@@ -187,8 +187,10 @@
display: flex;
flex-direction: column;
- .ibexa-input-text-wrapper {
+ .ibexa-input-text-wrapper,
+ .ids-input-text {
width: 100%;
+ display: block;
padding: calculateRem(8px) calculateRem(12px);
&__actions {
@@ -197,7 +199,8 @@
}
&--search-hidden {
- .ibexa-input-text-wrapper {
+ .ibexa-input-text-wrapper,
+ .ids-input-text {
display: none;
}
}
@@ -282,7 +285,7 @@
}
}
- .ibexa-input {
+ .ibexa-dropdown__item-checkbox {
flex-shrink: 0;
margin: 0 calculateRem(16px) 0 0;
}
diff --git a/src/bundle/Resources/public/scss/_extra-actions.scss b/src/bundle/Resources/public/scss/_extra-actions.scss
index 0dffaeba9d..fbd4d60a92 100644
--- a/src/bundle/Resources/public/scss/_extra-actions.scss
+++ b/src/bundle/Resources/public/scss/_extra-actions.scss
@@ -136,7 +136,7 @@
padding-left: 0;
}
- .ibexa-label {
+ .ids-label {
@include edit-language-item;
}
diff --git a/src/bundle/Resources/public/scss/_field-group.scss b/src/bundle/Resources/public/scss/_field-group.scss
index 9bff83bdda..b13206e1cd 100644
--- a/src/bundle/Resources/public/scss/_field-group.scss
+++ b/src/bundle/Resources/public/scss/_field-group.scss
@@ -30,7 +30,7 @@
&__language-form {
display: flex;
- .ibexa-label {
+ .ids-label {
margin: calculateRem(8px) calculateRem(8px) 0;
}
diff --git a/src/bundle/Resources/public/scss/_filters.scss b/src/bundle/Resources/public/scss/_filters.scss
index 0a7b918eda..f92cf90544 100644
--- a/src/bundle/Resources/public/scss/_filters.scss
+++ b/src/bundle/Resources/public/scss/_filters.scss
@@ -61,7 +61,7 @@
margin-bottom: 0;
}
- .ibexa-label {
+ .ids-label {
font-size: $ibexa-text-font-size-medium;
color: $ibexa-color-dark;
margin-top: calculateRem(16px);
diff --git a/src/bundle/Resources/public/scss/_global-search.scss b/src/bundle/Resources/public/scss/_global-search.scss
index 5b79b659db..d32c3649a3 100644
--- a/src/bundle/Resources/public/scss/_global-search.scss
+++ b/src/bundle/Resources/public/scss/_global-search.scss
@@ -6,64 +6,93 @@
width: 100%;
max-width: calculateRem(600px);
position: relative;
+ --ibexa-input-text-color: #{$ibexa-color-white};
+ --ibexa-text-color: #{$ibexa-color-white};
- .ibexa-input-text-wrapper {
- &--search {
- width: auto;
+ .ids-input-text {
+ --ids-input-default-bg-color: #{color.change($ibexa-color-white, $alpha: 0.1)};
+ --ids-input-default-border-color: transparent;
+ --ids-input-default-text-color: #{$ibexa-color-white};
+ --ids-input-hover-border-color: #{$ibexa-color-info-600};
+ --ids-input-active-border-color: #{$ibexa-color-info-600};
+ --ids-input-focus-border-color: #{$ibexa-color-info-600};
- .ibexa-icon {
- fill: $ibexa-color-white;
+ &:hover {
+ .ids-input {
+ border-color: $ibexa-color-info-600;
}
}
- &__action-btn {
- &:hover {
- .ibexa-icon {
- fill: $ibexa-color-info;
+ &:focus-within {
+ .ids-input-text__search-btn {
+ background: $ibexa-color-info-600;
+
+ .ids-icon {
+ fill: $ibexa-color-white;
}
}
+ }
- &--search {
- width: calculateRem(40px);
- height: calculateRem(40px);
- transform: translateX(calculateRem(8px));
-
- &:hover {
- background: $ibexa-color-info-600;
- box-shadow: 0 calculateRem(22px) calculateRem(24px) 0 color.change($ibexa-color-info, $alpha: 0.2);
+ &:has(.ibexa-global-search__input:not(:placeholder-shown)) {
+ .ids-input-text__search-btn {
+ background: $ibexa-color-info-600;
- .ibexa-icon {
- fill: $ibexa-color-white;
- }
+ .ids-icon {
+ fill: $ibexa-color-white;
}
+ }
+ }
+ }
- &:focus {
- color: $ibexa-color-white;
- background: $ibexa-color-info-600;
- border-color: $ibexa-color-info-600;
- box-shadow: 0 0 0 calculateRem(4px) color.change($ibexa-color-white, $alpha: 0.2);
+ .ids-input-text__actions {
+ padding-right: 0;
+ }
- .ibexa-icon {
- fill: $ibexa-color-white;
- }
- }
+ .ids-clear-btn {
+ margin-right: calculateRem(8px);
+
+ .ids-icon {
+ fill: $ibexa-color-light;
+ }
+
+ &:hover {
+ .ids-icon {
+ fill: $ibexa-color-info;
}
+ }
- &--clear {
- &:focus {
- border: none;
- box-shadow: 0 0 0 calculateRem(4px) color.change($ibexa-color-white, $alpha: 0.2);
+ &:focus {
+ border: none;
+ box-shadow: 0 0 0 calculateRem(4px) color.change($ibexa-color-white, $alpha: 0.2);
- .ibexa-icon {
- fill: $ibexa-color-white;
- }
- }
+ .ids-icon {
+ fill: $ibexa-color-white;
}
}
+ }
+
+ .ids-btn.ids-input-text__search-btn {
+ width: calculateRem(40px);
+ height: calculateRem(40px);
+ transform: none;
&:hover {
- .ibexa-input {
- border-color: $ibexa-color-info-600;
+ background: $ibexa-color-info-600;
+ box-shadow: 0 calculateRem(22px) calculateRem(24px) 0 color.change($ibexa-color-info, $alpha: 0.2);
+
+ .ids-icon {
+ fill: $ibexa-color-white;
+ }
+ }
+
+ &:focus {
+ color: $ibexa-color-white;
+ background: $ibexa-color-info-600;
+ border-color: $ibexa-color-info-600;
+ box-shadow: 0 0 0 calculateRem(4px) color.change($ibexa-color-white, $alpha: 0.2);
+
+ .ids-icon {
+ fill: $ibexa-color-white;
}
}
}
@@ -75,49 +104,23 @@
background: color.change($ibexa-color-white, $alpha: 0.1);
border-color: transparent;
- &.ibexa-input--text {
- &:not(:disabled) {
- &:hover {
- box-shadow: none;
- border-color: $ibexa-color-info-600;
-
- & + .ibexa-input-text-wrapper__actions {
- .ibexa-input-text-wrapper__action-btn--search {
- background: transparent;
- }
- }
- }
- &:focus {
- border-color: $ibexa-color-info-600;
- background: color.change($ibexa-color-white, $alpha: 0.1);
- box-shadow: 0 0 0 calculateRem(4px) color.change($ibexa-color-white, $alpha: 0.2);
-
- & + .ibexa-input-text-wrapper__actions {
- .ibexa-input-text-wrapper__action-btn--search {
- background: $ibexa-color-info-600;
- }
- }
- }
-
- &:active,
- &:not(:placeholder-shown) {
- box-shadow: none;
- border-color: $ibexa-color-info-600;
+ &:not(:disabled) {
+ &:hover {
+ box-shadow: none;
+ border-color: $ibexa-color-info-600;
+ }
- & + .ibexa-input-text-wrapper__actions {
- .ibexa-input-text-wrapper__action-btn--search {
- background: $ibexa-color-info-600;
- }
- }
- }
+ &:focus {
+ color: $ibexa-color-white;
+ border-color: $ibexa-color-info-600;
+ background: color.change($ibexa-color-white, $alpha: 0.1);
+ box-shadow: 0 0 0 calculateRem(4px) color.change($ibexa-color-white, $alpha: 0.2);
+ }
- &:not(:placeholder-shown):hover {
- & + .ibexa-input-text-wrapper__actions {
- .ibexa-input-text-wrapper__action-btn--search {
- background: $ibexa-color-info-600;
- }
- }
- }
+ &:active,
+ &:not(:placeholder-shown) {
+ box-shadow: none;
+ border-color: $ibexa-color-info-600;
}
}
diff --git a/src/bundle/Resources/public/scss/_grid-view-item.scss b/src/bundle/Resources/public/scss/_grid-view-item.scss
index 99df31a488..ee987e6f27 100644
--- a/src/bundle/Resources/public/scss/_grid-view-item.scss
+++ b/src/bundle/Resources/public/scss/_grid-view-item.scss
@@ -29,8 +29,8 @@
border-color: $ibexa-color-dark;
text-decoration: none;
- .ibexa-input--checkbox,
- .ibexa-input--radio {
+ .ids-input--checkbox,
+ .ids-input--radio {
border-color: $ibexa-color-primary;
}
}
@@ -180,9 +180,16 @@
top: calculateRem(10px);
display: none;
- .ibexa-input {
+ .ibexa-input,
+ .ids-input {
background-color: $ibexa-color-white;
}
+
+ &--hovered {
+ .ids-input {
+ border-color: $ibexa-color-primary;
+ }
+ }
}
&:hover {
diff --git a/src/bundle/Resources/public/scss/_icons.scss b/src/bundle/Resources/public/scss/_icons.scss
index ec7b1b6eed..d0111e3d8d 100644
--- a/src/bundle/Resources/public/scss/_icons.scss
+++ b/src/bundle/Resources/public/scss/_icons.scss
@@ -67,7 +67,7 @@
}
}
-.ibexa-btn--extra-actions {
+.ids-btn--extra-actions {
.ibexa-icon {
pointer-events: none;
}
diff --git a/src/bundle/Resources/public/scss/_inputs.scss b/src/bundle/Resources/public/scss/_inputs.scss
index ed44cd83b4..d0a7407fe9 100644
--- a/src/bundle/Resources/public/scss/_inputs.scss
+++ b/src/bundle/Resources/public/scss/_inputs.scss
@@ -530,3 +530,15 @@
}
}
}
+
+.form-check-input:checked {
+ background-color: $ibexa-color-white;
+}
+
+.form-check-input:checked[type=checkbox] {
+ --bs-form-check-bg-image: none;
+}
+
+.form-check-input[type=checkbox] {
+ border-radius: calculateRem(2px);
+}
diff --git a/src/bundle/Resources/public/scss/_instant-filter.scss b/src/bundle/Resources/public/scss/_instant-filter.scss
index 24c71b7606..31fb9ea605 100644
--- a/src/bundle/Resources/public/scss/_instant-filter.scss
+++ b/src/bundle/Resources/public/scss/_instant-filter.scss
@@ -64,7 +64,7 @@
}
&:hover {
- .ibexa-label--checkbox-radio {
+ .ids-choice-input-label {
color: $ibexa-color-primary;
}
diff --git a/src/bundle/Resources/public/scss/_labels.scss b/src/bundle/Resources/public/scss/_labels.scss
index 95646e84e3..874da43f6d 100644
--- a/src/bundle/Resources/public/scss/_labels.scss
+++ b/src/bundle/Resources/public/scss/_labels.scss
@@ -2,7 +2,7 @@
@use '@ibexa-admin-ui/src/bundle/Resources/public/scss/functions/calculate.rem' as *;
@use '@ibexa-admin-ui/src/bundle/Resources/public/scss/mixins' as *;
-.ibexa-label {
+.ids-label {
@include label-required();
& {
@@ -37,7 +37,7 @@
}
.form-check-inline {
- .ibexa-label {
+ .ids-label {
&--checkbox-radio {
margin: 0;
}
@@ -46,7 +46,7 @@
.ibexa-form-block {
.form-group:first-of-type {
- .ibexa-label {
+ .ids-label {
margin-top: 0;
}
}
diff --git a/src/bundle/Resources/public/scss/_list-filters.scss b/src/bundle/Resources/public/scss/_list-filters.scss
index 015f96b439..56bf67e3dc 100644
--- a/src/bundle/Resources/public/scss/_list-filters.scss
+++ b/src/bundle/Resources/public/scss/_list-filters.scss
@@ -87,7 +87,7 @@
}
&__item {
- .ibexa-label {
+ .ids-label {
margin: 0;
padding: 0;
}
diff --git a/src/bundle/Resources/public/scss/_login.scss b/src/bundle/Resources/public/scss/_login.scss
index 62d867116f..2e9a73414d 100644
--- a/src/bundle/Resources/public/scss/_login.scss
+++ b/src/bundle/Resources/public/scss/_login.scss
@@ -77,7 +77,7 @@
display: flex;
}
- .ibexa-label {
+ .ids-label {
margin-top: calculateRem(16px);
}
@@ -104,7 +104,7 @@
margin-top: calculateRem(32px);
& + .has-error {
- .ibexa-label {
+ .ids-label {
margin-top: 0;
}
}
diff --git a/src/bundle/Resources/public/scss/_mixins.scss b/src/bundle/Resources/public/scss/_mixins.scss
index 5599245922..79b573129e 100644
--- a/src/bundle/Resources/public/scss/_mixins.scss
+++ b/src/bundle/Resources/public/scss/_mixins.scss
@@ -4,7 +4,7 @@
@mixin datetime-field() {
&.is-invalid {
- .ibexa-label {
+ .ids-label {
color: $ibexa-color-danger;
}
diff --git a/src/bundle/Resources/public/scss/_modals.scss b/src/bundle/Resources/public/scss/_modals.scss
index 5419570f89..de7c52aaad 100644
--- a/src/bundle/Resources/public/scss/_modals.scss
+++ b/src/bundle/Resources/public/scss/_modals.scss
@@ -25,6 +25,10 @@
& {
padding: calculateRem(2px);
}
+
+ &.ids-btn {
+ top: calculateRem(22px);
+ }
}
}
@@ -37,7 +41,7 @@
margin-top: calculateRem(18px);
}
- .ibexa-label {
+ .ids-label {
font-size: calculateRem(16px);
}
diff --git a/src/bundle/Resources/public/scss/_page-title.scss b/src/bundle/Resources/public/scss/_page-title.scss
index 05780acda0..e01aa60f7e 100644
--- a/src/bundle/Resources/public/scss/_page-title.scss
+++ b/src/bundle/Resources/public/scss/_page-title.scss
@@ -28,7 +28,8 @@
white-space: nowrap;
}
- .ibexa-badge {
+ .ibexa-badge,
+ .ids-tag {
margin-left: calculateRem(16px);
font-family: $ibexa-font-family;
}
diff --git a/src/bundle/Resources/public/scss/_search-links-form.scss b/src/bundle/Resources/public/scss/_search-links-form.scss
index 022886d474..30558f3e42 100644
--- a/src/bundle/Resources/public/scss/_search-links-form.scss
+++ b/src/bundle/Resources/public/scss/_search-links-form.scss
@@ -21,7 +21,7 @@
padding-left: calculateRem(24px);
border-left: calculateRem(1px) solid $ibexa-color-light;
- .ibexa-label {
+ .ids-label {
margin-top: 0;
}
diff --git a/src/bundle/Resources/public/scss/_side-panel.scss b/src/bundle/Resources/public/scss/_side-panel.scss
index 045eeecec6..130cb273ca 100644
--- a/src/bundle/Resources/public/scss/_side-panel.scss
+++ b/src/bundle/Resources/public/scss/_side-panel.scss
@@ -30,16 +30,13 @@
&__footer {
display: flex;
align-items: center;
+ gap: calculateRem(16px);
box-shadow: 0 0 calculateRem(16px) 0 color.change($ibexa-color-dark, $alpha: 0.16);
z-index: 1000;
width: calculateRem(516px);
position: fixed;
bottom: 0;
- .ibexa-btn {
- margin-right: calculateRem(16px);
- }
-
.ibexa-notifications-modal__footer {
width: calculateRem(516px);
}
diff --git a/src/bundle/Resources/public/scss/_split-button.scss b/src/bundle/Resources/public/scss/_split-button.scss
index 86c17ec5de..f16ca352ac 100644
--- a/src/bundle/Resources/public/scss/_split-button.scss
+++ b/src/bundle/Resources/public/scss/_split-button.scss
@@ -16,6 +16,12 @@
border-bottom-right-radius: 0;
}
+ &__main-btn.ids-btn {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ height: calculateRem(48px);
+ }
+
&__split {
display: none;
z-index: 2;
@@ -27,21 +33,30 @@
border-top-left-radius: 0;
border-bottom-left-radius: 0;
+ .ids-icon,
.ibexa-icon {
transition: all $ibexa-admin-transition-duration $ibexa-admin-transition;
}
&--subitems-opened {
+ .ids-icon,
.ibexa-icon {
transform: rotate(180deg);
}
}
}
+ &__toggle-btn.ids-btn {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ height: calculateRem(48px);
+ }
+
&--primary {
background-image: $ibexa-gradient-danger-primary;
border-radius: $ibexa-border-radius;
+ .ids-btn.ids-btn--primary,
.ibexa-btn.ibexa-btn--primary {
background-image: none;
}
diff --git a/src/bundle/Resources/public/scss/_tables.scss b/src/bundle/Resources/public/scss/_tables.scss
index cb5e405fe4..f26a7ef76b 100644
--- a/src/bundle/Resources/public/scss/_tables.scss
+++ b/src/bundle/Resources/public/scss/_tables.scss
@@ -41,8 +41,8 @@
border-color: $ibexa-color-primary;
}
- .ibexa-input--checkbox,
- .ibexa-input--radio {
+ .ids-input--checkbox,
+ .ids-input--radio {
border-color: $ibexa-color-primary;
}
}
@@ -150,7 +150,7 @@
}
&__header-cell-checkbox {
- &.ibexa-input--checkbox {
+ &.ids-input--checkbox {
margin-bottom: 0;
}
}
@@ -187,7 +187,7 @@
&--has-checkbox {
width: calculateRem(48px);
- .ibexa-input--checkbox {
+ .ids-input--checkbox {
float: left;
margin-bottom: 0;
}
@@ -213,12 +213,12 @@
&--content-center {
text-align: center;
- .ibexa-input--checkbox {
+ .ids-input--checkbox {
margin-bottom: 0;
}
}
- .ibexa-input--radio {
+ .ids-input--radio {
vertical-align: middle;
}
}
diff --git a/src/bundle/Resources/public/scss/_tabs.scss b/src/bundle/Resources/public/scss/_tabs.scss
index ca3d0c7e4c..35033a0c3f 100644
--- a/src/bundle/Resources/public/scss/_tabs.scss
+++ b/src/bundle/Resources/public/scss/_tabs.scss
@@ -415,7 +415,7 @@
}
.form-group:first-child {
- .ibexa-label {
+ .ids-label {
margin-top: 0;
}
}
diff --git a/src/bundle/Resources/public/scss/_trash-search-form.scss b/src/bundle/Resources/public/scss/_trash-search-form.scss
index d8e1c2ac2e..5152e50116 100644
--- a/src/bundle/Resources/public/scss/_trash-search-form.scss
+++ b/src/bundle/Resources/public/scss/_trash-search-form.scss
@@ -80,13 +80,13 @@
&.ibexa-input.form-control:disabled {
background-color: $ibexa-color-white;
- & + .ibexa-btn--reset-creator {
+ & + .ids-btn--reset-creator {
display: block;
}
}
}
- .ibexa-btn--reset-creator {
+ .ids-btn--reset-creator {
display: none;
position: absolute;
right: 0;
diff --git a/src/bundle/Resources/public/scss/fieldType/edit/_base-field.scss b/src/bundle/Resources/public/scss/fieldType/edit/_base-field.scss
index ac813b4c86..62c04c15d5 100644
--- a/src/bundle/Resources/public/scss/fieldType/edit/_base-field.scss
+++ b/src/bundle/Resources/public/scss/fieldType/edit/_base-field.scss
@@ -35,7 +35,7 @@
display: flex;
align-self: flex-end;
- .ibexa-label {
+ .ids-label {
display: none;
padding-bottom: calculateRem(8px);
}
@@ -49,16 +49,18 @@
align-self: flex-end;
align-items: center;
- &--enable {
- display: inline-flex;
+ .ibexa-icon {
+ margin-right: calculateRem(8px);
}
+ }
- &--disable {
- display: none;
+ &__distraction-free-mode-btns {
+ .ibexa-field-edit__distraction-free-mode-control-btn--enable {
+ display: inline-flex;
}
- .ibexa-icon {
- margin-right: calculateRem(8px);
+ .ibexa-field-edit__distraction-free-mode-control-btn--disable {
+ display: none;
}
}
@@ -83,7 +85,7 @@
&--disabled {
pointer-events: none;
- .ibexa-label {
+ .ids-label {
color: $ibexa-color-black-300;
}
@@ -167,7 +169,7 @@
justify-content: space-between;
width: 100%;
- .ibexa-label {
+ .ids-label {
display: inline-flex;
margin: calculateRem(8px) 0 0 0;
}
@@ -175,12 +177,14 @@
&__distraction-free-mode-control-btn {
margin: 0;
+ }
- &--enable {
+ &__distraction-free-mode-btns {
+ .ibexa-field-edit__distraction-free-mode-control-btn--enable {
display: none;
}
- &--disable {
+ .ibexa-field-edit__distraction-free-mode-control-btn--disable {
display: inline-flex;
}
}
diff --git a/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_binaryfile.scss b/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_binaryfile.scss
index 759847e7c3..7357169420 100644
--- a/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_binaryfile.scss
+++ b/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_binaryfile.scss
@@ -35,7 +35,7 @@
font-size: calculateRem(16px);
margin-right: calculateRem(40px);
- .ibexa-label {
+ .ids-label {
margin-bottom: 0;
}
}
diff --git a/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_gmap_location.scss b/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_gmap_location.scss
index b3a5f35251..7d5924a474 100644
--- a/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_gmap_location.scss
+++ b/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_gmap_location.scss
@@ -86,7 +86,7 @@
width: 100%;
}
- .ibexa-btn--locate-me {
+ .ids-btn--locate-me {
padding: calculateRem(13px);
border: calculateRem(1px) solid $ibexa-color-dark-200;
border-left: none;
@@ -98,7 +98,7 @@
}
}
- .ibexa-btn--search-by-address {
+ .ids-btn--search-by-address {
position: absolute;
top: 0;
left: 0;
diff --git a/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_image.scss b/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_image.scss
index 29c35de5ce..052427b80c 100644
--- a/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_image.scss
+++ b/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_image.scss
@@ -7,7 +7,7 @@
&__file-name-wrapper,
&__dimensions-wrapper,
&__file-size-wrapper {
- .ibexa-label {
+ .ids-label {
margin-top: 0;
margin-bottom: 0;
}
diff --git a/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_image_asset.scss b/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_image_asset.scss
index ebace94d37..e513133aaa 100644
--- a/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_image_asset.scss
+++ b/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_image_asset.scss
@@ -25,7 +25,7 @@
.ibexa-field-edit-preview {
&__file-name-wrapper {
- .ibexa-label {
+ .ids-label {
margin-top: 0;
margin-bottom: 0;
}
diff --git a/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_media.scss b/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_media.scss
index f4dc7bb427..a1cd239b07 100644
--- a/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_media.scss
+++ b/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_media.scss
@@ -28,7 +28,7 @@
min-width: 0;
padding: calculateRem(8px);
- .ibexa-label {
+ .ids-label {
margin-top: 0;
margin-bottom: 0;
white-space: nowrap;
@@ -44,7 +44,7 @@
row-gap: calculateRem(12px);
column-gap: calculateRem(8px);
- .ibexa-input--checkbox {
+ .ibexa-field-edit-preview__checkbox {
margin-top: calculateRem(4px);
}
}
diff --git a/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_user.scss b/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_user.scss
index b58f04381b..8979239b5b 100644
--- a/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_user.scss
+++ b/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_user.scss
@@ -9,7 +9,7 @@
max-width: 80%;
.ibexa-data-source__field:first-of-type {
- .ibexa-label {
+ .ids-label {
margin-top: 0;
}
}
diff --git a/src/bundle/Resources/public/scss/ibexa-ids-assets.scss b/src/bundle/Resources/public/scss/ibexa-ids-assets.scss
new file mode 100644
index 0000000000..ff50c7dd19
--- /dev/null
+++ b/src/bundle/Resources/public/scss/ibexa-ids-assets.scss
@@ -0,0 +1,5 @@
+@use '@ibexa-admin-ui-assets/src/bundle/Resources/public/vendors/ids-assets/dist/scss/variables' with (
+ $assets-base-path: '/bundles/ibexaadminuiassets/vendors/ids-assets/dist/'
+);
+
+@use '@ibexa-admin-ui-assets/src/bundle/Resources/public/vendors/ids-assets/dist/scss/styles';
diff --git a/src/bundle/Resources/public/scss/ui/modules/common/_popup.scss b/src/bundle/Resources/public/scss/ui/modules/common/_popup.scss
index 6f16e7306a..5c7d48f9d2 100644
--- a/src/bundle/Resources/public/scss/ui/modules/common/_popup.scss
+++ b/src/bundle/Resources/public/scss/ui/modules/common/_popup.scss
@@ -74,7 +74,7 @@
}
}
- .ibexa-label--checkbox-radio {
+ .ids-choice-input-label {
padding-left: calculateRem(4px);
}
}
diff --git a/src/bundle/Resources/public/scss/ui/modules/common/_taggify.scss b/src/bundle/Resources/public/scss/ui/modules/common/_taggify.scss
index adc25d808d..95269aa1cc 100644
--- a/src/bundle/Resources/public/scss/ui/modules/common/_taggify.scss
+++ b/src/bundle/Resources/public/scss/ui/modules/common/_taggify.scss
@@ -20,6 +20,10 @@
flex: 1 1 auto;
order: 2;
margin: calculateRem(2px);
+
+ .c-taggify__new-tag-input-wrapper {
+ width: 100%;
+ }
}
&__tags {
@@ -35,6 +39,7 @@
border: 0 none;
outline: none;
background: transparent;
+ padding: 0;
}
&__bottom-hint {
diff --git a/src/bundle/Resources/public/scss/ui/modules/sub-items-list/_view-columns-toggler-list-element.scss b/src/bundle/Resources/public/scss/ui/modules/sub-items-list/_view-columns-toggler-list-element.scss
index 7873b20f62..fdbfea30dc 100644
--- a/src/bundle/Resources/public/scss/ui/modules/sub-items-list/_view-columns-toggler-list-element.scss
+++ b/src/bundle/Resources/public/scss/ui/modules/sub-items-list/_view-columns-toggler-list-element.scss
@@ -9,7 +9,7 @@
align-items: center;
}
- .ibexa-input--checkbox {
+ &__checkbox {
margin-right: calculateRem(8px);
}
diff --git a/src/bundle/Resources/public/scss/ui/modules/universal-discovery/_collapsible.scss b/src/bundle/Resources/public/scss/ui/modules/universal-discovery/_collapsible.scss
index ce400d881e..c31c8a81e6 100644
--- a/src/bundle/Resources/public/scss/ui/modules/universal-discovery/_collapsible.scss
+++ b/src/bundle/Resources/public/scss/ui/modules/universal-discovery/_collapsible.scss
@@ -79,7 +79,7 @@
overflow: hidden;
}
- .ibexa-input--checkbox {
+ .ids-input--checkbox {
margin-right: calculateRem(8px);
}
}
diff --git a/src/bundle/Resources/public/scss/ui/modules/universal-discovery/_content-type-selector-list.scss b/src/bundle/Resources/public/scss/ui/modules/universal-discovery/_content-type-selector-list.scss
index c559ad6a7b..d2afb2f7ae 100644
--- a/src/bundle/Resources/public/scss/ui/modules/universal-discovery/_content-type-selector-list.scss
+++ b/src/bundle/Resources/public/scss/ui/modules/universal-discovery/_content-type-selector-list.scss
@@ -20,7 +20,7 @@
font-size: $ibexa-text-font-size-medium;
}
- .ibexa-input--checkbox {
+ .c-content-type-selector-list__checkbox {
margin-right: calculateRem(8px);
}
}
diff --git a/src/bundle/Resources/public/scss/ui/modules/universal-discovery/_top-menu-search-input.scss b/src/bundle/Resources/public/scss/ui/modules/universal-discovery/_top-menu-search-input.scss
index a59d505365..fc91ad8515 100644
--- a/src/bundle/Resources/public/scss/ui/modules/universal-discovery/_top-menu-search-input.scss
+++ b/src/bundle/Resources/public/scss/ui/modules/universal-discovery/_top-menu-search-input.scss
@@ -18,24 +18,29 @@
}
&__search-input {
- position: absolute;
- width: calc(100% - #{calculateRem(224px)});
- top: 50%;
- left: calculateRem(65px);
- border: none;
- padding: 0;
- font-family: $ibexa-font-family-headings;
- font-weight: $ibexa-font-weight-bold;
- font-size: $ibexa-text-font-size-extra-large;
- opacity: 0;
- transform: translateY(-50%) scaleX(0);
- transform-origin: left;
- transition:
- all $ibexa-admin-transition-duration $ibexa-admin-transition,
- transform 0s;
+ &.ids-input-text {
+ position: absolute;
+ width: calc(100% - #{calculateRem(224px)});
+ top: 50%;
+ left: calculateRem(65px);
+ opacity: 0;
+ transform: translateY(-50%) scaleX(0);
+ transform-origin: left;
+ transition:
+ all $ibexa-admin-transition-duration $ibexa-admin-transition,
+ transform 0s;
+ }
+
+ .ids-input {
+ border: none;
+ padding: 0;
+ font-family: $ibexa-font-family-headings;
+ font-weight: $ibexa-font-weight-bold;
+ font-size: $ibexa-text-font-size-extra-large;
- &:focus {
- outline: none;
+ &:focus {
+ outline: none;
+ }
}
}
}
diff --git a/src/bundle/Resources/public/ts/admin.search.ts b/src/bundle/Resources/public/ts/admin.search.ts
index 52b7f673ec..23404c1996 100644
--- a/src/bundle/Resources/public/ts/admin.search.ts
+++ b/src/bundle/Resources/public/ts/admin.search.ts
@@ -4,7 +4,7 @@
const headerSearchInput = document.querySelector
-
+
If you don’t receive the email, double-check your email address and spam folder.
') }} -+ {{ 'ibexa.forgot_user_password.success'|trans|raw + |desc('
If you don’t receive the email, double check that you entered the correct email address and check your spam folder.
') }} +{{ 'ezplatform.forgot_password.reset_your_password.reason.migration'|trans|desc('Your password has expired, change it.') }}
{% endif %} {% if form_forgot_user_password is defined %} - {{ form_start(form_forgot_user_password, {'attr': {'class': 'ibexa-form-validate ibexa-login__forgot-password-form'} }) }} + {{ form_start(form_forgot_user_password, {'attr': {'class': 'ibexa-form-validate ibexa-login__forgot-password-form'}}) }} - {{ form_widget(form_forgot_user_password.reset, {'attr': {'class': 'btn ibexa-btn ibexa-btn--primary ibexa-login__btn ibexa-login__btn--reset-password'} }) }} + {{ form_widget(form_forgot_user_password.reset, {'attr': {'class': 'ids-btn ids-btn--primary ids-btn--medium ibexa-login__btn--reset-password'}}) }} {{ form_end(form_forgot_user_password) }} {% endif %} - - {{ 'authentication.reset_your_password.back_to_sign_in'|trans|desc('Back to sign in page') }} - {{ encore_entry_script_tags('ibexa-admin-ui-reset-password-js', null, 'ibexa') }} {%- endblock content -%} diff --git a/src/bundle/Resources/views/themes/admin/account/forgot_password/index_with_login.html.twig b/src/bundle/Resources/views/themes/admin/account/forgot_password/index_with_login.html.twig index 84f707c334..12a513896e 100644 --- a/src/bundle/Resources/views/themes/admin/account/forgot_password/index_with_login.html.twig +++ b/src/bundle/Resources/views/themes/admin/account/forgot_password/index_with_login.html.twig @@ -12,7 +12,7 @@ - {{ form_widget(form_forgot_user_password_with_login.reset, {'attr': {'class': 'btn ibexa-btn ibexa-btn--primary ibexa-login__btn ibexa-login__btn--reset-password'} }) }} + {{ form_widget(form_forgot_user_password_with_login.reset, {'attr': {'class': 'ids-btn ids-btn--primary ids-btn--medium ibexa-login__btn ibexa-login__btn--reset-password'}}) }} {{ form_end(form_forgot_user_password_with_login) }} {% endif %} diff --git a/src/bundle/Resources/views/themes/admin/account/login/index.html.twig b/src/bundle/Resources/views/themes/admin/account/login/index.html.twig index a87c58cfb9..6ea1d59b01 100644 --- a/src/bundle/Resources/views/themes/admin/account/login/index.html.twig +++ b/src/bundle/Resources/views/themes/admin/account/login/index.html.twig @@ -25,74 +25,56 @@ {% block login_form_fields %}