@llui/components 0.0.7 → 0.0.8
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/components/index.d.ts +3 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +3 -0
- package/dist/components/sortable.d.ts +41 -1
- package/dist/components/sortable.d.ts.map +1 -1
- package/dist/components/sortable.js +240 -26
- package/dist/styles/classes/listbox.js +1 -1
- package/dist/styles/classes/select.js +1 -1
- package/dist/styles/theme-dark.css +2 -0
- package/dist/styles/theme.css +1 -1
- package/package.json +2 -2
|
@@ -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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"}
|
package/dist/components/index.js
CHANGED
|
@@ -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>,
|
|
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;
|
|
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 [
|
|
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
|
-
|
|
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,
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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
|
|
45
|
-
if (
|
|
46
|
-
send({ type: 'move', index:
|
|
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) =>
|
|
57
|
-
|
|
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
|
-
|
|
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=
|
|
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=
|
|
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;
|
package/dist/styles/theme.css
CHANGED
|
@@ -1532,7 +1532,7 @@
|
|
|
1532
1532
|
background: var(--color-surface-hover);
|
|
1533
1533
|
}
|
|
1534
1534
|
|
|
1535
|
-
[data-scope='listbox'][data-part='item'][data-state='
|
|
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.
|
|
3
|
+
"version": "0.0.8",
|
|
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.
|
|
466
|
+
"@llui/dom": "^0.0.8"
|
|
467
467
|
},
|
|
468
468
|
"devDependencies": {
|
|
469
469
|
"@llui/dom": "workspace:*",
|