@llui/components 0.0.7 → 0.0.9

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.
@@ -56,6 +56,9 @@ export * as inView from './in-view';
56
56
  export * as form from './form';
57
57
  export * as sortable from './sortable';
58
58
  export * as themeSwitch from './theme-switch';
59
+ export { validateSchema, validateSchemaAsync } from './form';
60
+ export { reorder } from './sortable';
61
+ export { resolveTheme, applyTheme, watchSystemTheme } from './theme-switch';
59
62
  export type { FormState, FormMsg, FormStatus, FormParts, ValidateResult } from './form';
60
63
  export type { SortableState, SortableMsg, SortableParts, DragState } from './sortable';
61
64
  export type { ThemeSwitchState, ThemeSwitchMsg, ThemeSwitchParts, Theme, ResolvedTheme, } from './theme-switch';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
@@ -56,3 +56,6 @@ export * as inView from './in-view';
56
56
  export * as form from './form';
57
57
  export * as sortable from './sortable';
58
58
  export * as themeSwitch from './theme-switch';
59
+ export { validateSchema, validateSchemaAsync } from './form';
60
+ export { reorder } from './sortable';
61
+ export { resolveTheme, applyTheme, watchSystemTheme } from './theme-switch';
@@ -47,6 +47,25 @@ export interface DragState {
47
47
  id: string;
48
48
  startIndex: number;
49
49
  currentIndex: number;
50
+ /**
51
+ * Container the drag originated from. Defaults to the connect's `id` for
52
+ * single-container sortables. Set when multiple sortables share state.
53
+ */
54
+ fromContainer: string;
55
+ /**
56
+ * Container the pointer is currently over. Same as `fromContainer` for
57
+ * single-container sortables. Differs when dragging across containers.
58
+ */
59
+ toContainer: string;
60
+ /**
61
+ * Pointer Y at drag start (viewport coordinates). Used by CSS to make
62
+ * the dragged item follow the pointer via translateY(deltaY).
63
+ */
64
+ startY: number;
65
+ /**
66
+ * Current pointer Y (viewport coordinates). `deltaY = currentY - startY`.
67
+ */
68
+ currentY: number;
50
69
  }
51
70
  export interface SortableState {
52
71
  dragging: DragState | null;
@@ -55,13 +74,25 @@ export type SortableMsg = {
55
74
  type: 'start';
56
75
  id: string;
57
76
  index: number;
77
+ container: string;
78
+ y: number;
58
79
  } | {
59
80
  type: 'move';
60
81
  index: number;
82
+ container: string;
83
+ y: number;
61
84
  } | {
62
85
  type: 'drop';
63
86
  } | {
64
87
  type: 'cancel';
88
+ } | {
89
+ type: 'toggleGrab';
90
+ id: string;
91
+ index: number;
92
+ container: string;
93
+ } | {
94
+ type: 'moveBy';
95
+ delta: number;
65
96
  };
66
97
  export declare function init(): SortableState;
67
98
  export declare function update(state: SortableState, msg: SortableMsg): [SortableState, never[]];
@@ -69,6 +100,7 @@ export interface SortableParts<S> {
69
100
  root: {
70
101
  'data-scope': 'sortable';
71
102
  'data-part': 'root';
103
+ 'data-container-id': string;
72
104
  'data-dragging': (s: S) => '' | undefined;
73
105
  onPointerMove: (e: PointerEvent) => void;
74
106
  onPointerUp: (e: PointerEvent) => void;
@@ -81,17 +113,25 @@ export interface SortableParts<S> {
81
113
  'data-id': string;
82
114
  'data-dragging': (s: S) => '' | undefined;
83
115
  'data-over': (s: S) => '' | undefined;
116
+ 'data-shift': (s: S) => 'up' | 'down' | undefined;
117
+ 'style.transform': (s: S) => string | undefined;
118
+ 'style.zIndex': (s: S) => string | undefined;
84
119
  };
85
120
  handle: (id: string, index: number) => {
86
121
  'data-scope': 'sortable';
87
122
  'data-part': 'handle';
123
+ role: 'button';
124
+ tabIndex: 0;
125
+ 'aria-grabbed': (s: S) => boolean;
126
+ 'aria-label': string;
88
127
  onPointerDown: (e: PointerEvent) => void;
128
+ onKeyDown: (e: KeyboardEvent) => void;
89
129
  };
90
130
  }
91
131
  export interface ConnectOptions {
92
132
  id: string;
93
133
  }
94
- export declare function connect<S>(get: (s: S) => SortableState, send: Send<SortableMsg>, _opts: ConnectOptions): SortableParts<S>;
134
+ export declare function connect<S>(get: (s: S) => SortableState, send: Send<SortableMsg>, opts: ConnectOptions): SortableParts<S>;
95
135
  /**
96
136
  * Move an item in an array from one index to another, returning a new array.
97
137
  * Out-of-range indices are clamped to array bounds.
@@ -1 +1 @@
1
- {"version":3,"file":"sortable.d.ts","sourceRoot":"","sources":["../../src/components/sortable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAErC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAA;CAC3B;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAA;AAEtB,wBAAgB,IAAI,IAAI,aAAa,CAEpC;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,WAAW,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,CAcvF;AAED,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,IAAI,EAAE;QACJ,YAAY,EAAE,UAAU,CAAA;QACxB,WAAW,EAAE,MAAM,CAAA;QACnB,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,SAAS,CAAA;QACzC,aAAa,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,CAAA;QACxC,WAAW,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,CAAA;QACtC,eAAe,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,CAAA;KAC3C,CAAA;IACD,IAAI,EAAE,CACJ,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,KACV;QACH,YAAY,EAAE,UAAU,CAAA;QACxB,WAAW,EAAE,MAAM,CAAA;QACnB,YAAY,EAAE,MAAM,CAAA;QACpB,SAAS,EAAE,MAAM,CAAA;QACjB,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,SAAS,CAAA;QACzC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,SAAS,CAAA;KACtC,CAAA;IACD,MAAM,EAAE,CACN,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,KACV;QACH,YAAY,EAAE,UAAU,CAAA;QACxB,WAAW,EAAE,QAAQ,CAAA;QACrB,aAAa,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,CAAA;KACzC,CAAA;CACF;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;CACX;AAED,wBAAgB,OAAO,CAAC,CAAC,EACvB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,aAAa,EAC5B,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,EACvB,KAAK,EAAE,cAAc,GACpB,aAAa,CAAC,CAAC,CAAC,CAuDlB;AAID;;;GAGG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE,CAU3E;AAED,eAAO,MAAM,QAAQ;;;;;CAAqC,CAAA"}
1
+ {"version":3,"file":"sortable.d.ts","sourceRoot":"","sources":["../../src/components/sortable.ts"],"names":[],"mappings":"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"}
@@ -4,61 +4,228 @@ export function init() {
4
4
  export function update(state, msg) {
5
5
  switch (msg.type) {
6
6
  case 'start':
7
- return [{ dragging: { id: msg.id, startIndex: msg.index, currentIndex: msg.index } }, []];
7
+ return [
8
+ {
9
+ dragging: {
10
+ id: msg.id,
11
+ startIndex: msg.index,
12
+ currentIndex: msg.index,
13
+ fromContainer: msg.container,
14
+ toContainer: msg.container,
15
+ startY: msg.y,
16
+ currentY: msg.y,
17
+ },
18
+ },
19
+ [],
20
+ ];
8
21
  case 'move': {
9
22
  if (!state.dragging)
10
23
  return [state, []];
11
- if (state.dragging.currentIndex === msg.index)
24
+ if (state.dragging.currentIndex === msg.index &&
25
+ state.dragging.toContainer === msg.container &&
26
+ state.dragging.currentY === msg.y) {
12
27
  return [state, []];
13
- return [{ dragging: { ...state.dragging, currentIndex: msg.index } }, []];
28
+ }
29
+ return [
30
+ {
31
+ dragging: {
32
+ ...state.dragging,
33
+ currentIndex: msg.index,
34
+ toContainer: msg.container,
35
+ currentY: msg.y,
36
+ },
37
+ },
38
+ [],
39
+ ];
14
40
  }
15
41
  case 'drop':
16
42
  return state.dragging ? [{ dragging: null }, []] : [state, []];
17
43
  case 'cancel':
18
44
  return state.dragging ? [{ dragging: null }, []] : [state, []];
45
+ case 'toggleGrab':
46
+ if (state.dragging) {
47
+ // Already dragging — drop at current position
48
+ return [{ dragging: null }, []];
49
+ }
50
+ // Pick up (keyboard — no pointer position)
51
+ return [
52
+ {
53
+ dragging: {
54
+ id: msg.id,
55
+ startIndex: msg.index,
56
+ currentIndex: msg.index,
57
+ fromContainer: msg.container,
58
+ toContainer: msg.container,
59
+ startY: 0,
60
+ currentY: 0,
61
+ },
62
+ },
63
+ [],
64
+ ];
65
+ case 'moveBy': {
66
+ if (!state.dragging)
67
+ return [state, []];
68
+ const next = Math.max(0, state.dragging.currentIndex + msg.delta);
69
+ if (next === state.dragging.currentIndex)
70
+ return [state, []];
71
+ return [{ dragging: { ...state.dragging, currentIndex: next } }, []];
72
+ }
19
73
  }
20
74
  }
21
- export function connect(get, send, _opts) {
22
- const findItemIndex = (e) => {
23
- // Walk up from the element at the pointer looking for [data-part="item"]
24
- const target = document.elementFromPoint(e.clientX, e.clientY);
25
- if (!target)
26
- return null;
27
- const item = target.closest('[data-scope="sortable"][data-part="item"]');
28
- if (!item)
29
- return null;
30
- const idxStr = item.dataset.index;
31
- if (idxStr === undefined)
32
- return null;
33
- const idx = Number(idxStr);
34
- return Number.isFinite(idx) ? idx : null;
35
- };
75
+ export function connect(get, send, opts) {
76
+ // The connect's `id` doubles as the cross-container identifier
77
+ const containerId = opts.id;
78
+ const snapshots = new Map();
79
+ function snapshotContainer(rootEl, cid) {
80
+ const items = rootEl.querySelectorAll('[data-scope="sortable"][data-part="item"]');
81
+ // Read rects once — they're pre-transform (no drag shifts yet)
82
+ const mids = [];
83
+ const idToIndex = new Map();
84
+ items.forEach((item, i) => {
85
+ const r = item.getBoundingClientRect();
86
+ mids.push(r.top + r.height / 2);
87
+ const itemId = item.dataset.id;
88
+ if (itemId !== undefined)
89
+ idToIndex.set(itemId, i);
90
+ });
91
+ snapshots.set(cid, { mids, idToIndex });
92
+ }
93
+ function snapshotAll() {
94
+ const roots = document.querySelectorAll('[data-scope="sortable"][data-part="root"]');
95
+ for (const root of roots) {
96
+ const cid = root.dataset.containerId;
97
+ if (cid)
98
+ snapshotContainer(root, cid);
99
+ }
100
+ }
101
+ // Find the target index under the pointer using the drag-start snapshot.
102
+ // Picks the index whose midpoint is closest to the pointer Y — stable
103
+ // against items being visually transformed during the drag.
104
+ function findTargetAt(e) {
105
+ // Find which sortable root the pointer is over (using getBoundingClientRect
106
+ // on roots, which are not transformed during drag).
107
+ const roots = document.querySelectorAll('[data-scope="sortable"][data-part="root"]');
108
+ for (const root of roots) {
109
+ const r = root.getBoundingClientRect();
110
+ if (e.clientX < r.left || e.clientX > r.right)
111
+ continue;
112
+ if (e.clientY < r.top || e.clientY > r.bottom)
113
+ continue;
114
+ const cid = root.dataset.containerId;
115
+ if (!cid)
116
+ continue;
117
+ const snap = snapshots.get(cid);
118
+ if (!snap || snap.mids.length === 0)
119
+ return { container: cid, index: 0 };
120
+ const mids = snap.mids;
121
+ // Find the index whose midpoint is closest to clientY
122
+ let bestIdx = 0;
123
+ let bestDist = Math.abs(e.clientY - mids[0]);
124
+ for (let i = 1; i < mids.length; i++) {
125
+ const d = Math.abs(e.clientY - mids[i]);
126
+ if (d < bestDist) {
127
+ bestDist = d;
128
+ bestIdx = i;
129
+ }
130
+ }
131
+ return { container: cid, index: bestIdx };
132
+ }
133
+ return null;
134
+ }
36
135
  return {
37
136
  root: {
38
137
  'data-scope': 'sortable',
39
138
  'data-part': 'root',
139
+ 'data-container-id': containerId,
40
140
  'data-dragging': (s) => (get(s).dragging ? '' : undefined),
41
141
  onPointerMove: (e) => {
42
142
  if (!e.buttons)
43
143
  return;
44
- const idx = findItemIndex(e);
45
- if (idx !== null)
46
- send({ type: 'move', index: idx });
144
+ const hit = findTargetAt(e);
145
+ if (hit !== null)
146
+ send({ type: 'move', index: hit.index, container: hit.container, y: e.clientY });
147
+ },
148
+ onPointerUp: () => {
149
+ snapshots.clear();
150
+ send({ type: 'drop' });
151
+ },
152
+ onPointerCancel: () => {
153
+ snapshots.clear();
154
+ send({ type: 'cancel' });
47
155
  },
48
- onPointerUp: () => send({ type: 'drop' }),
49
- onPointerCancel: () => send({ type: 'cancel' }),
50
156
  },
51
157
  item: (id, index) => ({
52
158
  'data-scope': 'sortable',
53
159
  'data-part': 'item',
54
160
  'data-index': String(index),
55
161
  'data-id': id,
56
- 'data-dragging': (s) => (get(s).dragging?.id === id ? '' : undefined),
57
- 'data-over': (s) => (get(s).dragging?.currentIndex === index ? '' : undefined),
162
+ 'data-dragging': (s) => {
163
+ const d = get(s).dragging;
164
+ return d?.id === id && d?.fromContainer === containerId ? '' : undefined;
165
+ },
166
+ 'data-over': (s) => {
167
+ const d = get(s).dragging;
168
+ if (!d || d.toContainer !== containerId)
169
+ return undefined;
170
+ // Look up this item's CURRENT DOM index via the drag-start snapshot.
171
+ // The `index` closed over here is frozen at initial render and goes
172
+ // stale after each() reconciles a reorder.
173
+ const snap = snapshots.get(containerId);
174
+ const liveIndex = snap?.idToIndex.get(id) ?? index;
175
+ return d.currentIndex === liveIndex ? '' : undefined;
176
+ },
177
+ // Shift direction for items BETWEEN the source and target (excluding the
178
+ // dragged item itself). 'down' = item should translate down to make room;
179
+ // 'up' = item should translate up. CSS controls the actual displacement.
180
+ 'data-shift': (s) => {
181
+ const d = get(s).dragging;
182
+ if (!d || d.fromContainer !== containerId || d.toContainer !== containerId)
183
+ return undefined;
184
+ if (d.id === id)
185
+ return undefined;
186
+ if (d.startIndex === d.currentIndex)
187
+ return undefined;
188
+ // Look up this item's live DOM index — see note on data-over.
189
+ const snap = snapshots.get(containerId);
190
+ const liveIndex = snap?.idToIndex.get(id) ?? index;
191
+ if (d.startIndex < d.currentIndex) {
192
+ // Dragging down: items between start+1 and current shift up
193
+ if (liveIndex > d.startIndex && liveIndex <= d.currentIndex)
194
+ return 'up';
195
+ }
196
+ else {
197
+ // Dragging up: items between current and start-1 shift down
198
+ if (liveIndex >= d.currentIndex && liveIndex < d.startIndex)
199
+ return 'down';
200
+ }
201
+ return undefined;
202
+ },
203
+ // The dragged item follows the pointer via translateY(deltaY). Other
204
+ // items have no transform override — data-shift CSS handles them.
205
+ 'style.transform': (s) => {
206
+ const d = get(s).dragging;
207
+ if (!d || d.id !== id || d.fromContainer !== containerId)
208
+ return undefined;
209
+ const deltaY = d.currentY - d.startY;
210
+ return `translateY(${deltaY}px)`;
211
+ },
212
+ 'style.zIndex': (s) => {
213
+ const d = get(s).dragging;
214
+ if (!d || d.id !== id || d.fromContainer !== containerId)
215
+ return undefined;
216
+ return '10';
217
+ },
58
218
  }),
59
219
  handle: (id, index) => ({
60
220
  'data-scope': 'sortable',
61
221
  'data-part': 'handle',
222
+ role: 'button',
223
+ tabIndex: 0,
224
+ 'aria-grabbed': (s) => {
225
+ const d = get(s).dragging;
226
+ return d?.id === id && d?.fromContainer === containerId;
227
+ },
228
+ 'aria-label': 'Drag handle. Press space to pick up, arrow keys to move, space again to drop, escape to cancel.',
62
229
  onPointerDown: (e) => {
63
230
  e.preventDefault();
64
231
  const target = e.currentTarget;
@@ -71,7 +238,54 @@ export function connect(get, send, _opts) {
71
238
  // Ignore — not all elements support pointer capture
72
239
  }
73
240
  }
74
- send({ type: 'start', id, index });
241
+ // Compute the CURRENT DOM index of this handle's item — the captured
242
+ // `index` param is stale after a reorder (each() moves keyed nodes
243
+ // without re-running render, so the closure's index is frozen at
244
+ // initial mount). Walk up to find the containing item, then count its
245
+ // position among sibling items.
246
+ let currentIndex = index;
247
+ if (target) {
248
+ const itemEl = target.closest('[data-scope="sortable"][data-part="item"]');
249
+ const rootEl = target.closest('[data-scope="sortable"][data-part="root"]');
250
+ if (itemEl && rootEl) {
251
+ const items = rootEl.querySelectorAll('[data-scope="sortable"][data-part="item"]');
252
+ for (let i = 0; i < items.length; i++) {
253
+ if (items[i] === itemEl) {
254
+ currentIndex = i;
255
+ break;
256
+ }
257
+ }
258
+ }
259
+ }
260
+ // Snapshot positions BEFORE the drag starts, so subsequent pointermove
261
+ // events can resolve the target index against stable (pre-transform)
262
+ // positions. Otherwise items shifting via CSS would cause the target
263
+ // to oscillate as elementFromPoint hits different items.
264
+ snapshotAll();
265
+ send({ type: 'start', id, index: currentIndex, container: containerId, y: e.clientY });
266
+ },
267
+ onKeyDown: (e) => {
268
+ switch (e.key) {
269
+ case ' ':
270
+ case 'Enter':
271
+ e.preventDefault();
272
+ send({ type: 'toggleGrab', id, index, container: containerId });
273
+ return;
274
+ case 'Escape':
275
+ e.preventDefault();
276
+ send({ type: 'cancel' });
277
+ return;
278
+ case 'ArrowDown':
279
+ case 'ArrowRight':
280
+ e.preventDefault();
281
+ send({ type: 'moveBy', delta: 1 });
282
+ return;
283
+ case 'ArrowUp':
284
+ case 'ArrowLeft':
285
+ e.preventDefault();
286
+ send({ type: 'moveBy', delta: -1 });
287
+ return;
288
+ }
75
289
  },
76
290
  }),
77
291
  };
@@ -11,7 +11,7 @@ const rootVariants = createVariants({
11
11
  defaultVariants: { size: 'md' },
12
12
  });
13
13
  const itemVariants = createVariants({
14
- base: 'flex items-center cursor-pointer transition-colors duration-fast data-[highlighted]:bg-surface-hover data-[state=checked]:bg-surface-active data-[state=checked]:text-primary data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed',
14
+ base: 'flex items-center cursor-pointer transition-colors duration-fast data-[highlighted]:bg-surface-hover data-[state=selected]:bg-surface-active data-[state=selected]:text-primary data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed',
15
15
  variants: {
16
16
  size: {
17
17
  sm: 'px-2 py-1 text-sm',
@@ -22,7 +22,7 @@ const contentVariants = createVariants({
22
22
  defaultVariants: { size: 'md' },
23
23
  });
24
24
  const itemVariants = createVariants({
25
- base: 'flex items-center cursor-pointer transition-colors duration-fast data-[highlighted]:bg-surface-hover data-[state=checked]:text-primary data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed',
25
+ base: 'flex items-center cursor-pointer transition-colors duration-fast data-[highlighted]:bg-surface-hover data-[state=selected]:bg-surface-active data-[state=selected]:text-primary data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed',
26
26
  variants: {
27
27
  size: {
28
28
  sm: 'px-2 py-1 text-sm',
@@ -13,6 +13,7 @@
13
13
 
14
14
  @media (prefers-color-scheme: dark) {
15
15
  :root:not([data-theme='light']) {
16
+ color-scheme: dark;
16
17
  --color-surface: #0f172a;
17
18
  --color-surface-muted: #1e293b;
18
19
  --color-surface-hover: #1e293b;
@@ -35,6 +36,7 @@
35
36
  }
36
37
 
37
38
  [data-theme='dark'] {
39
+ color-scheme: dark;
38
40
  --color-surface: #0f172a;
39
41
  --color-surface-muted: #1e293b;
40
42
  --color-surface-hover: #1e293b;
@@ -1532,7 +1532,7 @@
1532
1532
  background: var(--color-surface-hover);
1533
1533
  }
1534
1534
 
1535
- [data-scope='listbox'][data-part='item'][data-state='checked'] {
1535
+ [data-scope='listbox'][data-part='item'][data-state='selected'] {
1536
1536
  background: color-mix(in srgb, var(--color-primary) 15%, transparent);
1537
1537
  color: var(--color-primary-active);
1538
1538
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@llui/components",
3
- "version": "0.0.7",
3
+ "version": "0.0.9",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -463,7 +463,7 @@
463
463
  "test": "vitest run"
464
464
  },
465
465
  "peerDependencies": {
466
- "@llui/dom": "^0.0.7"
466
+ "@llui/dom": "^0.0.9"
467
467
  },
468
468
  "devDependencies": {
469
469
  "@llui/dom": "workspace:*",