@stackone/malachite 2.30.0 → 2.31.1

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.
@@ -1,49 +1,50 @@
1
1
  import { jsx as t, jsxs as n, Fragment as g } from "react/jsx-runtime";
2
- import y, { useState as w, useEffect as N, useRef as k, useCallback as $ } from "react";
3
- import { createPortal as R } from "react-dom";
4
- import { ShadowRootWrapper as _ } from "../ShadowRootWrapper.js";
2
+ import w, { useState as y, useEffect as N, useRef as k, useCallback as $ } from "react";
3
+ import { createPortal as _ } from "react-dom";
4
+ import { ShadowRootWrapper as R } from "../ShadowRootWrapper.js";
5
5
  import { Keycap as z } from "./Keycap.js";
6
- import { paintOnChild as i } from "./asChild.js";
7
- import { useOverlayBehaviour as F } from "./overlayBehaviour.js";
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 = ({
6
+ import F from "./TruncatedTooltip.js";
7
+ import { paintOnChild as c } from "./asChild.js";
8
+ import { useOverlayBehaviour as L } from "./overlayBehaviour.js";
9
+ import { OVERLAY_ELEVATED_ATTR as C, overlayIdentity as f } from "./portalOverlay.js";
10
+ const E = "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)]", T = ({
10
11
  children: a,
11
12
  onDismiss: e,
12
13
  "aria-label": r,
13
14
  className: l = "",
14
- style: s
15
+ style: i
15
16
  }) => {
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({
17
+ const [d, p] = y(!1);
18
+ N(() => p(!0), []);
19
+ const s = k(null), m = $(() => e == null ? void 0 : e(), [e]), { ref: x, isTopmost: h, zIndex: b, elevated: v } = L({
19
20
  open: !0,
20
21
  onClose: m,
21
- hostRef: p,
22
+ hostRef: s,
22
23
  initialFocus: "content"
23
24
  });
24
- return c ? R(
25
+ return d ? _(
25
26
  /* @__PURE__ */ t(
26
- _,
27
+ R,
27
28
  {
28
- hostRef: p,
29
- hostStyle: { position: "relative", zIndex: f },
30
- hostProps: v ? { ...b("commandpalette"), [L]: "" } : b("commandpalette"),
29
+ hostRef: s,
30
+ hostStyle: { position: "relative", zIndex: b },
31
+ hostProps: v ? { ...f("commandpalette"), [C]: "" } : f("commandpalette"),
31
32
  children: /* @__PURE__ */ t(
32
33
  "div",
33
34
  {
34
35
  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 ? (h) => h.target === h.currentTarget && e() : void 0,
36
+ onClick: e ? (u) => u.target === u.currentTarget && e() : void 0,
36
37
  role: "presentation",
37
38
  children: /* @__PURE__ */ t(
38
39
  "div",
39
40
  {
40
41
  ref: x,
41
42
  role: "dialog",
42
- "aria-modal": u ? "true" : void 0,
43
+ "aria-modal": h ? "true" : void 0,
43
44
  "aria-label": r,
44
45
  tabIndex: -1,
45
- className: `${C} ${l}`.trim(),
46
- style: s,
46
+ className: `${E} ${l}`.trim(),
47
+ style: i,
47
48
  children: a
48
49
  }
49
50
  )
@@ -53,7 +54,7 @@ const C = "w-full max-w-[640px] overflow-hidden font-body antialiased rounded-[v
53
54
  ),
54
55
  document.body
55
56
  ) : 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: r }) => i(a, `${I} ${e}`.trim(), r), T = ({ children: a, scope: e, className: r = "" }) => /* @__PURE__ */ n(
57
+ }, 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 }) => c(a, `${I} ${e}`.trim(), r), j = ({ children: a, scope: e, className: r = "" }) => /* @__PURE__ */ n(
57
58
  "div",
58
59
  {
59
60
  className: `flex items-center gap-2 border-0 border-b border-solid border-[var(--malachite-card-border)] px-[18px] ${r}`.trim(),
@@ -62,8 +63,8 @@ const C = "w-full max-w-[640px] overflow-hidden font-body antialiased rounded-[v
62
63
  a
63
64
  ]
64
65
  }
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),
66
+ ), A = ({ 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)]", G = ({ children: a, hasMoreBelow: e = !1, className: r = "", style: l }) => /* @__PURE__ */ n("div", { className: "relative", children: [
67
+ c(a, `${P} ${r}`.trim(), l),
67
68
  e ? /* @__PURE__ */ t(
68
69
  "div",
69
70
  {
@@ -71,78 +72,80 @@ const C = "w-full max-w-[640px] overflow-hidden font-body antialiased rounded-[v
71
72
  className: "pointer-events-none absolute inset-x-0 bottom-0 h-[28px] bg-[linear-gradient(to_bottom,transparent,var(--malachite-card-background))]"
72
73
  }
73
74
  ) : null
74
- ] }), G = ({ children: a, divider: e = !1, className: r = "", style: l }) => i(
75
+ ] }), M = ({ children: a, divider: e = !1, className: r = "", style: l }) => c(
75
76
  a,
76
77
  `block pt-1 pb-2 ${e ? "border-0 border-b border-solid border-[var(--malachite-card-border)]" : ""} ${r}`.trim(),
77
78
  l
78
- ), M = ({
79
+ ), O = ({
79
80
  children: a,
80
81
  trailing: e
81
82
  }) => /* @__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
83
  a,
83
84
  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-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
+ ] }), V = "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)]", H = ({
85
86
  children: a,
86
87
  selected: e = !1,
87
88
  leading: r,
88
89
  label: l,
89
- tags: s,
90
- crumb: c,
91
- meta: d,
92
- status: p,
93
- hint: m,
94
- className: x = ""
95
- }) => i(
90
+ labelTooltip: i,
91
+ tags: d,
92
+ crumb: p,
93
+ meta: s,
94
+ status: m,
95
+ hint: x,
96
+ className: h = ""
97
+ }) => c(
96
98
  a,
97
- `${O} ${e ? "bg-[var(--malachite-card-sunken-background)]" : ""} ${x}`.trim(),
99
+ `${V} ${e ? "bg-[var(--malachite-card-sunken-background)]" : ""} ${h}`.trim(),
98
100
  void 0,
99
101
  /* @__PURE__ */ n(g, { children: [
100
102
  r,
101
103
  /* @__PURE__ */ n("span", { className: "flex min-w-0 flex-1 items-baseline gap-2", children: [
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
+ l && i ? /* @__PURE__ */ t(F, { text: i, triggerAs: "span", describesTrigger: !1, children: l }) : null,
105
+ l && !i ? /* @__PURE__ */ t("span", { className: "min-w-0 flex-[0_1_auto] overflow-hidden text-ellipsis whitespace-nowrap", children: l }) : null,
106
+ d ? /* @__PURE__ */ t("span", { className: "flex flex-none items-center gap-1 self-center", children: d }) : null,
107
+ p ? /* @__PURE__ */ t("span", { className: "flex-none whitespace-nowrap", children: p }) : null,
108
+ s ? /* @__PURE__ */ t("span", { className: "min-w-0 flex-[1_1_0%] overflow-hidden text-ellipsis whitespace-nowrap", children: s }) : null
106
109
  ] }),
107
- /* @__PURE__ */ t("span", { className: "flex min-w-[84px] flex-none justify-end", children: p }),
110
+ /* @__PURE__ */ t("span", { className: "flex min-w-[84px] flex-none justify-end", children: m }),
108
111
  /* @__PURE__ */ t(
109
112
  "span",
110
113
  {
111
114
  className: `flex-none ${e ? "" : "invisible"} group-data-[selected=true]:visible`,
112
- children: m
115
+ children: x
113
116
  }
114
117
  )
115
118
  ] })
116
- ), H = ({ children: a, className: e = "", style: r }) => {
119
+ ), W = ({ children: a, className: e = "", style: r }) => {
117
120
  const l = `block px-4 py-2 text-[length:var(--malachite-font-size-medium,14px)] text-[var(--malachite-text-secondary)] ${e}`.trim();
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: [
121
+ return w.isValidElement(a) ? c(a, l, r) : /* @__PURE__ */ t("div", { className: l, style: r, children: a });
122
+ }, B = ({ 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
123
  /* @__PURE__ */ t(z, { size: "small", children: e.key }),
121
124
  e.label
122
- ] }, e.key)) }), B = ({ children: a, columns: e = 2, className: r = "" }) => /* @__PURE__ */ t(
125
+ ] }, e.key)) }), K = ({ children: a, columns: e = 2, className: r = "" }) => /* @__PURE__ */ t(
123
126
  "div",
124
127
  {
125
128
  className: `grid gap-1 px-2 ${e === 2 ? "grid-cols-2" : "grid-cols-1"} ${r}`.trim(),
126
129
  children: a
127
130
  }
128
- ), K = ({
131
+ ), Y = ({
129
132
  children: a,
130
133
  trailing: e
131
134
  }) => /* @__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: [
132
135
  /* @__PURE__ */ t("span", { className: "flex items-center gap-[10px]", children: a }),
133
136
  e ? /* @__PURE__ */ t("span", { className: "flex items-center gap-[10px]", children: e }) : null
134
- ] }), o = E;
135
- o.FieldRow = T;
137
+ ] }), o = T;
138
+ o.FieldRow = j;
136
139
  o.Field = S;
137
- o.ScopeChip = j;
138
- o.List = A;
139
- o.Group = G;
140
- o.Heading = M;
141
- o.Row = V;
142
- o.Grid = B;
143
- o.Message = H;
144
- o.Legend = W;
145
- o.Footer = K;
140
+ o.ScopeChip = A;
141
+ o.List = G;
142
+ o.Group = M;
143
+ o.Heading = O;
144
+ o.Row = H;
145
+ o.Grid = K;
146
+ o.Message = W;
147
+ o.Legend = B;
148
+ o.Footer = Y;
146
149
  export {
147
150
  o as CommandPalette,
148
151
  o as default
@@ -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 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":";;;;;;;;AAQA,MAAMA,IACF,kQAYEC,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,GAmBEC,IACF,+UAEEC,IAA0B,CAAC;AAAA,EAC7B,UAAAvC;AAAA,EACA,UAAAwC,IAAW;AAAA,EACX,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,QAAAC;AAAA,EACA,MAAAC;AAAA,EACA,WAAA5C,IAAY;AAChB,MACIuB;AAAA,EACI1B;AAAA,EACA,GAAGsC,CAAG,IAAIE,IAAW,iDAAiD,EAAE,IAAIrC,CAAS,GAAG,KAAA;AAAA,EACxF;AAAA,EACA,gBAAA0B,EAAAmB,GAAA,EACK,UAAA;AAAA,IAAAP;AAAA,IACD,gBAAAZ,EAAC,QAAA,EAAK,WAAU,4CACX,UAAA;AAAA,MAAAa,IACG,gBAAAvB,EAAC,QAAA,EAAK,WAAU,2EACX,aACL,IACA;AAAA,MACHwB,IACG,gBAAAxB,EAAC,QAAA,EAAK,WAAU,iDAAiD,aAAK,IACtE;AAAA,MACHyB,IAAQ,gBAAAzB,EAAC,QAAA,EAAK,WAAU,+BAA+B,aAAM,IAAU;AAAA,MACvE0B,IAAO,gBAAA1B,EAAC,QAAA,EAAK,WAAU,aAAa,aAAK,IAAU;AAAA,IAAA,GACxD;AAAA,IACA,gBAAAA,EAAC,QAAA,EAAK,WAAU,2CAA2C,UAAA2B,GAAO;AAAA,IAClE,gBAAA3B;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAW,aAAaqB,IAAW,KAAK,WAAW;AAAA,QAElD,UAAAO;AAAA,MAAA;AAAA,IAAA;AAAA,EACL,EAAA,CACJ;AACJ,GAQEE,IAAkC,CAAC,EAAE,UAAAjD,GAAU,WAAAG,IAAY,IAAI,OAAAC,QAAY;AAC7E,QAAM8C,IACF,+GAA+G/C,CAAS,GAAG,KAAA;AAC/H,SAAOgD,EAAM,eAAenD,CAAQ,IAChC0B,EAAa1B,GAAUkD,GAAS9C,CAAK,IAErC,gBAAAe,EAAC,OAAA,EAAI,WAAW+B,GAAS,OAAA9C,GACpB,UAAAJ,GACL;AAER,GAMMoD,IAAgC,CAAC,EAAE,OAAAC,EAAA,wBACpC,OAAA,EAAI,WAAU,4IACV,UAAAA,EAAM,IAAI,CAACC,MACR,gBAAAzB,EAAC,QAAA,EAAoB,WAAU,sCAC3B,UAAA;AAAA,EAAA,gBAAAV,EAACoC,GAAA,EAAO,MAAK,SAAS,UAAAD,EAAK,KAAI;AAAA,EAC9BA,EAAK;AAAA,EAAA,GAFCA,EAAK,GAGhB,CACH,GACL,GASEE,IAA4B,CAAC,EAAE,UAAAxD,GAAU,SAAAyD,IAAU,GAAG,WAAAtD,IAAY,SACpE,gBAAAgB;AAAA,EAAC;AAAA,EAAA;AAAA,IACG,WAAW,mBAAmBsC,MAAY,IAAI,gBAAgB,aAAa,IAAItD,CAAS,GAAG,KAAA;AAAA,IAE1F,UAAAH;AAAA,EAAA;AACL,GAGE0D,IAA+E,CAAC;AAAA,EAClF,UAAA1D;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,GAiBEwC,IAAiB5D;AACvB4D,EAAe,WAAWhC;AAC1BgC,EAAe,QAAQlC;AACvBkC,EAAe,YAAY7B;AAC3B6B,EAAe,OAAO3B;AACtB2B,EAAe,QAAQzB;AACvByB,EAAe,UAAUvB;AACzBuB,EAAe,MAAMpB;AACrBoB,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 TruncatedTooltip from './TruncatedTooltip';\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 /** The full label as text, shown in a tooltip only while the label is truncated. */\n labelTooltip?: string;\n /** Tags beside the label, kept visible while a long label truncates. */\n tags?: React.ReactNode;\n crumb?: React.ReactNode;\n /** Truncates before the label when the row runs out of room; inline text gets an ellipsis. */\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 labelTooltip,\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 && labelTooltip ? (\n <TruncatedTooltip text={labelTooltip} triggerAs=\"span\" describesTrigger={false}>\n {label}\n </TruncatedTooltip>\n ) : null}\n {label && !labelTooltip ? (\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 {/* Sized from zero, it takes only the room the label leaves, so it truncates first. */}\n {meta ? (\n <span className=\"min-w-0 flex-[1_1_0%] overflow-hidden text-ellipsis whitespace-nowrap\">\n {meta}\n </span>\n ) : 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","labelTooltip","tags","crumb","meta","status","hint","Fragment","TruncatedTooltip","Message","classes","React","Legend","items","item","Keycap","Grid","columns","Footer","CommandPalette"],"mappings":"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"}