@arbidocs/blocks 0.4.5 → 0.4.7

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 (131) hide show
  1. package/README.md +46 -6
  2. package/dist/agents/index.cjs +163 -162
  3. package/dist/agents/index.js +6 -5
  4. package/dist/chat/ChatMessageContent.d.ts +16 -0
  5. package/dist/chat/ChatPage.d.ts +11 -8
  6. package/dist/chat/ChatThreads.d.ts +3 -1
  7. package/dist/chat/CitationMark.d.ts +18 -0
  8. package/dist/chat/chat-page-types.d.ts +75 -1
  9. package/dist/chat/index.cjs +126 -117
  10. package/dist/chat/index.d.ts +3 -1
  11. package/dist/chat/index.js +5 -4
  12. package/dist/{chunk-3MIQASHO.cjs → chunk-23XL6SVZ.cjs} +39 -19
  13. package/dist/chunk-23XL6SVZ.cjs.map +1 -0
  14. package/dist/{chunk-ULWRNGGE.cjs → chunk-2ZTONLT5.cjs} +4 -25
  15. package/dist/chunk-2ZTONLT5.cjs.map +1 -0
  16. package/dist/{chunk-O637DUKS.cjs → chunk-56BUD74K.cjs} +28 -28
  17. package/dist/{chunk-O637DUKS.cjs.map → chunk-56BUD74K.cjs.map} +1 -1
  18. package/dist/{chunk-YLOKCIQJ.cjs → chunk-5SLLMK5K.cjs} +421 -115
  19. package/dist/chunk-5SLLMK5K.cjs.map +1 -0
  20. package/dist/{chunk-SS23F63U.cjs → chunk-5ZBP7TCD.cjs} +55 -3
  21. package/dist/chunk-5ZBP7TCD.cjs.map +1 -0
  22. package/dist/{chunk-3PZPRAAR.cjs → chunk-67HGXV4I.cjs} +14 -14
  23. package/dist/{chunk-3PZPRAAR.cjs.map → chunk-67HGXV4I.cjs.map} +1 -1
  24. package/dist/{chunk-RCP6THBS.js → chunk-7OCFHEE6.js} +3 -3
  25. package/dist/{chunk-RCP6THBS.js.map → chunk-7OCFHEE6.js.map} +1 -1
  26. package/dist/{chunk-TX2ZICS7.js → chunk-CPMNAJLF.js} +4 -24
  27. package/dist/chunk-CPMNAJLF.js.map +1 -0
  28. package/dist/{chunk-5XTZFH65.js → chunk-CVFBSUXL.js} +5 -5
  29. package/dist/{chunk-5XTZFH65.js.map → chunk-CVFBSUXL.js.map} +1 -1
  30. package/dist/chunk-DCDVWPMB.cjs +29 -0
  31. package/dist/chunk-DCDVWPMB.cjs.map +1 -0
  32. package/dist/{chunk-TI4UTYRL.js → chunk-EY2RJW27.js} +258 -10
  33. package/dist/chunk-EY2RJW27.js.map +1 -0
  34. package/dist/{chunk-7YADKWZT.js → chunk-G2E3O3HI.js} +3 -3
  35. package/dist/{chunk-7YADKWZT.js.map → chunk-G2E3O3HI.js.map} +1 -1
  36. package/dist/{chunk-6YHWXMPQ.js → chunk-G2T3KTZ3.js} +419 -115
  37. package/dist/chunk-G2T3KTZ3.js.map +1 -0
  38. package/dist/{chunk-2NNTQLBY.js → chunk-IAKUTBPX.js} +4 -4
  39. package/dist/{chunk-2NNTQLBY.js.map → chunk-IAKUTBPX.js.map} +1 -1
  40. package/dist/{chunk-IZHWP6WQ.cjs → chunk-JG4TFS3Z.cjs} +6 -6
  41. package/dist/{chunk-IZHWP6WQ.cjs.map → chunk-JG4TFS3Z.cjs.map} +1 -1
  42. package/dist/chunk-JLOYWXRB.js +1156 -0
  43. package/dist/chunk-JLOYWXRB.js.map +1 -0
  44. package/dist/{chunk-WJZBJUPX.js → chunk-KXMDOTGW.js} +56 -4
  45. package/dist/chunk-KXMDOTGW.js.map +1 -0
  46. package/dist/{chunk-2VBJ763Y.js → chunk-KZJAG7T3.js} +37 -7
  47. package/dist/chunk-KZJAG7T3.js.map +1 -0
  48. package/dist/{chunk-RIL7G7AS.cjs → chunk-MGUHR3JI.cjs} +4 -4
  49. package/dist/{chunk-RIL7G7AS.cjs.map → chunk-MGUHR3JI.cjs.map} +1 -1
  50. package/dist/{chunk-NPKGUQU5.js → chunk-NJL4LIXX.js} +4 -4
  51. package/dist/{chunk-NPKGUQU5.js.map → chunk-NJL4LIXX.js.map} +1 -1
  52. package/dist/{chunk-DN3NFNIA.cjs → chunk-QMDLPO3M.cjs} +266 -10
  53. package/dist/chunk-QMDLPO3M.cjs.map +1 -0
  54. package/dist/chunk-TJMKFY5P.js +27 -0
  55. package/dist/chunk-TJMKFY5P.js.map +1 -0
  56. package/dist/{chunk-3PJCET7H.js → chunk-UHVNYKV2.js} +38 -18
  57. package/dist/chunk-UHVNYKV2.js.map +1 -0
  58. package/dist/{chunk-6CHMNKXC.cjs → chunk-UTYQPVIW.cjs} +11 -11
  59. package/dist/chunk-UTYQPVIW.cjs.map +1 -0
  60. package/dist/{chunk-KHX2BX3S.cjs → chunk-VGOFFCMT.cjs} +37 -5
  61. package/dist/chunk-VGOFFCMT.cjs.map +1 -0
  62. package/dist/{chunk-67MKU5U7.js → chunk-YMHGF6R5.js} +8 -8
  63. package/dist/chunk-YMHGF6R5.js.map +1 -0
  64. package/dist/chunk-YVIOCITQ.cjs +1186 -0
  65. package/dist/chunk-YVIOCITQ.cjs.map +1 -0
  66. package/dist/{chunk-MVNCQDDE.cjs → chunk-ZVPTFTGV.cjs} +4 -4
  67. package/dist/{chunk-MVNCQDDE.cjs.map → chunk-ZVPTFTGV.cjs.map} +1 -1
  68. package/dist/collaboration/index.cjs +38 -37
  69. package/dist/collaboration/index.js +3 -2
  70. package/dist/connect/index.cjs +358 -19
  71. package/dist/connect/index.cjs.map +1 -1
  72. package/dist/connect/index.d.ts +1 -0
  73. package/dist/connect/index.js +341 -9
  74. package/dist/connect/index.js.map +1 -1
  75. package/dist/connection/ConnectedSettings.d.ts +64 -0
  76. package/dist/facts/index.cjs +2 -2
  77. package/dist/facts/index.js +2 -2
  78. package/dist/files/index.cjs +15 -14
  79. package/dist/files/index.cjs.map +1 -1
  80. package/dist/files/index.js +5 -4
  81. package/dist/files/index.js.map +1 -1
  82. package/dist/home/index.cjs +19 -19
  83. package/dist/home/index.js +4 -4
  84. package/dist/index.cjs +526 -477
  85. package/dist/index.cjs.map +1 -1
  86. package/dist/index.js +17 -16
  87. package/dist/index.js.map +1 -1
  88. package/dist/lib/bottom-inset.d.ts +16 -0
  89. package/dist/lib/useElementSize.d.ts +13 -0
  90. package/dist/lib/useFillHeight.d.ts +10 -0
  91. package/dist/settings/account-views.d.ts +55 -0
  92. package/dist/settings/index.cjs +179 -1148
  93. package/dist/settings/index.cjs.map +1 -1
  94. package/dist/settings/index.d.ts +1 -0
  95. package/dist/settings/index.js +10 -1073
  96. package/dist/settings/index.js.map +1 -1
  97. package/dist/shell/InstallPrompt.d.ts +28 -0
  98. package/dist/shell/MobileBars.d.ts +1 -1
  99. package/dist/shell/index.cjs +85 -45
  100. package/dist/shell/index.d.ts +4 -0
  101. package/dist/shell/index.js +3 -3
  102. package/dist/shell/install-instructions.d.ts +19 -0
  103. package/dist/shell/types.d.ts +6 -0
  104. package/dist/shell/use-install-prompt.d.ts +49 -0
  105. package/dist/site/index.cjs +62 -62
  106. package/dist/site/index.js +2 -2
  107. package/dist/studio/index.cjs +78 -77
  108. package/dist/studio/index.cjs.map +1 -1
  109. package/dist/studio/index.js +8 -7
  110. package/dist/studio/index.js.map +1 -1
  111. package/dist/theme/ThemeEditor.d.ts +4 -2
  112. package/dist/workspaces/index.cjs +4 -3
  113. package/dist/workspaces/index.cjs.map +1 -1
  114. package/dist/workspaces/index.js +3 -2
  115. package/dist/workspaces/index.js.map +1 -1
  116. package/package.json +8 -4
  117. package/src/blocks.css +30 -0
  118. package/dist/chunk-2VBJ763Y.js.map +0 -1
  119. package/dist/chunk-3MIQASHO.cjs.map +0 -1
  120. package/dist/chunk-3PJCET7H.js.map +0 -1
  121. package/dist/chunk-67MKU5U7.js.map +0 -1
  122. package/dist/chunk-6CHMNKXC.cjs.map +0 -1
  123. package/dist/chunk-6YHWXMPQ.js.map +0 -1
  124. package/dist/chunk-DN3NFNIA.cjs.map +0 -1
  125. package/dist/chunk-KHX2BX3S.cjs.map +0 -1
  126. package/dist/chunk-SS23F63U.cjs.map +0 -1
  127. package/dist/chunk-TI4UTYRL.js.map +0 -1
  128. package/dist/chunk-TX2ZICS7.js.map +0 -1
  129. package/dist/chunk-ULWRNGGE.cjs.map +0 -1
  130. package/dist/chunk-WJZBJUPX.js.map +0 -1
  131. package/dist/chunk-YLOKCIQJ.cjs.map +0 -1
@@ -0,0 +1,28 @@
1
+ import { type UseInstallPromptOptions } from './use-install-prompt';
2
+ /** Fixed strings of the install prompt. */
3
+ export interface InstallPromptLabels {
4
+ /** The pill's text. */
5
+ install: string;
6
+ /** The dismiss button's accessible name. */
7
+ dismiss: string;
8
+ /** Accessible name of the pill (`{app}` is replaced by `appName`). */
9
+ installAs: string;
10
+ }
11
+ export declare const DEFAULT_INSTALL_PROMPT_LABELS: InstallPromptLabels;
12
+ export interface InstallPromptProps extends UseInstallPromptOptions {
13
+ /** Which bottom corner the pill sits in. Default `start` (clear of a bottom-right toaster). */
14
+ placement?: 'start' | 'end';
15
+ labels?: Partial<InstallPromptLabels>;
16
+ className?: string;
17
+ 'data-testid'?: string;
18
+ }
19
+ /**
20
+ * A small floating "Install app" pill. Renders only while the app can be installed (the browser
21
+ * fired `beforeinstallprompt`, or on iOS where it shows the Add to Home Screen steps), is not
22
+ * already installed, and was not dismissed (the dismissal is remembered for `dismissDays`).
23
+ *
24
+ * It sits above whatever is pinned to the bottom of the screen: it reads `--shell-bottom-inset`
25
+ * (set by `MobileTabBar` and the chat composer, see `useShellBottomInset`) plus the device
26
+ * safe area, so it never covers the tab bar or the composer. Both controls are 44px tall on a phone.
27
+ */
28
+ export declare function InstallPrompt({ placement, labels, className, 'data-testid': testId, ...options }: InstallPromptProps): import("react").JSX.Element | null;
@@ -1,4 +1,4 @@
1
- import type { ReactNode } from 'react';
1
+ import { type ReactNode } from 'react';
2
2
  import type { NavItem } from './types';
3
3
  /** Fixed strings of the phone bars. */
4
4
  export interface MobileBarsLabels {
@@ -1,147 +1,179 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkDN3NFNIA_cjs = require('../chunk-DN3NFNIA.cjs');
4
+ var chunkQMDLPO3M_cjs = require('../chunk-QMDLPO3M.cjs');
5
5
  var chunk5B4PXAKI_cjs = require('../chunk-5B4PXAKI.cjs');
6
- require('../chunk-PPCATBOY.cjs');
7
6
  require('../chunk-OB5F4577.cjs');
8
7
  require('../chunk-C54XEN5T.cjs');
9
- var chunkKHX2BX3S_cjs = require('../chunk-KHX2BX3S.cjs');
8
+ var chunkVGOFFCMT_cjs = require('../chunk-VGOFFCMT.cjs');
9
+ require('../chunk-PPCATBOY.cjs');
10
10
  require('../chunk-MHVNT4J3.cjs');
11
11
 
12
12
 
13
13
 
14
14
  Object.defineProperty(exports, "ActionCluster", {
15
15
  enumerable: true,
16
- get: function () { return chunkDN3NFNIA_cjs.ActionCluster; }
16
+ get: function () { return chunkQMDLPO3M_cjs.ActionCluster; }
17
17
  });
18
18
  Object.defineProperty(exports, "AskField", {
19
19
  enumerable: true,
20
- get: function () { return chunkDN3NFNIA_cjs.AskField; }
20
+ get: function () { return chunkQMDLPO3M_cjs.AskField; }
21
21
  });
22
22
  Object.defineProperty(exports, "AskRow", {
23
23
  enumerable: true,
24
- get: function () { return chunkDN3NFNIA_cjs.AskRow; }
24
+ get: function () { return chunkQMDLPO3M_cjs.AskRow; }
25
25
  });
26
26
  Object.defineProperty(exports, "AskTrigger", {
27
27
  enumerable: true,
28
- get: function () { return chunkDN3NFNIA_cjs.AskTrigger; }
28
+ get: function () { return chunkQMDLPO3M_cjs.AskTrigger; }
29
29
  });
30
30
  Object.defineProperty(exports, "DEFAULT_ASK_FIELD_LABELS", {
31
31
  enumerable: true,
32
- get: function () { return chunkDN3NFNIA_cjs.DEFAULT_ASK_FIELD_LABELS; }
32
+ get: function () { return chunkQMDLPO3M_cjs.DEFAULT_ASK_FIELD_LABELS; }
33
+ });
34
+ Object.defineProperty(exports, "DEFAULT_INSTALL_PROMPT_LABELS", {
35
+ enumerable: true,
36
+ get: function () { return chunkQMDLPO3M_cjs.DEFAULT_INSTALL_PROMPT_LABELS; }
33
37
  });
34
38
  Object.defineProperty(exports, "DEFAULT_MOBILE_BARS_LABELS", {
35
39
  enumerable: true,
36
- get: function () { return chunkDN3NFNIA_cjs.DEFAULT_MOBILE_BARS_LABELS; }
40
+ get: function () { return chunkQMDLPO3M_cjs.DEFAULT_MOBILE_BARS_LABELS; }
37
41
  });
38
42
  Object.defineProperty(exports, "DEFAULT_OFFLINE_PILL_LABELS", {
39
43
  enumerable: true,
40
- get: function () { return chunkDN3NFNIA_cjs.DEFAULT_OFFLINE_PILL_LABELS; }
44
+ get: function () { return chunkQMDLPO3M_cjs.DEFAULT_OFFLINE_PILL_LABELS; }
41
45
  });
42
46
  Object.defineProperty(exports, "DEFAULT_REMOTE_CONTROL_PILL_LABELS", {
43
47
  enumerable: true,
44
- get: function () { return chunkDN3NFNIA_cjs.DEFAULT_REMOTE_CONTROL_PILL_LABELS; }
48
+ get: function () { return chunkQMDLPO3M_cjs.DEFAULT_REMOTE_CONTROL_PILL_LABELS; }
45
49
  });
46
50
  Object.defineProperty(exports, "DEFAULT_SIDEBAR_LABELS", {
47
51
  enumerable: true,
48
- get: function () { return chunkDN3NFNIA_cjs.DEFAULT_SIDEBAR_LABELS; }
52
+ get: function () { return chunkQMDLPO3M_cjs.DEFAULT_SIDEBAR_LABELS; }
49
53
  });
50
54
  Object.defineProperty(exports, "DEFAULT_TIP_CARD_LABELS", {
51
55
  enumerable: true,
52
- get: function () { return chunkDN3NFNIA_cjs.DEFAULT_TIP_CARD_LABELS; }
56
+ get: function () { return chunkQMDLPO3M_cjs.DEFAULT_TIP_CARD_LABELS; }
53
57
  });
54
58
  Object.defineProperty(exports, "DEFAULT_WORKSPACE_KIND_LABELS", {
55
59
  enumerable: true,
56
- get: function () { return chunkDN3NFNIA_cjs.DEFAULT_WORKSPACE_KIND_LABELS; }
60
+ get: function () { return chunkQMDLPO3M_cjs.DEFAULT_WORKSPACE_KIND_LABELS; }
57
61
  });
58
62
  Object.defineProperty(exports, "DEFAULT_WORKSPACE_SWITCHER_LABELS", {
59
63
  enumerable: true,
60
- get: function () { return chunkDN3NFNIA_cjs.DEFAULT_WORKSPACE_SWITCHER_LABELS; }
64
+ get: function () { return chunkQMDLPO3M_cjs.DEFAULT_WORKSPACE_SWITCHER_LABELS; }
65
+ });
66
+ Object.defineProperty(exports, "INSTALL_PROMPT_DISMISSED_KEY", {
67
+ enumerable: true,
68
+ get: function () { return chunkQMDLPO3M_cjs.INSTALL_PROMPT_DISMISSED_KEY; }
61
69
  });
62
70
  Object.defineProperty(exports, "InfoBar", {
63
71
  enumerable: true,
64
- get: function () { return chunkDN3NFNIA_cjs.InfoBar; }
72
+ get: function () { return chunkQMDLPO3M_cjs.InfoBar; }
73
+ });
74
+ Object.defineProperty(exports, "InstallPrompt", {
75
+ enumerable: true,
76
+ get: function () { return chunkQMDLPO3M_cjs.InstallPrompt; }
65
77
  });
66
78
  Object.defineProperty(exports, "MobileAppBar", {
67
79
  enumerable: true,
68
- get: function () { return chunkDN3NFNIA_cjs.MobileAppBar; }
80
+ get: function () { return chunkQMDLPO3M_cjs.MobileAppBar; }
69
81
  });
70
82
  Object.defineProperty(exports, "MobileTabBar", {
71
83
  enumerable: true,
72
- get: function () { return chunkDN3NFNIA_cjs.MobileTabBar; }
84
+ get: function () { return chunkQMDLPO3M_cjs.MobileTabBar; }
73
85
  });
74
86
  Object.defineProperty(exports, "NotificationBell", {
75
87
  enumerable: true,
76
- get: function () { return chunkDN3NFNIA_cjs.NotificationBell; }
88
+ get: function () { return chunkQMDLPO3M_cjs.NotificationBell; }
77
89
  });
78
90
  Object.defineProperty(exports, "OfflinePill", {
79
91
  enumerable: true,
80
- get: function () { return chunkDN3NFNIA_cjs.OfflinePill; }
92
+ get: function () { return chunkQMDLPO3M_cjs.OfflinePill; }
81
93
  });
82
94
  Object.defineProperty(exports, "RemoteControlPill", {
83
95
  enumerable: true,
84
- get: function () { return chunkDN3NFNIA_cjs.RemoteControlPill; }
96
+ get: function () { return chunkQMDLPO3M_cjs.RemoteControlPill; }
85
97
  });
86
98
  Object.defineProperty(exports, "Sidebar", {
87
99
  enumerable: true,
88
- get: function () { return chunkDN3NFNIA_cjs.Sidebar; }
100
+ get: function () { return chunkQMDLPO3M_cjs.Sidebar; }
89
101
  });
90
102
  Object.defineProperty(exports, "SidebarBadgeRow", {
91
103
  enumerable: true,
92
- get: function () { return chunkDN3NFNIA_cjs.SidebarBadgeRow; }
104
+ get: function () { return chunkQMDLPO3M_cjs.SidebarBadgeRow; }
93
105
  });
94
106
  Object.defineProperty(exports, "SidebarRowAction", {
95
107
  enumerable: true,
96
- get: function () { return chunkDN3NFNIA_cjs.SidebarRowAction; }
108
+ get: function () { return chunkQMDLPO3M_cjs.SidebarRowAction; }
97
109
  });
98
110
  Object.defineProperty(exports, "SidebarRowHoverContext", {
99
111
  enumerable: true,
100
- get: function () { return chunkDN3NFNIA_cjs.SidebarRowHoverContext; }
112
+ get: function () { return chunkQMDLPO3M_cjs.SidebarRowHoverContext; }
101
113
  });
102
114
  Object.defineProperty(exports, "SplitLayout", {
103
115
  enumerable: true,
104
- get: function () { return chunkDN3NFNIA_cjs.SplitLayout; }
116
+ get: function () { return chunkQMDLPO3M_cjs.SplitLayout; }
105
117
  });
106
118
  Object.defineProperty(exports, "StatusRow", {
107
119
  enumerable: true,
108
- get: function () { return chunkDN3NFNIA_cjs.StatusRow; }
120
+ get: function () { return chunkQMDLPO3M_cjs.StatusRow; }
109
121
  });
110
122
  Object.defineProperty(exports, "TipCard", {
111
123
  enumerable: true,
112
- get: function () { return chunkDN3NFNIA_cjs.TipCard; }
124
+ get: function () { return chunkQMDLPO3M_cjs.TipCard; }
113
125
  });
114
126
  Object.defineProperty(exports, "UserMenu", {
115
127
  enumerable: true,
116
- get: function () { return chunkDN3NFNIA_cjs.UserMenu; }
128
+ get: function () { return chunkQMDLPO3M_cjs.UserMenu; }
117
129
  });
118
130
  Object.defineProperty(exports, "WorkspaceIdentity", {
119
131
  enumerable: true,
120
- get: function () { return chunkDN3NFNIA_cjs.WorkspaceIdentity; }
132
+ get: function () { return chunkQMDLPO3M_cjs.WorkspaceIdentity; }
121
133
  });
122
134
  Object.defineProperty(exports, "WorkspaceSwitcher", {
123
135
  enumerable: true,
124
- get: function () { return chunkDN3NFNIA_cjs.WorkspaceSwitcher; }
136
+ get: function () { return chunkQMDLPO3M_cjs.WorkspaceSwitcher; }
137
+ });
138
+ Object.defineProperty(exports, "getInstallInstructions", {
139
+ enumerable: true,
140
+ get: function () { return chunkQMDLPO3M_cjs.getInstallInstructions; }
141
+ });
142
+ Object.defineProperty(exports, "initInstallPrompt", {
143
+ enumerable: true,
144
+ get: function () { return chunkQMDLPO3M_cjs.initInstallPrompt; }
145
+ });
146
+ Object.defineProperty(exports, "isIosDevice", {
147
+ enumerable: true,
148
+ get: function () { return chunkQMDLPO3M_cjs.isIosDevice; }
149
+ });
150
+ Object.defineProperty(exports, "promptAppInstall", {
151
+ enumerable: true,
152
+ get: function () { return chunkQMDLPO3M_cjs.promptAppInstall; }
125
153
  });
126
154
  Object.defineProperty(exports, "resolveSidebarLayout", {
127
155
  enumerable: true,
128
- get: function () { return chunkDN3NFNIA_cjs.resolveSidebarLayout; }
156
+ get: function () { return chunkQMDLPO3M_cjs.resolveSidebarLayout; }
157
+ });
158
+ Object.defineProperty(exports, "useInstallPrompt", {
159
+ enumerable: true,
160
+ get: function () { return chunkQMDLPO3M_cjs.useInstallPrompt; }
129
161
  });
130
162
  Object.defineProperty(exports, "useSidebarContext", {
131
163
  enumerable: true,
132
- get: function () { return chunkDN3NFNIA_cjs.useSidebarContext; }
164
+ get: function () { return chunkQMDLPO3M_cjs.useSidebarContext; }
133
165
  });
134
166
  Object.defineProperty(exports, "useSidebarSettle", {
135
167
  enumerable: true,
136
- get: function () { return chunkDN3NFNIA_cjs.useSidebarSettle; }
168
+ get: function () { return chunkQMDLPO3M_cjs.useSidebarSettle; }
137
169
  });
138
170
  Object.defineProperty(exports, "workspaceKindColor", {
139
171
  enumerable: true,
140
- get: function () { return chunkDN3NFNIA_cjs.workspaceKindColor; }
172
+ get: function () { return chunkQMDLPO3M_cjs.workspaceKindColor; }
141
173
  });
142
174
  Object.defineProperty(exports, "workspaceKindMeta", {
143
175
  enumerable: true,
144
- get: function () { return chunkDN3NFNIA_cjs.workspaceKindMeta; }
176
+ get: function () { return chunkQMDLPO3M_cjs.workspaceKindMeta; }
145
177
  });
146
178
  Object.defineProperty(exports, "DEFAULT_TAB_HEADER_LABELS", {
147
179
  enumerable: true,
@@ -153,39 +185,47 @@ Object.defineProperty(exports, "TabHeader", {
153
185
  });
154
186
  Object.defineProperty(exports, "DEFAULT_OVERLAY_ZONE_ID", {
155
187
  enumerable: true,
156
- get: function () { return chunkKHX2BX3S_cjs.DEFAULT_OVERLAY_ZONE_ID; }
188
+ get: function () { return chunkVGOFFCMT_cjs.DEFAULT_OVERLAY_ZONE_ID; }
157
189
  });
158
190
  Object.defineProperty(exports, "DEFAULT_PAGE_CONTAINER_PADDING", {
159
191
  enumerable: true,
160
- get: function () { return chunkKHX2BX3S_cjs.DEFAULT_PAGE_CONTAINER_PADDING; }
192
+ get: function () { return chunkVGOFFCMT_cjs.DEFAULT_PAGE_CONTAINER_PADDING; }
161
193
  });
162
194
  Object.defineProperty(exports, "DEFAULT_SIDEBAR_TOGGLE_BUTTON_LABELS", {
163
195
  enumerable: true,
164
- get: function () { return chunkKHX2BX3S_cjs.DEFAULT_SIDEBAR_TOGGLE_BUTTON_LABELS; }
196
+ get: function () { return chunkVGOFFCMT_cjs.DEFAULT_SIDEBAR_TOGGLE_BUTTON_LABELS; }
165
197
  });
166
198
  Object.defineProperty(exports, "PageContainer", {
167
199
  enumerable: true,
168
- get: function () { return chunkKHX2BX3S_cjs.PageContainer; }
200
+ get: function () { return chunkVGOFFCMT_cjs.PageContainer; }
201
+ });
202
+ Object.defineProperty(exports, "SHELL_BOTTOM_INSET_VAR", {
203
+ enumerable: true,
204
+ get: function () { return chunkVGOFFCMT_cjs.SHELL_BOTTOM_INSET_VAR; }
169
205
  });
170
206
  Object.defineProperty(exports, "Shell", {
171
207
  enumerable: true,
172
- get: function () { return chunkKHX2BX3S_cjs.Shell; }
208
+ get: function () { return chunkVGOFFCMT_cjs.Shell; }
173
209
  });
174
210
  Object.defineProperty(exports, "SidebarToggleButton", {
175
211
  enumerable: true,
176
- get: function () { return chunkKHX2BX3S_cjs.SidebarToggleButton; }
212
+ get: function () { return chunkVGOFFCMT_cjs.SidebarToggleButton; }
177
213
  });
178
214
  Object.defineProperty(exports, "ToolButton", {
179
215
  enumerable: true,
180
- get: function () { return chunkKHX2BX3S_cjs.ToolButton; }
216
+ get: function () { return chunkVGOFFCMT_cjs.ToolButton; }
181
217
  });
182
218
  Object.defineProperty(exports, "useDrawerBehavior", {
183
219
  enumerable: true,
184
- get: function () { return chunkKHX2BX3S_cjs.useDrawerBehavior; }
220
+ get: function () { return chunkVGOFFCMT_cjs.useDrawerBehavior; }
185
221
  });
186
222
  Object.defineProperty(exports, "useOverlayZoneId", {
187
223
  enumerable: true,
188
- get: function () { return chunkKHX2BX3S_cjs.useOverlayZoneId; }
224
+ get: function () { return chunkVGOFFCMT_cjs.useOverlayZoneId; }
225
+ });
226
+ Object.defineProperty(exports, "useShellBottomInset", {
227
+ enumerable: true,
228
+ get: function () { return chunkVGOFFCMT_cjs.useShellBottomInset; }
189
229
  });
190
230
  //# sourceMappingURL=index.cjs.map
191
231
  //# sourceMappingURL=index.cjs.map
@@ -5,6 +5,10 @@ export { SidebarRowAction, type SidebarRowActionProps, type SidebarRowActionPuls
5
5
  export { WorkspaceSwitcher, WorkspaceIdentity, workspaceKindMeta, workspaceKindColor, DEFAULT_WORKSPACE_KIND_LABELS, DEFAULT_WORKSPACE_SWITCHER_LABELS, type WorkspaceSwitcherProps, type WorkspaceIdentityProps, type WorkspaceKindLabels, type WorkspaceSwitcherLabels, } from './Workspace';
6
6
  export { AskField, AskTrigger, AskRow, DEFAULT_ASK_FIELD_LABELS, type AskFieldLabels, type AskFieldProps, type AskTriggerProps, type AskRowProps, } from './AskField';
7
7
  export { MobileAppBar, MobileTabBar, DEFAULT_MOBILE_BARS_LABELS, type MobileBarsLabels, type MobileAppBarProps, type MobileTabBarProps, } from './MobileBars';
8
+ export { InstallPrompt, DEFAULT_INSTALL_PROMPT_LABELS, type InstallPromptLabels, type InstallPromptProps, } from './InstallPrompt';
9
+ export { useInstallPrompt, initInstallPrompt, promptAppInstall, INSTALL_PROMPT_DISMISSED_KEY, type UseInstallPromptOptions, type UseInstallPromptResult, } from './use-install-prompt';
10
+ export { getInstallInstructions, isIosDevice, type InstallGuide, type InstallInstructionsOptions, } from './install-instructions';
11
+ export { useShellBottomInset, SHELL_BOTTOM_INSET_VAR } from '../lib/bottom-inset';
8
12
  export { ActionCluster, type ActionClusterProps } from './ActionCluster';
9
13
  export { ToolButton, type ToolButtonProps } from './ToolButton';
10
14
  export { StatusRow, type StatusRowProps, type StatusRowTone } from './StatusRow';
@@ -1,10 +1,10 @@
1
1
  "use client";
2
- export { ActionCluster, AskField, AskRow, AskTrigger, DEFAULT_ASK_FIELD_LABELS, DEFAULT_MOBILE_BARS_LABELS, DEFAULT_OFFLINE_PILL_LABELS, DEFAULT_REMOTE_CONTROL_PILL_LABELS, DEFAULT_SIDEBAR_LABELS, DEFAULT_TIP_CARD_LABELS, DEFAULT_WORKSPACE_KIND_LABELS, DEFAULT_WORKSPACE_SWITCHER_LABELS, InfoBar, MobileAppBar, MobileTabBar, NotificationBell, OfflinePill, RemoteControlPill, Sidebar, SidebarBadgeRow, SidebarRowAction, SidebarRowHoverContext, SplitLayout, StatusRow, TipCard, UserMenu, WorkspaceIdentity, WorkspaceSwitcher, resolveSidebarLayout, useSidebarContext, useSidebarSettle, workspaceKindColor, workspaceKindMeta } from '../chunk-TI4UTYRL.js';
2
+ export { ActionCluster, AskField, AskRow, AskTrigger, DEFAULT_ASK_FIELD_LABELS, DEFAULT_INSTALL_PROMPT_LABELS, DEFAULT_MOBILE_BARS_LABELS, DEFAULT_OFFLINE_PILL_LABELS, DEFAULT_REMOTE_CONTROL_PILL_LABELS, DEFAULT_SIDEBAR_LABELS, DEFAULT_TIP_CARD_LABELS, DEFAULT_WORKSPACE_KIND_LABELS, DEFAULT_WORKSPACE_SWITCHER_LABELS, INSTALL_PROMPT_DISMISSED_KEY, InfoBar, InstallPrompt, MobileAppBar, MobileTabBar, NotificationBell, OfflinePill, RemoteControlPill, Sidebar, SidebarBadgeRow, SidebarRowAction, SidebarRowHoverContext, SplitLayout, StatusRow, TipCard, UserMenu, WorkspaceIdentity, WorkspaceSwitcher, getInstallInstructions, initInstallPrompt, isIosDevice, promptAppInstall, resolveSidebarLayout, useInstallPrompt, useSidebarContext, useSidebarSettle, workspaceKindColor, workspaceKindMeta } from '../chunk-EY2RJW27.js';
3
3
  export { DEFAULT_TAB_HEADER_LABELS, TabHeader } from '../chunk-UBNVIIBT.js';
4
- import '../chunk-NPLYHR2E.js';
5
4
  import '../chunk-S7PSMMRG.js';
6
5
  import '../chunk-76JDDMSP.js';
7
- export { DEFAULT_OVERLAY_ZONE_ID, DEFAULT_PAGE_CONTAINER_PADDING, DEFAULT_SIDEBAR_TOGGLE_BUTTON_LABELS, PageContainer, Shell, SidebarToggleButton, ToolButton, useDrawerBehavior, useOverlayZoneId } from '../chunk-2VBJ763Y.js';
6
+ export { DEFAULT_OVERLAY_ZONE_ID, DEFAULT_PAGE_CONTAINER_PADDING, DEFAULT_SIDEBAR_TOGGLE_BUTTON_LABELS, PageContainer, SHELL_BOTTOM_INSET_VAR, Shell, SidebarToggleButton, ToolButton, useDrawerBehavior, useOverlayZoneId, useShellBottomInset } from '../chunk-KZJAG7T3.js';
7
+ import '../chunk-NPLYHR2E.js';
8
8
  import '../chunk-7F6CBP3Z.js';
9
9
  //# sourceMappingURL=index.js.map
10
10
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Per-browser PWA install instructions, for when the browser cannot open the install dialog
3
+ * directly (iOS Safari, Safari on macOS, Firefox, or a Chromium browser that never fired
4
+ * `beforeinstallprompt`). Only Chromium exposes a JS trigger, so off that path we tell the user
5
+ * the right gesture for their browser.
6
+ */
7
+ export interface InstallGuide {
8
+ heading: string;
9
+ steps: string[];
10
+ note?: string;
11
+ }
12
+ export interface InstallInstructionsOptions {
13
+ /** Name shown in the steps. Default `this app`. */
14
+ appName?: string;
15
+ }
16
+ /** True on iPhone/iPad/iPod, including iPadOS reporting as a Mac. */
17
+ export declare function isIosDevice(): boolean;
18
+ /** Pick install steps for the current browser/platform. */
19
+ export declare function getInstallInstructions({ appName, }?: InstallInstructionsOptions): InstallGuide;
@@ -7,6 +7,12 @@ export interface NavItem {
7
7
  /** Stable key; also the suffix of the mobile tab test id (`mobile-tab-{id}`). */
8
8
  id: string;
9
9
  label: string;
10
+ /**
11
+ * Shorter text for a narrow phone tab (`Assistant` for `AI Assistant`). The tab bar shows it
12
+ * when the tab is under 5.5rem wide and the full label otherwise; the full label stays the
13
+ * accessible name. Words are never cut mid-word either way.
14
+ */
15
+ shortLabel?: string;
10
16
  /** Glyph (compose any status dot into it). */
11
17
  icon: ReactNode;
12
18
  active?: boolean;
@@ -0,0 +1,49 @@
1
+ import { type InstallGuide } from './install-instructions';
2
+ /**
3
+ * Begin capturing install events. Idempotent. Chromium fires `beforeinstallprompt` once, early,
4
+ * usually before a lazy route has mounted, so call this at app startup (before the first render);
5
+ * `useInstallPrompt` also calls it, which is enough when the hook mounts at the root.
6
+ *
7
+ * `options.autoPromptParam`: a share link `/?{param}=true` opens the native dialog as soon as the
8
+ * browser is ready (Chromium).
9
+ */
10
+ export declare function initInstallPrompt(options?: {
11
+ autoPromptParam?: string;
12
+ }): void;
13
+ /**
14
+ * Open the browser's install dialog if one was captured. Returns false when there is none (the
15
+ * caller then shows {@link getInstallInstructions}). A captured prompt works once.
16
+ */
17
+ export declare function promptAppInstall(): Promise<boolean>;
18
+ /** Default storage key of the remembered dismissal. */
19
+ export declare const INSTALL_PROMPT_DISMISSED_KEY = "arbi-blocks:install-prompt-dismissed";
20
+ export interface UseInstallPromptOptions {
21
+ /** localStorage key remembering a dismissal. */
22
+ storageKey?: string;
23
+ /** Days a dismissal is remembered. Default 30. */
24
+ dismissDays?: number;
25
+ /** Query param that turns a share link into a one-click install (`install` for `?install=true`). */
26
+ autoPromptParam?: string;
27
+ /** App name used in the manual instructions. */
28
+ appName?: string;
29
+ }
30
+ export interface UseInstallPromptResult {
31
+ /** A native install dialog can be opened right now (Chromium, once the event fired). */
32
+ canPrompt: boolean;
33
+ /** Running as an installed app, or `appinstalled` fired. */
34
+ isInstalled: boolean;
35
+ /** iOS has no install API: offer manual instructions instead. */
36
+ isIos: boolean;
37
+ /** The user dismissed the offer (remembered across visits). */
38
+ isDismissed: boolean;
39
+ /** Open the native dialog; false when none is available. */
40
+ promptInstall: () => Promise<boolean>;
41
+ /** Hide the offer and remember it. */
42
+ dismiss: () => void;
43
+ /** Manual steps for this browser. */
44
+ instructions: InstallGuide;
45
+ }
46
+ /** The install state of the app, framework-neutral logic behind `InstallPrompt`. */
47
+ export declare function useInstallPrompt({ storageKey, dismissDays, autoPromptParam: autoParam, appName, }?: UseInstallPromptOptions): UseInstallPromptResult;
48
+ /** Test seam: forget captured state (the singleton lives for the page). */
49
+ export declare function resetInstallPromptForTests(): void;