@epilot/zenith-react 0.1.0-next.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +45 -10
- package/dist/components/appearance-boundary/appearance-boundary.js +32 -34
- package/dist/components/appearance-boundary/appearance-boundary.js.map +1 -1
- package/dist/components/badge/badge.js +1 -1
- package/dist/components/badge/badge.js.map +1 -1
- package/dist/components/breadcrumb/breadcrumb.js +10 -10
- package/dist/components/breadcrumb/breadcrumb.js.map +1 -1
- package/dist/components/button/button.js +28 -28
- package/dist/components/button/button.js.map +1 -1
- package/dist/components/callout/callout.js +13 -13
- package/dist/components/callout/callout.js.map +1 -1
- package/dist/components/checkbox/checkbox.js +13 -13
- package/dist/components/checkbox/checkbox.js.map +1 -1
- package/dist/components/code-block/code-block.js +6 -6
- package/dist/components/code-block/code-block.js.map +1 -1
- package/dist/components/code-editor/code-editor.js +1 -1
- package/dist/components/code-editor/code-editor.js.map +1 -1
- package/dist/components/command/command.js +6 -6
- package/dist/components/command/command.js.map +1 -1
- package/dist/components/data-table/data-table-body.js +120 -66
- package/dist/components/data-table/data-table-body.js.map +1 -1
- package/dist/components/data-table/data-table-column-header.js +7 -7
- package/dist/components/data-table/data-table-column-header.js.map +1 -1
- package/dist/components/data-table/data-table-column-order.js +277 -0
- package/dist/components/data-table/data-table-column-order.js.map +1 -0
- package/dist/components/data-table/data-table-content.js +72 -58
- package/dist/components/data-table/data-table-content.js.map +1 -1
- package/dist/components/data-table/data-table-context.js +8 -4
- package/dist/components/data-table/data-table-context.js.map +1 -1
- package/dist/components/data-table/data-table-footer.js +31 -0
- package/dist/components/data-table/data-table-footer.js.map +1 -0
- package/dist/components/data-table/data-table-header-draggable.js +151 -0
- package/dist/components/data-table/data-table-header-draggable.js.map +1 -0
- package/dist/components/data-table/data-table-header.js +130 -57
- package/dist/components/data-table/data-table-header.js.map +1 -1
- package/dist/components/data-table/data-table-resize-handle.js +137 -0
- package/dist/components/data-table/data-table-resize-handle.js.map +1 -0
- package/dist/components/data-table/data-table.js +184 -156
- package/dist/components/data-table/data-table.js.map +1 -1
- package/dist/components/data-table/hooks/use-data-table-virtualizer.js +9 -0
- package/dist/components/data-table/hooks/use-data-table-virtualizer.js.map +1 -0
- package/dist/components/date-range-picker/date-range-picker.js +194 -187
- package/dist/components/date-range-picker/date-range-picker.js.map +1 -1
- package/dist/components/date-time-picker/calendar.js +29 -29
- package/dist/components/date-time-picker/calendar.js.map +1 -1
- package/dist/components/date-time-picker/time-picker.js +55 -55
- package/dist/components/date-time-picker/time-picker.js.map +1 -1
- package/dist/components/dialog/dialog.js +1 -1
- package/dist/components/dialog/dialog.js.map +1 -1
- package/dist/components/drawer/drawer.js +5 -5
- package/dist/components/drawer/drawer.js.map +1 -1
- package/dist/components/dropdown-menu/dropdown-menu.js +36 -36
- package/dist/components/dropdown-menu/dropdown-menu.js.map +1 -1
- package/dist/components/field/field-combobox.js +4 -4
- package/dist/components/field/field-combobox.js.map +1 -1
- package/dist/components/field/field.js +40 -40
- package/dist/components/field/field.js.map +1 -1
- package/dist/components/list/list.js +40 -40
- package/dist/components/list/list.js.map +1 -1
- package/dist/components/option-card/option-card.js +27 -25
- package/dist/components/option-card/option-card.js.map +1 -1
- package/dist/components/pill/pill.js +9 -9
- package/dist/components/pill/pill.js.map +1 -1
- package/dist/components/radio/radio.js +14 -14
- package/dist/components/radio/radio.js.map +1 -1
- package/dist/components/scroll-area/scroll-area.js +9 -9
- package/dist/components/scroll-area/scroll-area.js.map +1 -1
- package/dist/components/segmented-control/segmented-control.js +1 -1
- package/dist/components/segmented-control/segmented-control.js.map +1 -1
- package/dist/components/select/select.js +11 -11
- package/dist/components/select/select.js.map +1 -1
- package/dist/components/spinner/spinner.js.map +1 -1
- package/dist/components/switch/switch.js +11 -11
- package/dist/components/switch/switch.js.map +1 -1
- package/dist/components/table/table-pagination.js +1 -1
- package/dist/components/table/table-pagination.js.map +1 -1
- package/dist/components/table/table.js +15 -15
- package/dist/components/table/table.js.map +1 -1
- package/dist/components/text/text.js +10 -1
- package/dist/components/text/text.js.map +1 -1
- package/dist/components/toast/toast.js +26 -26
- package/dist/components/toast/toast.js.map +1 -1
- package/dist/components/toggle/toggle.js +20 -20
- package/dist/components/toggle/toggle.js.map +1 -1
- package/dist/index.d.ts +1930 -1867
- package/dist/index.js +133 -121
- package/dist/index.js.map +1 -1
- package/dist/packages/tokens/dist/generated/core.generated.js +13 -22
- package/dist/packages/tokens/dist/generated/core.generated.js.map +1 -1
- package/dist/packages/tokens/dist/generated/palette.generated.js +5 -5
- package/dist/packages/tokens/dist/generated/palette.generated.js.map +1 -1
- package/dist/packages/tokens/dist/install.js +5 -5
- package/dist/packages/tokens/dist/install.js.map +1 -1
- package/dist/tokens/core.meta.generated.js +2 -2
- package/dist/tokens/core.meta.generated.js.map +1 -1
- package/dist/tokens/index.d.ts +1029 -1104
- package/dist/tokens/index.js +1031 -1106
- package/dist/tokens/index.js.map +1 -1
- package/dist/tokens/palette.generated.js +2 -2
- package/dist/tokens/palette.generated.js.map +1 -1
- package/dist/tokens.json +605 -755
- package/dist/vendor/.bun/@dnd-kit_core@6.3.1_6f4b9a1cfb20c0ae/vendor/@dnd-kit/core/dist/core.esm.js +385 -340
- package/dist/vendor/.bun/@dnd-kit_core@6.3.1_6f4b9a1cfb20c0ae/vendor/@dnd-kit/core/dist/core.esm.js.map +1 -1
- package/dist/vendor/.bun/@dnd-kit_sortable@10.0.0_1d291640e1250bbe/vendor/@dnd-kit/sortable/dist/sortable.esm.js +344 -229
- package/dist/vendor/.bun/@dnd-kit_sortable@10.0.0_1d291640e1250bbe/vendor/@dnd-kit/sortable/dist/sortable.esm.js.map +1 -1
- package/dist/vendor/.bun/@dnd-kit_utilities@3.2.2_62547eec5a2188e3/vendor/@dnd-kit/utilities/dist/utilities.esm.js +1 -1
- package/dist/vendor/.bun/@tanstack_react-virtual@3.11.2_6f4b9a1cfb20c0ae/vendor/@tanstack/react-virtual/dist/esm/index.js +36 -0
- package/dist/vendor/.bun/@tanstack_react-virtual@3.11.2_6f4b9a1cfb20c0ae/vendor/@tanstack/react-virtual/dist/esm/index.js.map +1 -0
- package/dist/vendor/.bun/@tanstack_virtual-core@3.11.2/vendor/@tanstack/virtual-core/dist/esm/index.js +450 -0
- package/dist/vendor/.bun/@tanstack_virtual-core@3.11.2/vendor/@tanstack/virtual-core/dist/esm/index.js.map +1 -0
- package/dist/vendor/.bun/@tanstack_virtual-core@3.11.2/vendor/@tanstack/virtual-core/dist/esm/utils.js +50 -0
- package/dist/vendor/.bun/@tanstack_virtual-core@3.11.2/vendor/@tanstack/virtual-core/dist/esm/utils.js.map +1 -0
- package/package.json +5 -3
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsx as e, jsxs as h } from "react/jsx-runtime";
|
|
2
|
-
import * as
|
|
2
|
+
import * as s from "react";
|
|
3
3
|
import { Root as M, CheckboxItem as T, ItemIndicator as R, Portal as S, Content as v, Group as k, Item as N, Label as q, RadioGroup as L, RadioItem as A, Separator as G, Sub as z, SubContent as W, SubTrigger as X, Trigger as B } from "../../vendor/.bun/@radix-ui_react-dropdown-menu@2.1.16_2b23df507bdda662/vendor/@radix-ui/react-dropdown-menu/dist/index.js";
|
|
4
4
|
import { mergeClasses as m, SLOT_ATTR as c, shorthands as g } from "@epilot/zenith-runtime/v1";
|
|
5
5
|
import { useAppearanceAttributes as C } from "../appearance-boundary/appearance-boundary.js";
|
|
6
6
|
import { useDensity as D } from "../density-provider/density-provider.js";
|
|
7
|
-
import { makeZenithStyles as
|
|
8
|
-
import { grayA11 as
|
|
7
|
+
import { makeZenithStyles as $ } from "../../styles/make-styles.js";
|
|
8
|
+
import { grayA11 as E, leadingXs as P, textXs as j, grayA3 as Y, spacingElement1 as l, fontWeightSemibold as Z, leadingSm as x, textSm as y, spacingElement2 as p, accentSoft as f, errorSoft as w, errorA8 as _, errorA11 as F, grayA12 as H, body as O, accentA11 as J, radiusMd as K, radiusXl as Q } from "../../tokens/index.js";
|
|
9
9
|
const U = (r) => /* @__PURE__ */ e(
|
|
10
10
|
"svg",
|
|
11
11
|
{
|
|
@@ -39,7 +39,7 @@ const U = (r) => /* @__PURE__ */ e(
|
|
|
39
39
|
...r,
|
|
40
40
|
children: /* @__PURE__ */ e("path", { d: "M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z" })
|
|
41
41
|
}
|
|
42
|
-
), u =
|
|
42
|
+
), u = $({
|
|
43
43
|
trigger: {
|
|
44
44
|
color: J
|
|
45
45
|
},
|
|
@@ -219,13 +219,13 @@ const U = (r) => /* @__PURE__ */ e(
|
|
|
219
219
|
fontSize: j,
|
|
220
220
|
lineHeight: P,
|
|
221
221
|
letterSpacing: "0.1em",
|
|
222
|
-
color:
|
|
222
|
+
color: E
|
|
223
223
|
}
|
|
224
|
-
}), co =
|
|
224
|
+
}), co = s.forwardRef(
|
|
225
225
|
function(o, t) {
|
|
226
226
|
return /* @__PURE__ */ e(M, { "data-slot": "dropdown-menu", ...o });
|
|
227
227
|
}
|
|
228
|
-
), po =
|
|
228
|
+
), po = s.forwardRef(function({ className: o, ...t }, n) {
|
|
229
229
|
const a = u();
|
|
230
230
|
return /* @__PURE__ */ e(
|
|
231
231
|
B,
|
|
@@ -237,7 +237,7 @@ const U = (r) => /* @__PURE__ */ e(
|
|
|
237
237
|
...t
|
|
238
238
|
}
|
|
239
239
|
);
|
|
240
|
-
}), mo =
|
|
240
|
+
}), mo = s.forwardRef(function({ className: o, ...t }, n) {
|
|
241
241
|
return /* @__PURE__ */ e(
|
|
242
242
|
k,
|
|
243
243
|
{
|
|
@@ -248,7 +248,7 @@ const U = (r) => /* @__PURE__ */ e(
|
|
|
248
248
|
...t
|
|
249
249
|
}
|
|
250
250
|
);
|
|
251
|
-
}), uo =
|
|
251
|
+
}), uo = s.forwardRef(function(o, t) {
|
|
252
252
|
return /* @__PURE__ */ e(
|
|
253
253
|
S,
|
|
254
254
|
{
|
|
@@ -257,9 +257,9 @@ const U = (r) => /* @__PURE__ */ e(
|
|
|
257
257
|
...o
|
|
258
258
|
}
|
|
259
259
|
);
|
|
260
|
-
}), lo =
|
|
260
|
+
}), lo = s.forwardRef(function(o, t) {
|
|
261
261
|
return /* @__PURE__ */ e(z, { "data-slot": "dropdown-menu-sub", ...o });
|
|
262
|
-
}), go =
|
|
262
|
+
}), go = s.forwardRef(function({ className: o, ...t }, n) {
|
|
263
263
|
return /* @__PURE__ */ e(
|
|
264
264
|
L,
|
|
265
265
|
{
|
|
@@ -270,8 +270,8 @@ const U = (r) => /* @__PURE__ */ e(
|
|
|
270
270
|
...t
|
|
271
271
|
}
|
|
272
272
|
);
|
|
273
|
-
}), fo =
|
|
274
|
-
const
|
|
273
|
+
}), fo = s.forwardRef(function({ className: o, inset: t, children: n, ...a }, i) {
|
|
274
|
+
const d = u();
|
|
275
275
|
return /* @__PURE__ */ h(
|
|
276
276
|
X,
|
|
277
277
|
{
|
|
@@ -279,20 +279,20 @@ const U = (r) => /* @__PURE__ */ e(
|
|
|
279
279
|
"data-slot": "dropdown-menu-sub-trigger",
|
|
280
280
|
[c]: "dropdown-menu-sub-trigger",
|
|
281
281
|
className: m(
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
t &&
|
|
282
|
+
d.item,
|
|
283
|
+
d.subTrigger,
|
|
284
|
+
t && d.itemInset,
|
|
285
285
|
o
|
|
286
286
|
),
|
|
287
287
|
...a,
|
|
288
288
|
children: [
|
|
289
289
|
n,
|
|
290
|
-
/* @__PURE__ */ e(V, { className:
|
|
290
|
+
/* @__PURE__ */ e(V, { className: d.subTriggerChevron })
|
|
291
291
|
]
|
|
292
292
|
}
|
|
293
293
|
);
|
|
294
|
-
}), wo =
|
|
295
|
-
const a = u(), i = D(),
|
|
294
|
+
}), wo = s.forwardRef(function({ className: o, ...t }, n) {
|
|
295
|
+
const a = u(), i = D(), d = C();
|
|
296
296
|
return /* @__PURE__ */ e(
|
|
297
297
|
W,
|
|
298
298
|
{
|
|
@@ -300,13 +300,13 @@ const U = (r) => /* @__PURE__ */ e(
|
|
|
300
300
|
"data-slot": "dropdown-menu-sub-content",
|
|
301
301
|
[c]: "dropdown-menu-sub-content",
|
|
302
302
|
...i !== void 0 ? { "data-density": i } : {},
|
|
303
|
-
...
|
|
303
|
+
...d,
|
|
304
304
|
className: m(a.popup, o),
|
|
305
305
|
...t
|
|
306
306
|
}
|
|
307
307
|
);
|
|
308
|
-
}), ho =
|
|
309
|
-
const
|
|
308
|
+
}), ho = s.forwardRef(function({ className: o, sideOffset: t = 4, container: n, ...a }, i) {
|
|
309
|
+
const d = u(), b = D(), I = C();
|
|
310
310
|
return /* @__PURE__ */ e(S, { container: n, children: /* @__PURE__ */ e(
|
|
311
311
|
v,
|
|
312
312
|
{
|
|
@@ -316,12 +316,12 @@ const U = (r) => /* @__PURE__ */ e(
|
|
|
316
316
|
...b !== void 0 ? { "data-density": b } : {},
|
|
317
317
|
...I,
|
|
318
318
|
sideOffset: t,
|
|
319
|
-
className: m(
|
|
319
|
+
className: m(d.popup, o),
|
|
320
320
|
...a
|
|
321
321
|
}
|
|
322
322
|
) });
|
|
323
|
-
}), bo =
|
|
324
|
-
const
|
|
323
|
+
}), bo = s.forwardRef(function({ className: o, inset: t, destructive: n, ...a }, i) {
|
|
324
|
+
const d = u();
|
|
325
325
|
return /* @__PURE__ */ e(
|
|
326
326
|
N,
|
|
327
327
|
{
|
|
@@ -329,32 +329,32 @@ const U = (r) => /* @__PURE__ */ e(
|
|
|
329
329
|
"data-slot": "dropdown-menu-item",
|
|
330
330
|
[c]: "dropdown-menu-item",
|
|
331
331
|
className: m(
|
|
332
|
-
|
|
333
|
-
t &&
|
|
334
|
-
n &&
|
|
332
|
+
d.item,
|
|
333
|
+
t && d.itemInset,
|
|
334
|
+
n && d.itemDestructive,
|
|
335
335
|
o
|
|
336
336
|
),
|
|
337
337
|
...a
|
|
338
338
|
}
|
|
339
339
|
);
|
|
340
|
-
}), xo =
|
|
341
|
-
const
|
|
340
|
+
}), xo = s.forwardRef(function({ className: o, children: t, checked: n, ...a }, i) {
|
|
341
|
+
const d = u();
|
|
342
342
|
return /* @__PURE__ */ h(
|
|
343
343
|
T,
|
|
344
344
|
{
|
|
345
345
|
ref: i,
|
|
346
346
|
"data-slot": "dropdown-menu-checkbox-item",
|
|
347
347
|
[c]: "dropdown-menu-checkbox-item",
|
|
348
|
-
className: m(
|
|
348
|
+
className: m(d.item, d.itemCheckboxRadio, o),
|
|
349
349
|
checked: n,
|
|
350
350
|
...a,
|
|
351
351
|
children: [
|
|
352
|
-
/* @__PURE__ */ e("span", { className:
|
|
352
|
+
/* @__PURE__ */ e("span", { className: d.itemIndicatorWrapper, children: /* @__PURE__ */ e(R, { className: d.itemIndicator, children: /* @__PURE__ */ e(U, {}) }) }),
|
|
353
353
|
t
|
|
354
354
|
]
|
|
355
355
|
}
|
|
356
356
|
);
|
|
357
|
-
}), yo =
|
|
357
|
+
}), yo = s.forwardRef(function({ className: o, children: t, ...n }, a) {
|
|
358
358
|
const i = u();
|
|
359
359
|
return /* @__PURE__ */ h(
|
|
360
360
|
A,
|
|
@@ -370,7 +370,7 @@ const U = (r) => /* @__PURE__ */ e(
|
|
|
370
370
|
]
|
|
371
371
|
}
|
|
372
372
|
);
|
|
373
|
-
}), Ro =
|
|
373
|
+
}), Ro = s.forwardRef(function({ className: o, inset: t, ...n }, a) {
|
|
374
374
|
const i = u();
|
|
375
375
|
return /* @__PURE__ */ e(
|
|
376
376
|
q,
|
|
@@ -386,7 +386,7 @@ const U = (r) => /* @__PURE__ */ e(
|
|
|
386
386
|
...n
|
|
387
387
|
}
|
|
388
388
|
);
|
|
389
|
-
}), So =
|
|
389
|
+
}), So = s.forwardRef(function({ className: o, ...t }, n) {
|
|
390
390
|
const a = u();
|
|
391
391
|
return /* @__PURE__ */ e(
|
|
392
392
|
G,
|
|
@@ -398,7 +398,7 @@ const U = (r) => /* @__PURE__ */ e(
|
|
|
398
398
|
...t
|
|
399
399
|
}
|
|
400
400
|
);
|
|
401
|
-
}), Co =
|
|
401
|
+
}), Co = s.forwardRef(function({ className: o, ...t }, n) {
|
|
402
402
|
const a = u();
|
|
403
403
|
return /* @__PURE__ */ e(
|
|
404
404
|
"span",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown-menu.js","sources":["../../../src/components/dropdown-menu/dropdown-menu.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\"\nimport { mergeClasses, shorthands } from \"@epilot/zenith-runtime/v1\"\n\nimport { useAppearanceAttributes } from \"../appearance-boundary/appearance-boundary\"\nimport { useDensity } from \"../density-provider/density-provider\"\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeZenithStyles } from \"../../styles/make-styles\"\nimport * as tokens from \"../../tokens\"\n\nconst CheckIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"16px\"\n viewBox=\"0 -960 960 960\"\n width=\"16px\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"m382-354 339-339q12-12 28-12t28 12q12 12 12 28.5T777-636L410-268q-12 12-28 12t-28-12L182-440q-12-12-11.5-28.5T183-497q12-12 28.5-12t28.5 12l142 143Z\" />\n </svg>\n)\n\nconst ChevronRightIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"16px\"\n viewBox=\"0 -960 960 960\"\n width=\"16px\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M504-480 348-636q-11-11-11-28t11-28q11-11 28-11t28 11l184 184q6 6 8.5 13t2.5 15q0 8-2.5 15t-8.5 13L404-268q-11 11-28 11t-28-11q-11-11-11-28t11-28l156-156Z\" />\n </svg>\n)\n\nconst CircleIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"8px\"\n viewBox=\"0 -960 960 960\"\n width=\"8px\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\" />\n </svg>\n)\n\nconst useStyles = makeZenithStyles({\n trigger: {\n color: tokens.accentA11,\n },\n portal: {\n display: \"contents\",\n },\n popup: {\n backgroundColor: tokens.body,\n color: tokens.grayA12,\n minWidth: \"10rem\",\n overflow: \"hidden\",\n ...shorthands.borderRadius(tokens.radiusXl),\n ...shorthands.padding(tokens.spacingElement1),\n // v1 shadow-lg\n boxShadow: \"0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a\",\n outlineStyle: \"none\",\n zIndex: 50,\n transformOrigin: \"var(--radix-dropdown-menu-content-transform-origin)\",\n \"&[data-state='open']\": {\n animationName: {\n from: { opacity: 0, transform: \"scale(0.95)\" },\n to: { opacity: 1, transform: \"scale(1)\" },\n },\n animationDuration: \"150ms\",\n animationTimingFunction: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n },\n \"&[data-state='open'][data-side='bottom']\": {\n animationName: {\n from: {\n opacity: 0,\n transform: `translateY(-${tokens.spacingElement2}) scale(0.95)`,\n },\n to: { opacity: 1, transform: \"translateY(0) scale(1)\" },\n },\n },\n \"&[data-state='open'][data-side='left']\": {\n animationName: {\n from: {\n opacity: 0,\n transform: `translateX(${tokens.spacingElement2}) scale(0.95)`,\n },\n to: { opacity: 1, transform: \"translateX(0) scale(1)\" },\n },\n },\n \"&[data-state='open'][data-side='right']\": {\n animationName: {\n from: {\n opacity: 0,\n transform: `translateX(-${tokens.spacingElement2}) scale(0.95)`,\n },\n to: { opacity: 1, transform: \"translateX(0) scale(1)\" },\n },\n },\n \"&[data-state='open'][data-side='top']\": {\n animationName: {\n from: {\n opacity: 0,\n transform: `translateY(${tokens.spacingElement2}) scale(0.95)`,\n },\n to: { opacity: 1, transform: \"translateY(0) scale(1)\" },\n },\n },\n \"&[data-state='closed']\": {\n animationName: {\n from: { opacity: 1, transform: \"scale(1)\" },\n to: { opacity: 0, transform: \"scale(0.95)\" },\n },\n animationDuration: \"100ms\",\n animationTimingFunction: \"cubic-bezier(0.4, 0, 1, 1)\",\n },\n },\n item: {\n position: \"relative\",\n display: \"flex\",\n cursor: \"pointer\",\n userSelect: \"none\",\n alignItems: \"center\",\n ...shorthands.gap(tokens.spacingElement2),\n ...shorthands.borderRadius(tokens.radiusMd),\n paddingLeft: tokens.spacingElement2,\n paddingRight: tokens.spacingElement2,\n paddingTop: \"0.375rem\",\n paddingBottom: \"0.375rem\",\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n outlineStyle: \"none\",\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 \":hover\": {\n backgroundColor: tokens.semAccentSoft,\n },\n \":focus-visible\": {\n backgroundColor: tokens.semAccentSoft,\n },\n \"&[data-highlighted]\": {\n backgroundColor: tokens.semAccentSoft,\n },\n \"&[data-disabled]\": {\n pointerEvents: \"none\",\n opacity: 0.5,\n },\n \"& svg\": {\n pointerEvents: \"none\",\n width: \"1rem\",\n height: \"1rem\",\n flexShrink: 0,\n },\n },\n itemInset: {\n paddingLeft: \"2rem\",\n },\n itemDestructive: {\n color: tokens.errorA11,\n \":hover\": {\n backgroundColor: tokens.semErrorSoft,\n },\n \":focus-visible\": {\n backgroundColor: tokens.semErrorSoft,\n outlineWidth: \"2px\",\n outlineStyle: \"solid\",\n outlineColor: tokens.errorA8,\n },\n \"&[data-highlighted]\": {\n backgroundColor: tokens.semErrorSoft,\n },\n },\n itemCheckboxRadio: {\n paddingLeft: \"2rem\",\n paddingRight: tokens.spacingElement2,\n },\n itemIndicatorWrapper: {\n position: \"absolute\",\n left: tokens.spacingElement2,\n display: \"flex\",\n height: \"0.875rem\",\n width: \"0.875rem\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n itemIndicator: {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n subTrigger: {\n \"&[data-state='open']\": {\n backgroundColor: tokens.semAccentSoft,\n },\n },\n subTriggerChevron: {\n marginLeft: \"auto\",\n width: \"1rem\",\n height: \"1rem\",\n flexShrink: 0,\n pointerEvents: \"none\",\n },\n label: {\n paddingLeft: tokens.spacingElement2,\n paddingRight: tokens.spacingElement2,\n paddingTop: \"0.375rem\",\n paddingBottom: \"0.375rem\",\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n fontWeight: tokens.fontWeightSemibold,\n },\n separator: {\n marginLeft: `calc(-1 * ${tokens.spacingElement1})`,\n marginRight: `calc(-1 * ${tokens.spacingElement1})`,\n marginTop: tokens.spacingElement1,\n marginBottom: tokens.spacingElement1,\n height: \"1px\",\n backgroundColor: tokens.grayA3,\n },\n shortcut: {\n marginLeft: \"auto\",\n fontSize: tokens.textXs,\n lineHeight: tokens.leadingXs,\n letterSpacing: \"0.1em\",\n color: tokens.grayA11,\n },\n})\n\nexport type DropdownMenuProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.Root\n>\n\nexport const DropdownMenu = React.forwardRef<HTMLElement, DropdownMenuProps>(\n function DropdownMenu(props, _ref) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />\n }\n)\n\nexport type DropdownMenuTriggerProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.Trigger\n>\n\nexport const DropdownMenuTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Trigger>,\n DropdownMenuTriggerProps\n>(function DropdownMenuTrigger({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <DropdownMenuPrimitive.Trigger\n ref={ref}\n data-slot=\"dropdown-menu-trigger\"\n {...{ [SLOT_ATTR]: \"dropdown-menu-trigger\" }}\n className={mergeClasses(styles.trigger, className)}\n {...props}\n />\n )\n})\n\nexport type DropdownMenuGroupProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.Group\n>\n\nexport const DropdownMenuGroup = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Group>,\n DropdownMenuGroupProps\n>(function DropdownMenuGroup({ className, ...props }, ref) {\n return (\n <DropdownMenuPrimitive.Group\n ref={ref}\n data-slot=\"dropdown-menu-group\"\n {...{ [SLOT_ATTR]: \"dropdown-menu-group\" }}\n className={className}\n {...props}\n />\n )\n})\n\nexport type DropdownMenuPortalProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.Portal\n>\n\nexport const DropdownMenuPortal = React.forwardRef<\n HTMLElement,\n DropdownMenuPortalProps\n>(function DropdownMenuPortal(props, _ref) {\n return (\n <DropdownMenuPrimitive.Portal\n data-slot=\"dropdown-menu-portal\"\n {...{ [SLOT_ATTR]: \"dropdown-menu-portal\" }}\n {...props}\n />\n )\n})\n\nexport type DropdownMenuSubProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.Sub\n>\n\nexport const DropdownMenuSub = React.forwardRef<\n HTMLElement,\n DropdownMenuSubProps\n>(function DropdownMenuSub(props, _ref) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />\n})\n\nexport type DropdownMenuRadioGroupProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.RadioGroup\n>\n\nexport const DropdownMenuRadioGroup = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioGroup>,\n DropdownMenuRadioGroupProps\n>(function DropdownMenuRadioGroup({ className, ...props }, ref) {\n return (\n <DropdownMenuPrimitive.RadioGroup\n ref={ref}\n data-slot=\"dropdown-menu-radio-group\"\n {...{ [SLOT_ATTR]: \"dropdown-menu-radio-group\" }}\n className={className}\n {...props}\n />\n )\n})\n\nexport type DropdownMenuSubTriggerProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.SubTrigger\n> & {\n inset?: boolean\n}\n\nexport const DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n DropdownMenuSubTriggerProps\n>(function DropdownMenuSubTrigger(\n { className, inset, children, ...props },\n ref\n) {\n const styles = useStyles()\n\n return (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n data-slot=\"dropdown-menu-sub-trigger\"\n {...{ [SLOT_ATTR]: \"dropdown-menu-sub-trigger\" }}\n className={mergeClasses(\n styles.item,\n styles.subTrigger,\n inset && styles.itemInset,\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className={styles.subTriggerChevron} />\n </DropdownMenuPrimitive.SubTrigger>\n )\n})\n\nexport type DropdownMenuSubContentProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.SubContent\n>\n\nexport const DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n DropdownMenuSubContentProps\n>(function DropdownMenuSubContent({ className, ...props }, ref) {\n const styles = useStyles()\n // DENSITY-SPEC.md §4.4 — portal content boundary; see dialog.tsx's identical comment. Radix's\n // `Menu.SubContent` does not self-portal (confirmed from `@radix-ui/react-menu`'s source: it\n // renders `MenuContentImpl` directly) — callers place it inside a `DropdownMenuPortal` alongside\n // top-level `DropdownMenuContent`, so it needs the same independent stamp.\n const override = useDensity()\n // SPEC.md §2 rule 3 — the same portal asymmetry, for the appearance pair: re-stamp the\n // nearest explicit AppearanceBoundary's mode+surface, or neither attribute when there is\n // none, leaving live shell inheritance in place.\n const appearance = useAppearanceAttributes()\n\n return (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n data-slot=\"dropdown-menu-sub-content\"\n {...{ [SLOT_ATTR]: \"dropdown-menu-sub-content\" }}\n {...(override !== undefined ? { \"data-density\": override } : {})}\n {...appearance}\n className={mergeClasses(styles.popup, className)}\n {...props}\n />\n )\n})\n\nexport type DropdownMenuContentProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.Content\n> & {\n container?: React.ComponentProps<\n typeof DropdownMenuPrimitive.Portal\n >[\"container\"]\n}\n\nexport const DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n DropdownMenuContentProps\n>(function DropdownMenuContent(\n { className, sideOffset = 4, container, ...props },\n ref\n) {\n const styles = useStyles()\n // DENSITY-SPEC.md §4.4 — portal content boundary; see dialog.tsx's identical comment.\n const override = useDensity()\n // SPEC.md §2 rule 3 — the same portal asymmetry, for the appearance pair: re-stamp the\n // nearest explicit AppearanceBoundary's mode+surface, or neither attribute when there is\n // none, leaving live shell inheritance in place.\n const appearance = useAppearanceAttributes()\n\n return (\n <DropdownMenuPrimitive.Portal container={container}>\n <DropdownMenuPrimitive.Content\n ref={ref}\n data-slot=\"dropdown-menu-content\"\n {...{ [SLOT_ATTR]: \"dropdown-menu-content\" }}\n {...(override !== undefined ? { \"data-density\": override } : {})}\n {...appearance}\n sideOffset={sideOffset}\n className={mergeClasses(styles.popup, className)}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n )\n})\n\nexport type DropdownMenuItemProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.Item\n> & {\n inset?: boolean\n destructive?: boolean\n}\n\nexport const DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n DropdownMenuItemProps\n>(function DropdownMenuItem({ className, inset, destructive, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <DropdownMenuPrimitive.Item\n ref={ref}\n data-slot=\"dropdown-menu-item\"\n {...{ [SLOT_ATTR]: \"dropdown-menu-item\" }}\n className={mergeClasses(\n styles.item,\n inset && styles.itemInset,\n destructive && styles.itemDestructive,\n className\n )}\n {...props}\n />\n )\n})\n\nexport type DropdownMenuCheckboxItemProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.CheckboxItem\n>\n\nexport const DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n DropdownMenuCheckboxItemProps\n>(function DropdownMenuCheckboxItem(\n { className, children, checked, ...props },\n ref\n) {\n const styles = useStyles()\n\n return (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n data-slot=\"dropdown-menu-checkbox-item\"\n {...{ [SLOT_ATTR]: \"dropdown-menu-checkbox-item\" }}\n className={mergeClasses(styles.item, styles.itemCheckboxRadio, className)}\n checked={checked}\n {...props}\n >\n <span className={styles.itemIndicatorWrapper}>\n <DropdownMenuPrimitive.ItemIndicator className={styles.itemIndicator}>\n <CheckIcon />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n )\n})\n\nexport type DropdownMenuRadioItemProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.RadioItem\n>\n\nexport const DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n DropdownMenuRadioItemProps\n>(function DropdownMenuRadioItem({ className, children, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n data-slot=\"dropdown-menu-radio-item\"\n {...{ [SLOT_ATTR]: \"dropdown-menu-radio-item\" }}\n className={mergeClasses(styles.item, styles.itemCheckboxRadio, className)}\n {...props}\n >\n <span className={styles.itemIndicatorWrapper}>\n <DropdownMenuPrimitive.ItemIndicator className={styles.itemIndicator}>\n <CircleIcon />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n )\n})\n\nexport type DropdownMenuLabelProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.Label\n> & {\n inset?: boolean\n}\n\nexport const DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n DropdownMenuLabelProps\n>(function DropdownMenuLabel({ className, inset, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <DropdownMenuPrimitive.Label\n ref={ref}\n data-slot=\"dropdown-menu-label\"\n {...{ [SLOT_ATTR]: \"dropdown-menu-label\" }}\n className={mergeClasses(\n styles.label,\n inset && styles.itemInset,\n className\n )}\n {...props}\n />\n )\n})\n\nexport type DropdownMenuSeparatorProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.Separator\n>\n\nexport const DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n DropdownMenuSeparatorProps\n>(function DropdownMenuSeparator({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n data-slot=\"dropdown-menu-separator\"\n {...{ [SLOT_ATTR]: \"dropdown-menu-separator\" }}\n className={mergeClasses(styles.separator, className)}\n {...props}\n />\n )\n})\n\nexport type DropdownMenuShortcutProps = React.ComponentProps<\"span\">\n\nexport const DropdownMenuShortcut = React.forwardRef<\n HTMLSpanElement,\n DropdownMenuShortcutProps\n>(function DropdownMenuShortcut({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <span\n ref={ref}\n data-slot=\"dropdown-menu-shortcut\"\n {...{ [SLOT_ATTR]: \"dropdown-menu-shortcut\" }}\n className={mergeClasses(styles.shortcut, className)}\n {...props}\n />\n )\n})\n"],"names":["CheckIcon","props","jsx","ChevronRightIcon","CircleIcon","useStyles","makeZenithStyles","tokens.accentA11","tokens.body","tokens.grayA12","shorthands","tokens.radiusXl","tokens.spacingElement1","tokens.spacingElement2","tokens.radiusMd","tokens.textSm","tokens.leadingSm","tokens.semAccentSoft","tokens.errorA11","tokens.semErrorSoft","tokens.errorA8","tokens.fontWeightSemibold","tokens.grayA3","tokens.textXs","tokens.leadingXs","tokens.grayA11","DropdownMenu","React","_ref","DropdownMenuPrimitive.Root","DropdownMenuTrigger","className","ref","styles","DropdownMenuPrimitive.Trigger","SLOT_ATTR","mergeClasses","DropdownMenuGroup","DropdownMenuPrimitive.Group","DropdownMenuPortal","DropdownMenuPrimitive.Portal","DropdownMenuSub","DropdownMenuPrimitive.Sub","DropdownMenuRadioGroup","DropdownMenuPrimitive.RadioGroup","DropdownMenuSubTrigger","inset","children","jsxs","DropdownMenuPrimitive.SubTrigger","DropdownMenuSubContent","override","useDensity","appearance","useAppearanceAttributes","DropdownMenuPrimitive.SubContent","DropdownMenuContent","sideOffset","container","DropdownMenuPrimitive.Content","DropdownMenuItem","destructive","DropdownMenuPrimitive.Item","DropdownMenuCheckboxItem","checked","DropdownMenuPrimitive.CheckboxItem","DropdownMenuPrimitive.ItemIndicator","DropdownMenuRadioItem","DropdownMenuPrimitive.RadioItem","DropdownMenuLabel","DropdownMenuPrimitive.Label","DropdownMenuSeparator","DropdownMenuPrimitive.Separator","DropdownMenuShortcut"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dropdown-menu.js","sources":["../../../src/components/dropdown-menu/dropdown-menu.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\"\nimport { mergeClasses, shorthands } from \"@epilot/zenith-runtime/v1\"\n\nimport { useAppearanceAttributes } from \"../appearance-boundary/appearance-boundary\"\nimport { useDensity } from \"../density-provider/density-provider\"\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeZenithStyles } from \"../../styles/make-styles\"\nimport * as tokens from \"../../tokens\"\n\nconst CheckIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"16px\"\n viewBox=\"0 -960 960 960\"\n width=\"16px\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"m382-354 339-339q12-12 28-12t28 12q12 12 12 28.5T777-636L410-268q-12 12-28 12t-28-12L182-440q-12-12-11.5-28.5T183-497q12-12 28.5-12t28.5 12l142 143Z\" />\n </svg>\n)\n\nconst ChevronRightIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"16px\"\n viewBox=\"0 -960 960 960\"\n width=\"16px\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M504-480 348-636q-11-11-11-28t11-28q11-11 28-11t28 11l184 184q6 6 8.5 13t2.5 15q0 8-2.5 15t-8.5 13L404-268q-11 11-28 11t-28-11q-11-11-11-28t11-28l156-156Z\" />\n </svg>\n)\n\nconst CircleIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"8px\"\n viewBox=\"0 -960 960 960\"\n width=\"8px\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\" />\n </svg>\n)\n\nconst useStyles = makeZenithStyles({\n trigger: {\n color: tokens.accentA11,\n },\n portal: {\n display: \"contents\",\n },\n popup: {\n backgroundColor: tokens.body,\n color: tokens.grayA12,\n minWidth: \"10rem\",\n overflow: \"hidden\",\n ...shorthands.borderRadius(tokens.radiusXl),\n ...shorthands.padding(tokens.spacingElement1),\n // v1 shadow-lg\n boxShadow: \"0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a\",\n outlineStyle: \"none\",\n zIndex: 50,\n transformOrigin: \"var(--radix-dropdown-menu-content-transform-origin)\",\n \"&[data-state='open']\": {\n animationName: {\n from: { opacity: 0, transform: \"scale(0.95)\" },\n to: { opacity: 1, transform: \"scale(1)\" },\n },\n animationDuration: \"150ms\",\n animationTimingFunction: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n },\n \"&[data-state='open'][data-side='bottom']\": {\n animationName: {\n from: {\n opacity: 0,\n transform: `translateY(-${tokens.spacingElement2}) scale(0.95)`,\n },\n to: { opacity: 1, transform: \"translateY(0) scale(1)\" },\n },\n },\n \"&[data-state='open'][data-side='left']\": {\n animationName: {\n from: {\n opacity: 0,\n transform: `translateX(${tokens.spacingElement2}) scale(0.95)`,\n },\n to: { opacity: 1, transform: \"translateX(0) scale(1)\" },\n },\n },\n \"&[data-state='open'][data-side='right']\": {\n animationName: {\n from: {\n opacity: 0,\n transform: `translateX(-${tokens.spacingElement2}) scale(0.95)`,\n },\n to: { opacity: 1, transform: \"translateX(0) scale(1)\" },\n },\n },\n \"&[data-state='open'][data-side='top']\": {\n animationName: {\n from: {\n opacity: 0,\n transform: `translateY(${tokens.spacingElement2}) scale(0.95)`,\n },\n to: { opacity: 1, transform: \"translateY(0) scale(1)\" },\n },\n },\n \"&[data-state='closed']\": {\n animationName: {\n from: { opacity: 1, transform: \"scale(1)\" },\n to: { opacity: 0, transform: \"scale(0.95)\" },\n },\n animationDuration: \"100ms\",\n animationTimingFunction: \"cubic-bezier(0.4, 0, 1, 1)\",\n },\n },\n item: {\n position: \"relative\",\n display: \"flex\",\n cursor: \"pointer\",\n userSelect: \"none\",\n alignItems: \"center\",\n ...shorthands.gap(tokens.spacingElement2),\n ...shorthands.borderRadius(tokens.radiusMd),\n paddingLeft: tokens.spacingElement2,\n paddingRight: tokens.spacingElement2,\n paddingTop: \"0.375rem\",\n paddingBottom: \"0.375rem\",\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n outlineStyle: \"none\",\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 \":hover\": {\n backgroundColor: tokens.accentSoft,\n },\n \":focus-visible\": {\n backgroundColor: tokens.accentSoft,\n },\n \"&[data-highlighted]\": {\n backgroundColor: tokens.accentSoft,\n },\n \"&[data-disabled]\": {\n pointerEvents: \"none\",\n opacity: 0.5,\n },\n \"& svg\": {\n pointerEvents: \"none\",\n width: \"1rem\",\n height: \"1rem\",\n flexShrink: 0,\n },\n },\n itemInset: {\n paddingLeft: \"2rem\",\n },\n itemDestructive: {\n color: tokens.errorA11,\n \":hover\": {\n backgroundColor: tokens.errorSoft,\n },\n \":focus-visible\": {\n backgroundColor: tokens.errorSoft,\n outlineWidth: \"2px\",\n outlineStyle: \"solid\",\n outlineColor: tokens.errorA8,\n },\n \"&[data-highlighted]\": {\n backgroundColor: tokens.errorSoft,\n },\n },\n itemCheckboxRadio: {\n paddingLeft: \"2rem\",\n paddingRight: tokens.spacingElement2,\n },\n itemIndicatorWrapper: {\n position: \"absolute\",\n left: tokens.spacingElement2,\n display: \"flex\",\n height: \"0.875rem\",\n width: \"0.875rem\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n itemIndicator: {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n subTrigger: {\n \"&[data-state='open']\": {\n backgroundColor: tokens.accentSoft,\n },\n },\n subTriggerChevron: {\n marginLeft: \"auto\",\n width: \"1rem\",\n height: \"1rem\",\n flexShrink: 0,\n pointerEvents: \"none\",\n },\n label: {\n paddingLeft: tokens.spacingElement2,\n paddingRight: tokens.spacingElement2,\n paddingTop: \"0.375rem\",\n paddingBottom: \"0.375rem\",\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n fontWeight: tokens.fontWeightSemibold,\n },\n separator: {\n marginLeft: `calc(-1 * ${tokens.spacingElement1})`,\n marginRight: `calc(-1 * ${tokens.spacingElement1})`,\n marginTop: tokens.spacingElement1,\n marginBottom: tokens.spacingElement1,\n height: \"1px\",\n backgroundColor: tokens.grayA3,\n },\n shortcut: {\n marginLeft: \"auto\",\n fontSize: tokens.textXs,\n lineHeight: tokens.leadingXs,\n letterSpacing: \"0.1em\",\n color: tokens.grayA11,\n },\n})\n\nexport type DropdownMenuProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.Root\n>\n\nexport const DropdownMenu = React.forwardRef<HTMLElement, DropdownMenuProps>(\n function DropdownMenu(props, _ref) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />\n }\n)\n\nexport type DropdownMenuTriggerProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.Trigger\n>\n\nexport const DropdownMenuTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Trigger>,\n DropdownMenuTriggerProps\n>(function DropdownMenuTrigger({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <DropdownMenuPrimitive.Trigger\n ref={ref}\n data-slot=\"dropdown-menu-trigger\"\n {...{ [SLOT_ATTR]: \"dropdown-menu-trigger\" }}\n className={mergeClasses(styles.trigger, className)}\n {...props}\n />\n )\n})\n\nexport type DropdownMenuGroupProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.Group\n>\n\nexport const DropdownMenuGroup = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Group>,\n DropdownMenuGroupProps\n>(function DropdownMenuGroup({ className, ...props }, ref) {\n return (\n <DropdownMenuPrimitive.Group\n ref={ref}\n data-slot=\"dropdown-menu-group\"\n {...{ [SLOT_ATTR]: \"dropdown-menu-group\" }}\n className={className}\n {...props}\n />\n )\n})\n\nexport type DropdownMenuPortalProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.Portal\n>\n\nexport const DropdownMenuPortal = React.forwardRef<\n HTMLElement,\n DropdownMenuPortalProps\n>(function DropdownMenuPortal(props, _ref) {\n return (\n <DropdownMenuPrimitive.Portal\n data-slot=\"dropdown-menu-portal\"\n {...{ [SLOT_ATTR]: \"dropdown-menu-portal\" }}\n {...props}\n />\n )\n})\n\nexport type DropdownMenuSubProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.Sub\n>\n\nexport const DropdownMenuSub = React.forwardRef<\n HTMLElement,\n DropdownMenuSubProps\n>(function DropdownMenuSub(props, _ref) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />\n})\n\nexport type DropdownMenuRadioGroupProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.RadioGroup\n>\n\nexport const DropdownMenuRadioGroup = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioGroup>,\n DropdownMenuRadioGroupProps\n>(function DropdownMenuRadioGroup({ className, ...props }, ref) {\n return (\n <DropdownMenuPrimitive.RadioGroup\n ref={ref}\n data-slot=\"dropdown-menu-radio-group\"\n {...{ [SLOT_ATTR]: \"dropdown-menu-radio-group\" }}\n className={className}\n {...props}\n />\n )\n})\n\nexport type DropdownMenuSubTriggerProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.SubTrigger\n> & {\n inset?: boolean\n}\n\nexport const DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n DropdownMenuSubTriggerProps\n>(function DropdownMenuSubTrigger(\n { className, inset, children, ...props },\n ref\n) {\n const styles = useStyles()\n\n return (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n data-slot=\"dropdown-menu-sub-trigger\"\n {...{ [SLOT_ATTR]: \"dropdown-menu-sub-trigger\" }}\n className={mergeClasses(\n styles.item,\n styles.subTrigger,\n inset && styles.itemInset,\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className={styles.subTriggerChevron} />\n </DropdownMenuPrimitive.SubTrigger>\n )\n})\n\nexport type DropdownMenuSubContentProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.SubContent\n>\n\nexport const DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n DropdownMenuSubContentProps\n>(function DropdownMenuSubContent({ className, ...props }, ref) {\n const styles = useStyles()\n // DENSITY-SPEC.md §4.4 — portal content boundary; see dialog.tsx's identical comment. Radix's\n // `Menu.SubContent` does not self-portal (confirmed from `@radix-ui/react-menu`'s source: it\n // renders `MenuContentImpl` directly) — callers place it inside a `DropdownMenuPortal` alongside\n // top-level `DropdownMenuContent`, so it needs the same independent stamp.\n const override = useDensity()\n // SPEC.md §2 rule 3 — the same portal asymmetry, for the appearance pair: re-stamp the\n // nearest explicit AppearanceBoundary's mode+surface, or neither attribute when there is\n // none, leaving live shell inheritance in place.\n const appearance = useAppearanceAttributes()\n\n return (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n data-slot=\"dropdown-menu-sub-content\"\n {...{ [SLOT_ATTR]: \"dropdown-menu-sub-content\" }}\n {...(override !== undefined ? { \"data-density\": override } : {})}\n {...appearance}\n className={mergeClasses(styles.popup, className)}\n {...props}\n />\n )\n})\n\nexport type DropdownMenuContentProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.Content\n> & {\n container?: React.ComponentProps<\n typeof DropdownMenuPrimitive.Portal\n >[\"container\"]\n}\n\nexport const DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n DropdownMenuContentProps\n>(function DropdownMenuContent(\n { className, sideOffset = 4, container, ...props },\n ref\n) {\n const styles = useStyles()\n // DENSITY-SPEC.md §4.4 — portal content boundary; see dialog.tsx's identical comment.\n const override = useDensity()\n // SPEC.md §2 rule 3 — the same portal asymmetry, for the appearance pair: re-stamp the\n // nearest explicit AppearanceBoundary's mode+surface, or neither attribute when there is\n // none, leaving live shell inheritance in place.\n const appearance = useAppearanceAttributes()\n\n return (\n <DropdownMenuPrimitive.Portal container={container}>\n <DropdownMenuPrimitive.Content\n ref={ref}\n data-slot=\"dropdown-menu-content\"\n {...{ [SLOT_ATTR]: \"dropdown-menu-content\" }}\n {...(override !== undefined ? { \"data-density\": override } : {})}\n {...appearance}\n sideOffset={sideOffset}\n className={mergeClasses(styles.popup, className)}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n )\n})\n\nexport type DropdownMenuItemProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.Item\n> & {\n inset?: boolean\n destructive?: boolean\n}\n\nexport const DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n DropdownMenuItemProps\n>(function DropdownMenuItem({ className, inset, destructive, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <DropdownMenuPrimitive.Item\n ref={ref}\n data-slot=\"dropdown-menu-item\"\n {...{ [SLOT_ATTR]: \"dropdown-menu-item\" }}\n className={mergeClasses(\n styles.item,\n inset && styles.itemInset,\n destructive && styles.itemDestructive,\n className\n )}\n {...props}\n />\n )\n})\n\nexport type DropdownMenuCheckboxItemProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.CheckboxItem\n>\n\nexport const DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n DropdownMenuCheckboxItemProps\n>(function DropdownMenuCheckboxItem(\n { className, children, checked, ...props },\n ref\n) {\n const styles = useStyles()\n\n return (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n data-slot=\"dropdown-menu-checkbox-item\"\n {...{ [SLOT_ATTR]: \"dropdown-menu-checkbox-item\" }}\n className={mergeClasses(styles.item, styles.itemCheckboxRadio, className)}\n checked={checked}\n {...props}\n >\n <span className={styles.itemIndicatorWrapper}>\n <DropdownMenuPrimitive.ItemIndicator className={styles.itemIndicator}>\n <CheckIcon />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n )\n})\n\nexport type DropdownMenuRadioItemProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.RadioItem\n>\n\nexport const DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n DropdownMenuRadioItemProps\n>(function DropdownMenuRadioItem({ className, children, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n data-slot=\"dropdown-menu-radio-item\"\n {...{ [SLOT_ATTR]: \"dropdown-menu-radio-item\" }}\n className={mergeClasses(styles.item, styles.itemCheckboxRadio, className)}\n {...props}\n >\n <span className={styles.itemIndicatorWrapper}>\n <DropdownMenuPrimitive.ItemIndicator className={styles.itemIndicator}>\n <CircleIcon />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n )\n})\n\nexport type DropdownMenuLabelProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.Label\n> & {\n inset?: boolean\n}\n\nexport const DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n DropdownMenuLabelProps\n>(function DropdownMenuLabel({ className, inset, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <DropdownMenuPrimitive.Label\n ref={ref}\n data-slot=\"dropdown-menu-label\"\n {...{ [SLOT_ATTR]: \"dropdown-menu-label\" }}\n className={mergeClasses(\n styles.label,\n inset && styles.itemInset,\n className\n )}\n {...props}\n />\n )\n})\n\nexport type DropdownMenuSeparatorProps = React.ComponentProps<\n typeof DropdownMenuPrimitive.Separator\n>\n\nexport const DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n DropdownMenuSeparatorProps\n>(function DropdownMenuSeparator({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n data-slot=\"dropdown-menu-separator\"\n {...{ [SLOT_ATTR]: \"dropdown-menu-separator\" }}\n className={mergeClasses(styles.separator, className)}\n {...props}\n />\n )\n})\n\nexport type DropdownMenuShortcutProps = React.ComponentProps<\"span\">\n\nexport const DropdownMenuShortcut = React.forwardRef<\n HTMLSpanElement,\n DropdownMenuShortcutProps\n>(function DropdownMenuShortcut({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <span\n ref={ref}\n data-slot=\"dropdown-menu-shortcut\"\n {...{ [SLOT_ATTR]: \"dropdown-menu-shortcut\" }}\n className={mergeClasses(styles.shortcut, className)}\n {...props}\n />\n )\n})\n"],"names":["CheckIcon","props","jsx","ChevronRightIcon","CircleIcon","useStyles","makeZenithStyles","tokens.accentA11","tokens.body","tokens.grayA12","shorthands","tokens.radiusXl","tokens.spacingElement1","tokens.spacingElement2","tokens.radiusMd","tokens.textSm","tokens.leadingSm","tokens.accentSoft","tokens.errorA11","tokens.errorSoft","tokens.errorA8","tokens.fontWeightSemibold","tokens.grayA3","tokens.textXs","tokens.leadingXs","tokens.grayA11","DropdownMenu","React","_ref","DropdownMenuPrimitive.Root","DropdownMenuTrigger","className","ref","styles","DropdownMenuPrimitive.Trigger","SLOT_ATTR","mergeClasses","DropdownMenuGroup","DropdownMenuPrimitive.Group","DropdownMenuPortal","DropdownMenuPrimitive.Portal","DropdownMenuSub","DropdownMenuPrimitive.Sub","DropdownMenuRadioGroup","DropdownMenuPrimitive.RadioGroup","DropdownMenuSubTrigger","inset","children","jsxs","DropdownMenuPrimitive.SubTrigger","DropdownMenuSubContent","override","useDensity","appearance","useAppearanceAttributes","DropdownMenuPrimitive.SubContent","DropdownMenuContent","sideOffset","container","DropdownMenuPrimitive.Content","DropdownMenuItem","destructive","DropdownMenuPrimitive.Item","DropdownMenuCheckboxItem","checked","DropdownMenuPrimitive.CheckboxItem","DropdownMenuPrimitive.ItemIndicator","DropdownMenuRadioItem","DropdownMenuPrimitive.RadioItem","DropdownMenuLabel","DropdownMenuPrimitive.Label","DropdownMenuSeparator","DropdownMenuPrimitive.Separator","DropdownMenuShortcut"],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@ import { jsx as n, jsxs as R } from "react/jsx-runtime";
|
|
|
2
2
|
import * as l from "react";
|
|
3
3
|
import { SLOT_ATTR as p, mergeClasses as m, shorthands as s } from "@epilot/zenith-runtime/v1";
|
|
4
4
|
import { makeZenithStyles as S } from "../../styles/make-styles.js";
|
|
5
|
-
import { grayA8 as I,
|
|
6
|
-
import { Command as
|
|
5
|
+
import { grayA8 as I, focusRing as y, accentA11 as L, spacingElement2 as b, spacingGroup1 as x, grayA11 as f, spacingElement1 as F, graySoft as N, leadingXs as q, textXs as P, fontWeightSemibold as T, leadingSm as h, textSm as C, grayA12 as u, radiusMd as V, radiusLg as D } from "../../tokens/index.js";
|
|
6
|
+
import { Command as B, CommandEmpty as G, CommandGroup as k, CommandInput as A, CommandItem as E, CommandList as j, CommandLoading as H, CommandSeparator as W } from "../command/command.js";
|
|
7
7
|
import { Label as z } from "../label/label.js";
|
|
8
8
|
import { Popover as O, PopoverPortal as Z, PopoverContent as M, PopoverTrigger as X } from "../popover/popover.js";
|
|
9
9
|
import { useOptionalFieldContext as _ } from "./field.js";
|
|
@@ -257,7 +257,7 @@ const $ = (a) => /* @__PURE__ */ n(
|
|
|
257
257
|
className: m(i.content, t),
|
|
258
258
|
...e,
|
|
259
259
|
children: /* @__PURE__ */ n(
|
|
260
|
-
|
|
260
|
+
B,
|
|
261
261
|
{
|
|
262
262
|
"data-slot": "combobox-command",
|
|
263
263
|
[p]: "combobox-command",
|
|
@@ -331,7 +331,7 @@ const $ = (a) => /* @__PURE__ */ n(
|
|
|
331
331
|
}), uo = l.forwardRef(function({ className: t, ...o }, r) {
|
|
332
332
|
const e = c();
|
|
333
333
|
return /* @__PURE__ */ n(
|
|
334
|
-
|
|
334
|
+
G,
|
|
335
335
|
{
|
|
336
336
|
ref: r,
|
|
337
337
|
"data-slot": "combobox-empty",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-combobox.js","sources":["../../../src/components/field/field-combobox.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { mergeClasses, shorthands } from \"@epilot/zenith-runtime/v1\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeZenithStyles } from \"../../styles/make-styles\"\nimport * as tokens from \"../../tokens\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandLoading,\n CommandSeparator,\n type CommandEmptyProps,\n type CommandGroupProps,\n type CommandInputProps,\n type CommandItemProps,\n type CommandListProps,\n type CommandLoadingProps,\n type CommandSeparatorProps,\n} from \"../command/command\"\nimport { Label, type LabelProps } from \"../label/label\"\nimport {\n Popover,\n PopoverContent,\n PopoverPortal,\n PopoverTrigger,\n type PopoverContentProps,\n type PopoverPortalProps,\n type PopoverProps,\n type PopoverTriggerProps,\n} from \"../popover/popover\"\nimport { useOptionalFieldContext } from \"./field\"\n\nconst CheckIcon = (props: React.ComponentProps<\"svg\">) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 -960 960 960\"\n width=\"24px\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"m382-354 339-339q12-12 28-12t28 12q12 12 12 28.5T777-636L410-268q-12 12-28 12t-28-12L182-440q-12-12-11.5-28.5T183-497q12-12 28.5-12t28.5 12l142 143Z\" />\n </svg>\n)\n\nconst ChevronDownIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 -960 960 960\"\n width=\"24px\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M459-381 314-526q-3-3-4.5-6.5T308-540q0-8 5.5-14t14.5-6h304q9 0 14.5 6t5.5 14q0 2-6 14L501-381q-5 5-10 7t-11 2q-6 0-11-2t-10-7Z\" />\n </svg>\n)\n\nconst XIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 -960 960 960\"\n width=\"24px\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M480-424 284-228q-11 11-28 11t-28-11q-11-11-11-28t11-28l196-196-196-196q-11-11-11-28t11-28q11-11 28-11t28 11l196 196 196-196q11-11 28-11t28 11q11 11 11 28t-11 28L536-480l196 196q11 11 11 28t-11 28q-11 11-28 11t-28-11L480-424Z\" />\n </svg>\n)\n\nconst useStyles = makeZenithStyles({\n trigger: {\n width: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n ...shorthands.gap(tokens.spacingElement2),\n ...shorthands.borderRadius(tokens.radiusLg),\n backgroundColor: \"transparent\",\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n whiteSpace: \"nowrap\",\n outlineStyle: \"none\",\n ...shorthands.border(\"0\"),\n ...shorthands.padding(0),\n \":focus-visible\": {\n outlineWidth: \"2px\",\n outlineStyle: \"solid\",\n outlineOffset: \"2px\",\n outlineColor: tokens.semFocusRing,\n },\n \":disabled\": {\n cursor: \"not-allowed\",\n opacity: 0.5,\n },\n },\n triggerChevron: {\n width: \"1.5rem\",\n height: \"1.5rem\",\n flexShrink: 0,\n transitionProperty: \"transform\",\n transitionDuration: \"150ms\",\n \"@media (prefers-reduced-motion: reduce)\": {\n transitionDuration: \"0.01ms\",\n },\n color: tokens.grayA11,\n \"&[data-popup-open], &[data-open]\": {\n transform: \"rotate(180deg)\",\n },\n },\n value: {\n color: tokens.grayA12,\n width: \"100%\",\n textAlign: \"left\",\n flexWrap: \"wrap\",\n display: \"flex\",\n ...shorthands.gap(tokens.spacingElement2),\n position: \"relative\",\n whiteSpace: \"normal\",\n marginRight: \"1.25rem\",\n },\n content: {\n ...shorthands.padding(0),\n },\n command: {\n width: \"100%\",\n ...shorthands.borderRadius(0),\n },\n input: {\n width: \"100%\",\n },\n list: {\n ...shorthands.padding(tokens.spacingElement2),\n },\n item: {\n paddingLeft: tokens.spacingGroup1,\n paddingRight: \"2rem\",\n paddingTop: \"0.375rem\",\n paddingBottom: \"0.375rem\",\n color: tokens.grayA12,\n position: \"relative\",\n display: \"flex\",\n width: \"100%\",\n cursor: \"default\",\n alignItems: \"center\",\n ...shorthands.gap(tokens.spacingElement2),\n ...shorthands.borderRadius(tokens.radiusMd),\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n outlineStyle: \"none\",\n userSelect: \"none\",\n },\n itemCheckIcon: {\n position: \"absolute\",\n right: tokens.spacingElement2,\n display: \"flex\",\n width: \"1rem\",\n height: \"1rem\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n checkSvg: {\n width: \"1rem\",\n height: \"1rem\",\n color: tokens.grayA12,\n },\n empty: {\n paddingTop: \"1.5rem\",\n paddingBottom: \"1.5rem\",\n textAlign: \"center\",\n color: tokens.grayA12,\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n },\n group: {\n ...shorthands.padding(0),\n },\n groupLabel: {\n color: tokens.grayA11,\n fontWeight: tokens.fontWeightSemibold,\n paddingLeft: tokens.spacingElement2,\n paddingRight: tokens.spacingElement2,\n paddingTop: tokens.spacingElement2,\n paddingBottom: tokens.spacingElement2,\n fontSize: tokens.textXs,\n lineHeight: tokens.leadingXs,\n },\n separator: {\n backgroundColor: tokens.semGraySoft,\n pointerEvents: \"none\",\n marginLeft: `calc(-1 * ${tokens.spacingElement1})`,\n marginRight: `calc(-1 * ${tokens.spacingElement1})`,\n marginTop: tokens.spacingElement2,\n marginBottom: tokens.spacingElement2,\n height: \"1px\",\n },\n loading: {\n color: tokens.grayA11,\n paddingLeft: tokens.spacingGroup1,\n paddingRight: tokens.spacingGroup1,\n paddingTop: tokens.spacingElement2,\n paddingBottom: tokens.spacingElement2,\n },\n clear: {\n position: \"absolute\",\n right: \"2.75rem\",\n cursor: \"pointer\",\n minHeight: \"auto\",\n ...shorthands.padding(\"0.125rem\"),\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n ...shorthands.borderRadius(\"9999px\"),\n backgroundColor: \"transparent\",\n ...shorthands.border(\"0\"),\n color: tokens.accentA11,\n \":focus-visible\": {\n outlineWidth: \"2px\",\n outlineStyle: \"solid\",\n outlineOffset: \"2px\",\n outlineColor: tokens.semFocusRing,\n },\n },\n clearSvg: {\n width: \"1.25rem\",\n height: \"1.25rem\",\n },\n clearValue: {\n cursor: \"pointer\",\n \":hover\": {\n opacity: 0.7,\n },\n color: \"currentColor\",\n ...shorthands.borderRadius(\"9999px\"),\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n clearValueSvg: {\n width: \"1rem\",\n height: \"1rem\",\n color: \"currentColor\",\n },\n placeholder: {\n color: tokens.grayA8,\n },\n})\n\nexport type FieldComboboxProps = PopoverProps\n\nexport const FieldCombobox = React.forwardRef<HTMLElement, FieldComboboxProps>(\n function FieldCombobox(props, _ref) {\n return (\n <Popover\n data-slot=\"combobox\"\n {...{ [SLOT_ATTR]: \"combobox\" }}\n {...props}\n />\n )\n }\n)\n\nexport type FieldComboboxTriggerProps = PopoverTriggerProps\n\nexport const FieldComboboxTrigger = React.forwardRef<\n HTMLButtonElement,\n FieldComboboxTriggerProps\n>(function FieldComboboxTrigger(\n { className, children, ...props },\n forwardedRef\n) {\n const styles = useStyles()\n // Optional on purpose: this part is valid standalone and only picks up field wiring\n // when nested inside one. See useOptionalFieldContext.\n const inputRef = useOptionalFieldContext()?.inputRef ?? null\n\n const handleRef = (el: HTMLButtonElement | null) => {\n if (inputRef) {\n inputRef.current = el\n }\n if (typeof forwardedRef === \"function\") {\n forwardedRef(el)\n } else if (forwardedRef) {\n forwardedRef.current = el\n }\n }\n\n return (\n <PopoverTrigger\n ref={handleRef}\n data-slot=\"select-trigger\"\n {...{ [SLOT_ATTR]: \"select-trigger\" }}\n className={mergeClasses(styles.trigger, className)}\n {...props}\n >\n {children}\n <ChevronDownIcon className={styles.triggerChevron} />\n </PopoverTrigger>\n )\n})\n\nexport type FieldComboboxContentProps = PopoverContentProps & {\n container?: PopoverPortalProps[\"container\"]\n}\n\nexport const FieldComboboxContent = React.forwardRef<\n HTMLDivElement,\n FieldComboboxContentProps\n>(function FieldComboboxContent(\n { className, children, container, ...props },\n ref\n) {\n const styles = useStyles()\n\n return (\n <PopoverPortal container={container}>\n <PopoverContent\n ref={ref}\n data-slot=\"combobox-content\"\n {...{ [SLOT_ATTR]: \"combobox-content\" }}\n className={mergeClasses(styles.content, className)}\n {...props}\n >\n <Command\n data-slot=\"combobox-command\"\n {...{ [SLOT_ATTR]: \"combobox-command\" }}\n className={styles.command}\n >\n {children}\n </Command>\n </PopoverContent>\n </PopoverPortal>\n )\n})\n\nexport type FieldComboboxValueProps = React.ComponentProps<\"div\">\n\nexport const FieldComboboxValue = React.forwardRef<\n HTMLDivElement,\n FieldComboboxValueProps\n>(function FieldComboboxValue({ className, children, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <div\n ref={ref}\n data-slot=\"combobox-value\"\n {...{ [SLOT_ATTR]: \"combobox-value\" }}\n className={mergeClasses(styles.value, className)}\n {...props}\n >\n {children}\n </div>\n )\n})\n\nexport type FieldComboboxInputProps = CommandInputProps\n\nexport const FieldComboboxInput = React.forwardRef<\n HTMLInputElement,\n FieldComboboxInputProps\n>(function FieldComboboxInput({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <CommandInput\n ref={ref}\n data-slot=\"combobox-command-input\"\n {...{ [SLOT_ATTR]: \"combobox-command-input\" }}\n className={mergeClasses(styles.input, className)}\n {...props}\n />\n )\n})\n\nexport type FieldComboboxListProps = CommandListProps\n\nexport const FieldComboboxList = React.forwardRef<\n HTMLDivElement,\n FieldComboboxListProps\n>(function FieldComboboxList({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <CommandList\n ref={ref}\n data-slot=\"combobox-command-list\"\n {...{ [SLOT_ATTR]: \"combobox-command-list\" }}\n className={mergeClasses(styles.list, className)}\n {...props}\n />\n )\n})\n\nexport type FieldComboboxItemProps = CommandItemProps\n\nexport const FieldComboboxItem = React.forwardRef<\n HTMLDivElement,\n FieldComboboxItemProps\n>(function FieldComboboxItem({ className, children, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <CommandItem\n ref={ref}\n data-slot=\"combobox-item\"\n {...{ [SLOT_ATTR]: \"combobox-item\" }}\n className={mergeClasses(styles.item, className)}\n {...props}\n >\n {children}\n </CommandItem>\n )\n})\n\nexport type FieldComboboxItemCheckIconProps = React.ComponentProps<\"span\">\n\nexport const FieldComboboxItemCheckIcon = React.forwardRef<\n HTMLSpanElement,\n FieldComboboxItemCheckIconProps\n>(function FieldComboboxItemCheckIcon({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <span\n ref={ref}\n className={mergeClasses(styles.itemCheckIcon, className)}\n {...props}\n >\n <CheckIcon className={styles.checkSvg} />\n </span>\n )\n})\n\nexport type FieldComboboxEmptyProps = CommandEmptyProps\n\nexport const FieldComboboxEmpty = React.forwardRef<\n HTMLDivElement,\n FieldComboboxEmptyProps\n>(function FieldComboboxEmpty({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <CommandEmpty\n ref={ref}\n data-slot=\"combobox-empty\"\n {...{ [SLOT_ATTR]: \"combobox-empty\" }}\n className={mergeClasses(styles.empty, className)}\n {...props}\n />\n )\n})\n\nexport type FieldComboboxGroupProps = CommandGroupProps\n\nexport const FieldComboboxGroup = React.forwardRef<\n HTMLDivElement,\n FieldComboboxGroupProps\n>(function FieldComboboxGroup({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <CommandGroup\n ref={ref}\n data-slot=\"combobox-group\"\n {...{ [SLOT_ATTR]: \"combobox-group\" }}\n className={mergeClasses(styles.group, className)}\n {...props}\n />\n )\n})\n\nexport type FieldComboboxGroupLabelProps = LabelProps\n\nexport const FieldComboboxGroupLabel = React.forwardRef<\n HTMLLabelElement,\n FieldComboboxGroupLabelProps\n>(function FieldComboboxGroupLabel({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <Label\n ref={ref}\n data-slot=\"combobox-group-label\"\n {...{ [SLOT_ATTR]: \"combobox-group-label\" }}\n className={mergeClasses(styles.groupLabel, className)}\n {...props}\n />\n )\n})\n\nexport type FieldComboboxSeparatorProps = CommandSeparatorProps\n\nexport const FieldComboboxSeparator = React.forwardRef<\n HTMLDivElement,\n FieldComboboxSeparatorProps\n>(function FieldComboboxSeparator({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <CommandSeparator\n ref={ref}\n data-slot=\"select-separator\"\n {...{ [SLOT_ATTR]: \"select-separator\" }}\n className={mergeClasses(styles.separator, className)}\n {...props}\n />\n )\n})\n\nexport type FieldComboboxLoadingProps = CommandLoadingProps\n\nexport const FieldComboboxLoading = React.forwardRef<\n HTMLDivElement,\n FieldComboboxLoadingProps\n>(function FieldComboboxLoading({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <CommandLoading\n ref={ref}\n data-slot=\"combobox-command-loading\"\n {...{ [SLOT_ATTR]: \"combobox-command-loading\" }}\n className={mergeClasses(styles.loading, className)}\n {...props}\n />\n )\n})\n\nexport type FieldComboboxClearProps = React.ComponentProps<\"span\">\n\nexport const FieldComboboxClear = React.forwardRef<\n HTMLSpanElement,\n FieldComboboxClearProps\n>(function FieldComboboxClear({ className, onClick, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <span\n ref={ref}\n role=\"button\"\n tabIndex={0}\n className={mergeClasses(styles.clear, className)}\n onPointerDown={(event) => {\n event.preventDefault()\n event.stopPropagation()\n }}\n onClick={(event) => {\n event.preventDefault()\n event.stopPropagation()\n onClick?.(event)\n }}\n {...props}\n >\n <XIcon className={styles.clearSvg} />\n </span>\n )\n})\n\nexport type FieldComboboxPlaceholderProps = React.ComponentProps<\"span\">\n\nexport const FieldComboboxPlaceholder = React.forwardRef<\n HTMLSpanElement,\n FieldComboboxPlaceholderProps\n>(function FieldComboboxPlaceholder({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <span\n ref={ref}\n className={mergeClasses(styles.placeholder, className)}\n {...props}\n />\n )\n})\n\nexport type FieldComboboxClearValueProps = React.ComponentProps<\"span\">\n\nexport const FieldComboboxClearValue = React.forwardRef<\n HTMLSpanElement,\n FieldComboboxClearValueProps\n>(function FieldComboboxClearValue({ className, onClick, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <span\n ref={ref}\n role=\"button\"\n tabIndex={0}\n className={mergeClasses(styles.clearValue, className)}\n onPointerDown={(event) => {\n event.preventDefault()\n event.stopPropagation()\n }}\n onClick={(event) => {\n event.preventDefault()\n event.stopPropagation()\n onClick?.(event)\n }}\n {...props}\n >\n <XIcon className={styles.clearValueSvg} />\n </span>\n )\n})\n\nexport {\n FieldCombobox as Combobox,\n FieldComboboxGroup as ComboboxGroup,\n FieldComboboxGroupLabel as ComboboxGroupLabel,\n FieldComboboxValue as ComboboxValue,\n FieldComboboxTrigger as ComboboxTrigger,\n FieldComboboxContent as ComboboxContent,\n FieldComboboxItem as ComboboxItem,\n FieldComboboxItemCheckIcon as ComboboxItemCheckIcon,\n FieldComboboxEmpty as ComboboxEmpty,\n FieldComboboxSeparator as ComboboxSeparator,\n FieldComboboxInput as ComboboxInput,\n FieldComboboxList as ComboboxList,\n FieldComboboxLoading as ComboboxLoading,\n FieldComboboxClear as ComboboxClear,\n FieldComboboxClearValue as ComboboxClearValue,\n FieldComboboxPlaceholder as ComboboxPlaceholder,\n}\n"],"names":["CheckIcon","props","jsx","ChevronDownIcon","XIcon","useStyles","makeZenithStyles","shorthands","tokens.spacingElement2","tokens.radiusLg","tokens.textSm","tokens.leadingSm","tokens.semFocusRing","tokens.grayA11","tokens.grayA12","tokens.spacingGroup1","tokens.radiusMd","tokens.fontWeightSemibold","tokens.textXs","tokens.leadingXs","tokens.semGraySoft","tokens.spacingElement1","tokens.accentA11","tokens.grayA8","FieldCombobox","React","_ref","Popover","SLOT_ATTR","FieldComboboxTrigger","className","children","forwardedRef","styles","inputRef","_a","useOptionalFieldContext","jsxs","PopoverTrigger","el","mergeClasses","FieldComboboxContent","container","ref","PopoverPortal","PopoverContent","Command","FieldComboboxValue","FieldComboboxInput","CommandInput","FieldComboboxList","CommandList","FieldComboboxItem","CommandItem","FieldComboboxItemCheckIcon","FieldComboboxEmpty","CommandEmpty","FieldComboboxGroup","CommandGroup","FieldComboboxGroupLabel","Label","FieldComboboxSeparator","CommandSeparator","FieldComboboxLoading","CommandLoading","FieldComboboxClear","onClick","event","FieldComboboxPlaceholder","FieldComboboxClearValue"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"field-combobox.js","sources":["../../../src/components/field/field-combobox.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { mergeClasses, shorthands } from \"@epilot/zenith-runtime/v1\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeZenithStyles } from \"../../styles/make-styles\"\nimport * as tokens from \"../../tokens\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandLoading,\n CommandSeparator,\n type CommandEmptyProps,\n type CommandGroupProps,\n type CommandInputProps,\n type CommandItemProps,\n type CommandListProps,\n type CommandLoadingProps,\n type CommandSeparatorProps,\n} from \"../command/command\"\nimport { Label, type LabelProps } from \"../label/label\"\nimport {\n Popover,\n PopoverContent,\n PopoverPortal,\n PopoverTrigger,\n type PopoverContentProps,\n type PopoverPortalProps,\n type PopoverProps,\n type PopoverTriggerProps,\n} from \"../popover/popover\"\nimport { useOptionalFieldContext } from \"./field\"\n\nconst CheckIcon = (props: React.ComponentProps<\"svg\">) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 -960 960 960\"\n width=\"24px\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"m382-354 339-339q12-12 28-12t28 12q12 12 12 28.5T777-636L410-268q-12 12-28 12t-28-12L182-440q-12-12-11.5-28.5T183-497q12-12 28.5-12t28.5 12l142 143Z\" />\n </svg>\n)\n\nconst ChevronDownIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 -960 960 960\"\n width=\"24px\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M459-381 314-526q-3-3-4.5-6.5T308-540q0-8 5.5-14t14.5-6h304q9 0 14.5 6t5.5 14q0 2-6 14L501-381q-5 5-10 7t-11 2q-6 0-11-2t-10-7Z\" />\n </svg>\n)\n\nconst XIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 -960 960 960\"\n width=\"24px\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M480-424 284-228q-11 11-28 11t-28-11q-11-11-11-28t11-28l196-196-196-196q-11-11-11-28t11-28q11-11 28-11t28 11l196 196 196-196q11-11 28-11t28 11q11 11 11 28t-11 28L536-480l196 196q11 11 11 28t-11 28q-11 11-28 11t-28-11L480-424Z\" />\n </svg>\n)\n\nconst useStyles = makeZenithStyles({\n trigger: {\n width: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n ...shorthands.gap(tokens.spacingElement2),\n ...shorthands.borderRadius(tokens.radiusLg),\n backgroundColor: \"transparent\",\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n whiteSpace: \"nowrap\",\n outlineStyle: \"none\",\n ...shorthands.border(\"0\"),\n ...shorthands.padding(0),\n \":focus-visible\": {\n outlineWidth: \"2px\",\n outlineStyle: \"solid\",\n outlineOffset: \"2px\",\n outlineColor: tokens.focusRing,\n },\n \":disabled\": {\n cursor: \"not-allowed\",\n opacity: 0.5,\n },\n },\n triggerChevron: {\n width: \"1.5rem\",\n height: \"1.5rem\",\n flexShrink: 0,\n transitionProperty: \"transform\",\n transitionDuration: \"150ms\",\n \"@media (prefers-reduced-motion: reduce)\": {\n transitionDuration: \"0.01ms\",\n },\n color: tokens.grayA11,\n \"&[data-popup-open], &[data-open]\": {\n transform: \"rotate(180deg)\",\n },\n },\n value: {\n color: tokens.grayA12,\n width: \"100%\",\n textAlign: \"left\",\n flexWrap: \"wrap\",\n display: \"flex\",\n ...shorthands.gap(tokens.spacingElement2),\n position: \"relative\",\n whiteSpace: \"normal\",\n marginRight: \"1.25rem\",\n },\n content: {\n ...shorthands.padding(0),\n },\n command: {\n width: \"100%\",\n ...shorthands.borderRadius(0),\n },\n input: {\n width: \"100%\",\n },\n list: {\n ...shorthands.padding(tokens.spacingElement2),\n },\n item: {\n paddingLeft: tokens.spacingGroup1,\n paddingRight: \"2rem\",\n paddingTop: \"0.375rem\",\n paddingBottom: \"0.375rem\",\n color: tokens.grayA12,\n position: \"relative\",\n display: \"flex\",\n width: \"100%\",\n cursor: \"default\",\n alignItems: \"center\",\n ...shorthands.gap(tokens.spacingElement2),\n ...shorthands.borderRadius(tokens.radiusMd),\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n outlineStyle: \"none\",\n userSelect: \"none\",\n },\n itemCheckIcon: {\n position: \"absolute\",\n right: tokens.spacingElement2,\n display: \"flex\",\n width: \"1rem\",\n height: \"1rem\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n checkSvg: {\n width: \"1rem\",\n height: \"1rem\",\n color: tokens.grayA12,\n },\n empty: {\n paddingTop: \"1.5rem\",\n paddingBottom: \"1.5rem\",\n textAlign: \"center\",\n color: tokens.grayA12,\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n },\n group: {\n ...shorthands.padding(0),\n },\n groupLabel: {\n color: tokens.grayA11,\n fontWeight: tokens.fontWeightSemibold,\n paddingLeft: tokens.spacingElement2,\n paddingRight: tokens.spacingElement2,\n paddingTop: tokens.spacingElement2,\n paddingBottom: tokens.spacingElement2,\n fontSize: tokens.textXs,\n lineHeight: tokens.leadingXs,\n },\n separator: {\n backgroundColor: tokens.graySoft,\n pointerEvents: \"none\",\n marginLeft: `calc(-1 * ${tokens.spacingElement1})`,\n marginRight: `calc(-1 * ${tokens.spacingElement1})`,\n marginTop: tokens.spacingElement2,\n marginBottom: tokens.spacingElement2,\n height: \"1px\",\n },\n loading: {\n color: tokens.grayA11,\n paddingLeft: tokens.spacingGroup1,\n paddingRight: tokens.spacingGroup1,\n paddingTop: tokens.spacingElement2,\n paddingBottom: tokens.spacingElement2,\n },\n clear: {\n position: \"absolute\",\n right: \"2.75rem\",\n cursor: \"pointer\",\n minHeight: \"auto\",\n ...shorthands.padding(\"0.125rem\"),\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n ...shorthands.borderRadius(\"9999px\"),\n backgroundColor: \"transparent\",\n ...shorthands.border(\"0\"),\n color: tokens.accentA11,\n \":focus-visible\": {\n outlineWidth: \"2px\",\n outlineStyle: \"solid\",\n outlineOffset: \"2px\",\n outlineColor: tokens.focusRing,\n },\n },\n clearSvg: {\n width: \"1.25rem\",\n height: \"1.25rem\",\n },\n clearValue: {\n cursor: \"pointer\",\n \":hover\": {\n opacity: 0.7,\n },\n color: \"currentColor\",\n ...shorthands.borderRadius(\"9999px\"),\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n clearValueSvg: {\n width: \"1rem\",\n height: \"1rem\",\n color: \"currentColor\",\n },\n placeholder: {\n color: tokens.grayA8,\n },\n})\n\nexport type FieldComboboxProps = PopoverProps\n\nexport const FieldCombobox = React.forwardRef<HTMLElement, FieldComboboxProps>(\n function FieldCombobox(props, _ref) {\n return (\n <Popover\n data-slot=\"combobox\"\n {...{ [SLOT_ATTR]: \"combobox\" }}\n {...props}\n />\n )\n }\n)\n\nexport type FieldComboboxTriggerProps = PopoverTriggerProps\n\nexport const FieldComboboxTrigger = React.forwardRef<\n HTMLButtonElement,\n FieldComboboxTriggerProps\n>(function FieldComboboxTrigger(\n { className, children, ...props },\n forwardedRef\n) {\n const styles = useStyles()\n // Optional on purpose: this part is valid standalone and only picks up field wiring\n // when nested inside one. See useOptionalFieldContext.\n const inputRef = useOptionalFieldContext()?.inputRef ?? null\n\n const handleRef = (el: HTMLButtonElement | null) => {\n if (inputRef) {\n inputRef.current = el\n }\n if (typeof forwardedRef === \"function\") {\n forwardedRef(el)\n } else if (forwardedRef) {\n forwardedRef.current = el\n }\n }\n\n return (\n <PopoverTrigger\n ref={handleRef}\n data-slot=\"select-trigger\"\n {...{ [SLOT_ATTR]: \"select-trigger\" }}\n className={mergeClasses(styles.trigger, className)}\n {...props}\n >\n {children}\n <ChevronDownIcon className={styles.triggerChevron} />\n </PopoverTrigger>\n )\n})\n\nexport type FieldComboboxContentProps = PopoverContentProps & {\n container?: PopoverPortalProps[\"container\"]\n}\n\nexport const FieldComboboxContent = React.forwardRef<\n HTMLDivElement,\n FieldComboboxContentProps\n>(function FieldComboboxContent(\n { className, children, container, ...props },\n ref\n) {\n const styles = useStyles()\n\n return (\n <PopoverPortal container={container}>\n <PopoverContent\n ref={ref}\n data-slot=\"combobox-content\"\n {...{ [SLOT_ATTR]: \"combobox-content\" }}\n className={mergeClasses(styles.content, className)}\n {...props}\n >\n <Command\n data-slot=\"combobox-command\"\n {...{ [SLOT_ATTR]: \"combobox-command\" }}\n className={styles.command}\n >\n {children}\n </Command>\n </PopoverContent>\n </PopoverPortal>\n )\n})\n\nexport type FieldComboboxValueProps = React.ComponentProps<\"div\">\n\nexport const FieldComboboxValue = React.forwardRef<\n HTMLDivElement,\n FieldComboboxValueProps\n>(function FieldComboboxValue({ className, children, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <div\n ref={ref}\n data-slot=\"combobox-value\"\n {...{ [SLOT_ATTR]: \"combobox-value\" }}\n className={mergeClasses(styles.value, className)}\n {...props}\n >\n {children}\n </div>\n )\n})\n\nexport type FieldComboboxInputProps = CommandInputProps\n\nexport const FieldComboboxInput = React.forwardRef<\n HTMLInputElement,\n FieldComboboxInputProps\n>(function FieldComboboxInput({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <CommandInput\n ref={ref}\n data-slot=\"combobox-command-input\"\n {...{ [SLOT_ATTR]: \"combobox-command-input\" }}\n className={mergeClasses(styles.input, className)}\n {...props}\n />\n )\n})\n\nexport type FieldComboboxListProps = CommandListProps\n\nexport const FieldComboboxList = React.forwardRef<\n HTMLDivElement,\n FieldComboboxListProps\n>(function FieldComboboxList({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <CommandList\n ref={ref}\n data-slot=\"combobox-command-list\"\n {...{ [SLOT_ATTR]: \"combobox-command-list\" }}\n className={mergeClasses(styles.list, className)}\n {...props}\n />\n )\n})\n\nexport type FieldComboboxItemProps = CommandItemProps\n\nexport const FieldComboboxItem = React.forwardRef<\n HTMLDivElement,\n FieldComboboxItemProps\n>(function FieldComboboxItem({ className, children, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <CommandItem\n ref={ref}\n data-slot=\"combobox-item\"\n {...{ [SLOT_ATTR]: \"combobox-item\" }}\n className={mergeClasses(styles.item, className)}\n {...props}\n >\n {children}\n </CommandItem>\n )\n})\n\nexport type FieldComboboxItemCheckIconProps = React.ComponentProps<\"span\">\n\nexport const FieldComboboxItemCheckIcon = React.forwardRef<\n HTMLSpanElement,\n FieldComboboxItemCheckIconProps\n>(function FieldComboboxItemCheckIcon({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <span\n ref={ref}\n className={mergeClasses(styles.itemCheckIcon, className)}\n {...props}\n >\n <CheckIcon className={styles.checkSvg} />\n </span>\n )\n})\n\nexport type FieldComboboxEmptyProps = CommandEmptyProps\n\nexport const FieldComboboxEmpty = React.forwardRef<\n HTMLDivElement,\n FieldComboboxEmptyProps\n>(function FieldComboboxEmpty({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <CommandEmpty\n ref={ref}\n data-slot=\"combobox-empty\"\n {...{ [SLOT_ATTR]: \"combobox-empty\" }}\n className={mergeClasses(styles.empty, className)}\n {...props}\n />\n )\n})\n\nexport type FieldComboboxGroupProps = CommandGroupProps\n\nexport const FieldComboboxGroup = React.forwardRef<\n HTMLDivElement,\n FieldComboboxGroupProps\n>(function FieldComboboxGroup({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <CommandGroup\n ref={ref}\n data-slot=\"combobox-group\"\n {...{ [SLOT_ATTR]: \"combobox-group\" }}\n className={mergeClasses(styles.group, className)}\n {...props}\n />\n )\n})\n\nexport type FieldComboboxGroupLabelProps = LabelProps\n\nexport const FieldComboboxGroupLabel = React.forwardRef<\n HTMLLabelElement,\n FieldComboboxGroupLabelProps\n>(function FieldComboboxGroupLabel({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <Label\n ref={ref}\n data-slot=\"combobox-group-label\"\n {...{ [SLOT_ATTR]: \"combobox-group-label\" }}\n className={mergeClasses(styles.groupLabel, className)}\n {...props}\n />\n )\n})\n\nexport type FieldComboboxSeparatorProps = CommandSeparatorProps\n\nexport const FieldComboboxSeparator = React.forwardRef<\n HTMLDivElement,\n FieldComboboxSeparatorProps\n>(function FieldComboboxSeparator({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <CommandSeparator\n ref={ref}\n data-slot=\"select-separator\"\n {...{ [SLOT_ATTR]: \"select-separator\" }}\n className={mergeClasses(styles.separator, className)}\n {...props}\n />\n )\n})\n\nexport type FieldComboboxLoadingProps = CommandLoadingProps\n\nexport const FieldComboboxLoading = React.forwardRef<\n HTMLDivElement,\n FieldComboboxLoadingProps\n>(function FieldComboboxLoading({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <CommandLoading\n ref={ref}\n data-slot=\"combobox-command-loading\"\n {...{ [SLOT_ATTR]: \"combobox-command-loading\" }}\n className={mergeClasses(styles.loading, className)}\n {...props}\n />\n )\n})\n\nexport type FieldComboboxClearProps = React.ComponentProps<\"span\">\n\nexport const FieldComboboxClear = React.forwardRef<\n HTMLSpanElement,\n FieldComboboxClearProps\n>(function FieldComboboxClear({ className, onClick, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <span\n ref={ref}\n role=\"button\"\n tabIndex={0}\n className={mergeClasses(styles.clear, className)}\n onPointerDown={(event) => {\n event.preventDefault()\n event.stopPropagation()\n }}\n onClick={(event) => {\n event.preventDefault()\n event.stopPropagation()\n onClick?.(event)\n }}\n {...props}\n >\n <XIcon className={styles.clearSvg} />\n </span>\n )\n})\n\nexport type FieldComboboxPlaceholderProps = React.ComponentProps<\"span\">\n\nexport const FieldComboboxPlaceholder = React.forwardRef<\n HTMLSpanElement,\n FieldComboboxPlaceholderProps\n>(function FieldComboboxPlaceholder({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <span\n ref={ref}\n className={mergeClasses(styles.placeholder, className)}\n {...props}\n />\n )\n})\n\nexport type FieldComboboxClearValueProps = React.ComponentProps<\"span\">\n\nexport const FieldComboboxClearValue = React.forwardRef<\n HTMLSpanElement,\n FieldComboboxClearValueProps\n>(function FieldComboboxClearValue({ className, onClick, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <span\n ref={ref}\n role=\"button\"\n tabIndex={0}\n className={mergeClasses(styles.clearValue, className)}\n onPointerDown={(event) => {\n event.preventDefault()\n event.stopPropagation()\n }}\n onClick={(event) => {\n event.preventDefault()\n event.stopPropagation()\n onClick?.(event)\n }}\n {...props}\n >\n <XIcon className={styles.clearValueSvg} />\n </span>\n )\n})\n\nexport {\n FieldCombobox as Combobox,\n FieldComboboxGroup as ComboboxGroup,\n FieldComboboxGroupLabel as ComboboxGroupLabel,\n FieldComboboxValue as ComboboxValue,\n FieldComboboxTrigger as ComboboxTrigger,\n FieldComboboxContent as ComboboxContent,\n FieldComboboxItem as ComboboxItem,\n FieldComboboxItemCheckIcon as ComboboxItemCheckIcon,\n FieldComboboxEmpty as ComboboxEmpty,\n FieldComboboxSeparator as ComboboxSeparator,\n FieldComboboxInput as ComboboxInput,\n FieldComboboxList as ComboboxList,\n FieldComboboxLoading as ComboboxLoading,\n FieldComboboxClear as ComboboxClear,\n FieldComboboxClearValue as ComboboxClearValue,\n FieldComboboxPlaceholder as ComboboxPlaceholder,\n}\n"],"names":["CheckIcon","props","jsx","ChevronDownIcon","XIcon","useStyles","makeZenithStyles","shorthands","tokens.spacingElement2","tokens.radiusLg","tokens.textSm","tokens.leadingSm","tokens.focusRing","tokens.grayA11","tokens.grayA12","tokens.spacingGroup1","tokens.radiusMd","tokens.fontWeightSemibold","tokens.textXs","tokens.leadingXs","tokens.graySoft","tokens.spacingElement1","tokens.accentA11","tokens.grayA8","FieldCombobox","React","_ref","Popover","SLOT_ATTR","FieldComboboxTrigger","className","children","forwardedRef","styles","inputRef","_a","useOptionalFieldContext","jsxs","PopoverTrigger","el","mergeClasses","FieldComboboxContent","container","ref","PopoverPortal","PopoverContent","Command","FieldComboboxValue","FieldComboboxInput","CommandInput","FieldComboboxList","CommandList","FieldComboboxItem","CommandItem","FieldComboboxItemCheckIcon","FieldComboboxEmpty","CommandEmpty","FieldComboboxGroup","CommandGroup","FieldComboboxGroupLabel","Label","FieldComboboxSeparator","CommandSeparator","FieldComboboxLoading","CommandLoading","FieldComboboxClear","onClick","event","FieldComboboxPlaceholder","FieldComboboxClearValue"],"mappings":"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"}
|