@arbidocs/blocks 0.5.65 → 0.5.66

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 (118) hide show
  1. package/dist/{ConnectedCallDock-GJAGY75U.cjs → ConnectedCallDock-FFIDDYGH.cjs} +6 -6
  2. package/dist/{ConnectedCallDock-GJAGY75U.cjs.map → ConnectedCallDock-FFIDDYGH.cjs.map} +1 -1
  3. package/dist/{ConnectedCallDock-DEAEFUUD.js → ConnectedCallDock-VMEBH4LG.js} +6 -6
  4. package/dist/{ConnectedCallDock-DEAEFUUD.js.map → ConnectedCallDock-VMEBH4LG.js.map} +1 -1
  5. package/dist/{ConnectedCallRoom-DI7UYRHE.js → ConnectedCallRoom-2FNSX2VG.js} +6 -6
  6. package/dist/{ConnectedCallRoom-DI7UYRHE.js.map → ConnectedCallRoom-2FNSX2VG.js.map} +1 -1
  7. package/dist/{ConnectedCallRoom-KLE2PCMQ.cjs → ConnectedCallRoom-HYRLJUIV.cjs} +6 -6
  8. package/dist/{ConnectedCallRoom-KLE2PCMQ.cjs.map → ConnectedCallRoom-HYRLJUIV.cjs.map} +1 -1
  9. package/dist/{ConnectedDocumentViewer-YSZWOVGN.cjs → ConnectedDocumentViewer-S6YKCCRN.cjs} +9 -9
  10. package/dist/{ConnectedDocumentViewer-YSZWOVGN.cjs.map → ConnectedDocumentViewer-S6YKCCRN.cjs.map} +1 -1
  11. package/dist/{ConnectedDocumentViewer-HKIBNGGG.js → ConnectedDocumentViewer-XFQDHVWM.js} +9 -9
  12. package/dist/{ConnectedDocumentViewer-HKIBNGGG.js.map → ConnectedDocumentViewer-XFQDHVWM.js.map} +1 -1
  13. package/dist/agents/index.cjs +260 -260
  14. package/dist/agents/index.js +3 -3
  15. package/dist/calls/index.cjs +2 -2
  16. package/dist/calls/index.js +2 -2
  17. package/dist/chat/index.cjs +57 -57
  18. package/dist/chat/index.js +4 -4
  19. package/dist/{chunk-F777MGVA.cjs → chunk-3SHZPTR2.cjs} +18 -18
  20. package/dist/{chunk-F777MGVA.cjs.map → chunk-3SHZPTR2.cjs.map} +1 -1
  21. package/dist/{chunk-TVHTXO6V.cjs → chunk-56WWEK6I.cjs} +4 -4
  22. package/dist/{chunk-TVHTXO6V.cjs.map → chunk-56WWEK6I.cjs.map} +1 -1
  23. package/dist/{chunk-CGCTODPC.cjs → chunk-6PGTH2HD.cjs} +4 -4
  24. package/dist/{chunk-CGCTODPC.cjs.map → chunk-6PGTH2HD.cjs.map} +1 -1
  25. package/dist/{chunk-6QZ35CTZ.js → chunk-AD76WTGR.js} +3 -3
  26. package/dist/{chunk-6QZ35CTZ.js.map → chunk-AD76WTGR.js.map} +1 -1
  27. package/dist/{chunk-ROWJU4SK.cjs → chunk-AKGV6JUC.cjs} +12 -128
  28. package/dist/chunk-AKGV6JUC.cjs.map +1 -0
  29. package/dist/{chunk-UIUWCTIZ.js → chunk-APXW5XGA.js} +165 -4
  30. package/dist/chunk-APXW5XGA.js.map +1 -0
  31. package/dist/{chunk-SEVFIBF3.cjs → chunk-BFIHXDO6.cjs} +4 -4
  32. package/dist/{chunk-SEVFIBF3.cjs.map → chunk-BFIHXDO6.cjs.map} +1 -1
  33. package/dist/{chunk-JSHBC47B.cjs → chunk-BP5KBZLX.cjs} +38 -38
  34. package/dist/{chunk-JSHBC47B.cjs.map → chunk-BP5KBZLX.cjs.map} +1 -1
  35. package/dist/{chunk-YQEXBJVO.js → chunk-DF5X27QX.js} +42 -5
  36. package/dist/chunk-DF5X27QX.js.map +1 -0
  37. package/dist/{chunk-CJF7B5A7.cjs → chunk-DRUNPUDT.cjs} +3 -3
  38. package/dist/{chunk-CJF7B5A7.cjs.map → chunk-DRUNPUDT.cjs.map} +1 -1
  39. package/dist/{chunk-6OMIIF76.js → chunk-EM4KOKE6.js} +3 -3
  40. package/dist/{chunk-6OMIIF76.js.map → chunk-EM4KOKE6.js.map} +1 -1
  41. package/dist/{chunk-GPYLXEZO.js → chunk-FCOK73I3.js} +6 -120
  42. package/dist/chunk-FCOK73I3.js.map +1 -0
  43. package/dist/{chunk-ITRI47DF.cjs → chunk-GMGEAWFX.cjs} +41 -4
  44. package/dist/chunk-GMGEAWFX.cjs.map +1 -0
  45. package/dist/{chunk-LNH6NYG4.js → chunk-I3VBVP6R.js} +121 -6
  46. package/dist/chunk-I3VBVP6R.js.map +1 -0
  47. package/dist/{chunk-ZZHMJXM5.cjs → chunk-IXZCXK6Q.cjs} +122 -5
  48. package/dist/chunk-IXZCXK6Q.cjs.map +1 -0
  49. package/dist/{chunk-C2S246BV.js → chunk-J6FRFIVL.js} +3 -3
  50. package/dist/{chunk-C2S246BV.js.map → chunk-J6FRFIVL.js.map} +1 -1
  51. package/dist/{chunk-PLEMVK2W.js → chunk-KQLUMK56.js} +3 -3
  52. package/dist/{chunk-PLEMVK2W.js.map → chunk-KQLUMK56.js.map} +1 -1
  53. package/dist/{chunk-PNZVUH46.cjs → chunk-LAQ3Y5JP.cjs} +6 -6
  54. package/dist/{chunk-PNZVUH46.cjs.map → chunk-LAQ3Y5JP.cjs.map} +1 -1
  55. package/dist/{chunk-AESJLGMC.cjs → chunk-NDKZ6OR3.cjs} +6 -6
  56. package/dist/{chunk-AESJLGMC.cjs.map → chunk-NDKZ6OR3.cjs.map} +1 -1
  57. package/dist/{chunk-43IVRSFX.js → chunk-NVXNTHL4.js} +3 -3
  58. package/dist/{chunk-43IVRSFX.js.map → chunk-NVXNTHL4.js.map} +1 -1
  59. package/dist/{chunk-5EGTGHBW.js → chunk-PMWZTVIY.js} +3 -3
  60. package/dist/{chunk-5EGTGHBW.js.map → chunk-PMWZTVIY.js.map} +1 -1
  61. package/dist/{chunk-7MOQO6NO.cjs → chunk-RB54N5I7.cjs} +53 -5
  62. package/dist/chunk-RB54N5I7.cjs.map +1 -0
  63. package/dist/{chunk-2C4YUIVX.js → chunk-T2VGD4X6.js} +3 -3
  64. package/dist/{chunk-2C4YUIVX.js.map → chunk-T2VGD4X6.js.map} +1 -1
  65. package/dist/{chunk-4Q7ON335.js → chunk-TCCJ5I6G.js} +3 -3
  66. package/dist/{chunk-4Q7ON335.js.map → chunk-TCCJ5I6G.js.map} +1 -1
  67. package/dist/{chunk-4CI42DCG.js → chunk-U52KPOXT.js} +50 -5
  68. package/dist/chunk-U52KPOXT.js.map +1 -0
  69. package/dist/{chunk-SFTQO3TU.js → chunk-UO3FS6ZF.js} +3 -3
  70. package/dist/{chunk-SFTQO3TU.js.map → chunk-UO3FS6ZF.js.map} +1 -1
  71. package/dist/{chunk-LFS6UWSJ.cjs → chunk-XWUGPV7H.cjs} +5 -5
  72. package/dist/{chunk-LFS6UWSJ.cjs.map → chunk-XWUGPV7H.cjs.map} +1 -1
  73. package/dist/{chunk-OM5IVNEW.cjs → chunk-Z4KXF7WS.cjs} +165 -2
  74. package/dist/chunk-Z4KXF7WS.cjs.map +1 -0
  75. package/dist/connect/index.cjs +564 -283
  76. package/dist/connect/index.cjs.map +1 -1
  77. package/dist/connect/index.d.ts +3 -0
  78. package/dist/connect/index.js +292 -19
  79. package/dist/connect/index.js.map +1 -1
  80. package/dist/connect/viewer.cjs +7 -7
  81. package/dist/connect/viewer.js +7 -7
  82. package/dist/connection/runtime/ConnectedAppRuntime.d.ts +1 -1
  83. package/dist/connection/runtime/index.d.ts +1 -1
  84. package/dist/connection/runtime/requests.d.ts +8 -0
  85. package/dist/connection/runtime/useWelcomeDialog.d.ts +3 -0
  86. package/dist/connection/tips/ConnectedGettingStarted.d.ts +20 -0
  87. package/dist/connection/tips/ConnectedTipBar.d.ts +49 -0
  88. package/dist/connection/tips/useGettingStarted.d.ts +51 -0
  89. package/dist/embed/index.cjs +1 -1
  90. package/dist/embed/index.js +1 -1
  91. package/dist/home/index.cjs +23 -178
  92. package/dist/home/index.cjs.map +1 -1
  93. package/dist/home/index.js +3 -164
  94. package/dist/home/index.js.map +1 -1
  95. package/dist/index.cjs +457 -485
  96. package/dist/index.cjs.map +1 -1
  97. package/dist/index.js +15 -54
  98. package/dist/index.js.map +1 -1
  99. package/dist/shell/index.cjs +73 -73
  100. package/dist/shell/index.js +4 -4
  101. package/dist/studio/index.cjs +8 -8
  102. package/dist/studio/index.js +5 -5
  103. package/dist/tips/index.d.ts +1 -1
  104. package/dist/tips/visibility.d.ts +7 -0
  105. package/dist/workflow-canvas/index.cjs +17 -17
  106. package/dist/workflow-canvas/index.js +4 -4
  107. package/node_modules/@arbidocs/coedit/package.json +1 -1
  108. package/package.json +5 -5
  109. package/dist/chunk-4CI42DCG.js.map +0 -1
  110. package/dist/chunk-7MOQO6NO.cjs.map +0 -1
  111. package/dist/chunk-GPYLXEZO.js.map +0 -1
  112. package/dist/chunk-ITRI47DF.cjs.map +0 -1
  113. package/dist/chunk-LNH6NYG4.js.map +0 -1
  114. package/dist/chunk-OM5IVNEW.cjs.map +0 -1
  115. package/dist/chunk-ROWJU4SK.cjs.map +0 -1
  116. package/dist/chunk-UIUWCTIZ.js.map +0 -1
  117. package/dist/chunk-YQEXBJVO.js.map +0 -1
  118. package/dist/chunk-ZZHMJXM5.cjs.map +0 -1
@@ -15,16 +15,19 @@ require('../chunk-IRY63R4L.cjs');
15
15
  require('../chunk-UWIILWDI.cjs');
16
16
  require('../chunk-ZESMRGDV.cjs');
17
17
  require('../chunk-KWEW54TA.cjs');
18
- require('../chunk-ROWJU4SK.cjs');
18
+ require('../chunk-AKGV6JUC.cjs');
19
19
  require('../chunk-34HQO4ZQ.cjs');
20
20
  require('../chunk-MZZ3SBQL.cjs');
21
21
  require('../chunk-5Y6V7F6W.cjs');
22
- require('../chunk-ZZHMJXM5.cjs');
23
- require('../chunk-LFS6UWSJ.cjs');
22
+ require('../chunk-IXZCXK6Q.cjs');
23
+ require('../chunk-XWUGPV7H.cjs');
24
24
  require('../chunk-AXAHA4LL.cjs');
25
25
  require('../chunk-Y5WE72RB.cjs');
26
26
  require('../chunk-4623VCCR.cjs');
27
27
  require('../chunk-VLCY46K6.cjs');
28
+ require('../chunk-2YV7FBLO.cjs');
29
+ require('../chunk-VG24E4JJ.cjs');
30
+ require('../chunk-QVBZESYQ.cjs');
28
31
  require('../chunk-SIB6C7P7.cjs');
29
32
  require('../chunk-DVUZTGVL.cjs');
30
33
  require('../chunk-V4ISCZJ7.cjs');
@@ -32,9 +35,6 @@ require('../chunk-AHDJXIUB.cjs');
32
35
  require('../chunk-2EI7NCUA.cjs');
33
36
  require('../chunk-2UYT7MIX.cjs');
34
37
  require('../chunk-LKK52DEY.cjs');
35
- require('../chunk-2YV7FBLO.cjs');
36
- require('../chunk-VG24E4JJ.cjs');
37
- require('../chunk-QVBZESYQ.cjs');
38
38
  require('../chunk-KKYNTWDU.cjs');
39
39
  require('../chunk-7JVP3LS6.cjs');
40
40
  require('../chunk-KGAYUFXD.cjs');
@@ -43,7 +43,7 @@ require('../chunk-WVEFRQSW.cjs');
43
43
  require('../chunk-ZW6FPIFC.cjs');
44
44
  require('../chunk-TAVQOU3M.cjs');
45
45
  require('../chunk-Z2XZ2D4N.cjs');
46
- require('../chunk-ITRI47DF.cjs');
46
+ require('../chunk-GMGEAWFX.cjs');
47
47
  require('../chunk-KQF7POTG.cjs');
48
48
  require('../chunk-CQ2YSHIF.cjs');
49
49
  require('../chunk-32HW2Q33.cjs');
@@ -13,16 +13,19 @@ import '../chunk-MZA7GMOH.js';
13
13
  import '../chunk-6HKLTYNN.js';
14
14
  import '../chunk-IA5BYEO7.js';
15
15
  import '../chunk-YDSA5MEN.js';
16
- import '../chunk-GPYLXEZO.js';
16
+ import '../chunk-FCOK73I3.js';
17
17
  import '../chunk-IRPDQJNT.js';
18
18
  import '../chunk-3EWS6ECM.js';
19
19
  import '../chunk-JMQLTMJ7.js';
20
- import '../chunk-LNH6NYG4.js';
21
- import '../chunk-6QZ35CTZ.js';
20
+ import '../chunk-I3VBVP6R.js';
21
+ import '../chunk-AD76WTGR.js';
22
22
  import '../chunk-6MMYWBYS.js';
23
23
  import '../chunk-5Q5IRH6F.js';
24
24
  import '../chunk-F5D7N5KT.js';
25
25
  import '../chunk-K4BGOPGG.js';
26
+ import '../chunk-65S53MZK.js';
27
+ import '../chunk-NS4JD2VR.js';
28
+ import '../chunk-LOJVUGBJ.js';
26
29
  import '../chunk-M4S75AEJ.js';
27
30
  import '../chunk-5LXQPP2K.js';
28
31
  import '../chunk-NUNKSZKU.js';
@@ -30,9 +33,6 @@ import '../chunk-RLWIUUQ5.js';
30
33
  import '../chunk-YU2KUMGE.js';
31
34
  import '../chunk-ELT2V4NB.js';
32
35
  import '../chunk-7F5Z4K5W.js';
33
- import '../chunk-65S53MZK.js';
34
- import '../chunk-NS4JD2VR.js';
35
- import '../chunk-LOJVUGBJ.js';
36
36
  import '../chunk-GIVU67LY.js';
37
37
  import '../chunk-IQHTX2PP.js';
38
38
  import '../chunk-HSVYR3RP.js';
@@ -41,7 +41,7 @@ import '../chunk-VDXKB4WK.js';
41
41
  import '../chunk-P6GHJSLR.js';
42
42
  import '../chunk-SUVMOGTC.js';
43
43
  import '../chunk-DDCMLHXF.js';
44
- import '../chunk-YQEXBJVO.js';
44
+ import '../chunk-DF5X27QX.js';
45
45
  import '../chunk-UH7LTR2B.js';
46
46
  import '../chunk-GAGYAHYO.js';
47
47
  import '../chunk-AUS3KBHJ.js';
@@ -1,5 +1,5 @@
1
1
  import { type RuntimeMeasure } from './useSessionBootstrap';
2
- export type AppRuntimeEffect = 'releaseStaleModals' | 'retiredModelNotice' | 'pausedMutationNotice' | 'paymentReturn' | 'userNameFromWorkspaces' | 'firstLoginRouting' | 'pendingWorkspaceShare' | 'pendingNotification' | 'pendingAccessReview' | 'addonNotice' | 'connectorAutoSync' | 'pageTransition' | 'freshChatModel' | 'workspaceOpenMetrics' | 'prefetch';
2
+ export type AppRuntimeEffect = 'releaseStaleModals' | 'retiredModelNotice' | 'pausedMutationNotice' | 'paymentReturn' | 'userNameFromWorkspaces' | 'firstLoginRouting' | 'welcomeDialog' | 'pendingWorkspaceShare' | 'pendingNotification' | 'pendingAccessReview' | 'addonNotice' | 'connectorAutoSync' | 'pageTransition' | 'freshChatModel' | 'workspaceOpenMetrics' | 'prefetch';
3
3
  export interface ConnectedAppRuntimeProps {
4
4
  /** Effects to turn off (`{ paymentReturn: false }`). Default: every effect on. */
5
5
  effects?: Partial<Record<AppRuntimeEffect, boolean>>;
@@ -1,4 +1,4 @@
1
1
  export { ConnectedAppRuntime, type AppRuntimeEffect, type ConnectedAppRuntimeProps, } from './ConnectedAppRuntime';
2
- export { FIRST_LOGIN_WORKSPACES_VIEW, PAGE_TRANSITION_VIEW, PENDING_ACCESS_REVIEW_VIEW, PENDING_NOTIFICATION_VIEW, PENDING_WORKSPACE_SHARE_VIEW, SEEN_ADDON_BLOCKS_VIEW, withAddonBlocksBought, type AddonBlocks, type FirstLoginWorkspace, type PendingWorkspaceShare, type SeenAddonBlocks, } from './requests';
2
+ export { FIRST_LOGIN_WORKSPACES_VIEW, PAGE_TRANSITION_VIEW, PENDING_ACCESS_REVIEW_VIEW, PENDING_NOTIFICATION_VIEW, PENDING_WORKSPACE_SHARE_VIEW, SEEN_ADDON_BLOCKS_VIEW, skipWelcomeDialogThisSession, WELCOME_DIALOG_SESSION_KEY, withAddonBlocksBought, type AddonBlocks, type FirstLoginWorkspace, type PendingWorkspaceShare, type SeenAddonBlocks, } from './requests';
3
3
  export { addonArrivalMessage } from './useAddonArrivalNotice';
4
4
  export type { RuntimeMeasure } from './useSessionBootstrap';
@@ -30,6 +30,14 @@ export declare const PAGE_TRANSITION_VIEW = "runtime.pageTransition";
30
30
  * arrives on its own (an automatic add-on) is announced once.
31
31
  */
32
32
  export declare const SEEN_ADDON_BLOCKS_VIEW = "billing.seenAddonBlocks";
33
+ /**
34
+ * Set (sessionStorage) once the welcome dialog was considered this session (`welcomeDialog`). A
35
+ * landing with its own purpose (a fresh registration, a secure-mail claim) sets it first, so the
36
+ * dialog skips that session without being recorded as shown.
37
+ */
38
+ export declare const WELCOME_DIALOG_SESSION_KEY = "arbi-welcome-modal-shown";
39
+ /** Skip the welcome dialog for this session (a landing with its own purpose). */
40
+ export declare function skipWelcomeDialogThisSession(): void;
33
41
  export type PendingWorkspaceShare = components['schemas']['PendingWorkspaceShare'];
34
42
  /** A workspace of a fresh registration's login response. */
35
43
  export interface FirstLoginWorkspace {
@@ -0,0 +1,3 @@
1
+ /** Its code in the user's `dismissed_tips` once it has been shown. */
2
+ export declare const WELCOME_DIALOG_TIP = "welcome-modal";
3
+ export declare function useWelcomeDialog(): void;
@@ -0,0 +1,20 @@
1
+ import type { ReactNode } from 'react';
2
+ import { type GettingStartedStripLabels } from '../../home/GettingStartedStrip';
3
+ import { type GettingStartedOptions } from './useGettingStarted';
4
+ export interface ConnectedGettingStartedProps extends GettingStartedOptions {
5
+ /** Brand mark before the greeting. */
6
+ logo?: ReactNode;
7
+ labels?: Partial<GettingStartedStripLabels>;
8
+ /**
9
+ * What the place shows once the journey is hidden (a plain welcome line, say). Nothing shows
10
+ * while the journey's visibility is still undetermined, so the fallback never flashes in first.
11
+ */
12
+ fallback?: ReactNode;
13
+ className?: string;
14
+ }
15
+ /**
16
+ * The welcome journey's strip (`GettingStartedStrip`) bound to {@link useGettingStarted}: the core
17
+ * steps only (the optional invite step is data for other surfaces), the first undone step current,
18
+ * the user greeted by first name. It guides people where to go; it never does the work for them.
19
+ */
20
+ export declare function ConnectedGettingStarted({ logo, labels, fallback, className, ...options }: ConnectedGettingStartedProps): import("react").JSX.Element | null;
@@ -0,0 +1,49 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type TipCardLabels } from '../../shell/TipCard';
3
+ import type { TipsRegistry } from '../../tips/registry';
4
+ /** The situation every placement knows; a host's situation type extends it. */
5
+ export interface TipSituation {
6
+ /** Workspaces the user can open. */
7
+ workspaceCount?: number;
8
+ /** A workspace is open. */
9
+ workspaceOpen?: boolean;
10
+ }
11
+ export interface ConnectedTipBarLabels extends TipCardLabels {
12
+ /** The notice after the dismiss button turned tips off. */
13
+ tipsOff: string;
14
+ }
15
+ export interface TipEditorRenderProps<Context extends string> {
16
+ context: Context;
17
+ open: boolean;
18
+ onOpenChange: (open: boolean) => void;
19
+ }
20
+ export interface ConnectedTipBarProps<Context extends string, State extends TipSituation, Cta> {
21
+ /** The host's tips (`createTipsRegistry`). */
22
+ registry: Pick<TipsRegistry<Context, State, Cta>, 'select' | 'subscribe'>;
23
+ /** The page whose tips show. */
24
+ context: Context;
25
+ /** The host's own situation values; the bar adds `workspaceCount` and `workspaceOpen`. */
26
+ state?: State;
27
+ /** Run a tip's action (the host's action ids, sequences or links). */
28
+ onCta?: (cta: Cta) => void;
29
+ /** Seconds between tips when several apply. Zero disables rotation. Default 30. */
30
+ autoRotateSeconds?: number;
31
+ /**
32
+ * What the dismiss button does. Default: turn tips off for the account (`show_hints`) and say
33
+ * where to turn them back on (`labels.tipsOff`).
34
+ */
35
+ onDismiss?: () => void;
36
+ /** A tip editor (development builds): given, the card shows its edit button. */
37
+ renderEditor?: (props: TipEditorRenderProps<Context>) => ReactNode;
38
+ labels?: Partial<ConnectedTipBarLabels>;
39
+ className?: string;
40
+ }
41
+ export declare const DEFAULT_TIPS_OFF_LABEL = "Tips are off. Turn them back on from your account menu.";
42
+ /**
43
+ * The tips card of a placement (`TipCard`): the highest-priority applicable tip greets the user,
44
+ * several rotate and the pager cycles through them. It renders only while tips are on (once the
45
+ * saved preference has loaded, so it never flashes in) AND a tip applies, so a user who has seen
46
+ * what they need gets a clean screen. A tip's action is the host's (`onCta`); a one-shot offer
47
+ * (`dismissOnCta`) hides itself for good once taken. The CTA label is a uniform "Show me".
48
+ */
49
+ export declare function ConnectedTipBar<Context extends string, State extends TipSituation, Cta>({ registry, context, state, onCta, autoRotateSeconds, onDismiss, renderEditor, labels, className, }: ConnectedTipBarProps<Context, State, Cta>): import("react").JSX.Element | null;
@@ -0,0 +1,51 @@
1
+ export type GettingStartedStepId = 'workspace' | 'upload' | 'ask' | 'invite';
2
+ /**
3
+ * Synthetic dismissed-tips code recording that the user acknowledged the "you're all set" banner:
4
+ * saved on every device through the existing `dismissed_tips` setting.
5
+ */
6
+ export declare const GETTING_STARTED_DONE_TIP = "GS_DONE";
7
+ /** A step's words: its title, and the instruction for where the user stands. */
8
+ export interface GettingStartedStepCopy {
9
+ title: string;
10
+ /** The instruction; `inWorkspace` drops the "open a workspace" lead-in once one is open. */
11
+ description: (inWorkspace: boolean) => string;
12
+ }
13
+ export declare const DEFAULT_GETTING_STARTED_STEPS: Record<GettingStartedStepId, GettingStartedStepCopy>;
14
+ export interface GettingStartedOptions {
15
+ /** The host's words for the steps; omitted fields keep the defaults. */
16
+ steps?: Partial<Record<GettingStartedStepId, Partial<GettingStartedStepCopy>>>;
17
+ /**
18
+ * Tip codes to retire once every core step is done: an offer to take the tour, say, so the tips
19
+ * never nag a graduated user to start what they just finished.
20
+ */
21
+ retireTipsOnComplete?: readonly string[];
22
+ }
23
+ export interface GettingStartedStep {
24
+ id: GettingStartedStepId;
25
+ title: string;
26
+ description: string;
27
+ done: boolean;
28
+ /** Optional steps don't count toward "core complete" and never block hiding. */
29
+ optional?: boolean;
30
+ }
31
+ export interface GettingStartedState {
32
+ steps: GettingStartedStep[];
33
+ /** Completed core (non-optional) steps. */
34
+ completedCore: number;
35
+ /** Total core (non-optional) steps. */
36
+ totalCore: number;
37
+ /** All core steps done: the activation goal is reached. */
38
+ allCoreComplete: boolean;
39
+ /** Whether the journey should render at all. */
40
+ isVisible: boolean;
41
+ /**
42
+ * Visibility is not yet DETERMINED (step data or the saved preference still loading, or the
43
+ * welcome dialog owns the stage). While pending nothing else should take the journey's place,
44
+ * or it flashes in and is yanked away when the journey arrives.
45
+ */
46
+ isPending: boolean;
47
+ /** Shown as an on-demand replay (a guide), not first-run activation tracking. */
48
+ isReplay: boolean;
49
+ dismiss: () => void;
50
+ }
51
+ export declare function useGettingStarted({ steps: stepCopy, retireTipsOnComplete, }?: GettingStartedOptions): GettingStartedState;
@@ -25,8 +25,8 @@ require('../chunk-4623VCCR.cjs');
25
25
  require('../chunk-VLCY46K6.cjs');
26
26
  require('../chunk-72YEEUH7.cjs');
27
27
  require('../chunk-ZXW6WFZG.cjs');
28
- require('../chunk-RFIBUWLF.cjs');
29
28
  require('../chunk-I4IS6ST6.cjs');
29
+ require('../chunk-RFIBUWLF.cjs');
30
30
  require('../chunk-3YEXZX4H.cjs');
31
31
  require('../chunk-AQPZ4QMV.cjs');
32
32
  require('../chunk-SIB6C7P7.cjs');
@@ -23,8 +23,8 @@ import '../chunk-F5D7N5KT.js';
23
23
  import '../chunk-K4BGOPGG.js';
24
24
  import '../chunk-WKYKDTNM.js';
25
25
  import '../chunk-2VH2PT3J.js';
26
- import '../chunk-CQCC7LE7.js';
27
26
  import '../chunk-LRPGXNMA.js';
27
+ import '../chunk-CQCC7LE7.js';
28
28
  import '../chunk-4QUUU7GH.js';
29
29
  import '../chunk-G4GLDQLY.js';
30
30
  import '../chunk-M4S75AEJ.js';
@@ -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