@smilodon/core 1.4.3 → 1.4.4

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
@@ -1496,10 +1496,15 @@ class SelectOption extends HTMLElement {
1496
1496
  display: flex;
1497
1497
  align-items: center;
1498
1498
  justify-content: space-between;
1499
- padding: 8px 12px;
1499
+ padding: var(--select-option-padding, 8px 12px);
1500
1500
  cursor: pointer;
1501
1501
  user-select: none;
1502
- transition: background-color 0.2s ease;
1502
+ transition: var(--select-option-transition, background-color 0.2s ease);
1503
+ border: var(--select-option-border, none);
1504
+ border-bottom: var(--select-option-border-bottom, none);
1505
+ border-radius: var(--select-option-border-radius, 0);
1506
+ box-shadow: var(--select-option-shadow, none);
1507
+ transform: var(--select-option-transform, none);
1503
1508
  }
1504
1509
 
1505
1510
  .option-container:hover {
@@ -1509,6 +1514,20 @@ class SelectOption extends HTMLElement {
1509
1514
  .option-container.selected {
1510
1515
  background-color: var(--select-option-selected-bg, #e3f2fd);
1511
1516
  color: var(--select-option-selected-color, #1976d2);
1517
+ border: var(--select-option-selected-border, var(--select-option-border, none));
1518
+ border-bottom: var(--select-option-selected-border-bottom, var(--select-option-border-bottom, none));
1519
+ border-radius: var(--select-option-selected-border-radius, var(--select-option-border-radius, 0));
1520
+ box-shadow: var(--select-option-selected-shadow, var(--select-option-shadow, none));
1521
+ transform: var(--select-option-selected-transform, var(--select-option-transform, none));
1522
+ }
1523
+
1524
+ .option-container.selected:hover {
1525
+ background-color: var(--select-option-selected-hover-bg, var(--select-option-selected-bg, #e3f2fd));
1526
+ color: var(--select-option-selected-hover-color, var(--select-option-selected-color, #1976d2));
1527
+ border: var(--select-option-selected-hover-border, var(--select-option-selected-border, var(--select-option-border, none)));
1528
+ border-bottom: var(--select-option-selected-hover-border-bottom, var(--select-option-selected-border-bottom, var(--select-option-border-bottom, none)));
1529
+ box-shadow: var(--select-option-selected-hover-shadow, var(--select-option-selected-shadow, var(--select-option-shadow, none)));
1530
+ transform: var(--select-option-selected-hover-transform, var(--select-option-selected-transform, var(--select-option-transform, none)));
1512
1531
  }
1513
1532
 
1514
1533
  .option-container.active {
@@ -1816,6 +1835,16 @@ if (!customElements.get('select-option')) {
1816
1835
  * server-side selection, and full customization
1817
1836
  */
1818
1837
  class EnhancedSelect extends HTMLElement {
1838
+ get classMap() {
1839
+ return this._classMap;
1840
+ }
1841
+ set classMap(map) {
1842
+ this._classMap = map;
1843
+ this._setGlobalStylesMirroring(Boolean(this._optionRenderer || map));
1844
+ if (!this.isConnected)
1845
+ return;
1846
+ this._renderOptions();
1847
+ }
1819
1848
  constructor() {
1820
1849
  super();
1821
1850
  this._pageCache = {};
@@ -2289,6 +2318,9 @@ class EnhancedSelect extends HTMLElement {
2289
2318
  line-height: var(--select-option-line-height, 1.5);
2290
2319
  border: var(--select-option-border, none);
2291
2320
  border-bottom: var(--select-option-border-bottom, none);
2321
+ border-radius: var(--select-option-border-radius, 0);
2322
+ box-shadow: var(--select-option-shadow, none);
2323
+ transform: var(--select-option-transform, none);
2292
2324
  }
2293
2325
 
2294
2326
  .option:hover {
@@ -2300,6 +2332,20 @@ class EnhancedSelect extends HTMLElement {
2300
2332
  background-color: var(--select-option-selected-bg, #e0e7ff);
2301
2333
  color: var(--select-option-selected-color, #4338ca);
2302
2334
  font-weight: var(--select-option-selected-weight, 500);
2335
+ border: var(--select-option-selected-border, var(--select-option-border, none));
2336
+ border-bottom: var(--select-option-selected-border-bottom, var(--select-option-border-bottom, none));
2337
+ border-radius: var(--select-option-selected-border-radius, var(--select-option-border-radius, 0));
2338
+ box-shadow: var(--select-option-selected-shadow, var(--select-option-shadow, none));
2339
+ transform: var(--select-option-selected-transform, var(--select-option-transform, none));
2340
+ }
2341
+
2342
+ .option.selected:hover {
2343
+ background-color: var(--select-option-selected-hover-bg, var(--select-option-selected-bg, #e0e7ff));
2344
+ color: var(--select-option-selected-hover-color, var(--select-option-selected-color, #4338ca));
2345
+ border: var(--select-option-selected-hover-border, var(--select-option-selected-border, var(--select-option-border, none)));
2346
+ border-bottom: var(--select-option-selected-hover-border-bottom, var(--select-option-selected-border-bottom, var(--select-option-border-bottom, none)));
2347
+ box-shadow: var(--select-option-selected-hover-shadow, var(--select-option-selected-shadow, var(--select-option-shadow, none)));
2348
+ transform: var(--select-option-selected-hover-transform, var(--select-option-selected-transform, var(--select-option-transform, none)));
2303
2349
  }
2304
2350
 
2305
2351
  .option.active {
@@ -2457,6 +2503,19 @@ class EnhancedSelect extends HTMLElement {
2457
2503
  .option.selected {
2458
2504
  background-color: var(--select-dark-option-selected-bg, #3730a3);
2459
2505
  color: var(--select-dark-option-selected-text, #e0e7ff);
2506
+ border: var(--select-dark-option-selected-border, var(--select-option-selected-border, var(--select-option-border, none)));
2507
+ border-bottom: var(--select-dark-option-selected-border-bottom, var(--select-option-selected-border-bottom, var(--select-option-border-bottom, none)));
2508
+ box-shadow: var(--select-dark-option-selected-shadow, var(--select-option-selected-shadow, var(--select-option-shadow, none)));
2509
+ transform: var(--select-dark-option-selected-transform, var(--select-option-selected-transform, var(--select-option-transform, none)));
2510
+ }
2511
+
2512
+ .option.selected:hover {
2513
+ background-color: var(--select-dark-option-selected-hover-bg, var(--select-dark-option-selected-bg, #3730a3));
2514
+ color: var(--select-dark-option-selected-hover-color, var(--select-dark-option-selected-text, #e0e7ff));
2515
+ border: var(--select-dark-option-selected-hover-border, var(--select-dark-option-selected-border, var(--select-option-selected-hover-border, var(--select-option-selected-border, var(--select-option-border, none)))));
2516
+ border-bottom: var(--select-dark-option-selected-hover-border-bottom, var(--select-dark-option-selected-border-bottom, var(--select-option-selected-hover-border-bottom, var(--select-option-selected-border-bottom, var(--select-option-border-bottom, none)))));
2517
+ box-shadow: var(--select-dark-option-selected-hover-shadow, var(--select-dark-option-selected-shadow, var(--select-option-selected-hover-shadow, var(--select-option-selected-shadow, var(--select-option-shadow, none)))));
2518
+ transform: var(--select-dark-option-selected-hover-transform, var(--select-dark-option-selected-transform, var(--select-option-selected-hover-transform, var(--select-option-selected-transform, var(--select-option-transform, none)))));
2460
2519
  }
2461
2520
 
2462
2521
  .option.active {
@@ -3072,6 +3131,10 @@ class EnhancedSelect extends HTMLElement {
3072
3131
  const item = this._state.loadedItems[index];
3073
3132
  if (!item)
3074
3133
  return;
3134
+ // Keep active/focus styling aligned with the most recently interacted option.
3135
+ // Without this, a previously selected item may retain active classes/styles
3136
+ // after selecting a different option.
3137
+ this._state.activeIndex = index;
3075
3138
  const isCurrentlySelected = this._state.selectedIndices.has(index);
3076
3139
  if (this._config.selection.mode === 'single') {
3077
3140
  // Single select: clear previous and select new
@@ -3311,7 +3374,7 @@ class EnhancedSelect extends HTMLElement {
3311
3374
  }
3312
3375
  set optionRenderer(renderer) {
3313
3376
  this._optionRenderer = renderer;
3314
- this._setGlobalStylesMirroring(Boolean(renderer));
3377
+ this._setGlobalStylesMirroring(Boolean(renderer || this._classMap));
3315
3378
  this._renderOptions();
3316
3379
  }
3317
3380
  /**