@stackone/malachite 2.28.0 → 2.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/COMPONENTS.md CHANGED
@@ -60,7 +60,7 @@ The catalog of components exported from `@stackone/malachite`. **Reach for one o
60
60
  - **`FooterNav`** — Footer navigation bar of links. _Key props:_ `FooterNavLink[]`.
61
61
  - **`FooterLinks`** — Inline list of footer links (e.g. terms, privacy, support).
62
62
  - **`StepTabs`** — Header for a short, ordered flow — a two-step drawer or wizard panel. Each step is a button carrying `aria-current="step"`, not a tab: the body beneath is the step’s form, so it keeps the normal tab order instead of adopting a `tablist`’s arrow-key contract. States are current / complete (a check, still reachable so the user can go back) / upcoming. For a read-only progress readout use `Stepper`. _Key props:_ `items` (`key`, `label`, `hint`, `disabled`), `activeKey`, `completedKeys`, `onChange`, `aria-label`, `aria-labelledby`, `className`.
63
- - **`CommandPalette`** — Chrome for a command palette, over a headless library that keeps its own elements. `FieldRow`/`Field` take the query input, `List` the scrolling viewport (with a bottom fade for `hasMoreBelow`), `Group` + `Heading` a titled section, and `Row` one result — composing leading/label/crumb/meta/status/hint so names start and statuses end on the same x down the list. `Message` covers empty and loading, `Legend` documents the scope sigils, `Footer` the key hints. Everything the library owns is taken through `asChild`, so its role, id, state and handlers are untouched.
63
+ - **`CommandPalette`** — Chrome for a command palette, over a headless library that keeps its own elements. `FieldRow`/`Field` take the query input, `List` the scrolling viewport (with a bottom fade for `hasMoreBelow`), `Group` + `Heading` a titled section, and `Row` one result — composing leading/label/tags/crumb/meta/status/hint so names start and statuses end on the same x down the list. `Message` covers empty and loading, `Legend` documents the scope sigils, `Footer` the key hints. Everything the library owns is taken through `asChild`, so its role, id, state and handlers are untouched.
64
64
  - **`Keycap`** — One key on a keyboard, drawn as a cap — `esc`, `⌘`, a caret, or a sigil a user types to scope a search. Renders a `<kbd>`, or a button as soon as either `onClick` or `disabled` is passed — `disabled={false}` included, since naming the prop at all is the statement that the cap is a control. `SidePanelNavFooter` is built on it.
65
65
  - **`CollapsibleSection`** — Collapsible sunken-card section (title - subtitle header, disclosure arrow right) for stacked detail sections in side panels and detail pages. A preset over `Accordion`’s `sunken` variant.
66
66
  - **`KeyValueList`** — Bordered card of label/value rows (`KeyValueList.Row`) for entity details: fixed-width secondary labels, free-form values, row dividers.
@@ -1,46 +1,46 @@
1
- import { jsx as r, jsxs as n, Fragment as g } from "react/jsx-runtime";
1
+ import { jsx as t, jsxs as n, Fragment as g } from "react/jsx-runtime";
2
2
  import y, { useState as w, useEffect as N, useRef as k, useCallback as $ } from "react";
3
3
  import { createPortal as R } from "react-dom";
4
4
  import { ShadowRootWrapper as _ } from "../ShadowRootWrapper.js";
5
5
  import { Keycap as z } from "./Keycap.js";
6
6
  import { paintOnChild as i } from "./asChild.js";
7
7
  import { useOverlayBehaviour as F } from "./overlayBehaviour.js";
8
- import { OVERLAY_ELEVATED_ATTR as L, overlayIdentity as h } from "./portalOverlay.js";
9
- const C = "w-full max-w-[640px] overflow-hidden rounded-[var(--malachite-radius-xxl,14px)] border border-solid border-[var(--malachite-card-border)] bg-[var(--malachite-card-background)] outline-none [box-shadow:0_16px_48px_0_rgba(0,0,0,0.18)]", E = ({
8
+ import { OVERLAY_ELEVATED_ATTR as L, overlayIdentity as b } from "./portalOverlay.js";
9
+ const C = "w-full max-w-[640px] overflow-hidden font-body antialiased rounded-[var(--malachite-radius-xxl,14px)] border border-solid border-[var(--malachite-card-border)] bg-[var(--malachite-card-background)] outline-none [box-shadow:0_16px_48px_0_rgba(0,0,0,0.18)]", E = ({
10
10
  children: a,
11
11
  onDismiss: e,
12
- "aria-label": t,
12
+ "aria-label": r,
13
13
  className: l = "",
14
14
  style: s
15
15
  }) => {
16
- const [c, p] = w(!1);
17
- N(() => p(!0), []);
18
- const d = k(null), m = $(() => e == null ? void 0 : e(), [e]), { ref: b, isTopmost: u, zIndex: v, elevated: f } = F({
16
+ const [c, d] = w(!1);
17
+ N(() => d(!0), []);
18
+ const p = k(null), m = $(() => e == null ? void 0 : e(), [e]), { ref: x, isTopmost: u, zIndex: f, elevated: v } = F({
19
19
  open: !0,
20
20
  onClose: m,
21
- hostRef: d,
21
+ hostRef: p,
22
22
  initialFocus: "content"
23
23
  });
24
24
  return c ? R(
25
- /* @__PURE__ */ r(
25
+ /* @__PURE__ */ t(
26
26
  _,
27
27
  {
28
- hostRef: d,
29
- hostStyle: { position: "relative", zIndex: v },
30
- hostProps: f ? { ...h("commandpalette"), [L]: "" } : h("commandpalette"),
31
- children: /* @__PURE__ */ r(
28
+ hostRef: p,
29
+ hostStyle: { position: "relative", zIndex: f },
30
+ hostProps: v ? { ...b("commandpalette"), [L]: "" } : b("commandpalette"),
31
+ children: /* @__PURE__ */ t(
32
32
  "div",
33
33
  {
34
34
  className: "fixed inset-0 z-[1000] flex items-start justify-center pt-[10vh] bg-[var(--malachite-overlay-scrim,rgba(0,0,0,0.5))]",
35
- onClick: e ? (x) => x.target === x.currentTarget && e() : void 0,
35
+ onClick: e ? (h) => h.target === h.currentTarget && e() : void 0,
36
36
  role: "presentation",
37
- children: /* @__PURE__ */ r(
37
+ children: /* @__PURE__ */ t(
38
38
  "div",
39
39
  {
40
- ref: b,
40
+ ref: x,
41
41
  role: "dialog",
42
42
  "aria-modal": u ? "true" : void 0,
43
- "aria-label": t,
43
+ "aria-label": r,
44
44
  tabIndex: -1,
45
45
  className: `${C} ${l}`.trim(),
46
46
  style: s,
@@ -53,27 +53,27 @@ const C = "w-full max-w-[640px] overflow-hidden rounded-[var(--malachite-radius-
53
53
  ),
54
54
  document.body
55
55
  ) : null;
56
- }, I = "w-full border-none bg-transparent px-0 py-[18px] text-[length:var(--malachite-font-size-xlarge,18px)] text-[var(--malachite-text-primary)] outline-none placeholder:text-[var(--malachite-text-placeholder)]", S = ({ children: a, className: e = "", style: t }) => i(a, `${I} ${e}`.trim(), t), T = ({ children: a, scope: e, className: t = "" }) => /* @__PURE__ */ n(
56
+ }, I = "w-full border-none bg-transparent px-0 py-[18px] text-[length:var(--malachite-font-size-xlarge,18px)] text-[var(--malachite-text-primary)] outline-none placeholder:text-[var(--malachite-text-placeholder)]", S = ({ children: a, className: e = "", style: r }) => i(a, `${I} ${e}`.trim(), r), T = ({ children: a, scope: e, className: r = "" }) => /* @__PURE__ */ n(
57
57
  "div",
58
58
  {
59
- className: `flex items-center gap-2 border-0 border-b border-solid border-[var(--malachite-card-border)] px-[18px] ${t}`.trim(),
59
+ className: `flex items-center gap-2 border-0 border-b border-solid border-[var(--malachite-card-border)] px-[18px] ${r}`.trim(),
60
60
  children: [
61
61
  e,
62
62
  a
63
63
  ]
64
64
  }
65
- ), j = ({ children: a }) => /* @__PURE__ */ r("span", { className: "flex-none whitespace-nowrap rounded-lg border border-solid border-[var(--malachite-card-border)] bg-[var(--malachite-card-sunken-background)] px-2 py-[3px] text-[length:var(--malachite-font-size-small,13px)] text-[var(--malachite-text-primary)]", children: a }), P = "max-h-[420px] overflow-auto py-1 bg-[var(--malachite-card-background)]", A = ({ children: a, hasMoreBelow: e = !1, className: t = "", style: l }) => /* @__PURE__ */ n("div", { className: "relative", children: [
66
- i(a, `${P} ${t}`.trim(), l),
67
- e ? /* @__PURE__ */ r(
65
+ ), j = ({ children: a }) => /* @__PURE__ */ t("span", { className: "flex-none whitespace-nowrap rounded-lg border border-solid border-[var(--malachite-card-border)] bg-[var(--malachite-card-sunken-background)] px-2 py-[3px] text-[length:var(--malachite-font-size-small,13px)] text-[var(--malachite-text-primary)]", children: a }), P = "max-h-[420px] overflow-auto py-1 bg-[var(--malachite-card-background)]", A = ({ children: a, hasMoreBelow: e = !1, className: r = "", style: l }) => /* @__PURE__ */ n("div", { className: "relative", children: [
66
+ i(a, `${P} ${r}`.trim(), l),
67
+ e ? /* @__PURE__ */ t(
68
68
  "div",
69
69
  {
70
70
  "aria-hidden": !0,
71
71
  className: "pointer-events-none absolute inset-x-0 bottom-0 h-[28px] bg-[linear-gradient(to_bottom,transparent,var(--malachite-card-background))]"
72
72
  }
73
73
  ) : null
74
- ] }), G = ({ children: a, divider: e = !1, className: t = "", style: l }) => i(
74
+ ] }), G = ({ children: a, divider: e = !1, className: r = "", style: l }) => i(
75
75
  a,
76
- `block pt-1 pb-2 ${e ? "border-0 border-b border-solid border-[var(--malachite-card-border)]" : ""} ${t}`.trim(),
76
+ `block pt-1 pb-2 ${e ? "border-0 border-b border-solid border-[var(--malachite-card-border)]" : ""} ${r}`.trim(),
77
77
  l
78
78
  ), M = ({
79
79
  children: a,
@@ -81,54 +81,56 @@ const C = "w-full max-w-[640px] overflow-hidden rounded-[var(--malachite-radius-
81
81
  }) => /* @__PURE__ */ n("div", { className: "mb-1 flex items-center gap-2 px-4 text-[length:var(--malachite-font-size-xsmall,11px)] font-semibold uppercase tracking-[0.06em] text-[var(--malachite-text-secondary)]", children: [
82
82
  a,
83
83
  e
84
- ] }), O = "group mx-2 flex cursor-pointer items-center gap-2 rounded-[var(--malachite-radius-xl,12px)] px-3 py-[10px] text-[length:var(--malachite-font-size-15,15px)] text-[var(--malachite-text-primary)] transition-colors hover:bg-[var(--malachite-card-sunken-background)] data-[selected=true]:bg-[var(--malachite-card-sunken-background)]", V = ({
84
+ ] }), O = "group mx-2 flex cursor-pointer items-center gap-2 rounded-[var(--malachite-radius-xl,12px)] px-3 py-[10px] text-[length:var(--malachite-font-size-medium,14px)] text-[var(--malachite-text-primary)] transition-colors hover:bg-[var(--malachite-card-sunken-background)] data-[selected=true]:bg-[var(--malachite-card-sunken-background)]", V = ({
85
85
  children: a,
86
86
  selected: e = !1,
87
- leading: t,
87
+ leading: r,
88
88
  label: l,
89
- crumb: s,
90
- meta: c,
89
+ tags: s,
90
+ crumb: c,
91
+ meta: d,
91
92
  status: p,
92
- hint: d,
93
- className: m = ""
93
+ hint: m,
94
+ className: x = ""
94
95
  }) => i(
95
96
  a,
96
- `${O} ${e ? "bg-[var(--malachite-card-sunken-background)]" : ""} ${m}`.trim(),
97
+ `${O} ${e ? "bg-[var(--malachite-card-sunken-background)]" : ""} ${x}`.trim(),
97
98
  void 0,
98
99
  /* @__PURE__ */ n(g, { children: [
99
- t,
100
+ r,
100
101
  /* @__PURE__ */ n("span", { className: "flex min-w-0 flex-1 items-baseline gap-2", children: [
101
- l ? /* @__PURE__ */ r("span", { className: "min-w-0 flex-[0_1_auto] overflow-hidden text-ellipsis whitespace-nowrap", children: l }) : null,
102
- s ? /* @__PURE__ */ r("span", { className: "flex-none whitespace-nowrap", children: s }) : null,
103
- c ? /* @__PURE__ */ r("span", { className: "flex-none", children: c }) : null
102
+ l ? /* @__PURE__ */ t("span", { className: "min-w-0 flex-[0_1_auto] overflow-hidden text-ellipsis whitespace-nowrap", children: l }) : null,
103
+ s ? /* @__PURE__ */ t("span", { className: "flex flex-none items-center gap-1 self-center", children: s }) : null,
104
+ c ? /* @__PURE__ */ t("span", { className: "flex-none whitespace-nowrap", children: c }) : null,
105
+ d ? /* @__PURE__ */ t("span", { className: "flex-none", children: d }) : null
104
106
  ] }),
105
- /* @__PURE__ */ r("span", { className: "flex min-w-[84px] flex-none justify-end", children: p }),
106
- /* @__PURE__ */ r(
107
+ /* @__PURE__ */ t("span", { className: "flex min-w-[84px] flex-none justify-end", children: p }),
108
+ /* @__PURE__ */ t(
107
109
  "span",
108
110
  {
109
111
  className: `flex-none ${e ? "" : "invisible"} group-data-[selected=true]:visible`,
110
- children: d
112
+ children: m
111
113
  }
112
114
  )
113
115
  ] })
114
- ), H = ({ children: a, className: e = "", style: t }) => {
116
+ ), H = ({ children: a, className: e = "", style: r }) => {
115
117
  const l = `block px-4 py-2 text-[length:var(--malachite-font-size-medium,14px)] text-[var(--malachite-text-secondary)] ${e}`.trim();
116
- return y.isValidElement(a) ? i(a, l, t) : /* @__PURE__ */ r("div", { className: l, style: t, children: a });
117
- }, W = ({ items: a }) => /* @__PURE__ */ r("div", { className: "flex flex-wrap gap-[14px] px-4 pt-[10px] pb-1 text-[length:var(--malachite-font-size-small,13px)] text-[var(--malachite-text-secondary)]", children: a.map((e) => /* @__PURE__ */ n("span", { className: "inline-flex items-center gap-[6px]", children: [
118
- /* @__PURE__ */ r(z, { size: "small", children: e.key }),
118
+ return y.isValidElement(a) ? i(a, l, r) : /* @__PURE__ */ t("div", { className: l, style: r, children: a });
119
+ }, W = ({ items: a }) => /* @__PURE__ */ t("div", { className: "flex flex-wrap gap-[14px] px-4 pt-[10px] pb-1 text-[length:var(--malachite-font-size-small,13px)] text-[var(--malachite-text-secondary)]", children: a.map((e) => /* @__PURE__ */ n("span", { className: "inline-flex items-center gap-[6px]", children: [
120
+ /* @__PURE__ */ t(z, { size: "small", children: e.key }),
119
121
  e.label
120
- ] }, e.key)) }), B = ({ children: a, columns: e = 2, className: t = "" }) => /* @__PURE__ */ r(
122
+ ] }, e.key)) }), B = ({ children: a, columns: e = 2, className: r = "" }) => /* @__PURE__ */ t(
121
123
  "div",
122
124
  {
123
- className: `grid gap-1 px-2 ${e === 2 ? "grid-cols-2" : "grid-cols-1"} ${t}`.trim(),
125
+ className: `grid gap-1 px-2 ${e === 2 ? "grid-cols-2" : "grid-cols-1"} ${r}`.trim(),
124
126
  children: a
125
127
  }
126
128
  ), K = ({
127
129
  children: a,
128
130
  trailing: e
129
131
  }) => /* @__PURE__ */ n("div", { className: "flex items-center justify-between gap-3 border-0 border-t border-solid border-[var(--malachite-card-border)] px-4 py-3 text-[length:var(--malachite-font-size-small,13px)] text-[var(--malachite-text-secondary)]", children: [
130
- /* @__PURE__ */ r("span", { className: "flex items-center gap-[10px]", children: a }),
131
- e ? /* @__PURE__ */ r("span", { className: "flex items-center gap-[10px]", children: e }) : null
132
+ /* @__PURE__ */ t("span", { className: "flex items-center gap-[10px]", children: a }),
133
+ e ? /* @__PURE__ */ t("span", { className: "flex items-center gap-[10px]", children: e }) : null
132
134
  ] }), o = E;
133
135
  o.FieldRow = T;
134
136
  o.Field = S;
@@ -1 +1 @@
1
- {"version":3,"file":"CommandPalette.js","sources":["../../src/components/CommandPalette.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { ShadowRootWrapper } from '../ShadowRootWrapper';\nimport Keycap from './Keycap';\nimport { paintOnChild } from './asChild';\nimport { useOverlayBehaviour } from './overlayBehaviour';\nimport { OVERLAY_ELEVATED_ATTR, overlayIdentity } from './portalOverlay';\n\nconst PANEL =\n 'w-full max-w-[640px] overflow-hidden rounded-[var(--malachite-radius-xxl,14px)] border border-solid border-[var(--malachite-card-border)] bg-[var(--malachite-card-background)] outline-none [box-shadow:0_16px_48px_0_rgba(0,0,0,0.18)]';\n\nexport interface CommandPaletteProps {\n children?: React.ReactNode;\n /** Scrim click, and Escape unless a consumer handler already called `preventDefault`. */\n onDismiss?: () => void;\n 'aria-label'?: string;\n className?: string;\n style?: React.CSSProperties;\n}\n\n/** Open while mounted. */\nconst CommandPaletteRoot: React.FC<CommandPaletteProps> = ({\n children,\n onDismiss,\n 'aria-label': ariaLabel,\n className = '',\n style,\n}) => {\n const [isMounted, setIsMounted] = useState(false);\n useEffect(() => setIsMounted(true), []);\n\n const hostRef = useRef<HTMLDivElement | null>(null);\n const dismiss = useCallback(() => onDismiss?.(), [onDismiss]);\n const { ref, isTopmost, zIndex, elevated } = useOverlayBehaviour({\n open: true,\n onClose: dismiss,\n hostRef,\n initialFocus: 'content',\n });\n\n if (!isMounted) {\n return null;\n }\n\n return createPortal(\n <ShadowRootWrapper\n hostRef={hostRef}\n hostStyle={{ position: 'relative', zIndex }}\n hostProps={\n elevated\n ? { ...overlayIdentity('commandpalette'), [OVERLAY_ELEVATED_ATTR]: '' }\n : overlayIdentity('commandpalette')\n }\n >\n <div\n className=\"fixed inset-0 z-[1000] flex items-start justify-center pt-[10vh] bg-[var(--malachite-overlay-scrim,rgba(0,0,0,0.5))]\"\n onClick={\n onDismiss\n ? (event) => event.target === event.currentTarget && onDismiss()\n : undefined\n }\n role=\"presentation\"\n >\n <div\n ref={ref}\n role=\"dialog\"\n aria-modal={isTopmost ? 'true' : undefined}\n aria-label={ariaLabel}\n tabIndex={-1}\n className={`${PANEL} ${className}`.trim()}\n style={style}\n >\n {children}\n </div>\n </div>\n </ShadowRootWrapper>,\n document.body,\n );\n};\n\ninterface AsChildProps {\n children: React.ReactElement;\n className?: string;\n style?: React.CSSProperties;\n}\n\nconst FIELD =\n 'w-full border-none bg-transparent px-0 py-[18px] text-[length:var(--malachite-font-size-xlarge,18px)] text-[var(--malachite-text-primary)] outline-none placeholder:text-[var(--malachite-text-placeholder)]';\n\nconst Field: React.FC<AsChildProps> = ({ children, className = '', style }) =>\n paintOnChild(children, `${FIELD} ${className}`.trim(), style);\n\nexport interface FieldRowProps {\n children?: React.ReactNode;\n scope?: React.ReactNode;\n className?: string;\n}\n\nconst FieldRow: React.FC<FieldRowProps> = ({ children, scope, className = '' }) => (\n <div\n className={`flex items-center gap-2 border-0 border-b border-solid border-[var(--malachite-card-border)] px-[18px] ${className}`.trim()}\n >\n {scope}\n {children}\n </div>\n);\n\nconst ScopeChip: React.FC<{ children?: React.ReactNode }> = ({ children }) => (\n <span className=\"flex-none whitespace-nowrap rounded-lg border border-solid border-[var(--malachite-card-border)] bg-[var(--malachite-card-sunken-background)] px-2 py-[3px] text-[length:var(--malachite-font-size-small,13px)] text-[var(--malachite-text-primary)]\">\n {children}\n </span>\n);\n\nexport interface ListProps extends AsChildProps {\n hasMoreBelow?: boolean;\n}\n\nconst LIST = 'max-h-[420px] overflow-auto py-1 bg-[var(--malachite-card-background)]';\n\nconst List: React.FC<ListProps> = ({ children, hasMoreBelow = false, className = '', style }) => (\n <div className=\"relative\">\n {paintOnChild(children, `${LIST} ${className}`.trim(), style)}\n {hasMoreBelow ? (\n <div\n aria-hidden\n className=\"pointer-events-none absolute inset-x-0 bottom-0 h-[28px] bg-[linear-gradient(to_bottom,transparent,var(--malachite-card-background))]\"\n />\n ) : null}\n </div>\n);\n\nexport interface GroupProps extends AsChildProps {\n divider?: boolean;\n}\n\nconst Group: React.FC<GroupProps> = ({ children, divider = false, className = '', style }) =>\n paintOnChild(\n children,\n `block pt-1 pb-2 ${\n divider ? 'border-0 border-b border-solid border-[var(--malachite-card-border)]' : ''\n } ${className}`.trim(),\n style,\n );\n\nconst Heading: React.FC<{ children?: React.ReactNode; trailing?: React.ReactNode }> = ({\n children,\n trailing,\n}) => (\n <div className=\"mb-1 flex items-center gap-2 px-4 text-[length:var(--malachite-font-size-xsmall,11px)] font-semibold uppercase tracking-[0.06em] text-[var(--malachite-text-secondary)]\">\n {children}\n {trailing}\n </div>\n);\n\nexport interface RowProps {\n /** Its children are replaced, so give the item an explicit `value`/`keywords`. */\n children: React.ReactElement;\n selected?: boolean;\n leading?: React.ReactNode;\n label?: React.ReactNode;\n crumb?: React.ReactNode;\n meta?: React.ReactNode;\n status?: React.ReactNode;\n hint?: React.ReactNode;\n className?: string;\n}\n\n// `data-selected` too: a headless library marks its active item without re-rendering the row.\nconst ROW =\n 'group mx-2 flex cursor-pointer items-center gap-2 rounded-[var(--malachite-radius-xl,12px)] px-3 py-[10px] text-[length:var(--malachite-font-size-15,15px)] text-[var(--malachite-text-primary)] transition-colors hover:bg-[var(--malachite-card-sunken-background)] data-[selected=true]:bg-[var(--malachite-card-sunken-background)]';\n\nconst Row: React.FC<RowProps> = ({\n children,\n selected = false,\n leading,\n label,\n crumb,\n meta,\n status,\n hint,\n className = '',\n}) =>\n paintOnChild(\n children,\n `${ROW} ${selected ? 'bg-[var(--malachite-card-sunken-background)]' : ''} ${className}`.trim(),\n undefined,\n <>\n {leading}\n <span className=\"flex min-w-0 flex-1 items-baseline gap-2\">\n {label ? (\n <span className=\"min-w-0 flex-[0_1_auto] overflow-hidden text-ellipsis whitespace-nowrap\">\n {label}\n </span>\n ) : null}\n {crumb ? <span className=\"flex-none whitespace-nowrap\">{crumb}</span> : null}\n {meta ? <span className=\"flex-none\">{meta}</span> : null}\n </span>\n <span className=\"flex min-w-[84px] flex-none justify-end\">{status}</span>\n <span\n className={`flex-none ${selected ? '' : 'invisible'} group-data-[selected=true]:visible`}\n >\n {hint}\n </span>\n </>,\n );\n\nexport interface MessageProps {\n children: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n}\n\nconst Message: React.FC<MessageProps> = ({ children, className = '', style }) => {\n const classes =\n `block px-4 py-2 text-[length:var(--malachite-font-size-medium,14px)] text-[var(--malachite-text-secondary)] ${className}`.trim();\n return React.isValidElement(children) ? (\n paintOnChild(children, classes, style)\n ) : (\n <div className={classes} style={style}>\n {children}\n </div>\n );\n};\n\nexport interface LegendProps {\n items: { key: string; label: string }[];\n}\n\nconst Legend: React.FC<LegendProps> = ({ items }) => (\n <div className=\"flex flex-wrap gap-[14px] px-4 pt-[10px] pb-1 text-[length:var(--malachite-font-size-small,13px)] text-[var(--malachite-text-secondary)]\">\n {items.map((item) => (\n <span key={item.key} className=\"inline-flex items-center gap-[6px]\">\n <Keycap size=\"small\">{item.key}</Keycap>\n {item.label}\n </span>\n ))}\n </div>\n);\n\nexport interface GridProps {\n children?: React.ReactNode;\n columns?: 1 | 2;\n className?: string;\n}\n\nconst Grid: React.FC<GridProps> = ({ children, columns = 2, className = '' }) => (\n <div\n className={`grid gap-1 px-2 ${columns === 2 ? 'grid-cols-2' : 'grid-cols-1'} ${className}`.trim()}\n >\n {children}\n </div>\n);\n\nconst Footer: React.FC<{ children?: React.ReactNode; trailing?: React.ReactNode }> = ({\n children,\n trailing,\n}) => (\n <div className=\"flex items-center justify-between gap-3 border-0 border-t border-solid border-[var(--malachite-card-border)] px-4 py-3 text-[length:var(--malachite-font-size-small,13px)] text-[var(--malachite-text-secondary)]\">\n <span className=\"flex items-center gap-[10px]\">{children}</span>\n {trailing ? <span className=\"flex items-center gap-[10px]\">{trailing}</span> : null}\n </div>\n);\n\ninterface CommandPaletteComponent extends React.FC<CommandPaletteProps> {\n FieldRow: React.FC<FieldRowProps>;\n Field: React.FC<AsChildProps>;\n ScopeChip: React.FC<{ children?: React.ReactNode }>;\n List: React.FC<ListProps>;\n Group: React.FC<GroupProps>;\n Heading: React.FC<{ children?: React.ReactNode; trailing?: React.ReactNode }>;\n Row: React.FC<RowProps>;\n Grid: React.FC<GridProps>;\n Message: React.FC<MessageProps>;\n Legend: React.FC<LegendProps>;\n Footer: React.FC<{ children?: React.ReactNode; trailing?: React.ReactNode }>;\n}\n\nconst CommandPalette = CommandPaletteRoot as CommandPaletteComponent;\nCommandPalette.FieldRow = FieldRow;\nCommandPalette.Field = Field;\nCommandPalette.ScopeChip = ScopeChip;\nCommandPalette.List = List;\nCommandPalette.Group = Group;\nCommandPalette.Heading = Heading;\nCommandPalette.Row = Row;\nCommandPalette.Grid = Grid;\nCommandPalette.Message = Message;\nCommandPalette.Legend = Legend;\nCommandPalette.Footer = Footer;\n\nexport default CommandPalette;\nexport { CommandPalette };\n"],"names":["PANEL","CommandPaletteRoot","children","onDismiss","ariaLabel","className","style","isMounted","setIsMounted","useState","useEffect","hostRef","useRef","dismiss","useCallback","ref","isTopmost","zIndex","elevated","useOverlayBehaviour","createPortal","jsx","ShadowRootWrapper","overlayIdentity","OVERLAY_ELEVATED_ATTR","event","FIELD","Field","paintOnChild","FieldRow","scope","jsxs","ScopeChip","LIST","List","hasMoreBelow","Group","divider","Heading","trailing","ROW","Row","selected","leading","label","crumb","meta","status","hint","Fragment","Message","classes","React","Legend","items","item","Keycap","Grid","columns","Footer","CommandPalette"],"mappings":";;;;;;;;AAQA,MAAMA,IACF,4OAYEC,IAAoD,CAAC;AAAA,EACvD,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,cAAcC;AAAA,EACd,WAAAC,IAAY;AAAA,EACZ,OAAAC;AACJ,MAAM;AACF,QAAM,CAACC,GAAWC,CAAY,IAAIC,EAAS,EAAK;AAChD,EAAAC,EAAU,MAAMF,EAAa,EAAI,GAAG,CAAA,CAAE;AAEtC,QAAMG,IAAUC,EAA8B,IAAI,GAC5CC,IAAUC,EAAY,MAAMX,KAAA,gBAAAA,KAAe,CAACA,CAAS,CAAC,GACtD,EAAE,KAAAY,GAAK,WAAAC,GAAW,QAAAC,GAAQ,UAAAC,EAAA,IAAaC,EAAoB;AAAA,IAC7D,MAAM;AAAA,IACN,SAASN;AAAA,IACT,SAAAF;AAAA,IACA,cAAc;AAAA,EAAA,CACjB;AAED,SAAKJ,IAIEa;AAAA,IACH,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACG,SAAAX;AAAA,QACA,WAAW,EAAE,UAAU,YAAY,QAAAM,EAAA;AAAA,QACnC,WACIC,IACM,EAAE,GAAGK,EAAgB,gBAAgB,GAAG,CAACC,CAAqB,GAAG,GAAA,IACjED,EAAgB,gBAAgB;AAAA,QAG1C,UAAA,gBAAAF;AAAA,UAAC;AAAA,UAAA;AAAA,YACG,WAAU;AAAA,YACV,SACIlB,IACM,CAACsB,MAAUA,EAAM,WAAWA,EAAM,iBAAiBtB,EAAA,IACnD;AAAA,YAEV,MAAK;AAAA,YAEL,UAAA,gBAAAkB;AAAA,cAAC;AAAA,cAAA;AAAA,gBACG,KAAAN;AAAA,gBACA,MAAK;AAAA,gBACL,cAAYC,IAAY,SAAS;AAAA,gBACjC,cAAYZ;AAAA,gBACZ,UAAU;AAAA,gBACV,WAAW,GAAGJ,CAAK,IAAIK,CAAS,GAAG,KAAA;AAAA,gBACnC,OAAAC;AAAA,gBAEC,UAAAJ;AAAA,cAAA;AAAA,YAAA;AAAA,UACL;AAAA,QAAA;AAAA,MACJ;AAAA,IAAA;AAAA,IAEJ,SAAS;AAAA,EAAA,IAnCF;AAqCf,GAQMwB,IACF,gNAEEC,IAAgC,CAAC,EAAE,UAAAzB,GAAU,WAAAG,IAAY,IAAI,OAAAC,EAAA,MAC/DsB,EAAa1B,GAAU,GAAGwB,CAAK,IAAIrB,CAAS,GAAG,KAAA,GAAQC,CAAK,GAQ1DuB,IAAoC,CAAC,EAAE,UAAA3B,GAAU,OAAA4B,GAAO,WAAAzB,IAAY,SACtE,gBAAA0B;AAAA,EAAC;AAAA,EAAA;AAAA,IACG,WAAW,0GAA0G1B,CAAS,GAAG,KAAA;AAAA,IAEhI,UAAA;AAAA,MAAAyB;AAAA,MACA5B;AAAA,IAAA;AAAA,EAAA;AACL,GAGE8B,IAAsD,CAAC,EAAE,UAAA9B,EAAA,MAC3D,gBAAAmB,EAAC,QAAA,EAAK,WAAU,wPACX,UAAAnB,GACL,GAOE+B,IAAO,0EAEPC,IAA4B,CAAC,EAAE,UAAAhC,GAAU,cAAAiC,IAAe,IAAO,WAAA9B,IAAY,IAAI,OAAAC,EAAA,MACjF,gBAAAyB,EAAC,OAAA,EAAI,WAAU,YACV,UAAA;AAAA,EAAAH,EAAa1B,GAAU,GAAG+B,CAAI,IAAI5B,CAAS,GAAG,KAAA,GAAQC,CAAK;AAAA,EAC3D6B,IACG,gBAAAd;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,eAAW;AAAA,MACX,WAAU;AAAA,IAAA;AAAA,EAAA,IAEd;AAAA,GACR,GAOEe,IAA8B,CAAC,EAAE,UAAAlC,GAAU,SAAAmC,IAAU,IAAO,WAAAhC,IAAY,IAAI,OAAAC,EAAA,MAC9EsB;AAAA,EACI1B;AAAA,EACA,mBACImC,IAAU,yEAAyE,EACvF,IAAIhC,CAAS,GAAG,KAAA;AAAA,EAChBC;AACJ,GAEEgC,IAAgF,CAAC;AAAA,EACnF,UAAApC;AAAA,EACA,UAAAqC;AACJ,MACI,gBAAAR,EAAC,OAAA,EAAI,WAAU,2KACV,UAAA;AAAA,EAAA7B;AAAA,EACAqC;AAAA,GACL,GAiBEC,IACF,2UAEEC,IAA0B,CAAC;AAAA,EAC7B,UAAAvC;AAAA,EACA,UAAAwC,IAAW;AAAA,EACX,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,QAAAC;AAAA,EACA,MAAAC;AAAA,EACA,WAAA3C,IAAY;AAChB,MACIuB;AAAA,EACI1B;AAAA,EACA,GAAGsC,CAAG,IAAIE,IAAW,iDAAiD,EAAE,IAAIrC,CAAS,GAAG,KAAA;AAAA,EACxF;AAAA,EACA,gBAAA0B,EAAAkB,GAAA,EACK,UAAA;AAAA,IAAAN;AAAA,IACD,gBAAAZ,EAAC,QAAA,EAAK,WAAU,4CACX,UAAA;AAAA,MAAAa,IACG,gBAAAvB,EAAC,QAAA,EAAK,WAAU,2EACX,aACL,IACA;AAAA,MACHwB,IAAQ,gBAAAxB,EAAC,QAAA,EAAK,WAAU,+BAA+B,aAAM,IAAU;AAAA,MACvEyB,IAAO,gBAAAzB,EAAC,QAAA,EAAK,WAAU,aAAa,aAAK,IAAU;AAAA,IAAA,GACxD;AAAA,IACA,gBAAAA,EAAC,QAAA,EAAK,WAAU,2CAA2C,UAAA0B,GAAO;AAAA,IAClE,gBAAA1B;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAW,aAAaqB,IAAW,KAAK,WAAW;AAAA,QAElD,UAAAM;AAAA,MAAA;AAAA,IAAA;AAAA,EACL,EAAA,CACJ;AACJ,GAQEE,IAAkC,CAAC,EAAE,UAAAhD,GAAU,WAAAG,IAAY,IAAI,OAAAC,QAAY;AAC7E,QAAM6C,IACF,+GAA+G9C,CAAS,GAAG,KAAA;AAC/H,SAAO+C,EAAM,eAAelD,CAAQ,IAChC0B,EAAa1B,GAAUiD,GAAS7C,CAAK,IAErC,gBAAAe,EAAC,OAAA,EAAI,WAAW8B,GAAS,OAAA7C,GACpB,UAAAJ,GACL;AAER,GAMMmD,IAAgC,CAAC,EAAE,OAAAC,EAAA,wBACpC,OAAA,EAAI,WAAU,4IACV,UAAAA,EAAM,IAAI,CAACC,MACR,gBAAAxB,EAAC,QAAA,EAAoB,WAAU,sCAC3B,UAAA;AAAA,EAAA,gBAAAV,EAACmC,GAAA,EAAO,MAAK,SAAS,UAAAD,EAAK,KAAI;AAAA,EAC9BA,EAAK;AAAA,EAAA,GAFCA,EAAK,GAGhB,CACH,GACL,GASEE,IAA4B,CAAC,EAAE,UAAAvD,GAAU,SAAAwD,IAAU,GAAG,WAAArD,IAAY,SACpE,gBAAAgB;AAAA,EAAC;AAAA,EAAA;AAAA,IACG,WAAW,mBAAmBqC,MAAY,IAAI,gBAAgB,aAAa,IAAIrD,CAAS,GAAG,KAAA;AAAA,IAE1F,UAAAH;AAAA,EAAA;AACL,GAGEyD,IAA+E,CAAC;AAAA,EAClF,UAAAzD;AAAA,EACA,UAAAqC;AACJ,MACI,gBAAAR,EAAC,OAAA,EAAI,WAAU,qNACX,UAAA;AAAA,EAAA,gBAAAV,EAAC,QAAA,EAAK,WAAU,gCAAgC,UAAAnB,EAAA,CAAS;AAAA,EACxDqC,IAAW,gBAAAlB,EAAC,QAAA,EAAK,WAAU,gCAAgC,aAAS,IAAU;AAAA,GACnF,GAiBEuC,IAAiB3D;AACvB2D,EAAe,WAAW/B;AAC1B+B,EAAe,QAAQjC;AACvBiC,EAAe,YAAY5B;AAC3B4B,EAAe,OAAO1B;AACtB0B,EAAe,QAAQxB;AACvBwB,EAAe,UAAUtB;AACzBsB,EAAe,MAAMnB;AACrBmB,EAAe,OAAOH;AACtBG,EAAe,UAAUV;AACzBU,EAAe,SAASP;AACxBO,EAAe,SAASD;"}
1
+ {"version":3,"file":"CommandPalette.js","sources":["../../src/components/CommandPalette.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { ShadowRootWrapper } from '../ShadowRootWrapper';\nimport Keycap from './Keycap';\nimport { paintOnChild } from './asChild';\nimport { useOverlayBehaviour } from './overlayBehaviour';\nimport { OVERLAY_ELEVATED_ATTR, overlayIdentity } from './portalOverlay';\n\nconst PANEL =\n 'w-full max-w-[640px] overflow-hidden font-body antialiased rounded-[var(--malachite-radius-xxl,14px)] border border-solid border-[var(--malachite-card-border)] bg-[var(--malachite-card-background)] outline-none [box-shadow:0_16px_48px_0_rgba(0,0,0,0.18)]';\n\nexport interface CommandPaletteProps {\n children?: React.ReactNode;\n /** Scrim click, and Escape unless a consumer handler already called `preventDefault`. */\n onDismiss?: () => void;\n 'aria-label'?: string;\n className?: string;\n style?: React.CSSProperties;\n}\n\n/** Open while mounted. */\nconst CommandPaletteRoot: React.FC<CommandPaletteProps> = ({\n children,\n onDismiss,\n 'aria-label': ariaLabel,\n className = '',\n style,\n}) => {\n const [isMounted, setIsMounted] = useState(false);\n useEffect(() => setIsMounted(true), []);\n\n const hostRef = useRef<HTMLDivElement | null>(null);\n const dismiss = useCallback(() => onDismiss?.(), [onDismiss]);\n const { ref, isTopmost, zIndex, elevated } = useOverlayBehaviour({\n open: true,\n onClose: dismiss,\n hostRef,\n initialFocus: 'content',\n });\n\n if (!isMounted) {\n return null;\n }\n\n return createPortal(\n <ShadowRootWrapper\n hostRef={hostRef}\n hostStyle={{ position: 'relative', zIndex }}\n hostProps={\n elevated\n ? { ...overlayIdentity('commandpalette'), [OVERLAY_ELEVATED_ATTR]: '' }\n : overlayIdentity('commandpalette')\n }\n >\n <div\n className=\"fixed inset-0 z-[1000] flex items-start justify-center pt-[10vh] bg-[var(--malachite-overlay-scrim,rgba(0,0,0,0.5))]\"\n onClick={\n onDismiss\n ? (event) => event.target === event.currentTarget && onDismiss()\n : undefined\n }\n role=\"presentation\"\n >\n <div\n ref={ref}\n role=\"dialog\"\n aria-modal={isTopmost ? 'true' : undefined}\n aria-label={ariaLabel}\n tabIndex={-1}\n className={`${PANEL} ${className}`.trim()}\n style={style}\n >\n {children}\n </div>\n </div>\n </ShadowRootWrapper>,\n document.body,\n );\n};\n\ninterface AsChildProps {\n children: React.ReactElement;\n className?: string;\n style?: React.CSSProperties;\n}\n\nconst FIELD =\n 'w-full border-none bg-transparent px-0 py-[18px] text-[length:var(--malachite-font-size-xlarge,18px)] text-[var(--malachite-text-primary)] outline-none placeholder:text-[var(--malachite-text-placeholder)]';\n\nconst Field: React.FC<AsChildProps> = ({ children, className = '', style }) =>\n paintOnChild(children, `${FIELD} ${className}`.trim(), style);\n\nexport interface FieldRowProps {\n children?: React.ReactNode;\n scope?: React.ReactNode;\n className?: string;\n}\n\nconst FieldRow: React.FC<FieldRowProps> = ({ children, scope, className = '' }) => (\n <div\n className={`flex items-center gap-2 border-0 border-b border-solid border-[var(--malachite-card-border)] px-[18px] ${className}`.trim()}\n >\n {scope}\n {children}\n </div>\n);\n\nconst ScopeChip: React.FC<{ children?: React.ReactNode }> = ({ children }) => (\n <span className=\"flex-none whitespace-nowrap rounded-lg border border-solid border-[var(--malachite-card-border)] bg-[var(--malachite-card-sunken-background)] px-2 py-[3px] text-[length:var(--malachite-font-size-small,13px)] text-[var(--malachite-text-primary)]\">\n {children}\n </span>\n);\n\nexport interface ListProps extends AsChildProps {\n hasMoreBelow?: boolean;\n}\n\nconst LIST = 'max-h-[420px] overflow-auto py-1 bg-[var(--malachite-card-background)]';\n\nconst List: React.FC<ListProps> = ({ children, hasMoreBelow = false, className = '', style }) => (\n <div className=\"relative\">\n {paintOnChild(children, `${LIST} ${className}`.trim(), style)}\n {hasMoreBelow ? (\n <div\n aria-hidden\n className=\"pointer-events-none absolute inset-x-0 bottom-0 h-[28px] bg-[linear-gradient(to_bottom,transparent,var(--malachite-card-background))]\"\n />\n ) : null}\n </div>\n);\n\nexport interface GroupProps extends AsChildProps {\n divider?: boolean;\n}\n\nconst Group: React.FC<GroupProps> = ({ children, divider = false, className = '', style }) =>\n paintOnChild(\n children,\n `block pt-1 pb-2 ${\n divider ? 'border-0 border-b border-solid border-[var(--malachite-card-border)]' : ''\n } ${className}`.trim(),\n style,\n );\n\nconst Heading: React.FC<{ children?: React.ReactNode; trailing?: React.ReactNode }> = ({\n children,\n trailing,\n}) => (\n <div className=\"mb-1 flex items-center gap-2 px-4 text-[length:var(--malachite-font-size-xsmall,11px)] font-semibold uppercase tracking-[0.06em] text-[var(--malachite-text-secondary)]\">\n {children}\n {trailing}\n </div>\n);\n\nexport interface RowProps {\n /** Its children are replaced, so give the item an explicit `value`/`keywords`. */\n children: React.ReactElement;\n selected?: boolean;\n leading?: React.ReactNode;\n label?: React.ReactNode;\n /** Tags beside the label, kept visible while a long label truncates. */\n tags?: React.ReactNode;\n crumb?: React.ReactNode;\n meta?: React.ReactNode;\n status?: React.ReactNode;\n hint?: React.ReactNode;\n className?: string;\n}\n\n// `data-selected` too: a headless library marks its active item without re-rendering the row.\nconst ROW =\n 'group mx-2 flex cursor-pointer items-center gap-2 rounded-[var(--malachite-radius-xl,12px)] px-3 py-[10px] text-[length:var(--malachite-font-size-medium,14px)] text-[var(--malachite-text-primary)] transition-colors hover:bg-[var(--malachite-card-sunken-background)] data-[selected=true]:bg-[var(--malachite-card-sunken-background)]';\n\nconst Row: React.FC<RowProps> = ({\n children,\n selected = false,\n leading,\n label,\n tags,\n crumb,\n meta,\n status,\n hint,\n className = '',\n}) =>\n paintOnChild(\n children,\n `${ROW} ${selected ? 'bg-[var(--malachite-card-sunken-background)]' : ''} ${className}`.trim(),\n undefined,\n <>\n {leading}\n <span className=\"flex min-w-0 flex-1 items-baseline gap-2\">\n {label ? (\n <span className=\"min-w-0 flex-[0_1_auto] overflow-hidden text-ellipsis whitespace-nowrap\">\n {label}\n </span>\n ) : null}\n {tags ? (\n <span className=\"flex flex-none items-center gap-1 self-center\">{tags}</span>\n ) : null}\n {crumb ? <span className=\"flex-none whitespace-nowrap\">{crumb}</span> : null}\n {meta ? <span className=\"flex-none\">{meta}</span> : null}\n </span>\n <span className=\"flex min-w-[84px] flex-none justify-end\">{status}</span>\n <span\n className={`flex-none ${selected ? '' : 'invisible'} group-data-[selected=true]:visible`}\n >\n {hint}\n </span>\n </>,\n );\n\nexport interface MessageProps {\n children: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n}\n\nconst Message: React.FC<MessageProps> = ({ children, className = '', style }) => {\n const classes =\n `block px-4 py-2 text-[length:var(--malachite-font-size-medium,14px)] text-[var(--malachite-text-secondary)] ${className}`.trim();\n return React.isValidElement(children) ? (\n paintOnChild(children, classes, style)\n ) : (\n <div className={classes} style={style}>\n {children}\n </div>\n );\n};\n\nexport interface LegendProps {\n items: { key: string; label: string }[];\n}\n\nconst Legend: React.FC<LegendProps> = ({ items }) => (\n <div className=\"flex flex-wrap gap-[14px] px-4 pt-[10px] pb-1 text-[length:var(--malachite-font-size-small,13px)] text-[var(--malachite-text-secondary)]\">\n {items.map((item) => (\n <span key={item.key} className=\"inline-flex items-center gap-[6px]\">\n <Keycap size=\"small\">{item.key}</Keycap>\n {item.label}\n </span>\n ))}\n </div>\n);\n\nexport interface GridProps {\n children?: React.ReactNode;\n columns?: 1 | 2;\n className?: string;\n}\n\nconst Grid: React.FC<GridProps> = ({ children, columns = 2, className = '' }) => (\n <div\n className={`grid gap-1 px-2 ${columns === 2 ? 'grid-cols-2' : 'grid-cols-1'} ${className}`.trim()}\n >\n {children}\n </div>\n);\n\nconst Footer: React.FC<{ children?: React.ReactNode; trailing?: React.ReactNode }> = ({\n children,\n trailing,\n}) => (\n <div className=\"flex items-center justify-between gap-3 border-0 border-t border-solid border-[var(--malachite-card-border)] px-4 py-3 text-[length:var(--malachite-font-size-small,13px)] text-[var(--malachite-text-secondary)]\">\n <span className=\"flex items-center gap-[10px]\">{children}</span>\n {trailing ? <span className=\"flex items-center gap-[10px]\">{trailing}</span> : null}\n </div>\n);\n\ninterface CommandPaletteComponent extends React.FC<CommandPaletteProps> {\n FieldRow: React.FC<FieldRowProps>;\n Field: React.FC<AsChildProps>;\n ScopeChip: React.FC<{ children?: React.ReactNode }>;\n List: React.FC<ListProps>;\n Group: React.FC<GroupProps>;\n Heading: React.FC<{ children?: React.ReactNode; trailing?: React.ReactNode }>;\n Row: React.FC<RowProps>;\n Grid: React.FC<GridProps>;\n Message: React.FC<MessageProps>;\n Legend: React.FC<LegendProps>;\n Footer: React.FC<{ children?: React.ReactNode; trailing?: React.ReactNode }>;\n}\n\nconst CommandPalette = CommandPaletteRoot as CommandPaletteComponent;\nCommandPalette.FieldRow = FieldRow;\nCommandPalette.Field = Field;\nCommandPalette.ScopeChip = ScopeChip;\nCommandPalette.List = List;\nCommandPalette.Group = Group;\nCommandPalette.Heading = Heading;\nCommandPalette.Row = Row;\nCommandPalette.Grid = Grid;\nCommandPalette.Message = Message;\nCommandPalette.Legend = Legend;\nCommandPalette.Footer = Footer;\n\nexport default CommandPalette;\nexport { CommandPalette };\n"],"names":["PANEL","CommandPaletteRoot","children","onDismiss","ariaLabel","className","style","isMounted","setIsMounted","useState","useEffect","hostRef","useRef","dismiss","useCallback","ref","isTopmost","zIndex","elevated","useOverlayBehaviour","createPortal","jsx","ShadowRootWrapper","overlayIdentity","OVERLAY_ELEVATED_ATTR","event","FIELD","Field","paintOnChild","FieldRow","scope","jsxs","ScopeChip","LIST","List","hasMoreBelow","Group","divider","Heading","trailing","ROW","Row","selected","leading","label","tags","crumb","meta","status","hint","Fragment","Message","classes","React","Legend","items","item","Keycap","Grid","columns","Footer","CommandPalette"],"mappings":"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"}