@epilot/zenith-react 0.3.0-next.1 → 0.3.0-next.3
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/CHANGELOG.md +5 -4
- package/dist/components/list/list.js +176 -176
- package/dist/components/list/list.js.map +1 -1
- package/package.json +9 -15
package/CHANGELOG.md
CHANGED
|
@@ -5,7 +5,7 @@ history belongs to the source project and remains available through Git.
|
|
|
5
5
|
|
|
6
6
|
## Unreleased
|
|
7
7
|
|
|
8
|
-
## [0.3.0-next.
|
|
8
|
+
## [0.3.0-next.3] - 2026-10-30
|
|
9
9
|
|
|
10
10
|
- changed: @epilot/zenith-react depends on @epilot/zenith-runtime ^0.2.0 so compatible runtime releases reach consumers independently. — @wmolinari ([!153](https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/153))
|
|
11
11
|
- changed: **BREAKING**: FieldCombobox and Command, the search list inside it, run on Base UI's Autocomplete instead of `cmdk`. Options are data: pass them as `items` on `FieldComboboxContent` and render them with a function in `FieldComboboxList` (and in `FieldComboboxCollection` inside each `FieldComboboxGroup`, which takes its group's `items`). `FieldComboboxItem`'s `value` is the item, and `onClick`, which also runs on Enter, replaces `onSelect`. `items` is required on `FieldComboboxContent`. The search text moves from `FieldComboboxInput`'s `value`/`onValueChange` to `FieldComboboxContent`'s, `FieldComboboxGroupLabel` replaces `FieldComboboxGroup`'s `heading`, and filtering is a case-insensitive "contains" that keeps the items' order. The Combobox page's "Changed in this version" section shows the new form (#106) — @wmolinari ([!151](https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/151)) (experiment: https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/151)
|
|
@@ -13,10 +13,11 @@ history belongs to the source project and remains available through Git.
|
|
|
13
13
|
- changed: `FieldLabel` inside a `Field` renders with an id (a caller's own `id` wins), and `FieldComboboxList` points its `aria-labelledby` at the Field's label that names the trigger (the one whose `htmlFor` is the trigger's id, else the first `FieldLabel`), so the list carries the trigger's name (#106) — @wmolinari ([!151](https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/151)) (experiment: https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/151)
|
|
14
14
|
- added: `FieldComboboxCollection`, and `@epilot/zenith-runtime/v1` serves Base UI's `autocomplete`; publish the runtime before `@epilot/zenith-react` (#106) — @wmolinari ([!151](https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/151)) (experiment: https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/151)
|
|
15
15
|
- fixed: CalloutAction no longer runs past the right edge of its Callout when the callout has an icon; its width is no longer forced to 100% on top of the icon indent, so a wrapping label or full-width row now wraps inside the callout (#61) — @wmolinari ([!139](https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/139))
|
|
16
|
+
- fixed: a `List` row whose children are not all React nodes, such as react-i18next's `<Trans>` with `{{ name }}` interpolation, no longer crashes the list; `0.3.0-next.1` was affected — @wmolinari ([!158](https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/158)) (experiment: https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/158)
|
|
16
17
|
- fixed: the Radix to Base UI codemod reads the parameter count of an imported handler declared with `satisfies`, so a zero-parameter handler no longer gets an event argument — @wmolinari ([!149](https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/149))
|
|
17
|
-
- fixed: `SortableList` keeps the lifted row under the pointer and drops it where the pointer is inside a transformed container, such as a `PopoverContent` — @josh.stewart.epilot ([!155](https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/155))
|
|
18
|
-
- changed: `SortableList` drag grips are named after the row's text instead of its `value`; the new `ListItem` `textValue` names rows without text — @josh.stewart.epilot ([!155](https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/155))
|
|
19
|
-
- fixed: `TooltipContent` fills each line of wrapping text before breaking it, instead of balancing the lines and leaving an empty strip on the right — @josh.stewart.epilot ([!156](https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/156))
|
|
18
|
+
- fixed: `SortableList` keeps the lifted row under the pointer and drops it where the pointer is inside a transformed container, such as a `PopoverContent` — @josh.stewart.epilot ([!155](https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/155))
|
|
19
|
+
- changed: `SortableList` drag grips are named after the row's text instead of its `value`; the new `ListItem` `textValue` names rows without text — @josh.stewart.epilot ([!155](https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/155))
|
|
20
|
+
- fixed: `TooltipContent` fills each line of wrapping text before breaking it, instead of balancing the lines and leaving an empty strip on the right — @josh.stewart.epilot ([!156](https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/156))
|
|
20
21
|
|
|
21
22
|
## [0.2.0] - 2026-10-28
|
|
22
23
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import * as
|
|
3
|
-
import { mergeClasses as
|
|
4
|
-
import { makeZenithStyles as
|
|
1
|
+
import { jsx as e, jsxs as k } from "react/jsx-runtime";
|
|
2
|
+
import * as i from "react";
|
|
3
|
+
import { mergeClasses as g, SLOT_ATTR as m, shorthands as p } from "@epilot/zenith-runtime/v1";
|
|
4
|
+
import { makeZenithStyles as Q } from "../../styles/make-styles.js";
|
|
5
5
|
import { boxModel as d } from "../../styles/host-reset.js";
|
|
6
|
-
import { successLight as
|
|
7
|
-
const
|
|
6
|
+
import { successLight as tt, warningLight as et, errorLight as rt, spacingGroup2 as R, grayA12 as O, fontWeightSemibold as ot, leadingSm as P, textSm as H, grayA10 as it, fontWeightMedium as nt, accentSolid as st, accentA8 as at, grayA11 as T, grayA8 as lt, leadingXs as ct, textXs as dt, listIndexPaddingX as z, listItemPaddingX as j, listItemPaddingY as D, listIndexMinWidth as pt, grayA2 as M, radiusMd as W, successSoftHover as ut, warningSoftHover as mt, errorSoftHover as gt, accentSoft as ft, successDefault as ht, successSoft as xt, warningDefault as yt, warningSoft as vt, errorDefault as wt, errorSoft as bt, listItemMinHeight as It, spacingElement3 as St, grayA5 as kt, spacingElement1 as Lt, spacingElement2 as Ct, listItemGap as Tt } from "../../tokens/index.js";
|
|
7
|
+
const Dt = (t) => /* @__PURE__ */ k(
|
|
8
8
|
"svg",
|
|
9
9
|
{
|
|
10
10
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -13,17 +13,17 @@ const Tt = (r) => /* @__PURE__ */ S(
|
|
|
13
13
|
viewBox: "0 0 24 24",
|
|
14
14
|
fill: "currentColor",
|
|
15
15
|
"aria-hidden": "true",
|
|
16
|
-
...
|
|
16
|
+
...t,
|
|
17
17
|
children: [
|
|
18
|
-
/* @__PURE__ */
|
|
19
|
-
/* @__PURE__ */
|
|
20
|
-
/* @__PURE__ */
|
|
21
|
-
/* @__PURE__ */
|
|
22
|
-
/* @__PURE__ */
|
|
23
|
-
/* @__PURE__ */
|
|
18
|
+
/* @__PURE__ */ e("circle", { cx: "9", cy: "5", r: "1.5" }),
|
|
19
|
+
/* @__PURE__ */ e("circle", { cx: "15", cy: "5", r: "1.5" }),
|
|
20
|
+
/* @__PURE__ */ e("circle", { cx: "9", cy: "12", r: "1.5" }),
|
|
21
|
+
/* @__PURE__ */ e("circle", { cx: "15", cy: "12", r: "1.5" }),
|
|
22
|
+
/* @__PURE__ */ e("circle", { cx: "9", cy: "19", r: "1.5" }),
|
|
23
|
+
/* @__PURE__ */ e("circle", { cx: "15", cy: "19", r: "1.5" })
|
|
24
24
|
]
|
|
25
25
|
}
|
|
26
|
-
),
|
|
26
|
+
), F = (t) => /* @__PURE__ */ k(
|
|
27
27
|
"svg",
|
|
28
28
|
{
|
|
29
29
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -34,14 +34,14 @@ const Tt = (r) => /* @__PURE__ */ S(
|
|
|
34
34
|
strokeLinecap: "round",
|
|
35
35
|
strokeLinejoin: "round",
|
|
36
36
|
"aria-hidden": "true",
|
|
37
|
-
...
|
|
37
|
+
...t,
|
|
38
38
|
children: [
|
|
39
|
-
/* @__PURE__ */
|
|
40
|
-
/* @__PURE__ */
|
|
41
|
-
/* @__PURE__ */
|
|
39
|
+
/* @__PURE__ */ e("path", { d: "M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0Z" }),
|
|
40
|
+
/* @__PURE__ */ e("line", { x1: "12", y1: "9", x2: "12", y2: "13" }),
|
|
41
|
+
/* @__PURE__ */ e("line", { x1: "12", y1: "17", x2: "12.01", y2: "17" })
|
|
42
42
|
]
|
|
43
43
|
}
|
|
44
|
-
),
|
|
44
|
+
), Wt = (t) => /* @__PURE__ */ k(
|
|
45
45
|
"svg",
|
|
46
46
|
{
|
|
47
47
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -52,13 +52,13 @@ const Tt = (r) => /* @__PURE__ */ S(
|
|
|
52
52
|
strokeLinecap: "round",
|
|
53
53
|
strokeLinejoin: "round",
|
|
54
54
|
"aria-hidden": "true",
|
|
55
|
-
...
|
|
55
|
+
...t,
|
|
56
56
|
children: [
|
|
57
|
-
/* @__PURE__ */
|
|
58
|
-
/* @__PURE__ */
|
|
57
|
+
/* @__PURE__ */ e("path", { d: "M22 11.08V12a10 10 0 1 1-5.93-9.14" }),
|
|
58
|
+
/* @__PURE__ */ e("polyline", { points: "22 4 12 14.01 9 11.01" })
|
|
59
59
|
]
|
|
60
60
|
}
|
|
61
|
-
),
|
|
61
|
+
), At = (t) => /* @__PURE__ */ e(
|
|
62
62
|
"svg",
|
|
63
63
|
{
|
|
64
64
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -69,10 +69,10 @@ const Tt = (r) => /* @__PURE__ */ S(
|
|
|
69
69
|
strokeLinecap: "round",
|
|
70
70
|
strokeLinejoin: "round",
|
|
71
71
|
"aria-hidden": "true",
|
|
72
|
-
...
|
|
73
|
-
children: /* @__PURE__ */
|
|
72
|
+
...t,
|
|
73
|
+
children: /* @__PURE__ */ e("polyline", { points: "9 18 15 12 9 6" })
|
|
74
74
|
}
|
|
75
|
-
), f =
|
|
75
|
+
), f = Q({
|
|
76
76
|
list: {
|
|
77
77
|
...d,
|
|
78
78
|
display: "flex",
|
|
@@ -91,15 +91,15 @@ const Tt = (r) => /* @__PURE__ */ S(
|
|
|
91
91
|
width: "100%",
|
|
92
92
|
alignItems: "center",
|
|
93
93
|
...p.borderRadius(W),
|
|
94
|
-
color:
|
|
94
|
+
color: O,
|
|
95
95
|
transitionProperty: "color, background-color, border-color, text-decoration-color, fill, stroke",
|
|
96
96
|
transitionDuration: "150ms",
|
|
97
97
|
transitionTimingFunction: "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
98
|
-
minHeight:
|
|
99
|
-
...p.gap(
|
|
100
|
-
...p.padding(D,
|
|
101
|
-
fontSize:
|
|
102
|
-
lineHeight:
|
|
98
|
+
minHeight: It,
|
|
99
|
+
...p.gap(Tt),
|
|
100
|
+
...p.padding(D, j),
|
|
101
|
+
fontSize: H,
|
|
102
|
+
lineHeight: P,
|
|
103
103
|
"& > svg": {
|
|
104
104
|
flexShrink: 0,
|
|
105
105
|
width: "1rem",
|
|
@@ -109,27 +109,27 @@ const Tt = (r) => /* @__PURE__ */ S(
|
|
|
109
109
|
// Status variants
|
|
110
110
|
statusDefault: {},
|
|
111
111
|
statusError: {
|
|
112
|
-
backgroundColor:
|
|
112
|
+
backgroundColor: bt,
|
|
113
113
|
color: wt
|
|
114
114
|
},
|
|
115
115
|
statusWarning: {
|
|
116
|
-
backgroundColor:
|
|
117
|
-
color:
|
|
116
|
+
backgroundColor: vt,
|
|
117
|
+
color: yt
|
|
118
118
|
},
|
|
119
119
|
statusSuccess: {
|
|
120
|
-
backgroundColor:
|
|
121
|
-
color:
|
|
120
|
+
backgroundColor: xt,
|
|
121
|
+
color: ht
|
|
122
122
|
},
|
|
123
123
|
// Striped variant (only neutral rows)
|
|
124
124
|
stripedEven: {
|
|
125
125
|
"&:nth-child(even)": {
|
|
126
|
-
backgroundColor:
|
|
126
|
+
backgroundColor: M
|
|
127
127
|
}
|
|
128
128
|
},
|
|
129
129
|
// Interactive hovers
|
|
130
130
|
interactiveDefault: {
|
|
131
131
|
":hover": {
|
|
132
|
-
backgroundColor:
|
|
132
|
+
backgroundColor: ft
|
|
133
133
|
}
|
|
134
134
|
},
|
|
135
135
|
interactiveError: {
|
|
@@ -139,12 +139,12 @@ const Tt = (r) => /* @__PURE__ */ S(
|
|
|
139
139
|
},
|
|
140
140
|
interactiveWarning: {
|
|
141
141
|
":hover": {
|
|
142
|
-
backgroundColor:
|
|
142
|
+
backgroundColor: mt
|
|
143
143
|
}
|
|
144
144
|
},
|
|
145
145
|
interactiveSuccess: {
|
|
146
146
|
":hover": {
|
|
147
|
-
backgroundColor:
|
|
147
|
+
backgroundColor: ut
|
|
148
148
|
}
|
|
149
149
|
},
|
|
150
150
|
// Sortable modifiers
|
|
@@ -169,16 +169,16 @@ const Tt = (r) => /* @__PURE__ */ S(
|
|
|
169
169
|
alignSelf: "stretch",
|
|
170
170
|
borderTopLeftRadius: W,
|
|
171
171
|
borderBottomLeftRadius: W,
|
|
172
|
-
backgroundColor:
|
|
172
|
+
backgroundColor: M,
|
|
173
173
|
textAlign: "center",
|
|
174
174
|
color: T,
|
|
175
175
|
fontVariantNumeric: "tabular-nums",
|
|
176
|
-
minWidth:
|
|
176
|
+
minWidth: pt,
|
|
177
177
|
marginTop: `calc(-1 * ${D})`,
|
|
178
178
|
marginBottom: `calc(-1 * ${D})`,
|
|
179
|
-
marginLeft: `calc(-1 * ${
|
|
180
|
-
paddingLeft:
|
|
181
|
-
paddingRight:
|
|
179
|
+
marginLeft: `calc(-1 * ${j})`,
|
|
180
|
+
paddingLeft: z,
|
|
181
|
+
paddingRight: z
|
|
182
182
|
},
|
|
183
183
|
// Content
|
|
184
184
|
content: {
|
|
@@ -189,7 +189,7 @@ const Tt = (r) => /* @__PURE__ */ S(
|
|
|
189
189
|
flexShrink: 1,
|
|
190
190
|
flexBasis: "0%",
|
|
191
191
|
alignItems: "center",
|
|
192
|
-
...p.gap(
|
|
192
|
+
...p.gap(Ct),
|
|
193
193
|
overflow: "hidden",
|
|
194
194
|
textOverflow: "ellipsis",
|
|
195
195
|
whiteSpace: "nowrap",
|
|
@@ -206,7 +206,7 @@ const Tt = (r) => /* @__PURE__ */ S(
|
|
|
206
206
|
display: "flex",
|
|
207
207
|
flexShrink: 0,
|
|
208
208
|
alignItems: "center",
|
|
209
|
-
...p.gap(
|
|
209
|
+
...p.gap(Lt)
|
|
210
210
|
},
|
|
211
211
|
// Text
|
|
212
212
|
text: {
|
|
@@ -224,8 +224,8 @@ const Tt = (r) => /* @__PURE__ */ S(
|
|
|
224
224
|
overflow: "hidden",
|
|
225
225
|
textOverflow: "ellipsis",
|
|
226
226
|
whiteSpace: "nowrap",
|
|
227
|
-
fontSize:
|
|
228
|
-
lineHeight:
|
|
227
|
+
fontSize: dt,
|
|
228
|
+
lineHeight: ct,
|
|
229
229
|
color: T
|
|
230
230
|
},
|
|
231
231
|
// Drag handle button
|
|
@@ -237,7 +237,7 @@ const Tt = (r) => /* @__PURE__ */ S(
|
|
|
237
237
|
flexShrink: 0,
|
|
238
238
|
cursor: "grab",
|
|
239
239
|
alignItems: "center",
|
|
240
|
-
color:
|
|
240
|
+
color: lt,
|
|
241
241
|
backgroundColor: "transparent",
|
|
242
242
|
...p.border("0"),
|
|
243
243
|
...p.padding(0),
|
|
@@ -251,7 +251,7 @@ const Tt = (r) => /* @__PURE__ */ S(
|
|
|
251
251
|
outlineWidth: "2px",
|
|
252
252
|
outlineStyle: "solid",
|
|
253
253
|
outlineOffset: "2px",
|
|
254
|
-
outlineColor:
|
|
254
|
+
outlineColor: at
|
|
255
255
|
},
|
|
256
256
|
"& svg": {
|
|
257
257
|
width: "1rem",
|
|
@@ -269,7 +269,7 @@ const Tt = (r) => /* @__PURE__ */ S(
|
|
|
269
269
|
height: "0.125rem",
|
|
270
270
|
transformOrigin: "center",
|
|
271
271
|
...p.borderRadius("9999px"),
|
|
272
|
-
backgroundColor:
|
|
272
|
+
backgroundColor: st,
|
|
273
273
|
animationName: {
|
|
274
274
|
from: {
|
|
275
275
|
transform: "scaleX(0)",
|
|
@@ -295,7 +295,7 @@ const Tt = (r) => /* @__PURE__ */ S(
|
|
|
295
295
|
transformOrigin: "center",
|
|
296
296
|
transform: "scale(0.95)",
|
|
297
297
|
cursor: "grabbing",
|
|
298
|
-
...p.border("1px", "solid",
|
|
298
|
+
...p.border("1px", "solid", kt),
|
|
299
299
|
backgroundColor: "rgb(255 255 255 / 55%)",
|
|
300
300
|
boxShadow: "0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a",
|
|
301
301
|
backdropFilter: "blur(12px)",
|
|
@@ -326,7 +326,7 @@ const Tt = (r) => /* @__PURE__ */ S(
|
|
|
326
326
|
width: "1rem",
|
|
327
327
|
height: "1rem",
|
|
328
328
|
flexShrink: 0,
|
|
329
|
-
color:
|
|
329
|
+
color: it,
|
|
330
330
|
transitionProperty: "transform",
|
|
331
331
|
transitionDuration: "150ms",
|
|
332
332
|
transitionTimingFunction: "cubic-bezier(0.4, 0, 0.2, 1)"
|
|
@@ -346,21 +346,21 @@ const Tt = (r) => /* @__PURE__ */ S(
|
|
|
346
346
|
},
|
|
347
347
|
standaloneGroupLabel: {
|
|
348
348
|
...d,
|
|
349
|
-
marginTop:
|
|
349
|
+
marginTop: R,
|
|
350
350
|
display: "block",
|
|
351
351
|
listStyleType: "none",
|
|
352
|
-
...p.padding("0.375rem",
|
|
353
|
-
fontSize:
|
|
354
|
-
lineHeight:
|
|
355
|
-
fontWeight:
|
|
356
|
-
color:
|
|
352
|
+
...p.padding("0.375rem", St),
|
|
353
|
+
fontSize: H,
|
|
354
|
+
lineHeight: P,
|
|
355
|
+
fontWeight: ot,
|
|
356
|
+
color: O,
|
|
357
357
|
"&:first-child": {
|
|
358
358
|
marginTop: 0
|
|
359
359
|
}
|
|
360
360
|
},
|
|
361
361
|
groupContentList: {
|
|
362
362
|
...d,
|
|
363
|
-
paddingLeft:
|
|
363
|
+
paddingLeft: R
|
|
364
364
|
},
|
|
365
365
|
collapseWrapper: {
|
|
366
366
|
display: "grid",
|
|
@@ -386,292 +386,292 @@ const Tt = (r) => /* @__PURE__ */ S(
|
|
|
386
386
|
width: "1rem",
|
|
387
387
|
height: "1rem",
|
|
388
388
|
flexShrink: 0,
|
|
389
|
-
color:
|
|
389
|
+
color: rt
|
|
390
390
|
},
|
|
391
391
|
statusIconWarning: {
|
|
392
392
|
...d,
|
|
393
393
|
width: "1rem",
|
|
394
394
|
height: "1rem",
|
|
395
395
|
flexShrink: 0,
|
|
396
|
-
color:
|
|
396
|
+
color: et
|
|
397
397
|
},
|
|
398
398
|
statusIconSuccess: {
|
|
399
399
|
...d,
|
|
400
400
|
width: "1rem",
|
|
401
401
|
height: "1rem",
|
|
402
402
|
flexShrink: 0,
|
|
403
|
-
color:
|
|
403
|
+
color: tt
|
|
404
404
|
}
|
|
405
|
-
}),
|
|
406
|
-
const
|
|
407
|
-
return
|
|
408
|
-
},
|
|
405
|
+
}), Nt = ({ status: t }) => {
|
|
406
|
+
const r = f();
|
|
407
|
+
return t === "error" ? /* @__PURE__ */ e(F, { className: r.statusIconError }) : t === "warning" ? /* @__PURE__ */ e(F, { className: r.statusIconWarning }) : t === "success" ? /* @__PURE__ */ e(Wt, { className: r.statusIconSuccess }) : null;
|
|
408
|
+
}, X = i.createContext({
|
|
409
409
|
striped: !1,
|
|
410
410
|
showIndex: !1,
|
|
411
411
|
sortable: !1
|
|
412
|
-
}),
|
|
413
|
-
const l = f(), u =
|
|
414
|
-
(y,
|
|
415
|
-
index:
|
|
412
|
+
}), $ = () => i.useContext(X), Et = (t) => t === void 0 ? void 0 : t === "relaxed" ? "normal" : t, Bt = i.forwardRef(function({ className: r, density: s, children: n, ...o }, a) {
|
|
413
|
+
const l = f(), u = Et(s), w = i.Children.toArray(n).filter(i.isValidElement).map(
|
|
414
|
+
(y, v) => y.type === Ot ? i.cloneElement(y, {
|
|
415
|
+
index: v
|
|
416
416
|
}) : y
|
|
417
417
|
);
|
|
418
|
-
return /* @__PURE__ */
|
|
418
|
+
return /* @__PURE__ */ e(
|
|
419
419
|
"ol",
|
|
420
420
|
{
|
|
421
421
|
ref: a,
|
|
422
422
|
"data-slot": "list",
|
|
423
|
-
[
|
|
423
|
+
[m]: "list",
|
|
424
424
|
...u !== void 0 ? { "data-density": u } : {},
|
|
425
|
-
className:
|
|
425
|
+
className: g(l.list, r),
|
|
426
426
|
...o,
|
|
427
|
-
children:
|
|
427
|
+
children: w
|
|
428
428
|
}
|
|
429
429
|
);
|
|
430
|
-
}), Ft =
|
|
431
|
-
return /* @__PURE__ */
|
|
432
|
-
}),
|
|
430
|
+
}), Ft = i.forwardRef(function({ striped: r = !1, showIndex: s = !1, ...n }, o) {
|
|
431
|
+
return /* @__PURE__ */ e(X.Provider, { value: { striped: r, showIndex: s, sortable: !1 }, children: /* @__PURE__ */ e(Bt, { ref: o, ...n }) });
|
|
432
|
+
}), V = i.forwardRef(function({ className: r, children: s, ...n }, o) {
|
|
433
433
|
const a = f();
|
|
434
|
-
return /* @__PURE__ */
|
|
434
|
+
return /* @__PURE__ */ e(
|
|
435
435
|
"span",
|
|
436
436
|
{
|
|
437
437
|
ref: o,
|
|
438
438
|
"data-slot": "list-item-actions",
|
|
439
|
-
[
|
|
439
|
+
[m]: "list-item-actions",
|
|
440
440
|
onPointerDown: (l) => l.stopPropagation(),
|
|
441
|
-
className:
|
|
442
|
-
...
|
|
443
|
-
children:
|
|
441
|
+
className: g(a.actions, r),
|
|
442
|
+
...n,
|
|
443
|
+
children: s
|
|
444
444
|
}
|
|
445
445
|
);
|
|
446
|
-
}),
|
|
446
|
+
}), Xt = i.forwardRef(function({ className: r, ...s }, n) {
|
|
447
447
|
const o = f();
|
|
448
|
-
return /* @__PURE__ */
|
|
448
|
+
return /* @__PURE__ */ e(
|
|
449
449
|
"span",
|
|
450
450
|
{
|
|
451
|
-
ref:
|
|
451
|
+
ref: n,
|
|
452
452
|
"data-slot": "list-item-text",
|
|
453
|
-
[
|
|
454
|
-
className:
|
|
455
|
-
...
|
|
453
|
+
[m]: "list-item-text",
|
|
454
|
+
className: g(o.text, r),
|
|
455
|
+
...s
|
|
456
456
|
}
|
|
457
457
|
);
|
|
458
|
-
}), Gt =
|
|
458
|
+
}), Gt = i.forwardRef(function({ className: r, ...s }, n) {
|
|
459
459
|
const o = f();
|
|
460
|
-
return /* @__PURE__ */
|
|
460
|
+
return /* @__PURE__ */ e(
|
|
461
461
|
"span",
|
|
462
462
|
{
|
|
463
|
-
ref:
|
|
463
|
+
ref: n,
|
|
464
464
|
"data-slot": "list-item-description",
|
|
465
|
-
[
|
|
466
|
-
className:
|
|
467
|
-
...
|
|
465
|
+
[m]: "list-item-description",
|
|
466
|
+
className: g(o.description, r),
|
|
467
|
+
...s
|
|
468
468
|
}
|
|
469
469
|
);
|
|
470
|
-
}),
|
|
470
|
+
}), A = (t) => typeof t == "string" || typeof t == "number" ? String(t) : typeof t == "object" && t !== null && !i.isValidElement(t) && Symbol.iterator in t ? Array.from(t, A).join(" ") : !i.isValidElement(t) || t.type === Gt || t.type === V || t.props["aria-hidden"] === !0 || t.props["aria-hidden"] === "true" ? "" : A(t.props.children), Rt = i.forwardRef(
|
|
471
471
|
function({
|
|
472
|
-
className:
|
|
473
|
-
value:
|
|
474
|
-
textValue:
|
|
472
|
+
className: r,
|
|
473
|
+
value: s,
|
|
474
|
+
textValue: n,
|
|
475
475
|
status: o = "default",
|
|
476
476
|
index: a,
|
|
477
477
|
children: l,
|
|
478
478
|
setNodeRef: u,
|
|
479
|
-
setActivatorNodeRef:
|
|
479
|
+
setActivatorNodeRef: w,
|
|
480
480
|
style: y,
|
|
481
|
-
isDragging:
|
|
481
|
+
isDragging: v,
|
|
482
482
|
dropEdge: b,
|
|
483
483
|
listeners: h,
|
|
484
484
|
attributes: C,
|
|
485
|
-
...
|
|
485
|
+
...L
|
|
486
486
|
}, I) {
|
|
487
|
-
const c = f(), { striped:
|
|
488
|
-
(x) =>
|
|
489
|
-
),
|
|
487
|
+
const c = f(), { striped: K, showIndex: Z, sortable: S } = $(), U = S && !v, E = i.Children.toArray(l), B = E.find(
|
|
488
|
+
(x) => i.isValidElement(x) && x.type === V
|
|
489
|
+
), G = E.filter((x) => x !== B), Y = S ? (n == null ? void 0 : n.trim()) || A(G).replace(/\s+/g, " ").trim() || s || "item" : void 0, _ = i.useCallback(
|
|
490
490
|
(x) => {
|
|
491
491
|
u == null || u(x), typeof I == "function" ? I(x) : I && (I.current = x);
|
|
492
492
|
},
|
|
493
493
|
[u, I]
|
|
494
|
-
),
|
|
495
|
-
return /* @__PURE__ */
|
|
494
|
+
), q = o === "error" ? c.statusError : o === "warning" ? c.statusWarning : o === "success" ? c.statusSuccess : c.statusDefault, J = U ? o === "error" ? c.interactiveError : o === "warning" ? c.interactiveWarning : o === "success" ? c.interactiveSuccess : c.interactiveDefault : void 0;
|
|
495
|
+
return /* @__PURE__ */ k(
|
|
496
496
|
"li",
|
|
497
497
|
{
|
|
498
|
-
ref:
|
|
498
|
+
ref: _,
|
|
499
499
|
style: y,
|
|
500
500
|
"data-slot": "list-item",
|
|
501
|
-
[
|
|
501
|
+
[m]: "list-item",
|
|
502
502
|
"data-status": o,
|
|
503
|
-
"data-value":
|
|
504
|
-
onPointerDown:
|
|
505
|
-
className:
|
|
503
|
+
"data-value": s,
|
|
504
|
+
onPointerDown: S ? h == null ? void 0 : h.onPointerDown : void 0,
|
|
505
|
+
className: g(
|
|
506
506
|
c.item,
|
|
507
|
-
_,
|
|
508
|
-
$ && o === "default" && c.stripedEven,
|
|
509
507
|
q,
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
508
|
+
K && o === "default" && c.stripedEven,
|
|
509
|
+
J,
|
|
510
|
+
S && c.sortableItem,
|
|
511
|
+
v && c.itemDragging,
|
|
512
|
+
r
|
|
513
513
|
),
|
|
514
|
-
...
|
|
514
|
+
...L,
|
|
515
515
|
children: [
|
|
516
|
-
b && /* @__PURE__ */
|
|
516
|
+
b && /* @__PURE__ */ e(
|
|
517
517
|
"span",
|
|
518
518
|
{
|
|
519
519
|
"data-slot": "list-drop-indicator",
|
|
520
|
-
[
|
|
520
|
+
[m]: "list-drop-indicator",
|
|
521
521
|
"aria-hidden": "true",
|
|
522
|
-
className:
|
|
522
|
+
className: g(
|
|
523
523
|
c.dropIndicator,
|
|
524
524
|
b === "top" ? c.dropIndicatorTop : c.dropIndicatorBottom
|
|
525
525
|
)
|
|
526
526
|
}
|
|
527
527
|
),
|
|
528
|
-
|
|
528
|
+
Z && /* @__PURE__ */ e(
|
|
529
529
|
"span",
|
|
530
530
|
{
|
|
531
531
|
"data-slot": "list-item-index",
|
|
532
|
-
[
|
|
532
|
+
[m]: "list-item-index",
|
|
533
533
|
"aria-hidden": "true",
|
|
534
534
|
className: c.indexBase,
|
|
535
535
|
children: (a ?? 0) + 1
|
|
536
536
|
}
|
|
537
537
|
),
|
|
538
|
-
/* @__PURE__ */
|
|
538
|
+
/* @__PURE__ */ e(
|
|
539
539
|
"span",
|
|
540
540
|
{
|
|
541
541
|
"data-slot": "list-item-content",
|
|
542
|
-
[
|
|
542
|
+
[m]: "list-item-content",
|
|
543
543
|
className: c.content,
|
|
544
|
-
children:
|
|
544
|
+
children: G
|
|
545
545
|
}
|
|
546
546
|
),
|
|
547
|
-
/* @__PURE__ */
|
|
547
|
+
/* @__PURE__ */ e(Nt, { status: o }),
|
|
548
548
|
B,
|
|
549
|
-
|
|
549
|
+
S && /* @__PURE__ */ e(
|
|
550
550
|
"button",
|
|
551
551
|
{
|
|
552
|
-
ref:
|
|
552
|
+
ref: w,
|
|
553
553
|
type: "button",
|
|
554
|
-
"aria-label": `Drag to reorder ${
|
|
554
|
+
"aria-label": `Drag to reorder ${Y}`,
|
|
555
555
|
className: c.dragHandle,
|
|
556
556
|
...C,
|
|
557
557
|
onKeyDown: h == null ? void 0 : h.onKeyDown,
|
|
558
|
-
children: /* @__PURE__ */
|
|
558
|
+
children: /* @__PURE__ */ e(Dt, {})
|
|
559
559
|
}
|
|
560
560
|
)
|
|
561
561
|
]
|
|
562
562
|
}
|
|
563
563
|
);
|
|
564
564
|
}
|
|
565
|
-
), Ot =
|
|
566
|
-
function(
|
|
567
|
-
const { SortableItem:
|
|
568
|
-
return
|
|
565
|
+
), Ot = i.forwardRef(
|
|
566
|
+
function(r, s) {
|
|
567
|
+
const { SortableItem: n } = $();
|
|
568
|
+
return n ? /* @__PURE__ */ e(n, { ref: s, ...r }) : /* @__PURE__ */ e(Rt, { ref: s, ...r });
|
|
569
569
|
}
|
|
570
|
-
),
|
|
570
|
+
), N = i.createContext(null), $t = i.forwardRef(
|
|
571
571
|
function({
|
|
572
|
-
open:
|
|
573
|
-
defaultOpen:
|
|
574
|
-
onOpenChange:
|
|
572
|
+
open: r,
|
|
573
|
+
defaultOpen: s = !1,
|
|
574
|
+
onOpenChange: n,
|
|
575
575
|
className: o,
|
|
576
576
|
children: a,
|
|
577
577
|
...l
|
|
578
578
|
}, u) {
|
|
579
|
-
const
|
|
580
|
-
|
|
579
|
+
const w = f(), [y, v] = i.useState(s), b = r ?? y, h = i.useId(), C = (L) => {
|
|
580
|
+
r === void 0 && v(L), n == null || n(L);
|
|
581
581
|
};
|
|
582
|
-
return /* @__PURE__ */
|
|
582
|
+
return /* @__PURE__ */ e(N.Provider, { value: { open: b, setOpen: C, contentId: h }, children: /* @__PURE__ */ e(
|
|
583
583
|
"li",
|
|
584
584
|
{
|
|
585
585
|
ref: u,
|
|
586
586
|
"data-slot": "list-group",
|
|
587
|
-
[
|
|
587
|
+
[m]: "list-group",
|
|
588
588
|
"data-state": b ? "open" : "closed",
|
|
589
|
-
className:
|
|
589
|
+
className: g(w.group, o),
|
|
590
590
|
...l,
|
|
591
591
|
children: a
|
|
592
592
|
}
|
|
593
593
|
) });
|
|
594
594
|
}
|
|
595
|
-
),
|
|
596
|
-
const a = f(), l =
|
|
597
|
-
return l ? /* @__PURE__ */
|
|
595
|
+
), Vt = i.forwardRef(function({ className: r, children: s, ...n }, o) {
|
|
596
|
+
const a = f(), l = i.useContext(N);
|
|
597
|
+
return l ? /* @__PURE__ */ k(
|
|
598
598
|
"button",
|
|
599
599
|
{
|
|
600
600
|
ref: o,
|
|
601
601
|
type: "button",
|
|
602
602
|
"data-slot": "list-group-trigger",
|
|
603
|
-
[
|
|
603
|
+
[m]: "list-group-trigger",
|
|
604
604
|
"aria-expanded": l.open,
|
|
605
605
|
"aria-controls": l.contentId,
|
|
606
606
|
onClick: () => l.setOpen(!l.open),
|
|
607
|
-
className:
|
|
607
|
+
className: g(
|
|
608
608
|
a.item,
|
|
609
609
|
a.interactiveDefault,
|
|
610
610
|
a.groupTrigger,
|
|
611
|
-
|
|
611
|
+
r
|
|
612
612
|
),
|
|
613
|
-
...
|
|
613
|
+
...n,
|
|
614
614
|
children: [
|
|
615
|
-
/* @__PURE__ */
|
|
616
|
-
|
|
615
|
+
/* @__PURE__ */ e(
|
|
616
|
+
At,
|
|
617
617
|
{
|
|
618
|
-
className:
|
|
618
|
+
className: g(
|
|
619
619
|
a.groupChevron,
|
|
620
620
|
l.open && a.groupChevronOpen
|
|
621
621
|
)
|
|
622
622
|
}
|
|
623
623
|
),
|
|
624
|
-
/* @__PURE__ */
|
|
624
|
+
/* @__PURE__ */ e("span", { className: a.groupTriggerText, children: s })
|
|
625
625
|
]
|
|
626
626
|
}
|
|
627
|
-
) : /* @__PURE__ */
|
|
627
|
+
) : /* @__PURE__ */ e(
|
|
628
628
|
"li",
|
|
629
629
|
{
|
|
630
630
|
ref: o,
|
|
631
631
|
"data-slot": "list-group-label",
|
|
632
|
-
[
|
|
633
|
-
className:
|
|
634
|
-
children:
|
|
632
|
+
[m]: "list-group-label",
|
|
633
|
+
className: g(a.standaloneGroupLabel, r),
|
|
634
|
+
children: s
|
|
635
635
|
}
|
|
636
636
|
);
|
|
637
|
-
}), Kt =
|
|
638
|
-
const a = f(), l =
|
|
637
|
+
}), Kt = i.forwardRef(function({ className: r, children: s, ...n }, o) {
|
|
638
|
+
const a = f(), l = i.useContext(N), u = /* @__PURE__ */ e(
|
|
639
639
|
"ul",
|
|
640
640
|
{
|
|
641
641
|
ref: o,
|
|
642
642
|
"data-slot": "list-group-content",
|
|
643
|
-
[
|
|
644
|
-
className:
|
|
645
|
-
...
|
|
646
|
-
children:
|
|
643
|
+
[m]: "list-group-content",
|
|
644
|
+
className: g(a.list, a.groupContentList, r),
|
|
645
|
+
...n,
|
|
646
|
+
children: s
|
|
647
647
|
}
|
|
648
648
|
);
|
|
649
|
-
return l ? /* @__PURE__ */
|
|
649
|
+
return l ? /* @__PURE__ */ e(
|
|
650
650
|
"div",
|
|
651
651
|
{
|
|
652
652
|
id: l.contentId,
|
|
653
653
|
"data-state": l.open ? "open" : "closed",
|
|
654
|
-
className:
|
|
654
|
+
className: g(
|
|
655
655
|
a.collapseWrapper,
|
|
656
656
|
l.open && a.collapseWrapperOpen
|
|
657
657
|
),
|
|
658
|
-
children: /* @__PURE__ */
|
|
658
|
+
children: /* @__PURE__ */ e("div", { className: a.collapseInner, children: u })
|
|
659
659
|
}
|
|
660
660
|
) : u;
|
|
661
661
|
});
|
|
662
662
|
export {
|
|
663
663
|
Ft as List,
|
|
664
|
-
|
|
664
|
+
$t as ListGroup,
|
|
665
665
|
Kt as ListGroupContent,
|
|
666
|
-
|
|
666
|
+
Vt as ListGroupLabel,
|
|
667
667
|
Ot as ListItem,
|
|
668
|
-
|
|
668
|
+
V as ListItemActions,
|
|
669
669
|
Rt as ListItemBody,
|
|
670
670
|
Gt as ListItemDescription,
|
|
671
|
-
|
|
671
|
+
Xt as ListItemText,
|
|
672
672
|
Bt as ListRoot,
|
|
673
|
-
|
|
674
|
-
|
|
673
|
+
Et as canonicalDomDensity,
|
|
674
|
+
X as listContext,
|
|
675
675
|
f as useListStyles
|
|
676
676
|
};
|
|
677
677
|
//# sourceMappingURL=list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sources":["../../../src/components/list/list.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { mergeClasses, shorthands } from \"@epilot/zenith-runtime/v1\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeZenithStyles } from \"../../styles/make-styles\"\nimport { boxModel } from \"../../styles/host-reset\"\nimport * as tokens from \"../../tokens\"\n\n/**\n * `relaxed` is a permanent compatibility alias for `normal` (DENSITY-SPEC.md §4.2,\n * WP9B2A-ACCEPTANCE-LIST) — identical geometry, forever, not deprecated.\n */\nexport type ListDensity = \"compact\" | \"normal\" | \"comfortable\" | \"relaxed\"\nexport type ListItemStatus = \"default\" | \"error\" | \"warning\" | \"success\"\n\n// ── Icons ──────────────────────────────────────────────────────────────────\n\nconst GripVerticalIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n {...props}\n >\n <circle cx=\"9\" cy=\"5\" r=\"1.5\" />\n <circle cx=\"15\" cy=\"5\" r=\"1.5\" />\n <circle cx=\"9\" cy=\"12\" r=\"1.5\" />\n <circle cx=\"15\" cy=\"12\" r=\"1.5\" />\n <circle cx=\"9\" cy=\"19\" r=\"1.5\" />\n <circle cx=\"15\" cy=\"19\" r=\"1.5\" />\n </svg>\n)\n\nconst WarningIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...props}\n >\n <path d=\"M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0Z\" />\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n </svg>\n)\n\nconst CheckCircleIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...props}\n >\n <path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\" />\n <polyline points=\"22 4 12 14.01 9 11.01\" />\n </svg>\n)\n\nconst ChevronRightIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...props}\n >\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n)\n\n// ── Styles ─────────────────────────────────────────────────────────────────\n\nexport const useListStyles = makeZenithStyles({\n list: {\n ...boxModel,\n display: \"flex\",\n width: \"100%\",\n listStyleType: \"none\",\n flexDirection: \"column\",\n ...shorthands.gap(0),\n ...shorthands.padding(0),\n ...shorthands.margin(0),\n },\n\n // ListItem base — density-bound (DENSITY-SPEC.md §2.2, WP9B2A-ACCEPTANCE-LIST).\n item: {\n ...boxModel,\n position: \"relative\",\n display: \"flex\",\n width: \"100%\",\n alignItems: \"center\",\n ...shorthands.borderRadius(tokens.radiusMd),\n color: tokens.grayA12,\n transitionProperty:\n \"color, background-color, border-color, text-decoration-color, fill, stroke\",\n transitionDuration: \"150ms\",\n transitionTimingFunction: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n minHeight: tokens.listItemMinHeight,\n ...shorthands.gap(tokens.listItemGap),\n ...shorthands.padding(tokens.listItemPaddingY, tokens.listItemPaddingX),\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n \"& > svg\": {\n flexShrink: 0,\n width: \"1rem\",\n height: \"1rem\",\n },\n },\n\n // Status variants\n statusDefault: {},\n statusError: {\n backgroundColor: tokens.errorSoft,\n color: tokens.errorDefault,\n },\n statusWarning: {\n backgroundColor: tokens.warningSoft,\n color: tokens.warningDefault,\n },\n statusSuccess: {\n backgroundColor: tokens.successSoft,\n color: tokens.successDefault,\n },\n\n // Striped variant (only neutral rows)\n stripedEven: {\n \"&:nth-child(even)\": {\n backgroundColor: tokens.grayA2,\n },\n },\n\n // Interactive hovers\n interactiveDefault: {\n \":hover\": {\n backgroundColor: tokens.accentSoft,\n },\n },\n interactiveError: {\n \":hover\": {\n backgroundColor: tokens.errorSoftHover,\n },\n },\n interactiveWarning: {\n \":hover\": {\n backgroundColor: tokens.warningSoftHover,\n },\n },\n interactiveSuccess: {\n \":hover\": {\n backgroundColor: tokens.successSoftHover,\n },\n },\n\n // Sortable modifiers\n sortableItem: {\n cursor: \"grab\",\n touchAction: \"none\",\n \":active\": {\n cursor: \"grabbing\",\n },\n },\n itemDragging: {\n opacity: 0.4,\n },\n\n // Index gutter — density-bound.\n indexBase: {\n ...boxModel,\n display: \"flex\",\n flexShrink: 0,\n userSelect: \"none\",\n alignItems: \"center\",\n justifyContent: \"center\",\n alignSelf: \"stretch\",\n borderTopLeftRadius: tokens.radiusMd,\n borderBottomLeftRadius: tokens.radiusMd,\n backgroundColor: tokens.grayA2,\n textAlign: \"center\",\n color: tokens.grayA11,\n fontVariantNumeric: \"tabular-nums\",\n minWidth: tokens.listIndexMinWidth,\n marginTop: `calc(-1 * ${tokens.listItemPaddingY})`,\n marginBottom: `calc(-1 * ${tokens.listItemPaddingY})`,\n marginLeft: `calc(-1 * ${tokens.listItemPaddingX})`,\n paddingLeft: tokens.listIndexPaddingX,\n paddingRight: tokens.listIndexPaddingX,\n },\n\n // Content\n content: {\n ...boxModel,\n display: \"flex\",\n minWidth: 0,\n flexGrow: 1,\n flexShrink: 1,\n flexBasis: \"0%\",\n alignItems: \"center\",\n ...shorthands.gap(tokens.spacingElement2),\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n \"& > svg\": {\n width: \"1rem\",\n height: \"1rem\",\n flexShrink: 0,\n },\n },\n\n // Actions\n actions: {\n position: \"relative\",\n zIndex: 10,\n display: \"flex\",\n flexShrink: 0,\n alignItems: \"center\",\n ...shorthands.gap(tokens.spacingElement1),\n },\n\n // Text\n text: {\n ...boxModel,\n display: \"flex\",\n minWidth: 0,\n flexGrow: 1,\n flexShrink: 1,\n flexBasis: \"0%\",\n flexDirection: \"column\",\n ...shorthands.gap(\"0.125rem\"),\n },\n\n // Description\n description: {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n fontSize: tokens.textXs,\n lineHeight: tokens.leadingXs,\n color: tokens.grayA11,\n },\n\n // Drag handle button\n dragHandle: {\n ...boxModel,\n position: \"relative\",\n zIndex: 10,\n display: \"inline-flex\",\n flexShrink: 0,\n cursor: \"grab\",\n alignItems: \"center\",\n color: tokens.grayA8,\n backgroundColor: \"transparent\",\n ...shorthands.border(\"0\"),\n ...shorthands.padding(0),\n \":hover\": {\n color: tokens.grayA11,\n },\n \":active\": {\n cursor: \"grabbing\",\n },\n \":focus-visible\": {\n outlineWidth: \"2px\",\n outlineStyle: \"solid\",\n outlineOffset: \"2px\",\n outlineColor: tokens.accentA8,\n },\n \"& svg\": {\n width: \"1rem\",\n height: \"1rem\",\n },\n },\n\n // Drop indicator line\n dropIndicator: {\n ...boxModel,\n pointerEvents: \"none\",\n position: \"absolute\",\n left: 0,\n right: 0,\n zIndex: 10,\n height: \"0.125rem\",\n transformOrigin: \"center\",\n ...shorthands.borderRadius(\"9999px\"),\n backgroundColor: tokens.accentSolid,\n animationName: {\n from: {\n transform: \"scaleX(0)\",\n opacity: 0,\n },\n to: {\n transform: \"scaleX(1)\",\n opacity: 1,\n },\n },\n animationDuration: \"160ms\",\n animationTimingFunction: \"ease-out\",\n },\n dropIndicatorTop: {\n top: \"-0.125rem\",\n },\n dropIndicatorBottom: {\n bottom: \"-0.125rem\",\n },\n\n // DragOverlay ghost\n dragOverlayItem: {\n ...boxModel,\n transformOrigin: \"center\",\n transform: \"scale(0.95)\",\n cursor: \"grabbing\",\n ...shorthands.border(\"1px\", \"solid\", tokens.grayA5),\n backgroundColor: \"rgb(255 255 255 / 55%)\",\n boxShadow: \"0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a\",\n backdropFilter: \"blur(12px)\",\n animationName: {\n from: { transform: \"scale(1)\" },\n to: { transform: \"scale(0.95)\" },\n },\n animationDuration: \"160ms\",\n animationTimingFunction: \"ease-out\",\n \":hover\": {\n backgroundColor: \"rgb(255 255 255 / 55%)\",\n },\n },\n\n // Group\n group: {\n listStyleType: \"none\",\n },\n groupTrigger: {\n ...boxModel,\n cursor: \"pointer\",\n textAlign: \"left\",\n fontWeight: tokens.fontWeightMedium,\n backgroundColor: \"transparent\",\n ...shorthands.border(\"0\"),\n },\n groupChevron: {\n ...boxModel,\n width: \"1rem\",\n height: \"1rem\",\n flexShrink: 0,\n color: tokens.grayA10,\n transitionProperty: \"transform\",\n transitionDuration: \"150ms\",\n transitionTimingFunction: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n },\n groupChevronOpen: {\n transform: \"rotate(90deg)\",\n },\n groupTriggerText: {\n ...boxModel,\n minWidth: 0,\n flexGrow: 1,\n flexShrink: 1,\n flexBasis: \"0%\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n },\n standaloneGroupLabel: {\n ...boxModel,\n marginTop: tokens.spacingGroup2,\n display: \"block\",\n listStyleType: \"none\",\n ...shorthands.padding(\"0.375rem\", tokens.spacingElement3),\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n fontWeight: tokens.fontWeightSemibold,\n color: tokens.grayA12,\n \"&:first-child\": {\n marginTop: 0,\n },\n },\n groupContentList: {\n ...boxModel,\n paddingLeft: tokens.spacingGroup2,\n },\n collapseWrapper: {\n display: \"grid\",\n gridTemplateRows: \"0fr\",\n transitionProperty: \"grid-template-rows\",\n transitionDuration: \"200ms\",\n transitionTimingFunction: \"cubic-bezier(0, 0, 0.2, 1)\",\n \"&[data-state='open']\": {\n gridTemplateRows: \"1fr\",\n },\n },\n collapseWrapperOpen: {\n gridTemplateRows: \"1fr\",\n },\n collapseInner: {\n ...boxModel,\n minHeight: 0,\n overflow: \"hidden\",\n },\n\n // Status icons\n statusIconError: {\n ...boxModel,\n width: \"1rem\",\n height: \"1rem\",\n flexShrink: 0,\n color: tokens.errorLight,\n },\n statusIconWarning: {\n ...boxModel,\n width: \"1rem\",\n height: \"1rem\",\n flexShrink: 0,\n color: tokens.warningLight,\n },\n statusIconSuccess: {\n ...boxModel,\n width: \"1rem\",\n height: \"1rem\",\n flexShrink: 0,\n color: tokens.successLight,\n },\n})\n\n// ── Status Icons Helper ────────────────────────────────────────────────────\n\nconst StatusIcon = ({ status }: { status: ListItemStatus }) => {\n const styles = useListStyles()\n if (status === \"error\") {\n return <WarningIcon className={styles.statusIconError} />\n }\n if (status === \"warning\") {\n return <WarningIcon className={styles.statusIconWarning} />\n }\n if (status === \"success\") {\n return <CheckCircleIcon className={styles.statusIconSuccess} />\n }\n return null\n}\n\n// ── Context ────────────────────────────────────────────────────────────────\n\n/**\n * `density` is deliberately NOT here — every downstream consumer (`ListItemBody`,\n * `ListGroupLabel`'s collapsible-trigger branch) now reads geometry from CSS custom properties via\n * `[data-density]` inheritance, not from this context.\n */\nexport type ListContextValue = {\n striped: boolean\n showIndex: boolean\n /** Set only by `SortableList` (`@epilot/zenith-react/list/sortable`). */\n sortable: boolean\n /**\n * The drag-aware row `SortableList` supplies. The root entry never imports dnd-kit, so `ListItem`\n * cannot name it; it renders whatever the surrounding `SortableList` put here.\n */\n SortableItem?: React.ForwardRefExoticComponent<\n ListItemProps & React.RefAttributes<HTMLLIElement>\n >\n}\n\n/** Internal: shared with `list-sortable.tsx`, deliberately not exported from the package index. */\nexport const listContext = React.createContext<ListContextValue>({\n striped: false,\n showIndex: false,\n sortable: false,\n})\n\nconst useListContext = () => React.useContext(listContext)\n\n/**\n * `undefined` (density omitted) stays `undefined` — no implicit normal stamp, so the `<ol>`\n * inherits ambient CSS density through ordinary DOM inheritance.\n */\nexport const canonicalDomDensity = (\n density: ListDensity | undefined\n): \"compact\" | \"normal\" | \"comfortable\" | undefined =>\n density === undefined ? undefined : density === \"relaxed\" ? \"normal\" : density\n\n// ── List ───────────────────────────────────────────────────────────────────\n\nexport type ListProps = React.ComponentProps<\"ol\"> & {\n /**\n * Row density. Omitted inherits the ambient shell `[data-density]` (no stamp is written).\n * `\"relaxed\"` is a permanent alias for `\"normal\"` — identical geometry, normalized to\n * `data-density=\"normal\"` in the DOM. An explicit value (including `\"relaxed\"`) creates a\n * canonical density boundary for this list's subtree and its `DragOverlay`.\n */\n density?: ListDensity\n /** Alternating background on neutral rows. Default: false */\n striped?: boolean\n /** Show a 1-based position number on each item. Default: false */\n showIndex?: boolean\n}\n\n/**\n * Internal: the `<ol>` itself, with the index injected into each `ListItem`. Shared by `List` and\n * `SortableList` so both render identical markup; the context provider stays with the caller.\n */\nexport const ListRoot = React.forwardRef<\n HTMLOListElement,\n Omit<ListProps, \"striped\" | \"showIndex\">\n>(function ListRoot({ className, density, children, ...props }, ref) {\n const styles = useListStyles()\n const domDensity = canonicalDomDensity(density)\n\n const indexedItems = React.Children.toArray(children)\n .filter(React.isValidElement)\n .map((child, index) =>\n child.type === ListItem\n ? React.cloneElement(child as React.ReactElement<ListItemProps>, {\n index,\n })\n : child\n )\n\n return (\n <ol\n ref={ref}\n data-slot=\"list\"\n {...{ [SLOT_ATTR]: \"list\" }}\n {...(domDensity !== undefined ? { \"data-density\": domDensity } : {})}\n className={mergeClasses(styles.list, className)}\n {...props}\n >\n {indexedItems}\n </ol>\n )\n})\n\nexport const List = React.forwardRef<HTMLOListElement, ListProps>(function List(\n { striped = false, showIndex = false, ...props },\n ref\n) {\n return (\n <listContext.Provider value={{ striped, showIndex, sortable: false }}>\n <ListRoot ref={ref} {...props} />\n </listContext.Provider>\n )\n})\n\n// ── ListItemActions ────────────────────────────────────────────────────────\n\nexport type ListItemActionsProps = React.ComponentProps<\"span\">\n\nexport const ListItemActions = React.forwardRef<\n HTMLSpanElement,\n ListItemActionsProps\n>(function ListItemActions({ className, children, ...props }, ref) {\n const styles = useListStyles()\n\n return (\n <span\n ref={ref}\n data-slot=\"list-item-actions\"\n {...{ [SLOT_ATTR]: \"list-item-actions\" }}\n onPointerDown={(e) => e.stopPropagation()}\n className={mergeClasses(styles.actions, className)}\n {...props}\n >\n {children}\n </span>\n )\n})\n\n// ── ListItemText ───────────────────────────────────────────────────────────\n\nexport type ListItemTextProps = React.ComponentProps<\"span\">\n\nexport const ListItemText = React.forwardRef<\n HTMLSpanElement,\n ListItemTextProps\n>(function ListItemText({ className, ...props }, ref) {\n const styles = useListStyles()\n\n return (\n <span\n ref={ref}\n data-slot=\"list-item-text\"\n {...{ [SLOT_ATTR]: \"list-item-text\" }}\n className={mergeClasses(styles.text, className)}\n {...props}\n />\n )\n})\n\n// ── ListItemDescription ────────────────────────────────────────────────────\n\nexport type ListItemDescriptionProps = React.ComponentProps<\"span\">\n\nexport const ListItemDescription = React.forwardRef<\n HTMLSpanElement,\n ListItemDescriptionProps\n>(function ListItemDescription({ className, ...props }, ref) {\n const styles = useListStyles()\n\n return (\n <span\n ref={ref}\n data-slot=\"list-item-description\"\n {...{ [SLOT_ATTR]: \"list-item-description\" }}\n className={mergeClasses(styles.description, className)}\n {...props}\n />\n )\n})\n\n// ── ListItemBody ───────────────────────────────────────────────────────────\n\n/**\n * The row's own text, leaving out its description line and anything hidden from assistive technology.\n */\nconst getPrimaryText = (node: React.ReactNode): string =>\n React.Children.toArray(node)\n .map((child) => {\n if (typeof child === \"string\" || typeof child === \"number\") {\n return String(child)\n }\n if (\n !React.isValidElement<{\n children?: React.ReactNode\n \"aria-hidden\"?: React.AriaAttributes[\"aria-hidden\"]\n }>(child) ||\n child.type === ListItemDescription ||\n child.props[\"aria-hidden\"] === true ||\n child.props[\"aria-hidden\"] === \"true\"\n ) {\n return \"\"\n }\n return getPrimaryText(child.props.children)\n })\n .join(\" \")\n .replace(/\\s+/g, \" \")\n .trim()\n\nexport type ListItemProps = React.ComponentProps<\"li\"> & {\n /** Stable id used for drag-and-drop. Required on every item of a `SortableList`. */\n value?: string\n /** Names the row for assistive technology, such as its drag handle. Default: the row's text, then its `value`. */\n textValue?: string\n /** System status. Tints the row and shows a trailing status icon. */\n status?: ListItemStatus\n /** Injected by `List` — the 0-based position. */\n index?: number\n}\n\n/** The slice of dnd-kit's activator listeners a row uses; typed here so this module stays dnd-free. */\nexport type ListItemDragListeners = {\n onPointerDown?: React.PointerEventHandler<HTMLLIElement>\n onKeyDown?: React.KeyboardEventHandler<HTMLButtonElement>\n}\n\nexport type ListItemBodyProps = ListItemProps & {\n setNodeRef?: (node: HTMLElement | null) => void\n setActivatorNodeRef?: (node: HTMLElement | null) => void\n style?: React.CSSProperties\n isDragging?: boolean\n /** Insertion indicator edge while another item is dragged over this one. */\n dropEdge?: \"top\" | \"bottom\" | null\n /** dnd-kit listeners — pointer activation goes on the row, keyboard on the handle. */\n listeners?: ListItemDragListeners\n /** dnd-kit a11y attributes for the keyboard drag handle. */\n attributes?: React.ButtonHTMLAttributes<HTMLButtonElement>\n}\n\nexport const ListItemBody = React.forwardRef<HTMLLIElement, ListItemBodyProps>(\n function ListItemBody(\n {\n className,\n value,\n textValue,\n status = \"default\",\n index,\n children,\n setNodeRef,\n setActivatorNodeRef,\n style,\n isDragging,\n dropEdge,\n listeners,\n attributes,\n ...props\n },\n forwardedRef\n ) {\n const styles = useListStyles()\n const { striped, showIndex, sortable } = useListContext()\n const interactive = sortable && !isDragging\n\n const childArray = React.Children.toArray(children)\n const actionsSlot = childArray.find(\n (child): child is React.ReactElement =>\n React.isValidElement(child) && child.type === ListItemActions\n )\n const contentChildren = childArray.filter((child) => child !== actionsSlot)\n const name =\n textValue ?? (getPrimaryText(contentChildren) || value || \"item\")\n\n // Combined ref for dnd-kit setNodeRef + caller's forwardedRef\n const handleRef = React.useCallback(\n (node: HTMLLIElement | null) => {\n setNodeRef?.(node)\n if (typeof forwardedRef === \"function\") {\n forwardedRef(node)\n } else if (forwardedRef) {\n ;(\n forwardedRef as React.MutableRefObject<HTMLLIElement | null>\n ).current = node\n }\n },\n [setNodeRef, forwardedRef]\n )\n\n const statusStyle =\n status === \"error\"\n ? styles.statusError\n : status === \"warning\"\n ? styles.statusWarning\n : status === \"success\"\n ? styles.statusSuccess\n : styles.statusDefault\n\n const interactiveStyle = interactive\n ? status === \"error\"\n ? styles.interactiveError\n : status === \"warning\"\n ? styles.interactiveWarning\n : status === \"success\"\n ? styles.interactiveSuccess\n : styles.interactiveDefault\n : undefined\n\n return (\n <li\n ref={handleRef}\n style={style}\n data-slot=\"list-item\"\n {...{ [SLOT_ATTR]: \"list-item\" }}\n data-status={status}\n data-value={value}\n onPointerDown={sortable ? listeners?.onPointerDown : undefined}\n className={mergeClasses(\n styles.item,\n statusStyle,\n striped && status === \"default\" && styles.stripedEven,\n interactiveStyle,\n sortable && styles.sortableItem,\n isDragging && styles.itemDragging,\n className\n )}\n {...props}\n >\n {dropEdge && (\n <span\n data-slot=\"list-drop-indicator\"\n {...{ [SLOT_ATTR]: \"list-drop-indicator\" }}\n aria-hidden=\"true\"\n className={mergeClasses(\n styles.dropIndicator,\n dropEdge === \"top\"\n ? styles.dropIndicatorTop\n : styles.dropIndicatorBottom\n )}\n />\n )}\n\n {showIndex && (\n <span\n data-slot=\"list-item-index\"\n {...{ [SLOT_ATTR]: \"list-item-index\" }}\n aria-hidden=\"true\"\n className={styles.indexBase}\n >\n {(index ?? 0) + 1}\n </span>\n )}\n\n <span\n data-slot=\"list-item-content\"\n {...{ [SLOT_ATTR]: \"list-item-content\" }}\n className={styles.content}\n >\n {contentChildren}\n </span>\n\n <StatusIcon status={status} />\n\n {actionsSlot}\n\n {sortable && (\n <button\n ref={setActivatorNodeRef}\n type=\"button\"\n aria-label={`Drag to reorder ${name}`}\n className={styles.dragHandle}\n {...attributes}\n onKeyDown={listeners?.onKeyDown}\n >\n <GripVerticalIcon />\n </button>\n )}\n </li>\n )\n }\n)\n\n// ── ListItem ───────────────────────────────────────────────────────────────\n\nexport const ListItem = React.forwardRef<HTMLLIElement, ListItemProps>(\n function ListItem(props, ref) {\n const { SortableItem } = useListContext()\n\n if (SortableItem) {\n return <SortableItem ref={ref} {...props} />\n }\n\n return <ListItemBody ref={ref} {...props} />\n }\n)\n\n// ── ListGroup ──────────────────────────────────────────────────────────────\n\ntype ListGroupContextValue = {\n open: boolean\n setOpen: (open: boolean) => void\n contentId: string\n}\n\nconst ListGroupContext = React.createContext<ListGroupContextValue | null>(null)\n\nexport type ListGroupProps = Omit<React.ComponentProps<\"li\">, \"onChange\"> & {\n /** Controlled open state of the collapsible group. */\n open?: boolean\n /** Initial open state when uncontrolled. Default: false */\n defaultOpen?: boolean\n /** Called when the group is expanded or collapsed. */\n onOpenChange?: (open: boolean) => void\n}\n\nexport const ListGroup = React.forwardRef<HTMLLIElement, ListGroupProps>(\n function ListGroup(\n {\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n className,\n children,\n ...props\n },\n ref\n ) {\n const styles = useListStyles()\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen)\n const open = openProp ?? uncontrolledOpen\n const contentId = React.useId()\n\n const setOpen = (next: boolean) => {\n if (openProp === undefined) setUncontrolledOpen(next)\n onOpenChange?.(next)\n }\n\n return (\n <ListGroupContext.Provider value={{ open, setOpen, contentId }}>\n <li\n ref={ref}\n data-slot=\"list-group\"\n {...{ [SLOT_ATTR]: \"list-group\" }}\n data-state={open ? \"open\" : \"closed\"}\n className={mergeClasses(styles.group, className)}\n {...props}\n >\n {children}\n </li>\n </ListGroupContext.Provider>\n )\n }\n)\n\n// ── ListGroupLabel ─────────────────────────────────────────────────────────\n\nexport type ListGroupLabelProps = React.ComponentProps<\"button\"> & {\n asListItem?: boolean\n}\n\nexport const ListGroupLabel = React.forwardRef<\n HTMLElement,\n ListGroupLabelProps\n>(function ListGroupLabel({ className, children, ...props }, ref) {\n const styles = useListStyles()\n const group = React.useContext(ListGroupContext)\n\n if (group) {\n return (\n <button\n ref={ref as React.Ref<HTMLButtonElement>}\n type=\"button\"\n data-slot=\"list-group-trigger\"\n {...{ [SLOT_ATTR]: \"list-group-trigger\" }}\n aria-expanded={group.open}\n aria-controls={group.contentId}\n onClick={() => group.setOpen(!group.open)}\n className={mergeClasses(\n styles.item,\n styles.interactiveDefault,\n styles.groupTrigger,\n className\n )}\n {...props}\n >\n <ChevronRightIcon\n className={mergeClasses(\n styles.groupChevron,\n group.open && styles.groupChevronOpen\n )}\n />\n <span className={styles.groupTriggerText}>{children}</span>\n </button>\n )\n }\n\n return (\n <li\n ref={ref as React.Ref<HTMLLIElement>}\n data-slot=\"list-group-label\"\n {...{ [SLOT_ATTR]: \"list-group-label\" }}\n className={mergeClasses(styles.standaloneGroupLabel, className)}\n >\n {children}\n </li>\n )\n})\n\n// ── ListGroupContent ───────────────────────────────────────────────────────\n\nexport type ListGroupContentProps = React.ComponentProps<\"ul\">\n\nexport const ListGroupContent = React.forwardRef<\n HTMLUListElement,\n ListGroupContentProps\n>(function ListGroupContent({ className, children, ...props }, ref) {\n const styles = useListStyles()\n const group = React.useContext(ListGroupContext)\n\n const items = (\n <ul\n ref={ref}\n data-slot=\"list-group-content\"\n {...{ [SLOT_ATTR]: \"list-group-content\" }}\n className={mergeClasses(styles.list, styles.groupContentList, className)}\n {...props}\n >\n {children}\n </ul>\n )\n\n if (!group) return items\n\n return (\n <div\n id={group.contentId}\n data-state={group.open ? \"open\" : \"closed\"}\n className={mergeClasses(\n styles.collapseWrapper,\n group.open && styles.collapseWrapperOpen\n )}\n >\n <div className={styles.collapseInner}>{items}</div>\n </div>\n )\n})\n"],"names":["GripVerticalIcon","props","jsxs","jsx","WarningIcon","CheckCircleIcon","ChevronRightIcon","useListStyles","makeZenithStyles","boxModel","shorthands","tokens.radiusMd","tokens.grayA12","tokens.listItemMinHeight","tokens.listItemGap","tokens.listItemPaddingY","tokens.listItemPaddingX","tokens.textSm","tokens.leadingSm","tokens.errorSoft","tokens.errorDefault","tokens.warningSoft","tokens.warningDefault","tokens.successSoft","tokens.successDefault","tokens.grayA2","tokens.accentSoft","tokens.errorSoftHover","tokens.warningSoftHover","tokens.successSoftHover","tokens.grayA11","tokens.listIndexMinWidth","tokens.listIndexPaddingX","tokens.spacingElement2","tokens.spacingElement1","tokens.textXs","tokens.leadingXs","tokens.grayA8","tokens.accentA8","tokens.accentSolid","tokens.grayA5","tokens.fontWeightMedium","tokens.grayA10","tokens.spacingGroup2","tokens.spacingElement3","tokens.fontWeightSemibold","tokens.errorLight","tokens.warningLight","tokens.successLight","StatusIcon","status","styles","listContext","React","useListContext","canonicalDomDensity","density","ListRoot","className","children","ref","domDensity","indexedItems","child","index","ListItem","SLOT_ATTR","mergeClasses","List","striped","showIndex","ListItemActions","e","ListItemText","ListItemDescription","getPrimaryText","node","ListItemBody","value","textValue","setNodeRef","setActivatorNodeRef","style","isDragging","dropEdge","listeners","attributes","forwardedRef","sortable","interactive","childArray","actionsSlot","contentChildren","name","handleRef","statusStyle","interactiveStyle","SortableItem","ListGroupContext","ListGroup","openProp","defaultOpen","onOpenChange","uncontrolledOpen","setUncontrolledOpen","open","contentId","setOpen","next","ListGroupLabel","group","ListGroupContent","items"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"list.js","sources":["../../../src/components/list/list.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { mergeClasses, shorthands } from \"@epilot/zenith-runtime/v1\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeZenithStyles } from \"../../styles/make-styles\"\nimport { boxModel } from \"../../styles/host-reset\"\nimport * as tokens from \"../../tokens\"\n\n/**\n * `relaxed` is a permanent compatibility alias for `normal` (DENSITY-SPEC.md §4.2,\n * WP9B2A-ACCEPTANCE-LIST) — identical geometry, forever, not deprecated.\n */\nexport type ListDensity = \"compact\" | \"normal\" | \"comfortable\" | \"relaxed\"\nexport type ListItemStatus = \"default\" | \"error\" | \"warning\" | \"success\"\n\n// ── Icons ──────────────────────────────────────────────────────────────────\n\nconst GripVerticalIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n {...props}\n >\n <circle cx=\"9\" cy=\"5\" r=\"1.5\" />\n <circle cx=\"15\" cy=\"5\" r=\"1.5\" />\n <circle cx=\"9\" cy=\"12\" r=\"1.5\" />\n <circle cx=\"15\" cy=\"12\" r=\"1.5\" />\n <circle cx=\"9\" cy=\"19\" r=\"1.5\" />\n <circle cx=\"15\" cy=\"19\" r=\"1.5\" />\n </svg>\n)\n\nconst WarningIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...props}\n >\n <path d=\"M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0Z\" />\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n </svg>\n)\n\nconst CheckCircleIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...props}\n >\n <path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\" />\n <polyline points=\"22 4 12 14.01 9 11.01\" />\n </svg>\n)\n\nconst ChevronRightIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...props}\n >\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n)\n\n// ── Styles ─────────────────────────────────────────────────────────────────\n\nexport const useListStyles = makeZenithStyles({\n list: {\n ...boxModel,\n display: \"flex\",\n width: \"100%\",\n listStyleType: \"none\",\n flexDirection: \"column\",\n ...shorthands.gap(0),\n ...shorthands.padding(0),\n ...shorthands.margin(0),\n },\n\n // ListItem base — density-bound (DENSITY-SPEC.md §2.2, WP9B2A-ACCEPTANCE-LIST).\n item: {\n ...boxModel,\n position: \"relative\",\n display: \"flex\",\n width: \"100%\",\n alignItems: \"center\",\n ...shorthands.borderRadius(tokens.radiusMd),\n color: tokens.grayA12,\n transitionProperty:\n \"color, background-color, border-color, text-decoration-color, fill, stroke\",\n transitionDuration: \"150ms\",\n transitionTimingFunction: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n minHeight: tokens.listItemMinHeight,\n ...shorthands.gap(tokens.listItemGap),\n ...shorthands.padding(tokens.listItemPaddingY, tokens.listItemPaddingX),\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n \"& > svg\": {\n flexShrink: 0,\n width: \"1rem\",\n height: \"1rem\",\n },\n },\n\n // Status variants\n statusDefault: {},\n statusError: {\n backgroundColor: tokens.errorSoft,\n color: tokens.errorDefault,\n },\n statusWarning: {\n backgroundColor: tokens.warningSoft,\n color: tokens.warningDefault,\n },\n statusSuccess: {\n backgroundColor: tokens.successSoft,\n color: tokens.successDefault,\n },\n\n // Striped variant (only neutral rows)\n stripedEven: {\n \"&:nth-child(even)\": {\n backgroundColor: tokens.grayA2,\n },\n },\n\n // Interactive hovers\n interactiveDefault: {\n \":hover\": {\n backgroundColor: tokens.accentSoft,\n },\n },\n interactiveError: {\n \":hover\": {\n backgroundColor: tokens.errorSoftHover,\n },\n },\n interactiveWarning: {\n \":hover\": {\n backgroundColor: tokens.warningSoftHover,\n },\n },\n interactiveSuccess: {\n \":hover\": {\n backgroundColor: tokens.successSoftHover,\n },\n },\n\n // Sortable modifiers\n sortableItem: {\n cursor: \"grab\",\n touchAction: \"none\",\n \":active\": {\n cursor: \"grabbing\",\n },\n },\n itemDragging: {\n opacity: 0.4,\n },\n\n // Index gutter — density-bound.\n indexBase: {\n ...boxModel,\n display: \"flex\",\n flexShrink: 0,\n userSelect: \"none\",\n alignItems: \"center\",\n justifyContent: \"center\",\n alignSelf: \"stretch\",\n borderTopLeftRadius: tokens.radiusMd,\n borderBottomLeftRadius: tokens.radiusMd,\n backgroundColor: tokens.grayA2,\n textAlign: \"center\",\n color: tokens.grayA11,\n fontVariantNumeric: \"tabular-nums\",\n minWidth: tokens.listIndexMinWidth,\n marginTop: `calc(-1 * ${tokens.listItemPaddingY})`,\n marginBottom: `calc(-1 * ${tokens.listItemPaddingY})`,\n marginLeft: `calc(-1 * ${tokens.listItemPaddingX})`,\n paddingLeft: tokens.listIndexPaddingX,\n paddingRight: tokens.listIndexPaddingX,\n },\n\n // Content\n content: {\n ...boxModel,\n display: \"flex\",\n minWidth: 0,\n flexGrow: 1,\n flexShrink: 1,\n flexBasis: \"0%\",\n alignItems: \"center\",\n ...shorthands.gap(tokens.spacingElement2),\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n \"& > svg\": {\n width: \"1rem\",\n height: \"1rem\",\n flexShrink: 0,\n },\n },\n\n // Actions\n actions: {\n position: \"relative\",\n zIndex: 10,\n display: \"flex\",\n flexShrink: 0,\n alignItems: \"center\",\n ...shorthands.gap(tokens.spacingElement1),\n },\n\n // Text\n text: {\n ...boxModel,\n display: \"flex\",\n minWidth: 0,\n flexGrow: 1,\n flexShrink: 1,\n flexBasis: \"0%\",\n flexDirection: \"column\",\n ...shorthands.gap(\"0.125rem\"),\n },\n\n // Description\n description: {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n fontSize: tokens.textXs,\n lineHeight: tokens.leadingXs,\n color: tokens.grayA11,\n },\n\n // Drag handle button\n dragHandle: {\n ...boxModel,\n position: \"relative\",\n zIndex: 10,\n display: \"inline-flex\",\n flexShrink: 0,\n cursor: \"grab\",\n alignItems: \"center\",\n color: tokens.grayA8,\n backgroundColor: \"transparent\",\n ...shorthands.border(\"0\"),\n ...shorthands.padding(0),\n \":hover\": {\n color: tokens.grayA11,\n },\n \":active\": {\n cursor: \"grabbing\",\n },\n \":focus-visible\": {\n outlineWidth: \"2px\",\n outlineStyle: \"solid\",\n outlineOffset: \"2px\",\n outlineColor: tokens.accentA8,\n },\n \"& svg\": {\n width: \"1rem\",\n height: \"1rem\",\n },\n },\n\n // Drop indicator line\n dropIndicator: {\n ...boxModel,\n pointerEvents: \"none\",\n position: \"absolute\",\n left: 0,\n right: 0,\n zIndex: 10,\n height: \"0.125rem\",\n transformOrigin: \"center\",\n ...shorthands.borderRadius(\"9999px\"),\n backgroundColor: tokens.accentSolid,\n animationName: {\n from: {\n transform: \"scaleX(0)\",\n opacity: 0,\n },\n to: {\n transform: \"scaleX(1)\",\n opacity: 1,\n },\n },\n animationDuration: \"160ms\",\n animationTimingFunction: \"ease-out\",\n },\n dropIndicatorTop: {\n top: \"-0.125rem\",\n },\n dropIndicatorBottom: {\n bottom: \"-0.125rem\",\n },\n\n // DragOverlay ghost\n dragOverlayItem: {\n ...boxModel,\n transformOrigin: \"center\",\n transform: \"scale(0.95)\",\n cursor: \"grabbing\",\n ...shorthands.border(\"1px\", \"solid\", tokens.grayA5),\n backgroundColor: \"rgb(255 255 255 / 55%)\",\n boxShadow: \"0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a\",\n backdropFilter: \"blur(12px)\",\n animationName: {\n from: { transform: \"scale(1)\" },\n to: { transform: \"scale(0.95)\" },\n },\n animationDuration: \"160ms\",\n animationTimingFunction: \"ease-out\",\n \":hover\": {\n backgroundColor: \"rgb(255 255 255 / 55%)\",\n },\n },\n\n // Group\n group: {\n listStyleType: \"none\",\n },\n groupTrigger: {\n ...boxModel,\n cursor: \"pointer\",\n textAlign: \"left\",\n fontWeight: tokens.fontWeightMedium,\n backgroundColor: \"transparent\",\n ...shorthands.border(\"0\"),\n },\n groupChevron: {\n ...boxModel,\n width: \"1rem\",\n height: \"1rem\",\n flexShrink: 0,\n color: tokens.grayA10,\n transitionProperty: \"transform\",\n transitionDuration: \"150ms\",\n transitionTimingFunction: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n },\n groupChevronOpen: {\n transform: \"rotate(90deg)\",\n },\n groupTriggerText: {\n ...boxModel,\n minWidth: 0,\n flexGrow: 1,\n flexShrink: 1,\n flexBasis: \"0%\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n },\n standaloneGroupLabel: {\n ...boxModel,\n marginTop: tokens.spacingGroup2,\n display: \"block\",\n listStyleType: \"none\",\n ...shorthands.padding(\"0.375rem\", tokens.spacingElement3),\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n fontWeight: tokens.fontWeightSemibold,\n color: tokens.grayA12,\n \"&:first-child\": {\n marginTop: 0,\n },\n },\n groupContentList: {\n ...boxModel,\n paddingLeft: tokens.spacingGroup2,\n },\n collapseWrapper: {\n display: \"grid\",\n gridTemplateRows: \"0fr\",\n transitionProperty: \"grid-template-rows\",\n transitionDuration: \"200ms\",\n transitionTimingFunction: \"cubic-bezier(0, 0, 0.2, 1)\",\n \"&[data-state='open']\": {\n gridTemplateRows: \"1fr\",\n },\n },\n collapseWrapperOpen: {\n gridTemplateRows: \"1fr\",\n },\n collapseInner: {\n ...boxModel,\n minHeight: 0,\n overflow: \"hidden\",\n },\n\n // Status icons\n statusIconError: {\n ...boxModel,\n width: \"1rem\",\n height: \"1rem\",\n flexShrink: 0,\n color: tokens.errorLight,\n },\n statusIconWarning: {\n ...boxModel,\n width: \"1rem\",\n height: \"1rem\",\n flexShrink: 0,\n color: tokens.warningLight,\n },\n statusIconSuccess: {\n ...boxModel,\n width: \"1rem\",\n height: \"1rem\",\n flexShrink: 0,\n color: tokens.successLight,\n },\n})\n\n// ── Status Icons Helper ────────────────────────────────────────────────────\n\nconst StatusIcon = ({ status }: { status: ListItemStatus }) => {\n const styles = useListStyles()\n if (status === \"error\") {\n return <WarningIcon className={styles.statusIconError} />\n }\n if (status === \"warning\") {\n return <WarningIcon className={styles.statusIconWarning} />\n }\n if (status === \"success\") {\n return <CheckCircleIcon className={styles.statusIconSuccess} />\n }\n return null\n}\n\n// ── Context ────────────────────────────────────────────────────────────────\n\n/**\n * `density` is deliberately NOT here — every downstream consumer (`ListItemBody`,\n * `ListGroupLabel`'s collapsible-trigger branch) now reads geometry from CSS custom properties via\n * `[data-density]` inheritance, not from this context.\n */\nexport type ListContextValue = {\n striped: boolean\n showIndex: boolean\n /** Set only by `SortableList` (`@epilot/zenith-react/list/sortable`). */\n sortable: boolean\n /**\n * The drag-aware row `SortableList` supplies. The root entry never imports dnd-kit, so `ListItem`\n * cannot name it; it renders whatever the surrounding `SortableList` put here.\n */\n SortableItem?: React.ForwardRefExoticComponent<\n ListItemProps & React.RefAttributes<HTMLLIElement>\n >\n}\n\n/** Internal: shared with `list-sortable.tsx`, deliberately not exported from the package index. */\nexport const listContext = React.createContext<ListContextValue>({\n striped: false,\n showIndex: false,\n sortable: false,\n})\n\nconst useListContext = () => React.useContext(listContext)\n\n/**\n * `undefined` (density omitted) stays `undefined` — no implicit normal stamp, so the `<ol>`\n * inherits ambient CSS density through ordinary DOM inheritance.\n */\nexport const canonicalDomDensity = (\n density: ListDensity | undefined\n): \"compact\" | \"normal\" | \"comfortable\" | undefined =>\n density === undefined ? undefined : density === \"relaxed\" ? \"normal\" : density\n\n// ── List ───────────────────────────────────────────────────────────────────\n\nexport type ListProps = React.ComponentProps<\"ol\"> & {\n /**\n * Row density. Omitted inherits the ambient shell `[data-density]` (no stamp is written).\n * `\"relaxed\"` is a permanent alias for `\"normal\"` — identical geometry, normalized to\n * `data-density=\"normal\"` in the DOM. An explicit value (including `\"relaxed\"`) creates a\n * canonical density boundary for this list's subtree and its `DragOverlay`.\n */\n density?: ListDensity\n /** Alternating background on neutral rows. Default: false */\n striped?: boolean\n /** Show a 1-based position number on each item. Default: false */\n showIndex?: boolean\n}\n\n/**\n * Internal: the `<ol>` itself, with the index injected into each `ListItem`. Shared by `List` and\n * `SortableList` so both render identical markup; the context provider stays with the caller.\n */\nexport const ListRoot = React.forwardRef<\n HTMLOListElement,\n Omit<ListProps, \"striped\" | \"showIndex\">\n>(function ListRoot({ className, density, children, ...props }, ref) {\n const styles = useListStyles()\n const domDensity = canonicalDomDensity(density)\n\n const indexedItems = React.Children.toArray(children)\n .filter(React.isValidElement)\n .map((child, index) =>\n child.type === ListItem\n ? React.cloneElement(child as React.ReactElement<ListItemProps>, {\n index,\n })\n : child\n )\n\n return (\n <ol\n ref={ref}\n data-slot=\"list\"\n {...{ [SLOT_ATTR]: \"list\" }}\n {...(domDensity !== undefined ? { \"data-density\": domDensity } : {})}\n className={mergeClasses(styles.list, className)}\n {...props}\n >\n {indexedItems}\n </ol>\n )\n})\n\nexport const List = React.forwardRef<HTMLOListElement, ListProps>(function List(\n { striped = false, showIndex = false, ...props },\n ref\n) {\n return (\n <listContext.Provider value={{ striped, showIndex, sortable: false }}>\n <ListRoot ref={ref} {...props} />\n </listContext.Provider>\n )\n})\n\n// ── ListItemActions ────────────────────────────────────────────────────────\n\nexport type ListItemActionsProps = React.ComponentProps<\"span\">\n\nexport const ListItemActions = React.forwardRef<\n HTMLSpanElement,\n ListItemActionsProps\n>(function ListItemActions({ className, children, ...props }, ref) {\n const styles = useListStyles()\n\n return (\n <span\n ref={ref}\n data-slot=\"list-item-actions\"\n {...{ [SLOT_ATTR]: \"list-item-actions\" }}\n onPointerDown={(e) => e.stopPropagation()}\n className={mergeClasses(styles.actions, className)}\n {...props}\n >\n {children}\n </span>\n )\n})\n\n// ── ListItemText ───────────────────────────────────────────────────────────\n\nexport type ListItemTextProps = React.ComponentProps<\"span\">\n\nexport const ListItemText = React.forwardRef<\n HTMLSpanElement,\n ListItemTextProps\n>(function ListItemText({ className, ...props }, ref) {\n const styles = useListStyles()\n\n return (\n <span\n ref={ref}\n data-slot=\"list-item-text\"\n {...{ [SLOT_ATTR]: \"list-item-text\" }}\n className={mergeClasses(styles.text, className)}\n {...props}\n />\n )\n})\n\n// ── ListItemDescription ────────────────────────────────────────────────────\n\nexport type ListItemDescriptionProps = React.ComponentProps<\"span\">\n\nexport const ListItemDescription = React.forwardRef<\n HTMLSpanElement,\n ListItemDescriptionProps\n>(function ListItemDescription({ className, ...props }, ref) {\n const styles = useListStyles()\n\n return (\n <span\n ref={ref}\n data-slot=\"list-item-description\"\n {...{ [SLOT_ATTR]: \"list-item-description\" }}\n className={mergeClasses(styles.description, className)}\n {...props}\n />\n )\n})\n\n// ── ListItemBody ───────────────────────────────────────────────────────────\n\n/**\n * The row's own text, leaving out its description, its actions and anything `aria-hidden`; the\n * caller collapses the whitespace.\n */\nconst getPrimaryText = (node: unknown): string => {\n if (typeof node === \"string\" || typeof node === \"number\") return String(node)\n // Not React.Children.toArray: it throws on non-node children such as <Trans>'s {{ name }} objects.\n if (\n typeof node === \"object\" &&\n node !== null &&\n !React.isValidElement(node) &&\n Symbol.iterator in node\n )\n return Array.from(node as Iterable<unknown>, getPrimaryText).join(\" \")\n if (\n !React.isValidElement<{\n children?: unknown\n \"aria-hidden\"?: React.AriaAttributes[\"aria-hidden\"]\n }>(node) ||\n node.type === ListItemDescription ||\n node.type === ListItemActions ||\n node.props[\"aria-hidden\"] === true ||\n node.props[\"aria-hidden\"] === \"true\"\n ) {\n return \"\"\n }\n return getPrimaryText(node.props.children)\n}\n\nexport type ListItemProps = React.ComponentProps<\"li\"> & {\n /** Stable id used for drag-and-drop. Required on every item of a `SortableList`. */\n value?: string\n /** Names the row for assistive technology, such as its drag handle. Default: the row's text, then its `value`. */\n textValue?: string\n /** System status. Tints the row and shows a trailing status icon. */\n status?: ListItemStatus\n /** Injected by `List` — the 0-based position. */\n index?: number\n}\n\n/** The slice of dnd-kit's activator listeners a row uses; typed here so this module stays dnd-free. */\nexport type ListItemDragListeners = {\n onPointerDown?: React.PointerEventHandler<HTMLLIElement>\n onKeyDown?: React.KeyboardEventHandler<HTMLButtonElement>\n}\n\nexport type ListItemBodyProps = ListItemProps & {\n setNodeRef?: (node: HTMLElement | null) => void\n setActivatorNodeRef?: (node: HTMLElement | null) => void\n style?: React.CSSProperties\n isDragging?: boolean\n /** Insertion indicator edge while another item is dragged over this one. */\n dropEdge?: \"top\" | \"bottom\" | null\n /** dnd-kit listeners — pointer activation goes on the row, keyboard on the handle. */\n listeners?: ListItemDragListeners\n /** dnd-kit a11y attributes for the keyboard drag handle. */\n attributes?: React.ButtonHTMLAttributes<HTMLButtonElement>\n}\n\nexport const ListItemBody = React.forwardRef<HTMLLIElement, ListItemBodyProps>(\n function ListItemBody(\n {\n className,\n value,\n textValue,\n status = \"default\",\n index,\n children,\n setNodeRef,\n setActivatorNodeRef,\n style,\n isDragging,\n dropEdge,\n listeners,\n attributes,\n ...props\n },\n forwardedRef\n ) {\n const styles = useListStyles()\n const { striped, showIndex, sortable } = useListContext()\n const interactive = sortable && !isDragging\n\n const childArray = React.Children.toArray(children)\n const actionsSlot = childArray.find(\n (child): child is React.ReactElement =>\n React.isValidElement(child) && child.type === ListItemActions\n )\n const contentChildren = childArray.filter((child) => child !== actionsSlot)\n // Only a sortable row has a grip to name.\n const name = sortable\n ? textValue?.trim() ||\n getPrimaryText(contentChildren).replace(/\\s+/g, \" \").trim() ||\n value ||\n \"item\"\n : undefined\n\n // Combined ref for dnd-kit setNodeRef + caller's forwardedRef\n const handleRef = React.useCallback(\n (node: HTMLLIElement | null) => {\n setNodeRef?.(node)\n if (typeof forwardedRef === \"function\") {\n forwardedRef(node)\n } else if (forwardedRef) {\n ;(\n forwardedRef as React.MutableRefObject<HTMLLIElement | null>\n ).current = node\n }\n },\n [setNodeRef, forwardedRef]\n )\n\n const statusStyle =\n status === \"error\"\n ? styles.statusError\n : status === \"warning\"\n ? styles.statusWarning\n : status === \"success\"\n ? styles.statusSuccess\n : styles.statusDefault\n\n const interactiveStyle = interactive\n ? status === \"error\"\n ? styles.interactiveError\n : status === \"warning\"\n ? styles.interactiveWarning\n : status === \"success\"\n ? styles.interactiveSuccess\n : styles.interactiveDefault\n : undefined\n\n return (\n <li\n ref={handleRef}\n style={style}\n data-slot=\"list-item\"\n {...{ [SLOT_ATTR]: \"list-item\" }}\n data-status={status}\n data-value={value}\n onPointerDown={sortable ? listeners?.onPointerDown : undefined}\n className={mergeClasses(\n styles.item,\n statusStyle,\n striped && status === \"default\" && styles.stripedEven,\n interactiveStyle,\n sortable && styles.sortableItem,\n isDragging && styles.itemDragging,\n className\n )}\n {...props}\n >\n {dropEdge && (\n <span\n data-slot=\"list-drop-indicator\"\n {...{ [SLOT_ATTR]: \"list-drop-indicator\" }}\n aria-hidden=\"true\"\n className={mergeClasses(\n styles.dropIndicator,\n dropEdge === \"top\"\n ? styles.dropIndicatorTop\n : styles.dropIndicatorBottom\n )}\n />\n )}\n\n {showIndex && (\n <span\n data-slot=\"list-item-index\"\n {...{ [SLOT_ATTR]: \"list-item-index\" }}\n aria-hidden=\"true\"\n className={styles.indexBase}\n >\n {(index ?? 0) + 1}\n </span>\n )}\n\n <span\n data-slot=\"list-item-content\"\n {...{ [SLOT_ATTR]: \"list-item-content\" }}\n className={styles.content}\n >\n {contentChildren}\n </span>\n\n <StatusIcon status={status} />\n\n {actionsSlot}\n\n {sortable && (\n <button\n ref={setActivatorNodeRef}\n type=\"button\"\n aria-label={`Drag to reorder ${name}`}\n className={styles.dragHandle}\n {...attributes}\n onKeyDown={listeners?.onKeyDown}\n >\n <GripVerticalIcon />\n </button>\n )}\n </li>\n )\n }\n)\n\n// ── ListItem ───────────────────────────────────────────────────────────────\n\nexport const ListItem = React.forwardRef<HTMLLIElement, ListItemProps>(\n function ListItem(props, ref) {\n const { SortableItem } = useListContext()\n\n if (SortableItem) {\n return <SortableItem ref={ref} {...props} />\n }\n\n return <ListItemBody ref={ref} {...props} />\n }\n)\n\n// ── ListGroup ──────────────────────────────────────────────────────────────\n\ntype ListGroupContextValue = {\n open: boolean\n setOpen: (open: boolean) => void\n contentId: string\n}\n\nconst ListGroupContext = React.createContext<ListGroupContextValue | null>(null)\n\nexport type ListGroupProps = Omit<React.ComponentProps<\"li\">, \"onChange\"> & {\n /** Controlled open state of the collapsible group. */\n open?: boolean\n /** Initial open state when uncontrolled. Default: false */\n defaultOpen?: boolean\n /** Called when the group is expanded or collapsed. */\n onOpenChange?: (open: boolean) => void\n}\n\nexport const ListGroup = React.forwardRef<HTMLLIElement, ListGroupProps>(\n function ListGroup(\n {\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n className,\n children,\n ...props\n },\n ref\n ) {\n const styles = useListStyles()\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen)\n const open = openProp ?? uncontrolledOpen\n const contentId = React.useId()\n\n const setOpen = (next: boolean) => {\n if (openProp === undefined) setUncontrolledOpen(next)\n onOpenChange?.(next)\n }\n\n return (\n <ListGroupContext.Provider value={{ open, setOpen, contentId }}>\n <li\n ref={ref}\n data-slot=\"list-group\"\n {...{ [SLOT_ATTR]: \"list-group\" }}\n data-state={open ? \"open\" : \"closed\"}\n className={mergeClasses(styles.group, className)}\n {...props}\n >\n {children}\n </li>\n </ListGroupContext.Provider>\n )\n }\n)\n\n// ── ListGroupLabel ─────────────────────────────────────────────────────────\n\nexport type ListGroupLabelProps = React.ComponentProps<\"button\"> & {\n asListItem?: boolean\n}\n\nexport const ListGroupLabel = React.forwardRef<\n HTMLElement,\n ListGroupLabelProps\n>(function ListGroupLabel({ className, children, ...props }, ref) {\n const styles = useListStyles()\n const group = React.useContext(ListGroupContext)\n\n if (group) {\n return (\n <button\n ref={ref as React.Ref<HTMLButtonElement>}\n type=\"button\"\n data-slot=\"list-group-trigger\"\n {...{ [SLOT_ATTR]: \"list-group-trigger\" }}\n aria-expanded={group.open}\n aria-controls={group.contentId}\n onClick={() => group.setOpen(!group.open)}\n className={mergeClasses(\n styles.item,\n styles.interactiveDefault,\n styles.groupTrigger,\n className\n )}\n {...props}\n >\n <ChevronRightIcon\n className={mergeClasses(\n styles.groupChevron,\n group.open && styles.groupChevronOpen\n )}\n />\n <span className={styles.groupTriggerText}>{children}</span>\n </button>\n )\n }\n\n return (\n <li\n ref={ref as React.Ref<HTMLLIElement>}\n data-slot=\"list-group-label\"\n {...{ [SLOT_ATTR]: \"list-group-label\" }}\n className={mergeClasses(styles.standaloneGroupLabel, className)}\n >\n {children}\n </li>\n )\n})\n\n// ── ListGroupContent ───────────────────────────────────────────────────────\n\nexport type ListGroupContentProps = React.ComponentProps<\"ul\">\n\nexport const ListGroupContent = React.forwardRef<\n HTMLUListElement,\n ListGroupContentProps\n>(function ListGroupContent({ className, children, ...props }, ref) {\n const styles = useListStyles()\n const group = React.useContext(ListGroupContext)\n\n const items = (\n <ul\n ref={ref}\n data-slot=\"list-group-content\"\n {...{ [SLOT_ATTR]: \"list-group-content\" }}\n className={mergeClasses(styles.list, styles.groupContentList, className)}\n {...props}\n >\n {children}\n </ul>\n )\n\n if (!group) return items\n\n return (\n <div\n id={group.contentId}\n data-state={group.open ? \"open\" : \"closed\"}\n className={mergeClasses(\n styles.collapseWrapper,\n group.open && styles.collapseWrapperOpen\n )}\n >\n <div className={styles.collapseInner}>{items}</div>\n </div>\n )\n})\n"],"names":["GripVerticalIcon","props","jsxs","jsx","WarningIcon","CheckCircleIcon","ChevronRightIcon","useListStyles","makeZenithStyles","boxModel","shorthands","tokens.radiusMd","tokens.grayA12","tokens.listItemMinHeight","tokens.listItemGap","tokens.listItemPaddingY","tokens.listItemPaddingX","tokens.textSm","tokens.leadingSm","tokens.errorSoft","tokens.errorDefault","tokens.warningSoft","tokens.warningDefault","tokens.successSoft","tokens.successDefault","tokens.grayA2","tokens.accentSoft","tokens.errorSoftHover","tokens.warningSoftHover","tokens.successSoftHover","tokens.grayA11","tokens.listIndexMinWidth","tokens.listIndexPaddingX","tokens.spacingElement2","tokens.spacingElement1","tokens.textXs","tokens.leadingXs","tokens.grayA8","tokens.accentA8","tokens.accentSolid","tokens.grayA5","tokens.fontWeightMedium","tokens.grayA10","tokens.spacingGroup2","tokens.spacingElement3","tokens.fontWeightSemibold","tokens.errorLight","tokens.warningLight","tokens.successLight","StatusIcon","status","styles","listContext","React","useListContext","canonicalDomDensity","density","ListRoot","className","children","ref","domDensity","indexedItems","child","index","ListItem","SLOT_ATTR","mergeClasses","List","striped","showIndex","ListItemActions","e","ListItemText","ListItemDescription","getPrimaryText","node","ListItemBody","value","textValue","setNodeRef","setActivatorNodeRef","style","isDragging","dropEdge","listeners","attributes","forwardedRef","sortable","interactive","childArray","actionsSlot","contentChildren","name","handleRef","statusStyle","interactiveStyle","SortableItem","ListGroupContext","ListGroup","openProp","defaultOpen","onOpenChange","uncontrolledOpen","setUncontrolledOpen","open","contentId","setOpen","next","ListGroupLabel","group","ListGroupContent","items"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@epilot/zenith-react",
|
|
3
|
-
"version": "0.3.0-next.
|
|
3
|
+
"version": "0.3.0-next.3",
|
|
4
4
|
"description": "Zenith React components, styled with Griffel and designed for isolated micro-frontend delivery",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -149,8 +149,8 @@
|
|
|
149
149
|
},
|
|
150
150
|
"zenith": {
|
|
151
151
|
"next": {
|
|
152
|
-
"mainSha": "
|
|
153
|
-
"pipelineId":
|
|
152
|
+
"mainSha": "139e14faaec9474269303ecf8f473413c4659fcd",
|
|
153
|
+
"pipelineId": 3008228741,
|
|
154
154
|
"included": [
|
|
155
155
|
{
|
|
156
156
|
"iid": 151,
|
|
@@ -159,26 +159,20 @@
|
|
|
159
159
|
"order": 1
|
|
160
160
|
},
|
|
161
161
|
{
|
|
162
|
-
"iid":
|
|
163
|
-
"headSha": "
|
|
164
|
-
"url": "https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/
|
|
162
|
+
"iid": 158,
|
|
163
|
+
"headSha": "b5196f8eebdc8e8fb3e6c96d8f120b3ae88d54d2",
|
|
164
|
+
"url": "https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/158",
|
|
165
165
|
"order": 2
|
|
166
|
-
},
|
|
167
|
-
{
|
|
168
|
-
"iid": 156,
|
|
169
|
-
"headSha": "c11857ba20c6f1816d49a74e76f4239be9fae08a",
|
|
170
|
-
"url": "https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/156",
|
|
171
|
-
"order": 3
|
|
172
166
|
}
|
|
173
167
|
],
|
|
174
168
|
"leftOut": [],
|
|
175
169
|
"versions": {
|
|
176
|
-
"react": "0.3.0-next.
|
|
170
|
+
"react": "0.3.0-next.3",
|
|
177
171
|
"runtime": "0.3.0-next.1"
|
|
178
172
|
},
|
|
179
173
|
"runtime": {
|
|
180
|
-
"source": "
|
|
181
|
-
"publish":
|
|
174
|
+
"source": "next",
|
|
175
|
+
"publish": false
|
|
182
176
|
}
|
|
183
177
|
}
|
|
184
178
|
}
|