@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.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
- optionEl.classList.add('smilodon-option');
3496
- optionEl.classList.toggle('smilodon-option--selected', meta.selected);
3497
- optionEl.classList.toggle('smilodon-option--active', meta.active);
3498
- optionEl.classList.toggle('smilodon-option--disabled', meta.disabled);
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
  }