@arbidocs/blocks 0.4.8 → 0.4.10

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 (113) hide show
  1. package/README.md +9 -0
  2. package/dist/StreamedArtifactEditor-5BMNWSS4.cjs +106 -0
  3. package/dist/StreamedArtifactEditor-5BMNWSS4.cjs.map +1 -0
  4. package/dist/StreamedArtifactEditor-6ETUHNQN.js +104 -0
  5. package/dist/StreamedArtifactEditor-6ETUHNQN.js.map +1 -0
  6. package/dist/agents/index.cjs +163 -163
  7. package/dist/agents/index.js +6 -6
  8. package/dist/artifacts/ArtifactEditor.d.ts +24 -1
  9. package/dist/artifacts/ArtifactToolbar.d.ts +3 -1
  10. package/dist/artifacts/StreamedArtifactFrame.d.ts +36 -0
  11. package/dist/artifacts/editor/index.cjs +11 -82
  12. package/dist/artifacts/editor/index.cjs.map +1 -1
  13. package/dist/artifacts/editor/index.js +2 -83
  14. package/dist/artifacts/editor/index.js.map +1 -1
  15. package/dist/artifacts/index.cjs +92 -800
  16. package/dist/artifacts/index.cjs.map +1 -1
  17. package/dist/artifacts/index.d.ts +2 -1
  18. package/dist/artifacts/index.js +3 -784
  19. package/dist/artifacts/index.js.map +1 -1
  20. package/dist/chat/AssistantToaster.d.ts +8 -0
  21. package/dist/chat/index.cjs +68 -62
  22. package/dist/chat/index.d.ts +1 -0
  23. package/dist/chat/index.js +3 -1
  24. package/dist/{chunk-JLOYWXRB.js → chunk-557EU3G4.js} +3 -3
  25. package/dist/{chunk-JLOYWXRB.js.map → chunk-557EU3G4.js.map} +1 -1
  26. package/dist/chunk-BV7FEMSI.js +34 -0
  27. package/dist/chunk-BV7FEMSI.js.map +1 -0
  28. package/dist/{chunk-YP264PVL.js → chunk-D5BZVKIF.js} +6 -6
  29. package/dist/{chunk-YP264PVL.js.map → chunk-D5BZVKIF.js.map} +1 -1
  30. package/dist/{chunk-LRUCMZK6.cjs → chunk-D6XY3C4O.cjs} +4 -15
  31. package/dist/chunk-D6XY3C4O.cjs.map +1 -0
  32. package/dist/{chunk-YVIOCITQ.cjs → chunk-DCEI37AX.cjs} +3 -3
  33. package/dist/{chunk-YVIOCITQ.cjs.map → chunk-DCEI37AX.cjs.map} +1 -1
  34. package/dist/chunk-DTLOXXPN.js +831 -0
  35. package/dist/chunk-DTLOXXPN.js.map +1 -0
  36. package/dist/chunk-FX3K6LNZ.cjs +47 -0
  37. package/dist/chunk-FX3K6LNZ.cjs.map +1 -0
  38. package/dist/{chunk-QXEJXIP4.js → chunk-H7OD4CHN.js} +5 -16
  39. package/dist/chunk-H7OD4CHN.js.map +1 -0
  40. package/dist/chunk-HSFGOA6V.js +86 -0
  41. package/dist/chunk-HSFGOA6V.js.map +1 -0
  42. package/dist/{chunk-7OCFHEE6.js → chunk-ILOYJE63.js} +10 -3
  43. package/dist/chunk-ILOYJE63.js.map +1 -0
  44. package/dist/chunk-LOJVUGBJ.js +67 -0
  45. package/dist/chunk-LOJVUGBJ.js.map +1 -0
  46. package/dist/{chunk-QMDLPO3M.cjs → chunk-LXC5PTTI.cjs} +2 -2
  47. package/dist/{chunk-QMDLPO3M.cjs.map → chunk-LXC5PTTI.cjs.map} +1 -1
  48. package/dist/{chunk-G2E3O3HI.js → chunk-OJSWQM4G.js} +158 -5
  49. package/dist/chunk-OJSWQM4G.js.map +1 -0
  50. package/dist/chunk-PVK3GAMH.cjs +852 -0
  51. package/dist/chunk-PVK3GAMH.cjs.map +1 -0
  52. package/dist/chunk-QVBZESYQ.cjs +70 -0
  53. package/dist/chunk-QVBZESYQ.cjs.map +1 -0
  54. package/dist/{chunk-JG4TFS3Z.cjs → chunk-RGHQFJOL.cjs} +160 -2
  55. package/dist/chunk-RGHQFJOL.cjs.map +1 -0
  56. package/dist/{chunk-SY7UURF7.cjs → chunk-RMIACB7N.cjs} +6 -6
  57. package/dist/{chunk-SY7UURF7.cjs.map → chunk-RMIACB7N.cjs.map} +1 -1
  58. package/dist/chunk-RUNQFXPH.cjs +89 -0
  59. package/dist/chunk-RUNQFXPH.cjs.map +1 -0
  60. package/dist/chunk-SLSBJRWW.js +41 -0
  61. package/dist/chunk-SLSBJRWW.js.map +1 -0
  62. package/dist/chunk-XKSFJYOD.cjs +37 -0
  63. package/dist/chunk-XKSFJYOD.cjs.map +1 -0
  64. package/dist/{chunk-MGUHR3JI.cjs → chunk-YWSWRTGH.cjs} +10 -2
  65. package/dist/chunk-YWSWRTGH.cjs.map +1 -0
  66. package/dist/{chunk-EY2RJW27.js → chunk-ZJ6RIPFS.js} +2 -2
  67. package/dist/{chunk-EY2RJW27.js.map → chunk-ZJ6RIPFS.js.map} +1 -1
  68. package/dist/collaboration/contacts/ContactCard.d.ts +43 -0
  69. package/dist/collaboration/contacts/index.d.ts +2 -0
  70. package/dist/collaboration/contacts/vcard.d.ts +26 -0
  71. package/dist/collaboration/index.cjs +56 -36
  72. package/dist/collaboration/index.js +1 -1
  73. package/dist/connect/index.cjs +97 -23
  74. package/dist/connect/index.cjs.map +1 -1
  75. package/dist/connect/index.d.ts +1 -0
  76. package/dist/connect/index.js +79 -6
  77. package/dist/connect/index.js.map +1 -1
  78. package/dist/connection/StreamedArtifact.d.ts +43 -0
  79. package/dist/connection/StreamedArtifactEditor.d.ts +31 -0
  80. package/dist/facts/index.cjs +4 -3
  81. package/dist/facts/index.cjs.map +1 -1
  82. package/dist/facts/index.js +2 -1
  83. package/dist/facts/index.js.map +1 -1
  84. package/dist/files/index.cjs +10 -9
  85. package/dist/files/index.cjs.map +1 -1
  86. package/dist/files/index.js +7 -6
  87. package/dist/files/index.js.map +1 -1
  88. package/dist/index.cjs +650 -596
  89. package/dist/index.cjs.map +1 -1
  90. package/dist/index.js +18 -16
  91. package/dist/index.js.map +1 -1
  92. package/dist/lib/use-media-query.d.ts +32 -0
  93. package/dist/settings/index.cjs +32 -32
  94. package/dist/settings/index.js +3 -3
  95. package/dist/shell/Toaster.d.ts +28 -0
  96. package/dist/shell/index.cjs +78 -48
  97. package/dist/shell/index.d.ts +2 -0
  98. package/dist/shell/index.js +5 -3
  99. package/dist/site/index.cjs +14 -14
  100. package/dist/site/index.js +2 -2
  101. package/dist/studio/index.cjs +3 -3
  102. package/dist/studio/index.js +3 -3
  103. package/dist/workspaces/index.cjs +12 -5
  104. package/dist/workspaces/index.cjs.map +1 -1
  105. package/dist/workspaces/index.js +13 -6
  106. package/dist/workspaces/index.js.map +1 -1
  107. package/package.json +3 -3
  108. package/dist/chunk-7OCFHEE6.js.map +0 -1
  109. package/dist/chunk-G2E3O3HI.js.map +0 -1
  110. package/dist/chunk-JG4TFS3Z.cjs.map +0 -1
  111. package/dist/chunk-LRUCMZK6.cjs.map +0 -1
  112. package/dist/chunk-MGUHR3JI.cjs.map +0 -1
  113. package/dist/chunk-QXEJXIP4.js.map +0 -1
@@ -0,0 +1,43 @@
1
+ import type { ReactNode } from 'react';
2
+ import { type VCardContact } from './vcard';
3
+ /** Every fixed string of the contact card. */
4
+ export interface ContactCardLabels {
5
+ /** Accessible name of the menu button. */
6
+ actions: string;
7
+ /** The export menu item. */
8
+ exportVCard: string;
9
+ }
10
+ export declare const DEFAULT_CONTACT_CARD_LABELS: ContactCardLabels;
11
+ /** An extra menu entry a host adds next to the built-in export. */
12
+ export interface ContactCardAction {
13
+ id: string;
14
+ label: string;
15
+ icon?: ReactNode;
16
+ onSelect: () => void;
17
+ destructive?: boolean;
18
+ }
19
+ export interface ContactCardProps {
20
+ contact: VCardContact & {
21
+ avatarUrl?: string;
22
+ };
23
+ /** A badge or status text under the name ("Invitation pending"). */
24
+ status?: ReactNode;
25
+ /**
26
+ * Called when "Save to address book" is chosen. Omit it to use the built-in
27
+ * {@link downloadVCard}; pass your own to log, or to hand the card to a native share sheet.
28
+ */
29
+ onExportVCard?: (contact: VCardContact) => void;
30
+ /** Hide the export item entirely (a contact with no usable details). Default true. */
31
+ exportable?: boolean;
32
+ /** More menu entries, listed after the export. */
33
+ actions?: ContactCardAction[];
34
+ labels?: Partial<ContactCardLabels>;
35
+ className?: string;
36
+ 'data-testid'?: string;
37
+ }
38
+ /**
39
+ * A contact as a card: avatar, name, role, email and phone, and a menu that exports the contact
40
+ * as a vCard. The export is built in ({@link downloadVCard}); `onExportVCard` replaces it, and
41
+ * `actions` adds host entries. Presentational: no SDK, store or router.
42
+ */
43
+ export declare function ContactCard({ contact, status, onExportVCard, exportable, actions, labels, className, 'data-testid': testId, }: ContactCardProps): import("react").JSX.Element;
@@ -1,2 +1,4 @@
1
1
  export { AddContactsForm, AddContactsResults, DEFAULT_ADD_CONTACTS_LABELS, type AddContactsFormProps, type AddContactsResultsProps, type AddContactsResultRow, type AddContactsLabels, } from './AddContactsParts';
2
2
  export { parseEmails, toAddContactsRow, toAddContactsRows, MAX_INVITE_EMAILS, DEFAULT_CONTACT_OUTCOME_LABELS, type ContactOutcomeLabels, } from './parseEmails';
3
+ export { ContactCard, DEFAULT_CONTACT_CARD_LABELS, type ContactCardProps, type ContactCardAction, type ContactCardLabels, } from './ContactCard';
4
+ export { contactToVCard, downloadVCard, vCardFilename, type VCardContact } from './vcard';
@@ -0,0 +1,26 @@
1
+ /**
2
+ * vCard (.vcf) generation for a contact: a real, importable card. No dependencies: it assembles
3
+ * vCard 3.0 text (RFC 2426, understood by every address book) and triggers a Blob download.
4
+ */
5
+ /** What a card can carry. Only `name` is required; empty fields are left out. */
6
+ export interface VCardContact {
7
+ /** Full display name ("Ada Lovelace"). */
8
+ name: string;
9
+ email?: string;
10
+ phone?: string;
11
+ /** Company or organisation. */
12
+ organisation?: string;
13
+ /** Job title or role. */
14
+ title?: string;
15
+ /** One-line postal address. */
16
+ address?: string;
17
+ /** A web page or profile link. */
18
+ url?: string;
19
+ note?: string;
20
+ }
21
+ /** The vCard 3.0 text for a contact, CRLF separated. */
22
+ export declare function contactToVCard(contact: VCardContact): string;
23
+ /** A safe file name for a contact: "ada-lovelace.vcf" ("contact.vcf" when nothing usable is left). */
24
+ export declare function vCardFilename(contact: Pick<VCardContact, 'name'>): string;
25
+ /** Save the contact as a .vcf file through a temporary link click. Browser only. */
26
+ export declare function downloadVCard(contact: VCardContact): void;
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkJG4TFS3Z_cjs = require('../chunk-JG4TFS3Z.cjs');
4
+ var chunkRGHQFJOL_cjs = require('../chunk-RGHQFJOL.cjs');
5
5
  require('../chunk-7G2LJMUG.cjs');
6
6
  var chunkVLCY46K6_cjs = require('../chunk-VLCY46K6.cjs');
7
7
  require('../chunk-2ZTONLT5.cjs');
@@ -12,143 +12,163 @@ require('../chunk-MHVNT4J3.cjs');
12
12
 
13
13
  Object.defineProperty(exports, "ActionMenu", {
14
14
  enumerable: true,
15
- get: function () { return chunkJG4TFS3Z_cjs.ActionMenu; }
15
+ get: function () { return chunkRGHQFJOL_cjs.ActionMenu; }
16
16
  });
17
17
  Object.defineProperty(exports, "AddContactsForm", {
18
18
  enumerable: true,
19
- get: function () { return chunkJG4TFS3Z_cjs.AddContactsForm; }
19
+ get: function () { return chunkRGHQFJOL_cjs.AddContactsForm; }
20
20
  });
21
21
  Object.defineProperty(exports, "AddContactsResults", {
22
22
  enumerable: true,
23
- get: function () { return chunkJG4TFS3Z_cjs.AddContactsResults; }
23
+ get: function () { return chunkRGHQFJOL_cjs.AddContactsResults; }
24
+ });
25
+ Object.defineProperty(exports, "ContactCard", {
26
+ enumerable: true,
27
+ get: function () { return chunkRGHQFJOL_cjs.ContactCard; }
24
28
  });
25
29
  Object.defineProperty(exports, "DEFAULT_ADD_CONTACTS_LABELS", {
26
30
  enumerable: true,
27
- get: function () { return chunkJG4TFS3Z_cjs.DEFAULT_ADD_CONTACTS_LABELS; }
31
+ get: function () { return chunkRGHQFJOL_cjs.DEFAULT_ADD_CONTACTS_LABELS; }
32
+ });
33
+ Object.defineProperty(exports, "DEFAULT_CONTACT_CARD_LABELS", {
34
+ enumerable: true,
35
+ get: function () { return chunkRGHQFJOL_cjs.DEFAULT_CONTACT_CARD_LABELS; }
28
36
  });
29
37
  Object.defineProperty(exports, "DEFAULT_CONTACT_OUTCOME_LABELS", {
30
38
  enumerable: true,
31
- get: function () { return chunkJG4TFS3Z_cjs.DEFAULT_CONTACT_OUTCOME_LABELS; }
39
+ get: function () { return chunkRGHQFJOL_cjs.DEFAULT_CONTACT_OUTCOME_LABELS; }
32
40
  });
33
41
  Object.defineProperty(exports, "DEFAULT_DM_ACCESS_REQUEST_BANNER_LABELS", {
34
42
  enumerable: true,
35
- get: function () { return chunkJG4TFS3Z_cjs.DEFAULT_DM_ACCESS_REQUEST_BANNER_LABELS; }
43
+ get: function () { return chunkRGHQFJOL_cjs.DEFAULT_DM_ACCESS_REQUEST_BANNER_LABELS; }
36
44
  });
37
45
  Object.defineProperty(exports, "DEFAULT_DM_GRANT_ACCESS_DIALOG_LABELS", {
38
46
  enumerable: true,
39
- get: function () { return chunkJG4TFS3Z_cjs.DEFAULT_DM_GRANT_ACCESS_DIALOG_LABELS; }
47
+ get: function () { return chunkRGHQFJOL_cjs.DEFAULT_DM_GRANT_ACCESS_DIALOG_LABELS; }
40
48
  });
41
49
  Object.defineProperty(exports, "DEFAULT_DM_INVITE_CHIP_LABELS", {
42
50
  enumerable: true,
43
- get: function () { return chunkJG4TFS3Z_cjs.DEFAULT_DM_INVITE_CHIP_LABELS; }
51
+ get: function () { return chunkRGHQFJOL_cjs.DEFAULT_DM_INVITE_CHIP_LABELS; }
44
52
  });
45
53
  Object.defineProperty(exports, "DEFAULT_DM_THREAD_FRAME_LABELS", {
46
54
  enumerable: true,
47
- get: function () { return chunkJG4TFS3Z_cjs.DEFAULT_DM_THREAD_FRAME_LABELS; }
55
+ get: function () { return chunkRGHQFJOL_cjs.DEFAULT_DM_THREAD_FRAME_LABELS; }
48
56
  });
49
57
  Object.defineProperty(exports, "DEFAULT_MAIL_FOLDER_TREE_LABELS", {
50
58
  enumerable: true,
51
- get: function () { return chunkJG4TFS3Z_cjs.DEFAULT_MAIL_FOLDER_TREE_LABELS; }
59
+ get: function () { return chunkRGHQFJOL_cjs.DEFAULT_MAIL_FOLDER_TREE_LABELS; }
52
60
  });
53
61
  Object.defineProperty(exports, "DEFAULT_RECIPIENT_PICKER_LABELS", {
54
62
  enumerable: true,
55
- get: function () { return chunkJG4TFS3Z_cjs.DEFAULT_RECIPIENT_PICKER_LABELS; }
63
+ get: function () { return chunkRGHQFJOL_cjs.DEFAULT_RECIPIENT_PICKER_LABELS; }
56
64
  });
57
65
  Object.defineProperty(exports, "DmAccessRequestBanner", {
58
66
  enumerable: true,
59
- get: function () { return chunkJG4TFS3Z_cjs.DmAccessRequestBanner; }
67
+ get: function () { return chunkRGHQFJOL_cjs.DmAccessRequestBanner; }
60
68
  });
61
69
  Object.defineProperty(exports, "DmGrantAccessDialogView", {
62
70
  enumerable: true,
63
- get: function () { return chunkJG4TFS3Z_cjs.DmGrantAccessDialogView; }
71
+ get: function () { return chunkRGHQFJOL_cjs.DmGrantAccessDialogView; }
64
72
  });
65
73
  Object.defineProperty(exports, "DmInviteAvatar", {
66
74
  enumerable: true,
67
- get: function () { return chunkJG4TFS3Z_cjs.DmInviteAvatar; }
75
+ get: function () { return chunkRGHQFJOL_cjs.DmInviteAvatar; }
68
76
  });
69
77
  Object.defineProperty(exports, "DmInviteChip", {
70
78
  enumerable: true,
71
- get: function () { return chunkJG4TFS3Z_cjs.DmInviteChip; }
79
+ get: function () { return chunkRGHQFJOL_cjs.DmInviteChip; }
72
80
  });
73
81
  Object.defineProperty(exports, "DmNewTabIcon", {
74
82
  enumerable: true,
75
- get: function () { return chunkJG4TFS3Z_cjs.DmNewTabIcon; }
83
+ get: function () { return chunkRGHQFJOL_cjs.DmNewTabIcon; }
76
84
  });
77
85
  Object.defineProperty(exports, "DmThreadFrame", {
78
86
  enumerable: true,
79
- get: function () { return chunkJG4TFS3Z_cjs.DmThreadFrame; }
87
+ get: function () { return chunkRGHQFJOL_cjs.DmThreadFrame; }
80
88
  });
81
89
  Object.defineProperty(exports, "DmThreadHeader", {
82
90
  enumerable: true,
83
- get: function () { return chunkJG4TFS3Z_cjs.DmThreadHeader; }
91
+ get: function () { return chunkRGHQFJOL_cjs.DmThreadHeader; }
84
92
  });
85
93
  Object.defineProperty(exports, "MAX_INVITE_EMAILS", {
86
94
  enumerable: true,
87
- get: function () { return chunkJG4TFS3Z_cjs.MAX_INVITE_EMAILS; }
95
+ get: function () { return chunkRGHQFJOL_cjs.MAX_INVITE_EMAILS; }
88
96
  });
89
97
  Object.defineProperty(exports, "MailFolderTree", {
90
98
  enumerable: true,
91
- get: function () { return chunkJG4TFS3Z_cjs.MailFolderTree; }
99
+ get: function () { return chunkRGHQFJOL_cjs.MailFolderTree; }
92
100
  });
93
101
  Object.defineProperty(exports, "MemberBulkActions", {
94
102
  enumerable: true,
95
- get: function () { return chunkJG4TFS3Z_cjs.MemberBulkActions; }
103
+ get: function () { return chunkRGHQFJOL_cjs.MemberBulkActions; }
96
104
  });
97
105
  Object.defineProperty(exports, "MemberListLoading", {
98
106
  enumerable: true,
99
- get: function () { return chunkJG4TFS3Z_cjs.MemberListLoading; }
107
+ get: function () { return chunkRGHQFJOL_cjs.MemberListLoading; }
100
108
  });
101
109
  Object.defineProperty(exports, "MemberMutedText", {
102
110
  enumerable: true,
103
- get: function () { return chunkJG4TFS3Z_cjs.MemberMutedText; }
111
+ get: function () { return chunkRGHQFJOL_cjs.MemberMutedText; }
104
112
  });
105
113
  Object.defineProperty(exports, "MemberNameCell", {
106
114
  enumerable: true,
107
- get: function () { return chunkJG4TFS3Z_cjs.MemberNameCell; }
115
+ get: function () { return chunkRGHQFJOL_cjs.MemberNameCell; }
108
116
  });
109
117
  Object.defineProperty(exports, "MemberRoleCell", {
110
118
  enumerable: true,
111
- get: function () { return chunkJG4TFS3Z_cjs.MemberRoleCell; }
119
+ get: function () { return chunkRGHQFJOL_cjs.MemberRoleCell; }
112
120
  });
113
121
  Object.defineProperty(exports, "RecipientPicker", {
114
122
  enumerable: true,
115
- get: function () { return chunkJG4TFS3Z_cjs.RecipientPicker; }
123
+ get: function () { return chunkRGHQFJOL_cjs.RecipientPicker; }
116
124
  });
117
125
  Object.defineProperty(exports, "RoleSelect", {
118
126
  enumerable: true,
119
- get: function () { return chunkJG4TFS3Z_cjs.RoleSelect; }
127
+ get: function () { return chunkRGHQFJOL_cjs.RoleSelect; }
120
128
  });
121
129
  Object.defineProperty(exports, "WorkspaceDeleteButton", {
122
130
  enumerable: true,
123
- get: function () { return chunkJG4TFS3Z_cjs.WorkspaceDeleteButton; }
131
+ get: function () { return chunkRGHQFJOL_cjs.WorkspaceDeleteButton; }
124
132
  });
125
133
  Object.defineProperty(exports, "buildMailFolderTree", {
126
134
  enumerable: true,
127
- get: function () { return chunkJG4TFS3Z_cjs.buildMailFolderTree; }
135
+ get: function () { return chunkRGHQFJOL_cjs.buildMailFolderTree; }
136
+ });
137
+ Object.defineProperty(exports, "contactToVCard", {
138
+ enumerable: true,
139
+ get: function () { return chunkRGHQFJOL_cjs.contactToVCard; }
128
140
  });
129
141
  Object.defineProperty(exports, "descendantFolderIds", {
130
142
  enumerable: true,
131
- get: function () { return chunkJG4TFS3Z_cjs.descendantFolderIds; }
143
+ get: function () { return chunkRGHQFJOL_cjs.descendantFolderIds; }
144
+ });
145
+ Object.defineProperty(exports, "downloadVCard", {
146
+ enumerable: true,
147
+ get: function () { return chunkRGHQFJOL_cjs.downloadVCard; }
132
148
  });
133
149
  Object.defineProperty(exports, "isInboxFolder", {
134
150
  enumerable: true,
135
- get: function () { return chunkJG4TFS3Z_cjs.isInboxFolder; }
151
+ get: function () { return chunkRGHQFJOL_cjs.isInboxFolder; }
136
152
  });
137
153
  Object.defineProperty(exports, "parseEmails", {
138
154
  enumerable: true,
139
- get: function () { return chunkJG4TFS3Z_cjs.parseEmails; }
155
+ get: function () { return chunkRGHQFJOL_cjs.parseEmails; }
140
156
  });
141
157
  Object.defineProperty(exports, "toAddContactsRow", {
142
158
  enumerable: true,
143
- get: function () { return chunkJG4TFS3Z_cjs.toAddContactsRow; }
159
+ get: function () { return chunkRGHQFJOL_cjs.toAddContactsRow; }
144
160
  });
145
161
  Object.defineProperty(exports, "toAddContactsRows", {
146
162
  enumerable: true,
147
- get: function () { return chunkJG4TFS3Z_cjs.toAddContactsRows; }
163
+ get: function () { return chunkRGHQFJOL_cjs.toAddContactsRows; }
148
164
  });
149
165
  Object.defineProperty(exports, "toggleMailFolder", {
150
166
  enumerable: true,
151
- get: function () { return chunkJG4TFS3Z_cjs.toggleMailFolder; }
167
+ get: function () { return chunkRGHQFJOL_cjs.toggleMailFolder; }
168
+ });
169
+ Object.defineProperty(exports, "vCardFilename", {
170
+ enumerable: true,
171
+ get: function () { return chunkRGHQFJOL_cjs.vCardFilename; }
152
172
  });
153
173
  Object.defineProperty(exports, "DEFAULT_SHARE_CONTROL_LABELS", {
154
174
  enumerable: true,
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- export { ActionMenu, AddContactsForm, AddContactsResults, DEFAULT_ADD_CONTACTS_LABELS, DEFAULT_CONTACT_OUTCOME_LABELS, DEFAULT_DM_ACCESS_REQUEST_BANNER_LABELS, DEFAULT_DM_GRANT_ACCESS_DIALOG_LABELS, DEFAULT_DM_INVITE_CHIP_LABELS, DEFAULT_DM_THREAD_FRAME_LABELS, DEFAULT_MAIL_FOLDER_TREE_LABELS, DEFAULT_RECIPIENT_PICKER_LABELS, DmAccessRequestBanner, DmGrantAccessDialogView, DmInviteAvatar, DmInviteChip, DmNewTabIcon, DmThreadFrame, DmThreadHeader, MAX_INVITE_EMAILS, MailFolderTree, MemberBulkActions, MemberListLoading, MemberMutedText, MemberNameCell, MemberRoleCell, RecipientPicker, RoleSelect, WorkspaceDeleteButton, buildMailFolderTree, descendantFolderIds, isInboxFolder, parseEmails, toAddContactsRow, toAddContactsRows, toggleMailFolder } from '../chunk-G2E3O3HI.js';
2
+ export { ActionMenu, AddContactsForm, AddContactsResults, ContactCard, DEFAULT_ADD_CONTACTS_LABELS, DEFAULT_CONTACT_CARD_LABELS, DEFAULT_CONTACT_OUTCOME_LABELS, DEFAULT_DM_ACCESS_REQUEST_BANNER_LABELS, DEFAULT_DM_GRANT_ACCESS_DIALOG_LABELS, DEFAULT_DM_INVITE_CHIP_LABELS, DEFAULT_DM_THREAD_FRAME_LABELS, DEFAULT_MAIL_FOLDER_TREE_LABELS, DEFAULT_RECIPIENT_PICKER_LABELS, DmAccessRequestBanner, DmGrantAccessDialogView, DmInviteAvatar, DmInviteChip, DmNewTabIcon, DmThreadFrame, DmThreadHeader, MAX_INVITE_EMAILS, MailFolderTree, MemberBulkActions, MemberListLoading, MemberMutedText, MemberNameCell, MemberRoleCell, RecipientPicker, RoleSelect, WorkspaceDeleteButton, buildMailFolderTree, contactToVCard, descendantFolderIds, downloadVCard, isInboxFolder, parseEmails, toAddContactsRow, toAddContactsRows, toggleMailFolder, vCardFilename } from '../chunk-OJSWQM4G.js';
3
3
  import '../chunk-NBV56SGU.js';
4
4
  export { DEFAULT_SHARE_CONTROL_LABELS, ShareControl } from '../chunk-K4BGOPGG.js';
5
5
  import '../chunk-CPMNAJLF.js';
@@ -1,19 +1,21 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkYVIOCITQ_cjs = require('../chunk-YVIOCITQ.cjs');
5
4
  var chunkZPOLKYR2_cjs = require('../chunk-ZPOLKYR2.cjs');
6
- require('../chunk-ADOKTJHV.cjs');
5
+ var chunkDCEI37AX_cjs = require('../chunk-DCEI37AX.cjs');
7
6
  require('../chunk-PRVKJ5XL.cjs');
8
7
  require('../chunk-VGOFFCMT.cjs');
8
+ require('../chunk-ADOKTJHV.cjs');
9
+ var chunkQVBZESYQ_cjs = require('../chunk-QVBZESYQ.cjs');
10
+ require('../chunk-DCDVWPMB.cjs');
9
11
  require('../chunk-PPCATBOY.cjs');
10
12
  var chunkKDG6FER6_cjs = require('../chunk-KDG6FER6.cjs');
11
- require('../chunk-DCDVWPMB.cjs');
12
13
  require('../chunk-MHVNT4J3.cjs');
13
14
  var react = require('react');
14
15
  var reactQuery = require('@tanstack/react-query');
15
16
  var react$1 = require('@arbidocs/react');
16
17
  var jsxRuntime = require('react/jsx-runtime');
18
+ var artifacts = require('@arbidocs/react/artifacts');
17
19
  var lucideReact = require('lucide-react');
18
20
  var ui = require('@arbidocs/react/ui');
19
21
 
@@ -33,6 +35,77 @@ function ArbiAppProvider({
33
35
  const providerUrl = config.apiUrl || config.demoApiUrl || "https://demo.arbi.local";
34
36
  return /* @__PURE__ */ jsxRuntime.jsx(reactQuery.QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ jsxRuntime.jsx(react$1.ArbiProvider, { url: providerUrl, children: /* @__PURE__ */ jsxRuntime.jsx(chunkZPOLKYR2_cjs.ConnectionProvider, { config, children: /* @__PURE__ */ jsxRuntime.jsx(ConnectionBoundWebSocket, { children }) }) }) });
35
37
  }
38
+ var StreamedArtifactEditor = react.lazy(() => import('../StreamedArtifactEditor-5BMNWSS4.cjs'));
39
+ function StreamedArtifact({
40
+ artifacts: artifacts$1,
41
+ workspaceId,
42
+ busy,
43
+ error = null,
44
+ stepCount,
45
+ busyHint,
46
+ emptyHint,
47
+ className,
48
+ testId = "streamed-artifact",
49
+ configId,
50
+ parseRetry,
51
+ clean,
52
+ editorProps,
53
+ onSaved,
54
+ onSaveError,
55
+ actions,
56
+ hideDefaultActions,
57
+ labels,
58
+ testIds
59
+ }) {
60
+ const streamed = artifacts.useStreamedArtifact({
61
+ artifacts: artifacts$1,
62
+ workspaceId,
63
+ settled: !busy && !error,
64
+ configId,
65
+ parseRetry,
66
+ clean
67
+ });
68
+ const canvas = /* @__PURE__ */ jsxRuntime.jsx(
69
+ react$1.ArtifactCanvas,
70
+ {
71
+ artifacts: artifacts$1,
72
+ className: streamed.phase === "streaming" ? className : void 0,
73
+ busy,
74
+ busyHint,
75
+ stepCount,
76
+ error,
77
+ emptyHint
78
+ }
79
+ );
80
+ return /* @__PURE__ */ jsxRuntime.jsx(
81
+ chunkQVBZESYQ_cjs.StreamedArtifactFrame,
82
+ {
83
+ phase: streamed.phase,
84
+ canvas,
85
+ className,
86
+ error: streamed.error?.message,
87
+ onRetry: streamed.retry,
88
+ labels,
89
+ testIds: { preparing: `${testId}-preparing`, error: `${testId}-error`, ...testIds },
90
+ children: /* @__PURE__ */ jsxRuntime.jsx(react.Suspense, { fallback: canvas, children: streamed.docId && /* @__PURE__ */ jsxRuntime.jsx(
91
+ StreamedArtifactEditor,
92
+ {
93
+ workspaceId,
94
+ docId: streamed.docId,
95
+ title: streamed.artifact?.title ?? "Draft",
96
+ testId,
97
+ className,
98
+ editorProps,
99
+ onSaved,
100
+ onSaveError,
101
+ actions,
102
+ hideDefaultActions
103
+ },
104
+ streamed.docId
105
+ ) })
106
+ }
107
+ );
108
+ }
36
109
  function useConnectedShellWorkspaces(options = {}) {
37
110
  const { workspaceId, setWorkspace } = chunkZPOLKYR2_cjs.useConnection();
38
111
  const query = react$1.useWorkspaces();
@@ -106,12 +179,12 @@ function ConnectedProfileCard({ notify, title = "Profile" }) {
106
179
  }
107
180
  });
108
181
  const display = profile?.fullName || user?.name || "Unnamed";
109
- return /* @__PURE__ */ jsxRuntime.jsx(chunkYVIOCITQ_cjs.SettingsSection, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.UserCircle, {}), title, children: /* @__PURE__ */ jsxRuntime.jsx(
110
- chunkYVIOCITQ_cjs.ProfileCard,
182
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkDCEI37AX_cjs.SettingsSection, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.UserCircle, {}), title, children: /* @__PURE__ */ jsxRuntime.jsx(
183
+ chunkDCEI37AX_cjs.ProfileCard,
111
184
  {
112
185
  avatar: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
113
186
  /* @__PURE__ */ jsxRuntime.jsx(
114
- chunkYVIOCITQ_cjs.AvatarPicker,
187
+ chunkDCEI37AX_cjs.AvatarPicker,
115
188
  {
116
189
  pictureUrl: profile?.picture ?? user?.picture,
117
190
  initials: chunkKDG6FER6_cjs.initials(display),
@@ -169,10 +242,10 @@ function ConnectedSecuritySection({
169
242
  },
170
243
  onClose: () => setOpen(false)
171
244
  });
172
- return /* @__PURE__ */ jsxRuntime.jsxs(chunkYVIOCITQ_cjs.SettingsSection, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.KeyRound, {}), title: "Security", children: [
173
- /* @__PURE__ */ jsxRuntime.jsxs(chunkYVIOCITQ_cjs.SettingsCard, { padding: "sm", children: [
245
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunkDCEI37AX_cjs.SettingsSection, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.KeyRound, {}), title: "Security", children: [
246
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkDCEI37AX_cjs.SettingsCard, { padding: "sm", children: [
174
247
  /* @__PURE__ */ jsxRuntime.jsx(
175
- chunkYVIOCITQ_cjs.SettingsActionRow,
248
+ chunkDCEI37AX_cjs.SettingsActionRow,
176
249
  {
177
250
  title: "Change password",
178
251
  description: "Used to sign in and to encrypt your data. Changing it re-encrypts everything in your account.",
@@ -183,7 +256,7 @@ function ConnectedSecuritySection({
183
256
  children
184
257
  ] }),
185
258
  /* @__PURE__ */ jsxRuntime.jsx(
186
- chunkYVIOCITQ_cjs.PasswordChangeDialog,
259
+ chunkDCEI37AX_cjs.PasswordChangeDialog,
187
260
  {
188
261
  open,
189
262
  onClose: form.onCancel,
@@ -207,23 +280,23 @@ function ConnectedSecuritySection({
207
280
  ] });
208
281
  }
209
282
  function ConnectedNotificationPreferences({
210
- categories = chunkYVIOCITQ_cjs.EMAIL_NOTIFICATION_CATEGORIES,
283
+ categories = chunkDCEI37AX_cjs.EMAIL_NOTIFICATION_CATEGORIES,
211
284
  title = "Notifications"
212
285
  }) {
213
286
  const keys = react.useMemo(
214
- () => categories === chunkYVIOCITQ_cjs.EMAIL_NOTIFICATION_CATEGORIES ? chunkYVIOCITQ_cjs.EMAIL_NOTIFICATION_KEYS : categories.map((c) => c.key),
287
+ () => categories === chunkDCEI37AX_cjs.EMAIL_NOTIFICATION_CATEGORIES ? chunkDCEI37AX_cjs.EMAIL_NOTIFICATION_KEYS : categories.map((c) => c.key),
215
288
  [categories]
216
289
  );
217
290
  const prefs = react$1.useNotificationPreferences(keys);
218
- return /* @__PURE__ */ jsxRuntime.jsx(chunkYVIOCITQ_cjs.SettingsSection, { title, children: /* @__PURE__ */ jsxRuntime.jsx(chunkYVIOCITQ_cjs.SettingsCard, { className: "space-y-0", children: /* @__PURE__ */ jsxRuntime.jsx(
219
- chunkYVIOCITQ_cjs.NotificationCategoryList,
291
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkDCEI37AX_cjs.SettingsSection, { title, children: /* @__PURE__ */ jsxRuntime.jsx(chunkDCEI37AX_cjs.SettingsCard, { className: "space-y-0", children: /* @__PURE__ */ jsxRuntime.jsx(
292
+ chunkDCEI37AX_cjs.NotificationCategoryList,
220
293
  {
221
294
  masterId: "emailNotifications",
222
295
  masterTitle: "Email Notifications",
223
296
  masterDescription: "Email me about activity when I\u2019m away",
224
297
  masterChecked: prefs.masterChecked,
225
298
  onMasterChange: prefs.setAll,
226
- categories: chunkYVIOCITQ_cjs.toNotificationCategories(prefs.checked, categories),
299
+ categories: chunkDCEI37AX_cjs.toNotificationCategories(prefs.checked, categories),
227
300
  onCategoryChange: prefs.setCategory
228
301
  }
229
302
  ) }) });
@@ -237,14 +310,14 @@ function ConnectedSessionsRow({
237
310
  const sessions = react$1.useSessions({ enabled: open });
238
311
  const currentSessionId = react$1.useCurrentSessionId();
239
312
  const terminate = react$1.useTerminateSession();
240
- const views = chunkYVIOCITQ_cjs.toActiveSessionViews(sessions.data ?? [], {
313
+ const views = chunkDCEI37AX_cjs.toActiveSessionViews(sessions.data ?? [], {
241
314
  currentSessionId,
242
315
  terminatingId: terminate.isPending ? terminate.variables : null,
243
316
  renderIcon: renderSessionIcon
244
317
  });
245
318
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
246
319
  /* @__PURE__ */ jsxRuntime.jsx(
247
- chunkYVIOCITQ_cjs.SettingsRow,
320
+ chunkDCEI37AX_cjs.SettingsRow,
248
321
  {
249
322
  label: "Active sessions",
250
323
  description: "Devices and agents currently signed in to your account.",
@@ -266,7 +339,7 @@ function ConnectedSessionsRow({
266
339
  }
267
340
  ),
268
341
  /* @__PURE__ */ jsxRuntime.jsx(
269
- chunkYVIOCITQ_cjs.ActiveSessionsDialog,
342
+ chunkDCEI37AX_cjs.ActiveSessionsDialog,
270
343
  {
271
344
  open,
272
345
  onOpenChange: setOpen,
@@ -301,7 +374,7 @@ function ConnectedLogoutDialog({
301
374
  const sessions = react$1.useSessions({ enabled: open });
302
375
  const logoutAll = react$1.useLogoutAllSessions();
303
376
  return /* @__PURE__ */ jsxRuntime.jsx(
304
- chunkYVIOCITQ_cjs.LogoutDialog,
377
+ chunkDCEI37AX_cjs.LogoutDialog,
305
378
  {
306
379
  open,
307
380
  onClose,
@@ -315,7 +388,7 @@ function ConnectedLogoutDialog({
315
388
  },
316
389
  canLogoutAll: true,
317
390
  isOnline,
318
- sessions: chunkYVIOCITQ_cjs.toLogoutSessionViews(sessions.data ?? []),
391
+ sessions: chunkDCEI37AX_cjs.toLogoutSessionViews(sessions.data ?? []),
319
392
  renderSessionIcon
320
393
  }
321
394
  );
@@ -334,7 +407,7 @@ function ConnectedDangerZone({ notify, renderSubscriptionLink }) {
334
407
  });
335
408
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
336
409
  /* @__PURE__ */ jsxRuntime.jsx(
337
- chunkYVIOCITQ_cjs.SettingsDangerZone,
410
+ chunkDCEI37AX_cjs.SettingsDangerZone,
338
411
  {
339
412
  isOpen: zoneOpen,
340
413
  onToggle: () => setZoneOpen((o) => !o),
@@ -354,12 +427,12 @@ function ConnectedDangerZone({ notify, renderSubscriptionLink }) {
354
427
  }
355
428
  ),
356
429
  /* @__PURE__ */ jsxRuntime.jsx(
357
- chunkYVIOCITQ_cjs.DeleteAccountDialog,
430
+ chunkDCEI37AX_cjs.DeleteAccountDialog,
358
431
  {
359
432
  open: dialogOpen,
360
433
  onClose: flow.onClose,
361
434
  step: flow.step,
362
- blockers: chunkYVIOCITQ_cjs.toDeleteBlockerViews(flow.blockers, renderSubscriptionLink),
435
+ blockers: chunkDCEI37AX_cjs.toDeleteBlockerViews(flow.blockers, renderSubscriptionLink),
363
436
  onContinue: flow.onContinue,
364
437
  onBack: flow.onBack,
365
438
  userEmail: user?.email ?? "",
@@ -427,6 +500,7 @@ exports.ConnectedNotificationPreferences = ConnectedNotificationPreferences;
427
500
  exports.ConnectedProfileCard = ConnectedProfileCard;
428
501
  exports.ConnectedSecuritySection = ConnectedSecuritySection;
429
502
  exports.ConnectedSessionsRow = ConnectedSessionsRow;
503
+ exports.StreamedArtifact = StreamedArtifact;
430
504
  exports.defaultUnmetPasswordRequirement = defaultUnmetPasswordRequirement;
431
505
  exports.useConnectedShellWorkspaces = useConnectedShellWorkspaces;
432
506
  //# sourceMappingURL=index.cjs.map