@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 CHANGED
@@ -3452,6 +3452,7 @@ class EnhancedSelect extends HTMLElement {
3452
3452
  const optionId = `${this._uniqueId}-option-${index}`;
3453
3453
  if (this._optionRenderer) {
3454
3454
  const rendered = this._optionRenderer(item, index, this._rendererHelpers);
3455
+ // Ensure the returned element has the correct classes and listeners
3455
3456
  const optionElement = this._normalizeCustomOptionElement(rendered, {
3456
3457
  index,
3457
3458
  value: getValue(item),
@@ -3494,10 +3495,30 @@ class EnhancedSelect extends HTMLElement {
3494
3495
  }
3495
3496
  _normalizeCustomOptionElement(element, meta) {
3496
3497
  const optionEl = element instanceof HTMLElement ? element : document.createElement('div');
3497
- optionEl.classList.add('smilodon-option');
3498
- optionEl.classList.toggle('smilodon-option--selected', meta.selected);
3499
- optionEl.classList.toggle('smilodon-option--active', meta.active);
3500
- optionEl.classList.toggle('smilodon-option--disabled', meta.disabled);
3498
+ // Add both semantic namespaced classes and the legacy internal classes that CSS uses
3499
+ optionEl.classList.add('smilodon-option', 'option');
3500
+ // Toggle state classes
3501
+ const isSelected = meta.selected;
3502
+ const isActive = meta.active;
3503
+ const isDisabled = meta.disabled;
3504
+ if (isSelected) {
3505
+ optionEl.classList.add('smilodon-option--selected', 'selected');
3506
+ }
3507
+ else {
3508
+ optionEl.classList.remove('smilodon-option--selected', 'selected');
3509
+ }
3510
+ if (isActive) {
3511
+ optionEl.classList.add('smilodon-option--active', 'active');
3512
+ }
3513
+ else {
3514
+ optionEl.classList.remove('smilodon-option--active', 'active');
3515
+ }
3516
+ if (isDisabled) {
3517
+ optionEl.classList.add('smilodon-option--disabled', 'disabled');
3518
+ }
3519
+ else {
3520
+ optionEl.classList.remove('smilodon-option--disabled', 'disabled');
3521
+ }
3501
3522
  if (!optionEl.hasAttribute('data-selectable')) {
3502
3523
  optionEl.setAttribute('data-selectable', '');
3503
3524
  }