@arbidocs/blocks 0.5.65 → 0.5.67

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 (199) hide show
  1. package/README.md +5 -0
  2. package/dist/{ConnectedCallDock-GJAGY75U.cjs → ConnectedCallDock-FFIDDYGH.cjs} +6 -6
  3. package/dist/{ConnectedCallDock-GJAGY75U.cjs.map → ConnectedCallDock-FFIDDYGH.cjs.map} +1 -1
  4. package/dist/{ConnectedCallDock-DEAEFUUD.js → ConnectedCallDock-VMEBH4LG.js} +6 -6
  5. package/dist/{ConnectedCallDock-DEAEFUUD.js.map → ConnectedCallDock-VMEBH4LG.js.map} +1 -1
  6. package/dist/{ConnectedCallRoom-DI7UYRHE.js → ConnectedCallRoom-2FNSX2VG.js} +6 -6
  7. package/dist/{ConnectedCallRoom-DI7UYRHE.js.map → ConnectedCallRoom-2FNSX2VG.js.map} +1 -1
  8. package/dist/{ConnectedCallRoom-KLE2PCMQ.cjs → ConnectedCallRoom-HYRLJUIV.cjs} +6 -6
  9. package/dist/{ConnectedCallRoom-KLE2PCMQ.cjs.map → ConnectedCallRoom-HYRLJUIV.cjs.map} +1 -1
  10. package/dist/{ConnectedDocumentViewer-YSZWOVGN.cjs → ConnectedDocumentViewer-IQHDCAZ5.cjs} +12 -12
  11. package/dist/{ConnectedDocumentViewer-YSZWOVGN.cjs.map → ConnectedDocumentViewer-IQHDCAZ5.cjs.map} +1 -1
  12. package/dist/{ConnectedDocumentViewer-HKIBNGGG.js → ConnectedDocumentViewer-NIZBKBJN.js} +11 -11
  13. package/dist/{ConnectedDocumentViewer-HKIBNGGG.js.map → ConnectedDocumentViewer-NIZBKBJN.js.map} +1 -1
  14. package/dist/{ConnectedNativeDocxComparison-PSAP3Q7D.js → ConnectedNativeDocxComparison-FPW3BNBN.js} +6 -6
  15. package/dist/ConnectedNativeDocxComparison-FPW3BNBN.js.map +1 -0
  16. package/dist/{ConnectedNativeDocxComparison-L3R3ROPZ.cjs → ConnectedNativeDocxComparison-HJ4FTVH6.cjs} +7 -7
  17. package/dist/ConnectedNativeDocxComparison-HJ4FTVH6.cjs.map +1 -0
  18. package/dist/{ConnectedNativeDocxEditor-VDBC4XRT.cjs → ConnectedNativeDocxEditor-PF46MU5H.cjs} +7 -7
  19. package/dist/ConnectedNativeDocxEditor-PF46MU5H.cjs.map +1 -0
  20. package/dist/{ConnectedNativeDocxEditor-PI6QTPXZ.js → ConnectedNativeDocxEditor-S7NJMDSU.js} +5 -5
  21. package/dist/ConnectedNativeDocxEditor-S7NJMDSU.js.map +1 -0
  22. package/dist/{ConnectedStreamedWordArtifact-V4MTKVNE.js → ConnectedStreamedWordArtifact-5MHLV24V.js} +6 -6
  23. package/dist/ConnectedStreamedWordArtifact-5MHLV24V.js.map +1 -0
  24. package/dist/{ConnectedStreamedWordArtifact-YSW6D7AG.cjs → ConnectedStreamedWordArtifact-LNGW7YGV.cjs} +7 -7
  25. package/dist/ConnectedStreamedWordArtifact-LNGW7YGV.cjs.map +1 -0
  26. package/dist/{DocumentReviewCard-TQQADJ36.js → DocumentReviewCard-5U3TGJZA.js} +6 -6
  27. package/dist/{DocumentReviewCard-TQQADJ36.js.map → DocumentReviewCard-5U3TGJZA.js.map} +1 -1
  28. package/dist/{DocumentReviewCard-BQ6ZD5MD.cjs → DocumentReviewCard-VFNMJSK7.cjs} +6 -6
  29. package/dist/{DocumentReviewCard-BQ6ZD5MD.cjs.map → DocumentReviewCard-VFNMJSK7.cjs.map} +1 -1
  30. package/dist/{WorkspaceTableView-GKMVTECZ.cjs → WorkspaceTableView-DHMCJRC6.cjs} +6 -6
  31. package/dist/{WorkspaceTableView-GKMVTECZ.cjs.map → WorkspaceTableView-DHMCJRC6.cjs.map} +1 -1
  32. package/dist/{WorkspaceTableView-YFLVFRJL.js → WorkspaceTableView-EH5CEB44.js} +4 -4
  33. package/dist/{WorkspaceTableView-YFLVFRJL.js.map → WorkspaceTableView-EH5CEB44.js.map} +1 -1
  34. package/dist/agents/index.cjs +283 -283
  35. package/dist/agents/index.js +5 -5
  36. package/dist/calls/index.cjs +2 -2
  37. package/dist/calls/index.js +2 -2
  38. package/dist/chat/index.cjs +57 -57
  39. package/dist/chat/index.js +4 -4
  40. package/dist/{chunk-D27BBGUF.cjs → chunk-23ACBETH.cjs} +4 -4
  41. package/dist/{chunk-D27BBGUF.cjs.map → chunk-23ACBETH.cjs.map} +1 -1
  42. package/dist/{chunk-4CI42DCG.js → chunk-323R76RZ.js} +50 -5
  43. package/dist/chunk-323R76RZ.js.map +1 -0
  44. package/dist/{chunk-DJE2E7YH.cjs → chunk-3VFQYKB5.cjs} +3 -3
  45. package/dist/{chunk-DJE2E7YH.cjs.map → chunk-3VFQYKB5.cjs.map} +1 -1
  46. package/dist/{chunk-JSHBC47B.cjs → chunk-45Y7ASBC.cjs} +53 -47
  47. package/dist/chunk-45Y7ASBC.cjs.map +1 -0
  48. package/dist/{chunk-TVHTXO6V.cjs → chunk-56WWEK6I.cjs} +4 -4
  49. package/dist/{chunk-TVHTXO6V.cjs.map → chunk-56WWEK6I.cjs.map} +1 -1
  50. package/dist/{chunk-CGCTODPC.cjs → chunk-6PGTH2HD.cjs} +4 -4
  51. package/dist/{chunk-CGCTODPC.cjs.map → chunk-6PGTH2HD.cjs.map} +1 -1
  52. package/dist/{chunk-PBIFISDD.js → chunk-7P24MJQN.js} +3 -3
  53. package/dist/{chunk-PBIFISDD.js.map → chunk-7P24MJQN.js.map} +1 -1
  54. package/dist/{chunk-6QZ35CTZ.js → chunk-AD76WTGR.js} +3 -3
  55. package/dist/{chunk-6QZ35CTZ.js.map → chunk-AD76WTGR.js.map} +1 -1
  56. package/dist/{chunk-ROWJU4SK.cjs → chunk-AKGV6JUC.cjs} +12 -128
  57. package/dist/chunk-AKGV6JUC.cjs.map +1 -0
  58. package/dist/{chunk-UIUWCTIZ.js → chunk-APXW5XGA.js} +165 -4
  59. package/dist/chunk-APXW5XGA.js.map +1 -0
  60. package/dist/{chunk-SEVFIBF3.cjs → chunk-BFIHXDO6.cjs} +4 -4
  61. package/dist/{chunk-SEVFIBF3.cjs.map → chunk-BFIHXDO6.cjs.map} +1 -1
  62. package/dist/{chunk-6OMIIF76.js → chunk-BWWND4Y7.js} +3 -3
  63. package/dist/{chunk-6OMIIF76.js.map → chunk-BWWND4Y7.js.map} +1 -1
  64. package/dist/{chunk-EG3BB32W.cjs → chunk-CCSF7RI4.cjs} +3 -3
  65. package/dist/{chunk-EG3BB32W.cjs.map → chunk-CCSF7RI4.cjs.map} +1 -1
  66. package/dist/{chunk-QK546T4C.cjs → chunk-CKNUL4LM.cjs} +3 -3
  67. package/dist/{chunk-QK546T4C.cjs.map → chunk-CKNUL4LM.cjs.map} +1 -1
  68. package/dist/{chunk-TJ7QEGVP.cjs → chunk-COZDIUG7.cjs} +18 -18
  69. package/dist/{chunk-TJ7QEGVP.cjs.map → chunk-COZDIUG7.cjs.map} +1 -1
  70. package/dist/{chunk-YQEXBJVO.js → chunk-DF5X27QX.js} +42 -5
  71. package/dist/chunk-DF5X27QX.js.map +1 -0
  72. package/dist/{chunk-B3CRSCLK.cjs → chunk-EOIJ5JYP.cjs} +4 -4
  73. package/dist/{chunk-B3CRSCLK.cjs.map → chunk-EOIJ5JYP.cjs.map} +1 -1
  74. package/dist/{chunk-GPYLXEZO.js → chunk-FCOK73I3.js} +6 -120
  75. package/dist/chunk-FCOK73I3.js.map +1 -0
  76. package/dist/{chunk-CJF7B5A7.cjs → chunk-FHXXDPNU.cjs} +12 -12
  77. package/dist/{chunk-CJF7B5A7.cjs.map → chunk-FHXXDPNU.cjs.map} +1 -1
  78. package/dist/{chunk-ITRI47DF.cjs → chunk-GMGEAWFX.cjs} +41 -4
  79. package/dist/chunk-GMGEAWFX.cjs.map +1 -0
  80. package/dist/{chunk-LNH6NYG4.js → chunk-I3VBVP6R.js} +121 -6
  81. package/dist/chunk-I3VBVP6R.js.map +1 -0
  82. package/dist/{chunk-ZZHMJXM5.cjs → chunk-IXZCXK6Q.cjs} +122 -5
  83. package/dist/chunk-IXZCXK6Q.cjs.map +1 -0
  84. package/dist/{chunk-SBAM3UZX.js → chunk-JWRTUYLC.js} +3 -3
  85. package/dist/{chunk-SBAM3UZX.js.map → chunk-JWRTUYLC.js.map} +1 -1
  86. package/dist/{chunk-PLEMVK2W.js → chunk-KQLUMK56.js} +3 -3
  87. package/dist/{chunk-PLEMVK2W.js.map → chunk-KQLUMK56.js.map} +1 -1
  88. package/dist/{chunk-PNZVUH46.cjs → chunk-LAQ3Y5JP.cjs} +6 -6
  89. package/dist/{chunk-PNZVUH46.cjs.map → chunk-LAQ3Y5JP.cjs.map} +1 -1
  90. package/dist/{chunk-AESJLGMC.cjs → chunk-LEW4GUFW.cjs} +7 -7
  91. package/dist/{chunk-AESJLGMC.cjs.map → chunk-LEW4GUFW.cjs.map} +1 -1
  92. package/dist/{chunk-2LUA7UDE.js → chunk-NDVLCOWS.js} +7 -7
  93. package/dist/{chunk-2LUA7UDE.js.map → chunk-NDVLCOWS.js.map} +1 -1
  94. package/dist/{chunk-43IVRSFX.js → chunk-NVXNTHL4.js} +3 -3
  95. package/dist/{chunk-43IVRSFX.js.map → chunk-NVXNTHL4.js.map} +1 -1
  96. package/dist/{chunk-IRXPUQFP.js → chunk-OZL5ABLF.js} +3 -3
  97. package/dist/{chunk-IRXPUQFP.js.map → chunk-OZL5ABLF.js.map} +1 -1
  98. package/dist/{chunk-5EGTGHBW.js → chunk-PGKZBAJB.js} +12 -6
  99. package/dist/chunk-PGKZBAJB.js.map +1 -0
  100. package/dist/{chunk-KNOSLLTC.js → chunk-PKDPQS6Z.js} +3 -3
  101. package/dist/{chunk-KNOSLLTC.js.map → chunk-PKDPQS6Z.js.map} +1 -1
  102. package/dist/{chunk-VWM3J6ES.js → chunk-PVPGD6QR.js} +3 -3
  103. package/dist/{chunk-VWM3J6ES.js.map → chunk-PVPGD6QR.js.map} +1 -1
  104. package/dist/{chunk-C2S246BV.js → chunk-RAGITH2N.js} +4 -4
  105. package/dist/{chunk-C2S246BV.js.map → chunk-RAGITH2N.js.map} +1 -1
  106. package/dist/{chunk-4Q7ON335.js → chunk-RFKAE6WS.js} +5 -5
  107. package/dist/{chunk-4Q7ON335.js.map → chunk-RFKAE6WS.js.map} +1 -1
  108. package/dist/{chunk-2C4YUIVX.js → chunk-T2VGD4X6.js} +3 -3
  109. package/dist/{chunk-2C4YUIVX.js.map → chunk-T2VGD4X6.js.map} +1 -1
  110. package/dist/{chunk-CEKOZAGO.js → chunk-TAI23FCY.js} +3 -3
  111. package/dist/{chunk-CEKOZAGO.js.map → chunk-TAI23FCY.js.map} +1 -1
  112. package/dist/{chunk-WBLCPCWR.cjs → chunk-UDMII47W.cjs} +7 -7
  113. package/dist/{chunk-WBLCPCWR.cjs.map → chunk-UDMII47W.cjs.map} +1 -1
  114. package/dist/{chunk-SFTQO3TU.js → chunk-UO3FS6ZF.js} +3 -3
  115. package/dist/{chunk-SFTQO3TU.js.map → chunk-UO3FS6ZF.js.map} +1 -1
  116. package/dist/{chunk-BELZ2WD2.js → chunk-W5D5GFP2.js} +3 -3
  117. package/dist/{chunk-BELZ2WD2.js.map → chunk-W5D5GFP2.js.map} +1 -1
  118. package/dist/{chunk-LFS6UWSJ.cjs → chunk-XWUGPV7H.cjs} +5 -5
  119. package/dist/{chunk-LFS6UWSJ.cjs.map → chunk-XWUGPV7H.cjs.map} +1 -1
  120. package/dist/{chunk-K26RLK2Y.cjs → chunk-Y6ZNWC7E.cjs} +3 -3
  121. package/dist/{chunk-K26RLK2Y.cjs.map → chunk-Y6ZNWC7E.cjs.map} +1 -1
  122. package/dist/{chunk-F777MGVA.cjs → chunk-YBVBDVQX.cjs} +18 -18
  123. package/dist/{chunk-F777MGVA.cjs.map → chunk-YBVBDVQX.cjs.map} +1 -1
  124. package/dist/{chunk-OM5IVNEW.cjs → chunk-Z4KXF7WS.cjs} +165 -2
  125. package/dist/chunk-Z4KXF7WS.cjs.map +1 -0
  126. package/dist/{chunk-7MOQO6NO.cjs → chunk-ZIQGSFHG.cjs} +53 -5
  127. package/dist/chunk-ZIQGSFHG.cjs.map +1 -0
  128. package/dist/connect/docx.cjs +11 -11
  129. package/dist/connect/docx.js +7 -7
  130. package/dist/connect/index.cjs +1723 -1149
  131. package/dist/connect/index.cjs.map +1 -1
  132. package/dist/connect/index.d.ts +3 -0
  133. package/dist/connect/index.js +1191 -633
  134. package/dist/connect/index.js.map +1 -1
  135. package/dist/connect/viewer.cjs +10 -10
  136. package/dist/connect/viewer.js +9 -9
  137. package/dist/connection/billing/index.d.ts +1 -0
  138. package/dist/connection/billing/payment-required.d.ts +45 -0
  139. package/dist/connection/runtime/ConnectedAppRuntime.d.ts +1 -1
  140. package/dist/connection/runtime/index.d.ts +1 -1
  141. package/dist/connection/runtime/requests.d.ts +8 -0
  142. package/dist/connection/runtime/useWelcomeDialog.d.ts +3 -0
  143. package/dist/connection/settings-page/ConnectedModelConnectionsSettings.d.ts +1 -0
  144. package/dist/connection/settings-page/ConnectedSettingsPage.d.ts +3 -0
  145. package/dist/connection/settings-page/index.d.ts +2 -1
  146. package/dist/connection/tips/ConnectedGettingStarted.d.ts +20 -0
  147. package/dist/connection/tips/ConnectedTipBar.d.ts +49 -0
  148. package/dist/connection/tips/useGettingStarted.d.ts +51 -0
  149. package/dist/connection/workflows/useWorkflowsPageState.d.ts +1 -1
  150. package/dist/dashboards/index.cjs +1 -1
  151. package/dist/dashboards/index.js +1 -1
  152. package/dist/document-tools/index.cjs +17 -17
  153. package/dist/document-tools/index.js +2 -2
  154. package/dist/embed/index.cjs +9 -9
  155. package/dist/embed/index.js +6 -6
  156. package/dist/facts/index.cjs +1 -1
  157. package/dist/facts/index.js +1 -1
  158. package/dist/files/index.cjs +1 -1
  159. package/dist/files/index.js +1 -1
  160. package/dist/home/index.cjs +23 -178
  161. package/dist/home/index.cjs.map +1 -1
  162. package/dist/home/index.js +3 -164
  163. package/dist/home/index.js.map +1 -1
  164. package/dist/index.cjs +606 -634
  165. package/dist/index.cjs.map +1 -1
  166. package/dist/index.js +23 -62
  167. package/dist/index.js.map +1 -1
  168. package/dist/shell/index.cjs +73 -73
  169. package/dist/shell/index.js +4 -4
  170. package/dist/site/index.cjs +17 -17
  171. package/dist/site/index.js +1 -1
  172. package/dist/studio/index.cjs +10 -10
  173. package/dist/studio/index.js +7 -7
  174. package/dist/tips/index.d.ts +1 -1
  175. package/dist/tips/visibility.d.ts +7 -0
  176. package/dist/workflow-canvas/index.cjs +27 -27
  177. package/dist/workflow-canvas/index.cjs.map +1 -1
  178. package/dist/workflow-canvas/index.js +12 -12
  179. package/dist/workflow-canvas/index.js.map +1 -1
  180. package/node_modules/@arbidocs/coedit/package.json +1 -1
  181. package/package.json +5 -5
  182. package/dist/ConnectedNativeDocxComparison-L3R3ROPZ.cjs.map +0 -1
  183. package/dist/ConnectedNativeDocxComparison-PSAP3Q7D.js.map +0 -1
  184. package/dist/ConnectedNativeDocxEditor-PI6QTPXZ.js.map +0 -1
  185. package/dist/ConnectedNativeDocxEditor-VDBC4XRT.cjs.map +0 -1
  186. package/dist/ConnectedStreamedWordArtifact-V4MTKVNE.js.map +0 -1
  187. package/dist/ConnectedStreamedWordArtifact-YSW6D7AG.cjs.map +0 -1
  188. package/dist/chunk-4CI42DCG.js.map +0 -1
  189. package/dist/chunk-5EGTGHBW.js.map +0 -1
  190. package/dist/chunk-7MOQO6NO.cjs.map +0 -1
  191. package/dist/chunk-GPYLXEZO.js.map +0 -1
  192. package/dist/chunk-ITRI47DF.cjs.map +0 -1
  193. package/dist/chunk-JSHBC47B.cjs.map +0 -1
  194. package/dist/chunk-LNH6NYG4.js.map +0 -1
  195. package/dist/chunk-OM5IVNEW.cjs.map +0 -1
  196. package/dist/chunk-ROWJU4SK.cjs.map +0 -1
  197. package/dist/chunk-UIUWCTIZ.js.map +0 -1
  198. package/dist/chunk-YQEXBJVO.js.map +0 -1
  199. package/dist/chunk-ZZHMJXM5.cjs.map +0 -1
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkOM5IVNEW_cjs = require('../chunk-OM5IVNEW.cjs');
4
+ var chunkZ4KXF7WS_cjs = require('../chunk-Z4KXF7WS.cjs');
5
5
  var chunkOU3RGQFX_cjs = require('../chunk-OU3RGQFX.cjs');
6
6
  var chunkREH7PX3N_cjs = require('../chunk-REH7PX3N.cjs');
7
7
  var chunkH32DV7XS_cjs = require('../chunk-H32DV7XS.cjs');
@@ -17,7 +17,6 @@ var chunkMHVNT4J3_cjs = require('../chunk-MHVNT4J3.cjs');
17
17
  require('../chunk-DES3K4SD.cjs');
18
18
  var ui = require('@arbidocs/react/ui');
19
19
  var jsxRuntime = require('react/jsx-runtime');
20
- var lucideReact = require('lucide-react');
21
20
 
22
21
  function Greeting({
23
22
  eyebrow,
@@ -54,166 +53,6 @@ function Greeting({
54
53
  }
55
54
  ) });
56
55
  }
57
- var DEFAULT_GETTING_STARTED_STRIP_LABELS = {
58
- allSet: (firstName) => `You\u2019re all set${firstName ? `, ${firstName}` : ""}!`,
59
- finished: (stepCount) => `You\u2019ve finished the ${stepCount} getting-started steps \u2014 explore away.`,
60
- done: "Done",
61
- welcome: (firstName) => `Welcome, ${firstName}`,
62
- getStarted: "Get started with ARBI",
63
- replayDone: "Nicely done \u2014 that\u2019s the tour again",
64
- almostThere: "Almost there",
65
- dismiss: "Dismiss getting started"
66
- };
67
- function circleClasses(done, isCurrent) {
68
- if (done) return "border-primary bg-primary text-primary-foreground";
69
- if (isCurrent) return "border-primary bg-accent text-accent-foreground";
70
- return "border-border text-muted-foreground";
71
- }
72
- function Journey({
73
- steps,
74
- currentStepId,
75
- testId
76
- }) {
77
- return /* @__PURE__ */ jsxRuntime.jsx(
78
- "ol",
79
- {
80
- className: "hidden min-w-0 shrink items-center overflow-x-auto sm:flex",
81
- "data-slot": "journey",
82
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testId, { testId: "getting-started-stepper" }),
83
- children: steps.map((step, i) => {
84
- const isCurrent = step.id === currentStepId;
85
- return /* @__PURE__ */ jsxRuntime.jsxs(
86
- "li",
87
- {
88
- className: "flex shrink-0 items-center",
89
- "data-testid": chunkMHVNT4J3_cjs.prefixedTestId(testId, step.id, {
90
- testId: `getting-started-stepper-${step.id}`
91
- }),
92
- "data-done": step.done,
93
- "data-current": isCurrent,
94
- children: [
95
- i > 0 && /* @__PURE__ */ jsxRuntime.jsx(
96
- "span",
97
- {
98
- className: ui.cn(
99
- "h-0 w-3 shrink-0 border-t-2 border-solid transition-colors duration-500",
100
- steps[i - 1].done ? "border-primary" : "border-border"
101
- )
102
- }
103
- ),
104
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-1.5", children: [
105
- /* @__PURE__ */ jsxRuntime.jsx(
106
- "span",
107
- {
108
- className: ui.cn(
109
- "flex size-6 shrink-0 items-center justify-center rounded-full border-2 text-xs font-semibold tabular-nums transition-colors",
110
- circleClasses(step.done, isCurrent)
111
- ),
112
- children: i + 1
113
- }
114
- ),
115
- /* @__PURE__ */ jsxRuntime.jsx(
116
- "span",
117
- {
118
- className: ui.cn(
119
- "text-sm font-medium",
120
- step.done ? "text-muted-foreground line-through" : isCurrent ? "text-foreground" : "text-muted-foreground"
121
- ),
122
- children: step.title
123
- }
124
- ),
125
- isCurrent && !step.done && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-muted-foreground", children: [
126
- "\u2014 ",
127
- step.description
128
- ] })
129
- ] })
130
- ]
131
- },
132
- step.id
133
- );
134
- })
135
- }
136
- );
137
- }
138
- function GettingStartedStrip({
139
- steps,
140
- currentStepId,
141
- firstName,
142
- isReplay = false,
143
- isComplete = false,
144
- onDismiss,
145
- logo,
146
- labels,
147
- className,
148
- testId,
149
- testIds
150
- }) {
151
- const l = { ...DEFAULT_GETTING_STARTED_STRIP_LABELS, ...labels };
152
- if (isComplete && !isReplay) {
153
- return /* @__PURE__ */ jsxRuntime.jsxs(
154
- "div",
155
- {
156
- className: ui.cn("flex min-w-0 items-center gap-3", className),
157
- "data-slot": "getting-started-strip",
158
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testId, { testId: "getting-started" }),
159
- children: [
160
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PartyPopper, { className: "size-5 shrink-0 text-primary", "aria-hidden": "true" }),
161
- /* @__PURE__ */ jsxRuntime.jsxs(
162
- "p",
163
- {
164
- className: "min-w-0 shrink truncate text-base",
165
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.complete, { testId: "getting-started-complete" }),
166
- children: [
167
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold text-foreground", children: l.allSet(firstName) }),
168
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mx-1.5 text-muted-foreground", children: "\xB7" }),
169
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: l.finished(steps.length) })
170
- ]
171
- }
172
- ),
173
- /* @__PURE__ */ jsxRuntime.jsx(Journey, { steps, currentStepId, testId: testIds?.stepper }),
174
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1" }),
175
- /* @__PURE__ */ jsxRuntime.jsx(
176
- "button",
177
- {
178
- type: "button",
179
- onClick: onDismiss,
180
- className: "shrink-0 rounded-md bg-muted px-3 py-1.5 text-sm font-medium text-foreground transition-colors hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:min-h-11",
181
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.done, { testId: "getting-started-done" }),
182
- children: l.done
183
- }
184
- )
185
- ]
186
- }
187
- );
188
- }
189
- const greeting = firstName ? l.welcome(firstName) : l.getStarted;
190
- return /* @__PURE__ */ jsxRuntime.jsxs(
191
- "div",
192
- {
193
- className: ui.cn("flex min-w-0 items-center gap-3", className),
194
- "data-slot": "getting-started-strip",
195
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testId, { testId: "getting-started" }),
196
- children: [
197
- logo,
198
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 text-base font-semibold text-foreground", children: greeting }),
199
- /* @__PURE__ */ jsxRuntime.jsx(Journey, { steps, currentStepId, testId: testIds?.stepper }),
200
- !currentStepId && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 flex-1 truncate text-sm text-muted-foreground", children: isReplay ? l.replayDone : l.almostThere }),
201
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1" }),
202
- /* @__PURE__ */ jsxRuntime.jsx(
203
- "button",
204
- {
205
- type: "button",
206
- onClick: onDismiss,
207
- className: "shrink-0 rounded-md p-1 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:p-3",
208
- "aria-label": l.dismiss,
209
- "data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.dismiss, { testId: "getting-started-dismiss" }),
210
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "size-4" })
211
- }
212
- )
213
- ]
214
- }
215
- );
216
- }
217
56
  function ActionMenuDialog({
218
57
  open,
219
58
  onOpenChange,
@@ -372,59 +211,67 @@ function CardHeaderBar({
372
211
 
373
212
  Object.defineProperty(exports, "CreateTile", {
374
213
  enumerable: true,
375
- get: function () { return chunkOM5IVNEW_cjs.CreateTile; }
214
+ get: function () { return chunkZ4KXF7WS_cjs.CreateTile; }
376
215
  });
377
216
  Object.defineProperty(exports, "DASHBOARD_QUIET_ACTION_CLASS", {
378
217
  enumerable: true,
379
- get: function () { return chunkOM5IVNEW_cjs.DASHBOARD_QUIET_ACTION_CLASS; }
218
+ get: function () { return chunkZ4KXF7WS_cjs.DASHBOARD_QUIET_ACTION_CLASS; }
219
+ });
220
+ Object.defineProperty(exports, "DEFAULT_GETTING_STARTED_STRIP_LABELS", {
221
+ enumerable: true,
222
+ get: function () { return chunkZ4KXF7WS_cjs.DEFAULT_GETTING_STARTED_STRIP_LABELS; }
380
223
  });
381
224
  Object.defineProperty(exports, "DashboardAction", {
382
225
  enumerable: true,
383
- get: function () { return chunkOM5IVNEW_cjs.DashboardAction; }
226
+ get: function () { return chunkZ4KXF7WS_cjs.DashboardAction; }
384
227
  });
385
228
  Object.defineProperty(exports, "DashboardBand", {
386
229
  enumerable: true,
387
- get: function () { return chunkOM5IVNEW_cjs.DashboardBand; }
230
+ get: function () { return chunkZ4KXF7WS_cjs.DashboardBand; }
388
231
  });
389
232
  Object.defineProperty(exports, "DashboardColumns", {
390
233
  enumerable: true,
391
- get: function () { return chunkOM5IVNEW_cjs.DashboardColumns; }
234
+ get: function () { return chunkZ4KXF7WS_cjs.DashboardColumns; }
392
235
  });
393
236
  Object.defineProperty(exports, "DashboardRoot", {
394
237
  enumerable: true,
395
- get: function () { return chunkOM5IVNEW_cjs.DashboardRoot; }
238
+ get: function () { return chunkZ4KXF7WS_cjs.DashboardRoot; }
396
239
  });
397
240
  Object.defineProperty(exports, "FactMark", {
398
241
  enumerable: true,
399
- get: function () { return chunkOM5IVNEW_cjs.FactMark; }
242
+ get: function () { return chunkZ4KXF7WS_cjs.FactMark; }
400
243
  });
401
244
  Object.defineProperty(exports, "FactsStrip", {
402
245
  enumerable: true,
403
- get: function () { return chunkOM5IVNEW_cjs.FactsStrip; }
246
+ get: function () { return chunkZ4KXF7WS_cjs.FactsStrip; }
247
+ });
248
+ Object.defineProperty(exports, "GettingStartedStrip", {
249
+ enumerable: true,
250
+ get: function () { return chunkZ4KXF7WS_cjs.GettingStartedStrip; }
404
251
  });
405
252
  Object.defineProperty(exports, "HomeCenteredColumn", {
406
253
  enumerable: true,
407
- get: function () { return chunkOM5IVNEW_cjs.HomeCenteredColumn; }
254
+ get: function () { return chunkZ4KXF7WS_cjs.HomeCenteredColumn; }
408
255
  });
409
256
  Object.defineProperty(exports, "HomeCenteredScroll", {
410
257
  enumerable: true,
411
- get: function () { return chunkOM5IVNEW_cjs.HomeCenteredScroll; }
258
+ get: function () { return chunkZ4KXF7WS_cjs.HomeCenteredScroll; }
412
259
  });
413
260
  Object.defineProperty(exports, "HomeFrame", {
414
261
  enumerable: true,
415
- get: function () { return chunkOM5IVNEW_cjs.HomeFrame; }
262
+ get: function () { return chunkZ4KXF7WS_cjs.HomeFrame; }
416
263
  });
417
264
  Object.defineProperty(exports, "HomeLoadError", {
418
265
  enumerable: true,
419
- get: function () { return chunkOM5IVNEW_cjs.HomeLoadError; }
266
+ get: function () { return chunkZ4KXF7WS_cjs.HomeLoadError; }
420
267
  });
421
268
  Object.defineProperty(exports, "HomeMain", {
422
269
  enumerable: true,
423
- get: function () { return chunkOM5IVNEW_cjs.HomeMain; }
270
+ get: function () { return chunkZ4KXF7WS_cjs.HomeMain; }
424
271
  });
425
272
  Object.defineProperty(exports, "RecentList", {
426
273
  enumerable: true,
427
- get: function () { return chunkOM5IVNEW_cjs.RecentList; }
274
+ get: function () { return chunkZ4KXF7WS_cjs.RecentList; }
428
275
  });
429
276
  Object.defineProperty(exports, "BulkDeleteButton", {
430
277
  enumerable: true,
@@ -524,8 +371,6 @@ Object.defineProperty(exports, "useScopeSelection", {
524
371
  });
525
372
  exports.ActionMenuDialog = ActionMenuDialog;
526
373
  exports.CardHeaderBar = CardHeaderBar;
527
- exports.DEFAULT_GETTING_STARTED_STRIP_LABELS = DEFAULT_GETTING_STARTED_STRIP_LABELS;
528
- exports.GettingStartedStrip = GettingStartedStrip;
529
374
  exports.Greeting = Greeting;
530
375
  //# sourceMappingURL=index.cjs.map
531
376
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/home/Greeting.tsx","../../src/home/GettingStartedStrip.tsx","../../src/home/ActionMenuDialog.tsx","../../src/home/CardHeaderBar.tsx"],"names":["jsxs","cn","jsx","testIdOr","prefixedTestId","PartyPopper","X","Dialog","DialogContent","QuickActionDialogHeader"],"mappings":"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","file":"index.cjs","sourcesContent":["import type { ReactNode } from 'react'\nimport { cn } from '@arbidocs/react/ui'\n\nexport interface GreetingProps {\n /** Small line above the title, e.g. today's date. */\n eyebrow?: string\n title: string\n description?: string\n /** Trailing controls (view toggle, primary action). */\n actions?: ReactNode\n className?: string\n testId?: string\n eyebrowTestId?: string\n titleTestId?: string\n}\n\n/**\n * The home page header: eyebrow, greeting, one muted line and trailing\n * actions, centred in the same column as the content below it.\n */\nexport function Greeting({\n eyebrow,\n title,\n description,\n actions,\n className,\n testId,\n eyebrowTestId,\n titleTestId,\n}: GreetingProps) {\n return (\n <div className=\"bg-background\" data-slot=\"greeting\" data-testid={testId}>\n <div\n className={cn(\n 'mx-auto flex max-w-6xl flex-wrap items-end justify-between gap-x-4 gap-y-3 px-4 pb-4 pt-8 sm:px-8',\n className\n )}\n >\n <div className=\"min-w-0\">\n {eyebrow && (\n <p className=\"text-xs text-muted-foreground\" data-testid={eyebrowTestId}>\n {eyebrow}\n </p>\n )}\n <h1\n className=\"mt-1 break-words text-xl font-semibold tracking-tight text-foreground sm:text-2xl\"\n data-testid={titleTestId}\n >\n {title}\n </h1>\n {description && <p className=\"mt-1 text-sm text-muted-foreground\">{description}</p>}\n </div>\n {actions}\n </div>\n </div>\n )\n}\n","import type { ReactNode } from 'react'\nimport { PartyPopper, X } from 'lucide-react'\nimport { cn } from '@arbidocs/react/ui'\nimport { prefixedTestId, testIdOr } from '../chat/test-id'\n\n/** Fixed strings of the strip. */\nexport interface GettingStartedStripLabels {\n /** The close banner's headline. */\n allSet: (firstName?: string) => string\n /** The close banner's second line. */\n finished: (stepCount: number) => string\n done: string\n welcome: (firstName: string) => string\n getStarted: string\n replayDone: string\n almostThere: string\n dismiss: string\n}\n\nexport const DEFAULT_GETTING_STARTED_STRIP_LABELS: GettingStartedStripLabels = {\n allSet: (firstName) => `You’re all set${firstName ? `, ${firstName}` : ''}!`,\n finished: (stepCount) => `You’ve finished the ${stepCount} getting-started steps — explore away.`,\n done: 'Done',\n welcome: (firstName) => `Welcome, ${firstName}`,\n getStarted: 'Get started with ARBI',\n replayDone: 'Nicely done — that’s the tour again',\n almostThere: 'Almost there',\n dismiss: 'Dismiss getting started',\n}\n\nexport interface JourneyStep {\n id: string\n title: string\n /** The instruction shown beside the CURRENT step. */\n description: string\n done: boolean\n}\n\nexport interface GettingStartedStripProps {\n /** The core steps, in order. Numbers are their position. */\n steps: JourneyStep[]\n /** The first step not yet done; undefined when all are. */\n currentStepId?: string\n firstName?: string\n /** Replaying the tour: the finished banner is skipped and copy says so. */\n isReplay?: boolean\n /** Every core step is done (and this is not a replay): show the close banner. */\n isComplete?: boolean\n onDismiss: () => void\n /** Brand mark before the greeting. */\n logo?: ReactNode\n labels?: Partial<GettingStartedStripLabels>\n className?: string\n /** Root test id (default `getting-started`). */\n testId?: string\n /** Sub-element ids; defaults are the current ids. The per-step id is `<stepper>-<step id>`. */\n testIds?: Partial<Record<'stepper' | 'complete' | 'done' | 'dismiss', string>>\n}\n\n// Full literal class strings per state so Tailwind's scanner sees every class.\n// Navy = progress/selection; cyan is reserved for \"this is ARBI/AI\".\nfunction circleClasses(done: boolean, isCurrent: boolean): string {\n if (done) return 'border-primary bg-primary text-primary-foreground'\n if (isCurrent) return 'border-primary bg-accent text-accent-foreground'\n return 'border-border text-muted-foreground'\n}\n\n/**\n * The numbered journey. A step's number never turns into a check: a filled\n * circle plus a struck-through title says \"done\", so status and identity both\n * stay legible without a second glyph. The current step also carries its\n * instruction, the one thing this row tells you to go do.\n */\nfunction Journey({\n steps,\n currentStepId,\n testId,\n}: {\n steps: JourneyStep[]\n currentStepId?: string\n testId?: string\n}) {\n return (\n <ol\n className=\"hidden min-w-0 shrink items-center overflow-x-auto sm:flex\"\n data-slot=\"journey\"\n data-testid={testIdOr(testId, { testId: 'getting-started-stepper' })}\n >\n {steps.map((step, i) => {\n const isCurrent = step.id === currentStepId\n return (\n <li\n key={step.id}\n className=\"flex shrink-0 items-center\"\n data-testid={prefixedTestId(testId, step.id, {\n testId: `getting-started-stepper-${step.id}`,\n })}\n data-done={step.done}\n data-current={isCurrent}\n >\n {i > 0 && (\n <span\n className={cn(\n 'h-0 w-3 shrink-0 border-t-2 border-solid transition-colors duration-500',\n steps[i - 1].done ? 'border-primary' : 'border-border'\n )}\n />\n )}\n <span className=\"flex items-center gap-1.5\">\n <span\n className={cn(\n 'flex size-6 shrink-0 items-center justify-center rounded-full border-2 text-xs font-semibold tabular-nums transition-colors',\n circleClasses(step.done, isCurrent)\n )}\n >\n {i + 1}\n </span>\n <span\n className={cn(\n 'text-sm font-medium',\n step.done\n ? 'text-muted-foreground line-through'\n : isCurrent\n ? 'text-foreground'\n : 'text-muted-foreground'\n )}\n >\n {step.title}\n </span>\n {isCurrent && !step.done && (\n <span className=\"text-muted-foreground\">— {step.description}</span>\n )}\n </span>\n </li>\n )\n })}\n </ol>\n )\n}\n\n/**\n * First-run activation row: greeting, the numbered journey and the current\n * step's instruction, all in ONE bare row (no container, no border), so it can\n * live in a topbar slot. A guide, not a shortcut: it says WHERE to go and the\n * host detects completion itself.\n */\nexport function GettingStartedStrip({\n steps,\n currentStepId,\n firstName,\n isReplay = false,\n isComplete = false,\n onDismiss,\n logo,\n labels,\n className,\n testId,\n testIds,\n}: GettingStartedStripProps) {\n const l = { ...DEFAULT_GETTING_STARTED_STRIP_LABELS, ...labels }\n if (isComplete && !isReplay) {\n return (\n <div\n className={cn('flex min-w-0 items-center gap-3', className)}\n data-slot=\"getting-started-strip\"\n data-testid={testIdOr(testId, { testId: 'getting-started' })}\n >\n <PartyPopper className=\"size-5 shrink-0 text-primary\" aria-hidden=\"true\" />\n <p\n className=\"min-w-0 shrink truncate text-base\"\n data-testid={testIdOr(testIds?.complete, { testId: 'getting-started-complete' })}\n >\n <span className=\"font-semibold text-foreground\">{l.allSet(firstName)}</span>\n <span className=\"mx-1.5 text-muted-foreground\">·</span>\n <span className=\"text-muted-foreground\">{l.finished(steps.length)}</span>\n </p>\n <Journey steps={steps} currentStepId={currentStepId} testId={testIds?.stepper} />\n <div className=\"flex-1\" />\n <button\n type=\"button\"\n onClick={onDismiss}\n className=\"shrink-0 rounded-md bg-muted px-3 py-1.5 text-sm font-medium text-foreground transition-colors hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:min-h-11\"\n data-testid={testIdOr(testIds?.done, { testId: 'getting-started-done' })}\n >\n {l.done}\n </button>\n </div>\n )\n }\n\n const greeting = firstName ? l.welcome(firstName) : l.getStarted\n\n return (\n <div\n className={cn('flex min-w-0 items-center gap-3', className)}\n data-slot=\"getting-started-strip\"\n data-testid={testIdOr(testId, { testId: 'getting-started' })}\n >\n {logo}\n <span className=\"shrink-0 text-base font-semibold text-foreground\">{greeting}</span>\n\n <Journey steps={steps} currentStepId={currentStepId} testId={testIds?.stepper} />\n\n {/* Reachable two ways: everything is done but not yet acknowledged (a\n brief instant before the banner takes over), or during a replay you\n have redone all the steps again. */}\n {!currentStepId && (\n <span className=\"min-w-0 flex-1 truncate text-sm text-muted-foreground\">\n {isReplay ? l.replayDone : l.almostThere}\n </span>\n )}\n <div className=\"flex-1\" />\n\n <button\n type=\"button\"\n onClick={onDismiss}\n className=\"shrink-0 rounded-md p-1 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:p-3\"\n aria-label={l.dismiss}\n data-testid={testIdOr(testIds?.dismiss, { testId: 'getting-started-dismiss' })}\n >\n <X className=\"size-4\" />\n </button>\n </div>\n )\n}\n","import type { ReactNode } from 'react'\nimport { Dialog, DialogContent, cn } from '@arbidocs/react/ui'\nimport { prefixedTestId, testIdOr } from '../chat/test-id'\nimport { QuickActionDialogHeader } from './QuickActionDialogHeader'\n\nexport interface ActionMenuItem {\n id: string\n label: string\n description?: string\n icon?: ReactNode\n}\n\nexport interface ActionMenuDialogProps {\n open: boolean\n onOpenChange: (open: boolean) => void\n /** Header mark, sized by the caller at `size-5`. */\n icon?: ReactNode\n title: string\n description: string\n items: ActionMenuItem[]\n /** A choice was made; the host performs it (the dialog does not close itself). */\n onPick: (id: string) => void\n /** Dialog id; items are `<prefix>-<item id>` (default `action-menu-item-<id>`). */\n testId?: string\n itemTestId?: string\n}\n\n/**\n * A plain menu of one-click actions in a dialog: no form, no schema, nothing generative. Use it\n * for \"create new\" style choices; anything that asks questions belongs to a workflow or operation.\n */\nexport function ActionMenuDialog({\n open,\n onOpenChange,\n icon,\n title,\n description,\n items,\n onPick,\n testId,\n itemTestId,\n}: ActionMenuDialogProps) {\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent\n presentation=\"sheet\"\n className=\"sm:max-w-lg\"\n data-testid={testIdOr(testId, { testId: 'action-menu-dialog' })}\n >\n <QuickActionDialogHeader icon={icon} title={title} description={description} />\n <div className=\"grid grid-cols-2 gap-3 pt-1\" role=\"menu\" aria-label={title}>\n {items.map((item) => (\n <button\n key={item.id}\n type=\"button\"\n role=\"menuitem\"\n onClick={() => onPick(item.id)}\n data-testid={prefixedTestId(itemTestId, item.id, {\n testId: `action-menu-item-${item.id}`,\n })}\n className={cn(\n 'flex min-h-32 flex-col items-center justify-center gap-2 rounded-lg border border-border bg-card p-3 text-center transition-colors',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring [&:hover]:border-primary [&:hover]:bg-muted'\n )}\n >\n {item.icon && <span className=\"text-muted-foreground\">{item.icon}</span>}\n <span className=\"text-sm font-medium text-foreground\">{item.label}</span>\n {item.description && (\n <span className=\"text-xs text-muted-foreground\">{item.description}</span>\n )}\n </button>\n ))}\n </div>\n </DialogContent>\n </Dialog>\n )\n}\n","import type { MouseEvent, ReactNode } from 'react'\nimport { cn } from '@arbidocs/react/ui'\nimport { testIdOr } from '../chat/test-id'\n\nexport interface CardHeaderBarAction {\n icon: ReactNode\n onClick: (e: MouseEvent) => void\n ariaLabel?: string\n}\n\nexport interface CardHeaderBarProps {\n icon: ReactNode\n title: string\n subtitle?: string\n /** Filled variant only: background class (default: the primary token). */\n bgColor?: string\n /** Rendered under the title. */\n badge?: ReactNode\n /** Wrap the title in a pill. */\n titleBadge?: boolean\n titleBadgeColor?: string\n actionButton?: CardHeaderBarAction\n /**\n * `filled` (default): solid fill with on-primary text.\n * `plain`: tonal fill, foreground text and an optional coloured bottom\n * divider (`accentClass`), so the header reads as part of the card.\n */\n variant?: 'filled' | 'plain'\n /** Plain variant only: border colour class for the bottom divider. */\n accentClass?: string\n /** Inline element right after the title text. */\n titleTrailing?: ReactNode\n className?: string\n /** Root test id (default `card-header`). */\n testId?: string\n /** Sub-element ids; defaults are the current ids. */\n testIds?: Partial<Record<'title' | 'subtitle' | 'actionButton', string>>\n}\n\n/**\n * Header bar for card-like tiles: icon, title, optional subtitle and one\n * action button (44px on touch). Named `CardHeaderBar` to stay clear of the\n * kit's structural `CardHeader`.\n */\nexport function CardHeaderBar({\n icon,\n title,\n subtitle,\n bgColor = 'bg-primary',\n badge,\n titleBadge = false,\n titleBadgeColor,\n actionButton,\n variant = 'filled',\n accentClass,\n titleTrailing,\n className,\n testId,\n testIds,\n}: CardHeaderBarProps) {\n const plain = variant === 'plain'\n const titleTestId = testIdOr(testIds?.title, { testId: 'card-header-title' })\n const containerBg = plain\n ? cn('border border-border bg-card shadow-xs', accentClass && ['border-b', accentClass])\n : bgColor\n const titleColor = plain ? 'text-foreground' : 'text-primary-foreground'\n const subtitleColor = plain ? 'text-muted-foreground' : 'text-primary-foreground opacity-80'\n const iconColor = plain ? 'text-foreground' : 'text-primary-foreground'\n // No subtitle: a single title line, so the header stays compact.\n const heightClass = subtitle ? 'h-14' : 'h-12'\n\n return (\n <div\n className={cn('relative w-full', heightClass, containerBg, className)}\n data-slot=\"card-header-bar\"\n data-testid={testIdOr(testId, { testId: 'card-header' })}\n >\n <div\n className={cn(\n 'absolute left-4 top-1/2 flex -translate-y-1/2 items-center gap-2',\n actionButton ? 'right-16' : 'right-4'\n )}\n >\n <div className={cn('-ml-1 flex shrink-0 items-center [&>svg]:size-8', iconColor)}>\n {icon}\n </div>\n <div className=\"flex min-w-0 flex-1 flex-col justify-center\">\n {titleBadge ? (\n <div\n className={cn(\n 'inline-flex items-center self-start rounded-md border px-2 py-0.5',\n plain ? 'border-transparent bg-background' : 'border-primary-foreground/30'\n )}\n style={titleBadgeColor ? { backgroundColor: titleBadgeColor } : undefined}\n >\n <div\n className={cn(\n 'truncate text-base font-semibold capitalize leading-none',\n titleColor\n )}\n data-testid={titleTestId}\n title={title}\n >\n {title}\n </div>\n </div>\n ) : (\n <div className=\"flex min-w-0 items-center gap-1.5\">\n <span\n className={cn(\n 'truncate text-base font-semibold capitalize leading-none',\n titleColor\n )}\n data-testid={titleTestId}\n title={title}\n >\n {title}\n </span>\n {titleTrailing && (\n <span className=\"flex shrink-0 items-center gap-1\">{titleTrailing}</span>\n )}\n </div>\n )}\n {badge && <div className=\"shrink-0\">{badge}</div>}\n {subtitle && (\n <div\n className={cn('truncate text-sm', subtitleColor)}\n data-testid={testIdOr(testIds?.subtitle, { testId: 'card-header-subtitle' })}\n title={subtitle}\n >\n <span className=\"opacity-60\"># </span>\n {subtitle}\n </div>\n )}\n </div>\n </div>\n {actionButton && (\n <div className={cn('absolute top-1/2 -translate-y-1/2', plain ? 'right-2.5' : 'right-4')}>\n <button\n type=\"button\"\n className={cn(\n 'flex cursor-pointer items-center justify-center rounded-md transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:size-11',\n plain ? 'p-1.5 hover:bg-foreground/5' : 'size-8 bg-card hover:bg-card/90'\n )}\n onClick={actionButton.onClick}\n aria-label={actionButton.ariaLabel}\n data-testid={testIdOr(testIds?.actionButton, { testId: 'card-header-action-button' })}\n >\n <div className={cn('[&>svg]:size-5', !plain && 'text-foreground')}>\n {actionButton.icon}\n </div>\n </button>\n </div>\n )}\n </div>\n )\n}\n"]}
1
+ {"version":3,"sources":["../../src/home/Greeting.tsx","../../src/home/ActionMenuDialog.tsx","../../src/home/CardHeaderBar.tsx"],"names":["jsxs","cn","jsx","Dialog","DialogContent","testIdOr","QuickActionDialogHeader","prefixedTestId"],"mappings":"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","file":"index.cjs","sourcesContent":["import type { ReactNode } from 'react'\nimport { cn } from '@arbidocs/react/ui'\n\nexport interface GreetingProps {\n /** Small line above the title, e.g. today's date. */\n eyebrow?: string\n title: string\n description?: string\n /** Trailing controls (view toggle, primary action). */\n actions?: ReactNode\n className?: string\n testId?: string\n eyebrowTestId?: string\n titleTestId?: string\n}\n\n/**\n * The home page header: eyebrow, greeting, one muted line and trailing\n * actions, centred in the same column as the content below it.\n */\nexport function Greeting({\n eyebrow,\n title,\n description,\n actions,\n className,\n testId,\n eyebrowTestId,\n titleTestId,\n}: GreetingProps) {\n return (\n <div className=\"bg-background\" data-slot=\"greeting\" data-testid={testId}>\n <div\n className={cn(\n 'mx-auto flex max-w-6xl flex-wrap items-end justify-between gap-x-4 gap-y-3 px-4 pb-4 pt-8 sm:px-8',\n className\n )}\n >\n <div className=\"min-w-0\">\n {eyebrow && (\n <p className=\"text-xs text-muted-foreground\" data-testid={eyebrowTestId}>\n {eyebrow}\n </p>\n )}\n <h1\n className=\"mt-1 break-words text-xl font-semibold tracking-tight text-foreground sm:text-2xl\"\n data-testid={titleTestId}\n >\n {title}\n </h1>\n {description && <p className=\"mt-1 text-sm text-muted-foreground\">{description}</p>}\n </div>\n {actions}\n </div>\n </div>\n )\n}\n","import type { ReactNode } from 'react'\nimport { Dialog, DialogContent, cn } from '@arbidocs/react/ui'\nimport { prefixedTestId, testIdOr } from '../chat/test-id'\nimport { QuickActionDialogHeader } from './QuickActionDialogHeader'\n\nexport interface ActionMenuItem {\n id: string\n label: string\n description?: string\n icon?: ReactNode\n}\n\nexport interface ActionMenuDialogProps {\n open: boolean\n onOpenChange: (open: boolean) => void\n /** Header mark, sized by the caller at `size-5`. */\n icon?: ReactNode\n title: string\n description: string\n items: ActionMenuItem[]\n /** A choice was made; the host performs it (the dialog does not close itself). */\n onPick: (id: string) => void\n /** Dialog id; items are `<prefix>-<item id>` (default `action-menu-item-<id>`). */\n testId?: string\n itemTestId?: string\n}\n\n/**\n * A plain menu of one-click actions in a dialog: no form, no schema, nothing generative. Use it\n * for \"create new\" style choices; anything that asks questions belongs to a workflow or operation.\n */\nexport function ActionMenuDialog({\n open,\n onOpenChange,\n icon,\n title,\n description,\n items,\n onPick,\n testId,\n itemTestId,\n}: ActionMenuDialogProps) {\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent\n presentation=\"sheet\"\n className=\"sm:max-w-lg\"\n data-testid={testIdOr(testId, { testId: 'action-menu-dialog' })}\n >\n <QuickActionDialogHeader icon={icon} title={title} description={description} />\n <div className=\"grid grid-cols-2 gap-3 pt-1\" role=\"menu\" aria-label={title}>\n {items.map((item) => (\n <button\n key={item.id}\n type=\"button\"\n role=\"menuitem\"\n onClick={() => onPick(item.id)}\n data-testid={prefixedTestId(itemTestId, item.id, {\n testId: `action-menu-item-${item.id}`,\n })}\n className={cn(\n 'flex min-h-32 flex-col items-center justify-center gap-2 rounded-lg border border-border bg-card p-3 text-center transition-colors',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring [&:hover]:border-primary [&:hover]:bg-muted'\n )}\n >\n {item.icon && <span className=\"text-muted-foreground\">{item.icon}</span>}\n <span className=\"text-sm font-medium text-foreground\">{item.label}</span>\n {item.description && (\n <span className=\"text-xs text-muted-foreground\">{item.description}</span>\n )}\n </button>\n ))}\n </div>\n </DialogContent>\n </Dialog>\n )\n}\n","import type { MouseEvent, ReactNode } from 'react'\nimport { cn } from '@arbidocs/react/ui'\nimport { testIdOr } from '../chat/test-id'\n\nexport interface CardHeaderBarAction {\n icon: ReactNode\n onClick: (e: MouseEvent) => void\n ariaLabel?: string\n}\n\nexport interface CardHeaderBarProps {\n icon: ReactNode\n title: string\n subtitle?: string\n /** Filled variant only: background class (default: the primary token). */\n bgColor?: string\n /** Rendered under the title. */\n badge?: ReactNode\n /** Wrap the title in a pill. */\n titleBadge?: boolean\n titleBadgeColor?: string\n actionButton?: CardHeaderBarAction\n /**\n * `filled` (default): solid fill with on-primary text.\n * `plain`: tonal fill, foreground text and an optional coloured bottom\n * divider (`accentClass`), so the header reads as part of the card.\n */\n variant?: 'filled' | 'plain'\n /** Plain variant only: border colour class for the bottom divider. */\n accentClass?: string\n /** Inline element right after the title text. */\n titleTrailing?: ReactNode\n className?: string\n /** Root test id (default `card-header`). */\n testId?: string\n /** Sub-element ids; defaults are the current ids. */\n testIds?: Partial<Record<'title' | 'subtitle' | 'actionButton', string>>\n}\n\n/**\n * Header bar for card-like tiles: icon, title, optional subtitle and one\n * action button (44px on touch). Named `CardHeaderBar` to stay clear of the\n * kit's structural `CardHeader`.\n */\nexport function CardHeaderBar({\n icon,\n title,\n subtitle,\n bgColor = 'bg-primary',\n badge,\n titleBadge = false,\n titleBadgeColor,\n actionButton,\n variant = 'filled',\n accentClass,\n titleTrailing,\n className,\n testId,\n testIds,\n}: CardHeaderBarProps) {\n const plain = variant === 'plain'\n const titleTestId = testIdOr(testIds?.title, { testId: 'card-header-title' })\n const containerBg = plain\n ? cn('border border-border bg-card shadow-xs', accentClass && ['border-b', accentClass])\n : bgColor\n const titleColor = plain ? 'text-foreground' : 'text-primary-foreground'\n const subtitleColor = plain ? 'text-muted-foreground' : 'text-primary-foreground opacity-80'\n const iconColor = plain ? 'text-foreground' : 'text-primary-foreground'\n // No subtitle: a single title line, so the header stays compact.\n const heightClass = subtitle ? 'h-14' : 'h-12'\n\n return (\n <div\n className={cn('relative w-full', heightClass, containerBg, className)}\n data-slot=\"card-header-bar\"\n data-testid={testIdOr(testId, { testId: 'card-header' })}\n >\n <div\n className={cn(\n 'absolute left-4 top-1/2 flex -translate-y-1/2 items-center gap-2',\n actionButton ? 'right-16' : 'right-4'\n )}\n >\n <div className={cn('-ml-1 flex shrink-0 items-center [&>svg]:size-8', iconColor)}>\n {icon}\n </div>\n <div className=\"flex min-w-0 flex-1 flex-col justify-center\">\n {titleBadge ? (\n <div\n className={cn(\n 'inline-flex items-center self-start rounded-md border px-2 py-0.5',\n plain ? 'border-transparent bg-background' : 'border-primary-foreground/30'\n )}\n style={titleBadgeColor ? { backgroundColor: titleBadgeColor } : undefined}\n >\n <div\n className={cn(\n 'truncate text-base font-semibold capitalize leading-none',\n titleColor\n )}\n data-testid={titleTestId}\n title={title}\n >\n {title}\n </div>\n </div>\n ) : (\n <div className=\"flex min-w-0 items-center gap-1.5\">\n <span\n className={cn(\n 'truncate text-base font-semibold capitalize leading-none',\n titleColor\n )}\n data-testid={titleTestId}\n title={title}\n >\n {title}\n </span>\n {titleTrailing && (\n <span className=\"flex shrink-0 items-center gap-1\">{titleTrailing}</span>\n )}\n </div>\n )}\n {badge && <div className=\"shrink-0\">{badge}</div>}\n {subtitle && (\n <div\n className={cn('truncate text-sm', subtitleColor)}\n data-testid={testIdOr(testIds?.subtitle, { testId: 'card-header-subtitle' })}\n title={subtitle}\n >\n <span className=\"opacity-60\"># </span>\n {subtitle}\n </div>\n )}\n </div>\n </div>\n {actionButton && (\n <div className={cn('absolute top-1/2 -translate-y-1/2', plain ? 'right-2.5' : 'right-4')}>\n <button\n type=\"button\"\n className={cn(\n 'flex cursor-pointer items-center justify-center rounded-md transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:size-11',\n plain ? 'p-1.5 hover:bg-foreground/5' : 'size-8 bg-card hover:bg-card/90'\n )}\n onClick={actionButton.onClick}\n aria-label={actionButton.ariaLabel}\n data-testid={testIdOr(testIds?.actionButton, { testId: 'card-header-action-button' })}\n >\n <div className={cn('[&>svg]:size-5', !plain && 'text-foreground')}>\n {actionButton.icon}\n </div>\n </button>\n </div>\n )}\n </div>\n )\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- export { CreateTile, DASHBOARD_QUIET_ACTION_CLASS, DashboardAction, DashboardBand, DashboardColumns, DashboardRoot, FactMark, FactsStrip, HomeCenteredColumn, HomeCenteredScroll, HomeFrame, HomeLoadError, HomeMain, RecentList } from '../chunk-UIUWCTIZ.js';
2
+ export { CreateTile, DASHBOARD_QUIET_ACTION_CLASS, DEFAULT_GETTING_STARTED_STRIP_LABELS, DashboardAction, DashboardBand, DashboardColumns, DashboardRoot, FactMark, FactsStrip, GettingStartedStrip, HomeCenteredColumn, HomeCenteredScroll, HomeFrame, HomeLoadError, HomeMain, RecentList } from '../chunk-APXW5XGA.js';
3
3
  export { BulkDeleteButton, EmptyCellDash, GridCellRow, GridWithSelectionBar, PlainBandTitle, ProjectBandTitle, ProjectBreakdown, ProjectReadout } from '../chunk-RQKWYKZY.js';
4
4
  export { CollapsibleSection, DEFAULT_COLLAPSIBLE_SECTION_LABELS } from '../chunk-5TDGVOR5.js';
5
5
  export { DEFAULT_KEY_VALUE_ROW_LABELS, KeyValueContainer, KeyValueRow } from '../chunk-XRL4R2TT.js';
@@ -12,11 +12,10 @@ import '../chunk-NPLYHR2E.js';
12
12
  import '../chunk-TJQSL4XV.js';
13
13
  import '../chunk-3VCTVCAX.js';
14
14
  import '../chunk-TX2ZICS7.js';
15
- import { testIdOr, prefixedTestId } from '../chunk-7F6CBP3Z.js';
15
+ import { prefixedTestId, testIdOr } from '../chunk-7F6CBP3Z.js';
16
16
  import '../chunk-VUNV25KB.js';
17
17
  import { cn, Dialog, DialogContent } from '@arbidocs/react/ui';
18
18
  import { jsx, jsxs } from 'react/jsx-runtime';
19
- import { PartyPopper, X } from 'lucide-react';
20
19
 
21
20
  function Greeting({
22
21
  eyebrow,
@@ -53,166 +52,6 @@ function Greeting({
53
52
  }
54
53
  ) });
55
54
  }
56
- var DEFAULT_GETTING_STARTED_STRIP_LABELS = {
57
- allSet: (firstName) => `You\u2019re all set${firstName ? `, ${firstName}` : ""}!`,
58
- finished: (stepCount) => `You\u2019ve finished the ${stepCount} getting-started steps \u2014 explore away.`,
59
- done: "Done",
60
- welcome: (firstName) => `Welcome, ${firstName}`,
61
- getStarted: "Get started with ARBI",
62
- replayDone: "Nicely done \u2014 that\u2019s the tour again",
63
- almostThere: "Almost there",
64
- dismiss: "Dismiss getting started"
65
- };
66
- function circleClasses(done, isCurrent) {
67
- if (done) return "border-primary bg-primary text-primary-foreground";
68
- if (isCurrent) return "border-primary bg-accent text-accent-foreground";
69
- return "border-border text-muted-foreground";
70
- }
71
- function Journey({
72
- steps,
73
- currentStepId,
74
- testId
75
- }) {
76
- return /* @__PURE__ */ jsx(
77
- "ol",
78
- {
79
- className: "hidden min-w-0 shrink items-center overflow-x-auto sm:flex",
80
- "data-slot": "journey",
81
- "data-testid": testIdOr(testId, { testId: "getting-started-stepper" }),
82
- children: steps.map((step, i) => {
83
- const isCurrent = step.id === currentStepId;
84
- return /* @__PURE__ */ jsxs(
85
- "li",
86
- {
87
- className: "flex shrink-0 items-center",
88
- "data-testid": prefixedTestId(testId, step.id, {
89
- testId: `getting-started-stepper-${step.id}`
90
- }),
91
- "data-done": step.done,
92
- "data-current": isCurrent,
93
- children: [
94
- i > 0 && /* @__PURE__ */ jsx(
95
- "span",
96
- {
97
- className: cn(
98
- "h-0 w-3 shrink-0 border-t-2 border-solid transition-colors duration-500",
99
- steps[i - 1].done ? "border-primary" : "border-border"
100
- )
101
- }
102
- ),
103
- /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1.5", children: [
104
- /* @__PURE__ */ jsx(
105
- "span",
106
- {
107
- className: cn(
108
- "flex size-6 shrink-0 items-center justify-center rounded-full border-2 text-xs font-semibold tabular-nums transition-colors",
109
- circleClasses(step.done, isCurrent)
110
- ),
111
- children: i + 1
112
- }
113
- ),
114
- /* @__PURE__ */ jsx(
115
- "span",
116
- {
117
- className: cn(
118
- "text-sm font-medium",
119
- step.done ? "text-muted-foreground line-through" : isCurrent ? "text-foreground" : "text-muted-foreground"
120
- ),
121
- children: step.title
122
- }
123
- ),
124
- isCurrent && !step.done && /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground", children: [
125
- "\u2014 ",
126
- step.description
127
- ] })
128
- ] })
129
- ]
130
- },
131
- step.id
132
- );
133
- })
134
- }
135
- );
136
- }
137
- function GettingStartedStrip({
138
- steps,
139
- currentStepId,
140
- firstName,
141
- isReplay = false,
142
- isComplete = false,
143
- onDismiss,
144
- logo,
145
- labels,
146
- className,
147
- testId,
148
- testIds
149
- }) {
150
- const l = { ...DEFAULT_GETTING_STARTED_STRIP_LABELS, ...labels };
151
- if (isComplete && !isReplay) {
152
- return /* @__PURE__ */ jsxs(
153
- "div",
154
- {
155
- className: cn("flex min-w-0 items-center gap-3", className),
156
- "data-slot": "getting-started-strip",
157
- "data-testid": testIdOr(testId, { testId: "getting-started" }),
158
- children: [
159
- /* @__PURE__ */ jsx(PartyPopper, { className: "size-5 shrink-0 text-primary", "aria-hidden": "true" }),
160
- /* @__PURE__ */ jsxs(
161
- "p",
162
- {
163
- className: "min-w-0 shrink truncate text-base",
164
- "data-testid": testIdOr(testIds?.complete, { testId: "getting-started-complete" }),
165
- children: [
166
- /* @__PURE__ */ jsx("span", { className: "font-semibold text-foreground", children: l.allSet(firstName) }),
167
- /* @__PURE__ */ jsx("span", { className: "mx-1.5 text-muted-foreground", children: "\xB7" }),
168
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: l.finished(steps.length) })
169
- ]
170
- }
171
- ),
172
- /* @__PURE__ */ jsx(Journey, { steps, currentStepId, testId: testIds?.stepper }),
173
- /* @__PURE__ */ jsx("div", { className: "flex-1" }),
174
- /* @__PURE__ */ jsx(
175
- "button",
176
- {
177
- type: "button",
178
- onClick: onDismiss,
179
- className: "shrink-0 rounded-md bg-muted px-3 py-1.5 text-sm font-medium text-foreground transition-colors hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:min-h-11",
180
- "data-testid": testIdOr(testIds?.done, { testId: "getting-started-done" }),
181
- children: l.done
182
- }
183
- )
184
- ]
185
- }
186
- );
187
- }
188
- const greeting = firstName ? l.welcome(firstName) : l.getStarted;
189
- return /* @__PURE__ */ jsxs(
190
- "div",
191
- {
192
- className: cn("flex min-w-0 items-center gap-3", className),
193
- "data-slot": "getting-started-strip",
194
- "data-testid": testIdOr(testId, { testId: "getting-started" }),
195
- children: [
196
- logo,
197
- /* @__PURE__ */ jsx("span", { className: "shrink-0 text-base font-semibold text-foreground", children: greeting }),
198
- /* @__PURE__ */ jsx(Journey, { steps, currentStepId, testId: testIds?.stepper }),
199
- !currentStepId && /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate text-sm text-muted-foreground", children: isReplay ? l.replayDone : l.almostThere }),
200
- /* @__PURE__ */ jsx("div", { className: "flex-1" }),
201
- /* @__PURE__ */ jsx(
202
- "button",
203
- {
204
- type: "button",
205
- onClick: onDismiss,
206
- className: "shrink-0 rounded-md p-1 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:p-3",
207
- "aria-label": l.dismiss,
208
- "data-testid": testIdOr(testIds?.dismiss, { testId: "getting-started-dismiss" }),
209
- children: /* @__PURE__ */ jsx(X, { className: "size-4" })
210
- }
211
- )
212
- ]
213
- }
214
- );
215
- }
216
55
  function ActionMenuDialog({
217
56
  open,
218
57
  onOpenChange,
@@ -369,6 +208,6 @@ function CardHeaderBar({
369
208
  );
370
209
  }
371
210
 
372
- export { ActionMenuDialog, CardHeaderBar, DEFAULT_GETTING_STARTED_STRIP_LABELS, GettingStartedStrip, Greeting };
211
+ export { ActionMenuDialog, CardHeaderBar, Greeting };
373
212
  //# sourceMappingURL=index.js.map
374
213
  //# sourceMappingURL=index.js.map