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.
- package/CHANGELOG.md +17 -7
- package/README.md +9 -13
- package/THIRD_PARTY_NOTICES.md +6 -12
- package/dist/{auth-ax2BqjrI.js → auth-BGua8ouh.js} +2 -2
- package/dist/{auth-ax2BqjrI.js.map → auth-BGua8ouh.js.map} +1 -1
- package/dist/base/cascader.js +1 -1
- package/dist/base/combobox.js +2 -2
- package/dist/base/date-pickers.js +2 -2
- package/dist/base/popover-menu.js +1 -1
- package/dist/base/popover.js +1 -1
- package/dist/base/sheet.js +1 -1
- package/dist/base/sidebar.js +1 -1
- package/dist/base/value-inputs.js +1 -1
- package/dist/blocks/commerce.js +1 -1
- package/dist/{combobox-xCQ2RMNE.js → combobox-DaHESuiL.js} +154 -108
- package/dist/combobox-DaHESuiL.js.map +1 -0
- package/dist/{combobox-C0EQW6dr.js → combobox-Dxo2fAYQ.js} +342 -340
- package/dist/combobox-Dxo2fAYQ.js.map +1 -0
- package/dist/{comments-BYYlTA8E.js → comments-DD0DUPwJ.js} +4 -4
- package/dist/{comments-BYYlTA8E.js.map → comments-DD0DUPwJ.js.map} +1 -1
- package/dist/components/base/combobox/combobox-field.d.ts +16 -0
- package/dist/components/ui/combobox-dismiss.d.ts +16 -0
- package/dist/components/ui/combobox.d.ts +11 -6
- package/dist/components/ui/dialog.d.ts +1 -1
- package/dist/components/ui/popover.d.ts +1 -1
- package/dist/components/ui/sheet.d.ts +1 -1
- package/dist/{date-picker-ay0Pha_a.js → date-picker-B2K3ucWn.js} +2 -2
- package/dist/{date-picker-ay0Pha_a.js.map → date-picker-B2K3ucWn.js.map} +1 -1
- package/dist/{date-pickers-Ccw8DL2b.js → date-pickers-Ds8gLaoP.js} +3 -3
- package/dist/{date-pickers-Ccw8DL2b.js.map → date-pickers-Ds8gLaoP.js.map} +1 -1
- package/dist/features/activities.js +2 -2
- package/dist/features/async-preview.js +1 -1
- package/dist/features/combobox.js +1 -1
- package/dist/features/comments.js +1 -1
- package/dist/features/data-view.js +2 -2
- package/dist/features/email-composer.js +2 -2
- package/dist/features/event-calendar.js +1 -1
- package/dist/features/filters.js +1 -1
- package/dist/features/global-search.js +1 -1
- package/dist/features/map.js +1 -1
- package/dist/features/media-library.js +1 -1
- package/dist/features/mentions.js +1 -1
- package/dist/features/overlays.js +1 -1
- package/dist/features/products.js +1 -1
- package/dist/features/resource-assignment.js +1 -1
- package/dist/features/schema-form.js +1 -1
- package/dist/features/suggestions.js +1 -1
- package/dist/features/theme-tweaker.js +2 -2
- package/dist/{filters-BGfvjP4d.js → filters-DJVAveHA.js} +4 -4
- package/dist/{filters-BGfvjP4d.js.map → filters-DJVAveHA.js.map} +1 -1
- package/dist/{header-CGXuhcRm.js → header-BSfIEWbI.js} +4 -4
- package/dist/{header-CGXuhcRm.js.map → header-BSfIEWbI.js.map} +1 -1
- package/dist/{hooks-Dkz0K2WT.js → hooks-ClH9thn4.js} +2 -2
- package/dist/{hooks-Dkz0K2WT.js.map → hooks-ClH9thn4.js.map} +1 -1
- package/dist/layout/auth.js +1 -1
- package/dist/layout/header.js +1 -1
- package/dist/layout/hooks.js +1 -1
- package/dist/layout/page.js +1 -1
- package/dist/layout/sidebar.js +2 -2
- package/dist/layout/workspace.js +1 -1
- package/dist/layout.js +6 -6
- package/dist/lib/use-popup-focus-recovery.d.ts +8 -0
- package/dist/{mentions-utuUvH1K.js → mentions-CGlEJ15c.js} +2 -2
- package/dist/{mentions-utuUvH1K.js.map → mentions-CGlEJ15c.js.map} +1 -1
- package/dist/{overlays-DNWmZrJ4.js → overlays-tMkF-VAN.js} +270 -268
- package/dist/overlays-tMkF-VAN.js.map +1 -0
- package/dist/{page-Bgl1F560.js → page-CL9YeH_V.js} +2 -2
- package/dist/{page-Bgl1F560.js.map → page-CL9YeH_V.js.map} +1 -1
- package/dist/{popover-7_m66eYW.js → popover-gnTOhbFM.js} +62 -60
- package/dist/popover-gnTOhbFM.js.map +1 -0
- package/dist/{popover-menu-B9WWygpa.js → popover-menu-Cn9rUkdc.js} +2 -2
- package/dist/{popover-menu-B9WWygpa.js.map → popover-menu-Cn9rUkdc.js.map} +1 -1
- package/dist/services/actions.js +1 -1
- package/dist/{sheet-CGpB3omz.js → sheet-ijlsjq-n.js} +70 -68
- package/dist/sheet-ijlsjq-n.js.map +1 -0
- package/dist/{sidebar-CPx_7YBa.js → sidebar-Db6gkh3U.js} +2 -2
- package/dist/{sidebar-CPx_7YBa.js.map → sidebar-Db6gkh3U.js.map} +1 -1
- package/dist/{sidebar-A0ElHINE.js → sidebar-DkTO4VTO.js} +3 -3
- package/dist/{sidebar-A0ElHINE.js.map → sidebar-DkTO4VTO.js.map} +1 -1
- package/dist/use-popup-focus-recovery-C0QPvgOR.js +36 -0
- package/dist/use-popup-focus-recovery-C0QPvgOR.js.map +1 -0
- package/dist/{value-inputs-DXPDjvBU.js → value-inputs-TaX4OjNk.js} +3 -3
- package/dist/{value-inputs-DXPDjvBU.js.map → value-inputs-TaX4OjNk.js.map} +1 -1
- package/dist/{workspace-Cdrg7k9f.js → workspace-B-OEm3Kf.js} +2 -2
- package/dist/{workspace-Cdrg7k9f.js.map → workspace-B-OEm3Kf.js.map} +1 -1
- package/docs/consumer-skill/SKILL.md +1 -1
- package/docs/consumer-skill/references/agents-md.md +1 -1
- package/docs/consumer-skill/references/installation.md +6 -0
- package/docs/consumer-skill/references/public-api.json +2 -2
- package/docs/consumer-skill/references/tokens.json +1 -1
- package/docs/consumer-skill/references/workflows.md +5 -4
- package/package.json +3 -3
- package/dist/combobox-C0EQW6dr.js.map +0 -1
- package/dist/combobox-xCQ2RMNE.js.map +0 -1
- package/dist/overlays-DNWmZrJ4.js.map +0 -1
- package/dist/popover-7_m66eYW.js.map +0 -1
- 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
|
|
13
|
-
import { t as
|
|
14
|
-
import { t as
|
|
15
|
-
import { n as
|
|
16
|
-
import { t as
|
|
17
|
-
import
|
|
18
|
-
import {
|
|
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 {
|
|
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
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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,
|
|
27
|
-
...
|
|
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
|
|
31
|
-
return /* @__PURE__ */ S(
|
|
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,
|
|
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(
|
|
73
|
+
children: [t, /* @__PURE__ */ x(E.Icon, {
|
|
36
74
|
className: "flex",
|
|
37
|
-
children: /* @__PURE__ */ x(w, { className: r(
|
|
75
|
+
children: /* @__PURE__ */ x(w, { className: r(h.icon.md, "text-muted-foreground") })
|
|
38
76
|
})]
|
|
39
77
|
});
|
|
40
78
|
}
|
|
41
|
-
function
|
|
42
|
-
return /* @__PURE__ */ x(
|
|
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
|
|
52
|
-
return /* @__PURE__ */ x(
|
|
89
|
+
function P({ className: e, ...t }) {
|
|
90
|
+
return /* @__PURE__ */ x(E.Clear, {
|
|
53
91
|
"data-slot": "combobox-clear",
|
|
54
|
-
className: r(
|
|
92
|
+
className: r(m.target, m.focus, m.clear, m.centered, "end-control-icon", e),
|
|
55
93
|
...t,
|
|
56
|
-
children: /* @__PURE__ */ x(
|
|
94
|
+
children: /* @__PURE__ */ x(g, {
|
|
57
95
|
"aria-hidden": "true",
|
|
58
|
-
className:
|
|
96
|
+
className: m.icon
|
|
59
97
|
})
|
|
60
98
|
});
|
|
61
99
|
}
|
|
62
|
-
var
|
|
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
|
|
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(
|
|
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",
|
|
73
|
-
"aria-invalid":
|
|
74
|
-
...
|
|
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",
|
|
77
|
-
children: [!!
|
|
78
|
-
"aria-label":
|
|
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(
|
|
81
|
-
children: /* @__PURE__ */ x(
|
|
119
|
+
className: r(m.target, m.focus, m.clear),
|
|
120
|
+
children: /* @__PURE__ */ x(g, {
|
|
82
121
|
"aria-hidden": "true",
|
|
83
|
-
className:
|
|
122
|
+
className: m.icon
|
|
84
123
|
})
|
|
85
|
-
}), /* @__PURE__ */ x(
|
|
86
|
-
"aria-label":
|
|
87
|
-
className: r(
|
|
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",
|
|
129
|
+
className: r("shrink-0", h.icon[s])
|
|
91
130
|
})
|
|
92
131
|
})]
|
|
93
132
|
})]
|
|
94
133
|
});
|
|
95
134
|
}
|
|
96
|
-
function
|
|
135
|
+
function L({ container: e, ...n }) {
|
|
97
136
|
let r = t(e);
|
|
98
|
-
return /* @__PURE__ */ x(
|
|
137
|
+
return /* @__PURE__ */ x(E.Portal, {
|
|
99
138
|
container: r,
|
|
100
139
|
...n
|
|
101
140
|
});
|
|
102
141
|
}
|
|
103
|
-
function
|
|
104
|
-
return /* @__PURE__ */ x(
|
|
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
|
|
113
|
-
return /* @__PURE__ */ x(
|
|
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
|
-
...
|
|
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
|
|
120
|
-
return /* @__PURE__ */ x(
|
|
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
|
|
171
|
+
var V = {
|
|
127
172
|
sm: "size-icon-sm",
|
|
128
173
|
md: "size-icon",
|
|
129
174
|
lg: "size-icon-lg"
|
|
130
175
|
};
|
|
131
|
-
function
|
|
132
|
-
return /* @__PURE__ */ S(
|
|
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(
|
|
140
|
-
className: r("flex shrink-0 items-center justify-center",
|
|
141
|
-
children: /* @__PURE__ */ x(C, { className:
|
|
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
|
|
146
|
-
return /* @__PURE__ */ x(
|
|
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
|
|
154
|
-
return /* @__PURE__ */ x(
|
|
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
|
|
162
|
-
return /* @__PURE__ */ x(
|
|
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
|
|
169
|
-
return /* @__PURE__ */ x(
|
|
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
|
|
176
|
-
return /* @__PURE__ */ x(
|
|
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
|
|
183
|
-
function
|
|
184
|
-
return /* @__PURE__ */ x(
|
|
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
|
|
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
|
|
196
|
-
return /* @__PURE__ */ x(
|
|
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",
|
|
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
|
|
204
|
-
return /* @__PURE__ */ S(
|
|
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(
|
|
253
|
+
children: [t, /* @__PURE__ */ x(E.ChipRemove, {
|
|
209
254
|
"aria-label": n,
|
|
210
|
-
className: r(
|
|
211
|
-
children: /* @__PURE__ */ x(
|
|
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:
|
|
258
|
+
className: m.icon
|
|
214
259
|
})
|
|
215
260
|
})]
|
|
216
261
|
});
|
|
217
262
|
}
|
|
218
|
-
function
|
|
219
|
-
return /* @__PURE__ */ x(
|
|
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",
|
|
222
|
-
...
|
|
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
|
|
226
|
-
return /* @__PURE__ */ x(
|
|
271
|
+
function ie({ className: e, ...t }) {
|
|
272
|
+
return /* @__PURE__ */ x(E.Backdrop, {
|
|
227
273
|
"data-slot": "combobox-backdrop",
|
|
228
|
-
className: r(
|
|
274
|
+
className: r(te, s.backdrop, e),
|
|
229
275
|
...t
|
|
230
276
|
});
|
|
231
277
|
}
|
|
232
|
-
function
|
|
233
|
-
return /* @__PURE__ */ x(
|
|
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
|
|
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
|
|
294
|
+
return y(I, {
|
|
249
295
|
...t,
|
|
250
296
|
clearLabel: r.clear,
|
|
251
297
|
toggleLabel: r.toggle
|
|
252
298
|
});
|
|
253
299
|
}
|
|
254
|
-
function
|
|
300
|
+
function se({ strings: e, ...t }) {
|
|
255
301
|
let r = n(Q, e);
|
|
256
|
-
return
|
|
302
|
+
return y(P, {
|
|
257
303
|
"aria-label": r.clear,
|
|
258
304
|
...t
|
|
259
305
|
});
|
|
260
306
|
}
|
|
261
|
-
function
|
|
307
|
+
function ce({ strings: e, ...t }) {
|
|
262
308
|
let r = n(Q, e);
|
|
263
|
-
return
|
|
309
|
+
return y(Z, {
|
|
264
310
|
...t,
|
|
265
311
|
removeLabel: r.remove
|
|
266
312
|
});
|
|
267
313
|
}
|
|
268
|
-
function
|
|
269
|
-
return
|
|
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
|
|
275
|
-
return
|
|
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
|
|
281
|
-
return
|
|
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
|
|
332
|
+
var fe = {
|
|
287
333
|
sm: "compact",
|
|
288
334
|
md: "default",
|
|
289
335
|
lg: "comfortable"
|
|
290
336
|
};
|
|
291
|
-
function
|
|
292
|
-
let { defaultTextSize: c } = e(), l = typeof o == "string" || typeof o == "number" || typeof o == "bigint" ?
|
|
293
|
-
return
|
|
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
|
|
301
|
-
return
|
|
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 {
|
|
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-
|
|
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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"}
|