@smilodon/core 1.4.2 → 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/README.md +6 -0
- package/dist/index.cjs +66 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +66 -3
- 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 +66 -3
- 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/dist/types/src/components/enhanced-select.d.ts +3 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -560,6 +560,9 @@ enhanced-select {
|
|
|
560
560
|
/* Selected state */
|
|
561
561
|
--select-option-selected-bg: #e0e7ff;
|
|
562
562
|
--select-option-selected-color: #4338ca;
|
|
563
|
+
--select-option-selected-border: 1px solid #4338ca;
|
|
564
|
+
--select-option-selected-hover-bg: #c7d2fe;
|
|
565
|
+
--select-option-selected-hover-border: 1px solid #3730a3;
|
|
563
566
|
|
|
564
567
|
/* Active/focused state */
|
|
565
568
|
--select-option-active-bg: #f3f4f6;
|
|
@@ -610,6 +613,9 @@ enhanced-select.dark-mode {
|
|
|
610
613
|
--select-option-hover-color /* Hover text color (#1f2937) */
|
|
611
614
|
--select-option-selected-bg /* Selected background (#e0e7ff) */
|
|
612
615
|
--select-option-selected-color /* Selected text color (#4338ca) */
|
|
616
|
+
--select-option-selected-border /* Selected border (inherits option border by default) */
|
|
617
|
+
--select-option-selected-hover-bg /* Selected+hover background (inherits selected bg by default) */
|
|
618
|
+
--select-option-selected-hover-border /* Selected+hover border (inherits selected border by default) */
|
|
613
619
|
--select-option-active-bg /* Active background (#f3f4f6) */
|
|
614
620
|
--select-option-active-color /* Active text color (#1f2937) */
|
|
615
621
|
--select-dropdown-bg /* Dropdown background (white) */
|
package/dist/index.cjs
CHANGED
|
@@ -1498,10 +1498,15 @@ class SelectOption extends HTMLElement {
|
|
|
1498
1498
|
display: flex;
|
|
1499
1499
|
align-items: center;
|
|
1500
1500
|
justify-content: space-between;
|
|
1501
|
-
padding: 8px 12px;
|
|
1501
|
+
padding: var(--select-option-padding, 8px 12px);
|
|
1502
1502
|
cursor: pointer;
|
|
1503
1503
|
user-select: none;
|
|
1504
|
-
transition: background-color 0.2s ease;
|
|
1504
|
+
transition: var(--select-option-transition, background-color 0.2s ease);
|
|
1505
|
+
border: var(--select-option-border, none);
|
|
1506
|
+
border-bottom: var(--select-option-border-bottom, none);
|
|
1507
|
+
border-radius: var(--select-option-border-radius, 0);
|
|
1508
|
+
box-shadow: var(--select-option-shadow, none);
|
|
1509
|
+
transform: var(--select-option-transform, none);
|
|
1505
1510
|
}
|
|
1506
1511
|
|
|
1507
1512
|
.option-container:hover {
|
|
@@ -1511,6 +1516,20 @@ class SelectOption extends HTMLElement {
|
|
|
1511
1516
|
.option-container.selected {
|
|
1512
1517
|
background-color: var(--select-option-selected-bg, #e3f2fd);
|
|
1513
1518
|
color: var(--select-option-selected-color, #1976d2);
|
|
1519
|
+
border: var(--select-option-selected-border, var(--select-option-border, none));
|
|
1520
|
+
border-bottom: var(--select-option-selected-border-bottom, var(--select-option-border-bottom, none));
|
|
1521
|
+
border-radius: var(--select-option-selected-border-radius, var(--select-option-border-radius, 0));
|
|
1522
|
+
box-shadow: var(--select-option-selected-shadow, var(--select-option-shadow, none));
|
|
1523
|
+
transform: var(--select-option-selected-transform, var(--select-option-transform, none));
|
|
1524
|
+
}
|
|
1525
|
+
|
|
1526
|
+
.option-container.selected:hover {
|
|
1527
|
+
background-color: var(--select-option-selected-hover-bg, var(--select-option-selected-bg, #e3f2fd));
|
|
1528
|
+
color: var(--select-option-selected-hover-color, var(--select-option-selected-color, #1976d2));
|
|
1529
|
+
border: var(--select-option-selected-hover-border, var(--select-option-selected-border, var(--select-option-border, none)));
|
|
1530
|
+
border-bottom: var(--select-option-selected-hover-border-bottom, var(--select-option-selected-border-bottom, var(--select-option-border-bottom, none)));
|
|
1531
|
+
box-shadow: var(--select-option-selected-hover-shadow, var(--select-option-selected-shadow, var(--select-option-shadow, none)));
|
|
1532
|
+
transform: var(--select-option-selected-hover-transform, var(--select-option-selected-transform, var(--select-option-transform, none)));
|
|
1514
1533
|
}
|
|
1515
1534
|
|
|
1516
1535
|
.option-container.active {
|
|
@@ -1818,6 +1837,16 @@ if (!customElements.get('select-option')) {
|
|
|
1818
1837
|
* server-side selection, and full customization
|
|
1819
1838
|
*/
|
|
1820
1839
|
class EnhancedSelect extends HTMLElement {
|
|
1840
|
+
get classMap() {
|
|
1841
|
+
return this._classMap;
|
|
1842
|
+
}
|
|
1843
|
+
set classMap(map) {
|
|
1844
|
+
this._classMap = map;
|
|
1845
|
+
this._setGlobalStylesMirroring(Boolean(this._optionRenderer || map));
|
|
1846
|
+
if (!this.isConnected)
|
|
1847
|
+
return;
|
|
1848
|
+
this._renderOptions();
|
|
1849
|
+
}
|
|
1821
1850
|
constructor() {
|
|
1822
1851
|
super();
|
|
1823
1852
|
this._pageCache = {};
|
|
@@ -2291,6 +2320,9 @@ class EnhancedSelect extends HTMLElement {
|
|
|
2291
2320
|
line-height: var(--select-option-line-height, 1.5);
|
|
2292
2321
|
border: var(--select-option-border, none);
|
|
2293
2322
|
border-bottom: var(--select-option-border-bottom, none);
|
|
2323
|
+
border-radius: var(--select-option-border-radius, 0);
|
|
2324
|
+
box-shadow: var(--select-option-shadow, none);
|
|
2325
|
+
transform: var(--select-option-transform, none);
|
|
2294
2326
|
}
|
|
2295
2327
|
|
|
2296
2328
|
.option:hover {
|
|
@@ -2302,6 +2334,20 @@ class EnhancedSelect extends HTMLElement {
|
|
|
2302
2334
|
background-color: var(--select-option-selected-bg, #e0e7ff);
|
|
2303
2335
|
color: var(--select-option-selected-color, #4338ca);
|
|
2304
2336
|
font-weight: var(--select-option-selected-weight, 500);
|
|
2337
|
+
border: var(--select-option-selected-border, var(--select-option-border, none));
|
|
2338
|
+
border-bottom: var(--select-option-selected-border-bottom, var(--select-option-border-bottom, none));
|
|
2339
|
+
border-radius: var(--select-option-selected-border-radius, var(--select-option-border-radius, 0));
|
|
2340
|
+
box-shadow: var(--select-option-selected-shadow, var(--select-option-shadow, none));
|
|
2341
|
+
transform: var(--select-option-selected-transform, var(--select-option-transform, none));
|
|
2342
|
+
}
|
|
2343
|
+
|
|
2344
|
+
.option.selected:hover {
|
|
2345
|
+
background-color: var(--select-option-selected-hover-bg, var(--select-option-selected-bg, #e0e7ff));
|
|
2346
|
+
color: var(--select-option-selected-hover-color, var(--select-option-selected-color, #4338ca));
|
|
2347
|
+
border: var(--select-option-selected-hover-border, var(--select-option-selected-border, var(--select-option-border, none)));
|
|
2348
|
+
border-bottom: var(--select-option-selected-hover-border-bottom, var(--select-option-selected-border-bottom, var(--select-option-border-bottom, none)));
|
|
2349
|
+
box-shadow: var(--select-option-selected-hover-shadow, var(--select-option-selected-shadow, var(--select-option-shadow, none)));
|
|
2350
|
+
transform: var(--select-option-selected-hover-transform, var(--select-option-selected-transform, var(--select-option-transform, none)));
|
|
2305
2351
|
}
|
|
2306
2352
|
|
|
2307
2353
|
.option.active {
|
|
@@ -2459,6 +2505,19 @@ class EnhancedSelect extends HTMLElement {
|
|
|
2459
2505
|
.option.selected {
|
|
2460
2506
|
background-color: var(--select-dark-option-selected-bg, #3730a3);
|
|
2461
2507
|
color: var(--select-dark-option-selected-text, #e0e7ff);
|
|
2508
|
+
border: var(--select-dark-option-selected-border, var(--select-option-selected-border, var(--select-option-border, none)));
|
|
2509
|
+
border-bottom: var(--select-dark-option-selected-border-bottom, var(--select-option-selected-border-bottom, var(--select-option-border-bottom, none)));
|
|
2510
|
+
box-shadow: var(--select-dark-option-selected-shadow, var(--select-option-selected-shadow, var(--select-option-shadow, none)));
|
|
2511
|
+
transform: var(--select-dark-option-selected-transform, var(--select-option-selected-transform, var(--select-option-transform, none)));
|
|
2512
|
+
}
|
|
2513
|
+
|
|
2514
|
+
.option.selected:hover {
|
|
2515
|
+
background-color: var(--select-dark-option-selected-hover-bg, var(--select-dark-option-selected-bg, #3730a3));
|
|
2516
|
+
color: var(--select-dark-option-selected-hover-color, var(--select-dark-option-selected-text, #e0e7ff));
|
|
2517
|
+
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)))));
|
|
2518
|
+
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)))));
|
|
2519
|
+
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)))));
|
|
2520
|
+
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)))));
|
|
2462
2521
|
}
|
|
2463
2522
|
|
|
2464
2523
|
.option.active {
|
|
@@ -3074,6 +3133,10 @@ class EnhancedSelect extends HTMLElement {
|
|
|
3074
3133
|
const item = this._state.loadedItems[index];
|
|
3075
3134
|
if (!item)
|
|
3076
3135
|
return;
|
|
3136
|
+
// Keep active/focus styling aligned with the most recently interacted option.
|
|
3137
|
+
// Without this, a previously selected item may retain active classes/styles
|
|
3138
|
+
// after selecting a different option.
|
|
3139
|
+
this._state.activeIndex = index;
|
|
3077
3140
|
const isCurrentlySelected = this._state.selectedIndices.has(index);
|
|
3078
3141
|
if (this._config.selection.mode === 'single') {
|
|
3079
3142
|
// Single select: clear previous and select new
|
|
@@ -3313,7 +3376,7 @@ class EnhancedSelect extends HTMLElement {
|
|
|
3313
3376
|
}
|
|
3314
3377
|
set optionRenderer(renderer) {
|
|
3315
3378
|
this._optionRenderer = renderer;
|
|
3316
|
-
this._setGlobalStylesMirroring(Boolean(renderer));
|
|
3379
|
+
this._setGlobalStylesMirroring(Boolean(renderer || this._classMap));
|
|
3317
3380
|
this._renderOptions();
|
|
3318
3381
|
}
|
|
3319
3382
|
/**
|