@unofficialbox/box-open-elements 0.4.0 → 0.6.0

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 (677) hide show
  1. package/README.md +39 -14
  2. package/dist/components/actions/button-group.d.ts +2 -2
  3. package/dist/components/actions/button-group.js +3 -9
  4. package/dist/components/actions/button.d.ts +2 -2
  5. package/dist/components/actions/button.js +3 -9
  6. package/dist/components/actions/icon-button.d.ts +2 -2
  7. package/dist/components/actions/icon-button.js +3 -9
  8. package/dist/components/actions/link-button.d.ts +2 -2
  9. package/dist/components/actions/link-button.js +3 -9
  10. package/dist/components/actions/menu-item.d.ts +2 -2
  11. package/dist/components/actions/menu-item.js +3 -9
  12. package/dist/components/actions/menu.d.ts +2 -2
  13. package/dist/components/actions/menu.js +3 -9
  14. package/dist/components/actions/segmented-control.d.ts +2 -2
  15. package/dist/components/actions/segmented-control.js +3 -9
  16. package/dist/components/collections/card.d.ts +2 -2
  17. package/dist/components/collections/card.js +3 -9
  18. package/dist/components/collections/carousel.d.ts +2 -2
  19. package/dist/components/collections/carousel.js +3 -9
  20. package/dist/components/collections/datalist-item.d.ts +2 -2
  21. package/dist/components/collections/datalist-item.js +3 -9
  22. package/dist/components/collections/draggable-list.d.ts +2 -2
  23. package/dist/components/collections/draggable-list.js +3 -9
  24. package/dist/components/collections/grid-view.d.ts +2 -2
  25. package/dist/components/collections/grid-view.js +3 -9
  26. package/dist/components/collections/pagination.d.ts +2 -2
  27. package/dist/components/collections/pagination.js +3 -9
  28. package/dist/components/collections/table.d.ts +59 -5
  29. package/dist/components/collections/table.js +342 -29
  30. package/dist/components/collections/thumbnail-card.d.ts +2 -2
  31. package/dist/components/collections/thumbnail-card.js +3 -9
  32. package/dist/components/collections/tree-grid.d.ts +2 -2
  33. package/dist/components/collections/tree-grid.js +3 -9
  34. package/dist/components/collections/tree.d.ts +2 -2
  35. package/dist/components/collections/tree.js +3 -9
  36. package/dist/components/feedback/alert.d.ts +2 -2
  37. package/dist/components/feedback/alert.js +3 -9
  38. package/dist/components/feedback/badge.d.ts +2 -2
  39. package/dist/components/feedback/badge.js +3 -9
  40. package/dist/components/feedback/badgeable.d.ts +2 -2
  41. package/dist/components/feedback/badgeable.js +3 -9
  42. package/dist/components/feedback/chip.d.ts +2 -2
  43. package/dist/components/feedback/chip.js +3 -9
  44. package/dist/components/feedback/due-badge.d.ts +38 -0
  45. package/dist/components/feedback/due-badge.js +168 -0
  46. package/dist/components/feedback/due-types.d.ts +32 -0
  47. package/dist/components/feedback/due-types.js +91 -0
  48. package/dist/components/feedback/empty-state.d.ts +2 -2
  49. package/dist/components/feedback/empty-state.js +3 -9
  50. package/dist/components/feedback/error-mask.d.ts +2 -2
  51. package/dist/components/feedback/error-mask.js +3 -9
  52. package/dist/components/feedback/help-text.d.ts +2 -2
  53. package/dist/components/feedback/help-text.js +3 -9
  54. package/dist/components/feedback/nudge.d.ts +2 -2
  55. package/dist/components/feedback/nudge.js +3 -9
  56. package/dist/components/feedback/progress-bar.d.ts +2 -2
  57. package/dist/components/feedback/progress-bar.js +3 -9
  58. package/dist/components/feedback/progress-ring.d.ts +2 -2
  59. package/dist/components/feedback/progress-ring.js +3 -9
  60. package/dist/components/feedback/progress-steps.d.ts +53 -7
  61. package/dist/components/feedback/progress-steps.js +203 -31
  62. package/dist/components/feedback/skeleton.d.ts +2 -2
  63. package/dist/components/feedback/skeleton.js +3 -9
  64. package/dist/components/feedback/spinner.d.ts +2 -2
  65. package/dist/components/feedback/spinner.js +3 -9
  66. package/dist/components/feedback/stage-path.d.ts +44 -0
  67. package/dist/components/feedback/stage-path.js +235 -0
  68. package/dist/components/feedback/toast.d.ts +2 -2
  69. package/dist/components/feedback/toast.js +3 -9
  70. package/dist/components/files/drop-zone.d.ts +2 -2
  71. package/dist/components/files/drop-zone.js +3 -9
  72. package/dist/components/forms/calendar.d.ts +2 -2
  73. package/dist/components/forms/calendar.js +3 -9
  74. package/dist/components/forms/category-selector.d.ts +2 -2
  75. package/dist/components/forms/category-selector.js +3 -9
  76. package/dist/components/forms/checkbox-group.d.ts +2 -2
  77. package/dist/components/forms/checkbox-group.js +3 -9
  78. package/dist/components/forms/checkbox.d.ts +2 -2
  79. package/dist/components/forms/checkbox.js +3 -9
  80. package/dist/components/forms/color-picker.d.ts +2 -2
  81. package/dist/components/forms/color-picker.js +3 -9
  82. package/dist/components/forms/combobox.d.ts +2 -2
  83. package/dist/components/forms/combobox.js +3 -9
  84. package/dist/components/forms/date-field.d.ts +2 -2
  85. package/dist/components/forms/date-field.js +3 -9
  86. package/dist/components/forms/dropdown.d.ts +2 -2
  87. package/dist/components/forms/dropdown.js +3 -9
  88. package/dist/components/forms/dual-listbox.d.ts +2 -2
  89. package/dist/components/forms/dual-listbox.js +3 -9
  90. package/dist/components/forms/fieldset.d.ts +2 -2
  91. package/dist/components/forms/fieldset.js +3 -9
  92. package/dist/components/forms/multi-select.d.ts +2 -2
  93. package/dist/components/forms/multi-select.js +3 -9
  94. package/dist/components/forms/number-input.d.ts +2 -2
  95. package/dist/components/forms/number-input.js +3 -9
  96. package/dist/components/forms/pill-cloud.d.ts +2 -2
  97. package/dist/components/forms/pill-cloud.js +3 -9
  98. package/dist/components/forms/pill-selector-dropdown.d.ts +2 -2
  99. package/dist/components/forms/pill-selector-dropdown.js +3 -9
  100. package/dist/components/forms/radio-group.d.ts +2 -2
  101. package/dist/components/forms/radio-group.js +3 -9
  102. package/dist/components/forms/range-slider.d.ts +2 -2
  103. package/dist/components/forms/range-slider.js +3 -9
  104. package/dist/components/forms/rating.d.ts +2 -2
  105. package/dist/components/forms/rating.js +3 -9
  106. package/dist/components/forms/rich-text-input.d.ts +2 -2
  107. package/dist/components/forms/rich-text-input.js +3 -9
  108. package/dist/components/forms/search-field.d.ts +2 -2
  109. package/dist/components/forms/search-field.js +3 -9
  110. package/dist/components/forms/select.d.ts +23 -2
  111. package/dist/components/forms/select.js +103 -12
  112. package/dist/components/forms/slider.d.ts +2 -2
  113. package/dist/components/forms/slider.js +3 -9
  114. package/dist/components/forms/spin-button.d.ts +2 -2
  115. package/dist/components/forms/spin-button.js +3 -9
  116. package/dist/components/forms/switch.d.ts +2 -2
  117. package/dist/components/forms/switch.js +3 -9
  118. package/dist/components/forms/tag-input.d.ts +2 -2
  119. package/dist/components/forms/tag-input.js +3 -9
  120. package/dist/components/forms/text-area.d.ts +2 -2
  121. package/dist/components/forms/text-area.js +3 -9
  122. package/dist/components/forms/text-field.d.ts +23 -2
  123. package/dist/components/forms/text-field.js +103 -10
  124. package/dist/components/forms/time-field.d.ts +2 -2
  125. package/dist/components/forms/time-field.js +4 -10
  126. package/dist/components/identity/avatar.d.ts +2 -2
  127. package/dist/components/identity/avatar.js +3 -9
  128. package/dist/components/identity/contact-datalist-item.d.ts +2 -2
  129. package/dist/components/identity/contact-datalist-item.js +3 -9
  130. package/dist/components/identity/persona.d.ts +2 -2
  131. package/dist/components/identity/persona.js +3 -9
  132. package/dist/components/layout/app-shell.d.ts +2 -2
  133. package/dist/components/layout/app-shell.js +3 -9
  134. package/dist/components/layout/divider.d.ts +2 -2
  135. package/dist/components/layout/divider.js +3 -9
  136. package/dist/components/layout/nav-sidebar.d.ts +16 -2
  137. package/dist/components/layout/nav-sidebar.js +52 -9
  138. package/dist/components/layout/section.d.ts +2 -2
  139. package/dist/components/layout/section.js +3 -9
  140. package/dist/components/layout/sidebar-toggle-button.d.ts +2 -2
  141. package/dist/components/layout/sidebar-toggle-button.js +3 -9
  142. package/dist/components/layout/split-view.d.ts +16 -2
  143. package/dist/components/layout/split-view.js +83 -10
  144. package/dist/components/navigation/accordion.d.ts +2 -2
  145. package/dist/components/navigation/accordion.js +3 -9
  146. package/dist/components/navigation/breadcrumb.d.ts +2 -2
  147. package/dist/components/navigation/breadcrumb.js +3 -9
  148. package/dist/components/navigation/tabs.d.ts +2 -2
  149. package/dist/components/navigation/tabs.js +3 -9
  150. package/dist/components/overlays/command-palette.d.ts +62 -0
  151. package/dist/components/overlays/command-palette.js +537 -0
  152. package/dist/components/overlays/command-types.d.ts +90 -0
  153. package/dist/components/overlays/command-types.js +259 -0
  154. package/dist/components/overlays/context-menu.d.ts +2 -2
  155. package/dist/components/overlays/context-menu.js +3 -9
  156. package/dist/components/overlays/dialog.d.ts +2 -2
  157. package/dist/components/overlays/dialog.js +3 -9
  158. package/dist/components/overlays/drawer.d.ts +20 -2
  159. package/dist/components/overlays/drawer.js +138 -18
  160. package/dist/components/overlays/guide-tooltip.d.ts +2 -2
  161. package/dist/components/overlays/guide-tooltip.js +3 -9
  162. package/dist/components/overlays/popover.d.ts +2 -2
  163. package/dist/components/overlays/popover.js +3 -9
  164. package/dist/components/overlays/shortcuts-overlay.d.ts +48 -0
  165. package/dist/components/overlays/shortcuts-overlay.js +385 -0
  166. package/dist/components/overlays/tooltip.d.ts +2 -2
  167. package/dist/components/overlays/tooltip.js +4 -10
  168. package/dist/components/visuals/illustration.d.ts +2 -2
  169. package/dist/components/visuals/illustration.js +3 -9
  170. package/dist/core/element.d.ts +5 -1
  171. package/dist/core/element.js +29 -1
  172. package/dist/element-maps.d.ts +292 -0
  173. package/dist/element-maps.js +1 -0
  174. package/dist/entries/access-stats.d.ts +1 -0
  175. package/dist/entries/access-stats.js +1 -0
  176. package/dist/entries/accordion.d.ts +1 -0
  177. package/dist/entries/accordion.js +1 -0
  178. package/dist/entries/activity-density.d.ts +1 -0
  179. package/dist/entries/activity-density.js +1 -0
  180. package/dist/entries/agent-chat.d.ts +1 -0
  181. package/dist/entries/agent-chat.js +1 -0
  182. package/dist/entries/alert.d.ts +1 -0
  183. package/dist/entries/alert.js +1 -0
  184. package/dist/entries/annotation-inspector.d.ts +1 -0
  185. package/dist/entries/annotation-inspector.js +1 -0
  186. package/dist/entries/annotation-thread.d.ts +1 -0
  187. package/dist/entries/annotation-thread.js +1 -0
  188. package/dist/entries/annotation-toolbar.d.ts +1 -0
  189. package/dist/entries/annotation-toolbar.js +1 -0
  190. package/dist/entries/app-shell.d.ts +1 -0
  191. package/dist/entries/app-shell.js +1 -0
  192. package/dist/entries/audit-log.d.ts +1 -0
  193. package/dist/entries/audit-log.js +1 -0
  194. package/dist/entries/avatar.d.ts +1 -0
  195. package/dist/entries/avatar.js +1 -0
  196. package/dist/entries/badge.d.ts +1 -0
  197. package/dist/entries/badge.js +1 -0
  198. package/dist/entries/badgeable.d.ts +1 -0
  199. package/dist/entries/badgeable.js +1 -0
  200. package/dist/entries/bar-chart.d.ts +1 -0
  201. package/dist/entries/bar-chart.js +1 -0
  202. package/dist/entries/breadcrumb.d.ts +1 -0
  203. package/dist/entries/breadcrumb.js +1 -0
  204. package/dist/entries/bulk-action-bar.d.ts +1 -0
  205. package/dist/entries/bulk-action-bar.js +1 -0
  206. package/dist/entries/button-group.d.ts +1 -0
  207. package/dist/entries/button-group.js +1 -0
  208. package/dist/entries/button.d.ts +1 -0
  209. package/dist/entries/button.js +1 -0
  210. package/dist/entries/calendar.d.ts +1 -0
  211. package/dist/entries/calendar.js +1 -0
  212. package/dist/entries/card.d.ts +1 -0
  213. package/dist/entries/card.js +1 -0
  214. package/dist/entries/carousel.d.ts +1 -0
  215. package/dist/entries/carousel.js +1 -0
  216. package/dist/entries/category-selector.d.ts +1 -0
  217. package/dist/entries/category-selector.js +1 -0
  218. package/dist/entries/chart-panel.d.ts +1 -0
  219. package/dist/entries/chart-panel.js +1 -0
  220. package/dist/entries/checkbox-group.d.ts +1 -0
  221. package/dist/entries/checkbox-group.js +1 -0
  222. package/dist/entries/checkbox.d.ts +1 -0
  223. package/dist/entries/checkbox.js +1 -0
  224. package/dist/entries/chip.d.ts +1 -0
  225. package/dist/entries/chip.js +1 -0
  226. package/dist/entries/collaborator-avatars.d.ts +1 -0
  227. package/dist/entries/collaborator-avatars.js +1 -0
  228. package/dist/entries/color-picker.d.ts +1 -0
  229. package/dist/entries/color-picker.js +1 -0
  230. package/dist/entries/combobox.d.ts +1 -0
  231. package/dist/entries/combobox.js +1 -0
  232. package/dist/entries/command-palette.d.ts +1 -0
  233. package/dist/entries/command-palette.js +1 -0
  234. package/dist/entries/compare-view.d.ts +1 -0
  235. package/dist/entries/compare-view.js +1 -0
  236. package/dist/entries/contact-datalist-item.d.ts +1 -0
  237. package/dist/entries/contact-datalist-item.js +1 -0
  238. package/dist/entries/content-explorer.d.ts +1 -0
  239. package/dist/entries/content-explorer.js +1 -0
  240. package/dist/entries/context-menu.d.ts +1 -0
  241. package/dist/entries/context-menu.js +1 -0
  242. package/dist/entries/datalist-item.d.ts +1 -0
  243. package/dist/entries/datalist-item.js +1 -0
  244. package/dist/entries/date-field.d.ts +1 -0
  245. package/dist/entries/date-field.js +1 -0
  246. package/dist/entries/dialog.d.ts +1 -0
  247. package/dist/entries/dialog.js +1 -0
  248. package/dist/entries/diff-viewer.d.ts +1 -0
  249. package/dist/entries/diff-viewer.js +1 -0
  250. package/dist/entries/divider.d.ts +1 -0
  251. package/dist/entries/divider.js +1 -0
  252. package/dist/entries/donut-chart.d.ts +1 -0
  253. package/dist/entries/donut-chart.js +1 -0
  254. package/dist/entries/draggable-list.d.ts +1 -0
  255. package/dist/entries/draggable-list.js +1 -0
  256. package/dist/entries/drawer.d.ts +1 -0
  257. package/dist/entries/drawer.js +1 -0
  258. package/dist/entries/drop-zone.d.ts +1 -0
  259. package/dist/entries/drop-zone.js +1 -0
  260. package/dist/entries/dropdown.d.ts +1 -0
  261. package/dist/entries/dropdown.js +1 -0
  262. package/dist/entries/dual-listbox.d.ts +1 -0
  263. package/dist/entries/dual-listbox.js +1 -0
  264. package/dist/entries/due-badge.d.ts +1 -0
  265. package/dist/entries/due-badge.js +1 -0
  266. package/dist/entries/empty-state.d.ts +1 -0
  267. package/dist/entries/empty-state.js +1 -0
  268. package/dist/entries/error-mask.d.ts +1 -0
  269. package/dist/entries/error-mask.js +1 -0
  270. package/dist/entries/explorer-action-menu.d.ts +1 -0
  271. package/dist/entries/explorer-action-menu.js +1 -0
  272. package/dist/entries/explorer-breadcrumbs.d.ts +1 -0
  273. package/dist/entries/explorer-breadcrumbs.js +1 -0
  274. package/dist/entries/explorer-items.d.ts +1 -0
  275. package/dist/entries/explorer-items.js +1 -0
  276. package/dist/entries/explorer-list.d.ts +1 -0
  277. package/dist/entries/explorer-list.js +1 -0
  278. package/dist/entries/explorer-table.d.ts +1 -0
  279. package/dist/entries/explorer-table.js +1 -0
  280. package/dist/entries/explorer-toolbar.d.ts +1 -0
  281. package/dist/entries/explorer-toolbar.js +1 -0
  282. package/dist/entries/fieldset.d.ts +1 -0
  283. package/dist/entries/fieldset.js +1 -0
  284. package/dist/entries/file-request-builder.d.ts +1 -0
  285. package/dist/entries/file-request-builder.js +1 -0
  286. package/dist/entries/filter-bar.d.ts +1 -0
  287. package/dist/entries/filter-bar.js +1 -0
  288. package/dist/entries/form-wizard.d.ts +1 -0
  289. package/dist/entries/form-wizard.js +1 -0
  290. package/dist/entries/governance-panel.d.ts +1 -0
  291. package/dist/entries/governance-panel.js +1 -0
  292. package/dist/entries/grid-view.d.ts +1 -0
  293. package/dist/entries/grid-view.js +1 -0
  294. package/dist/entries/guide-tooltip.d.ts +1 -0
  295. package/dist/entries/guide-tooltip.js +1 -0
  296. package/dist/entries/help-text.d.ts +1 -0
  297. package/dist/entries/help-text.js +1 -0
  298. package/dist/entries/icon-button.d.ts +1 -0
  299. package/dist/entries/icon-button.js +1 -0
  300. package/dist/entries/illustration.d.ts +1 -0
  301. package/dist/entries/illustration.js +1 -0
  302. package/dist/entries/invite-collaborators-modal.d.ts +1 -0
  303. package/dist/entries/invite-collaborators-modal.js +1 -0
  304. package/dist/entries/item-details-panel.d.ts +1 -0
  305. package/dist/entries/item-details-panel.js +1 -0
  306. package/dist/entries/item-form.d.ts +1 -0
  307. package/dist/entries/item-form.js +1 -0
  308. package/dist/entries/line-chart.d.ts +1 -0
  309. package/dist/entries/line-chart.js +1 -0
  310. package/dist/entries/lineage-graph.d.ts +1 -0
  311. package/dist/entries/lineage-graph.js +1 -0
  312. package/dist/entries/link-button.d.ts +1 -0
  313. package/dist/entries/link-button.js +1 -0
  314. package/dist/entries/menu-item.d.ts +1 -0
  315. package/dist/entries/menu-item.js +1 -0
  316. package/dist/entries/menu.d.ts +1 -0
  317. package/dist/entries/menu.js +1 -0
  318. package/dist/entries/metadata-filter-builder.d.ts +1 -0
  319. package/dist/entries/metadata-filter-builder.js +1 -0
  320. package/dist/entries/metadata-inspector.d.ts +1 -0
  321. package/dist/entries/metadata-inspector.js +1 -0
  322. package/dist/entries/metric-card.d.ts +1 -0
  323. package/dist/entries/metric-card.js +1 -0
  324. package/dist/entries/multi-select.d.ts +1 -0
  325. package/dist/entries/multi-select.js +1 -0
  326. package/dist/entries/nav-sidebar.d.ts +1 -0
  327. package/dist/entries/nav-sidebar.js +1 -0
  328. package/dist/entries/notification-bell.d.ts +1 -0
  329. package/dist/entries/notification-bell.js +1 -0
  330. package/dist/entries/notification-inbox.d.ts +1 -0
  331. package/dist/entries/notification-inbox.js +1 -0
  332. package/dist/entries/nudge.d.ts +1 -0
  333. package/dist/entries/nudge.js +1 -0
  334. package/dist/entries/number-input.d.ts +1 -0
  335. package/dist/entries/number-input.js +1 -0
  336. package/dist/entries/pagination.d.ts +1 -0
  337. package/dist/entries/pagination.js +1 -0
  338. package/dist/entries/permission-matrix.d.ts +1 -0
  339. package/dist/entries/permission-matrix.js +1 -0
  340. package/dist/entries/persona.d.ts +1 -0
  341. package/dist/entries/persona.js +1 -0
  342. package/dist/entries/pill-cloud.d.ts +1 -0
  343. package/dist/entries/pill-cloud.js +1 -0
  344. package/dist/entries/pill-selector-dropdown.d.ts +1 -0
  345. package/dist/entries/pill-selector-dropdown.js +1 -0
  346. package/dist/entries/popover.d.ts +1 -0
  347. package/dist/entries/popover.js +1 -0
  348. package/dist/entries/presence.d.ts +1 -0
  349. package/dist/entries/presence.js +1 -0
  350. package/dist/entries/preview-header.d.ts +1 -0
  351. package/dist/entries/preview-header.js +1 -0
  352. package/dist/entries/preview.d.ts +1 -0
  353. package/dist/entries/preview.js +1 -0
  354. package/dist/entries/progress-bar.d.ts +1 -0
  355. package/dist/entries/progress-bar.js +1 -0
  356. package/dist/entries/progress-ring.d.ts +1 -0
  357. package/dist/entries/progress-ring.js +1 -0
  358. package/dist/entries/progress-steps.d.ts +1 -0
  359. package/dist/entries/progress-steps.js +1 -0
  360. package/dist/entries/provenance-strip.d.ts +1 -0
  361. package/dist/entries/provenance-strip.js +1 -0
  362. package/dist/entries/radio-group.d.ts +1 -0
  363. package/dist/entries/radio-group.js +1 -0
  364. package/dist/entries/range-slider.d.ts +1 -0
  365. package/dist/entries/range-slider.js +1 -0
  366. package/dist/entries/rating.d.ts +1 -0
  367. package/dist/entries/rating.js +1 -0
  368. package/dist/entries/review-queue-item.d.ts +1 -0
  369. package/dist/entries/review-queue-item.js +1 -0
  370. package/dist/entries/rich-text-input.d.ts +1 -0
  371. package/dist/entries/rich-text-input.js +1 -0
  372. package/dist/entries/run-trace.d.ts +1 -0
  373. package/dist/entries/run-trace.js +1 -0
  374. package/dist/entries/saved-view-picker.d.ts +1 -0
  375. package/dist/entries/saved-view-picker.js +1 -0
  376. package/dist/entries/search-field.d.ts +1 -0
  377. package/dist/entries/search-field.js +1 -0
  378. package/dist/entries/search-results-header.d.ts +1 -0
  379. package/dist/entries/search-results-header.js +1 -0
  380. package/dist/entries/section.d.ts +1 -0
  381. package/dist/entries/section.js +1 -0
  382. package/dist/entries/segmented-control.d.ts +1 -0
  383. package/dist/entries/segmented-control.js +1 -0
  384. package/dist/entries/select.d.ts +1 -0
  385. package/dist/entries/select.js +1 -0
  386. package/dist/entries/share-panel.d.ts +1 -0
  387. package/dist/entries/share-panel.js +1 -0
  388. package/dist/entries/shortcuts-overlay.d.ts +1 -0
  389. package/dist/entries/shortcuts-overlay.js +1 -0
  390. package/dist/entries/sidebar-toggle-button.d.ts +1 -0
  391. package/dist/entries/sidebar-toggle-button.js +1 -0
  392. package/dist/entries/signature-ceremony.d.ts +1 -0
  393. package/dist/entries/signature-ceremony.js +1 -0
  394. package/dist/entries/skeleton.d.ts +1 -0
  395. package/dist/entries/skeleton.js +1 -0
  396. package/dist/entries/slider.d.ts +1 -0
  397. package/dist/entries/slider.js +1 -0
  398. package/dist/entries/spin-button.d.ts +1 -0
  399. package/dist/entries/spin-button.js +1 -0
  400. package/dist/entries/spinner.d.ts +1 -0
  401. package/dist/entries/spinner.js +1 -0
  402. package/dist/entries/split-view.d.ts +1 -0
  403. package/dist/entries/split-view.js +1 -0
  404. package/dist/entries/stage-path.d.ts +1 -0
  405. package/dist/entries/stage-path.js +1 -0
  406. package/dist/entries/switch.d.ts +1 -0
  407. package/dist/entries/switch.js +1 -0
  408. package/dist/entries/table.d.ts +1 -0
  409. package/dist/entries/table.js +1 -0
  410. package/dist/entries/tabs.d.ts +1 -0
  411. package/dist/entries/tabs.js +1 -0
  412. package/dist/entries/tag-input.d.ts +1 -0
  413. package/dist/entries/tag-input.js +1 -0
  414. package/dist/entries/task-assignment-panel.d.ts +1 -0
  415. package/dist/entries/task-assignment-panel.js +1 -0
  416. package/dist/entries/text-area.d.ts +1 -0
  417. package/dist/entries/text-area.js +1 -0
  418. package/dist/entries/text-field.d.ts +1 -0
  419. package/dist/entries/text-field.js +1 -0
  420. package/dist/entries/thumbnail-card.d.ts +1 -0
  421. package/dist/entries/thumbnail-card.js +1 -0
  422. package/dist/entries/time-field.d.ts +1 -0
  423. package/dist/entries/time-field.js +1 -0
  424. package/dist/entries/timeline.d.ts +1 -0
  425. package/dist/entries/timeline.js +1 -0
  426. package/dist/entries/toast.d.ts +1 -0
  427. package/dist/entries/toast.js +1 -0
  428. package/dist/entries/tooltip.d.ts +1 -0
  429. package/dist/entries/tooltip.js +1 -0
  430. package/dist/entries/tree-grid.d.ts +1 -0
  431. package/dist/entries/tree-grid.js +1 -0
  432. package/dist/entries/tree.d.ts +1 -0
  433. package/dist/entries/tree.js +1 -0
  434. package/dist/entries/unified-share-modal.d.ts +1 -0
  435. package/dist/entries/unified-share-modal.js +1 -0
  436. package/dist/entries/version-graph.d.ts +1 -0
  437. package/dist/entries/version-graph.js +1 -0
  438. package/dist/entries/version-list.d.ts +1 -0
  439. package/dist/entries/version-list.js +1 -0
  440. package/dist/entries/wizard-summary.d.ts +1 -0
  441. package/dist/entries/wizard-summary.js +1 -0
  442. package/dist/entries/work-queue.d.ts +1 -0
  443. package/dist/entries/work-queue.js +1 -0
  444. package/dist/entries/workload-board.d.ts +1 -0
  445. package/dist/entries/workload-board.js +1 -0
  446. package/dist/foundations/geometry/tokens.d.ts +46 -45
  447. package/dist/foundations/geometry/tokens.js +46 -45
  448. package/dist/foundations/motion/tokens.d.ts +10 -10
  449. package/dist/foundations/motion/tokens.js +10 -10
  450. package/dist/foundations/profiles/built-ins.d.ts +4 -0
  451. package/dist/foundations/profiles/built-ins.js +131 -0
  452. package/dist/foundations/profiles/controller.d.ts +4 -0
  453. package/dist/foundations/profiles/controller.js +107 -0
  454. package/dist/foundations/profiles/index.d.ts +4 -0
  455. package/dist/foundations/profiles/index.js +3 -0
  456. package/dist/foundations/profiles/registry.d.ts +72 -0
  457. package/dist/foundations/profiles/registry.js +119 -0
  458. package/dist/foundations/profiles/types.d.ts +94 -0
  459. package/dist/foundations/profiles/types.js +1 -0
  460. package/dist/foundations/theming/controller.d.ts +37 -0
  461. package/dist/foundations/theming/controller.js +176 -0
  462. package/dist/foundations/theming/index.d.ts +2 -0
  463. package/dist/foundations/theming/index.js +1 -0
  464. package/dist/foundations/tokens/box-dark.d.ts +3 -3
  465. package/dist/foundations/tokens/box-defaults.d.ts +3 -3
  466. package/dist/foundations/tokens/index.d.ts +2 -2
  467. package/dist/foundations/tokens/index.js +1 -1
  468. package/dist/foundations/tokens/registry.d.ts +37 -7
  469. package/dist/foundations/tokens/registry.js +55 -5
  470. package/dist/foundations/tokens/types.d.ts +38 -1
  471. package/dist/index.d.ts +27 -2
  472. package/dist/index.js +24 -1
  473. package/dist/patterns/agent-chat/agent-chat.d.ts +75 -0
  474. package/dist/patterns/agent-chat/agent-chat.js +820 -0
  475. package/dist/patterns/agent-chat/controller.d.ts +27 -0
  476. package/dist/patterns/agent-chat/controller.js +182 -0
  477. package/dist/patterns/agent-chat/index.d.ts +3 -0
  478. package/dist/patterns/agent-chat/index.js +6 -0
  479. package/dist/patterns/agent-chat/types.d.ts +109 -0
  480. package/dist/patterns/agent-chat/types.js +1 -0
  481. package/dist/patterns/audit/activity-density.d.ts +68 -0
  482. package/dist/patterns/audit/activity-density.js +428 -0
  483. package/dist/patterns/audit/audit-log.d.ts +81 -0
  484. package/dist/patterns/audit/audit-log.js +794 -0
  485. package/dist/patterns/audit/index.d.ts +3 -0
  486. package/dist/patterns/audit/index.js +7 -0
  487. package/dist/patterns/audit/shared.d.ts +10 -0
  488. package/dist/patterns/audit/shared.js +50 -0
  489. package/dist/patterns/audit/types.d.ts +143 -0
  490. package/dist/patterns/audit/types.js +327 -0
  491. package/dist/patterns/content-explorer/actions/controller.js +12 -2
  492. package/dist/patterns/content-explorer/adapters/action-menu.d.ts +2 -2
  493. package/dist/patterns/content-explorer/adapters/action-menu.js +3 -9
  494. package/dist/patterns/content-explorer/adapters/breadcrumbs.d.ts +2 -2
  495. package/dist/patterns/content-explorer/adapters/breadcrumbs.js +3 -9
  496. package/dist/patterns/content-explorer/adapters/items.d.ts +3 -3
  497. package/dist/patterns/content-explorer/adapters/items.js +4 -10
  498. package/dist/patterns/content-explorer/adapters/list.d.ts +2 -2
  499. package/dist/patterns/content-explorer/adapters/list.js +3 -9
  500. package/dist/patterns/content-explorer/adapters/table.d.ts +2 -2
  501. package/dist/patterns/content-explorer/adapters/table.js +3 -9
  502. package/dist/patterns/content-explorer/adapters/toolbar.d.ts +2 -2
  503. package/dist/patterns/content-explorer/adapters/toolbar.js +7 -13
  504. package/dist/patterns/content-explorer/box-transport.js +117 -25
  505. package/dist/patterns/content-explorer/content-explorer.d.ts +28 -16
  506. package/dist/patterns/content-explorer/content-explorer.js +41 -14
  507. package/dist/patterns/content-explorer/contracts.d.ts +24 -1
  508. package/dist/patterns/content-explorer/contracts.js +68 -11
  509. package/dist/patterns/content-explorer/controller.d.ts +16 -1
  510. package/dist/patterns/content-explorer/controller.js +130 -4
  511. package/dist/patterns/content-explorer/navigation/controller.js +11 -9
  512. package/dist/patterns/content-explorer/types.d.ts +58 -1
  513. package/dist/patterns/content-picker/content-picker.d.ts +71 -0
  514. package/dist/patterns/content-picker/content-picker.js +747 -0
  515. package/dist/patterns/content-picker/controller.d.ts +38 -0
  516. package/dist/patterns/content-picker/controller.js +141 -0
  517. package/dist/patterns/content-picker/index.d.ts +3 -0
  518. package/dist/patterns/content-picker/index.js +6 -0
  519. package/dist/patterns/content-picker/types.d.ts +52 -0
  520. package/dist/patterns/content-picker/types.js +26 -0
  521. package/dist/patterns/content-sidebar/content-sidebar.d.ts +43 -0
  522. package/dist/patterns/content-sidebar/content-sidebar.js +293 -0
  523. package/dist/patterns/content-sidebar/index.d.ts +2 -0
  524. package/dist/patterns/content-sidebar/index.js +4 -0
  525. package/dist/patterns/content-sidebar/types.d.ts +18 -0
  526. package/dist/patterns/content-sidebar/types.js +20 -0
  527. package/dist/patterns/content-uploader/box-transport.d.ts +14 -0
  528. package/dist/patterns/content-uploader/box-transport.js +54 -0
  529. package/dist/patterns/content-uploader/content-uploader.d.ts +62 -0
  530. package/dist/patterns/content-uploader/content-uploader.js +559 -0
  531. package/dist/patterns/content-uploader/controller.d.ts +39 -0
  532. package/dist/patterns/content-uploader/controller.js +227 -0
  533. package/dist/patterns/content-uploader/index.d.ts +4 -0
  534. package/dist/patterns/content-uploader/index.js +8 -0
  535. package/dist/patterns/content-uploader/types.d.ts +120 -0
  536. package/dist/patterns/content-uploader/types.js +38 -0
  537. package/dist/patterns/diff/compare-view.d.ts +47 -0
  538. package/dist/patterns/diff/compare-view.js +276 -0
  539. package/dist/patterns/diff/diff-viewer.d.ts +42 -0
  540. package/dist/patterns/diff/diff-viewer.js +434 -0
  541. package/dist/patterns/diff/engine.d.ts +22 -0
  542. package/dist/patterns/diff/engine.js +276 -0
  543. package/dist/patterns/diff/index.d.ts +4 -0
  544. package/dist/patterns/diff/index.js +8 -0
  545. package/dist/patterns/diff/types.d.ts +69 -0
  546. package/dist/patterns/diff/types.js +24 -0
  547. package/dist/patterns/file-request/file-request-builder.d.ts +2 -2
  548. package/dist/patterns/file-request/file-request-builder.js +3 -9
  549. package/dist/patterns/form-wizard/controller.d.ts +39 -0
  550. package/dist/patterns/form-wizard/controller.js +157 -0
  551. package/dist/patterns/form-wizard/form-wizard.d.ts +63 -0
  552. package/dist/patterns/form-wizard/form-wizard.js +468 -0
  553. package/dist/patterns/form-wizard/index.d.ts +4 -0
  554. package/dist/patterns/form-wizard/index.js +8 -0
  555. package/dist/patterns/form-wizard/types.d.ts +109 -0
  556. package/dist/patterns/form-wizard/types.js +83 -0
  557. package/dist/patterns/form-wizard/wizard-summary.d.ts +62 -0
  558. package/dist/patterns/form-wizard/wizard-summary.js +324 -0
  559. package/dist/patterns/governance/governance-panel.d.ts +2 -2
  560. package/dist/patterns/governance/governance-panel.js +3 -6
  561. package/dist/patterns/insights/bar-chart.d.ts +2 -2
  562. package/dist/patterns/insights/bar-chart.js +3 -6
  563. package/dist/patterns/insights/chart-panel.d.ts +2 -2
  564. package/dist/patterns/insights/chart-panel.js +3 -6
  565. package/dist/patterns/insights/donut-chart.d.ts +2 -2
  566. package/dist/patterns/insights/donut-chart.js +3 -6
  567. package/dist/patterns/insights/line-chart.d.ts +2 -2
  568. package/dist/patterns/insights/line-chart.js +3 -6
  569. package/dist/patterns/insights/metric-card.d.ts +2 -2
  570. package/dist/patterns/insights/metric-card.js +3 -6
  571. package/dist/patterns/internal/safe-href.d.ts +17 -0
  572. package/dist/patterns/internal/safe-href.js +17 -0
  573. package/dist/patterns/item/bulk-action-bar.d.ts +2 -2
  574. package/dist/patterns/item/bulk-action-bar.js +3 -6
  575. package/dist/patterns/item/item-details-panel.d.ts +2 -2
  576. package/dist/patterns/item/item-details-panel.js +3 -9
  577. package/dist/patterns/item/item-form.d.ts +2 -2
  578. package/dist/patterns/item/item-form.js +3 -9
  579. package/dist/patterns/item/preview-header.d.ts +2 -2
  580. package/dist/patterns/item/preview-header.js +3 -9
  581. package/dist/patterns/lineage/index.d.ts +3 -0
  582. package/dist/patterns/lineage/index.js +6 -0
  583. package/dist/patterns/lineage/lineage-graph.d.ts +30 -0
  584. package/dist/patterns/lineage/lineage-graph.js +434 -0
  585. package/dist/patterns/lineage/provenance-strip.d.ts +22 -0
  586. package/dist/patterns/lineage/provenance-strip.js +194 -0
  587. package/dist/patterns/lineage/types.d.ts +53 -0
  588. package/dist/patterns/lineage/types.js +49 -0
  589. package/dist/patterns/metadata/metadata-filter-builder.d.ts +2 -2
  590. package/dist/patterns/metadata/metadata-filter-builder.js +3 -9
  591. package/dist/patterns/metadata/metadata-inspector.d.ts +2 -2
  592. package/dist/patterns/metadata/metadata-inspector.js +3 -9
  593. package/dist/patterns/notifications/index.d.ts +3 -0
  594. package/dist/patterns/notifications/index.js +6 -0
  595. package/dist/patterns/notifications/notification-bell.d.ts +38 -0
  596. package/dist/patterns/notifications/notification-bell.js +198 -0
  597. package/dist/patterns/notifications/notification-inbox.d.ts +46 -0
  598. package/dist/patterns/notifications/notification-inbox.js +537 -0
  599. package/dist/patterns/notifications/types.d.ts +61 -0
  600. package/dist/patterns/notifications/types.js +108 -0
  601. package/dist/patterns/preview/annotation-inspector.d.ts +27 -8
  602. package/dist/patterns/preview/annotation-inspector.js +242 -103
  603. package/dist/patterns/preview/annotation-thread.d.ts +27 -7
  604. package/dist/patterns/preview/annotation-thread.js +236 -91
  605. package/dist/patterns/preview/annotation-toolbar.d.ts +22 -8
  606. package/dist/patterns/preview/annotation-toolbar.js +165 -105
  607. package/dist/patterns/preview/content-preview-adapter.d.ts +10 -1
  608. package/dist/patterns/preview/content-preview-adapter.js +26 -1
  609. package/dist/patterns/preview/preview-element.d.ts +17 -4
  610. package/dist/patterns/preview/preview-element.js +226 -61
  611. package/dist/patterns/preview/provider-adapter.d.ts +47 -0
  612. package/dist/patterns/preview/provider-adapter.js +17 -0
  613. package/dist/patterns/run/index.d.ts +2 -0
  614. package/dist/patterns/run/index.js +4 -0
  615. package/dist/patterns/run/run-trace.d.ts +40 -0
  616. package/dist/patterns/run/run-trace.js +441 -0
  617. package/dist/patterns/run/types.d.ts +66 -0
  618. package/dist/patterns/run/types.js +152 -0
  619. package/dist/patterns/search/filter-bar.d.ts +2 -2
  620. package/dist/patterns/search/filter-bar.js +3 -9
  621. package/dist/patterns/search/saved-view-picker.d.ts +2 -2
  622. package/dist/patterns/search/saved-view-picker.js +3 -9
  623. package/dist/patterns/search/search-results-header.d.ts +2 -2
  624. package/dist/patterns/search/search-results-header.js +3 -9
  625. package/dist/patterns/share/access-stats.d.ts +2 -2
  626. package/dist/patterns/share/access-stats.js +3 -9
  627. package/dist/patterns/share/collaborator-avatars.d.ts +2 -2
  628. package/dist/patterns/share/collaborator-avatars.js +3 -9
  629. package/dist/patterns/share/invite-collaborators-modal.d.ts +2 -2
  630. package/dist/patterns/share/invite-collaborators-modal.js +3 -9
  631. package/dist/patterns/share/permission-matrix.d.ts +2 -2
  632. package/dist/patterns/share/permission-matrix.js +3 -9
  633. package/dist/patterns/share/presence.d.ts +2 -2
  634. package/dist/patterns/share/presence.js +3 -9
  635. package/dist/patterns/share/share-panel.d.ts +2 -2
  636. package/dist/patterns/share/share-panel.js +3 -9
  637. package/dist/patterns/share/unified-share-modal.d.ts +2 -2
  638. package/dist/patterns/share/unified-share-modal.js +3 -9
  639. package/dist/patterns/signature/index.d.ts +2 -0
  640. package/dist/patterns/signature/index.js +4 -0
  641. package/dist/patterns/signature/signature-ceremony.d.ts +33 -0
  642. package/dist/patterns/signature/signature-ceremony.js +317 -0
  643. package/dist/patterns/signature/types.d.ts +68 -0
  644. package/dist/patterns/signature/types.js +89 -0
  645. package/dist/patterns/task/review-queue-item.d.ts +2 -2
  646. package/dist/patterns/task/review-queue-item.js +3 -6
  647. package/dist/patterns/task/task-assignment-panel.d.ts +2 -2
  648. package/dist/patterns/task/task-assignment-panel.js +3 -6
  649. package/dist/patterns/timeline/index.d.ts +2 -0
  650. package/dist/patterns/timeline/index.js +4 -0
  651. package/dist/patterns/timeline/timeline.d.ts +27 -0
  652. package/dist/patterns/timeline/timeline.js +430 -0
  653. package/dist/patterns/timeline/types.d.ts +36 -0
  654. package/dist/patterns/timeline/types.js +27 -0
  655. package/dist/patterns/versions/graph-layout.d.ts +43 -0
  656. package/dist/patterns/versions/graph-layout.js +159 -0
  657. package/dist/patterns/versions/index.d.ts +4 -0
  658. package/dist/patterns/versions/index.js +8 -0
  659. package/dist/patterns/versions/shared.d.ts +4 -0
  660. package/dist/patterns/versions/shared.js +13 -0
  661. package/dist/patterns/versions/types.d.ts +37 -0
  662. package/dist/patterns/versions/types.js +39 -0
  663. package/dist/patterns/versions/version-graph.d.ts +36 -0
  664. package/dist/patterns/versions/version-graph.js +438 -0
  665. package/dist/patterns/versions/version-list.d.ts +39 -0
  666. package/dist/patterns/versions/version-list.js +407 -0
  667. package/dist/patterns/work-queue/controller.d.ts +26 -0
  668. package/dist/patterns/work-queue/controller.js +150 -0
  669. package/dist/patterns/work-queue/index.d.ts +4 -0
  670. package/dist/patterns/work-queue/index.js +7 -0
  671. package/dist/patterns/work-queue/types.d.ts +128 -0
  672. package/dist/patterns/work-queue/types.js +45 -0
  673. package/dist/patterns/work-queue/work-queue.d.ts +48 -0
  674. package/dist/patterns/work-queue/work-queue.js +534 -0
  675. package/dist/patterns/work-queue/workload-board.d.ts +53 -0
  676. package/dist/patterns/work-queue/workload-board.js +608 -0
  677. package/package.json +93 -5
@@ -1,3 +1,4 @@
1
+ import { resolvePreviewStatus, } from "./provider-adapter.js";
1
2
  import { BaseElement } from "../../core/index.js";
2
3
  import { boePanel } from "../../foundations/geometry/index.js";
3
4
  const DEFAULT_TAG_NAME = "box-preview-element";
@@ -19,6 +20,7 @@ const elementStyles = `
19
20
  --_obp-text-muted: var(--boe-token-text-text-secondary, #6f6f6f);
20
21
  --_obp-brand: var(--boe-token-surface-surface-brand, #0061d5);
21
22
  --_obp-brand-soft: color-mix(in srgb, var(--_obp-brand) 12%, var(--boe-token-surface-surface, #ffffff) 88%);
23
+ --_obp-error: var(--boe-token-surface-status-surface-error, #ed3757);
22
24
  }
23
25
 
24
26
  [part="shell"] {
@@ -58,6 +60,20 @@ const elementStyles = `
58
60
  text-transform: uppercase;
59
61
  }
60
62
 
63
+ [part="status"][data-status="error"] {
64
+ background: color-mix(in srgb, var(--_obp-error) 14%, var(--_obp-surface) 86%);
65
+ color: var(--_obp-error);
66
+ }
67
+
68
+ [part="error"] {
69
+ margin: 0;
70
+ padding: 0.5rem 0.7rem;
71
+ border: 1px solid color-mix(in srgb, var(--_obp-error) 50%, #fff);
72
+ border-radius: 8px;
73
+ background: color-mix(in srgb, var(--_obp-error) 10%, #fff);
74
+ color: inherit;
75
+ }
76
+
61
77
  [part="adapter-meta"],
62
78
  [part="capabilities"] {
63
79
  display: flex;
@@ -105,7 +121,8 @@ const elementStyles = `
105
121
  gap: 0.5rem;
106
122
  }
107
123
 
108
- [part="action"] {
124
+ [part="action"],
125
+ [part="control"] {
109
126
  appearance: none;
110
127
  min-height: 2rem;
111
128
  padding: 0.4rem 0.7rem;
@@ -123,6 +140,24 @@ const elementStyles = `
123
140
  color: var(--boe-token-text-text-on-brand, #ffffff);
124
141
  }
125
142
 
143
+ [part="control"]:disabled {
144
+ opacity: 0.5;
145
+ cursor: not-allowed;
146
+ }
147
+
148
+ [part="controls"] {
149
+ display: flex;
150
+ flex-wrap: wrap;
151
+ align-items: center;
152
+ gap: 0.45rem;
153
+ }
154
+
155
+ [part="control-readout"] {
156
+ color: var(--_obp-text-muted);
157
+ font-size: 0.85rem;
158
+ font-variant-numeric: tabular-nums;
159
+ }
160
+
126
161
  [part="toolbar"] {
127
162
  display: block;
128
163
  }
@@ -134,6 +169,10 @@ const elementStyles = `
134
169
  align-items: start;
135
170
  }
136
171
 
172
+ [part="workspace"][data-sidebar="empty"] {
173
+ grid-template-columns: minmax(0, 1fr);
174
+ }
175
+
137
176
  [part="stage"] {
138
177
  min-block-size: 13rem;
139
178
  border: 1px solid var(--_obp-border-subtle);
@@ -142,11 +181,28 @@ const elementStyles = `
142
181
  overflow: hidden;
143
182
  }
144
183
 
184
+ [part="stage"][aria-busy="true"] {
185
+ opacity: 0.7;
186
+ }
187
+
188
+ [part="stage-mount"] {
189
+ width: 100%;
190
+ height: 100%;
191
+ }
192
+
193
+ [part="stage-mount"][hidden] {
194
+ display: none;
195
+ }
196
+
145
197
  [part="sidebar"] {
146
198
  display: grid;
147
199
  gap: 0.6rem;
148
200
  }
149
201
 
202
+ [part="workspace"][data-sidebar="empty"] [part="sidebar"] {
203
+ display: none;
204
+ }
205
+
150
206
  ::slotted([slot="toolbar"]) {
151
207
  display: block;
152
208
  }
@@ -167,9 +223,11 @@ const elementStyles = `
167
223
  }
168
224
  }
169
225
  `;
170
- export class BoxPreviewElement extends BaseElement {
226
+ export class Preview extends BaseElement {
227
+ static tagName = DEFAULT_TAG_NAME;
171
228
  providerAdapterValue = null;
172
229
  providerAdapterUnsubscribe = null;
230
+ adapterMounted = false;
173
231
  static get observedAttributes() {
174
232
  return ["actions", "adapter-state", "item-label", "message", "provider", "provider-label", "status", "heading"];
175
233
  }
@@ -251,12 +309,8 @@ export class BoxPreviewElement extends BaseElement {
251
309
  set providerAdapter(value) {
252
310
  this.teardownProviderAdapter();
253
311
  this.providerAdapterValue = value;
254
- if (value?.subscribe) {
255
- this.providerAdapterUnsubscribe = value.subscribe(() => {
256
- if (this.isRendered) {
257
- this.update();
258
- }
259
- });
312
+ if (this.isConnected) {
313
+ this.attachProviderAdapter();
260
314
  }
261
315
  if (this.isRendered) {
262
316
  this.update();
@@ -264,13 +318,16 @@ export class BoxPreviewElement extends BaseElement {
264
318
  }
265
319
  connectedCallback() {
266
320
  super.connectedCallback();
321
+ // Re-attach after a detach: disconnectedCallback tears the subscription and
322
+ // mount down, so a reconnect must restore both or the element goes stale.
323
+ this.attachProviderAdapter();
324
+ if (this.isRendered) {
325
+ this.update();
326
+ }
267
327
  }
268
328
  disconnectedCallback() {
269
329
  this.teardownProviderAdapter();
270
330
  }
271
- attributeChangedCallback(name, oldValue, newValue) {
272
- super.attributeChangedCallback(name, oldValue, newValue);
273
- }
274
331
  parseJsonAttribute(name, fallback) {
275
332
  const raw = this.getAttribute(name);
276
333
  if (!raw) {
@@ -283,9 +340,36 @@ export class BoxPreviewElement extends BaseElement {
283
340
  return fallback;
284
341
  }
285
342
  }
343
+ attachProviderAdapter() {
344
+ const adapter = this.providerAdapterValue;
345
+ if (!adapter) {
346
+ return;
347
+ }
348
+ if (adapter.subscribe && !this.providerAdapterUnsubscribe) {
349
+ this.providerAdapterUnsubscribe = adapter.subscribe(() => {
350
+ if (this.isRendered) {
351
+ this.update();
352
+ }
353
+ });
354
+ }
355
+ const mountNode = this.shadowRoot?.querySelector('[part="stage-mount"]');
356
+ if (adapter.mount && mountNode && !this.adapterMounted) {
357
+ mountNode.hidden = false;
358
+ adapter.mount(mountNode);
359
+ this.adapterMounted = true;
360
+ }
361
+ }
286
362
  teardownProviderAdapter() {
287
363
  this.providerAdapterUnsubscribe?.();
288
364
  this.providerAdapterUnsubscribe = null;
365
+ if (this.adapterMounted) {
366
+ this.providerAdapterValue?.unmount?.();
367
+ this.adapterMounted = false;
368
+ const mountNode = this.shadowRoot?.querySelector('[part="stage-mount"]');
369
+ if (mountNode) {
370
+ mountNode.hidden = true;
371
+ }
372
+ }
289
373
  }
290
374
  getActiveProvider() {
291
375
  return this.providerAdapterValue?.getProvider() ?? this.provider;
@@ -302,13 +386,39 @@ export class BoxPreviewElement extends BaseElement {
302
386
  provider,
303
387
  providerId: provider?.id ?? null,
304
388
  };
305
- void this.providerAdapterValue?.performAction?.(detail);
389
+ Promise.resolve(this.providerAdapterValue?.performAction?.(detail)).catch((error) => {
390
+ this.dispatchEvent(new CustomEvent("action-error", {
391
+ bubbles: true,
392
+ composed: true,
393
+ detail: {
394
+ action: actionId,
395
+ message: error instanceof Error ? error.message : "Preview action failed",
396
+ },
397
+ }));
398
+ });
306
399
  this.dispatchEvent(new CustomEvent("action", {
307
400
  bubbles: true,
308
401
  composed: true,
309
402
  detail,
310
403
  }));
311
- this.dispatchEvent(new CustomEvent("provider-action", {
404
+ }
405
+ emitCommand(command) {
406
+ const provider = this.getActiveProvider();
407
+ const detail = {
408
+ command,
409
+ providerId: provider?.id ?? null,
410
+ };
411
+ Promise.resolve(this.providerAdapterValue?.sendCommand?.(command)).catch((error) => {
412
+ this.dispatchEvent(new CustomEvent("action-error", {
413
+ bubbles: true,
414
+ composed: true,
415
+ detail: {
416
+ action: command.command,
417
+ message: error instanceof Error ? error.message : "Preview command failed",
418
+ },
419
+ }));
420
+ });
421
+ this.dispatchEvent(new CustomEvent("command", {
312
422
  bubbles: true,
313
423
  composed: true,
314
424
  detail,
@@ -318,11 +428,58 @@ export class BoxPreviewElement extends BaseElement {
318
428
  if (!this.shadowRoot) {
319
429
  return;
320
430
  }
431
+ // Stable skeleton: the chrome host is re-rendered per update, while the
432
+ // workspace (adapter mount node + slots) keeps node identity so mounted
433
+ // preview engines and slotted content survive chrome updates.
321
434
  this.shadowRoot.innerHTML = `
322
435
  <style>${elementStyles}</style>
323
- <div part="content-host"></div>
436
+ <article part="shell">
437
+ <div part="content-host"></div>
438
+ <div part="toolbar">
439
+ <slot name="toolbar"></slot>
440
+ </div>
441
+ <div part="workspace" data-sidebar="empty">
442
+ <div part="stage">
443
+ <div part="stage-mount" hidden></div>
444
+ <slot name="stage"></slot>
445
+ </div>
446
+ <aside part="sidebar">
447
+ <slot name="sidebar"></slot>
448
+ </aside>
449
+ </div>
450
+ </article>
324
451
  `;
325
452
  }
453
+ setupListeners() {
454
+ if (!this.shadowRoot) {
455
+ return;
456
+ }
457
+ // Delegated once — chrome re-renders never re-bind listeners.
458
+ this.shadowRoot.querySelector('[part="content-host"]')?.addEventListener("click", event => {
459
+ const target = event.target.closest("[data-action-id], [data-command]");
460
+ if (!target || target.disabled) {
461
+ return;
462
+ }
463
+ const actionId = target.getAttribute("data-action-id");
464
+ if (actionId) {
465
+ this.emitAction(actionId);
466
+ return;
467
+ }
468
+ const command = target.getAttribute("data-command");
469
+ if (command) {
470
+ this.emitCommand({ command });
471
+ }
472
+ });
473
+ const sidebarSlot = this.shadowRoot.querySelector('slot[name="sidebar"]');
474
+ const workspace = this.shadowRoot.querySelector('[part="workspace"]');
475
+ const syncSidebar = () => {
476
+ const hasContent = (sidebarSlot?.assignedNodes({ flatten: true }) ?? []).some(node => node.nodeType === Node.ELEMENT_NODE || (node.textContent ?? "").trim() !== "");
477
+ workspace?.setAttribute("data-sidebar", hasContent ? "filled" : "empty");
478
+ };
479
+ sidebarSlot?.addEventListener("slotchange", syncSidebar);
480
+ syncSidebar();
481
+ this.attachProviderAdapter();
482
+ }
326
483
  update() {
327
484
  if (!this.shadowRoot) {
328
485
  return;
@@ -330,8 +487,15 @@ export class BoxPreviewElement extends BaseElement {
330
487
  const provider = this.getActiveProvider();
331
488
  const adapterState = this.getActiveAdapterState();
332
489
  const providerLabel = provider?.label ?? this.providerLabel;
333
- const providerStatus = provider?.status ?? this.status;
334
- const statusMarkup = providerStatus ? `<span part="status">${escapeHtml(providerStatus)}</span>` : "";
490
+ const lifecycle = resolvePreviewStatus(adapterState);
491
+ const statusLabel = provider?.status ?? this.status ?? "";
492
+ const statusText = statusLabel || (adapterState ? lifecycle : "");
493
+ const statusMarkup = statusText
494
+ ? `<span part="status" role="status" data-status="${escapeHtml(lifecycle)}">${escapeHtml(statusText)}</span>`
495
+ : "";
496
+ const errorMarkup = lifecycle === "error"
497
+ ? `<p part="error" role="alert">${escapeHtml(adapterState?.errorMessage ?? "Preview failed to load.")}</p>`
498
+ : "";
335
499
  const messageMarkup = this.message ? `<div part="message">${escapeHtml(this.message)}</div>` : "";
336
500
  const providerMarkup = providerLabel ? `<span part="provider">${escapeHtml(providerLabel)}</span>` : "";
337
501
  const itemMarkup = this.itemLabel ? `<div part="item-label">${escapeHtml(this.itemLabel)}</div>` : "";
@@ -345,9 +509,6 @@ export class BoxPreviewElement extends BaseElement {
345
509
  ${adapterState.currentAnnotationId
346
510
  ? `<span part="adapter-chip">${escapeHtml(`Annotation ${adapterState.currentAnnotationId}`)}</span>`
347
511
  : ""}
348
- ${typeof adapterState.ready === "boolean"
349
- ? `<span part="adapter-chip">${adapterState.ready ? "Ready" : "Connecting"}</span>`
350
- : ""}
351
512
  </div>
352
513
  `
353
514
  : "";
@@ -358,6 +519,7 @@ export class BoxPreviewElement extends BaseElement {
358
519
  </div>
359
520
  `
360
521
  : "";
522
+ const controlsMarkup = this.renderControls(adapterState);
361
523
  const actionsMarkup = this.actions.length
362
524
  ? `
363
525
  <div part="actions">
@@ -381,49 +543,52 @@ export class BoxPreviewElement extends BaseElement {
381
543
  return;
382
544
  }
383
545
  host.innerHTML = `
384
- <article part="shell">
385
- <div part="topline">
386
- <div part="topline-meta">
387
- ${providerMarkup}
388
- ${statusMarkup}
389
- </div>
390
- ${actionsMarkup}
391
- </div>
392
- <header part="header">
393
- <h2 part="title">${escapeHtml(this.heading)}</h2>
394
- ${itemMarkup}
395
- ${messageMarkup}
396
- ${adapterMarkup}
397
- ${capabilityMarkup}
398
- </header>
399
- <div part="toolbar">
400
- <slot name="toolbar"></slot>
546
+ <div part="topline">
547
+ <div part="topline-meta">
548
+ ${providerMarkup}
549
+ ${statusMarkup}
401
550
  </div>
402
- <div part="workspace">
403
- <div part="stage">
404
- <slot name="stage"></slot>
405
- </div>
406
- <aside part="sidebar">
407
- <slot name="sidebar"></slot>
408
- </aside>
409
- </div>
410
- </article>
551
+ ${actionsMarkup}
552
+ </div>
553
+ <header part="header">
554
+ <h2 part="title">${escapeHtml(this.heading)}</h2>
555
+ ${itemMarkup}
556
+ ${messageMarkup}
557
+ ${errorMarkup}
558
+ ${adapterMarkup}
559
+ ${capabilityMarkup}
560
+ ${controlsMarkup}
561
+ </header>
411
562
  `;
412
- this.shadowRoot.querySelectorAll('[part="action"]').forEach(button => {
413
- button.addEventListener("click", () => {
414
- const actionId = button.getAttribute("data-action-id");
415
- if (actionId) {
416
- this.emitAction(actionId);
417
- }
418
- });
419
- });
563
+ const stage = this.shadowRoot.querySelector('[part="stage"]');
564
+ stage?.setAttribute("aria-busy", lifecycle === "loading" ? "true" : "false");
565
+ }
566
+ /**
567
+ * Paging/zoom controls render only when the adapter accepts commands and the
568
+ * state carries the numeric fields to drive them.
569
+ */
570
+ renderControls(adapterState) {
571
+ if (!this.providerAdapterValue?.sendCommand || !adapterState) {
572
+ return "";
573
+ }
574
+ const segments = [];
575
+ if (typeof adapterState.page === "number" && typeof adapterState.pageCount === "number") {
576
+ const atFirst = adapterState.page <= 1;
577
+ const atLast = adapterState.page >= adapterState.pageCount;
578
+ segments.push(`
579
+ <button type="button" part="control" data-command="previous-page" aria-label="Previous page" ${atFirst ? "disabled" : ""}>&#8249;</button>
580
+ <span part="control-readout">Page ${adapterState.page} of ${adapterState.pageCount}</span>
581
+ <button type="button" part="control" data-command="next-page" aria-label="Next page" ${atLast ? "disabled" : ""}>&#8250;</button>
582
+ `);
583
+ }
584
+ if (typeof adapterState.zoomPercent === "number") {
585
+ segments.push(`
586
+ <button type="button" part="control" data-command="zoom-out" aria-label="Zoom out">&#8722;</button>
587
+ <span part="control-readout">${Math.round(adapterState.zoomPercent)}%</span>
588
+ <button type="button" part="control" data-command="zoom-in" aria-label="Zoom in">&#43;</button>
589
+ `);
590
+ }
591
+ return segments.length ? `<div part="controls" aria-label="Preview controls">${segments.join("")}</div>` : "";
420
592
  }
421
593
  }
422
- export const defineBoxPreviewElement = (tagName = DEFAULT_TAG_NAME) => {
423
- const existingElement = customElements.get(tagName);
424
- if (existingElement) {
425
- return existingElement;
426
- }
427
- customElements.define(tagName, BoxPreviewElement);
428
- return BoxPreviewElement;
429
- };
594
+ Preview.register();
@@ -5,13 +5,49 @@ export type PreviewProvider = {
5
5
  label: string;
6
6
  status?: string;
7
7
  };
8
+ /** Lifecycle of the previewed content, from nothing loaded to failure. */
9
+ export type PreviewStatus = "idle" | "loading" | "ready" | "error";
8
10
  export type PreviewAdapterState = {
9
11
  currentAnnotationId?: string;
10
12
  mode?: string;
13
+ /** Display-only label; prefer the numeric `page`/`pageCount` when driving UI. */
11
14
  pageLabel?: string;
15
+ /** Legacy readiness flag; prefer `status`. Kept for adapter compatibility. */
12
16
  ready?: boolean;
13
17
  selectionLabel?: string;
18
+ /** Display-only label; prefer the numeric `zoomPercent` when driving UI. */
14
19
  zoomLabel?: string;
20
+ /** Content lifecycle. When absent, derived from `ready` (see resolvePreviewStatus). */
21
+ status?: PreviewStatus;
22
+ /** Human-readable failure description; render when `status` is "error". */
23
+ errorMessage?: string;
24
+ /** 1-based current page for paged content. */
25
+ page?: number;
26
+ pageCount?: number;
27
+ /** Zoom level as a percentage (100 = actual size). */
28
+ zoomPercent?: number;
29
+ };
30
+ /**
31
+ * Effective lifecycle for a state object: an explicit `status` wins; otherwise
32
+ * the legacy `ready` flag maps true→ready / false→loading; no state → idle.
33
+ */
34
+ export declare const resolvePreviewStatus: (state: PreviewAdapterState | null | undefined) => PreviewStatus;
35
+ /**
36
+ * A typed command the host UI sends INTO the preview engine. Known commands
37
+ * carry their payload shape; the string fallback keeps the channel open for
38
+ * engine-specific extensions.
39
+ */
40
+ export type PreviewCommand = {
41
+ command: "next-page" | "previous-page" | "zoom-in" | "zoom-out" | "toggle-fullscreen" | "download" | "print";
42
+ } | {
43
+ command: "go-to-page";
44
+ value: number;
45
+ } | {
46
+ command: "set-zoom";
47
+ value: number;
48
+ } | {
49
+ command: string;
50
+ value?: unknown;
15
51
  };
16
52
  export type PreviewProviderActionDetail = {
17
53
  action: string;
@@ -24,6 +60,16 @@ export type PreviewProviderAdapter = {
24
60
  getState: () => PreviewAdapterState | null;
25
61
  performAction?: (detail: PreviewProviderActionDetail) => void | Promise<void>;
26
62
  subscribe?: (listener: () => void) => () => void;
63
+ /**
64
+ * Hand the adapter a stable container to render the preview engine into.
65
+ * `box-preview-element` calls this with its stage node when present; the
66
+ * node survives shell re-renders, so mounted DOM is never destroyed by
67
+ * chrome updates.
68
+ */
69
+ mount?: (container: HTMLElement) => void;
70
+ unmount?: () => void;
71
+ /** Drive the engine (paging, zoom, download, …) with a typed command. */
72
+ sendCommand?: (command: PreviewCommand) => void | Promise<void>;
27
73
  };
28
74
  export type StaticPreviewProviderAdapter = PreviewProviderAdapter & {
29
75
  setProvider: (provider: PreviewProvider | null) => void;
@@ -31,6 +77,7 @@ export type StaticPreviewProviderAdapter = PreviewProviderAdapter & {
31
77
  };
32
78
  export declare const createStaticPreviewProviderAdapter: (config: {
33
79
  onAction?: (detail: PreviewProviderActionDetail) => void | Promise<void>;
80
+ onCommand?: (command: PreviewCommand) => void | Promise<void>;
34
81
  provider?: PreviewProvider | null;
35
82
  state?: PreviewAdapterState | null;
36
83
  }) => StaticPreviewProviderAdapter;
@@ -1,3 +1,19 @@
1
+ /**
2
+ * Effective lifecycle for a state object: an explicit `status` wins; otherwise
3
+ * the legacy `ready` flag maps true→ready / false→loading; no state → idle.
4
+ */
5
+ export const resolvePreviewStatus = (state) => {
6
+ if (!state) {
7
+ return "idle";
8
+ }
9
+ if (state.status) {
10
+ return state.status;
11
+ }
12
+ if (typeof state.ready === "boolean") {
13
+ return state.ready ? "ready" : "loading";
14
+ }
15
+ return "idle";
16
+ };
1
17
  export const createStaticPreviewProviderAdapter = (config) => {
2
18
  let provider = config.provider ?? null;
3
19
  let state = config.state ?? null;
@@ -11,6 +27,7 @@ export const createStaticPreviewProviderAdapter = (config) => {
11
27
  getProvider: () => provider,
12
28
  getState: () => state,
13
29
  performAction: config.onAction,
30
+ ...(config.onCommand ? { sendCommand: config.onCommand } : {}),
14
31
  setProvider(nextProvider) {
15
32
  provider = nextProvider;
16
33
  notify();
@@ -0,0 +1,2 @@
1
+ export * from "./types.js";
2
+ export * from "./run-trace.js";
@@ -0,0 +1,4 @@
1
+ // Run model, rules, and validation
2
+ export * from "./types.js";
3
+ // Machine execution trace surface
4
+ export * from "./run-trace.js";
@@ -0,0 +1,40 @@
1
+ import type { RunResolution, RunStep, RunStepStatus } from "./types.js";
2
+ import { BaseElement } from "../../core/index.js";
3
+ /** Every status in words — colour never carries the meaning alone. */
4
+ export declare const RUN_STEP_STATUS_LABEL: Record<RunStepStatus, string>;
5
+ /**
6
+ * Machine execution trace: a job, pipeline, or agent run, top-down. The
7
+ * rules live in `resolveRunSteps` (pure), the same way `resolveCeremony`
8
+ * backs the signature card: an explicit status wins, a failure shadows the
9
+ * queue behind it as skipped, timestamps derive running/succeeded, and the
10
+ * host can drive its notifications from the identical function.
11
+ *
12
+ * Deliberately not `box-timeline` (the human activity feed): a run reads
13
+ * forward, has one step in flight, and takes no comments.
14
+ *
15
+ * The summary chip doubles as a polite status region, so a run driven by
16
+ * attribute updates announces "Running Deploy — step 3 of 5" → "Completed"
17
+ * without extra wiring. Per-step detail expands in place: `description`
18
+ * plus a `detail-<id>` slot for rich host content, plus child tasks with
19
+ * live `box-progress-bar` rows.
20
+ */
21
+ export declare class RunTrace extends BaseElement {
22
+ static readonly tagName: string;
23
+ static get observedAttributes(): string[];
24
+ private hostEl;
25
+ private stepsRaw;
26
+ private stepsCache;
27
+ private readonly expandedIds;
28
+ get heading(): string;
29
+ set heading(value: string);
30
+ get steps(): RunStep[];
31
+ set steps(value: RunStep[]);
32
+ /** The resolved run — same object the render uses. */
33
+ get resolution(): RunResolution;
34
+ /** Ids of the steps whose detail is expanded (host-readable). */
35
+ get expandedSteps(): string[];
36
+ protected renderTemplate(): void;
37
+ protected setupListeners(): void;
38
+ private childrenMarkup;
39
+ protected update(): void;
40
+ }