@arbidocs/blocks 0.5.63 → 0.5.65

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 (177) hide show
  1. package/dist/{ConnectedDocumentViewer-7VKAM6KD.js → ConnectedDocumentViewer-HKIBNGGG.js} +10 -9
  2. package/dist/{ConnectedDocumentViewer-7VKAM6KD.js.map → ConnectedDocumentViewer-HKIBNGGG.js.map} +1 -1
  3. package/dist/{ConnectedDocumentViewer-FGQ27H4B.cjs → ConnectedDocumentViewer-YSZWOVGN.cjs} +11 -10
  4. package/dist/{ConnectedDocumentViewer-FGQ27H4B.cjs.map → ConnectedDocumentViewer-YSZWOVGN.cjs.map} +1 -1
  5. package/dist/{ConnectedNativeDocxComparison-HJ4FTVH6.cjs → ConnectedNativeDocxComparison-L3R3ROPZ.cjs} +7 -7
  6. package/dist/{ConnectedNativeDocxComparison-HJ4FTVH6.cjs.map → ConnectedNativeDocxComparison-L3R3ROPZ.cjs.map} +1 -1
  7. package/dist/{ConnectedNativeDocxComparison-FPW3BNBN.js → ConnectedNativeDocxComparison-PSAP3Q7D.js} +6 -6
  8. package/dist/{ConnectedNativeDocxComparison-FPW3BNBN.js.map → ConnectedNativeDocxComparison-PSAP3Q7D.js.map} +1 -1
  9. package/dist/{ConnectedNativeDocxEditor-S7NJMDSU.js → ConnectedNativeDocxEditor-PI6QTPXZ.js} +5 -5
  10. package/dist/{ConnectedNativeDocxEditor-S7NJMDSU.js.map → ConnectedNativeDocxEditor-PI6QTPXZ.js.map} +1 -1
  11. package/dist/{ConnectedNativeDocxEditor-PF46MU5H.cjs → ConnectedNativeDocxEditor-VDBC4XRT.cjs} +7 -7
  12. package/dist/{ConnectedNativeDocxEditor-PF46MU5H.cjs.map → ConnectedNativeDocxEditor-VDBC4XRT.cjs.map} +1 -1
  13. package/dist/{ConnectedStreamedWordArtifact-5MHLV24V.js → ConnectedStreamedWordArtifact-V4MTKVNE.js} +6 -6
  14. package/dist/ConnectedStreamedWordArtifact-V4MTKVNE.js.map +1 -0
  15. package/dist/{ConnectedStreamedWordArtifact-LNGW7YGV.cjs → ConnectedStreamedWordArtifact-YSW6D7AG.cjs} +7 -7
  16. package/dist/ConnectedStreamedWordArtifact-YSW6D7AG.cjs.map +1 -0
  17. package/dist/{DocumentReviewCard-VFNMJSK7.cjs → DocumentReviewCard-BQ6ZD5MD.cjs} +6 -6
  18. package/dist/{DocumentReviewCard-VFNMJSK7.cjs.map → DocumentReviewCard-BQ6ZD5MD.cjs.map} +1 -1
  19. package/dist/{DocumentReviewCard-5U3TGJZA.js → DocumentReviewCard-TQQADJ36.js} +6 -6
  20. package/dist/{DocumentReviewCard-5U3TGJZA.js.map → DocumentReviewCard-TQQADJ36.js.map} +1 -1
  21. package/dist/{WorkspaceTableView-DHMCJRC6.cjs → WorkspaceTableView-GKMVTECZ.cjs} +6 -6
  22. package/dist/{WorkspaceTableView-DHMCJRC6.cjs.map → WorkspaceTableView-GKMVTECZ.cjs.map} +1 -1
  23. package/dist/{WorkspaceTableView-EH5CEB44.js → WorkspaceTableView-YFLVFRJL.js} +4 -4
  24. package/dist/{WorkspaceTableView-EH5CEB44.js.map → WorkspaceTableView-YFLVFRJL.js.map} +1 -1
  25. package/dist/agents/index.cjs +345 -344
  26. package/dist/agents/index.js +6 -5
  27. package/dist/{chunk-NDVLCOWS.js → chunk-2LUA7UDE.js} +7 -7
  28. package/dist/{chunk-NDVLCOWS.js.map → chunk-2LUA7UDE.js.map} +1 -1
  29. package/dist/{chunk-77IAOKZO.js → chunk-2VH2PT3J.js} +5 -38
  30. package/dist/chunk-2VH2PT3J.js.map +1 -0
  31. package/dist/{chunk-IC6SBDYA.js → chunk-4CI42DCG.js} +3 -3
  32. package/dist/{chunk-IC6SBDYA.js.map → chunk-4CI42DCG.js.map} +1 -1
  33. package/dist/{chunk-IFLFLP4K.js → chunk-4Q7ON335.js} +6 -5
  34. package/dist/chunk-4Q7ON335.js.map +1 -0
  35. package/dist/{chunk-IUFS3AYQ.js → chunk-5EGTGHBW.js} +7 -7
  36. package/dist/{chunk-IUFS3AYQ.js.map → chunk-5EGTGHBW.js.map} +1 -1
  37. package/dist/{chunk-OLDGMBEF.cjs → chunk-67AFX23Y.cjs} +185 -91
  38. package/dist/chunk-67AFX23Y.cjs.map +1 -0
  39. package/dist/{chunk-5CWBAINB.js → chunk-6OMIIF76.js} +3 -3
  40. package/dist/{chunk-5CWBAINB.js.map → chunk-6OMIIF76.js.map} +1 -1
  41. package/dist/chunk-6QZ35CTZ.js +594 -0
  42. package/dist/chunk-6QZ35CTZ.js.map +1 -0
  43. package/dist/{chunk-4RJPTXUQ.cjs → chunk-7MOQO6NO.cjs} +5 -5
  44. package/dist/{chunk-4RJPTXUQ.cjs.map → chunk-7MOQO6NO.cjs.map} +1 -1
  45. package/dist/chunk-AESJLGMC.cjs +1228 -0
  46. package/dist/chunk-AESJLGMC.cjs.map +1 -0
  47. package/dist/{chunk-EOIJ5JYP.cjs → chunk-B3CRSCLK.cjs} +4 -4
  48. package/dist/{chunk-EOIJ5JYP.cjs.map → chunk-B3CRSCLK.cjs.map} +1 -1
  49. package/dist/{chunk-GRDLCRNL.js → chunk-BELZ2WD2.js} +5 -5
  50. package/dist/{chunk-GRDLCRNL.js.map → chunk-BELZ2WD2.js.map} +1 -1
  51. package/dist/chunk-C2S246BV.js +1225 -0
  52. package/dist/chunk-C2S246BV.js.map +1 -0
  53. package/dist/{chunk-TAI23FCY.js → chunk-CEKOZAGO.js} +3 -3
  54. package/dist/{chunk-TAI23FCY.js.map → chunk-CEKOZAGO.js.map} +1 -1
  55. package/dist/{chunk-HVOPUYAG.cjs → chunk-CJF7B5A7.cjs} +29 -28
  56. package/dist/chunk-CJF7B5A7.cjs.map +1 -0
  57. package/dist/{chunk-LBKTTQUR.cjs → chunk-CMYJEIZB.cjs} +12 -12
  58. package/dist/{chunk-LBKTTQUR.cjs.map → chunk-CMYJEIZB.cjs.map} +1 -1
  59. package/dist/{chunk-2SLDVFOZ.js → chunk-CRHY7DBO.js} +3 -3
  60. package/dist/{chunk-2SLDVFOZ.js.map → chunk-CRHY7DBO.js.map} +1 -1
  61. package/dist/{chunk-23ACBETH.cjs → chunk-D27BBGUF.cjs} +4 -4
  62. package/dist/{chunk-23ACBETH.cjs.map → chunk-D27BBGUF.cjs.map} +1 -1
  63. package/dist/{chunk-3X37I6QE.cjs → chunk-DJE2E7YH.cjs} +29 -29
  64. package/dist/{chunk-3X37I6QE.cjs.map → chunk-DJE2E7YH.cjs.map} +1 -1
  65. package/dist/{chunk-CCSF7RI4.cjs → chunk-EG3BB32W.cjs} +3 -3
  66. package/dist/{chunk-CCSF7RI4.cjs.map → chunk-EG3BB32W.cjs.map} +1 -1
  67. package/dist/{chunk-MAKTAR7H.cjs → chunk-F777MGVA.cjs} +18 -18
  68. package/dist/{chunk-MAKTAR7H.cjs.map → chunk-F777MGVA.cjs.map} +1 -1
  69. package/dist/{chunk-TFWCREOL.js → chunk-GPYLXEZO.js} +9 -506
  70. package/dist/chunk-GPYLXEZO.js.map +1 -0
  71. package/dist/{chunk-OY3I32ZS.js → chunk-GX37C5QT.js} +4 -4
  72. package/dist/{chunk-OY3I32ZS.js.map → chunk-GX37C5QT.js.map} +1 -1
  73. package/dist/chunk-I4IS6ST6.cjs +48 -0
  74. package/dist/chunk-I4IS6ST6.cjs.map +1 -0
  75. package/dist/{chunk-OZL5ABLF.js → chunk-IRXPUQFP.js} +3 -3
  76. package/dist/{chunk-OZL5ABLF.js.map → chunk-IRXPUQFP.js.map} +1 -1
  77. package/dist/chunk-J77BACGX.js +575 -0
  78. package/dist/chunk-J77BACGX.js.map +1 -0
  79. package/dist/{chunk-X3JJTHQ4.cjs → chunk-JSHBC47B.cjs} +55 -55
  80. package/dist/{chunk-X3JJTHQ4.cjs.map → chunk-JSHBC47B.cjs.map} +1 -1
  81. package/dist/{chunk-Y6ZNWC7E.cjs → chunk-K26RLK2Y.cjs} +3 -3
  82. package/dist/{chunk-Y6ZNWC7E.cjs.map → chunk-K26RLK2Y.cjs.map} +1 -1
  83. package/dist/{chunk-PKDPQS6Z.js → chunk-KNOSLLTC.js} +3 -3
  84. package/dist/{chunk-PKDPQS6Z.js.map → chunk-KNOSLLTC.js.map} +1 -1
  85. package/dist/chunk-LFS6UWSJ.cjs +602 -0
  86. package/dist/chunk-LFS6UWSJ.cjs.map +1 -0
  87. package/dist/{chunk-YQFEN7UJ.js → chunk-LNH6NYG4.js} +6 -90
  88. package/dist/chunk-LNH6NYG4.js.map +1 -0
  89. package/dist/chunk-LRPGXNMA.js +44 -0
  90. package/dist/chunk-LRPGXNMA.js.map +1 -0
  91. package/dist/chunk-NEGFHF3V.cjs +617 -0
  92. package/dist/chunk-NEGFHF3V.cjs.map +1 -0
  93. package/dist/{chunk-NHPBONMR.js → chunk-O4FBMC6S.js} +186 -71
  94. package/dist/chunk-O4FBMC6S.js.map +1 -0
  95. package/dist/{chunk-7P24MJQN.js → chunk-PBIFISDD.js} +3 -3
  96. package/dist/{chunk-7P24MJQN.js.map → chunk-PBIFISDD.js.map} +1 -1
  97. package/dist/{chunk-OWUNCJFO.cjs → chunk-PZOX4JF6.cjs} +30 -30
  98. package/dist/{chunk-OWUNCJFO.cjs.map → chunk-PZOX4JF6.cjs.map} +1 -1
  99. package/dist/{chunk-CKNUL4LM.cjs → chunk-QK546T4C.cjs} +3 -3
  100. package/dist/{chunk-CKNUL4LM.cjs.map → chunk-QK546T4C.cjs.map} +1 -1
  101. package/dist/{chunk-QAXIVZEJ.cjs → chunk-ROWJU4SK.cjs} +13 -513
  102. package/dist/chunk-ROWJU4SK.cjs.map +1 -0
  103. package/dist/{chunk-JWRTUYLC.js → chunk-SBAM3UZX.js} +3 -3
  104. package/dist/{chunk-JWRTUYLC.js.map → chunk-SBAM3UZX.js.map} +1 -1
  105. package/dist/{chunk-COZDIUG7.cjs → chunk-TJ7QEGVP.cjs} +18 -18
  106. package/dist/{chunk-COZDIUG7.cjs.map → chunk-TJ7QEGVP.cjs.map} +1 -1
  107. package/dist/{chunk-PVPGD6QR.js → chunk-VWM3J6ES.js} +3 -3
  108. package/dist/{chunk-PVPGD6QR.js.map → chunk-VWM3J6ES.js.map} +1 -1
  109. package/dist/{chunk-UDMII47W.cjs → chunk-WBLCPCWR.cjs} +7 -7
  110. package/dist/{chunk-UDMII47W.cjs.map → chunk-WBLCPCWR.cjs.map} +1 -1
  111. package/dist/{chunk-3T3IKNGF.cjs → chunk-ZXW6WFZG.cjs} +5 -41
  112. package/dist/chunk-ZXW6WFZG.cjs.map +1 -0
  113. package/dist/{chunk-ODQK3LX5.cjs → chunk-ZZHMJXM5.cjs} +4 -93
  114. package/dist/chunk-ZZHMJXM5.cjs.map +1 -0
  115. package/dist/connect/docx.cjs +11 -11
  116. package/dist/connect/docx.js +7 -7
  117. package/dist/connect/index.cjs +496 -493
  118. package/dist/connect/index.cjs.map +1 -1
  119. package/dist/connect/index.js +36 -33
  120. package/dist/connect/index.js.map +1 -1
  121. package/dist/connect/viewer.cjs +9 -8
  122. package/dist/connect/viewer.js +8 -7
  123. package/dist/dashboards/index.cjs +1 -1
  124. package/dist/dashboards/index.js +1 -1
  125. package/dist/document-tools/index.cjs +17 -17
  126. package/dist/document-tools/index.js +2 -2
  127. package/dist/embed/index.cjs +11 -10
  128. package/dist/embed/index.js +8 -7
  129. package/dist/facts/index.cjs +1 -1
  130. package/dist/facts/index.js +1 -1
  131. package/dist/files/index.cjs +1 -1
  132. package/dist/files/index.js +1 -1
  133. package/dist/index.cjs +653 -618
  134. package/dist/index.cjs.map +1 -1
  135. package/dist/index.d.ts +4 -0
  136. package/dist/index.js +19 -16
  137. package/dist/index.js.map +1 -1
  138. package/dist/shell/index.cjs +78 -77
  139. package/dist/shell/index.js +3 -2
  140. package/dist/site/index.cjs +105 -81
  141. package/dist/site/index.d.ts +3 -1
  142. package/dist/site/index.js +4 -4
  143. package/dist/studio/index.cjs +60 -55
  144. package/dist/studio/index.cjs.map +1 -1
  145. package/dist/studio/index.js +12 -7
  146. package/dist/studio/index.js.map +1 -1
  147. package/dist/theme/ThemeControls.d.ts +71 -0
  148. package/dist/theme/ThemeEditor.d.ts +5 -2
  149. package/dist/theme/ThemePreview.d.ts +20 -0
  150. package/dist/theme/color.d.ts +17 -1
  151. package/dist/theme/derive.d.ts +75 -0
  152. package/dist/theme/editorModel.d.ts +36 -0
  153. package/dist/theme/previewLabels.d.ts +38 -0
  154. package/dist/theme/store.d.ts +51 -13
  155. package/dist/theme/tokens.d.ts +2 -0
  156. package/dist/workflow-canvas/index.cjs +37 -36
  157. package/dist/workflow-canvas/index.cjs.map +1 -1
  158. package/dist/workflow-canvas/index.js +13 -12
  159. package/dist/workflow-canvas/index.js.map +1 -1
  160. package/node_modules/@arbidocs/coedit/package.json +1 -1
  161. package/package.json +5 -5
  162. package/dist/ConnectedStreamedWordArtifact-5MHLV24V.js.map +0 -1
  163. package/dist/ConnectedStreamedWordArtifact-LNGW7YGV.cjs.map +0 -1
  164. package/dist/chunk-3T3IKNGF.cjs.map +0 -1
  165. package/dist/chunk-77IAOKZO.js.map +0 -1
  166. package/dist/chunk-HVOPUYAG.cjs.map +0 -1
  167. package/dist/chunk-IFLFLP4K.js.map +0 -1
  168. package/dist/chunk-N5WJBQYF.cjs +0 -476
  169. package/dist/chunk-N5WJBQYF.cjs.map +0 -1
  170. package/dist/chunk-NHPBONMR.js.map +0 -1
  171. package/dist/chunk-ODQK3LX5.cjs.map +0 -1
  172. package/dist/chunk-OLDGMBEF.cjs.map +0 -1
  173. package/dist/chunk-QAXIVZEJ.cjs.map +0 -1
  174. package/dist/chunk-QCLYRNOC.js +0 -466
  175. package/dist/chunk-QCLYRNOC.js.map +0 -1
  176. package/dist/chunk-TFWCREOL.js.map +0 -1
  177. package/dist/chunk-YQFEN7UJ.js.map +0 -1
@@ -1,517 +1,20 @@
1
1
  "use client";
2
2
  import { Banner } from './chunk-IRPDQJNT.js';
3
- import { SidebarBadgeRow, DEFAULT_SIDEBAR_LABELS, SidebarContext, useSidebarContext, SidebarRowHoverContext } from './chunk-YQFEN7UJ.js';
3
+ import { Sidebar, SidebarRowHoverContext } from './chunk-6QZ35CTZ.js';
4
4
  import { ActionLink } from './chunk-ELT2V4NB.js';
5
5
  import { getInstallInstructions, isIosDevice } from './chunk-GIVU67LY.js';
6
6
  import { STATUS_ROW_TONES, STATUS_ROW_BASE_CLASS } from './chunk-SUVMOGTC.js';
7
- import { useDrawerBehavior, BlocksTooltipProvider } from './chunk-YQEXBJVO.js';
7
+ import { BlocksTooltipProvider } from './chunk-YQEXBJVO.js';
8
8
  import { useShellBottomInset } from './chunk-UH7LTR2B.js';
9
9
  import { testIdOr, prefixedTestId } from './chunk-7F6CBP3Z.js';
10
- import { useEffect, useMemo, useRef, useState, useContext, useCallback } from 'react';
11
- import { PanelLeftClose, PanelLeftOpen, X, Sparkles, Search, ArrowUp, Menu, Download, RefreshCw, TriangleAlert, WifiOff, MousePointerClick, Lightbulb, Pencil, ChevronLeft, ChevronRight, Info } from 'lucide-react';
10
+ import { canPersistSession } from '@arbidocs/client';
11
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
12
+ import { useContext, useRef, useState, useEffect, useCallback } from 'react';
12
13
  import { cn, Tooltip, TooltipTrigger, TooltipContent, Button } from '@arbidocs/react/ui';
13
14
  export { UserMenu } from '@arbidocs/react/ui';
14
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
15
- import { canPersistSession } from '@arbidocs/client';
15
+ import { Sparkles, Search, ArrowUp, X, Menu, Download, RefreshCw, TriangleAlert, WifiOff, MousePointerClick, Lightbulb, Pencil, ChevronLeft, ChevronRight, Info } from 'lucide-react';
16
16
  export { NotificationBell } from '@arbidocs/react/shell';
17
17
 
18
- var SHELL_START_INSET_VAR = "--shell-start-inset";
19
- var widths = /* @__PURE__ */ new Map();
20
- function apply() {
21
- if (typeof document === "undefined") return;
22
- const inset = Math.max(0, ...widths.values());
23
- const style = document.documentElement.style;
24
- if (inset > 0) style.setProperty(SHELL_START_INSET_VAR, `${inset}px`);
25
- else style.removeProperty(SHELL_START_INSET_VAR);
26
- }
27
- function useShellStartInset(width) {
28
- useEffect(() => {
29
- const key = /* @__PURE__ */ Symbol("shell-start-inset");
30
- widths.set(key, width);
31
- apply();
32
- return () => {
33
- widths.delete(key);
34
- apply();
35
- };
36
- }, [width]);
37
- }
38
- var noop = () => {
39
- };
40
- var COLLAPSED_PX = 64;
41
- var EXPANDED_PX = 256;
42
- var COLLAPSED_WIDTH = `${COLLAPSED_PX}px`;
43
- var EXPANDED_WIDTH = `${EXPANDED_PX}px`;
44
- function SidebarRoot({
45
- mode,
46
- expanded,
47
- isHovering = false,
48
- onBackdropClick,
49
- hasRailBackdrop = false,
50
- onMouseEnter,
51
- onMouseLeave,
52
- children,
53
- className,
54
- "aria-label": ariaLabelProp,
55
- labels,
56
- "data-testid": testId,
57
- backdropTestId
58
- }) {
59
- const mergedLabels = useMemo(() => ({ ...DEFAULT_SIDEBAR_LABELS, ...labels }), [labels]);
60
- const drawerRef = useRef(null);
61
- const isDrawer = mode === "drawer";
62
- useDrawerBehavior(isDrawer, onBackdropClick ?? noop, drawerRef);
63
- useShellStartInset(mode === "pinned" ? EXPANDED_PX : mode === "rail" ? COLLAPSED_PX : 0);
64
- const ariaLabel = ariaLabelProp ?? mergedLabels.mainNavigation;
65
- const contextValue = useMemo(() => ({ expanded, labels: mergedLabels }), [expanded, mergedLabels]);
66
- const navBase = "group/sidebar bg-sidebar border-r border-border text-foreground scrollbar-themed flex flex-col h-full overflow-y-auto overflow-x-hidden pb-safe pt-3 transition-all duration-300 ease-in-out";
67
- const common = {
68
- "aria-label": ariaLabel,
69
- "data-testid": testIdOr(testId, { testId: "sidebar" }),
70
- "data-slot": "sidebar",
71
- "data-mode": mode
72
- };
73
- const fixedWidth = { width: EXPANDED_WIDTH, minWidth: EXPANDED_WIDTH };
74
- let body;
75
- if (mode === "drawer") {
76
- body = /* @__PURE__ */ jsxs(
77
- "div",
78
- {
79
- ref: drawerRef,
80
- role: "dialog",
81
- "aria-modal": "true",
82
- "aria-label": ariaLabel,
83
- "data-slot": "sidebar-drawer",
84
- className: "fixed inset-0 z-50",
85
- children: [
86
- /* @__PURE__ */ jsx(
87
- "div",
88
- {
89
- className: "absolute inset-0 bg-black/50",
90
- onClick: onBackdropClick,
91
- "aria-hidden": "true",
92
- "data-testid": testIdOr(backdropTestId, { testId: "sidebar-backdrop" })
93
- }
94
- ),
95
- /* @__PURE__ */ jsx(
96
- "nav",
97
- {
98
- ...common,
99
- className: cn(navBase, "!px-3 absolute left-0 top-0 pt-safe shadow-xl", className),
100
- style: fixedWidth,
101
- children
102
- }
103
- )
104
- ]
105
- }
106
- );
107
- } else if (mode === "collapsed") {
108
- body = /* @__PURE__ */ jsx(
109
- "nav",
110
- {
111
- ...common,
112
- className: cn(navBase, "absolute left-0 top-0 z-[45]", className),
113
- style: {
114
- width: "0px",
115
- minWidth: 0,
116
- paddingLeft: 0,
117
- paddingRight: 0,
118
- borderRightWidth: 0,
119
- pointerEvents: "none"
120
- },
121
- inert: true,
122
- children
123
- }
124
- );
125
- } else if (mode === "pinned") {
126
- body = /* @__PURE__ */ jsx(
127
- "nav",
128
- {
129
- ...common,
130
- className: cn(navBase, "!px-3 relative flex-shrink-0", className),
131
- style: fixedWidth,
132
- onMouseEnter,
133
- onMouseLeave,
134
- children
135
- }
136
- );
137
- } else {
138
- body = /* @__PURE__ */ jsxs(Fragment, { children: [
139
- /* @__PURE__ */ jsx(
140
- "div",
141
- {
142
- className: "bg-sidebar border-r border-border flex flex-col h-full relative px-0 pb-safe flex-shrink-0",
143
- style: { width: COLLAPSED_WIDTH, minWidth: COLLAPSED_WIDTH },
144
- "aria-hidden": "true"
145
- }
146
- ),
147
- isHovering && hasRailBackdrop && /* @__PURE__ */ jsx(
148
- "div",
149
- {
150
- className: "fixed inset-0 z-[44] bg-black/40",
151
- onClick: onBackdropClick,
152
- "aria-hidden": "true",
153
- "data-testid": testIdOr(backdropTestId, { testId: "sidebar-backdrop" })
154
- }
155
- ),
156
- /* @__PURE__ */ jsx(
157
- "nav",
158
- {
159
- ...common,
160
- className: cn(
161
- navBase,
162
- isHovering ? "!px-3 shadow-xl" : "!px-2",
163
- "absolute left-0 top-0 z-[45]",
164
- className
165
- ),
166
- style: {
167
- width: isHovering ? EXPANDED_WIDTH : COLLAPSED_WIDTH,
168
- minWidth: isHovering ? EXPANDED_WIDTH : COLLAPSED_WIDTH
169
- },
170
- onMouseEnter,
171
- onMouseLeave,
172
- children
173
- }
174
- )
175
- ] });
176
- }
177
- return /* @__PURE__ */ jsx(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(BlocksTooltipProvider, { children: body }) });
178
- }
179
- function SidebarHeader({ children, className, "data-testid": testId }) {
180
- return /* @__PURE__ */ jsx(
181
- "div",
182
- {
183
- "data-slot": "sidebar-header",
184
- "data-testid": testId,
185
- className: cn("flex flex-shrink-0 flex-col gap-3 pb-3", className),
186
- children
187
- }
188
- );
189
- }
190
- function SidebarNav({
191
- items,
192
- sections,
193
- children,
194
- className,
195
- "data-testid": testId
196
- }) {
197
- const { expanded } = useSidebarContext();
198
- return /* @__PURE__ */ jsxs(
199
- "div",
200
- {
201
- "data-slot": "sidebar-nav",
202
- "data-testid": testId,
203
- className: cn("flex flex-shrink-0 flex-col gap-0.5", !expanded && "items-center", className),
204
- children: [
205
- items?.map((item) => /* @__PURE__ */ jsx(SidebarNavItem, { ...item }, item.id)),
206
- sections?.map((section) => /* @__PURE__ */ jsx(
207
- SidebarGroup,
208
- {
209
- label: section.label,
210
- ariaLabel: section.ariaLabel,
211
- "data-testid": section.testId,
212
- children: section.items.map((item) => /* @__PURE__ */ jsx(SidebarNavItem, { ...item }, item.id))
213
- },
214
- section.id
215
- )),
216
- children
217
- ]
218
- }
219
- );
220
- }
221
- function SidebarGroup({
222
- label,
223
- ariaLabel,
224
- children,
225
- className,
226
- "data-testid": testId
227
- }) {
228
- const { expanded } = useSidebarContext();
229
- return /* @__PURE__ */ jsxs(
230
- "div",
231
- {
232
- role: "group",
233
- "aria-label": ariaLabel ?? (typeof label === "string" ? label : void 0),
234
- "data-slot": "sidebar-group",
235
- "data-testid": testId,
236
- className: cn("flex flex-shrink-0 flex-col gap-0.5", !expanded && "items-center", className),
237
- children: [
238
- label && (expanded ? /* @__PURE__ */ jsx(SidebarGroupLabel, { children: label }) : /* @__PURE__ */ jsx(
239
- "div",
240
- {
241
- role: "separator",
242
- "data-slot": "sidebar-group-divider",
243
- className: "my-1 h-px w-6 bg-border"
244
- }
245
- )),
246
- children
247
- ]
248
- }
249
- );
250
- }
251
- function SidebarGroupLabel({ children, className }) {
252
- return /* @__PURE__ */ jsx(
253
- "div",
254
- {
255
- "data-slot": "sidebar-group-label",
256
- className: cn(
257
- "px-2 pb-0.5 pt-2 text-xs font-medium uppercase tracking-wide text-muted-foreground",
258
- className
259
- ),
260
- children
261
- }
262
- );
263
- }
264
- function SidebarFooter({ children, className, "data-testid": testId }) {
265
- const { expanded } = useSidebarContext();
266
- return /* @__PURE__ */ jsx(
267
- "div",
268
- {
269
- "data-slot": "sidebar-footer",
270
- "data-testid": testId,
271
- className: cn(
272
- "mt-auto flex flex-shrink-0 flex-col gap-2 pt-3 pb-3",
273
- !expanded && "items-center",
274
- className
275
- ),
276
- children
277
- }
278
- );
279
- }
280
- var INDICATOR_TONES = {
281
- progress: "bg-primary",
282
- error: "bg-red-solid",
283
- attention: "bg-yellow-solid"
284
- };
285
- function SidebarNavItem({
286
- label,
287
- icon,
288
- active = false,
289
- onSelect,
290
- href,
291
- count,
292
- countIcon,
293
- testId,
294
- disabled = false,
295
- trailing,
296
- indicator,
297
- className,
298
- tooltip
299
- }) {
300
- const { expanded } = useSidebarContext();
301
- const [isRowActive, setIsRowActive] = useState(false);
302
- const tip = expanded ? void 0 : tooltip ?? label;
303
- if (!expanded) {
304
- const railButton = /* @__PURE__ */ jsx(
305
- ActionLink,
306
- {
307
- href,
308
- onSelect,
309
- disabled,
310
- "aria-label": label,
311
- "aria-current": active ? "page" : void 0,
312
- "data-slot": "sidebar-nav-item",
313
- "data-testid": testId,
314
- className: cn(
315
- "m-0 flex h-9 w-12 items-center justify-center rounded-md transition-colors pointer-coarse:h-11",
316
- active ? "bg-accent text-accent-foreground" : "text-muted-foreground hover:bg-muted hover:text-foreground",
317
- disabled && "pointer-events-none cursor-not-allowed opacity-30",
318
- className
319
- ),
320
- children: /* @__PURE__ */ jsx("div", { className: "flex size-5 items-center justify-center", children: indicator ? /* @__PURE__ */ jsxs("div", { className: "relative", children: [
321
- icon,
322
- /* @__PURE__ */ jsx(
323
- "div",
324
- {
325
- "data-slot": "sidebar-nav-indicator",
326
- "data-tone": indicator,
327
- className: cn(
328
- "absolute -right-1 -top-1 size-2.5 rounded-full border border-sidebar",
329
- INDICATOR_TONES[indicator]
330
- )
331
- }
332
- )
333
- ] }) : icon })
334
- }
335
- );
336
- if (!tip) return railButton;
337
- return /* @__PURE__ */ jsxs(Tooltip, { delayDuration: 50, children: [
338
- /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: railButton }),
339
- /* @__PURE__ */ jsx(TooltipContent, { side: "right", sideOffset: 8, children: tip })
340
- ] });
341
- }
342
- const rowClass = cn(
343
- "group flex h-9 w-full cursor-pointer items-center rounded-md px-3 text-sm transition-colors pointer-coarse:h-11",
344
- active ? "bg-accent font-semibold text-accent-foreground" : "font-medium text-muted-foreground hover:bg-muted hover:text-foreground",
345
- disabled && "pointer-events-none cursor-not-allowed opacity-30",
346
- className
347
- );
348
- const countNode = count !== void 0 && /* @__PURE__ */ jsxs(
349
- "span",
350
- {
351
- className: cn(
352
- "ml-auto inline-flex flex-shrink-0 items-center gap-0.5 pl-2 text-xs font-normal tabular-nums",
353
- active ? "text-accent-foreground" : "text-muted-foreground"
354
- ),
355
- children: [
356
- countIcon,
357
- count
358
- ]
359
- }
360
- );
361
- if (href && !disabled && !trailing) {
362
- return /* @__PURE__ */ jsxs(
363
- ActionLink,
364
- {
365
- href,
366
- onSelect,
367
- "aria-current": active ? "page" : void 0,
368
- "data-slot": "sidebar-nav-item",
369
- "data-testid": testId,
370
- className: rowClass,
371
- children: [
372
- /* @__PURE__ */ jsx("div", { className: "flex size-5 flex-shrink-0 items-center justify-center", children: icon }),
373
- /* @__PURE__ */ jsx("span", { className: "ml-3 min-w-0 truncate text-left", children: label }),
374
- countNode
375
- ]
376
- }
377
- );
378
- }
379
- if (href && !disabled) {
380
- return /* @__PURE__ */ jsxs(
381
- "div",
382
- {
383
- onMouseEnter: () => setIsRowActive(true),
384
- onMouseLeave: () => setIsRowActive(false),
385
- onFocusCapture: () => setIsRowActive(true),
386
- onBlurCapture: (e) => {
387
- if (!e.currentTarget.contains(e.relatedTarget)) setIsRowActive(false);
388
- },
389
- "data-slot": "sidebar-nav-item",
390
- "data-testid": testId,
391
- className: cn(rowClass, "relative"),
392
- children: [
393
- /* @__PURE__ */ jsx(
394
- ActionLink,
395
- {
396
- href,
397
- onSelect,
398
- "aria-label": label,
399
- "aria-current": active ? "page" : void 0,
400
- className: "absolute inset-0 rounded-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
401
- }
402
- ),
403
- /* @__PURE__ */ jsxs("div", { className: "pointer-events-none flex min-w-0 flex-1 items-center", children: [
404
- /* @__PURE__ */ jsx("div", { className: "flex size-5 flex-shrink-0 items-center justify-center", children: icon }),
405
- /* @__PURE__ */ jsx("span", { className: "ml-3 min-w-0 truncate text-left", children: label }),
406
- countNode
407
- ] }),
408
- /* @__PURE__ */ jsx(SidebarRowHoverContext.Provider, { value: isRowActive, children: /* @__PURE__ */ jsx("span", { className: "relative ml-2 flex flex-shrink-0 items-center", children: trailing }) })
409
- ]
410
- }
411
- );
412
- }
413
- return /* @__PURE__ */ jsxs(
414
- "div",
415
- {
416
- role: "button",
417
- tabIndex: disabled ? -1 : 0,
418
- "aria-current": active ? "page" : void 0,
419
- onClick: disabled ? void 0 : onSelect,
420
- onMouseEnter: () => setIsRowActive(true),
421
- onMouseLeave: () => setIsRowActive(false),
422
- onFocusCapture: () => setIsRowActive(true),
423
- onBlurCapture: (e) => {
424
- if (!e.currentTarget.contains(e.relatedTarget)) setIsRowActive(false);
425
- },
426
- onKeyDown: disabled ? void 0 : (e) => {
427
- if (e.key === "Enter" || e.key === " ") {
428
- e.preventDefault();
429
- onSelect();
430
- }
431
- },
432
- "data-slot": "sidebar-nav-item",
433
- "data-testid": testId,
434
- className: rowClass,
435
- children: [
436
- /* @__PURE__ */ jsx("div", { className: "flex size-5 flex-shrink-0 items-center justify-center", children: icon }),
437
- /* @__PURE__ */ jsx("span", { className: "ml-3 min-w-0 truncate text-left", children: label }),
438
- countNode,
439
- trailing && /* @__PURE__ */ jsx(SidebarRowHoverContext.Provider, { value: isRowActive, children: /* @__PURE__ */ jsx("span", { className: "ml-auto flex flex-shrink-0 items-center pl-2", children: trailing }) })
440
- ]
441
- }
442
- );
443
- }
444
- function SidebarPinToggle({
445
- isPinned,
446
- onToggle,
447
- className,
448
- "data-testid": testId
449
- }) {
450
- const { expanded, labels } = useSidebarContext();
451
- const label = isPinned ? labels.hideSidebar : labels.showSidebar;
452
- return /* @__PURE__ */ jsx(
453
- "button",
454
- {
455
- type: "button",
456
- onClick: onToggle,
457
- title: label,
458
- "aria-label": label,
459
- "aria-pressed": isPinned,
460
- "data-testid": testIdOr(testId, { testId: "sidebar-pin-button" }),
461
- className: cn(
462
- "flex flex-shrink-0 items-center justify-center rounded-md text-muted-foreground transition-[opacity,colors] hover:bg-muted hover:text-foreground pointer-coarse:size-11",
463
- "pointer-events-none opacity-0 group-hover/sidebar:pointer-events-auto group-hover/sidebar:opacity-100",
464
- "group-focus-within/sidebar:pointer-events-auto group-focus-within/sidebar:opacity-100",
465
- "pointer-coarse:pointer-events-auto pointer-coarse:opacity-100 focus-visible:pointer-events-auto focus-visible:opacity-100",
466
- expanded ? "size-9" : "h-9 w-12",
467
- className
468
- ),
469
- children: isPinned ? /* @__PURE__ */ jsx(PanelLeftClose, { className: "size-5" }) : /* @__PURE__ */ jsx(PanelLeftOpen, { className: "size-5" })
470
- }
471
- );
472
- }
473
- function SidebarDrawerHeader({
474
- logo,
475
- onClose,
476
- closeLabel: closeLabelProp,
477
- "data-testid": testId
478
- }) {
479
- const { labels } = useSidebarContext();
480
- const closeLabel = closeLabelProp ?? labels.closeNavigationMenu;
481
- return /* @__PURE__ */ jsxs(
482
- "div",
483
- {
484
- "data-slot": "sidebar-drawer-header",
485
- className: "flex flex-shrink-0 items-center justify-between pb-2",
486
- children: [
487
- logo,
488
- /* @__PURE__ */ jsx(
489
- "button",
490
- {
491
- type: "button",
492
- onClick: onClose,
493
- "aria-label": closeLabel,
494
- "data-testid": testIdOr(testId, { testId: "mobile-nav-close" }),
495
- className: "flex size-11 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",
496
- children: /* @__PURE__ */ jsx(X, { className: "size-5" })
497
- }
498
- )
499
- ]
500
- }
501
- );
502
- }
503
- var Sidebar = {
504
- Root: SidebarRoot,
505
- Header: SidebarHeader,
506
- Nav: SidebarNav,
507
- Group: SidebarGroup,
508
- GroupLabel: SidebarGroupLabel,
509
- NavItem: SidebarNavItem,
510
- Footer: SidebarFooter,
511
- PinToggle: SidebarPinToggle,
512
- BadgeRow: SidebarBadgeRow,
513
- DrawerHeader: SidebarDrawerHeader
514
- };
515
18
  var DEFAULT_INSECURE_SESSION_BANNER_TEXT = "This connection is not secure (no HTTPS), so your session is kept in memory only and you will be signed out when you reload. Use https:// or localhost for a persistent, encrypted session.";
516
19
  function InsecureSessionBanner({
517
20
  text = DEFAULT_INSECURE_SESSION_BANNER_TEXT,
@@ -1533,6 +1036,6 @@ function SplitLayout({
1533
1036
  );
1534
1037
  }
1535
1038
 
1536
- export { AccountDeletionBanner, AskField, AskRow, AskTrigger, DEFAULT_ACCOUNT_DELETION_BANNER_TEXT, DEFAULT_ASK_FIELD_LABELS, DEFAULT_INSECURE_SESSION_BANNER_TEXT, DEFAULT_INSTALL_PROMPT_LABELS, DEFAULT_MOBILE_BARS_LABELS, DEFAULT_OFFLINE_PILL_LABELS, DEFAULT_REMOTE_CONTROL_PILL_LABELS, DEFAULT_TIP_CARD_LABELS, INSTALL_PROMPT_DISMISSED_KEY, InfoBar, InsecureSessionBanner, InstallPrompt, MobileAppBar, MobileTabBar, OfflinePill, RemoteControlPill, SHELL_START_INSET_VAR, ShellSidebar, Sidebar, SidebarRowAction, SplitLayout, StatusBadge, StatusRow, TipCard, initInstallPrompt, promptAppInstall, useInstallPrompt, useShellStartInset };
1537
- //# sourceMappingURL=chunk-TFWCREOL.js.map
1538
- //# sourceMappingURL=chunk-TFWCREOL.js.map
1039
+ export { AccountDeletionBanner, AskField, AskRow, AskTrigger, DEFAULT_ACCOUNT_DELETION_BANNER_TEXT, DEFAULT_ASK_FIELD_LABELS, DEFAULT_INSECURE_SESSION_BANNER_TEXT, DEFAULT_INSTALL_PROMPT_LABELS, DEFAULT_MOBILE_BARS_LABELS, DEFAULT_OFFLINE_PILL_LABELS, DEFAULT_REMOTE_CONTROL_PILL_LABELS, DEFAULT_TIP_CARD_LABELS, INSTALL_PROMPT_DISMISSED_KEY, InfoBar, InsecureSessionBanner, InstallPrompt, MobileAppBar, MobileTabBar, OfflinePill, RemoteControlPill, ShellSidebar, SidebarRowAction, SplitLayout, StatusBadge, StatusRow, TipCard, initInstallPrompt, promptAppInstall, useInstallPrompt };
1040
+ //# sourceMappingURL=chunk-GPYLXEZO.js.map
1041
+ //# sourceMappingURL=chunk-GPYLXEZO.js.map