@arbidocs/blocks 0.4.109 → 0.4.110

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 (112) hide show
  1. package/dist/agents/index.cjs +286 -286
  2. package/dist/agents/index.js +10 -10
  3. package/dist/agents/tasks/ConversationListView.d.ts +5 -1
  4. package/dist/agents/tasks/TaskActivityTimeline.d.ts +5 -1
  5. package/dist/calendar/EventDetails.d.ts +1 -1
  6. package/dist/calendar/index.cjs +13 -0
  7. package/dist/calendar/index.cjs.map +1 -1
  8. package/dist/calendar/index.js +13 -0
  9. package/dist/calendar/index.js.map +1 -1
  10. package/dist/calendar/types.d.ts +3 -0
  11. package/dist/calls/CallSidePanel.d.ts +17 -0
  12. package/dist/calls/CallStage.d.ts +57 -0
  13. package/dist/calls/ControlBar.d.ts +91 -0
  14. package/dist/calls/ControlButton.d.ts +44 -0
  15. package/dist/calls/PreJoin.d.ts +31 -0
  16. package/dist/calls/cards.d.ts +54 -0
  17. package/dist/calls/hooks.d.ts +20 -0
  18. package/dist/calls/index.cjs +1853 -0
  19. package/dist/calls/index.cjs.map +1 -0
  20. package/dist/calls/index.d.ts +20 -0
  21. package/dist/calls/index.js +1737 -0
  22. package/dist/calls/index.js.map +1 -0
  23. package/dist/calls/join-choices.d.ts +11 -0
  24. package/dist/calls/layout.d.ts +106 -0
  25. package/dist/calls/panels.d.ts +55 -0
  26. package/dist/calls/status.d.ts +69 -0
  27. package/dist/calls/tiles.d.ts +59 -0
  28. package/dist/chat/Message.d.ts +17 -2
  29. package/dist/chat/TranscriptLine.d.ts +50 -0
  30. package/dist/chat/index.cjs +147 -126
  31. package/dist/chat/index.d.ts +3 -1
  32. package/dist/chat/index.js +5 -4
  33. package/dist/chat/transcript-runs.d.ts +6 -0
  34. package/dist/{chunk-QKWQMOHN.cjs → chunk-2UAJVK3C.cjs} +4 -4
  35. package/dist/{chunk-QKWQMOHN.cjs.map → chunk-2UAJVK3C.cjs.map} +1 -1
  36. package/dist/{chunk-7C35WXYB.js → chunk-5HFPRI3W.js} +5 -5
  37. package/dist/chunk-5HFPRI3W.js.map +1 -0
  38. package/dist/{chunk-ZSV2NQQP.js → chunk-6RHHMBZ5.js} +158 -5
  39. package/dist/chunk-6RHHMBZ5.js.map +1 -0
  40. package/dist/{chunk-FQX6N5G6.js → chunk-A35KT2II.js} +35 -18
  41. package/dist/chunk-A35KT2II.js.map +1 -0
  42. package/dist/{chunk-PGDL26TQ.js → chunk-AY32GGKU.js} +10 -4
  43. package/dist/{chunk-PGDL26TQ.js.map → chunk-AY32GGKU.js.map} +1 -1
  44. package/dist/{chunk-S55VDTX3.js → chunk-CECWAIHL.js} +3 -3
  45. package/dist/{chunk-S55VDTX3.js.map → chunk-CECWAIHL.js.map} +1 -1
  46. package/dist/{chunk-UABPHZWZ.js → chunk-CXZ7FPTQ.js} +3 -3
  47. package/dist/{chunk-UABPHZWZ.js.map → chunk-CXZ7FPTQ.js.map} +1 -1
  48. package/dist/{chunk-C2HRZSAT.cjs → chunk-DJM7DLCT.cjs} +5 -5
  49. package/dist/chunk-DJM7DLCT.cjs.map +1 -0
  50. package/dist/{chunk-I4XQCE6U.cjs → chunk-HBBJYRGI.cjs} +162 -5
  51. package/dist/{chunk-ZSV2NQQP.js.map → chunk-HBBJYRGI.cjs.map} +1 -1
  52. package/dist/chunk-MWDW5UBW.cjs +199 -0
  53. package/dist/chunk-MWDW5UBW.cjs.map +1 -0
  54. package/dist/{chunk-NUTLXVPX.js → chunk-NRUPUDWB.js} +16 -7
  55. package/dist/chunk-NRUPUDWB.js.map +1 -0
  56. package/dist/{chunk-DDF5GPIJ.js → chunk-P5ST47VY.js} +3 -3
  57. package/dist/{chunk-DDF5GPIJ.js.map → chunk-P5ST47VY.js.map} +1 -1
  58. package/dist/{chunk-W7NZRZ54.js → chunk-SQNAJPNR.js} +4 -4
  59. package/dist/{chunk-W7NZRZ54.js.map → chunk-SQNAJPNR.js.map} +1 -1
  60. package/dist/{chunk-PDRYGPZB.cjs → chunk-VP4KJ4LK.cjs} +16 -6
  61. package/dist/chunk-VP4KJ4LK.cjs.map +1 -0
  62. package/dist/{chunk-GBYY3PIC.cjs → chunk-VZKBI2KJ.cjs} +79 -62
  63. package/dist/chunk-VZKBI2KJ.cjs.map +1 -0
  64. package/dist/{chunk-5YXG342J.cjs → chunk-W7ZDBPJ3.cjs} +4 -4
  65. package/dist/{chunk-5YXG342J.cjs.map → chunk-W7ZDBPJ3.cjs.map} +1 -1
  66. package/dist/{chunk-SKSE4OT6.cjs → chunk-WPVIOGDG.cjs} +5 -5
  67. package/dist/{chunk-SKSE4OT6.cjs.map → chunk-WPVIOGDG.cjs.map} +1 -1
  68. package/dist/{chunk-3US5OIDQ.cjs → chunk-XSUOEJB3.cjs} +9 -3
  69. package/dist/chunk-XSUOEJB3.cjs.map +1 -0
  70. package/dist/chunk-Z3AZ7Q5X.js +177 -0
  71. package/dist/chunk-Z3AZ7Q5X.js.map +1 -0
  72. package/dist/{chunk-Z5VUZ6YD.cjs → chunk-ZV3BKLFY.cjs} +3 -3
  73. package/dist/{chunk-Z5VUZ6YD.cjs.map → chunk-ZV3BKLFY.cjs.map} +1 -1
  74. package/dist/collaboration/index.cjs +41 -41
  75. package/dist/collaboration/index.js +1 -1
  76. package/dist/connect/index.cjs +66 -66
  77. package/dist/connect/index.js +13 -13
  78. package/dist/facts/index.cjs +4 -4
  79. package/dist/facts/index.js +4 -4
  80. package/dist/files/index.cjs +6 -6
  81. package/dist/files/index.js +6 -6
  82. package/dist/home/index.cjs +17 -17
  83. package/dist/home/index.js +3 -3
  84. package/dist/index.cjs +846 -825
  85. package/dist/index.cjs.map +1 -1
  86. package/dist/index.js +21 -20
  87. package/dist/index.js.map +1 -1
  88. package/dist/retrieval/index.cjs +1 -1
  89. package/dist/retrieval/index.js +1 -1
  90. package/dist/settings/index.cjs +37 -37
  91. package/dist/settings/index.js +5 -5
  92. package/dist/shell/index.cjs +12 -12
  93. package/dist/shell/index.js +4 -4
  94. package/dist/site/index.cjs +5 -5
  95. package/dist/site/index.js +1 -1
  96. package/dist/studio/index.cjs +5 -5
  97. package/dist/studio/index.js +4 -4
  98. package/dist/workflow-canvas/index.cjs +53 -53
  99. package/dist/workflow-canvas/index.js +10 -10
  100. package/dist/workspaces/index.cjs +2 -2
  101. package/dist/workspaces/index.js +2 -2
  102. package/node_modules/@arbidocs/coedit/package.json +1 -1
  103. package/package.json +15 -5
  104. package/src/calls/calls.css +157 -0
  105. package/dist/chunk-3US5OIDQ.cjs.map +0 -1
  106. package/dist/chunk-7C35WXYB.js.map +0 -1
  107. package/dist/chunk-C2HRZSAT.cjs.map +0 -1
  108. package/dist/chunk-FQX6N5G6.js.map +0 -1
  109. package/dist/chunk-GBYY3PIC.cjs.map +0 -1
  110. package/dist/chunk-I4XQCE6U.cjs.map +0 -1
  111. package/dist/chunk-NUTLXVPX.js.map +0 -1
  112. package/dist/chunk-PDRYGPZB.cjs.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arbidocs/blocks",
3
- "version": "0.4.109",
3
+ "version": "0.4.110",
4
4
  "description": "Composable, domain-neutral UI blocks for ARBI apps, organised by capability (retrieval, facts, agents, workspaces, citations, collaboration) plus shell, theme and site primitives, on top of @arbidocs/react.",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
@@ -108,6 +108,12 @@
108
108
  "require": "./dist/calendar/index.cjs"
109
109
  },
110
110
  "./calendar.css": "./src/calendar/calendar.css",
111
+ "./calls": {
112
+ "types": "./dist/calls/index.d.ts",
113
+ "import": "./dist/calls/index.js",
114
+ "require": "./dist/calls/index.cjs"
115
+ },
116
+ "./calls.css": "./src/calls/calls.css",
111
117
  "./studio": {
112
118
  "types": "./dist/studio/index.d.ts",
113
119
  "import": "./dist/studio/index.js",
@@ -214,6 +220,9 @@
214
220
  "calendar": [
215
221
  "./dist/calendar/index.d.ts"
216
222
  ],
223
+ "calls": [
224
+ "./dist/calls/index.d.ts"
225
+ ],
217
226
  "studio": [
218
227
  "./dist/studio/index.d.ts"
219
228
  ],
@@ -257,7 +266,8 @@
257
266
  "src/docx/styles.css",
258
267
  "src/docx/layout/layout.css",
259
268
  "src/docx/README.md",
260
- "src/calendar/calendar.css"
269
+ "src/calendar/calendar.css",
270
+ "src/calls/calls.css"
261
271
  ],
262
272
  "scripts": {
263
273
  "build": "rm -rf dist && tsup && tsc -p tsconfig.build.json",
@@ -270,8 +280,8 @@
270
280
  "example:test:e2e": "playwright test -c examples/custom-ui/playwright.config.ts"
271
281
  },
272
282
  "dependencies": {
273
- "@arbidocs/client": "0.4.109",
274
- "@arbidocs/coedit": "0.4.109",
283
+ "@arbidocs/client": "0.4.110",
284
+ "@arbidocs/coedit": "0.4.110",
275
285
  "@dnd-kit/core": "^6.3.1",
276
286
  "@dnd-kit/sortable": "^10.0.0",
277
287
  "@dnd-kit/utilities": "^3.2.2",
@@ -313,7 +323,7 @@
313
323
  "y-protocols": "^1.0.6"
314
324
  },
315
325
  "peerDependencies": {
316
- "@arbidocs/react": "0.4.109",
326
+ "@arbidocs/react": "0.4.110",
317
327
  "@lexical/html": "0.35.0",
318
328
  "@lexical/link": "0.35.0",
319
329
  "@lexical/list": "0.35.0",
@@ -0,0 +1,157 @@
1
+ /*
2
+ * Call tiles (`@arbidocs/blocks/calls.css`). Everything around the tiles is plain ARBI chrome
3
+ * (theme tokens via Tailwind classes); only the video tiles need rules of their own. They sit on
4
+ * the deep brand navy (`--hero`) so video and initials read the same in light and dark.
5
+ */
6
+
7
+ .call-tile-box > .call-tile {
8
+ width: 100%;
9
+ height: 100%;
10
+ }
11
+
12
+ .call-tile {
13
+ position: relative;
14
+ display: flex;
15
+ align-items: center;
16
+ justify-content: center;
17
+ overflow: hidden;
18
+ container-type: size;
19
+ border-radius: var(--radius);
20
+ background-color: hsl(var(--hero));
21
+ color: #fff;
22
+ }
23
+
24
+ /* Camera video fills its 16:9 tile; a share is letterboxed so nothing on it is cut off. */
25
+ .call-tile video {
26
+ width: 100%;
27
+ height: 100%;
28
+ object-fit: cover;
29
+ object-position: 50% 30%;
30
+ }
31
+ .call-tile[data-source='screen'] video {
32
+ object-fit: contain;
33
+ }
34
+ /* A selfie view flips the <video> element only: names, initials and icons are siblings, never
35
+ * inside the transform (a recording drawn from the <video> stays unmirrored too). */
36
+ .call-tile[data-mirror='true'] > video {
37
+ transform: scaleX(-1);
38
+ }
39
+
40
+ .call-tile-placeholder {
41
+ display: flex;
42
+ width: 100%;
43
+ height: 100%;
44
+ align-items: center;
45
+ justify-content: center;
46
+ }
47
+ .call-tile-avatar {
48
+ display: flex;
49
+ width: clamp(2.5rem, 22cqmin, 6rem);
50
+ aspect-ratio: 1;
51
+ align-items: center;
52
+ justify-content: center;
53
+ border-radius: 9999px;
54
+ background-color: rgb(255 255 255 / 0.14);
55
+ font-size: clamp(0.875rem, 8cqmin, 1.75rem);
56
+ font-weight: 600;
57
+ letter-spacing: 0.02em;
58
+ }
59
+ .call-tile-avatar-sm {
60
+ width: 2.25rem;
61
+ font-size: 0.8125rem;
62
+ }
63
+
64
+ /* A tile too short for both (a filmstrip thumbnail): the name chip carries the person; the large
65
+ * initials would sit under it. */
66
+ @container (max-height: 96px) {
67
+ .call-tile-placeholder .call-tile-avatar {
68
+ display: none;
69
+ }
70
+ }
71
+
72
+ /* The name, once, bottom-left (the app's person pill, on its own surface), and the tile's state
73
+ * icons in a small dark chip beside it. */
74
+ .call-tile-name {
75
+ position: absolute;
76
+ left: 0.5rem;
77
+ bottom: 0.5rem;
78
+ display: flex;
79
+ max-width: calc(100% - 1rem);
80
+ align-items: center;
81
+ gap: 0.25rem;
82
+ font-size: 0.75rem;
83
+ line-height: 1.125rem;
84
+ font-weight: 500;
85
+ }
86
+ .call-tile-chip {
87
+ display: inline-flex;
88
+ align-items: center;
89
+ gap: 0.25rem;
90
+ border-radius: var(--radius);
91
+ background-color: rgb(0 0 0 / 0.6);
92
+ padding: 0.1875rem 0.375rem;
93
+ color: #fff;
94
+ }
95
+ .call-tile-signal {
96
+ position: absolute;
97
+ right: 0.5rem;
98
+ top: 0.5rem;
99
+ display: flex;
100
+ border-radius: var(--radius);
101
+ background-color: rgb(0 0 0 / 0.6);
102
+ padding: 0.125rem;
103
+ color: hsl(var(--yellow-solid));
104
+ }
105
+
106
+ /* Who is talking: a brand-cyan frame over the video that thickens with the voice level, and a
107
+ * ring around the avatar that grows with it (camera off). Never colour alone: the name chip also
108
+ * shows a sound icon, and the panel says "Speaking: …". */
109
+ .call-tile::after {
110
+ content: '';
111
+ position: absolute;
112
+ inset: 0;
113
+ border: 0 solid transparent;
114
+ border-radius: inherit;
115
+ pointer-events: none;
116
+ transition:
117
+ border-width 60ms linear,
118
+ border-color 120ms ease-out;
119
+ }
120
+ .call-tile[data-speaking='true']::after {
121
+ border-color: hsl(var(--theme-cyan));
122
+ border-width: calc(2px + var(--call-level, 0) * 4px);
123
+ }
124
+ .call-tile-avatar {
125
+ transition: box-shadow 60ms linear;
126
+ }
127
+ .call-tile[data-speaking='true'] .call-tile-avatar {
128
+ box-shadow:
129
+ 0 0 0 3px hsl(var(--theme-cyan)),
130
+ 0 0 0 calc(3px + var(--call-level, 0) * 14px) hsl(var(--theme-cyan) / 0.35);
131
+ }
132
+ .call-tile-speaking {
133
+ color: hsl(var(--theme-cyan));
134
+ }
135
+
136
+ .call-tile-more {
137
+ flex-direction: column;
138
+ gap: 0.375rem;
139
+ font-size: 0.875rem;
140
+ font-weight: 500;
141
+ }
142
+
143
+ /* Reduced motion: a steady ring while someone talks, no pulsing with the level. */
144
+ @media (prefers-reduced-motion: reduce) {
145
+ .call-tile::after,
146
+ .call-tile-avatar {
147
+ transition: none;
148
+ }
149
+ .call-tile[data-speaking='true']::after {
150
+ border-width: 4px;
151
+ }
152
+ .call-tile[data-speaking='true'] .call-tile-avatar {
153
+ box-shadow:
154
+ 0 0 0 3px hsl(var(--theme-cyan)),
155
+ 0 0 0 8px hsl(var(--theme-cyan) / 0.35);
156
+ }
157
+ }