themelia-react-ui 2.0.2 → 2.0.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.
Files changed (97) hide show
  1. package/CHANGELOG.md +17 -7
  2. package/README.md +9 -13
  3. package/THIRD_PARTY_NOTICES.md +6 -12
  4. package/dist/{auth-ax2BqjrI.js → auth-BGua8ouh.js} +2 -2
  5. package/dist/{auth-ax2BqjrI.js.map → auth-BGua8ouh.js.map} +1 -1
  6. package/dist/base/cascader.js +1 -1
  7. package/dist/base/combobox.js +2 -2
  8. package/dist/base/date-pickers.js +2 -2
  9. package/dist/base/popover-menu.js +1 -1
  10. package/dist/base/popover.js +1 -1
  11. package/dist/base/sheet.js +1 -1
  12. package/dist/base/sidebar.js +1 -1
  13. package/dist/base/value-inputs.js +1 -1
  14. package/dist/blocks/commerce.js +1 -1
  15. package/dist/{combobox-xCQ2RMNE.js → combobox-DaHESuiL.js} +154 -108
  16. package/dist/combobox-DaHESuiL.js.map +1 -0
  17. package/dist/{combobox-C0EQW6dr.js → combobox-Dxo2fAYQ.js} +342 -340
  18. package/dist/combobox-Dxo2fAYQ.js.map +1 -0
  19. package/dist/{comments-BYYlTA8E.js → comments-DD0DUPwJ.js} +4 -4
  20. package/dist/{comments-BYYlTA8E.js.map → comments-DD0DUPwJ.js.map} +1 -1
  21. package/dist/components/base/combobox/combobox-field.d.ts +16 -0
  22. package/dist/components/ui/combobox-dismiss.d.ts +16 -0
  23. package/dist/components/ui/combobox.d.ts +11 -6
  24. package/dist/components/ui/dialog.d.ts +1 -1
  25. package/dist/components/ui/popover.d.ts +1 -1
  26. package/dist/components/ui/sheet.d.ts +1 -1
  27. package/dist/{date-picker-ay0Pha_a.js → date-picker-B2K3ucWn.js} +2 -2
  28. package/dist/{date-picker-ay0Pha_a.js.map → date-picker-B2K3ucWn.js.map} +1 -1
  29. package/dist/{date-pickers-Ccw8DL2b.js → date-pickers-Ds8gLaoP.js} +3 -3
  30. package/dist/{date-pickers-Ccw8DL2b.js.map → date-pickers-Ds8gLaoP.js.map} +1 -1
  31. package/dist/features/activities.js +2 -2
  32. package/dist/features/async-preview.js +1 -1
  33. package/dist/features/combobox.js +1 -1
  34. package/dist/features/comments.js +1 -1
  35. package/dist/features/data-view.js +2 -2
  36. package/dist/features/email-composer.js +2 -2
  37. package/dist/features/event-calendar.js +1 -1
  38. package/dist/features/filters.js +1 -1
  39. package/dist/features/global-search.js +1 -1
  40. package/dist/features/map.js +1 -1
  41. package/dist/features/media-library.js +1 -1
  42. package/dist/features/mentions.js +1 -1
  43. package/dist/features/overlays.js +1 -1
  44. package/dist/features/products.js +1 -1
  45. package/dist/features/resource-assignment.js +1 -1
  46. package/dist/features/schema-form.js +1 -1
  47. package/dist/features/suggestions.js +1 -1
  48. package/dist/features/theme-tweaker.js +2 -2
  49. package/dist/{filters-BGfvjP4d.js → filters-DJVAveHA.js} +4 -4
  50. package/dist/{filters-BGfvjP4d.js.map → filters-DJVAveHA.js.map} +1 -1
  51. package/dist/{header-CGXuhcRm.js → header-BSfIEWbI.js} +4 -4
  52. package/dist/{header-CGXuhcRm.js.map → header-BSfIEWbI.js.map} +1 -1
  53. package/dist/{hooks-Dkz0K2WT.js → hooks-ClH9thn4.js} +2 -2
  54. package/dist/{hooks-Dkz0K2WT.js.map → hooks-ClH9thn4.js.map} +1 -1
  55. package/dist/layout/auth.js +1 -1
  56. package/dist/layout/header.js +1 -1
  57. package/dist/layout/hooks.js +1 -1
  58. package/dist/layout/page.js +1 -1
  59. package/dist/layout/sidebar.js +2 -2
  60. package/dist/layout/workspace.js +1 -1
  61. package/dist/layout.js +6 -6
  62. package/dist/lib/use-popup-focus-recovery.d.ts +8 -0
  63. package/dist/{mentions-utuUvH1K.js → mentions-CGlEJ15c.js} +2 -2
  64. package/dist/{mentions-utuUvH1K.js.map → mentions-CGlEJ15c.js.map} +1 -1
  65. package/dist/{overlays-DNWmZrJ4.js → overlays-tMkF-VAN.js} +270 -268
  66. package/dist/overlays-tMkF-VAN.js.map +1 -0
  67. package/dist/{page-Bgl1F560.js → page-CL9YeH_V.js} +2 -2
  68. package/dist/{page-Bgl1F560.js.map → page-CL9YeH_V.js.map} +1 -1
  69. package/dist/{popover-7_m66eYW.js → popover-gnTOhbFM.js} +62 -60
  70. package/dist/popover-gnTOhbFM.js.map +1 -0
  71. package/dist/{popover-menu-B9WWygpa.js → popover-menu-Cn9rUkdc.js} +2 -2
  72. package/dist/{popover-menu-B9WWygpa.js.map → popover-menu-Cn9rUkdc.js.map} +1 -1
  73. package/dist/services/actions.js +1 -1
  74. package/dist/{sheet-CGpB3omz.js → sheet-ijlsjq-n.js} +70 -68
  75. package/dist/sheet-ijlsjq-n.js.map +1 -0
  76. package/dist/{sidebar-CPx_7YBa.js → sidebar-Db6gkh3U.js} +2 -2
  77. package/dist/{sidebar-CPx_7YBa.js.map → sidebar-Db6gkh3U.js.map} +1 -1
  78. package/dist/{sidebar-A0ElHINE.js → sidebar-DkTO4VTO.js} +3 -3
  79. package/dist/{sidebar-A0ElHINE.js.map → sidebar-DkTO4VTO.js.map} +1 -1
  80. package/dist/use-popup-focus-recovery-C0QPvgOR.js +36 -0
  81. package/dist/use-popup-focus-recovery-C0QPvgOR.js.map +1 -0
  82. package/dist/{value-inputs-DXPDjvBU.js → value-inputs-TaX4OjNk.js} +3 -3
  83. package/dist/{value-inputs-DXPDjvBU.js.map → value-inputs-TaX4OjNk.js.map} +1 -1
  84. package/dist/{workspace-Cdrg7k9f.js → workspace-B-OEm3Kf.js} +2 -2
  85. package/dist/{workspace-Cdrg7k9f.js.map → workspace-B-OEm3Kf.js.map} +1 -1
  86. package/docs/consumer-skill/SKILL.md +1 -1
  87. package/docs/consumer-skill/references/agents-md.md +1 -1
  88. package/docs/consumer-skill/references/installation.md +6 -0
  89. package/docs/consumer-skill/references/public-api.json +2 -2
  90. package/docs/consumer-skill/references/tokens.json +1 -1
  91. package/docs/consumer-skill/references/workflows.md +5 -4
  92. package/package.json +3 -3
  93. package/dist/combobox-C0EQW6dr.js.map +0 -1
  94. package/dist/combobox-xCQ2RMNE.js.map +0 -1
  95. package/dist/overlays-DNWmZrJ4.js.map +0 -1
  96. package/dist/popover-7_m66eYW.js.map +0 -1
  97. package/dist/sheet-CGpB3omz.js.map +0 -1
@@ -9,37 +9,75 @@ import { t as o } from "./anchored-positioning-DPnKTvNs.js";
9
9
  import { t as s } from "./motion-recipes-ChBg4HBq.js";
10
10
  import { a as c } from "./surface-recipes-BKRVW8Os.js";
11
11
  import { a as l, n as u, r as d, t as f } from "./popover.recipes-D3j8R8Yp.js";
12
- import { n as p } from "./collection-content-By56pLog.js";
13
- import { t as m } from "./overlay.recipes-8GHqmlb4.js";
14
- import { t as h } from "./field-state-recipes-BVA2CWHo.js";
15
- import { n as g, r as _, t as v } from "./field-affordance-recipes-DZhnIL_Y.js";
16
- import { t as y } from "./editable-text-recipe-Cn61kEcv.js";
17
- import { createElement as b } from "react";
18
- import { jsx as x, jsxs as S } from "react/jsx-runtime";
12
+ import { n as ee } from "./collection-content-By56pLog.js";
13
+ import { t as te } from "./overlay.recipes-8GHqmlb4.js";
14
+ import { t as p } from "./field-state-recipes-BVA2CWHo.js";
15
+ import { n as m, r as h, t as g } from "./field-affordance-recipes-DZhnIL_Y.js";
16
+ import { t as _ } from "./editable-text-recipe-Cn61kEcv.js";
17
+ import * as v from "react";
18
+ import { createElement as y } from "react";
19
+ import { Fragment as b, jsx as x, jsxs as S } from "react/jsx-runtime";
19
20
  import { CheckIcon as C, ChevronDownIcon as w } from "lucide-react";
20
- import { Combobox as T } from "@base-ui/react/combobox";
21
+ import { useRender as T } from "@base-ui/react/use-render";
22
+ import { Combobox as E } from "@base-ui/react/combobox";
23
+ //#region src/components/ui/combobox-dismiss.tsx
24
+ var D = v.createContext("Dismiss");
25
+ function O({ elementProps: e, render: t, edge: n, defaultTagName: r }) {
26
+ let i = v.useContext(D), a = v.useRef(null);
27
+ v.useLayoutEffect(() => {
28
+ let e = a.current, t = n === "before" ? e?.previousElementSibling : e?.nextElementSibling;
29
+ t?.matches("span[role=\"button\"][aria-label]") && t.style.clipPath === "inset(50%)" && t.getAttribute("aria-label") !== i && t.setAttribute("aria-label", i);
30
+ });
31
+ let o = T({
32
+ defaultTagName: r,
33
+ render: t,
34
+ props: { ...e }
35
+ }), s = /* @__PURE__ */ x("template", {
36
+ ref: a,
37
+ "data-combobox-dismiss-edge": n
38
+ });
39
+ return n === "before" ? /* @__PURE__ */ S(b, { children: [s, o] }) : /* @__PURE__ */ S(b, { children: [o, s] });
40
+ }
41
+ //#endregion
21
42
  //#region src/components/ui/combobox.tsx
22
- var E = T.Root;
23
- function D({ className: e, ...t }) {
24
- return /* @__PURE__ */ x(T.Input, {
43
+ function k({ dismissLabel: e = "Dismiss", ...t }) {
44
+ return /* @__PURE__ */ x(D.Provider, {
45
+ value: e,
46
+ children: /* @__PURE__ */ x(E.Root, { ...t })
47
+ });
48
+ }
49
+ function A({ render: e, ...t }) {
50
+ return /* @__PURE__ */ x(E.Input, {
51
+ ...t,
52
+ render: (t, n) => /* @__PURE__ */ x(O, {
53
+ elementProps: t,
54
+ edge: "before",
55
+ defaultTagName: "input",
56
+ render: typeof e == "function" ? (t) => e(t, n) : e
57
+ })
58
+ });
59
+ }
60
+ function j({ className: e, render: t, ...n }) {
61
+ return /* @__PURE__ */ x(A, {
25
62
  "data-slot": "combobox-input",
26
- className: r("font-sans text-foreground", "box-border border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground flex h-control w-full min-w-0 rounded-inner border bg-background px-control shadow-none transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50", i.controlTextMinHeight, i.controlBlockPadding.md, y.md, h.focus, h.invalid, e),
27
- ...t
63
+ className: r("font-sans text-foreground", "box-border border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground flex h-control w-full min-w-0 rounded-inner border bg-background px-control shadow-none transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50", i.controlTextMinHeight, i.controlBlockPadding.md, _.md, p.focus, p.invalid, e),
64
+ ...n,
65
+ render: t
28
66
  });
29
67
  }
30
- function O({ className: e, children: t, ...n }) {
31
- return /* @__PURE__ */ S(T.Trigger, {
68
+ function M({ className: e, children: t, ...n }) {
69
+ return /* @__PURE__ */ S(E.Trigger, {
32
70
  "data-slot": "combobox-trigger",
33
- className: r("font-sans text-foreground", "box-border border-input file:text-foreground placeholder:text-muted-foreground flex h-control w-full items-center justify-between rounded-inner border bg-background px-control shadow-none transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50", "text-sm", i.controlTextMinHeight, i.controlBlockPadding.md, h.focus, h.invalid, "[&>span]:line-clamp-1", e),
71
+ className: r("font-sans text-foreground", "box-border border-input file:text-foreground placeholder:text-muted-foreground flex h-control w-full items-center justify-between rounded-inner border bg-background px-control shadow-none transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50", "text-sm", i.controlTextMinHeight, i.controlBlockPadding.md, p.focus, p.invalid, "[&>span]:line-clamp-1", e),
34
72
  ...n,
35
- children: [t, /* @__PURE__ */ x(T.Icon, {
73
+ children: [t, /* @__PURE__ */ x(E.Icon, {
36
74
  className: "flex",
37
- children: /* @__PURE__ */ x(w, { className: r(_.icon.md, "text-muted-foreground") })
75
+ children: /* @__PURE__ */ x(w, { className: r(h.icon.md, "text-muted-foreground") })
38
76
  })]
39
77
  });
40
78
  }
41
- function k({ placeholder: e, ...t }) {
42
- return /* @__PURE__ */ x(T.Value, {
79
+ function N({ placeholder: e, ...t }) {
80
+ return /* @__PURE__ */ x(E.Value, {
43
81
  "data-slot": "combobox-value",
44
82
  placeholder: !!e && /* @__PURE__ */ x("span", {
45
83
  className: "text-muted-foreground",
@@ -48,60 +86,61 @@ function k({ placeholder: e, ...t }) {
48
86
  ...t
49
87
  });
50
88
  }
51
- function A({ className: e, ...t }) {
52
- return /* @__PURE__ */ x(T.Clear, {
89
+ function P({ className: e, ...t }) {
90
+ return /* @__PURE__ */ x(E.Clear, {
53
91
  "data-slot": "combobox-clear",
54
- className: r(g.target, g.focus, g.clear, g.centered, "end-control-icon", e),
92
+ className: r(m.target, m.focus, m.clear, m.centered, "end-control-icon", e),
55
93
  ...t,
56
- children: /* @__PURE__ */ x(v, {
94
+ children: /* @__PURE__ */ x(g, {
57
95
  "aria-hidden": "true",
58
- className: g.icon
96
+ className: m.icon
59
97
  })
60
98
  });
61
99
  }
62
- var j = {
100
+ var F = {
63
101
  sm: "h-control-sm ps-control-sm",
64
102
  md: "h-control ps-control",
65
103
  lg: "h-control-lg ps-control"
66
104
  };
67
- function M({ className: e, showClear: t = !1, clearLabel: n, toggleLabel: a, size: o = "md", error: s, ...c }) {
105
+ function I({ className: e, render: t, showClear: n = !1, clearLabel: a, toggleLabel: o, size: s = "md", error: c, ...l }) {
68
106
  return /* @__PURE__ */ S("div", {
69
107
  className: "relative h-fit",
70
- children: [/* @__PURE__ */ x(T.Input, {
108
+ children: [/* @__PURE__ */ x(A, {
71
109
  "data-slot": "combobox-input",
72
- className: r("font-sans text-foreground", "box-border border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground w-full min-w-0 rounded-inner border bg-background shadow-none transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50", h.focus, h.invalid, j[o], i.controlTextMinHeight, i.controlBlockPadding[o], y[o], t ? _.clearPadding[o] : _.padding[o], e),
73
- "aria-invalid": s || void 0,
74
- ...c
110
+ className: r("font-sans text-foreground", "box-border border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground w-full min-w-0 rounded-inner border bg-background shadow-none transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50", p.focus, p.invalid, F[s], i.controlTextMinHeight, i.controlBlockPadding[s], _[s], n ? h.clearPadding[s] : h.padding[s], e),
111
+ "aria-invalid": c || void 0,
112
+ ...l,
113
+ render: t
75
114
  }), /* @__PURE__ */ S("div", {
76
- className: r("absolute top-1/2 -translate-y-1/2 flex items-center gap-space-xs text-muted-foreground", _.track[o]),
77
- children: [!!t && /* @__PURE__ */ x(T.Clear, {
78
- "aria-label": n,
115
+ className: r("absolute top-1/2 -translate-y-1/2 flex items-center gap-space-xs text-muted-foreground", h.track[s]),
116
+ children: [!!n && /* @__PURE__ */ x(E.Clear, {
117
+ "aria-label": a,
79
118
  "data-slot": "combobox-clear",
80
- className: r(g.target, g.focus, g.clear),
81
- children: /* @__PURE__ */ x(v, {
119
+ className: r(m.target, m.focus, m.clear),
120
+ children: /* @__PURE__ */ x(g, {
82
121
  "aria-hidden": "true",
83
- className: g.icon
122
+ className: m.icon
84
123
  })
85
- }), /* @__PURE__ */ x(T.Trigger, {
86
- "aria-label": a,
87
- className: r(g.target, g.focus, g.toggle),
124
+ }), /* @__PURE__ */ x(E.Trigger, {
125
+ "aria-label": o,
126
+ className: r(m.target, m.focus, m.toggle),
88
127
  children: /* @__PURE__ */ x(w, {
89
128
  "aria-hidden": "true",
90
- className: r("shrink-0", _.icon[o])
129
+ className: r("shrink-0", h.icon[s])
91
130
  })
92
131
  })]
93
132
  })]
94
133
  });
95
134
  }
96
- function N({ container: e, ...n }) {
135
+ function L({ container: e, ...n }) {
97
136
  let r = t(e);
98
- return /* @__PURE__ */ x(T.Portal, {
137
+ return /* @__PURE__ */ x(E.Portal, {
99
138
  container: r,
100
139
  ...n
101
140
  });
102
141
  }
103
- function P({ className: e, positionMethod: t = o, sideOffset: n = 4, ...i }) {
104
- return /* @__PURE__ */ x(T.Positioner, {
142
+ function R({ className: e, positionMethod: t = o, sideOffset: n = 4, ...i }) {
143
+ return /* @__PURE__ */ x(E.Positioner, {
105
144
  positionMethod: t,
106
145
  "data-slot": "combobox-positioner",
107
146
  sideOffset: n,
@@ -109,134 +148,141 @@ function P({ className: e, positionMethod: t = o, sideOffset: n = 4, ...i }) {
109
148
  ...i
110
149
  });
111
150
  }
112
- function F({ className: e, ...t }) {
113
- return /* @__PURE__ */ x(T.Popup, {
151
+ function z({ className: e, render: t, ...n }) {
152
+ return /* @__PURE__ */ x(E.Popup, {
114
153
  "data-slot": "combobox-popup",
115
154
  className: r("w-[var(--anchor-width)] min-w-[8rem] max-w-[var(--available-width)] max-h-[min(var(--available-height),24rem)]", "overflow-hidden rounded-radius bg-popover text-popover-foreground shadow-md", c.anchored.shell, "origin-[var(--transform-origin)]", s.popup, e),
116
- ...t
155
+ ...n,
156
+ render: (e, n) => /* @__PURE__ */ x(O, {
157
+ elementProps: e,
158
+ edge: "after",
159
+ defaultTagName: "div",
160
+ render: typeof t == "function" ? (e) => t(e, n) : t
161
+ })
117
162
  });
118
163
  }
119
- function I({ className: e, ...t }) {
120
- return /* @__PURE__ */ x(T.List, {
164
+ function B({ className: e, ...t }) {
165
+ return /* @__PURE__ */ x(E.List, {
121
166
  "data-slot": "combobox-list",
122
167
  className: r("max-h-[min(24rem,var(--available-height))] overflow-y-auto overscroll-contain p-surface-xs", "outline-none empty:hidden", e),
123
168
  ...t
124
169
  });
125
170
  }
126
- var L = {
171
+ var V = {
127
172
  sm: "size-icon-sm",
128
173
  md: "size-icon",
129
174
  lg: "size-icon-lg"
130
175
  };
131
- function R({ className: e, children: t, size: n = "md", ...i }) {
132
- return /* @__PURE__ */ S(T.Item, {
176
+ function H({ className: e, children: t, size: n = "md", ...i }) {
177
+ return /* @__PURE__ */ S(E.Item, {
133
178
  "data-slot": "combobox-item",
134
179
  className: r("flex w-full cursor-default select-none items-center justify-between outline-none", e),
135
180
  ...i,
136
181
  children: [/* @__PURE__ */ x("span", {
137
182
  className: "flex min-w-0 flex-1 items-center gap-space-sm truncate",
138
183
  children: t
139
- }), /* @__PURE__ */ x(T.ItemIndicator, {
140
- className: r("flex shrink-0 items-center justify-center", L[n]),
141
- children: /* @__PURE__ */ x(C, { className: L[n] })
184
+ }), /* @__PURE__ */ x(E.ItemIndicator, {
185
+ className: r("flex shrink-0 items-center justify-center", V[n]),
186
+ children: /* @__PURE__ */ x(C, { className: V[n] })
142
187
  })]
143
188
  });
144
189
  }
145
- function z({ className: e, children: t, ...n }) {
146
- return /* @__PURE__ */ x(T.ItemIndicator, {
190
+ function U({ className: e, children: t, ...n }) {
191
+ return /* @__PURE__ */ x(E.ItemIndicator, {
147
192
  "data-slot": "combobox-item-indicator",
148
193
  className: r(e),
149
194
  ...n,
150
195
  children: t ?? /* @__PURE__ */ x(C, { className: "size-icon" })
151
196
  });
152
197
  }
153
- function B({ className: e, children: t, ...n }) {
154
- return /* @__PURE__ */ x(T.Empty, {
198
+ function W({ className: e, children: t, ...n }) {
199
+ return /* @__PURE__ */ x(E.Empty, {
155
200
  "data-slot": "combobox-empty",
156
201
  className: r("px-row-x py-space-xl text-center text-sm text-muted-foreground empty:hidden", e),
157
202
  ...n,
158
203
  children: t
159
204
  });
160
205
  }
161
- function V({ className: e, ...t }) {
162
- return /* @__PURE__ */ x(T.Status, {
206
+ function ne({ className: e, ...t }) {
207
+ return /* @__PURE__ */ x(E.Status, {
163
208
  "data-slot": "combobox-status",
164
209
  className: r("flex items-center gap-space-sm px-row-x py-row-y text-sm text-muted-foreground empty:hidden", e),
165
210
  ...t
166
211
  });
167
212
  }
168
- function ee({ className: e, ...t }) {
169
- return /* @__PURE__ */ x(T.Group, {
213
+ function G({ className: e, ...t }) {
214
+ return /* @__PURE__ */ x(E.Group, {
170
215
  "data-slot": "combobox-group",
171
216
  className: r("overflow-hidden p-0", e),
172
217
  ...t
173
218
  });
174
219
  }
175
- function H({ className: e, ...t }) {
176
- return /* @__PURE__ */ x(T.GroupLabel, {
220
+ function K({ className: e, ...t }) {
221
+ return /* @__PURE__ */ x(E.GroupLabel, {
177
222
  "data-slot": "combobox-group-label",
178
223
  className: r("px-row-x py-row-y-sm text-xs font-medium text-muted-foreground", e),
179
224
  ...t
180
225
  });
181
226
  }
182
- var U = T.Collection;
183
- function W({ className: e, ...t }) {
184
- return /* @__PURE__ */ x(T.Separator, {
227
+ var q = E.Collection;
228
+ function J({ className: e, ...t }) {
229
+ return /* @__PURE__ */ x(E.Separator, {
185
230
  "data-slot": "combobox-separator",
186
231
  className: r("my-space-xs h-px", c.anchored.separator, e),
187
232
  ...t
188
233
  });
189
234
  }
190
- var G = {
235
+ var Y = {
191
236
  sm: "min-h-control-sm gap-space-xs px-control-sm py-space-xs text-sm",
192
237
  md: "min-h-control gap-space-xs px-control py-space-xs text-sm",
193
238
  lg: "min-h-control-lg gap-space-sm px-control py-space-xs text-sm"
194
239
  };
195
- function K({ className: e, size: t = "md", error: n, ...i }) {
196
- return /* @__PURE__ */ x(T.Chips, {
240
+ function X({ className: e, size: t = "md", error: n, ...i }) {
241
+ return /* @__PURE__ */ x(E.Chips, {
197
242
  "data-slot": "combobox-chips",
198
- className: r("font-sans text-foreground", "box-border flex flex-wrap items-center rounded-inner border border-input bg-background shadow-none transition-[color,box-shadow] outline-none", "has-[:focus-visible]:border-ring has-[:focus-visible]:ring-3 has-[:focus-visible]:ring-ring/50", h.invalid, "aria-invalid:has-[:focus-visible]:border-destructive aria-invalid:has-[:focus-visible]:ring-destructive/30 dark:aria-invalid:has-[:focus-visible]:ring-destructive/50", G[t], e),
243
+ className: r("font-sans text-foreground", "box-border flex flex-wrap items-center rounded-inner border border-input bg-background shadow-none transition-[color,box-shadow] outline-none", "has-[:focus-visible]:border-ring has-[:focus-visible]:ring-3 has-[:focus-visible]:ring-ring/50", p.invalid, "aria-invalid:has-[:focus-visible]:border-destructive aria-invalid:has-[:focus-visible]:ring-destructive/30 dark:aria-invalid:has-[:focus-visible]:ring-destructive/50", Y[t], e),
199
244
  "aria-invalid": n || void 0,
200
245
  ...i
201
246
  });
202
247
  }
203
- function q({ className: e, children: t, removeLabel: n, ...i }) {
204
- return /* @__PURE__ */ S(T.Chip, {
248
+ function Z({ className: e, children: t, removeLabel: n, ...i }) {
249
+ return /* @__PURE__ */ S(E.Chip, {
205
250
  "data-slot": "combobox-chip",
206
251
  className: r("inline-flex items-center gap-space-xs rounded-inner bg-secondary px-control-xs py-space-xs text-xs font-medium text-secondary-foreground", "data-[highlighted]:bg-primary data-[highlighted]:text-primary-foreground", "focus-within:bg-primary focus-within:text-primary-foreground", e),
207
252
  ...i,
208
- children: [t, /* @__PURE__ */ x(T.ChipRemove, {
253
+ children: [t, /* @__PURE__ */ x(E.ChipRemove, {
209
254
  "aria-label": n,
210
- className: r(g.inline, g.focus, "text-inherit opacity-70 hover:opacity-100"),
211
- children: /* @__PURE__ */ x(v, {
255
+ className: r(m.inline, m.focus, "text-inherit opacity-70 hover:opacity-100"),
256
+ children: /* @__PURE__ */ x(g, {
212
257
  "aria-hidden": "true",
213
- className: g.icon
258
+ className: m.icon
214
259
  })
215
260
  })]
216
261
  });
217
262
  }
218
- function J({ className: e, ...t }) {
219
- return /* @__PURE__ */ x(T.Input, {
263
+ function re({ className: e, render: t, ...n }) {
264
+ return /* @__PURE__ */ x(A, {
220
265
  "data-slot": "combobox-chips-input",
221
- className: r("box-border min-h-lh min-w-[80px] flex-1 border-0 bg-transparent p-0 font-sans text-foreground outline-none placeholder:text-muted-foreground", y.md, e),
222
- ...t
266
+ className: r("box-border min-h-lh min-w-[80px] flex-1 border-0 bg-transparent p-0 font-sans text-foreground outline-none placeholder:text-muted-foreground", _.md, e),
267
+ ...n,
268
+ render: t
223
269
  });
224
270
  }
225
- function Y({ className: e, ...t }) {
226
- return /* @__PURE__ */ x(T.Backdrop, {
271
+ function ie({ className: e, ...t }) {
272
+ return /* @__PURE__ */ x(E.Backdrop, {
227
273
  "data-slot": "combobox-backdrop",
228
- className: r(m, s.backdrop, e),
274
+ className: r(te, s.backdrop, e),
229
275
  ...t
230
276
  });
231
277
  }
232
- function X({ className: e, ...t }) {
233
- return /* @__PURE__ */ x(T.Arrow, {
278
+ function ae({ className: e, ...t }) {
279
+ return /* @__PURE__ */ x(E.Arrow, {
234
280
  "data-slot": "combobox-arrow",
235
281
  className: r("fill-popover", e),
236
282
  ...t
237
283
  });
238
284
  }
239
- var Z = T.useFilter, Q = {
285
+ var oe = E.useFilter, Q = {
240
286
  clear: "Clear selection",
241
287
  toggle: "Open options",
242
288
  remove: "Remove selection"
@@ -245,65 +291,65 @@ var Z = T.useFilter, Q = {
245
291
  //#region src/components/base/combobox/index.ts
246
292
  function $({ strings: e, ...t }) {
247
293
  let r = n(Q, e);
248
- return b(M, {
294
+ return y(I, {
249
295
  ...t,
250
296
  clearLabel: r.clear,
251
297
  toggleLabel: r.toggle
252
298
  });
253
299
  }
254
- function te({ strings: e, ...t }) {
300
+ function se({ strings: e, ...t }) {
255
301
  let r = n(Q, e);
256
- return b(A, {
302
+ return y(P, {
257
303
  "aria-label": r.clear,
258
304
  ...t
259
305
  });
260
306
  }
261
- function ne({ strings: e, ...t }) {
307
+ function ce({ strings: e, ...t }) {
262
308
  let r = n(Q, e);
263
- return b(q, {
309
+ return y(Z, {
264
310
  ...t,
265
311
  removeLabel: r.remove
266
312
  });
267
313
  }
268
- function re({ className: e, ...t }) {
269
- return b(F, {
314
+ function le({ className: e, ...t }) {
315
+ return y(z, {
270
316
  ...t,
271
317
  className: r(d.surface, l.flush, e)
272
318
  });
273
319
  }
274
- function ie({ className: e, ...t }) {
275
- return b(D, {
320
+ function ue({ className: e, ...t }) {
321
+ return y(j, {
276
322
  ...t,
277
323
  className: r("rounded-inner", e)
278
324
  });
279
325
  }
280
- function ae({ className: e, ...t }) {
281
- return b(O, {
326
+ function de({ className: e, ...t }) {
327
+ return y(M, {
282
328
  ...t,
283
329
  className: r("rounded-inner", e)
284
330
  });
285
331
  }
286
- var oe = {
332
+ var fe = {
287
333
  sm: "compact",
288
334
  md: "default",
289
335
  lg: "comfortable"
290
336
  };
291
- function se({ className: t, size: n = "md", density: i = oe[n], children: o, ...s }) {
292
- let { defaultTextSize: c } = e(), l = typeof o == "string" || typeof o == "number" || typeof o == "bigint" ? b(p, { children: o }) : o;
293
- return b(R, {
337
+ function pe({ className: t, size: n = "md", density: i = fe[n], children: o, ...s }) {
338
+ let { defaultTextSize: c } = e(), l = typeof o == "string" || typeof o == "number" || typeof o == "bigint" ? y(ee, { children: o }) : o;
339
+ return y(H, {
294
340
  ...s,
295
341
  children: l,
296
342
  size: n,
297
343
  className: r(u(i), f.highlighted, f.disabled, a[c ?? "sm"], t)
298
344
  });
299
345
  }
300
- function ce({ className: e, ...t }) {
301
- return b(W, {
346
+ function me({ className: e, ...t }) {
347
+ return y(J, {
302
348
  ...t,
303
349
  className: r(d.separator, e)
304
350
  });
305
351
  }
306
352
  //#endregion
307
- export { V as C, P as S, Z as T, ee as _, se as a, I as b, ae as c, X as d, Y as f, B as g, U as h, $ as i, Q as l, J as m, te as n, re as o, K as p, ie as r, ce as s, ne as t, E as u, H as v, k as w, N as x, z as y };
353
+ export { R as C, oe as E, L as S, N as T, G as _, pe as a, B as b, de as c, ae as d, ie as f, W as g, q as h, $ as i, Q as l, re as m, se as n, le as o, X as p, ue as r, me as s, ce as t, k as u, K as v, ne as w, A as x, U as y };
308
354
 
309
- //# sourceMappingURL=combobox-xCQ2RMNE.js.map
355
+ //# sourceMappingURL=combobox-DaHESuiL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combobox-DaHESuiL.js","names":["React","_Fragment","Combobox","ComboboxPrimitive","ComboboxInput","ComboboxTrigger","ComboboxClear","ComboboxInputTrigger","ComboboxPopup","ComboboxItem","ComboboxSeparator","ComboboxChip","InputTrigger","Clear","Chip","Popup","Input","Trigger","Item","Separator","useTypographyConfig","useThemePortalContainer","cn","affordanceGeometry","anchoredPositionMethod","motionRecipes","surfaceDividerRecipes","surfaceInsetClasses","collectionRowClasses","popoverRecipes","collectionRecipes","CollectionLabel","modalBackdropRecipe","fieldStateRecipes","fieldAffordanceRecipes","selectToggleRecipes","FieldClearGlyph","editableTextSizeClasses","React$1","Fragment$1","ComboboxDismissLabel","ComboboxDismissElement","label","boundary","host","sibling","edge","element","useRender","elementProps","anchor","Combobox$1","props","dismissLabel","Combobox","ComboboxNativeInput","render","state","ComboboxInput$1","className","ComboboxTrigger$1","children","ChevronDownIcon","ComboboxValue","placeholder","ComboboxClear$1","inputSizeClasses","ComboboxInputTrigger$1","size","showClear","error","clearLabel","toggleLabel","ComboboxPortal","resolvedContainer","container","ComboboxPositioner","ComboboxPopup$1","ComboboxList","itemIndicatorSizeClasses","ComboboxItem$1","CheckIcon","ComboboxItemIndicator","ComboboxEmpty","ComboboxStatus","ComboboxGroup","ComboboxGroupLabel","ComboboxCollection","ComboboxSeparator$1","chipsSizeClasses","ComboboxChips","ComboboxChip$1","removeLabel","ComboboxChipsInput","ComboboxBackdrop","ComboboxArrow","useComboboxFilter","defaultComboboxControlStrings","ComboboxInputTrigger","stringsProp","strings","useStrings","createElement","ComboboxClear","ComboboxChip","ComboboxPopup","ComboboxInput","ComboboxTrigger","densityBySize","ComboboxItem","content","density","textSizes","defaultTextSize","ComboboxSeparator"],"sources":["../src/components/ui/combobox-dismiss.tsx","../src/components/ui/combobox.tsx","../src/components/base/combobox/combobox.strings.ts","../src/components/base/combobox/index.ts"],"sourcesContent":["import * as React from 'react';\nimport { useRender, type HTMLProps } from '@base-ui/react/use-render';\n\nexport const ComboboxDismissLabel = React.createContext('Dismiss');\n\n/**\n * Base UI 1.9 owns both virtual-cursor dismissal buttons but hardcodes their\n * names. An inert template marks the public render boundary, even when a custom\n * component frames its native field. Label only the adjacent clipped button;\n * retain upstream handlers, refs, modality and focus semantics. Refresh on each\n * primitive commit so changing modality labels newly mounted controls too.\n */\nexport function ComboboxDismissElement({ elementProps, render, edge, defaultTagName }: {\n elementProps: HTMLProps;\n render?: useRender.RenderProp;\n edge: 'before' | 'after';\n defaultTagName: 'input' | 'div';\n}) {\n const label = React.useContext(ComboboxDismissLabel);\n const boundary = React.useRef<HTMLTemplateElement>(null);\n React.useLayoutEffect(() => {\n const host = boundary.current;\n const sibling = edge === 'before' ? host?.previousElementSibling : host?.nextElementSibling;\n if (sibling?.matches('span[role=\"button\"][aria-label]') && (sibling as HTMLElement).style.clipPath === 'inset(50%)' && sibling.getAttribute('aria-label') !== label) {\n sibling.setAttribute('aria-label', label);\n }\n });\n const element = useRender({ defaultTagName, render, props: { ...elementProps } });\n const anchor = <template ref={boundary} data-combobox-dismiss-edge={edge} />;\n return edge === 'before' ? <>{anchor}{element}</> : <>{element}{anchor}</>;\n}\n","import { anchoredPositionMethod } from '../../lib/anchored-positioning';\nimport { fieldStateRecipes } from '../../lib/field-state-recipes';\nimport { FieldClearGlyph, fieldAffordanceRecipes, selectToggleRecipes } from '../../lib/field-affordance-recipes';\nimport { editableTextSizeClasses } from '../../lib/editable-text-recipe';\nimport { affordanceGeometry } from '../../lib/affordance-geometry.generated';\nimport { motionRecipes } from '../../lib/motion-recipes';\nimport { surfaceDividerRecipes } from '../../lib/surface-recipes';\nimport { modalBackdropRecipe } from './overlay.recipes';\nimport { useThemePortalContainer } from '../../lib/theme-scope';\nimport { Combobox as ComboboxPrimitive } from '@base-ui/react/combobox';\nimport { CheckIcon, ChevronDownIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { ComboboxDismissElement, ComboboxDismissLabel } from './combobox-dismiss';\nimport { cn } from '../../lib/utils';\n\nfunction Combobox<Value, Multiple extends boolean | undefined = false, Item = Value>({\n dismissLabel = 'Dismiss',\n ...props\n}: ComboboxPrimitive.Root.Props<Value, Multiple, Item> & {\n /** Accessible name of both screen-reader popup dismissal controls. */\n dismissLabel?: string | undefined;\n}) {\n return <ComboboxDismissLabel.Provider value={dismissLabel}><ComboboxPrimitive.Root {...props} /></ComboboxDismissLabel.Provider>;\n}\n\n/** Private primitive input; public and feature-owned frames share dismissal. */\nfunction ComboboxNativeInput({ render, ...props }: ComboboxPrimitive.Input.Props) {\n return <ComboboxPrimitive.Input {...props} render={(elementProps, state) => <ComboboxDismissElement elementProps={elementProps} edge=\"before\" defaultTagName=\"input\" render={typeof render === 'function' ? props => render(props, state) : render} />} />;\n}\n\nfunction ComboboxInput({\n\tclassName,\n\trender,\n\t...props\n}: ComboboxPrimitive.Input.Props) {\n\treturn (\n\t\t<ComboboxNativeInput\n\t\t\tdata-slot=\"combobox-input\"\n\t\t\tclassName={cn(\n\t\t\t\t'font-sans text-foreground',\n\t\t\t\t'box-border border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground flex h-control w-full min-w-0 rounded-inner border bg-background px-control shadow-none transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n\t\t\t\taffordanceGeometry.controlTextMinHeight,\n\t\t\t\taffordanceGeometry.controlBlockPadding.md,\n\t\t\t\teditableTextSizeClasses.md,\n\t\t\t\tfieldStateRecipes.focus,\n\t\t\t\tfieldStateRecipes.invalid,\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t\trender={render}\n\t\t/>\n\t);\n}\n\nfunction ComboboxTrigger({\n\tclassName,\n\tchildren,\n\t...props\n}: ComboboxPrimitive.Trigger.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Trigger\n\t\t\tdata-slot=\"combobox-trigger\"\n\t\t\tclassName={cn(\n\t\t\t\t'font-sans text-foreground',\n\t\t\t\t'box-border border-input file:text-foreground placeholder:text-muted-foreground flex h-control w-full items-center justify-between rounded-inner border bg-background px-control shadow-none transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n\t\t\t\t'text-sm',\n\t\t\t\taffordanceGeometry.controlTextMinHeight,\n\t\t\t\taffordanceGeometry.controlBlockPadding.md,\n\t\t\t\tfieldStateRecipes.focus,\n\t\t\t\tfieldStateRecipes.invalid,\n\t\t\t\t'[&>span]:line-clamp-1',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t\t<ComboboxPrimitive.Icon className=\"flex\">\n\t\t\t\t<ChevronDownIcon className={cn(selectToggleRecipes.icon.md, 'text-muted-foreground')} />\n\t\t\t</ComboboxPrimitive.Icon>\n\t\t</ComboboxPrimitive.Trigger>\n\t);\n}\n\nfunction ComboboxValue({\n\tplaceholder,\n\t...props\n}: ComboboxPrimitive.Value.Props & { placeholder?: React.ReactNode }) {\n\treturn (\n\t\t<ComboboxPrimitive.Value\n\t\t\tdata-slot=\"combobox-value\"\n\t\t\tplaceholder={\n\t\t\t\t!!placeholder && <span className=\"text-muted-foreground\">{placeholder}</span>\n\t\t\t}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction ComboboxClear({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Clear.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Clear\n\t\t\tdata-slot=\"combobox-clear\"\n\t\t\tclassName={cn(\n\t\t\t\tfieldAffordanceRecipes.target,\n\t\t\t\tfieldAffordanceRecipes.focus,\n\t\t\t\tfieldAffordanceRecipes.clear,\n\t\t\t\tfieldAffordanceRecipes.centered,\n\t\t\t\t'end-control-icon',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t\t<FieldClearGlyph aria-hidden=\"true\" className={fieldAffordanceRecipes.icon} />\n\t\t</ComboboxPrimitive.Clear>\n\t);\n}\n\nexport type ComboboxSize = 'sm' | 'md' | 'lg';\n\nconst inputSizeClasses: Record<ComboboxSize, string> = {\n\tsm: 'h-control-sm ps-control-sm',\n\tmd: 'h-control ps-control',\n\tlg: 'h-control-lg ps-control',\n};\n\n\n// Toggle-only text clearance, track offset and chevron scale come from the\n// shared select-toggle recipe, so this input, the Select trigger and the\n// feature Combobox centre their chevrons in the same place.\n\ntype ComboboxInputTriggerProps = Omit<ComboboxPrimitive.Input.Props, 'size'> & {\n\tshowClear?: boolean;\n\tclearLabel?: string;\n\ttoggleLabel?: string;\n\tsize?: ComboboxSize;\n\terror?: boolean;\n};\n\nfunction ComboboxInputTrigger({\n\tclassName,\n\trender,\n\tshowClear = false,\n\tclearLabel,\n\ttoggleLabel,\n\tsize = 'md',\n\terror,\n\t...props\n}: ComboboxInputTriggerProps) {\n\treturn (\n\t\t<div className=\"relative h-fit\">\n\t\t\t<ComboboxNativeInput\n\t\t\t\tdata-slot=\"combobox-input\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'font-sans text-foreground',\n\t\t\t\t\t'box-border border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground w-full min-w-0 rounded-inner border bg-background shadow-none transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n\t\t\t\t\tfieldStateRecipes.focus,\n\t\t\t\t\tfieldStateRecipes.invalid,\n\t\t\t\t\tinputSizeClasses[size],\n\t\t\t\t\taffordanceGeometry.controlTextMinHeight,\n\t\t\t\t\taffordanceGeometry.controlBlockPadding[size],\n\t\t\t\t\teditableTextSizeClasses[size],\n\t\t\t\t\tshowClear ? selectToggleRecipes.clearPadding[size] : selectToggleRecipes.padding[size],\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\taria-invalid={error || undefined}\n\t\t\t\t{...props}\n\t\t\t\trender={render}\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'absolute top-1/2 -translate-y-1/2 flex items-center gap-space-xs text-muted-foreground',\n\t\t\t\t\tselectToggleRecipes.track[size]\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{!!showClear && (\n <ComboboxPrimitive.Clear\n\t\t\t\t\t\taria-label={clearLabel}\n\t\t\t\t\t\tdata-slot=\"combobox-clear\"\n\t\t\t\t\t\tclassName={cn(fieldAffordanceRecipes.target,fieldAffordanceRecipes.focus,fieldAffordanceRecipes.clear)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<FieldClearGlyph aria-hidden=\"true\" className={fieldAffordanceRecipes.icon} />\n\t\t\t\t\t</ComboboxPrimitive.Clear>\n )}\n\t\t\t\t<ComboboxPrimitive.Trigger aria-label={toggleLabel} className={cn(fieldAffordanceRecipes.target,fieldAffordanceRecipes.focus,fieldAffordanceRecipes.toggle)}>\n\t\t\t\t\t<ChevronDownIcon aria-hidden=\"true\" className={cn('shrink-0', selectToggleRecipes.icon[size])} />\n\t\t\t\t</ComboboxPrimitive.Trigger>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\n// Portal\nfunction ComboboxPortal({ container, ...props }: ComboboxPrimitive.Portal.Props) {\n\tconst resolvedContainer = useThemePortalContainer(container);\n\treturn <ComboboxPrimitive.Portal container={resolvedContainer} {...props} />;\n}\n\n// Positioner\nfunction ComboboxPositioner({\n\tclassName,\n\tpositionMethod = anchoredPositionMethod,\n\tsideOffset = 4,\n\t...props\n}: ComboboxPrimitive.Positioner.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Positioner\n\t\t\tpositionMethod={positionMethod}\n\t\t\tdata-slot=\"combobox-positioner\"\n\t\t\tsideOffset={sideOffset}\n\t\t\tclassName={cn('z-50 outline-none', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Popup (content)\nfunction ComboboxPopup({\n\tclassName,\n\trender,\n\t...props\n}: ComboboxPrimitive.Popup.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Popup\n\t\t\tdata-slot=\"combobox-popup\"\n\t\t\tclassName={cn(\n\t\t\t\t'w-[var(--anchor-width)] min-w-[8rem] max-w-[var(--available-width)] max-h-[min(var(--available-height),24rem)]',\n\t\t\t\t'overflow-hidden rounded-radius bg-popover text-popover-foreground shadow-md',\n\t\t\t\tsurfaceDividerRecipes.anchored.shell,\n\t\t\t\t'origin-[var(--transform-origin)]',\n\t\t\t\tmotionRecipes.popup,\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t\trender={(elementProps, state) => <ComboboxDismissElement elementProps={elementProps} edge=\"after\" defaultTagName=\"div\" render={typeof render === 'function' ? props => render(props, state) : render} />}\n\t\t/>\n\t);\n}\n\n// List\nfunction ComboboxList({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.List.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.List\n\t\t\tdata-slot=\"combobox-list\"\n\t\t\tclassName={cn(\n\t\t\t\t'max-h-[min(24rem,var(--available-height))] overflow-y-auto overscroll-contain p-surface-xs',\n\t\t\t\t'outline-none empty:hidden',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Item\n//\n// Layout: `[content][indicator]` with the selection check pinned to the\n// right (`justify-between`). Consumers render leading icons naturally inside\n// `renderItem` — the `gap` between icon and label is set by the consumer.\nconst itemIndicatorSizeClasses: Record<ComboboxSize, string> = {\n\tsm: 'size-icon-sm',\n\tmd: 'size-icon',\n\tlg: 'size-icon-lg',\n};\n\nfunction ComboboxItem({\n\tclassName,\n\tchildren,\n\tsize = 'md',\n\t...props\n}: ComboboxPrimitive.Item.Props & { size?: ComboboxSize }) {\n\treturn (\n\t\t<ComboboxPrimitive.Item\n\t\t\tdata-slot=\"combobox-item\"\n\t\t\tclassName={cn(\n\t\t\t\t'flex w-full cursor-default select-none items-center justify-between outline-none',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<span className=\"flex min-w-0 flex-1 items-center gap-space-sm truncate\">\n\t\t\t\t{children}\n\t\t\t</span>\n\t\t\t<ComboboxPrimitive.ItemIndicator\n\t\t\t\tclassName={cn(\n\t\t\t\t\t// The selection check uses the row's own ink, as Select options do.\n\t\t\t\t\t'flex shrink-0 items-center justify-center',\n\t\t\t\t\titemIndicatorSizeClasses[size]\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<CheckIcon className={itemIndicatorSizeClasses[size]} />\n\t\t\t</ComboboxPrimitive.ItemIndicator>\n\t\t</ComboboxPrimitive.Item>\n\t);\n}\n\n// Item Indicator (standalone)\nfunction ComboboxItemIndicator({\n\tclassName,\n\tchildren,\n\t...props\n}: ComboboxPrimitive.ItemIndicator.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.ItemIndicator\n\t\t\tdata-slot=\"combobox-item-indicator\"\n\t\t\tclassName={cn(className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children ?? <CheckIcon className=\"size-icon\" />}\n\t\t</ComboboxPrimitive.ItemIndicator>\n\t);\n}\n\n// Empty\nfunction ComboboxEmpty({\n\tclassName,\n\tchildren,\n\t...props\n}: ComboboxPrimitive.Empty.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Empty\n\t\t\tdata-slot=\"combobox-empty\"\n\t\t\tclassName={cn(\n\t\t\t\t'px-row-x py-space-xl text-center text-sm text-muted-foreground empty:hidden',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</ComboboxPrimitive.Empty>\n\t);\n}\n\n// Status (for async loading states)\nfunction ComboboxStatus({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Status.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Status\n\t\t\tdata-slot=\"combobox-status\"\n\t\t\tclassName={cn(\n\t\t\t\t'flex items-center gap-space-sm px-row-x py-row-y text-sm text-muted-foreground empty:hidden',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Group\nfunction ComboboxGroup({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Group.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Group\n\t\t\tdata-slot=\"combobox-group\"\n\t\t\tclassName={cn('overflow-hidden p-0', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Group Label\nfunction ComboboxGroupLabel({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.GroupLabel.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.GroupLabel\n\t\t\tdata-slot=\"combobox-group-label\"\n\t\t\tclassName={cn('px-row-x py-row-y-sm text-xs font-medium text-muted-foreground', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Collection (for rendering items)\nconst ComboboxCollection = ComboboxPrimitive.Collection;\n\n// Separator\nfunction ComboboxSeparator({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Separator.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Separator\n\t\t\tdata-slot=\"combobox-separator\"\n\t\t\tclassName={cn('my-space-xs h-px', surfaceDividerRecipes.anchored.separator, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Chips container (for multiple selection)\nconst chipsSizeClasses: Record<ComboboxSize, string> = {\n\tsm: 'min-h-control-sm gap-space-xs px-control-sm py-space-xs text-sm',\n\tmd: 'min-h-control gap-space-xs px-control py-space-xs text-sm',\n\tlg: 'min-h-control-lg gap-space-sm px-control py-space-xs text-sm',\n};\n\nfunction ComboboxChips({\n\tclassName,\n\tsize = 'md',\n\terror,\n\t...props\n}: React.ComponentPropsWithRef<typeof ComboboxPrimitive.Chips> & {\n\tsize?: ComboboxSize;\n\terror?: boolean;\n}) {\n\treturn (\n\t\t<ComboboxPrimitive.Chips\n\t\t\tdata-slot=\"combobox-chips\"\n\t\t\tclassName={cn(\n\t\t\t\t'font-sans text-foreground',\n\t\t\t\t'box-border flex flex-wrap items-center rounded-inner border border-input bg-background shadow-none transition-[color,box-shadow] outline-none',\n\t\t\t\t'has-[:focus-visible]:border-ring has-[:focus-visible]:ring-3 has-[:focus-visible]:ring-ring/50',\n\t\t\t\tfieldStateRecipes.invalid,\n\t\t\t\t'aria-invalid:has-[:focus-visible]:border-destructive aria-invalid:has-[:focus-visible]:ring-destructive/30 dark:aria-invalid:has-[:focus-visible]:ring-destructive/50',\n\t\t\t\tchipsSizeClasses[size],\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\taria-invalid={error || undefined}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Chip\nfunction ComboboxChip({\n\tclassName,\n\tchildren,\n\tremoveLabel,\n\t...props\n}: ComboboxPrimitive.Chip.Props & { removeLabel?: string }) {\n\treturn (\n\t\t<ComboboxPrimitive.Chip\n\t\t\tdata-slot=\"combobox-chip\"\n\t\t\tclassName={cn(\n\t\t\t\t'inline-flex items-center gap-space-xs rounded-inner bg-secondary px-control-xs py-space-xs text-xs font-medium text-secondary-foreground',\n\t\t\t\t'data-[highlighted]:bg-primary data-[highlighted]:text-primary-foreground',\n\t\t\t\t'focus-within:bg-primary focus-within:text-primary-foreground',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t\t<ComboboxPrimitive.ChipRemove aria-label={removeLabel} className={cn(fieldAffordanceRecipes.inline, fieldAffordanceRecipes.focus, 'text-inherit opacity-70 hover:opacity-100')}>\n\t\t\t\t<FieldClearGlyph aria-hidden=\"true\" className={fieldAffordanceRecipes.icon} />\n\t\t\t</ComboboxPrimitive.ChipRemove>\n\t\t</ComboboxPrimitive.Chip>\n\t);\n}\n\n// Chips Input\nfunction ComboboxChipsInput({\n\tclassName,\n\trender,\n\t...props\n}: ComboboxPrimitive.Input.Props) {\n\treturn (\n\t\t<ComboboxNativeInput\n\t\t\tdata-slot=\"combobox-chips-input\"\n\t\t\tclassName={cn(\n\t\t\t\t'box-border min-h-lh min-w-[80px] flex-1 border-0 bg-transparent p-0 font-sans text-foreground outline-none placeholder:text-muted-foreground',\n\t\t\t\teditableTextSizeClasses.md,\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t\trender={render}\n\t\t/>\n\t);\n}\n\n// Backdrop (for modal)\nfunction ComboboxBackdrop({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Backdrop.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Backdrop\n\t\t\tdata-slot=\"combobox-backdrop\"\n\t\t\tclassName={cn(modalBackdropRecipe, \n\t\t\t\tmotionRecipes.backdrop,\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Arrow\nfunction ComboboxArrow({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Arrow.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Arrow\n\t\t\tdata-slot=\"combobox-arrow\"\n\t\t\tclassName={cn('fill-popover', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// useFilter hook re-export\nconst useComboboxFilter = ComboboxPrimitive.useFilter;\n\nexport {\n\tCombobox,\n\tComboboxNativeInput,\n\tComboboxInput,\n\tComboboxInputTrigger,\n\tComboboxTrigger,\n\tComboboxValue,\n\tComboboxClear,\n\tComboboxPortal,\n\tComboboxPositioner,\n\tComboboxPopup,\n\tComboboxList,\n\tComboboxItem,\n\tComboboxItemIndicator,\n\tComboboxEmpty,\n\tComboboxStatus,\n\tComboboxGroup,\n\tComboboxGroupLabel,\n\tComboboxCollection,\n\tComboboxSeparator,\n\tComboboxChips,\n\tComboboxChip,\n\tComboboxChipsInput,\n\tComboboxBackdrop,\n\tComboboxArrow,\n\tuseComboboxFilter,\n};\n","/** Accessible labels owned by the base combobox's generated controls. */\nexport interface ComboboxControlStrings {\n\tclear: string;\n\ttoggle: string;\n\tremove: string;\n}\n\nexport const defaultComboboxControlStrings: ComboboxControlStrings = {\n\tclear: 'Clear selection',\n\ttoggle: 'Open options',\n\tremove: 'Remove selection',\n};\n","import { CollectionLabel } from '../popover/collection-content';\n/**\n * Base wrapper for `ui/combobox`.\n *\n * This family is the sole importer of `@/components/ui/combobox`: it re-exports\n * the Base UI combobox anatomy with shared recipes and accessible control labels\n * so every other layer composes the parts without reaching into `ui/`. The searchable recipe built on top of this\n * anatomy — `Combobox`, `MultiCombobox`, `AsyncResourceCombobox`, and the\n * headless hooks — lives in `features/combobox`.\n *\n * The compound root is exported as `ComboboxRoot` so the canonical `Combobox`\n * name stays with the opinionated feature component.\n */\nexport {\n\tCombobox as ComboboxRoot,\n\tComboboxValue,\n\tComboboxPortal,\n\tComboboxPositioner,\n\tComboboxList,\n\tComboboxItemIndicator,\n\tComboboxEmpty,\n\tComboboxStatus,\n\tComboboxGroup,\n\tComboboxGroupLabel,\n\tComboboxCollection,\n\tComboboxChips,\n\tComboboxChipsInput,\n\tComboboxBackdrop,\n\tComboboxArrow,\n\tuseComboboxFilter,\n} from '../../ui/combobox';\n\n\nimport { createElement, type ComponentProps } from 'react';\nimport { ComboboxItem as Item, ComboboxPopup as Popup, ComboboxInput as Input, ComboboxInputTrigger as InputTrigger, ComboboxClear as Clear, ComboboxChip as Chip, ComboboxTrigger as Trigger, ComboboxSeparator as Separator } from '../../ui/combobox';\nimport { cn } from '../../../lib/utils';\nimport { collectionRecipes, collectionRowClasses, popoverRecipes, surfaceInsetClasses, type CollectionDensity } from '../popover/popover.recipes';\nimport { useTypographyConfig } from '../../../lib/ui-provider';\nimport { textSizes } from '../../typography/text.styles';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { defaultComboboxControlStrings, type ComboboxControlStrings } from './combobox.strings';\n\nexport { defaultComboboxControlStrings, type ComboboxControlStrings } from './combobox.strings';\n\nexport type ComboboxInputTriggerProps = Omit<ComponentProps<typeof InputTrigger>, 'clearLabel' | 'toggleLabel'> & {\n /** Accessible labels for the generated clear and toggle buttons. */\n strings?: StringsProp<Pick<ComboboxControlStrings, 'clear' | 'toggle'>>;\n};\n\nexport function ComboboxInputTrigger({ strings: stringsProp, ...props }: ComboboxInputTriggerProps) {\n const strings = useStrings(defaultComboboxControlStrings, stringsProp);\n return createElement(InputTrigger, { ...props, clearLabel: strings.clear, toggleLabel: strings.toggle });\n}\n\nexport type ComboboxClearProps = ComponentProps<typeof Clear> & {\n /** Accessible label; an explicit aria-label takes precedence. */\n strings?: StringsProp<Pick<ComboboxControlStrings, 'clear'>>;\n};\n\nexport function ComboboxClear({ strings: stringsProp, ...props }: ComboboxClearProps) {\n const strings = useStrings(defaultComboboxControlStrings, stringsProp);\n return createElement(Clear, { 'aria-label': strings.clear, ...props });\n}\n\nexport type ComboboxChipProps = Omit<ComponentProps<typeof Chip>, 'removeLabel'> & {\n /** Accessible label for the generated removal button. */\n strings?: StringsProp<Pick<ComboboxControlStrings, 'remove'>>;\n};\n\nexport function ComboboxChip({ strings: stringsProp, ...props }: ComboboxChipProps) {\n const strings = useStrings(defaultComboboxControlStrings, stringsProp);\n return createElement(Chip, { ...props, removeLabel: strings.remove });\n}\n\nexport function ComboboxPopup({ className, ...props }: ComponentProps<typeof Popup>) {\n // The list owns the collection inset so mixed search/status/footer regions stay flush.\n return createElement(Popup, { ...props, className: cn(popoverRecipes.surface, surfaceInsetClasses.flush, className) });\n}\nexport function ComboboxInput({ className, ...props }: ComponentProps<typeof Input>) {\n return createElement(Input, { ...props, className: cn('rounded-inner', className) });\n}\nexport function ComboboxTrigger({ className, ...props }: ComponentProps<typeof Trigger>) {\n return createElement(Trigger, { ...props, className: cn('rounded-inner', className) });\n}\n\nconst densityBySize = { sm: 'compact', md: 'default', lg: 'comfortable' } as const;\n\nexport function ComboboxItem({ className, size = 'md', density = densityBySize[size], children, ...props }: ComponentProps<typeof Item> & {\n /** Vertical option rhythm. Defaults to the owning control size's rhythm. */\n density?: CollectionDensity;\n}) {\n const { defaultTextSize } = useTypographyConfig();\n const content = typeof children === 'string' || typeof children === 'number' || typeof children === 'bigint' ? createElement(CollectionLabel, { children }) : children;\n return createElement(Item, { ...props, children: content, size, className: cn(collectionRowClasses(density), collectionRecipes.highlighted, collectionRecipes.disabled, textSizes[defaultTextSize ?? 'sm'], className) });\n}\n\n/** Shared collection divider, preserving Base UI separator semantics. */\nexport function ComboboxSeparator({ className, ...props }: ComponentProps<typeof Separator>) {\n return createElement(Separator, { ...props, className: cn(popoverRecipes.separator, className) });\n}\n"],"mappings":"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"}