@crewlethq/ui 0.15.1 → 0.16.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.
Files changed (111) hide show
  1. package/README.md +32 -6
  2. package/dist/AppShell/AccountRow.d.ts +40 -0
  3. package/dist/AppShell/AppShell.d.ts +1 -0
  4. package/dist/AppShell/index.d.ts +2 -0
  5. package/dist/AppShell/index.js +1 -1
  6. package/dist/{AppShell-6QUD7NWM.css → AppShell-RUNVM4WH.css} +93 -0
  7. package/dist/AuthLayout/AuthLayout.d.ts +35 -0
  8. package/dist/AuthLayout/index.d.ts +3 -0
  9. package/dist/AuthLayout/index.js +8 -0
  10. package/dist/AuthLayout-ODHBUPHQ.css +54 -0
  11. package/dist/Avatar/Avatar.d.ts +22 -2
  12. package/dist/Avatar/index.d.ts +1 -1
  13. package/dist/Avatar/index.js +2 -2
  14. package/dist/{Avatar-I4NFP3WQ.css → Avatar-MBUPR5E5.css} +19 -0
  15. package/dist/AvatarPicker/index.js +4 -4
  16. package/dist/Callout/Callout.d.ts +7 -1
  17. package/dist/Callout/index.js +1 -1
  18. package/dist/{Callout-S7QDWHDL.css → Callout-SXXK4B5R.css} +3 -1
  19. package/dist/CharacterPicker/index.js +2 -2
  20. package/dist/Checkbox/CheckboxGroup.d.ts +30 -0
  21. package/dist/Checkbox/index.d.ts +2 -0
  22. package/dist/Checkbox/index.js +5 -1
  23. package/dist/{Checkbox-UE7TEPAM.css → Checkbox-KT7RS6QQ.css} +16 -0
  24. package/dist/CodeBlock/index.js +4 -3
  25. package/dist/Combobox/index.js +3 -3
  26. package/dist/CommandPalette/index.js +5 -5
  27. package/dist/Composer/index.js +3 -3
  28. package/dist/ConfirmField/ConfirmField.d.ts +43 -0
  29. package/dist/ConfirmField/index.d.ts +2 -0
  30. package/dist/ConfirmField/index.js +7 -0
  31. package/dist/Copyable/CopyButton.d.ts +13 -6
  32. package/dist/Copyable/index.js +3 -2
  33. package/dist/DataTable/index.js +7 -5
  34. package/dist/DataView/index.js +12 -11
  35. package/dist/DateTimePicker/index.js +2 -2
  36. package/dist/DownloadButton/DownloadButton.d.ts +52 -0
  37. package/dist/DownloadButton/index.d.ts +2 -0
  38. package/dist/DownloadButton/index.js +6 -0
  39. package/dist/EntityChip/index.js +3 -3
  40. package/dist/ImageUpload/index.js +3 -3
  41. package/dist/InlineCode/InlineCode.d.ts +8 -1
  42. package/dist/InlineCode/index.js +1 -1
  43. package/dist/{InlineCode-6WSR5COL.css → InlineCode-ASYHLN3E.css} +9 -0
  44. package/dist/Input/index.js +2 -2
  45. package/dist/{Input-RAKNQJCV.css → Input-3KVSNUO5.css} +11 -0
  46. package/dist/ListInput/index.js +3 -3
  47. package/dist/MarkdownEditor/index.js +1 -1
  48. package/dist/Modal/index.js +2 -2
  49. package/dist/ObjectHeader/ObjectHeader.d.ts +138 -0
  50. package/dist/ObjectHeader/index.d.ts +3 -0
  51. package/dist/ObjectHeader/index.js +4 -0
  52. package/dist/ObjectHeader-UNVYM2KD.css +174 -0
  53. package/dist/OrgLabel/index.js +3 -3
  54. package/dist/OrgNode/index.js +4 -4
  55. package/dist/OrgTable/index.js +4 -4
  56. package/dist/QrCode/QrCode.d.ts +58 -0
  57. package/dist/QrCode/index.d.ts +3 -0
  58. package/dist/QrCode/index.js +2 -0
  59. package/dist/QrCode-JWJTWMU5.css +19 -0
  60. package/dist/Switcher/index.js +4 -4
  61. package/dist/Text/Text.d.ts +7 -1
  62. package/dist/Text/index.js +1 -1
  63. package/dist/{Text-XIPYYZX2.css → Text-S3Q4O3IG.css} +11 -0
  64. package/dist/TimeWindowPicker/index.js +4 -4
  65. package/dist/{chunk-FTEJPHBI.js → chunk-4GB57WIT.js} +2 -2
  66. package/dist/{chunk-NN62JQLR.js → chunk-5CLW2CXT.js} +3 -1
  67. package/dist/{chunk-4EOJR52M.js → chunk-5EFRWWGX.js} +4 -4
  68. package/dist/{chunk-22M7OXKW.js → chunk-6DQWF5Y4.js} +1 -1
  69. package/dist/{chunk-QSLIN64M.js → chunk-6NIMZ5XC.js} +1 -1
  70. package/dist/{chunk-YCTMKKRA.js → chunk-75CLJNDQ.js} +12 -2
  71. package/dist/chunk-7QFAORCY.js +37 -0
  72. package/dist/chunk-BJCFNRGH.js +53 -0
  73. package/dist/{chunk-FY2R4U4Q.js → chunk-CGNQPGJL.js} +1 -1
  74. package/dist/{chunk-DDTDN5L2.js → chunk-CKB3OHL3.js} +1 -1
  75. package/dist/chunk-CXBAIVYZ.js +39 -0
  76. package/dist/chunk-DTIW4CHZ.js +37 -0
  77. package/dist/{chunk-YXMCUKFI.js → chunk-DZ2YR6MV.js} +1 -1
  78. package/dist/{chunk-TK6YC5QT.js → chunk-EIOTVNYX.js} +4 -4
  79. package/dist/chunk-F6NZOVWL.js +68 -0
  80. package/dist/{chunk-LCF4WPYS.js → chunk-FA2V2VT6.js} +2 -2
  81. package/dist/{chunk-EFNHOVC2.js → chunk-FAEN3HYI.js} +2 -2
  82. package/dist/{chunk-HI6Q2UXQ.js → chunk-FY4SP3HF.js} +11 -3
  83. package/dist/{chunk-KGTQ5CVD.js → chunk-GDDE4UM7.js} +1 -1
  84. package/dist/chunk-I7WXZOWA.js +90 -0
  85. package/dist/{chunk-23DHIMJA.js → chunk-IKBK4A5O.js} +1 -1
  86. package/dist/{chunk-DY77H372.js → chunk-JF7X673Z.js} +2 -2
  87. package/dist/{chunk-DJMLHCLD.js → chunk-KLESCRTS.js} +1 -1
  88. package/dist/{chunk-YYBD73OI.js → chunk-OFMPIRGD.js} +1 -1
  89. package/dist/{chunk-H3XOMT7W.js → chunk-OYOQU7O5.js} +44 -3
  90. package/dist/{chunk-IYZZL3MZ.js → chunk-PQ63NLFC.js} +3 -3
  91. package/dist/{chunk-5VNUYO76.js → chunk-STJ7QBC3.js} +8 -25
  92. package/dist/{chunk-R6FBDTP3.js → chunk-SVSCLHHI.js} +1 -1
  93. package/dist/{chunk-GARACZAH.js → chunk-T3ZWBZ65.js} +1 -1
  94. package/dist/{chunk-ZPWUVVIB.js → chunk-UAMDRJD6.js} +2 -2
  95. package/dist/{chunk-YACKC3K2.js → chunk-W46LPU4R.js} +8 -8
  96. package/dist/chunk-Y56FM3K4.js +57 -0
  97. package/dist/{chunk-4Y7WKXAW.js → chunk-ZFH7H7GS.js} +1 -1
  98. package/dist/generated/index.d.ts +5 -0
  99. package/dist/generated/index.js +67 -60
  100. package/dist/index.js +67 -60
  101. package/dist/styles.css +425 -8
  102. package/dist/utils/index.d.ts +4 -0
  103. package/dist/utils/index.js +4 -2
  104. package/dist/utils/useClipboard.d.ts +6 -3
  105. package/dist/utils/useDownload.d.ts +63 -0
  106. package/dist/utils/useOutcome.d.ts +44 -0
  107. package/package.json +4 -3
  108. package/dist/{chunk-GUHP5JHC.js → chunk-2UU5IGZI.js} +1 -1
  109. package/dist/{chunk-6AR2T5Y4.js → chunk-CRVETI5L.js} +0 -0
  110. package/dist/{chunk-K4VORB64.js → chunk-DEEVA6TV.js} +1 -1
  111. /package/dist/{chunk-AER7UDD4.js → chunk-U5LQ2AS5.js} +0 -0
@@ -0,0 +1,90 @@
1
+ import { Link } from './chunk-FBSEJO2C.js';
2
+ import { cx } from './chunk-ODEQTPFM.js';
3
+ import './ObjectHeader-UNVYM2KD.css';
4
+ import { ArrowUpRightGlyph } from '@crewlethq/icons/glyphs';
5
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
6
+
7
+ function listOf(names) {
8
+ if (names.length <= 1) return names[0] ?? "";
9
+ return `${names.slice(0, -1).join(", ")} and ${names[names.length - 1]}`;
10
+ }
11
+ function SetByLine({ setBy, fields, turnLabel = "turn", className }) {
12
+ return /* @__PURE__ */ jsxs("span", { className: cx("crewlet-set-by", className), children: [
13
+ fields && fields.length > 1 ? /* @__PURE__ */ jsxs(Fragment, { children: [
14
+ listOf(fields),
15
+ " \xB7 "
16
+ ] }) : null,
17
+ setBy.cleared ? "cleared by " : "set by ",
18
+ setBy.actor,
19
+ setBy.ago ? ` \xB7 ${setBy.ago}` : "",
20
+ setBy.turnHref ? /* @__PURE__ */ jsxs(Fragment, { children: [
21
+ " \xB7 ",
22
+ /* @__PURE__ */ jsxs(Link, { className: "crewlet-set-by__turn", href: setBy.turnHref, size: "inherit", children: [
23
+ turnLabel,
24
+ " ",
25
+ /* @__PURE__ */ jsx(ArrowUpRightGlyph, { size: "xs", "aria-hidden": "true" })
26
+ ] })
27
+ ] }) : null
28
+ ] });
29
+ }
30
+ function FactLine({ facts, className }) {
31
+ const shown = facts.filter((fact) => fact.value !== null && fact.value !== void 0 && fact.value !== "");
32
+ if (shown.length === 0) return null;
33
+ return /* @__PURE__ */ jsx("div", { className: cx("crewlet-fact-line", className), children: shown.map((fact) => /* @__PURE__ */ jsxs(
34
+ "span",
35
+ {
36
+ className: cx(
37
+ "crewlet-fact-line__fact",
38
+ fact.token && "crewlet-fact-line__fact--token",
39
+ fact.set && "crewlet-fact-line__fact--set"
40
+ ),
41
+ children: [
42
+ /* @__PURE__ */ jsx("span", { className: "crewlet-fact-line__label", children: fact.label }),
43
+ /* @__PURE__ */ jsxs("span", { className: "crewlet-fact-line__body", children: [
44
+ /* @__PURE__ */ jsx(
45
+ "span",
46
+ {
47
+ className: cx(
48
+ "crewlet-fact-line__value",
49
+ fact.token ? "crewlet-fact-line__value--token" : !fact.whole && !fact.set && "crewlet-fact-line__value--clamp"
50
+ ),
51
+ children: fact.href ? /* @__PURE__ */ jsx(Link, { href: fact.href, size: "inherit", children: fact.value }) : fact.value
52
+ }
53
+ ),
54
+ fact.note ? /* @__PURE__ */ jsx("span", { className: "crewlet-fact-line__note", children: fact.note }) : null,
55
+ fact.setBy ? /* @__PURE__ */ jsx(SetByLine, { setBy: fact.setBy, className: "crewlet-fact-line__set-by" }) : null
56
+ ] })
57
+ ]
58
+ },
59
+ fact.label
60
+ )) });
61
+ }
62
+ function ObjectHeader({
63
+ kind,
64
+ icon,
65
+ identifier,
66
+ within,
67
+ title,
68
+ status,
69
+ facts,
70
+ actions,
71
+ size = "page",
72
+ className
73
+ }) {
74
+ return /* @__PURE__ */ jsxs("header", { className: cx("crewlet-object-header", `crewlet-object-header--${size}`, className), children: [
75
+ /* @__PURE__ */ jsxs("div", { className: "crewlet-object-header__eyebrow", children: [
76
+ icon ? /* @__PURE__ */ jsx("span", { className: "crewlet-object-header__icon", "aria-hidden": "true", children: icon }) : null,
77
+ /* @__PURE__ */ jsx("span", { children: kind }),
78
+ identifier ? /* @__PURE__ */ jsx("span", { className: "crewlet-object-header__id crewlet-object-header__id--mono", children: identifier }) : null,
79
+ within ? /* @__PURE__ */ jsx("span", { className: "crewlet-object-header__id", children: within }) : null
80
+ ] }),
81
+ /* @__PURE__ */ jsxs("div", { className: "crewlet-object-header__head", children: [
82
+ /* @__PURE__ */ jsx("h2", { className: "crewlet-object-header__title", children: title }),
83
+ status ? /* @__PURE__ */ jsx("div", { className: "crewlet-object-header__status", children: status }) : null,
84
+ actions ? /* @__PURE__ */ jsx("div", { className: "crewlet-object-header__actions", children: actions }) : null
85
+ ] }),
86
+ facts ? /* @__PURE__ */ jsx(FactLine, { facts }) : null
87
+ ] });
88
+ }
89
+
90
+ export { FactLine, ObjectHeader, SetByLine };
@@ -1,5 +1,5 @@
1
1
  import { cx } from './chunk-ODEQTPFM.js';
2
- import './Text-XIPYYZX2.css';
2
+ import './Text-S3Q4O3IG.css';
3
3
  import { jsx } from 'react/jsx-runtime';
4
4
 
5
5
  function Text({
@@ -1,7 +1,7 @@
1
1
  import { Select } from './chunk-FC4YTTFJ.js';
2
- import { Input } from './chunk-FTEJPHBI.js';
3
- import { Button } from './chunk-OG6CL3EB.js';
2
+ import { Input } from './chunk-4GB57WIT.js';
4
3
  import { today, shiftMonth, CalendarGrid, compareDays } from './chunk-GXQ3B46I.js';
4
+ import { Button } from './chunk-OG6CL3EB.js';
5
5
  import { IconButton } from './chunk-4FQT6ZAY.js';
6
6
  import { Popover } from './chunk-BWRGFKJP.js';
7
7
  import { isComposing } from './chunk-R25RGPUB.js';
@@ -1,4 +1,4 @@
1
- import { avatarCorner, Avatar } from './chunk-HI6Q2UXQ.js';
1
+ import { avatarCorner, Avatar } from './chunk-FY4SP3HF.js';
2
2
  import './ImageUpload-NVGMN7DP.css';
3
3
  import { useRef } from 'react';
4
4
  import { CameraGlyph, XGlyph } from '@crewlethq/icons/glyphs';
@@ -1,6 +1,6 @@
1
1
  import { TreeGrid } from './chunk-B2Z2CDM5.js';
2
2
  import { createTreeModel, treeParent } from './chunk-MY374UUD.js';
3
- import { OrgLabel } from './chunk-22M7OXKW.js';
3
+ import { OrgLabel } from './chunk-6DQWF5Y4.js';
4
4
  import { AddPill } from './chunk-TROLVEZY.js';
5
5
  import { IconButton } from './chunk-4FQT6ZAY.js';
6
6
  import { cx } from './chunk-ODEQTPFM.js';
@@ -3,12 +3,52 @@ import { IconButton } from './chunk-4FQT6ZAY.js';
3
3
  import { useModalLayer, focusables } from './chunk-R25RGPUB.js';
4
4
  import { VisuallyHidden } from './chunk-BZFWDIV6.js';
5
5
  import { cx } from './chunk-ODEQTPFM.js';
6
- import './AppShell-6QUD7NWM.css';
6
+ import './AppShell-RUNVM4WH.css';
7
7
  import { createContext, forwardRef, useContext, useId, useState, useRef, useCallback, useEffect, useLayoutEffect } from 'react';
8
8
  import { breakpoint } from '@crewlethq/tokens';
9
- import { ChevronUpGlyph, MenuGlyph } from '@crewlethq/icons/glyphs';
9
+ import { ChevronUpGlyph, ChevronRightGlyph, MenuGlyph } from '@crewlethq/icons/glyphs';
10
10
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
11
11
 
12
+ function AccountRow({
13
+ avatar,
14
+ name,
15
+ detail,
16
+ href,
17
+ current = false,
18
+ title,
19
+ linkSuffix = ", your account",
20
+ actions,
21
+ className
22
+ }) {
23
+ const who = /* @__PURE__ */ jsxs(Fragment, { children: [
24
+ /* @__PURE__ */ jsx("span", { className: "crewlet-account-row__avatar", children: avatar }),
25
+ /* @__PURE__ */ jsxs("span", { className: "crewlet-account-row__text", children: [
26
+ /* @__PURE__ */ jsx("span", { className: "crewlet-account-row__name", children: name }),
27
+ detail ? /* @__PURE__ */ jsxs(Fragment, { children: [
28
+ /* @__PURE__ */ jsx(VisuallyHidden, { children: "," }),
29
+ " ",
30
+ /* @__PURE__ */ jsx("span", { className: "crewlet-account-row__detail", children: detail })
31
+ ] }) : null
32
+ ] })
33
+ ] });
34
+ return /* @__PURE__ */ jsxs("div", { className: cx("crewlet-account-row", className), children: [
35
+ href === void 0 ? /* @__PURE__ */ jsx("span", { className: "crewlet-account-row__who", children: who }) : /* @__PURE__ */ jsxs(
36
+ "a",
37
+ {
38
+ className: "crewlet-account-row__who",
39
+ href,
40
+ title,
41
+ "aria-current": current ? "page" : void 0,
42
+ children: [
43
+ who,
44
+ /* @__PURE__ */ jsx(VisuallyHidden, { children: linkSuffix }),
45
+ /* @__PURE__ */ jsx(ChevronRightGlyph, { size: "xs", className: "crewlet-account-row__go", "aria-hidden": "true" })
46
+ ]
47
+ }
48
+ ),
49
+ actions ? /* @__PURE__ */ jsx("div", { className: "crewlet-account-row__actions", children: actions }) : null
50
+ ] });
51
+ }
12
52
  var NARROW = `(width < ${breakpoint.shell})`;
13
53
  var AppShellContext = createContext(null);
14
54
  function useAppShell() {
@@ -259,5 +299,6 @@ AppShell.Rail = AppShellRail;
259
299
  AppShell.RailRow = AppShellRailRow;
260
300
  AppShell.Topbar = AppShellTopbar;
261
301
  AppShell.Toggle = AppShellToggle;
302
+ AppShell.AccountRow = AccountRow;
262
303
 
263
- export { AppShell, AppShellRail, AppShellRailRow, AppShellToggle, AppShellTopbar, useAppShell };
304
+ export { AccountRow, AppShell, AppShellRail, AppShellRailRow, AppShellToggle, AppShellTopbar, useAppShell };
@@ -1,9 +1,9 @@
1
- import { Modal } from './chunk-K4VORB64.js';
1
+ import { Modal } from './chunk-DEEVA6TV.js';
2
2
  import { useListbox, useHighlightRest } from './chunk-F73MC7EZ.js';
3
3
  import { Kbd } from './chunk-SMBKXWML.js';
4
- import { Input } from './chunk-FTEJPHBI.js';
5
- import { Count } from './chunk-BHHIIK3M.js';
4
+ import { Input } from './chunk-4GB57WIT.js';
6
5
  import { isComposing } from './chunk-R25RGPUB.js';
6
+ import { Count } from './chunk-BHHIIK3M.js';
7
7
  import { VisuallyHidden } from './chunk-BZFWDIV6.js';
8
8
  import { cx } from './chunk-ODEQTPFM.js';
9
9
  import './CommandPalette-HBTNKHZQ.css';
@@ -1,32 +1,15 @@
1
- import { useState, useRef, useEffect, useCallback } from 'react';
1
+ import { useOutcome } from './chunk-DTIW4CHZ.js';
2
+ import { useCallback } from 'react';
2
3
 
3
- // src/utils/useClipboard.ts
4
4
  function useClipboard({ resetMs = 2e3, failedResetMs } = {}) {
5
- const [state, setState] = useState("idle");
6
- const timer = useRef(void 0);
7
- const live = useRef(true);
8
- useEffect(() => {
9
- live.current = true;
10
- return () => {
11
- live.current = false;
12
- clearTimeout(timer.current);
13
- timer.current = void 0;
14
- };
15
- }, []);
5
+ const outcome = useOutcome({ resetMs, failedResetMs });
6
+ const { run } = outcome;
16
7
  const copy = useCallback(
17
- async (text) => {
18
- const ok = await writeClipboard(typeof text === "function" ? text() : text);
19
- if (!live.current) return ok;
20
- setState(ok ? "copied" : "failed");
21
- clearTimeout(timer.current);
22
- timer.current = void 0;
23
- const after = ok ? resetMs : failedResetMs === void 0 ? resetMs : failedResetMs;
24
- if (after !== null) timer.current = setTimeout(() => setState("idle"), after);
25
- return ok;
26
- },
27
- [resetMs, failedResetMs]
8
+ (text) => run(() => writeClipboard(typeof text === "function" ? text() : text)),
9
+ [run]
28
10
  );
29
- return { state, copy };
11
+ const state = outcome.state === "done" ? "copied" : outcome.state;
12
+ return { state, attempt: outcome.attempt, copy };
30
13
  }
31
14
  async function writeClipboard(text) {
32
15
  try {
@@ -1,5 +1,5 @@
1
1
  import { cx } from './chunk-ODEQTPFM.js';
2
- import './Callout-S7QDWHDL.css';
2
+ import './Callout-SXXK4B5R.css';
3
3
  import { CircleAlertGlyph, TriangleAlertGlyph, CircleCheckGlyph, InfoGlyph } from '@crewlethq/icons/glyphs';
4
4
  import { jsxs, jsx } from 'react/jsx-runtime';
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { Kbd } from './chunk-SMBKXWML.js';
2
- import { FormField, Textarea, Input } from './chunk-FTEJPHBI.js';
2
+ import { FormField, Textarea, Input } from './chunk-4GB57WIT.js';
3
3
  import { announce } from './chunk-RSAQOKH3.js';
4
4
  import { IconButton } from './chunk-4FQT6ZAY.js';
5
5
  import { isComposing } from './chunk-R25RGPUB.js';
@@ -1,6 +1,6 @@
1
- import { AVATAR_SIZES, Avatar } from './chunk-HI6Q2UXQ.js';
1
+ import { AVATAR_SIZES, Avatar } from './chunk-FY4SP3HF.js';
2
2
  import { cx } from './chunk-ODEQTPFM.js';
3
- import './Avatar-I4NFP3WQ.css';
3
+ import './Avatar-MBUPR5E5.css';
4
4
  import './AvatarStack-GEJBNV7E.css';
5
5
  import { jsxs, jsx } from 'react/jsx-runtime';
6
6
 
@@ -1,4 +1,4 @@
1
- import { useClipboard } from './chunk-5VNUYO76.js';
1
+ import { useClipboard } from './chunk-STJ7QBC3.js';
2
2
  import { Button } from './chunk-OG6CL3EB.js';
3
3
  import { IconButton } from './chunk-4FQT6ZAY.js';
4
4
  import { VisuallyHidden } from './chunk-BZFWDIV6.js';
@@ -13,8 +13,8 @@ function copyGlyph(state) {
13
13
  if (state === "failed") return /* @__PURE__ */ jsx(CircleAlertGlyph, { size: "sm" });
14
14
  return /* @__PURE__ */ jsx(CopyGlyph, { size: "sm" });
15
15
  }
16
- function CopyStatus({ state, copiedMessage, failedMessage }) {
17
- return /* @__PURE__ */ jsx(VisuallyHidden, { children: /* @__PURE__ */ jsx("span", { role: "status", children: state === "copied" ? copiedMessage : state === "failed" ? failedMessage : "" }) });
16
+ function CopyStatus({ state, copiedMessage, failedMessage, attempt = 0 }) {
17
+ return /* @__PURE__ */ jsx(VisuallyHidden, { children: /* @__PURE__ */ jsx("span", { role: "status", children: /* @__PURE__ */ jsx("span", { children: state === "copied" ? copiedMessage : state === "failed" ? failedMessage : "" }, attempt) }) });
18
18
  }
19
19
  function CopyButton({
20
20
  text,
@@ -27,10 +27,10 @@ function CopyButton({
27
27
  variant = "ghost",
28
28
  title,
29
29
  resetMs,
30
- failedResetMs,
30
+ failedResetMs = null,
31
31
  className
32
32
  }) {
33
- const { state, copy } = useClipboard({ resetMs, failedResetMs });
33
+ const { state, attempt, copy } = useClipboard({ resetMs, failedResetMs });
34
34
  const onClick = useCallback(() => {
35
35
  void copy(text);
36
36
  }, [copy, text]);
@@ -46,7 +46,7 @@ function CopyButton({
46
46
  children: state === "copied" ? copiedLabel : state === "failed" ? failedLabel : label
47
47
  }
48
48
  ),
49
- /* @__PURE__ */ jsx(CopyStatus, { state, copiedMessage, failedMessage })
49
+ /* @__PURE__ */ jsx(CopyStatus, { state, attempt, copiedMessage, failedMessage })
50
50
  ] });
51
51
  }
52
52
  var truncateValue = (text, length, variant) => {
@@ -74,7 +74,7 @@ var Copyable = ({
74
74
  className
75
75
  }) => {
76
76
  const text = value === void 0 || value === null ? "" : String(value);
77
- const { state, copy } = useClipboard({ resetMs, failedResetMs });
77
+ const { state, attempt, copy } = useClipboard({ resetMs, failedResetMs });
78
78
  const onCopy = useCallback(() => {
79
79
  void copy(text);
80
80
  }, [copy, text]);
@@ -107,7 +107,7 @@ var Copyable = ({
107
107
  onClick: onCopy
108
108
  }
109
109
  ),
110
- /* @__PURE__ */ jsx(CopyStatus, { state, copiedMessage, failedMessage })
110
+ /* @__PURE__ */ jsx(CopyStatus, { state, attempt, copiedMessage, failedMessage })
111
111
  ]
112
112
  }
113
113
  );
@@ -0,0 +1,57 @@
1
+ import { cx } from './chunk-ODEQTPFM.js';
2
+ import './QrCode-JWJTWMU5.css';
3
+ import { useMemo } from 'react';
4
+ import { color } from '@crewlethq/tokens';
5
+ import { encode } from 'uqr';
6
+ import { jsxs, jsx } from 'react/jsx-runtime';
7
+
8
+ var QR_QUIET_ZONE = 4;
9
+ var QR_DARK = color.qr.dark;
10
+ var QR_LIGHT = color.qr.light;
11
+ function qrModules(value) {
12
+ try {
13
+ return encode(value, { ecc: "M", border: 0 }).data;
14
+ } catch (error) {
15
+ if (error instanceof RangeError) return null;
16
+ throw error;
17
+ }
18
+ }
19
+ function qrModulePath(modules) {
20
+ let d = "";
21
+ modules.forEach((row, y) => {
22
+ let x = 0;
23
+ while (x < row.length) {
24
+ if (!row[x]) {
25
+ x += 1;
26
+ continue;
27
+ }
28
+ let end = x;
29
+ while (end < row.length && row[end]) end += 1;
30
+ d += `M${x} ${y}h${end - x}v1h-${end - x}z`;
31
+ x = end;
32
+ }
33
+ });
34
+ return d;
35
+ }
36
+ function QrCode({ value, label, className }) {
37
+ const modules = useMemo(() => qrModules(value), [value]);
38
+ if (!modules) return null;
39
+ const span = modules.length + 2 * QR_QUIET_ZONE;
40
+ return /* @__PURE__ */ jsxs(
41
+ "svg",
42
+ {
43
+ className: cx("crewlet-qr-code", className),
44
+ viewBox: `${-QR_QUIET_ZONE} ${-QR_QUIET_ZONE} ${span} ${span}`,
45
+ role: "img",
46
+ "aria-label": label,
47
+ shapeRendering: "crispEdges",
48
+ focusable: "false",
49
+ children: [
50
+ /* @__PURE__ */ jsx("rect", { x: -QR_QUIET_ZONE, y: -QR_QUIET_ZONE, width: span, height: span, fill: QR_LIGHT }),
51
+ /* @__PURE__ */ jsx("path", { d: qrModulePath(modules), fill: QR_DARK })
52
+ ]
53
+ }
54
+ );
55
+ }
56
+
57
+ export { QR_DARK, QR_LIGHT, QR_QUIET_ZONE, QrCode, qrModulePath, qrModules };
@@ -1,5 +1,5 @@
1
1
  import { useListbox } from './chunk-F73MC7EZ.js';
2
- import { Input } from './chunk-FTEJPHBI.js';
2
+ import { Input } from './chunk-4GB57WIT.js';
3
3
  import { cx } from './chunk-ODEQTPFM.js';
4
4
  import './Combobox-4FUVYIE7.css';
5
5
  import { forwardRef, useId, useMemo, useRef, useCallback } from 'react';
@@ -2,6 +2,7 @@ export * from '../Accordion/index.js';
2
2
  export * from '../AddPill/index.js';
3
3
  export * from '../Announcer/index.js';
4
4
  export * from '../AppShell/index.js';
5
+ export * from '../AuthLayout/index.js';
5
6
  export * from '../Avatar/index.js';
6
7
  export * from '../AvatarPicker/index.js';
7
8
  export * from '../BrandLockup/index.js';
@@ -20,6 +21,7 @@ export * from '../CodeBlock/index.js';
20
21
  export * from '../Combobox/index.js';
21
22
  export * from '../CommandPalette/index.js';
22
23
  export * from '../Composer/index.js';
24
+ export * from '../ConfirmField/index.js';
23
25
  export * from '../Container/index.js';
24
26
  export * from '../Copyable/index.js';
25
27
  export * from '../Count/index.js';
@@ -30,6 +32,7 @@ export * from '../DescriptionList/index.js';
30
32
  export * from '../DiffList/index.js';
31
33
  export * from '../Disclosure/index.js';
32
34
  export * from '../Document/index.js';
35
+ export * from '../DownloadButton/index.js';
33
36
  export * from '../EmptyState/index.js';
34
37
  export * from '../EmptyValue/index.js';
35
38
  export * from '../EntityChip/index.js';
@@ -58,6 +61,7 @@ export * from '../Menu/index.js';
58
61
  export * from '../Meter/index.js';
59
62
  export * from '../Modal/index.js';
60
63
  export * from '../NewItemsNotice/index.js';
64
+ export * from '../ObjectHeader/index.js';
61
65
  export * from '../OrgLabel/index.js';
62
66
  export * from '../OrgNode/index.js';
63
67
  export * from '../OrgTable/index.js';
@@ -66,6 +70,7 @@ export * from '../PageHeader/index.js';
66
70
  export * from '../Popover/index.js';
67
71
  export * from '../PricingCard/index.js';
68
72
  export * from '../Prose/index.js';
73
+ export * from '../QrCode/index.js';
69
74
  export * from '../ReadingPane/index.js';
70
75
  export * from '../RelativeTime/index.js';
71
76
  export * from '../SearchTrigger/index.js';
@@ -1,120 +1,127 @@
1
- import '../chunk-6AR2T5Y4.js';
2
- import '../chunk-AER7UDD4.js';
3
- export { Timeline, TimelineItem } from '../chunk-O67VF5MS.js';
4
- export { ToastProvider, Toaster, useToast } from '../chunk-QH3AKP2N.js';
1
+ import '../chunk-CRVETI5L.js';
5
2
  export { TreeCanvas } from '../chunk-2OLCUNG7.js';
6
- export { TagGroup } from '../chunk-E6UWRXNM.js';
7
- export { TagsInput } from '../chunk-JCO3SIST.js';
8
- export { Text } from '../chunk-23DHIMJA.js';
3
+ import '../chunk-U5LQ2AS5.js';
9
4
  export { ThemeGallery } from '../chunk-KLIEPFEZ.js';
10
5
  export { ThemeSwatch } from '../chunk-MNFU2RNT.js';
11
6
  export { DensitySwitcher, ThemeSwitcher } from '../chunk-SBRE7IML.js';
12
7
  export { ThemeToggle } from '../chunk-6TSZCBID.js';
13
8
  export { applyDensity, applyStoredPreferences, applyTheme, resolveTheme, useDensityPreference, useSystemTheme, useThemePreference } from '../chunk-K3OWD7BJ.js';
14
- export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from '../chunk-DY77H372.js';
15
- export { StatGroup } from '../chunk-QVAFL2LE.js';
16
- export { Stepper } from '../chunk-5QWIJSQM.js';
9
+ export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from '../chunk-JF7X673Z.js';
10
+ export { Timeline, TimelineItem } from '../chunk-O67VF5MS.js';
11
+ export { ToastProvider, Toaster, useToast } from '../chunk-QH3AKP2N.js';
17
12
  export { Switch } from '../chunk-A722MUNR.js';
18
- export { Switcher } from '../chunk-LCF4WPYS.js';
13
+ export { Switcher } from '../chunk-FA2V2VT6.js';
19
14
  export { Table } from '../chunk-V2N3BMOT.js';
20
- export { Section } from '../chunk-A2UXBCLO.js';
21
- export { SegmentedMeter, segmentedMeterLabel } from '../chunk-4AK52VHB.js';
15
+ export { TagGroup } from '../chunk-E6UWRXNM.js';
16
+ export { TagsInput } from '../chunk-JCO3SIST.js';
17
+ export { Text } from '../chunk-IKBK4A5O.js';
22
18
  export { Select } from '../chunk-FC4YTTFJ.js';
23
19
  export { matchesShortcut, useShortcut } from '../chunk-2FPENTCF.js';
24
20
  export { NavGroup, NavItem, SidebarNav } from '../chunk-UCCC7YVZ.js';
25
21
  export { Skeleton } from '../chunk-W5J7R5EB.js';
26
22
  export { StatCard } from '../chunk-IKB6HFGK.js';
23
+ export { StatGroup } from '../chunk-QVAFL2LE.js';
24
+ export { Stepper } from '../chunk-5QWIJSQM.js';
25
+ export { Prose } from '../chunk-JCSA3XVH.js';
26
+ export { QR_DARK, QR_LIGHT, QR_QUIET_ZONE, QrCode, qrModulePath, qrModules } from '../chunk-Y56FM3K4.js';
27
+ export { ReadingPane, ReadingPaneByline, ReadingPaneLead, ReadingPaneOutcome, ReadingPaneQuote, ReadingPaneReasoning, ReadingPaneSection, ReadingPaneTitle } from '../chunk-ZAJHGDAW.js';
28
+ export { SearchTrigger } from '../chunk-6DRDCT22.js';
29
+ export { Section } from '../chunk-A2UXBCLO.js';
30
+ export { SegmentedMeter, segmentedMeterLabel } from '../chunk-4AK52VHB.js';
31
+ export { FactLine, ObjectHeader, SetByLine } from '../chunk-I7WXZOWA.js';
32
+ export { OrgNodeDisclosure, OrgNodeLabel, OrgNodeLead } from '../chunk-CGNQPGJL.js';
33
+ export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from '../chunk-OFMPIRGD.js';
34
+ export { TreeGrid } from '../chunk-B2Z2CDM5.js';
35
+ export { SIZE_EPSILON, TYPE_AHEAD_RESET_MS, createTreeModel, isTypeAheadKey, layoutConnectors, layoutForest, placeGroups, treeAllExpandable, treeAncestors, treeCollapseOrAscend, treeExpandOrDescend, treeExpandTo, treeExpandable, treeFirst, treeFirstChild, treeItemAction, treeLast, treeLevel, treeNext, treeParent, treePosInSet, treePrevious, treeSetSize, treeStep, treeTypeAhead, treeVisible, typeAheadBuffer, useLayoutAnchor, useMeasuredSizes, useTreeState } from '../chunk-MY374UUD.js';
36
+ export { OrgLabel } from '../chunk-6DQWF5Y4.js';
27
37
  export { Outline, scrollToHeading, useActiveHeading } from '../chunk-A5YKNRG6.js';
28
38
  export { PricingCard } from '../chunk-UCYIRDND.js';
29
39
  export { Tag } from '../chunk-LOECRMHA.js';
30
40
  export { StatusDot } from '../chunk-WIATRXEJ.js';
31
- export { Prose } from '../chunk-JCSA3XVH.js';
32
- export { ReadingPane, ReadingPaneByline, ReadingPaneLead, ReadingPaneOutcome, ReadingPaneQuote, ReadingPaneReasoning, ReadingPaneSection, ReadingPaneTitle } from '../chunk-ZAJHGDAW.js';
33
- export { SearchTrigger } from '../chunk-6DRDCT22.js';
41
+ export { List, ListItem } from '../chunk-DS2C73RJ.js';
42
+ export { ListInput } from '../chunk-T3ZWBZ65.js';
34
43
  export { MARKDOWN_FORMATS, MarkdownEditor, formatMarkdown, insertMarkdown, markdownWords } from '../chunk-77IEHFY4.js';
35
44
  import '../chunk-VYY56AMX.js';
36
45
  export { DEFAULT_METER_THRESHOLDS, METER_STATES, Meter, meterState, meterStateTone, meterTone, progressTone } from '../chunk-4PZ6FJKW.js';
37
46
  export { NewItemsNotice } from '../chunk-PXU6HOZB.js';
38
- export { OrgNodeDisclosure, OrgNodeLabel, OrgNodeLead } from '../chunk-FY2R4U4Q.js';
39
- export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from '../chunk-YYBD73OI.js';
40
- export { TreeGrid } from '../chunk-B2Z2CDM5.js';
41
- export { SIZE_EPSILON, TYPE_AHEAD_RESET_MS, createTreeModel, isTypeAheadKey, layoutConnectors, layoutForest, placeGroups, treeAllExpandable, treeAncestors, treeCollapseOrAscend, treeExpandOrDescend, treeExpandTo, treeExpandable, treeFirst, treeFirstChild, treeItemAction, treeLast, treeLevel, treeNext, treeParent, treePosInSet, treePrevious, treeSetSize, treeStep, treeTypeAhead, treeVisible, typeAheadBuffer, useLayoutAnchor, useMeasuredSizes, useTreeState } from '../chunk-MY374UUD.js';
42
- export { OrgLabel } from '../chunk-22M7OXKW.js';
47
+ export { InboxGroup, InboxList, InboxMore, InboxRow, InboxToggle } from '../chunk-XYCADWZN.js';
43
48
  export { AutoGrid, Inline, Spacer, Stack } from '../chunk-ZAC7SKUN.js';
44
49
  export { Link } from '../chunk-FBSEJO2C.js';
45
- export { List, ListItem } from '../chunk-DS2C73RJ.js';
46
- export { ListInput } from '../chunk-GARACZAH.js';
50
+ export { Eyebrow } from '../chunk-RK4XPHVG.js';
51
+ export { FactList } from '../chunk-JI5AVQLA.js';
52
+ export { Tooltip } from '../chunk-QWOPX2MN.js';
53
+ export { FILTER_CHIP_ATTRIBUTE, FilterChip, FilterChipGroup } from '../chunk-5YLON2PW.js';
47
54
  export { useFullscreen } from '../chunk-XDTYBF2F.js';
48
55
  export { Highlight, highlightRanges, highlightTerms } from '../chunk-H6VKCIWV.js';
49
56
  import '../chunk-EXHQ2QVW.js';
50
- export { ImageUpload } from '../chunk-DJMLHCLD.js';
51
- export { InboxGroup, InboxList, InboxMore, InboxRow, InboxToggle } from '../chunk-XYCADWZN.js';
52
- export { InlineCode } from '../chunk-NN62JQLR.js';
57
+ export { ImageUpload } from '../chunk-KLESCRTS.js';
58
+ export { DIFF_LIST_LABELS, DiffList } from '../chunk-LFHCXZO5.js';
59
+ export { Disclosure } from '../chunk-S4RCG44T.js';
53
60
  export { Document, DocumentTitle } from '../chunk-WI6K5M5X.js';
61
+ export { DownloadButton } from '../chunk-BJCFNRGH.js';
62
+ export { downloadText, safeFilename, useDownload } from '../chunk-F6NZOVWL.js';
54
63
  export { EmptyState } from '../chunk-RA2ULG6H.js';
55
- export { EntityChip } from '../chunk-DDTDN5L2.js';
64
+ export { EntityChip } from '../chunk-CKB3OHL3.js';
56
65
  export { ErrorBoundary } from '../chunk-XX2VQE55.js';
57
- export { Eyebrow } from '../chunk-RK4XPHVG.js';
58
- export { FactList } from '../chunk-JI5AVQLA.js';
59
- export { Tooltip } from '../chunk-QWOPX2MN.js';
60
- export { FILTER_CHIP_ATTRIBUTE, FilterChip, FilterChipGroup } from '../chunk-5YLON2PW.js';
61
- export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-4EOJR52M.js';
62
- export { PageHeader } from '../chunk-HOXGBLEY.js';
66
+ export { CommandPalette } from '../chunk-PQ63NLFC.js';
67
+ export { Container } from '../chunk-QVE4GJAT.js';
68
+ export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-5EFRWWGX.js';
63
69
  export { RelativeTime, currentNow, formatElapsed, formatExact, formatRelative, formatUntil, toISO, toInstant, useNow } from '../chunk-3CZ7XAVY.js';
70
+ export { PageHeader } from '../chunk-HOXGBLEY.js';
64
71
  export { Toolbar, ToolbarOverflow, ToolbarWide } from '../chunk-PGRPNDWM.js';
65
- export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-TK6YC5QT.js';
72
+ export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-EIOTVNYX.js';
66
73
  export { Menu } from '../chunk-NS7BVLL3.js';
67
74
  export { EMPTY_VALUE, EmptyValue } from '../chunk-EUCC37WY.js';
68
- export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from '../chunk-GUHP5JHC.js';
75
+ export { ConfirmModal, Modal } from '../chunk-DEEVA6TV.js';
76
+ export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from '../chunk-2UU5IGZI.js';
69
77
  export { DescriptionList, DescriptionListItem } from '../chunk-F2XSYBKH.js';
70
- export { DIFF_LIST_LABELS, DiffList } from '../chunk-LFHCXZO5.js';
71
- export { Disclosure } from '../chunk-S4RCG44T.js';
72
- export { Checkbox } from '../chunk-YCTMKKRA.js';
78
+ export { ActivityStrip, BarList, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, niceScale, useChartHover } from '../chunk-MLT2HBPN.js';
79
+ export { Checkbox, CheckboxGroup } from '../chunk-75CLJNDQ.js';
73
80
  export { ChoiceButtons } from '../chunk-YSJC7AZC.js';
74
81
  export { ChoiceList } from '../chunk-QBXZLGK2.js';
75
- export { CodeBlock } from '../chunk-KGTQ5CVD.js';
76
- export { CopyButton, Copyable } from '../chunk-YACKC3K2.js';
77
- export { useClipboard, writeClipboard } from '../chunk-5VNUYO76.js';
78
- export { Combobox } from '../chunk-4Y7WKXAW.js';
79
- export { CommandPalette } from '../chunk-IYZZL3MZ.js';
80
- export { ConfirmModal, Modal } from '../chunk-K4VORB64.js';
82
+ export { CodeBlock } from '../chunk-GDDE4UM7.js';
83
+ export { CopyButton, Copyable } from '../chunk-W46LPU4R.js';
84
+ export { useClipboard, writeClipboard } from '../chunk-STJ7QBC3.js';
85
+ export { useOutcome } from '../chunk-DTIW4CHZ.js';
86
+ export { Combobox } from '../chunk-ZFH7H7GS.js';
81
87
  export { HIGHLIGHT_REST_MS, TYPE_AHEAD_WINDOW, useHighlightRest, useListbox, useOptionKeys } from '../chunk-F73MC7EZ.js';
82
- export { COMPOSER_COUNTER_AT, Composer } from '../chunk-QSLIN64M.js';
88
+ export { ConfirmField, confirmMatches } from '../chunk-CXBAIVYZ.js';
89
+ export { InlineCode } from '../chunk-5CLW2CXT.js';
90
+ export { COMPOSER_COUNTER_AT, Composer } from '../chunk-6NIMZ5XC.js';
83
91
  export { Kbd, isApplePlatform, keyGlyph } from '../chunk-SMBKXWML.js';
84
- export { FormField, FormRow, FormSection, Input, InputAffix, Label, ReadOnlyField, Textarea } from '../chunk-FTEJPHBI.js';
85
- export { Container } from '../chunk-QVE4GJAT.js';
92
+ export { FormField, FormRow, FormSection, Input, InputAffix, Label, ReadOnlyField, Textarea } from '../chunk-4GB57WIT.js';
86
93
  export { Breadcrumb } from '../chunk-VWNC2L6W.js';
87
94
  export { KeyChip } from '../chunk-FYTIJM2T.js';
88
- export { Callout } from '../chunk-R6FBDTP3.js';
95
+ export { CalendarGrid, compareDays, daysInMonth, sameDay, shiftDay, shiftMonth, today } from '../chunk-GXQ3B46I.js';
96
+ export { Callout } from '../chunk-SVSCLHHI.js';
89
97
  export { CANVAS_COMPOSE_CONTEXT, CANVAS_FIT_MAX_ZOOM, CANVAS_FIT_PADDING, CANVAS_FOCUS_CONTEXT, CANVAS_MAX_ZOOM, CANVAS_MIN_ZOOM, CANVAS_PAN_MARGIN, CANVAS_PAN_STEP, CANVAS_REVEAL_PADDING, CANVAS_TAP_SLOP, CANVAS_WHEEL_LINE_PX, CANVAS_WHEEL_ZOOM_PER_PIXEL, CANVAS_ZOOM_CEILING, CANVAS_ZOOM_LIMITS, CANVAS_ZOOM_STEP, Canvas, IDENTITY_VIEW, anchorView, beyondSlop, clampPan, clampZoom, fitView, panBy, pinchView, regionView, revealView, screenRect, toScreen, toWorld, wheelPixels, wheelZoomFactor, zoomAt, zoomLimits } from '../chunk-AMH67MLM.js';
90
98
  import '../chunk-VYOKRN2I.js';
91
99
  export { Button, ButtonLink } from '../chunk-OG6CL3EB.js';
92
- export { CalendarGrid, compareDays, daysInMonth, sameDay, shiftDay, shiftMonth, today } from '../chunk-GXQ3B46I.js';
93
- export { Card } from '../chunk-EG6NYWVK.js';
94
- export { useCardHeaderSlot } from '../chunk-AV2DXAEL.js';
95
100
  import '../chunk-3L5NHASN.js';
96
- export { ActivityStrip, BarList, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, niceScale, useChartHover } from '../chunk-MLT2HBPN.js';
97
101
  export { Accordion, AccordionItem } from '../chunk-G2AVKPSL.js';
98
102
  export { DisclosureAnatomy } from '../chunk-ENJUPIND.js';
99
- export { HeadingLevelProvider, headingTag, nextHeadingLevel, useHeadingLevel } from '../chunk-PQADV6P6.js';
100
103
  export { ADD_PILL_MS, AddPill } from '../chunk-TROLVEZY.js';
101
104
  export { Announcer, announce, useAnnouncer } from '../chunk-RSAQOKH3.js';
102
- export { AppShell, AppShellRail, AppShellRailRow, AppShellToggle, AppShellTopbar, useAppShell } from '../chunk-H3XOMT7W.js';
105
+ export { AccountRow, AppShell, AppShellRail, AppShellRailRow, AppShellToggle, AppShellTopbar, useAppShell } from '../chunk-OYOQU7O5.js';
103
106
  import '../chunk-IG75YMUN.js';
104
107
  export { IconButton } from '../chunk-4FQT6ZAY.js';
105
- export { AvatarStack, avatarStackLabel } from '../chunk-ZPWUVVIB.js';
106
- export { AvatarPicker } from '../chunk-EFNHOVC2.js';
108
+ export { AuthLayout } from '../chunk-7QFAORCY.js';
109
+ export { BrandLockup } from '../chunk-7KBNFFM3.js';
110
+ export { Card } from '../chunk-EG6NYWVK.js';
111
+ export { useCardHeaderSlot } from '../chunk-AV2DXAEL.js';
112
+ export { HeadingLevelProvider, headingTag, nextHeadingLevel, useHeadingLevel } from '../chunk-PQADV6P6.js';
113
+ export { AvatarStack, avatarStackLabel } from '../chunk-UAMDRJD6.js';
114
+ export { AvatarPicker } from '../chunk-FAEN3HYI.js';
107
115
  export { HuePicker } from '../chunk-NXDEPUVG.js';
108
116
  export { NODE_HUES, NODE_HUE_NAMES, isNodeHue } from '../chunk-AYKXMIOR.js';
109
117
  export { SegmentedControl } from '../chunk-26PEPONN.js';
110
118
  export { TabPanel, Tabs, tabId } from '../chunk-4LDTQWS7.js';
111
119
  export { Popover } from '../chunk-BWRGFKJP.js';
112
- export { CHARACTER_PICKER_COLUMNS, CharacterPicker } from '../chunk-YXMCUKFI.js';
120
+ export { CHARACTER_PICKER_COLUMNS, CharacterPicker } from '../chunk-DZ2YR6MV.js';
113
121
  import '../chunk-CBOICT64.js';
114
- export { Count } from '../chunk-BHHIIK3M.js';
115
122
  export { LAYER_GAP, LAYER_REPOSITION_EVENT, LayerHost, outsideBounds, placePopup, useLayerContainer, viewportBounds } from '../chunk-HMPFGIWM.js';
116
123
  export { focusables, isComposing, isModalLayerOpen, layerCount, useBodyScrollLock, useModalLayer, usePopupLayer } from '../chunk-R25RGPUB.js';
124
+ export { Count } from '../chunk-BHHIIK3M.js';
117
125
  export { VisuallyHidden } from '../chunk-BZFWDIV6.js';
118
- export { AVATAR_CHARACTER_FULL_DETAIL, AVATAR_CORNER_RATIO, AVATAR_SIZES, AVATAR_STATUSES, AVATAR_STATUS_LABELS, Avatar, avatarCorner, avatarPixels, avatarTint, getInitials } from '../chunk-HI6Q2UXQ.js';
119
- export { BrandLockup } from '../chunk-7KBNFFM3.js';
126
+ export { AVATAR_CHARACTER_FULL_DETAIL, AVATAR_CORNER_RATIO, AVATAR_SIZES, AVATAR_STATUSES, AVATAR_STATUS_LABELS, Avatar, avatarCorner, avatarInitialsName, avatarPixels, avatarTint, getInitials } from '../chunk-FY4SP3HF.js';
120
127
  export { cx } from '../chunk-ODEQTPFM.js';