@humain/ui 2.2.7 → 2.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index101.js +2 -2
- package/dist/index101.js.map +1 -1
- package/dist/index103.js +3 -3
- package/dist/index103.js.map +1 -1
- package/dist/index108.js +1 -1
- package/dist/index108.js.map +1 -1
- package/dist/index117.js +1 -1
- package/dist/index117.js.map +1 -1
- package/dist/index122.js +6 -6
- package/dist/index122.js.map +1 -1
- package/dist/index126.js +1 -1
- package/dist/index126.js.map +1 -1
- package/dist/index130.js +2 -2
- package/dist/index130.js.map +1 -1
- package/dist/index146.js +4 -4
- package/dist/index146.js.map +1 -1
- package/dist/index152.js +1 -1
- package/dist/index152.js.map +1 -1
- package/dist/index154.js +2 -2
- package/dist/index154.js.map +1 -1
- package/dist/index166.js +1 -1
- package/dist/index166.js.map +1 -1
- package/dist/index168.js +1 -1
- package/dist/index168.js.map +1 -1
- package/dist/index169.js +1 -1
- package/dist/index169.js.map +1 -1
- package/dist/index173.js +2 -2
- package/dist/index173.js.map +1 -1
- package/dist/index175.js +4 -4
- package/dist/index175.js.map +1 -1
- package/dist/index176.js +2 -2
- package/dist/index176.js.map +1 -1
- package/dist/index177.js +2 -2
- package/dist/index177.js.map +1 -1
- package/dist/index184.js +1 -1
- package/dist/index184.js.map +1 -1
- package/dist/index191.js +3 -3
- package/dist/index191.js.map +1 -1
- package/dist/index192.js +2 -2
- package/dist/index192.js.map +1 -1
- package/dist/index201.js +2 -2
- package/dist/index201.js.map +1 -1
- package/dist/index204.js +4 -4
- package/dist/index204.js.map +1 -1
- package/dist/index228.js +1 -1
- package/dist/index228.js.map +1 -1
- package/dist/index229.js +1 -1
- package/dist/index229.js.map +1 -1
- package/dist/index24.js +2 -2
- package/dist/index24.js.map +1 -1
- package/dist/index5.js +1 -1
- package/dist/index5.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/wc/AICodeBlock.js +41 -41
- package/dist/wc/AICodeBlock.js.map +1 -1
- package/dist/wc/AIMermaidDiagram.js +7 -7
- package/dist/wc/AIMermaidDiagram.js.map +1 -1
- package/dist/wc/AIMessage.js +6 -6
- package/dist/wc/AIMessage.js.map +1 -1
- package/dist/wc/AISource.js +2 -2
- package/dist/wc/AISource.js.map +1 -1
- package/dist/wc/AIToolCall.js +1 -1
- package/dist/wc/AIToolCall.js.map +1 -1
- package/dist/wc/Breadcrumb.js +43 -43
- package/dist/wc/Breadcrumb.js.map +1 -1
- package/dist/wc/DropdownMenu.js +9 -9
- package/dist/wc/DropdownMenu.js.map +1 -1
- package/dist/wc/Kbd.js +22 -22
- package/dist/wc/Kbd.js.map +1 -1
- package/dist/wc/button.js +7 -7
- package/dist/wc/button.js.map +1 -1
- package/dist/wc/close-button.js +19 -19
- package/dist/wc/close-button.js.map +1 -1
- package/dist/wc/hf-ai-prompt-suggestion.js +14 -14
- package/dist/wc/hf-ai-prompt-suggestion.js.map +1 -1
- package/dist/wc/hf-ai-reasoning-block.js +13 -13
- package/dist/wc/hf-ai-reasoning-block.js.map +1 -1
- package/dist/wc/hf-ai-steps.js +53 -53
- package/dist/wc/hf-ai-steps.js.map +1 -1
- package/dist/wc/hf-ai-system-message.js +26 -26
- package/dist/wc/hf-ai-system-message.js.map +1 -1
- package/dist/wc/hf-code-snippet.js +35 -35
- package/dist/wc/hf-code-snippet.js.map +1 -1
- package/dist/wc/hf-command-menu.js +39 -39
- package/dist/wc/hf-command-menu.js.map +1 -1
- package/dist/wc/hf-data-table.js +3 -3
- package/dist/wc/hf-data-table.js.map +1 -1
- package/dist/wc/hf-display-value.js +50 -50
- package/dist/wc/hf-display-value.js.map +1 -1
- package/dist/wc/hf-nav-account-menu.js +5 -5
- package/dist/wc/hf-nav-account-menu.js.map +1 -1
- package/dist/wc/hf-rich-textarea.js +1 -1
- package/dist/wc/hf-rich-textarea.js.map +1 -1
- package/dist/wc/hf-steps.js +8 -8
- package/dist/wc/hf-steps.js.map +1 -1
- package/dist/wc/markdown-renderer.js +1 -1
- package/dist/wc/markdown-renderer.js.map +1 -1
- package/dist/wc/selection-group.js +26 -26
- package/dist/wc/selection-group.js.map +1 -1
- package/dist/wc/syntax-highlight.js +4 -4
- package/dist/wc/syntax-highlight.js.map +1 -1
- package/dist/wc/workflow-step-renderer.js +51 -51
- package/dist/wc/workflow-step-renderer.js.map +1 -1
- package/dist/wc-react/AICodeBlock.js +17 -17
- package/dist/wc-react/AICodeBlock.js.map +1 -1
- package/dist/wc-react/AIMermaidDiagram.js +16 -16
- package/dist/wc-react/AIMermaidDiagram.js.map +1 -1
- package/dist/wc-react/AIMessage.js +7 -7
- package/dist/wc-react/AIMessage.js.map +1 -1
- package/dist/wc-react/AISource.js +41 -41
- package/dist/wc-react/AISource.js.map +1 -1
- package/dist/wc-react/AIToolCall.js +6 -6
- package/dist/wc-react/AIToolCall.js.map +1 -1
- package/dist/wc-react/Breadcrumb.js +18 -18
- package/dist/wc-react/Breadcrumb.js.map +1 -1
- package/dist/wc-react/DropdownMenu.js +27 -27
- package/dist/wc-react/DropdownMenu.js.map +1 -1
- package/dist/wc-react/Kbd.js +17 -17
- package/dist/wc-react/Kbd.js.map +1 -1
- package/dist/wc-react/button.js +12 -12
- package/dist/wc-react/button.js.map +1 -1
- package/dist/wc-react/close-button.js +19 -19
- package/dist/wc-react/close-button.js.map +1 -1
- package/dist/wc-react/hf-ai-prompt-suggestion.js +1 -1
- package/dist/wc-react/hf-ai-prompt-suggestion.js.map +1 -1
- package/dist/wc-react/hf-ai-reasoning-block.js +1 -1
- package/dist/wc-react/hf-ai-reasoning-block.js.map +1 -1
- package/dist/wc-react/hf-ai-steps.js +33 -33
- package/dist/wc-react/hf-ai-steps.js.map +1 -1
- package/dist/wc-react/hf-ai-system-message.js +9 -9
- package/dist/wc-react/hf-ai-system-message.js.map +1 -1
- package/dist/wc-react/hf-code-snippet.js +3 -3
- package/dist/wc-react/hf-code-snippet.js.map +1 -1
- package/dist/wc-react/hf-command-menu.js +56 -56
- package/dist/wc-react/hf-command-menu.js.map +1 -1
- package/dist/wc-react/hf-data-table.js +3 -3
- package/dist/wc-react/hf-data-table.js.map +1 -1
- package/dist/wc-react/hf-display-value.js +58 -58
- package/dist/wc-react/hf-display-value.js.map +1 -1
- package/dist/wc-react/hf-nav-account-menu.js +7 -7
- package/dist/wc-react/hf-nav-account-menu.js.map +1 -1
- package/dist/wc-react/hf-rich-textarea.js +5 -5
- package/dist/wc-react/hf-rich-textarea.js.map +1 -1
- package/dist/wc-react/hf-steps.js +2 -2
- package/dist/wc-react/hf-steps.js.map +1 -1
- package/dist/wc-react/markdown-renderer.js +1 -1
- package/dist/wc-react/markdown-renderer.js.map +1 -1
- package/dist/wc-react/selection-group.js +7 -7
- package/dist/wc-react/selection-group.js.map +1 -1
- package/dist/wc-react/syntax-highlight.js +4 -4
- package/dist/wc-react/syntax-highlight.js.map +1 -1
- package/dist/wc-react/workflow-step-renderer.js +44 -44
- package/dist/wc-react/workflow-step-renderer.js.map +1 -1
- package/package.json +1 -1
- package/skills/humain-ui/SKILL.md +1 -1
- package/skills/humain-ui-wc/SKILL.md +1 -1
- package/skills/humain-ui-wc.skill +0 -0
- package/skills/humain-ui.skill +0 -0
- package/src/tokens.css +4 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { a as
|
|
2
|
-
import { i as
|
|
3
|
-
import { n as
|
|
1
|
+
import { a as U } from "./rolldown-runtime.js";
|
|
2
|
+
import { i as V, n as q, t as W } from "./vendor/react.js";
|
|
3
|
+
import { n as c } from "./utils.js";
|
|
4
4
|
import { c as Z, s as S } from "./_shared.js";
|
|
5
5
|
import { t as $ } from "./createLucideIcon.js";
|
|
6
6
|
import { t as R } from "./arrow-down.js";
|
|
@@ -10,14 +10,14 @@ import { t as J } from "./settings.js";
|
|
|
10
10
|
import { t as Q } from "./Avatar.js";
|
|
11
11
|
import { n as Y, t as ee } from "./button.js";
|
|
12
12
|
import { t as A } from "./Kbd.js";
|
|
13
|
-
import { a as te, c as se, i as re, n as ne, o as ae, r as oe, s as ie, t as
|
|
14
|
-
var
|
|
13
|
+
import { a as te, c as se, i as re, n as ne, o as ae, r as oe, s as ie, t as ce } from "./command.js";
|
|
14
|
+
var le = [["path", {
|
|
15
15
|
d: "M20 4v7a4 4 0 0 1-4 4H4",
|
|
16
16
|
key: "6o5b7l"
|
|
17
17
|
}], ["path", {
|
|
18
18
|
d: "m9 10-5 5 5 5",
|
|
19
19
|
key: "1kshq7"
|
|
20
|
-
}]],
|
|
20
|
+
}]], de = $("corner-down-left", le), i = /* @__PURE__ */ U(V(), 1), t = W(), w = 336, z = "Type a command or search...", me = "w-full max-w-[508px] overflow-hidden rounded-xl border border-input bg-background shadow-lg";
|
|
21
21
|
function ue(e) {
|
|
22
22
|
return Number.isFinite(e) && e >= 0 ? e : w;
|
|
23
23
|
}
|
|
@@ -31,7 +31,7 @@ function E({ children: e, className: s }) {
|
|
|
31
31
|
return /* @__PURE__ */ (0, t.jsx)(A, {
|
|
32
32
|
variant: "solid",
|
|
33
33
|
size: "sm",
|
|
34
|
-
className:
|
|
34
|
+
className: c("shadow-xs", s),
|
|
35
35
|
children: e
|
|
36
36
|
});
|
|
37
37
|
}
|
|
@@ -40,14 +40,14 @@ function _({ children: e, className: s }) {
|
|
|
40
40
|
return /* @__PURE__ */ (0, t.jsx)(A, {
|
|
41
41
|
variant: "footer",
|
|
42
42
|
size: "sm",
|
|
43
|
-
className:
|
|
43
|
+
className: c("p-1.5", s),
|
|
44
44
|
children: e
|
|
45
45
|
});
|
|
46
46
|
}
|
|
47
47
|
_.displayName = "CommandMenu.FooterNavIcon";
|
|
48
48
|
function D({ children: e, className: s }) {
|
|
49
49
|
return /* @__PURE__ */ (0, t.jsx)("span", {
|
|
50
|
-
className:
|
|
50
|
+
className: c("text-sm font-semibold text-secondary-foreground", s),
|
|
51
51
|
children: e
|
|
52
52
|
});
|
|
53
53
|
}
|
|
@@ -56,19 +56,19 @@ var pe = [
|
|
|
56
56
|
{
|
|
57
57
|
keys: /* @__PURE__ */ (0, t.jsxs)("div", {
|
|
58
58
|
className: "flex items-center gap-1",
|
|
59
|
-
children: [/* @__PURE__ */ (0, t.jsx)(_, { children: /* @__PURE__ */ (0, t.jsx)(X, { className: "size-2.5 text-
|
|
59
|
+
children: [/* @__PURE__ */ (0, t.jsx)(_, { children: /* @__PURE__ */ (0, t.jsx)(X, { className: "size-2.5 text-secondary-foreground" }) }), /* @__PURE__ */ (0, t.jsx)(_, { children: /* @__PURE__ */ (0, t.jsx)(R, { className: "size-2.5 text-secondary-foreground" }) })]
|
|
60
60
|
}),
|
|
61
61
|
label: "to navigate"
|
|
62
62
|
},
|
|
63
63
|
{
|
|
64
|
-
keys: /* @__PURE__ */ (0, t.jsx)(_, { children: /* @__PURE__ */ (0, t.jsx)(
|
|
64
|
+
keys: /* @__PURE__ */ (0, t.jsx)(_, { children: /* @__PURE__ */ (0, t.jsx)(de, { className: "size-2.5 text-secondary-foreground" }) }),
|
|
65
65
|
label: "to select"
|
|
66
66
|
},
|
|
67
67
|
{
|
|
68
68
|
keys: /* @__PURE__ */ (0, t.jsx)(_, {
|
|
69
69
|
className: "px-1.5 py-1",
|
|
70
70
|
children: /* @__PURE__ */ (0, t.jsx)("span", {
|
|
71
|
-
className: "text-xs font-semibold text-
|
|
71
|
+
className: "text-xs font-semibold text-secondary-foreground",
|
|
72
72
|
children: "esc"
|
|
73
73
|
})
|
|
74
74
|
}),
|
|
@@ -78,7 +78,7 @@ var pe = [
|
|
|
78
78
|
function L({ hints: e = pe, showSettingsButton: s = !1, onSettingsClick: r, className: n }) {
|
|
79
79
|
return /* @__PURE__ */ (0, t.jsxs)("div", {
|
|
80
80
|
"data-slot": "command-menu-footer",
|
|
81
|
-
className:
|
|
81
|
+
className: c("flex items-center gap-3 border-t border-border bg-card/80 py-2 pe-2 ps-[18px] supports-backdrop-filter:backdrop-blur", n),
|
|
82
82
|
children: [/* @__PURE__ */ (0, t.jsx)("div", {
|
|
83
83
|
className: "hidden flex-1 items-start gap-4 [@media(hover:hover)]:flex",
|
|
84
84
|
children: e.map((a) => /* @__PURE__ */ (0, t.jsxs)("div", {
|
|
@@ -103,7 +103,7 @@ function H({ option: e, onSelect: s, className: r, ...n }) {
|
|
|
103
103
|
disabled: e.disabled,
|
|
104
104
|
showCheckIndicator: !1,
|
|
105
105
|
onSelect: () => s?.(e.id, e),
|
|
106
|
-
className:
|
|
106
|
+
className: c("flex cursor-pointer items-center gap-2 transition-colors duration-150 motion-reduce:transition-none", r),
|
|
107
107
|
...n,
|
|
108
108
|
children: [
|
|
109
109
|
e.avatar && /* @__PURE__ */ (0, t.jsx)(Q, {
|
|
@@ -137,7 +137,7 @@ H.displayName = "CommandMenu.Item";
|
|
|
137
137
|
function F({ children: e, className: s, ...r }) {
|
|
138
138
|
return /* @__PURE__ */ (0, t.jsx)("h3", {
|
|
139
139
|
"data-slot": "command-menu-group-header",
|
|
140
|
-
className:
|
|
140
|
+
className: c("px-2 py-1.5 text-xs font-medium text-muted-foreground", s),
|
|
141
141
|
...r,
|
|
142
142
|
children: e
|
|
143
143
|
});
|
|
@@ -167,11 +167,11 @@ function he({ children: e, groups: s, options: r, optionRenderer: n }) {
|
|
|
167
167
|
children: r.map(n)
|
|
168
168
|
}));
|
|
169
169
|
}
|
|
170
|
-
function M({ children: e, groups: s, options: r, onSelect: n, onClose: a, placeholder: o, emptyText:
|
|
171
|
-
const v = ue(g), y = (
|
|
172
|
-
option:
|
|
170
|
+
function M({ children: e, groups: s, options: r, onSelect: n, onClose: a, placeholder: o, emptyText: m, emptyState: u, showShortcut: p, shortcutText: h, showFooter: f, footerHints: x, showSettingsButton: C, onSettingsClick: b, maxHeight: g, filter: N }) {
|
|
171
|
+
const v = ue(g), y = (l) => /* @__PURE__ */ (0, t.jsx)(H, {
|
|
172
|
+
option: l,
|
|
173
173
|
onSelect: n
|
|
174
|
-
},
|
|
174
|
+
}, l.id);
|
|
175
175
|
return /* @__PURE__ */ (0, t.jsxs)(ie, {
|
|
176
176
|
filter: N,
|
|
177
177
|
className: "rounded-none border-0 shadow-none",
|
|
@@ -180,10 +180,10 @@ function M({ children: e, groups: s, options: r, onSelect: n, onClose: a, placeh
|
|
|
180
180
|
/* @__PURE__ */ (0, t.jsx)("search", {
|
|
181
181
|
"aria-label": "Command menu search",
|
|
182
182
|
className: "block border-b border-input bg-background",
|
|
183
|
-
children: /* @__PURE__ */ (0, t.jsx)(re, { render: ({ clearSearch:
|
|
184
|
-
const k = typeof a == "function",
|
|
185
|
-
if (
|
|
186
|
-
|
|
183
|
+
children: /* @__PURE__ */ (0, t.jsx)(re, { render: ({ clearSearch: l, value: d, ...B }) => {
|
|
184
|
+
const k = typeof a == "function", G = () => {
|
|
185
|
+
if (d) {
|
|
186
|
+
l();
|
|
187
187
|
return;
|
|
188
188
|
}
|
|
189
189
|
a?.();
|
|
@@ -198,8 +198,8 @@ function M({ children: e, groups: s, options: r, onSelect: n, onClose: a, placeh
|
|
|
198
198
|
"aria-hidden": "true"
|
|
199
199
|
}),
|
|
200
200
|
/* @__PURE__ */ (0, t.jsx)("input", {
|
|
201
|
-
...
|
|
202
|
-
value:
|
|
201
|
+
...B,
|
|
202
|
+
value: d,
|
|
203
203
|
placeholder: o,
|
|
204
204
|
"aria-label": o,
|
|
205
205
|
className: "min-w-0 flex-1 bg-transparent text-sm leading-5 text-foreground outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50"
|
|
@@ -208,9 +208,9 @@ function M({ children: e, groups: s, options: r, onSelect: n, onClose: a, placeh
|
|
|
208
208
|
/* @__PURE__ */ (0, t.jsx)(Y, {
|
|
209
209
|
size: "icon-xs",
|
|
210
210
|
className: "-me-1 rounded-sm p-0 opacity-50 hover:opacity-80 focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:size-4",
|
|
211
|
-
disabled: !
|
|
212
|
-
"aria-label":
|
|
213
|
-
onClick:
|
|
211
|
+
disabled: !d && !k,
|
|
212
|
+
"aria-label": d ? "Clear search" : k ? "Close command menu" : "Clear search",
|
|
213
|
+
onClick: G
|
|
214
214
|
})
|
|
215
215
|
]
|
|
216
216
|
});
|
|
@@ -221,7 +221,7 @@ function M({ children: e, groups: s, options: r, onSelect: n, onClose: a, placeh
|
|
|
221
221
|
className: "overflow-y-auto p-0",
|
|
222
222
|
children: [/* @__PURE__ */ (0, t.jsx)(ne, {
|
|
223
223
|
className: "py-6 text-center text-sm text-muted-foreground animate-in fade-in-0 duration-200 motion-reduce:animate-none",
|
|
224
|
-
children: u ||
|
|
224
|
+
children: u || m
|
|
225
225
|
}), /* @__PURE__ */ (0, t.jsx)(he, {
|
|
226
226
|
groups: s,
|
|
227
227
|
options: r,
|
|
@@ -238,22 +238,22 @@ function M({ children: e, groups: s, options: r, onSelect: n, onClose: a, placeh
|
|
|
238
238
|
});
|
|
239
239
|
}
|
|
240
240
|
M.displayName = "CommandMenu.Body";
|
|
241
|
-
function I({ open: e, onOpenChange: s, placeholder: r = z, emptyText: n = "No results found.", emptyState: a, options: o = [], groups:
|
|
242
|
-
const
|
|
243
|
-
return /* @__PURE__ */ (0, t.jsx)(
|
|
241
|
+
function I({ open: e, onOpenChange: s, placeholder: r = z, emptyText: n = "No results found.", emptyState: a, options: o = [], groups: m = [], onSelect: u, showShortcut: p = !1, shortcutText: h, showFooter: f = !1, footerHints: x, showSettingsButton: C = !1, onSettingsClick: b, className: g, maxHeight: N = w, filter: v, children: y }) {
|
|
242
|
+
const l = T(), d = h ?? l;
|
|
243
|
+
return /* @__PURE__ */ (0, t.jsx)(ce, {
|
|
244
244
|
open: e,
|
|
245
245
|
onOpenChange: s,
|
|
246
|
-
className:
|
|
246
|
+
className: c("max-w-[508px] sm:max-w-[508px]", g),
|
|
247
247
|
children: /* @__PURE__ */ (0, t.jsx)(M, {
|
|
248
248
|
placeholder: r,
|
|
249
249
|
emptyText: n,
|
|
250
250
|
emptyState: a,
|
|
251
251
|
options: o,
|
|
252
|
-
groups:
|
|
252
|
+
groups: m,
|
|
253
253
|
onSelect: u,
|
|
254
254
|
onClose: () => s?.(!1),
|
|
255
255
|
showShortcut: p,
|
|
256
|
-
shortcutText:
|
|
256
|
+
shortcutText: d,
|
|
257
257
|
showFooter: f,
|
|
258
258
|
footerHints: x,
|
|
259
259
|
showSettingsButton: C,
|
|
@@ -265,11 +265,11 @@ function I({ open: e, onOpenChange: s, placeholder: r = z, emptyText: n = "No re
|
|
|
265
265
|
});
|
|
266
266
|
}
|
|
267
267
|
I.displayName = "CommandMenu";
|
|
268
|
-
function fe({ placeholder: e = z, emptyText: s = "No results found.", emptyState: r, options: n = [], groups: a = [], onSelect: o, showShortcut:
|
|
268
|
+
function fe({ placeholder: e = z, emptyText: s = "No results found.", emptyState: r, options: n = [], groups: a = [], onSelect: o, showShortcut: m = !1, shortcutText: u, showFooter: p = !1, footerHints: h, showSettingsButton: f = !1, onSettingsClick: x, className: C, maxHeight: b = w, filter: g, children: N }) {
|
|
269
269
|
const v = T(), y = u ?? v;
|
|
270
270
|
return /* @__PURE__ */ (0, t.jsx)("div", {
|
|
271
271
|
"data-slot": "command-menu-panel",
|
|
272
|
-
className:
|
|
272
|
+
className: c(me, C),
|
|
273
273
|
children: /* @__PURE__ */ (0, t.jsx)(M, {
|
|
274
274
|
placeholder: e,
|
|
275
275
|
emptyText: s,
|
|
@@ -277,7 +277,7 @@ function fe({ placeholder: e = z, emptyText: s = "No results found.", emptyState
|
|
|
277
277
|
options: n,
|
|
278
278
|
groups: a,
|
|
279
279
|
onSelect: o,
|
|
280
|
-
showShortcut:
|
|
280
|
+
showShortcut: m,
|
|
281
281
|
shortcutText: y,
|
|
282
282
|
showFooter: p,
|
|
283
283
|
footerHints: h,
|
|
@@ -290,7 +290,7 @@ function fe({ placeholder: e = z, emptyText: s = "No results found.", emptyState
|
|
|
290
290
|
});
|
|
291
291
|
}
|
|
292
292
|
fe.displayName = "CommandMenu.Panel";
|
|
293
|
-
var xe =
|
|
293
|
+
var xe = q();
|
|
294
294
|
function Ce(e) {
|
|
295
295
|
return {
|
|
296
296
|
onOpenChange: (s) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hf-command-menu.js","names":[],"sources":["../../../../../../../../../../../Users/akarim/Documents/test/humain_foundation_ui/node_modules/.bun/lucide-react@1.27.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/corner-down-left.mjs","../../src/components/organisms/menus/CommandMenu/CommandMenu.tsx","../../src/wc/hf-command-menu.ts"],"sourcesContent":["/**\n * @license lucide-react v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M20 4v7a4 4 0 0 1-4 4H4\", key: \"6o5b7l\" }],\n [\"path\", { d: \"m9 10-5 5 5 5\", key: \"1kshq7\" }]\n];\nconst CornerDownLeft = createLucideIcon(\"corner-down-left\", __iconNode);\n\nexport { __iconNode, CornerDownLeft as default };\n//# sourceMappingURL=corner-down-left.mjs.map\n","'use client';\n\nimport {\n ArrowDown,\n ArrowUp,\n CornerDownLeft,\n Search,\n Settings,\n} from 'lucide-react';\nimport * as React from 'react';\nimport { Button, ClearButton } from '@/components/atoms/buttons/Button';\nimport { Avatar } from '@/components/molecules/data/Avatar';\nimport { Kbd } from '@/components/molecules/data/Kbd';\nimport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n} from '@/components/ui/command';\nimport { cn } from '@/lib/utils';\n\nconst DEFAULT_COMMAND_MENU_MAX_HEIGHT = 336;\nconst DEFAULT_COMMAND_MENU_PLACEHOLDER = 'Type a command or search...';\nconst COMMAND_MENU_SHELL_CLASS_NAME =\n 'w-full max-w-[508px] overflow-hidden rounded-xl border border-input bg-background shadow-lg';\n\nfunction getCommandMenuMaxHeight(maxHeight: number): number {\n return Number.isFinite(maxHeight) && maxHeight >= 0\n ? maxHeight\n : DEFAULT_COMMAND_MENU_MAX_HEIGHT;\n}\n\n// ============================================\n// Types\n// ============================================\n\nexport interface CommandMenuOption {\n /** Unique identifier for the option */\n id: string;\n /** Display label for the option */\n label: string;\n /** Optional subtitle (e.g., @username, email) */\n subtitle?: string;\n /** Optional icon to display (mutually exclusive with avatar) */\n icon?: React.ReactNode;\n /** Optional avatar configuration */\n avatar?: {\n src?: string;\n fallback?: string;\n };\n /** Whether the option is disabled */\n disabled?: boolean;\n /** Keyboard shortcut to display */\n shortcut?: string;\n}\n\nexport interface CommandMenuGroup {\n /** Unique identifier for the group */\n id: string;\n /** Group label/heading */\n label: string;\n /** Options in this group */\n options: CommandMenuOption[];\n}\n\nexport interface CommandMenuFooterHint {\n /** Icon or keyboard key indicator */\n keys: React.ReactNode;\n /** Text describing the action */\n label: string;\n}\n\nexport interface CommandMenuProps {\n /** Whether the command menu is open */\n open?: boolean;\n /** Callback when open state changes */\n onOpenChange?: (open: boolean) => void;\n /** Placeholder text for the search input */\n placeholder?: string;\n /** Text to show when no results found */\n emptyText?: string;\n /** Empty state content (replaces emptyText when provided) */\n emptyState?: React.ReactNode;\n /** Flat list of options */\n options?: CommandMenuOption[];\n /** Grouped options */\n groups?: CommandMenuGroup[];\n /** Callback when an option is selected */\n onSelect?: (id: string, option: CommandMenuOption) => void;\n /** Whether to show keyboard shortcut badge in input */\n showShortcut?: boolean;\n /** Keyboard shortcut text to display (auto-detects platform when omitted) */\n shortcutText?: string;\n /** Whether to show the footer with navigation hints */\n showFooter?: boolean;\n /** Custom footer hints */\n footerHints?: CommandMenuFooterHint[];\n /** Whether to show settings button in footer */\n showSettingsButton?: boolean;\n /** Callback when settings button is clicked */\n onSettingsClick?: () => void;\n /** Additional class name for the dialog */\n className?: string;\n /** Maximum height of the list */\n maxHeight?: number;\n /** Custom filter function */\n filter?: (value: string, search: string) => number;\n /** Children for custom content */\n children?: React.ReactNode;\n}\n\n// ============================================\n// Platform detection\n// ============================================\n\nfunction usePlatformShortcut() {\n const [shortcut, setShortcut] = React.useState('\\u2318/');\n React.useEffect(() => {\n if (!/Mac|iPhone|iPad/i.test(navigator.userAgent)) {\n setShortcut('Ctrl /');\n }\n }, []);\n return shortcut;\n}\n\n// ============================================\n// Keyboard Shortcut Badge (uses Kbd wrapper)\n// ============================================\n\nfunction CommandShortcutBadge({\n children,\n className,\n}: {\n children: React.ReactNode;\n className?: string;\n}) {\n return (\n <Kbd variant=\"solid\" size=\"sm\" className={cn('shadow-xs', className)}>\n {children}\n </Kbd>\n );\n}\nCommandShortcutBadge.displayName = 'CommandMenu.ShortcutBadge';\n\n// ============================================\n// Footer Navigation Icon (uses Kbd wrapper)\n// ============================================\n\nfunction FooterNavIcon({\n children,\n className,\n}: {\n children: React.ReactNode;\n className?: string;\n}) {\n return (\n <Kbd variant=\"footer\" size=\"sm\" className={cn('p-1.5', className)}>\n {children}\n </Kbd>\n );\n}\nFooterNavIcon.displayName = 'CommandMenu.FooterNavIcon';\n\nfunction FooterNavText({\n children,\n className,\n}: {\n children: React.ReactNode;\n className?: string;\n}) {\n return (\n <span\n className={cn('text-sm font-semibold text-text-quaternary', className)}\n >\n {children}\n </span>\n );\n}\nFooterNavText.displayName = 'CommandMenu.FooterNavText';\n\n// ============================================\n// Default Footer Hints\n// ============================================\n\nconst defaultFooterHints: CommandMenuFooterHint[] = [\n {\n keys: (\n <div className=\"flex items-center gap-1\">\n <FooterNavIcon>\n <ArrowUp className=\"size-2.5 text-text-quaternary\" />\n </FooterNavIcon>\n <FooterNavIcon>\n <ArrowDown className=\"size-2.5 text-text-quaternary\" />\n </FooterNavIcon>\n </div>\n ),\n label: 'to navigate',\n },\n {\n keys: (\n <FooterNavIcon>\n <CornerDownLeft className=\"size-2.5 text-text-quaternary\" />\n </FooterNavIcon>\n ),\n label: 'to select',\n },\n {\n keys: (\n <FooterNavIcon className=\"px-1.5 py-1\">\n <span className=\"text-xs font-semibold text-text-quaternary\">esc</span>\n </FooterNavIcon>\n ),\n label: 'to close',\n },\n];\n\n// ============================================\n// Command Menu Footer\n// ============================================\n\nexport interface CommandMenuFooterProps {\n hints?: CommandMenuFooterHint[];\n showSettingsButton?: boolean;\n onSettingsClick?: () => void;\n className?: string;\n}\n\nfunction CommandMenuFooter({\n hints = defaultFooterHints,\n showSettingsButton = false,\n onSettingsClick,\n className,\n}: CommandMenuFooterProps) {\n return (\n <div\n data-slot=\"command-menu-footer\"\n className={cn(\n 'flex items-center gap-3 border-t border-border bg-card/80 py-2 pe-2 ps-[18px] supports-backdrop-filter:backdrop-blur',\n className,\n )}\n >\n <div className=\"hidden flex-1 items-start gap-4 [@media(hover:hover)]:flex\">\n {hints.map((hint) => (\n <div key={hint.label} className=\"flex items-center gap-2\">\n {hint.keys}\n <FooterNavText>{hint.label}</FooterNavText>\n </div>\n ))}\n </div>\n {showSettingsButton && (\n <Button\n appearance=\"ghost\"\n variant=\"secondary\"\n size=\"icon\"\n className=\"group ms-auto rounded-full bg-muted\"\n onClick={onSettingsClick}\n aria-label=\"Settings\"\n >\n <Settings className=\"size-5 text-muted-foreground transition-transform duration-300 ease-out group-hover:rotate-90 motion-reduce:transition-none\" />\n </Button>\n )}\n </div>\n );\n}\nCommandMenuFooter.displayName = 'CommandMenu.Footer';\n\n// ============================================\n// Command Menu Item\n// ============================================\n\nexport interface CommandMenuItemProps\n extends Omit<\n React.ComponentProps<typeof CommandItem>,\n 'onSelect' | 'showCheckIndicator' | 'value'\n > {\n option: CommandMenuOption;\n onSelect?: (id: string, option: CommandMenuOption) => void;\n}\n\nfunction CommandMenuItem({\n option,\n onSelect,\n className,\n ...props\n}: CommandMenuItemProps) {\n return (\n <CommandItem\n value={option.id}\n disabled={option.disabled}\n showCheckIndicator={false}\n onSelect={() => onSelect?.(option.id, option)}\n className={cn(\n 'flex cursor-pointer items-center gap-2 transition-colors duration-150 motion-reduce:transition-none',\n className,\n )}\n {...props}\n >\n {option.avatar && (\n <Avatar\n src={option.avatar.src}\n fallback={option.avatar.fallback || option.label.charAt(0)}\n size=\"sm\"\n className=\"size-6 shrink-0\"\n />\n )}\n {option.icon && !option.avatar && (\n <span className=\"flex size-4 shrink-0 items-center justify-center text-muted-foreground [&_svg]:size-4\">\n {option.icon}\n </span>\n )}\n <div className=\"flex min-w-0 flex-1 items-center gap-2 text-sm leading-5\">\n <span className=\"min-w-0 truncate font-normal text-foreground\">\n {option.label}\n </span>\n {option.subtitle && (\n <span className=\"min-w-0 truncate font-normal text-muted-foreground\">\n {option.subtitle}\n </span>\n )}\n </div>\n {option.shortcut && (\n <CommandShortcutBadge className=\"transition-colors duration-150 group-data-[selected=true]/command-item:bg-primary/10 group-data-[selected=true]/command-item:text-primary\">\n {option.shortcut}\n </CommandShortcutBadge>\n )}\n </CommandItem>\n );\n}\nCommandMenuItem.displayName = 'CommandMenu.Item';\n\n// ============================================\n// Command Menu Group Header\n// ============================================\n\nfunction CommandMenuGroupHeader({\n children,\n className,\n ...props\n}: React.ComponentProps<'h3'>) {\n return (\n <h3\n data-slot=\"command-menu-group-header\"\n className={cn(\n 'px-2 py-1.5 text-xs font-medium text-muted-foreground',\n className,\n )}\n {...props}\n >\n {children}\n </h3>\n );\n}\nCommandMenuGroupHeader.displayName = 'CommandMenu.GroupHeader';\n\n// ============================================\n// Shared Command Menu Body (internal)\n// ============================================\n\ninterface CommandMenuBodyProps {\n children?: React.ReactNode;\n groups: CommandMenuGroup[];\n options: CommandMenuOption[];\n onSelect?: (id: string, option: CommandMenuOption) => void;\n onClose?: () => void;\n placeholder: string;\n emptyText: string;\n emptyState?: React.ReactNode;\n showShortcut: boolean;\n shortcutText: string;\n showFooter: boolean;\n footerHints?: CommandMenuFooterHint[];\n showSettingsButton: boolean;\n onSettingsClick?: () => void;\n maxHeight: number;\n filter?: (value: string, search: string) => number;\n}\n\ninterface CommandMenuBodyContentProps {\n children?: React.ReactNode;\n groups: CommandMenuGroup[];\n options: CommandMenuOption[];\n optionRenderer: (option: CommandMenuOption) => React.ReactNode;\n}\n\ninterface CommandMenuGroupSectionProps {\n group: CommandMenuGroup;\n optionRenderer: (option: CommandMenuOption) => React.ReactNode;\n}\n\nfunction CommandMenuGroupSection({\n group,\n optionRenderer,\n}: CommandMenuGroupSectionProps) {\n const headingId = React.useId();\n\n return (\n <CommandGroup aria-labelledby={headingId} className=\"px-2 py-1\">\n <CommandMenuGroupHeader id={headingId}>\n {group.label}\n </CommandMenuGroupHeader>\n <div className=\"flex flex-col\">{group.options.map(optionRenderer)}</div>\n </CommandGroup>\n );\n}\nCommandMenuGroupSection.displayName = 'CommandMenu.GroupSection';\n\nfunction CommandMenuBodyContent({\n children,\n groups,\n options,\n optionRenderer,\n}: CommandMenuBodyContentProps) {\n if (children) return children;\n\n if (groups.length > 0) {\n return groups.map((group, index) => (\n <React.Fragment key={group.id}>\n {index > 0 && <CommandSeparator className=\"mx-0\" />}\n <CommandMenuGroupSection\n group={group}\n optionRenderer={optionRenderer}\n />\n </React.Fragment>\n ));\n }\n\n return <div className=\"flex flex-col p-2\">{options.map(optionRenderer)}</div>;\n}\n\nfunction CommandMenuBody({\n children,\n groups,\n options,\n onSelect,\n onClose,\n placeholder,\n emptyText,\n emptyState,\n showShortcut,\n shortcutText,\n showFooter,\n footerHints,\n showSettingsButton,\n onSettingsClick,\n maxHeight,\n filter,\n}: CommandMenuBodyProps) {\n const safeMaxHeight = getCommandMenuMaxHeight(maxHeight);\n const renderOption = (option: CommandMenuOption) => (\n <CommandMenuItem key={option.id} option={option} onSelect={onSelect} />\n );\n\n return (\n <Command\n filter={filter}\n className=\"rounded-none border-0 shadow-none\"\n data-slot=\"command-menu\"\n >\n <search\n aria-label=\"Command menu search\"\n className=\"block border-b border-input bg-background\"\n >\n <CommandInput\n render={({ clearSearch, value, ...inputProps }) => {\n const canClose = typeof onClose === 'function';\n const clearOrClose = () => {\n if (value) {\n clearSearch();\n return;\n }\n onClose?.();\n };\n\n return (\n <div\n data-slot=\"command-menu-input\"\n cmdk-input-wrapper=\"\"\n className=\"flex h-11 items-center gap-2 px-3\"\n >\n <Search\n className=\"size-4 shrink-0 text-muted-foreground opacity-50\"\n aria-hidden=\"true\"\n />\n <input\n {...inputProps}\n value={value}\n placeholder={placeholder}\n aria-label={placeholder}\n className=\"min-w-0 flex-1 bg-transparent text-sm leading-5 text-foreground outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\"\n />\n {showShortcut && (\n <CommandShortcutBadge>{shortcutText}</CommandShortcutBadge>\n )}\n <ClearButton\n size=\"icon-xs\"\n className=\"-me-1 rounded-sm p-0 opacity-50 hover:opacity-80 focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:size-4\"\n disabled={!value && !canClose}\n aria-label={\n value\n ? 'Clear search'\n : canClose\n ? 'Close command menu'\n : 'Clear search'\n }\n onClick={clearOrClose}\n />\n </div>\n );\n }}\n />\n </search>\n\n <CommandList\n style={{ maxHeight: safeMaxHeight }}\n className=\"overflow-y-auto p-0\"\n >\n <CommandEmpty className=\"py-6 text-center text-sm text-muted-foreground animate-in fade-in-0 duration-200 motion-reduce:animate-none\">\n {emptyState || emptyText}\n </CommandEmpty>\n <CommandMenuBodyContent\n groups={groups}\n options={options}\n optionRenderer={renderOption}\n >\n {children}\n </CommandMenuBodyContent>\n </CommandList>\n\n {showFooter && (\n <CommandMenuFooter\n hints={footerHints}\n showSettingsButton={showSettingsButton}\n onSettingsClick={onSettingsClick}\n />\n )}\n </Command>\n );\n}\nCommandMenuBody.displayName = 'CommandMenu.Body';\n\n// ============================================\n// Main Command Menu Component\n// ============================================\n\nfunction CommandMenu({\n open,\n onOpenChange,\n placeholder = DEFAULT_COMMAND_MENU_PLACEHOLDER,\n emptyText = 'No results found.',\n emptyState,\n options = [],\n groups = [],\n onSelect,\n showShortcut = false,\n shortcutText,\n showFooter = false,\n footerHints,\n showSettingsButton = false,\n onSettingsClick,\n className,\n maxHeight = DEFAULT_COMMAND_MENU_MAX_HEIGHT,\n filter,\n children,\n}: CommandMenuProps) {\n const platformShortcut = usePlatformShortcut();\n const resolvedShortcut = shortcutText ?? platformShortcut;\n\n return (\n <CommandDialog\n open={open}\n onOpenChange={onOpenChange}\n className={cn('max-w-[508px] sm:max-w-[508px]', className)}\n >\n <CommandMenuBody\n placeholder={placeholder}\n emptyText={emptyText}\n emptyState={emptyState}\n options={options}\n groups={groups}\n onSelect={onSelect}\n onClose={() => onOpenChange?.(false)}\n showShortcut={showShortcut}\n shortcutText={resolvedShortcut}\n showFooter={showFooter}\n footerHints={footerHints}\n showSettingsButton={showSettingsButton}\n onSettingsClick={onSettingsClick}\n maxHeight={maxHeight}\n filter={filter}\n >\n {children}\n </CommandMenuBody>\n </CommandDialog>\n );\n}\nCommandMenu.displayName = 'CommandMenu';\n\n// ============================================\n// Standalone Command Menu (non-dialog version)\n// ============================================\n\nexport interface CommandMenuPanelProps\n extends Omit<CommandMenuProps, 'open' | 'onOpenChange'> {\n /** Additional class name */\n className?: string;\n}\n\nfunction CommandMenuPanel({\n placeholder = DEFAULT_COMMAND_MENU_PLACEHOLDER,\n emptyText = 'No results found.',\n emptyState,\n options = [],\n groups = [],\n onSelect,\n showShortcut = false,\n shortcutText,\n showFooter = false,\n footerHints,\n showSettingsButton = false,\n onSettingsClick,\n className,\n maxHeight = DEFAULT_COMMAND_MENU_MAX_HEIGHT,\n filter,\n children,\n}: CommandMenuPanelProps) {\n const platformShortcut = usePlatformShortcut();\n const resolvedShortcut = shortcutText ?? platformShortcut;\n\n return (\n <div\n data-slot=\"command-menu-panel\"\n className={cn(COMMAND_MENU_SHELL_CLASS_NAME, className)}\n >\n <CommandMenuBody\n placeholder={placeholder}\n emptyText={emptyText}\n emptyState={emptyState}\n options={options}\n groups={groups}\n onSelect={onSelect}\n showShortcut={showShortcut}\n shortcutText={resolvedShortcut}\n showFooter={showFooter}\n footerHints={footerHints}\n showSettingsButton={showSettingsButton}\n onSettingsClick={onSettingsClick}\n maxHeight={maxHeight}\n filter={filter}\n >\n {children}\n </CommandMenuBody>\n </div>\n );\n}\nCommandMenuPanel.displayName = 'CommandMenu.Panel';\n\n// ============================================\n// Exports\n// ============================================\n\nexport {\n CommandMenu,\n CommandMenuFooter,\n CommandMenuGroupHeader,\n CommandMenuItem,\n CommandMenuPanel,\n CommandShortcutBadge,\n defaultFooterHints,\n FooterNavIcon,\n FooterNavText,\n};\n","/**\n * Web Component wrapper for CommandMenu\n * Custom element: <hf-command-menu>\n *\n * @generated by scripts/generate-wc-components.ts\n * DO NOT EDIT MANUALLY\n */\n\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { CommandMenu } from '../components/organisms/menus/CommandMenu';\nimport { parseAttr, parseValue, type PropDefs } from './_shared';\n\n/**\n * Event wrapper that dispatches custom DOM events\n */\nfunction createEventDispatcher(element: HTMLElement) {\n return {\n onOpenChange: (open: boolean) => {\n const CustomEventConstructor =\n element.ownerDocument.defaultView?.CustomEvent ?? CustomEvent;\n element.dispatchEvent(new CustomEventConstructor('open-change', {\n detail: open,\n bubbles: true,\n composed: true\n }));\n },\n onSelect: (value: unknown) => {\n const CustomEventConstructor =\n element.ownerDocument.defaultView?.CustomEvent ?? CustomEvent;\n element.dispatchEvent(new CustomEventConstructor('select', {\n detail: value,\n bubbles: true,\n composed: true\n }));\n },\n onSettingsClick: (value: unknown) => {\n const CustomEventConstructor =\n element.ownerDocument.defaultView?.CustomEvent ?? CustomEvent;\n element.dispatchEvent(new CustomEventConstructor('settings-click', {\n detail: value,\n bubbles: true,\n composed: true\n }));\n }\n };\n}\n\n/**\n * Wrapper component that connects React events to DOM custom events\n */\nfunction CommandMenuWrapper(props: React.ComponentProps<typeof CommandMenu> & { _hostElement?: HTMLElement }) {\n const { _hostElement, ...restProps } = props;\n\n const eventHandlers = React.useMemo(() => {\n if (!_hostElement) return {};\n return createEventDispatcher(_hostElement);\n }, [_hostElement]);\n\n return React.createElement(CommandMenu, { ...restProps, ...eventHandlers });\n}\n\n/**\n * Prop type definitions for attribute parsing\n */\nconst propTypes: PropDefs = {\n open: 'boolean',\n placeholder: 'string',\n emptyText: 'string',\n emptyState: 'json',\n options: 'json',\n groups: 'json',\n showShortcut: 'boolean',\n shortcutText: 'string',\n showFooter: 'boolean',\n footerHints: 'json',\n showSettingsButton: 'boolean',\n className: 'string',\n maxHeight: 'number',\n filter: 'json'\n};\n\nclass CommandMenuWC extends HTMLElement {\n private _root: ReturnType<typeof createRoot> | null = null;\n private _childrenContainer: HTMLDivElement | null = null;\n private _props: Record<string, unknown> = {};\n private _initialized = false;\n\n connectedCallback() {\n setTimeout(() => this._initialize(), 0);\n }\n\n private _initialize() {\n if (this._initialized) return;\n this._initialized = true;\n\n const originalChildren: Node[] = [];\n for (const child of Array.from(this.childNodes)) {\n if (child.nodeType === Node.TEXT_NODE && !child.textContent?.trim()) {\n continue;\n }\n originalChildren.push(child);\n }\n\n const reactContainer = this.ownerDocument.createElement('div');\n reactContainer.style.display = 'contents';\n\n this._childrenContainer = this.ownerDocument.createElement('div');\n this._childrenContainer.style.display = 'contents';\n\n originalChildren.forEach((child) => this._childrenContainer!.appendChild(child));\n\n while (this.firstChild) this.removeChild(this.firstChild);\n this.appendChild(reactContainer);\n\n this._root = createRoot(reactContainer);\n this._render();\n }\n\n disconnectedCallback() {\n this._root?.unmount();\n this._root = null;\n }\n\n attributeChangedCallback(_name: string, _oldValue: string | null, _newValue: string | null) {\n this._render();\n }\n\n static get observedAttributes() {\n return Object.keys(propTypes).map((prop) =>\n prop.replace(/([A-Z])/g, '-$1').toLowerCase(),\n );\n }\n\n _setProp(name: string, value: unknown) {\n const propType = propTypes[name] || 'string';\n this._props[name] = parseValue(value, propType);\n this._render();\n }\n\n _getProp(name: string): unknown {\n if (name in this._props) {\n return this._props[name];\n }\n const attrName = name.replace(/([A-Z])/g, '-$1').toLowerCase();\n const propType = propTypes[name] || 'string';\n return parseAttr(this.getAttribute(attrName), propType);\n }\n\n private _render() {\n if (!this._root || !this._childrenContainer) return;\n\n const props: Record<string, unknown> = {};\n for (const [propName, propType] of Object.entries(propTypes)) {\n if (propName in this._props) {\n props[propName] = this._props[propName];\n } else {\n const attrName = propName.replace(/([A-Z])/g, '-$1').toLowerCase();\n props[propName] = parseAttr(this.getAttribute(attrName), propType);\n }\n }\n\n const element = React.createElement(\n CommandMenuWrapper,\n { ...props, _hostElement: this },\n React.createElement('span', {\n ref: (el: HTMLSpanElement | null) => {\n if (el && this._childrenContainer) {\n el.replaceWith(this._childrenContainer);\n }\n },\n style: { display: 'contents' },\n }),\n );\n\n this._root.render(element);\n }\n}\n\nfor (const propName of Object.keys(propTypes)) {\n Object.defineProperty(CommandMenuWC.prototype, propName, {\n get() {\n return this._getProp(propName);\n },\n set(value: unknown) {\n this._setProp(propName, value);\n },\n enumerable: true,\n configurable: true,\n });\n}\n\nif (typeof customElements !== 'undefined' && !customElements.get('hf-command-menu')) {\n customElements.define('hf-command-menu', CommandMenuWC);\n}\n\nexport { CommandMenuWC };\nexport default CommandMenuWC;\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hf-command-menu.js","names":[],"sources":["../../../../../../../../../../../Users/akarim/Documents/test/humain_foundation_ui/node_modules/.bun/lucide-react@1.27.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/corner-down-left.mjs","../../src/components/organisms/menus/CommandMenu/CommandMenu.tsx","../../src/wc/hf-command-menu.ts"],"sourcesContent":["/**\n * @license lucide-react v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M20 4v7a4 4 0 0 1-4 4H4\", key: \"6o5b7l\" }],\n [\"path\", { d: \"m9 10-5 5 5 5\", key: \"1kshq7\" }]\n];\nconst CornerDownLeft = createLucideIcon(\"corner-down-left\", __iconNode);\n\nexport { __iconNode, CornerDownLeft as default };\n//# sourceMappingURL=corner-down-left.mjs.map\n","'use client';\n\nimport {\n ArrowDown,\n ArrowUp,\n CornerDownLeft,\n Search,\n Settings,\n} from 'lucide-react';\nimport * as React from 'react';\nimport { Button, ClearButton } from '@/components/atoms/buttons/Button';\nimport { Avatar } from '@/components/molecules/data/Avatar';\nimport { Kbd } from '@/components/molecules/data/Kbd';\nimport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n} from '@/components/ui/command';\nimport { cn } from '@/lib/utils';\n\nconst DEFAULT_COMMAND_MENU_MAX_HEIGHT = 336;\nconst DEFAULT_COMMAND_MENU_PLACEHOLDER = 'Type a command or search...';\nconst COMMAND_MENU_SHELL_CLASS_NAME =\n 'w-full max-w-[508px] overflow-hidden rounded-xl border border-input bg-background shadow-lg';\n\nfunction getCommandMenuMaxHeight(maxHeight: number): number {\n return Number.isFinite(maxHeight) && maxHeight >= 0\n ? maxHeight\n : DEFAULT_COMMAND_MENU_MAX_HEIGHT;\n}\n\n// ============================================\n// Types\n// ============================================\n\nexport interface CommandMenuOption {\n /** Unique identifier for the option */\n id: string;\n /** Display label for the option */\n label: string;\n /** Optional subtitle (e.g., @username, email) */\n subtitle?: string;\n /** Optional icon to display (mutually exclusive with avatar) */\n icon?: React.ReactNode;\n /** Optional avatar configuration */\n avatar?: {\n src?: string;\n fallback?: string;\n };\n /** Whether the option is disabled */\n disabled?: boolean;\n /** Keyboard shortcut to display */\n shortcut?: string;\n}\n\nexport interface CommandMenuGroup {\n /** Unique identifier for the group */\n id: string;\n /** Group label/heading */\n label: string;\n /** Options in this group */\n options: CommandMenuOption[];\n}\n\nexport interface CommandMenuFooterHint {\n /** Icon or keyboard key indicator */\n keys: React.ReactNode;\n /** Text describing the action */\n label: string;\n}\n\nexport interface CommandMenuProps {\n /** Whether the command menu is open */\n open?: boolean;\n /** Callback when open state changes */\n onOpenChange?: (open: boolean) => void;\n /** Placeholder text for the search input */\n placeholder?: string;\n /** Text to show when no results found */\n emptyText?: string;\n /** Empty state content (replaces emptyText when provided) */\n emptyState?: React.ReactNode;\n /** Flat list of options */\n options?: CommandMenuOption[];\n /** Grouped options */\n groups?: CommandMenuGroup[];\n /** Callback when an option is selected */\n onSelect?: (id: string, option: CommandMenuOption) => void;\n /** Whether to show keyboard shortcut badge in input */\n showShortcut?: boolean;\n /** Keyboard shortcut text to display (auto-detects platform when omitted) */\n shortcutText?: string;\n /** Whether to show the footer with navigation hints */\n showFooter?: boolean;\n /** Custom footer hints */\n footerHints?: CommandMenuFooterHint[];\n /** Whether to show settings button in footer */\n showSettingsButton?: boolean;\n /** Callback when settings button is clicked */\n onSettingsClick?: () => void;\n /** Additional class name for the dialog */\n className?: string;\n /** Maximum height of the list */\n maxHeight?: number;\n /** Custom filter function */\n filter?: (value: string, search: string) => number;\n /** Children for custom content */\n children?: React.ReactNode;\n}\n\n// ============================================\n// Platform detection\n// ============================================\n\nfunction usePlatformShortcut() {\n const [shortcut, setShortcut] = React.useState('\\u2318/');\n React.useEffect(() => {\n if (!/Mac|iPhone|iPad/i.test(navigator.userAgent)) {\n setShortcut('Ctrl /');\n }\n }, []);\n return shortcut;\n}\n\n// ============================================\n// Keyboard Shortcut Badge (uses Kbd wrapper)\n// ============================================\n\nfunction CommandShortcutBadge({\n children,\n className,\n}: {\n children: React.ReactNode;\n className?: string;\n}) {\n return (\n <Kbd variant=\"solid\" size=\"sm\" className={cn('shadow-xs', className)}>\n {children}\n </Kbd>\n );\n}\nCommandShortcutBadge.displayName = 'CommandMenu.ShortcutBadge';\n\n// ============================================\n// Footer Navigation Icon (uses Kbd wrapper)\n// ============================================\n\nfunction FooterNavIcon({\n children,\n className,\n}: {\n children: React.ReactNode;\n className?: string;\n}) {\n return (\n <Kbd variant=\"footer\" size=\"sm\" className={cn('p-1.5', className)}>\n {children}\n </Kbd>\n );\n}\nFooterNavIcon.displayName = 'CommandMenu.FooterNavIcon';\n\nfunction FooterNavText({\n children,\n className,\n}: {\n children: React.ReactNode;\n className?: string;\n}) {\n return (\n <span\n className={cn(\n 'text-sm font-semibold text-secondary-foreground',\n className,\n )}\n >\n {children}\n </span>\n );\n}\nFooterNavText.displayName = 'CommandMenu.FooterNavText';\n\n// ============================================\n// Default Footer Hints\n// ============================================\n\nconst defaultFooterHints: CommandMenuFooterHint[] = [\n {\n keys: (\n <div className=\"flex items-center gap-1\">\n <FooterNavIcon>\n <ArrowUp className=\"size-2.5 text-secondary-foreground\" />\n </FooterNavIcon>\n <FooterNavIcon>\n <ArrowDown className=\"size-2.5 text-secondary-foreground\" />\n </FooterNavIcon>\n </div>\n ),\n label: 'to navigate',\n },\n {\n keys: (\n <FooterNavIcon>\n <CornerDownLeft className=\"size-2.5 text-secondary-foreground\" />\n </FooterNavIcon>\n ),\n label: 'to select',\n },\n {\n keys: (\n <FooterNavIcon className=\"px-1.5 py-1\">\n <span className=\"text-xs font-semibold text-secondary-foreground\">\n esc\n </span>\n </FooterNavIcon>\n ),\n label: 'to close',\n },\n];\n\n// ============================================\n// Command Menu Footer\n// ============================================\n\nexport interface CommandMenuFooterProps {\n hints?: CommandMenuFooterHint[];\n showSettingsButton?: boolean;\n onSettingsClick?: () => void;\n className?: string;\n}\n\nfunction CommandMenuFooter({\n hints = defaultFooterHints,\n showSettingsButton = false,\n onSettingsClick,\n className,\n}: CommandMenuFooterProps) {\n return (\n <div\n data-slot=\"command-menu-footer\"\n className={cn(\n 'flex items-center gap-3 border-t border-border bg-card/80 py-2 pe-2 ps-[18px] supports-backdrop-filter:backdrop-blur',\n className,\n )}\n >\n <div className=\"hidden flex-1 items-start gap-4 [@media(hover:hover)]:flex\">\n {hints.map((hint) => (\n <div key={hint.label} className=\"flex items-center gap-2\">\n {hint.keys}\n <FooterNavText>{hint.label}</FooterNavText>\n </div>\n ))}\n </div>\n {showSettingsButton && (\n <Button\n appearance=\"ghost\"\n variant=\"secondary\"\n size=\"icon\"\n className=\"group ms-auto rounded-full bg-muted\"\n onClick={onSettingsClick}\n aria-label=\"Settings\"\n >\n <Settings className=\"size-5 text-muted-foreground transition-transform duration-300 ease-out group-hover:rotate-90 motion-reduce:transition-none\" />\n </Button>\n )}\n </div>\n );\n}\nCommandMenuFooter.displayName = 'CommandMenu.Footer';\n\n// ============================================\n// Command Menu Item\n// ============================================\n\nexport interface CommandMenuItemProps\n extends Omit<\n React.ComponentProps<typeof CommandItem>,\n 'onSelect' | 'showCheckIndicator' | 'value'\n > {\n option: CommandMenuOption;\n onSelect?: (id: string, option: CommandMenuOption) => void;\n}\n\nfunction CommandMenuItem({\n option,\n onSelect,\n className,\n ...props\n}: CommandMenuItemProps) {\n return (\n <CommandItem\n value={option.id}\n disabled={option.disabled}\n showCheckIndicator={false}\n onSelect={() => onSelect?.(option.id, option)}\n className={cn(\n 'flex cursor-pointer items-center gap-2 transition-colors duration-150 motion-reduce:transition-none',\n className,\n )}\n {...props}\n >\n {option.avatar && (\n <Avatar\n src={option.avatar.src}\n fallback={option.avatar.fallback || option.label.charAt(0)}\n size=\"sm\"\n className=\"size-6 shrink-0\"\n />\n )}\n {option.icon && !option.avatar && (\n <span className=\"flex size-4 shrink-0 items-center justify-center text-muted-foreground [&_svg]:size-4\">\n {option.icon}\n </span>\n )}\n <div className=\"flex min-w-0 flex-1 items-center gap-2 text-sm leading-5\">\n <span className=\"min-w-0 truncate font-normal text-foreground\">\n {option.label}\n </span>\n {option.subtitle && (\n <span className=\"min-w-0 truncate font-normal text-muted-foreground\">\n {option.subtitle}\n </span>\n )}\n </div>\n {option.shortcut && (\n <CommandShortcutBadge className=\"transition-colors duration-150 group-data-[selected=true]/command-item:bg-primary/10 group-data-[selected=true]/command-item:text-primary\">\n {option.shortcut}\n </CommandShortcutBadge>\n )}\n </CommandItem>\n );\n}\nCommandMenuItem.displayName = 'CommandMenu.Item';\n\n// ============================================\n// Command Menu Group Header\n// ============================================\n\nfunction CommandMenuGroupHeader({\n children,\n className,\n ...props\n}: React.ComponentProps<'h3'>) {\n return (\n <h3\n data-slot=\"command-menu-group-header\"\n className={cn(\n 'px-2 py-1.5 text-xs font-medium text-muted-foreground',\n className,\n )}\n {...props}\n >\n {children}\n </h3>\n );\n}\nCommandMenuGroupHeader.displayName = 'CommandMenu.GroupHeader';\n\n// ============================================\n// Shared Command Menu Body (internal)\n// ============================================\n\ninterface CommandMenuBodyProps {\n children?: React.ReactNode;\n groups: CommandMenuGroup[];\n options: CommandMenuOption[];\n onSelect?: (id: string, option: CommandMenuOption) => void;\n onClose?: () => void;\n placeholder: string;\n emptyText: string;\n emptyState?: React.ReactNode;\n showShortcut: boolean;\n shortcutText: string;\n showFooter: boolean;\n footerHints?: CommandMenuFooterHint[];\n showSettingsButton: boolean;\n onSettingsClick?: () => void;\n maxHeight: number;\n filter?: (value: string, search: string) => number;\n}\n\ninterface CommandMenuBodyContentProps {\n children?: React.ReactNode;\n groups: CommandMenuGroup[];\n options: CommandMenuOption[];\n optionRenderer: (option: CommandMenuOption) => React.ReactNode;\n}\n\ninterface CommandMenuGroupSectionProps {\n group: CommandMenuGroup;\n optionRenderer: (option: CommandMenuOption) => React.ReactNode;\n}\n\nfunction CommandMenuGroupSection({\n group,\n optionRenderer,\n}: CommandMenuGroupSectionProps) {\n const headingId = React.useId();\n\n return (\n <CommandGroup aria-labelledby={headingId} className=\"px-2 py-1\">\n <CommandMenuGroupHeader id={headingId}>\n {group.label}\n </CommandMenuGroupHeader>\n <div className=\"flex flex-col\">{group.options.map(optionRenderer)}</div>\n </CommandGroup>\n );\n}\nCommandMenuGroupSection.displayName = 'CommandMenu.GroupSection';\n\nfunction CommandMenuBodyContent({\n children,\n groups,\n options,\n optionRenderer,\n}: CommandMenuBodyContentProps) {\n if (children) return children;\n\n if (groups.length > 0) {\n return groups.map((group, index) => (\n <React.Fragment key={group.id}>\n {index > 0 && <CommandSeparator className=\"mx-0\" />}\n <CommandMenuGroupSection\n group={group}\n optionRenderer={optionRenderer}\n />\n </React.Fragment>\n ));\n }\n\n return <div className=\"flex flex-col p-2\">{options.map(optionRenderer)}</div>;\n}\n\nfunction CommandMenuBody({\n children,\n groups,\n options,\n onSelect,\n onClose,\n placeholder,\n emptyText,\n emptyState,\n showShortcut,\n shortcutText,\n showFooter,\n footerHints,\n showSettingsButton,\n onSettingsClick,\n maxHeight,\n filter,\n}: CommandMenuBodyProps) {\n const safeMaxHeight = getCommandMenuMaxHeight(maxHeight);\n const renderOption = (option: CommandMenuOption) => (\n <CommandMenuItem key={option.id} option={option} onSelect={onSelect} />\n );\n\n return (\n <Command\n filter={filter}\n className=\"rounded-none border-0 shadow-none\"\n data-slot=\"command-menu\"\n >\n <search\n aria-label=\"Command menu search\"\n className=\"block border-b border-input bg-background\"\n >\n <CommandInput\n render={({ clearSearch, value, ...inputProps }) => {\n const canClose = typeof onClose === 'function';\n const clearOrClose = () => {\n if (value) {\n clearSearch();\n return;\n }\n onClose?.();\n };\n\n return (\n <div\n data-slot=\"command-menu-input\"\n cmdk-input-wrapper=\"\"\n className=\"flex h-11 items-center gap-2 px-3\"\n >\n <Search\n className=\"size-4 shrink-0 text-muted-foreground opacity-50\"\n aria-hidden=\"true\"\n />\n <input\n {...inputProps}\n value={value}\n placeholder={placeholder}\n aria-label={placeholder}\n className=\"min-w-0 flex-1 bg-transparent text-sm leading-5 text-foreground outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\"\n />\n {showShortcut && (\n <CommandShortcutBadge>{shortcutText}</CommandShortcutBadge>\n )}\n <ClearButton\n size=\"icon-xs\"\n className=\"-me-1 rounded-sm p-0 opacity-50 hover:opacity-80 focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:size-4\"\n disabled={!value && !canClose}\n aria-label={\n value\n ? 'Clear search'\n : canClose\n ? 'Close command menu'\n : 'Clear search'\n }\n onClick={clearOrClose}\n />\n </div>\n );\n }}\n />\n </search>\n\n <CommandList\n style={{ maxHeight: safeMaxHeight }}\n className=\"overflow-y-auto p-0\"\n >\n <CommandEmpty className=\"py-6 text-center text-sm text-muted-foreground animate-in fade-in-0 duration-200 motion-reduce:animate-none\">\n {emptyState || emptyText}\n </CommandEmpty>\n <CommandMenuBodyContent\n groups={groups}\n options={options}\n optionRenderer={renderOption}\n >\n {children}\n </CommandMenuBodyContent>\n </CommandList>\n\n {showFooter && (\n <CommandMenuFooter\n hints={footerHints}\n showSettingsButton={showSettingsButton}\n onSettingsClick={onSettingsClick}\n />\n )}\n </Command>\n );\n}\nCommandMenuBody.displayName = 'CommandMenu.Body';\n\n// ============================================\n// Main Command Menu Component\n// ============================================\n\nfunction CommandMenu({\n open,\n onOpenChange,\n placeholder = DEFAULT_COMMAND_MENU_PLACEHOLDER,\n emptyText = 'No results found.',\n emptyState,\n options = [],\n groups = [],\n onSelect,\n showShortcut = false,\n shortcutText,\n showFooter = false,\n footerHints,\n showSettingsButton = false,\n onSettingsClick,\n className,\n maxHeight = DEFAULT_COMMAND_MENU_MAX_HEIGHT,\n filter,\n children,\n}: CommandMenuProps) {\n const platformShortcut = usePlatformShortcut();\n const resolvedShortcut = shortcutText ?? platformShortcut;\n\n return (\n <CommandDialog\n open={open}\n onOpenChange={onOpenChange}\n className={cn('max-w-[508px] sm:max-w-[508px]', className)}\n >\n <CommandMenuBody\n placeholder={placeholder}\n emptyText={emptyText}\n emptyState={emptyState}\n options={options}\n groups={groups}\n onSelect={onSelect}\n onClose={() => onOpenChange?.(false)}\n showShortcut={showShortcut}\n shortcutText={resolvedShortcut}\n showFooter={showFooter}\n footerHints={footerHints}\n showSettingsButton={showSettingsButton}\n onSettingsClick={onSettingsClick}\n maxHeight={maxHeight}\n filter={filter}\n >\n {children}\n </CommandMenuBody>\n </CommandDialog>\n );\n}\nCommandMenu.displayName = 'CommandMenu';\n\n// ============================================\n// Standalone Command Menu (non-dialog version)\n// ============================================\n\nexport interface CommandMenuPanelProps\n extends Omit<CommandMenuProps, 'open' | 'onOpenChange'> {\n /** Additional class name */\n className?: string;\n}\n\nfunction CommandMenuPanel({\n placeholder = DEFAULT_COMMAND_MENU_PLACEHOLDER,\n emptyText = 'No results found.',\n emptyState,\n options = [],\n groups = [],\n onSelect,\n showShortcut = false,\n shortcutText,\n showFooter = false,\n footerHints,\n showSettingsButton = false,\n onSettingsClick,\n className,\n maxHeight = DEFAULT_COMMAND_MENU_MAX_HEIGHT,\n filter,\n children,\n}: CommandMenuPanelProps) {\n const platformShortcut = usePlatformShortcut();\n const resolvedShortcut = shortcutText ?? platformShortcut;\n\n return (\n <div\n data-slot=\"command-menu-panel\"\n className={cn(COMMAND_MENU_SHELL_CLASS_NAME, className)}\n >\n <CommandMenuBody\n placeholder={placeholder}\n emptyText={emptyText}\n emptyState={emptyState}\n options={options}\n groups={groups}\n onSelect={onSelect}\n showShortcut={showShortcut}\n shortcutText={resolvedShortcut}\n showFooter={showFooter}\n footerHints={footerHints}\n showSettingsButton={showSettingsButton}\n onSettingsClick={onSettingsClick}\n maxHeight={maxHeight}\n filter={filter}\n >\n {children}\n </CommandMenuBody>\n </div>\n );\n}\nCommandMenuPanel.displayName = 'CommandMenu.Panel';\n\n// ============================================\n// Exports\n// ============================================\n\nexport {\n CommandMenu,\n CommandMenuFooter,\n CommandMenuGroupHeader,\n CommandMenuItem,\n CommandMenuPanel,\n CommandShortcutBadge,\n defaultFooterHints,\n FooterNavIcon,\n FooterNavText,\n};\n","/**\n * Web Component wrapper for CommandMenu\n * Custom element: <hf-command-menu>\n *\n * @generated by scripts/generate-wc-components.ts\n * DO NOT EDIT MANUALLY\n */\n\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { CommandMenu } from '../components/organisms/menus/CommandMenu';\nimport { parseAttr, parseValue, type PropDefs } from './_shared';\n\n/**\n * Event wrapper that dispatches custom DOM events\n */\nfunction createEventDispatcher(element: HTMLElement) {\n return {\n onOpenChange: (open: boolean) => {\n const CustomEventConstructor =\n element.ownerDocument.defaultView?.CustomEvent ?? CustomEvent;\n element.dispatchEvent(new CustomEventConstructor('open-change', {\n detail: open,\n bubbles: true,\n composed: true\n }));\n },\n onSelect: (value: unknown) => {\n const CustomEventConstructor =\n element.ownerDocument.defaultView?.CustomEvent ?? CustomEvent;\n element.dispatchEvent(new CustomEventConstructor('select', {\n detail: value,\n bubbles: true,\n composed: true\n }));\n },\n onSettingsClick: (value: unknown) => {\n const CustomEventConstructor =\n element.ownerDocument.defaultView?.CustomEvent ?? CustomEvent;\n element.dispatchEvent(new CustomEventConstructor('settings-click', {\n detail: value,\n bubbles: true,\n composed: true\n }));\n }\n };\n}\n\n/**\n * Wrapper component that connects React events to DOM custom events\n */\nfunction CommandMenuWrapper(props: React.ComponentProps<typeof CommandMenu> & { _hostElement?: HTMLElement }) {\n const { _hostElement, ...restProps } = props;\n\n const eventHandlers = React.useMemo(() => {\n if (!_hostElement) return {};\n return createEventDispatcher(_hostElement);\n }, [_hostElement]);\n\n return React.createElement(CommandMenu, { ...restProps, ...eventHandlers });\n}\n\n/**\n * Prop type definitions for attribute parsing\n */\nconst propTypes: PropDefs = {\n open: 'boolean',\n placeholder: 'string',\n emptyText: 'string',\n emptyState: 'json',\n options: 'json',\n groups: 'json',\n showShortcut: 'boolean',\n shortcutText: 'string',\n showFooter: 'boolean',\n footerHints: 'json',\n showSettingsButton: 'boolean',\n className: 'string',\n maxHeight: 'number',\n filter: 'json'\n};\n\nclass CommandMenuWC extends HTMLElement {\n private _root: ReturnType<typeof createRoot> | null = null;\n private _childrenContainer: HTMLDivElement | null = null;\n private _props: Record<string, unknown> = {};\n private _initialized = false;\n\n connectedCallback() {\n setTimeout(() => this._initialize(), 0);\n }\n\n private _initialize() {\n if (this._initialized) return;\n this._initialized = true;\n\n const originalChildren: Node[] = [];\n for (const child of Array.from(this.childNodes)) {\n if (child.nodeType === Node.TEXT_NODE && !child.textContent?.trim()) {\n continue;\n }\n originalChildren.push(child);\n }\n\n const reactContainer = this.ownerDocument.createElement('div');\n reactContainer.style.display = 'contents';\n\n this._childrenContainer = this.ownerDocument.createElement('div');\n this._childrenContainer.style.display = 'contents';\n\n originalChildren.forEach((child) => this._childrenContainer!.appendChild(child));\n\n while (this.firstChild) this.removeChild(this.firstChild);\n this.appendChild(reactContainer);\n\n this._root = createRoot(reactContainer);\n this._render();\n }\n\n disconnectedCallback() {\n this._root?.unmount();\n this._root = null;\n }\n\n attributeChangedCallback(_name: string, _oldValue: string | null, _newValue: string | null) {\n this._render();\n }\n\n static get observedAttributes() {\n return Object.keys(propTypes).map((prop) =>\n prop.replace(/([A-Z])/g, '-$1').toLowerCase(),\n );\n }\n\n _setProp(name: string, value: unknown) {\n const propType = propTypes[name] || 'string';\n this._props[name] = parseValue(value, propType);\n this._render();\n }\n\n _getProp(name: string): unknown {\n if (name in this._props) {\n return this._props[name];\n }\n const attrName = name.replace(/([A-Z])/g, '-$1').toLowerCase();\n const propType = propTypes[name] || 'string';\n return parseAttr(this.getAttribute(attrName), propType);\n }\n\n private _render() {\n if (!this._root || !this._childrenContainer) return;\n\n const props: Record<string, unknown> = {};\n for (const [propName, propType] of Object.entries(propTypes)) {\n if (propName in this._props) {\n props[propName] = this._props[propName];\n } else {\n const attrName = propName.replace(/([A-Z])/g, '-$1').toLowerCase();\n props[propName] = parseAttr(this.getAttribute(attrName), propType);\n }\n }\n\n const element = React.createElement(\n CommandMenuWrapper,\n { ...props, _hostElement: this },\n React.createElement('span', {\n ref: (el: HTMLSpanElement | null) => {\n if (el && this._childrenContainer) {\n el.replaceWith(this._childrenContainer);\n }\n },\n style: { display: 'contents' },\n }),\n );\n\n this._root.render(element);\n }\n}\n\nfor (const propName of Object.keys(propTypes)) {\n Object.defineProperty(CommandMenuWC.prototype, propName, {\n get() {\n return this._getProp(propName);\n },\n set(value: unknown) {\n this._setProp(propName, value);\n },\n enumerable: true,\n configurable: true,\n });\n}\n\nif (typeof customElements !== 'undefined' && !customElements.get('hf-command-menu')) {\n customElements.define('hf-command-menu', CommandMenuWC);\n}\n\nexport { CommandMenuWC };\nexport default CommandMenuWC;\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
package/dist/wc/hf-data-table.js
CHANGED
|
@@ -2907,8 +2907,8 @@ function zi({ children: e, column: n, className: t }) {
|
|
|
2907
2907
|
children: [e, /* @__PURE__ */ (0, R.jsxs)("span", {
|
|
2908
2908
|
className: "relative size-4",
|
|
2909
2909
|
children: [
|
|
2910
|
-
/* @__PURE__ */ (0, R.jsx)(Zn, { className: M("absolute inset-0 size-4 text-
|
|
2911
|
-
/* @__PURE__ */ (0, R.jsx)(Qn, { className: M("absolute inset-0 size-4 text-
|
|
2910
|
+
/* @__PURE__ */ (0, R.jsx)(Zn, { className: M("absolute inset-0 size-4 text-muted-foreground transition-[opacity,transform] duration-200 ease-out motion-reduce:transition-none", o === "asc" ? "opacity-100 translate-y-0" : "opacity-0 -translate-y-1") }),
|
|
2911
|
+
/* @__PURE__ */ (0, R.jsx)(Qn, { className: M("absolute inset-0 size-4 text-muted-foreground transition-[opacity,transform] duration-200 ease-out motion-reduce:transition-none", o === "desc" ? "opacity-100 translate-y-0" : "opacity-0 translate-y-1") }),
|
|
2912
2912
|
/* @__PURE__ */ (0, R.jsx)(go, { className: M("absolute inset-0 size-4 transition-opacity duration-200 ease-out motion-reduce:transition-none", o ? "opacity-0" : "opacity-100 text-muted-foreground") })
|
|
2913
2913
|
]
|
|
2914
2914
|
})]
|
|
@@ -3072,7 +3072,7 @@ function On({ columns: e, data: n, children: t, enableRowSelection: o = !1, enab
|
|
|
3072
3072
|
/* @__PURE__ */ (0, R.jsx)(eo, { className: M("h-4 w-4 flex-shrink-0 transition-transform duration-200 ease-out motion-reduce:transition-none", _.getIsExpanded() && "rotate-90") }),
|
|
3073
3073
|
/* @__PURE__ */ (0, R.jsx)("span", { children: me(E.column.columnDef.cell, E.getContext()) }),
|
|
3074
3074
|
/* @__PURE__ */ (0, R.jsxs)("span", {
|
|
3075
|
-
className: "text-
|
|
3075
|
+
className: "text-secondary-foreground tabular-nums",
|
|
3076
3076
|
children: [
|
|
3077
3077
|
"(",
|
|
3078
3078
|
_.subRows.length,
|