@smilodon/core 1.3.11 → 1.3.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +25 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +25 -4
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/index.umd.js +25 -4
- package/dist/index.umd.js.map +1 -1
- package/dist/index.umd.min.js +1 -1
- package/dist/index.umd.min.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3450,6 +3450,7 @@ class EnhancedSelect extends HTMLElement {
|
|
|
3450
3450
|
const optionId = `${this._uniqueId}-option-${index}`;
|
|
3451
3451
|
if (this._optionRenderer) {
|
|
3452
3452
|
const rendered = this._optionRenderer(item, index, this._rendererHelpers);
|
|
3453
|
+
// Ensure the returned element has the correct classes and listeners
|
|
3453
3454
|
const optionElement = this._normalizeCustomOptionElement(rendered, {
|
|
3454
3455
|
index,
|
|
3455
3456
|
value: getValue(item),
|
|
@@ -3492,10 +3493,30 @@ class EnhancedSelect extends HTMLElement {
|
|
|
3492
3493
|
}
|
|
3493
3494
|
_normalizeCustomOptionElement(element, meta) {
|
|
3494
3495
|
const optionEl = element instanceof HTMLElement ? element : document.createElement('div');
|
|
3495
|
-
|
|
3496
|
-
optionEl.classList.
|
|
3497
|
-
|
|
3498
|
-
|
|
3496
|
+
// Add both semantic namespaced classes and the legacy internal classes that CSS uses
|
|
3497
|
+
optionEl.classList.add('smilodon-option', 'option');
|
|
3498
|
+
// Toggle state classes
|
|
3499
|
+
const isSelected = meta.selected;
|
|
3500
|
+
const isActive = meta.active;
|
|
3501
|
+
const isDisabled = meta.disabled;
|
|
3502
|
+
if (isSelected) {
|
|
3503
|
+
optionEl.classList.add('smilodon-option--selected', 'selected');
|
|
3504
|
+
}
|
|
3505
|
+
else {
|
|
3506
|
+
optionEl.classList.remove('smilodon-option--selected', 'selected');
|
|
3507
|
+
}
|
|
3508
|
+
if (isActive) {
|
|
3509
|
+
optionEl.classList.add('smilodon-option--active', 'active');
|
|
3510
|
+
}
|
|
3511
|
+
else {
|
|
3512
|
+
optionEl.classList.remove('smilodon-option--active', 'active');
|
|
3513
|
+
}
|
|
3514
|
+
if (isDisabled) {
|
|
3515
|
+
optionEl.classList.add('smilodon-option--disabled', 'disabled');
|
|
3516
|
+
}
|
|
3517
|
+
else {
|
|
3518
|
+
optionEl.classList.remove('smilodon-option--disabled', 'disabled');
|
|
3519
|
+
}
|
|
3499
3520
|
if (!optionEl.hasAttribute('data-selectable')) {
|
|
3500
3521
|
optionEl.setAttribute('data-selectable', '');
|
|
3501
3522
|
}
|