@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
@@ -0,0 +1,276 @@
1
+ /**
2
+ * LCS matching cap. Above this many DP cells the middle of the comparison is
3
+ * treated as a whole replacement instead — O(n·m) memory on arbitrary input
4
+ * is not acceptable for an element attribute, and a clause-sized document
5
+ * never gets near the cap.
6
+ */
7
+ const MAX_LCS_CELLS = 400_000;
8
+ /** Generic LCS-based edit script over two arrays. */
9
+ const editScript = (a, b) => {
10
+ // Trim the common prefix/suffix first — it keeps the DP small for the
11
+ // typical "one clause edited in a long document" case.
12
+ let start = 0;
13
+ while (start < a.length && start < b.length && a[start] === b[start]) {
14
+ start += 1;
15
+ }
16
+ let endA = a.length;
17
+ let endB = b.length;
18
+ while (endA > start && endB > start && a[endA - 1] === b[endB - 1]) {
19
+ endA -= 1;
20
+ endB -= 1;
21
+ }
22
+ const middleA = a.slice(start, endA);
23
+ const middleB = b.slice(start, endB);
24
+ const ops = [];
25
+ if (start > 0) {
26
+ ops.push({ kind: "equal", items: a.slice(0, start) });
27
+ }
28
+ if (middleA.length === 0 && middleB.length === 0) {
29
+ // Nothing between prefix and suffix.
30
+ }
31
+ else if (middleA.length === 0) {
32
+ ops.push({ kind: "added", items: middleB });
33
+ }
34
+ else if (middleB.length === 0) {
35
+ ops.push({ kind: "removed", items: middleA });
36
+ }
37
+ else if (middleA.length * middleB.length > MAX_LCS_CELLS) {
38
+ ops.push({ kind: "removed", items: middleA });
39
+ ops.push({ kind: "added", items: middleB });
40
+ }
41
+ else {
42
+ const m = middleA.length;
43
+ const n = middleB.length;
44
+ const dp = Array.from({ length: m + 1 }, () => new Array(n + 1).fill(0));
45
+ for (let i = m - 1; i >= 0; i -= 1) {
46
+ for (let j = n - 1; j >= 0; j -= 1) {
47
+ dp[i][j] =
48
+ middleA[i] === middleB[j]
49
+ ? dp[i + 1][j + 1] + 1
50
+ : Math.max(dp[i + 1][j], dp[i][j + 1]);
51
+ }
52
+ }
53
+ let i = 0;
54
+ let j = 0;
55
+ const push = (kind, item) => {
56
+ const last = ops[ops.length - 1];
57
+ if (last && last.kind === kind) {
58
+ last.items.push(item);
59
+ }
60
+ else {
61
+ ops.push({ kind, items: [item] });
62
+ }
63
+ };
64
+ while (i < m && j < n) {
65
+ if (middleA[i] === middleB[j]) {
66
+ push("equal", middleA[i]);
67
+ i += 1;
68
+ j += 1;
69
+ }
70
+ else if (dp[i + 1][j] >= dp[i][j + 1]) {
71
+ push("removed", middleA[i]);
72
+ i += 1;
73
+ }
74
+ else {
75
+ push("added", middleB[j]);
76
+ j += 1;
77
+ }
78
+ }
79
+ while (i < m) {
80
+ push("removed", middleA[i]);
81
+ i += 1;
82
+ }
83
+ while (j < n) {
84
+ push("added", middleB[j]);
85
+ j += 1;
86
+ }
87
+ }
88
+ if (endA < a.length) {
89
+ ops.push({ kind: "equal", items: a.slice(endA) });
90
+ }
91
+ return ops;
92
+ };
93
+ /** Split into word/whitespace tokens so joins reproduce the exact line. */
94
+ const tokenize = (line) => line.split(/(\s+)/).filter(token => token.length > 0);
95
+ const mergeSegments = (segments) => {
96
+ // Whitespace-only equal runs between two same-kind change runs read as
97
+ // noise ("a b c" → three separate marks); absorb them into the change.
98
+ const absorbed = [];
99
+ for (let index = 0; index < segments.length; index += 1) {
100
+ const segment = segments[index];
101
+ const previous = segments[index - 1];
102
+ const next = segments[index + 1];
103
+ if (segment.kind === "equal" &&
104
+ segment.text.trim() === "" &&
105
+ previous &&
106
+ next &&
107
+ previous.kind !== "equal" &&
108
+ previous.kind === next.kind) {
109
+ absorbed.push({ kind: previous.kind, text: segment.text });
110
+ }
111
+ else {
112
+ absorbed.push(segment);
113
+ }
114
+ }
115
+ const merged = [];
116
+ for (const segment of absorbed) {
117
+ const last = merged[merged.length - 1];
118
+ if (last && last.kind === segment.kind) {
119
+ last.text += segment.text;
120
+ }
121
+ else {
122
+ merged.push({ ...segment });
123
+ }
124
+ }
125
+ return merged;
126
+ };
127
+ /**
128
+ * Word-level runs for one changed line pair: the before side carries
129
+ * equal/removed segments, the after side equal/added.
130
+ */
131
+ export const computeInlineSegments = (before, after) => {
132
+ const ops = editScript(tokenize(before), tokenize(after));
133
+ const beforeSegments = [];
134
+ const afterSegments = [];
135
+ for (const op of ops) {
136
+ const text = op.items.join("");
137
+ if (op.kind === "equal") {
138
+ beforeSegments.push({ kind: "equal", text });
139
+ afterSegments.push({ kind: "equal", text });
140
+ }
141
+ else if (op.kind === "removed") {
142
+ beforeSegments.push({ kind: "removed", text });
143
+ }
144
+ else {
145
+ afterSegments.push({ kind: "added", text });
146
+ }
147
+ }
148
+ return { before: mergeSegments(beforeSegments), after: mergeSegments(afterSegments) };
149
+ };
150
+ /** True when a removed/added line pair is similar enough to render as one changed row. */
151
+ const isChangedPair = (before, after) => {
152
+ if (before === after) {
153
+ return true;
154
+ }
155
+ const segments = computeInlineSegments(before, after);
156
+ const equalLength = segments.after
157
+ .filter(segment => segment.kind === "equal")
158
+ .reduce((total, segment) => total + segment.text.length, 0);
159
+ const maxLength = Math.max(before.length, after.length);
160
+ return maxLength > 0 && equalLength / maxLength >= 0.3;
161
+ };
162
+ /**
163
+ * Line-level diff of two documents. Adjacent removed/added runs are paired
164
+ * into `changed` rows (with word-level segments) when the lines are similar
165
+ * enough; otherwise they stay as distinct removals and additions.
166
+ */
167
+ export const computeTextDiff = (before, after) => {
168
+ // Normalize EOL styles first — two documents differing only in CRLF vs LF
169
+ // must not read as a full-document replacement.
170
+ const toLines = (text) => text.length ? text.replaceAll("\r\n", "\n").replaceAll("\r", "\n").split("\n") : [];
171
+ const beforeLines = toLines(before);
172
+ const afterLines = toLines(after);
173
+ const ops = editScript(beforeLines, afterLines);
174
+ const rows = [];
175
+ const stats = { added: 0, removed: 0, changed: 0 };
176
+ let beforeNumber = 1;
177
+ let afterNumber = 1;
178
+ let index = 0;
179
+ while (index < ops.length) {
180
+ const op = ops[index];
181
+ if (op.kind === "equal") {
182
+ for (const text of op.items) {
183
+ rows.push({
184
+ kind: "equal",
185
+ before: { number: beforeNumber, text },
186
+ after: { number: afterNumber, text },
187
+ });
188
+ beforeNumber += 1;
189
+ afterNumber += 1;
190
+ }
191
+ index += 1;
192
+ continue;
193
+ }
194
+ // A removed run directly followed by an added run pairs line-by-line.
195
+ const next = ops[index + 1];
196
+ if (op.kind === "removed" && next?.kind === "added") {
197
+ const removed = op.items;
198
+ const added = next.items;
199
+ const paired = Math.min(removed.length, added.length);
200
+ for (let pair = 0; pair < paired; pair += 1) {
201
+ const beforeText = removed[pair];
202
+ const afterText = added[pair];
203
+ if (isChangedPair(beforeText, afterText)) {
204
+ const segments = computeInlineSegments(beforeText, afterText);
205
+ rows.push({
206
+ kind: "changed",
207
+ before: { number: beforeNumber, text: beforeText, segments: segments.before },
208
+ after: { number: afterNumber, text: afterText, segments: segments.after },
209
+ });
210
+ stats.changed += 1;
211
+ }
212
+ else {
213
+ rows.push({ kind: "removed", before: { number: beforeNumber, text: beforeText } });
214
+ rows.push({ kind: "added", after: { number: afterNumber, text: afterText } });
215
+ stats.removed += 1;
216
+ stats.added += 1;
217
+ }
218
+ beforeNumber += 1;
219
+ afterNumber += 1;
220
+ }
221
+ for (let rest = paired; rest < removed.length; rest += 1) {
222
+ rows.push({ kind: "removed", before: { number: beforeNumber, text: removed[rest] } });
223
+ stats.removed += 1;
224
+ beforeNumber += 1;
225
+ }
226
+ for (let rest = paired; rest < added.length; rest += 1) {
227
+ rows.push({ kind: "added", after: { number: afterNumber, text: added[rest] } });
228
+ stats.added += 1;
229
+ afterNumber += 1;
230
+ }
231
+ index += 2;
232
+ continue;
233
+ }
234
+ if (op.kind === "removed") {
235
+ for (const text of op.items) {
236
+ rows.push({ kind: "removed", before: { number: beforeNumber, text } });
237
+ stats.removed += 1;
238
+ beforeNumber += 1;
239
+ }
240
+ }
241
+ else {
242
+ for (const text of op.items) {
243
+ rows.push({ kind: "added", after: { number: afterNumber, text } });
244
+ stats.added += 1;
245
+ afterNumber += 1;
246
+ }
247
+ }
248
+ index += 1;
249
+ }
250
+ const changeRanges = [];
251
+ for (let row = 0; row < rows.length; row += 1) {
252
+ if (rows[row].kind === "equal") {
253
+ continue;
254
+ }
255
+ const start = row;
256
+ while (row + 1 < rows.length && rows[row + 1].kind !== "equal") {
257
+ row += 1;
258
+ }
259
+ changeRanges.push({ start, end: row });
260
+ }
261
+ return { rows, stats, changeRanges };
262
+ };
263
+ /** Compact "+A −R ~C" summary for headers and chips. */
264
+ export const formatDiffStats = (stats) => {
265
+ const parts = [];
266
+ if (stats.added) {
267
+ parts.push(`+${String(stats.added)}`);
268
+ }
269
+ if (stats.removed) {
270
+ parts.push(`−${String(stats.removed)}`);
271
+ }
272
+ if (stats.changed) {
273
+ parts.push(`~${String(stats.changed)}`);
274
+ }
275
+ return parts.length ? parts.join(" ") : "No changes";
276
+ };
@@ -0,0 +1,4 @@
1
+ export * from "./types.js";
2
+ export * from "./engine.js";
3
+ export * from "./diff-viewer.js";
4
+ export * from "./compare-view.js";
@@ -0,0 +1,8 @@
1
+ // Diff model types
2
+ export * from "./types.js";
3
+ // Pure diff engine
4
+ export * from "./engine.js";
5
+ // Composed comparison surface
6
+ export * from "./diff-viewer.js";
7
+ // Scroll-locked side-by-side shell for doc-vs-doc review
8
+ export * from "./compare-view.js";
@@ -0,0 +1,69 @@
1
+ /** A run of text inside one line: unchanged, or part of the delta. */
2
+ export type DiffSegmentKind = "equal" | "added" | "removed";
3
+ export interface DiffSegment {
4
+ kind: DiffSegmentKind;
5
+ text: string;
6
+ }
7
+ /** How an aligned row of the comparison classifies. */
8
+ export type DiffRowKind = "equal" | "added" | "removed" | "changed";
9
+ export interface DiffLine {
10
+ /** 1-based line number in its own document. */
11
+ number: number;
12
+ text: string;
13
+ /** Word-level runs; present on the paired lines of a `changed` row. */
14
+ segments?: DiffSegment[];
15
+ }
16
+ /**
17
+ * One aligned row: `equal` and `changed` rows carry both sides, `removed`
18
+ * only the before side, `added` only the after side. Side-by-side renders
19
+ * the two sides in one grid row; inline mode renders removed then added.
20
+ */
21
+ export interface DiffRow {
22
+ kind: DiffRowKind;
23
+ before?: DiffLine;
24
+ after?: DiffLine;
25
+ }
26
+ export interface DiffStats {
27
+ added: number;
28
+ removed: number;
29
+ changed: number;
30
+ }
31
+ export interface DiffResult {
32
+ rows: DiffRow[];
33
+ stats: DiffStats;
34
+ /**
35
+ * Row-index ranges of consecutive non-equal rows — the navigable "changes"
36
+ * (hunks) the viewer steps through.
37
+ */
38
+ changeRanges: Array<{
39
+ start: number;
40
+ end: number;
41
+ }>;
42
+ }
43
+ /**
44
+ * How a comparison shell maps one pane's scroll position onto the other.
45
+ *
46
+ * `proportional` matches by fraction of the scrollable range — the only sane
47
+ * default when the two documents are different lengths, since the shorter one
48
+ * would otherwise run out long before the longer one finished.
49
+ * `absolute` keeps the same pixel offset, which is what you want for two
50
+ * renderings of the *same* document, where line N sits at the same height in
51
+ * both and proportional mapping would slowly drift them apart.
52
+ */
53
+ export type CompareSyncMode = "proportional" | "absolute";
54
+ /** The three numbers a scroll calculation needs, so the maths stays DOM-free. */
55
+ export interface ScrollMetrics {
56
+ scrollTop: number;
57
+ scrollHeight: number;
58
+ clientHeight: number;
59
+ }
60
+ /** How far a pane can actually scroll. Zero when the content fits. */
61
+ export declare const scrollableRange: (metrics: ScrollMetrics) => number;
62
+ /**
63
+ * Where `target` should scroll to so it matches `source`.
64
+ *
65
+ * Both degenerate cases return 0 rather than `NaN`: a target that cannot
66
+ * scroll has nowhere to go, and a source that cannot scroll carries no
67
+ * position to map (its fraction would be 0/0).
68
+ */
69
+ export declare const mapScrollPosition: (source: ScrollMetrics, target: ScrollMetrics, mode?: CompareSyncMode) => number;
@@ -0,0 +1,24 @@
1
+ /** How far a pane can actually scroll. Zero when the content fits. */
2
+ export const scrollableRange = (metrics) => Math.max(0, metrics.scrollHeight - metrics.clientHeight);
3
+ const clamp = (value, min, max) => Math.min(max, Math.max(min, value));
4
+ /**
5
+ * Where `target` should scroll to so it matches `source`.
6
+ *
7
+ * Both degenerate cases return 0 rather than `NaN`: a target that cannot
8
+ * scroll has nowhere to go, and a source that cannot scroll carries no
9
+ * position to map (its fraction would be 0/0).
10
+ */
11
+ export const mapScrollPosition = (source, target, mode = "proportional") => {
12
+ const targetRange = scrollableRange(target);
13
+ if (targetRange === 0) {
14
+ return 0;
15
+ }
16
+ if (mode === "absolute") {
17
+ return clamp(source.scrollTop, 0, targetRange);
18
+ }
19
+ const sourceRange = scrollableRange(source);
20
+ if (sourceRange === 0) {
21
+ return 0;
22
+ }
23
+ return clamp((source.scrollTop / sourceRange) * targetRange, 0, targetRange);
24
+ };
@@ -11,7 +11,8 @@ type FileRequestBuilderSetting = {
11
11
  description?: string;
12
12
  };
13
13
  type FileRequestBuilderValues = Record<string, boolean | string>;
14
- export declare class BoxFileRequestBuilderElement extends BaseElement {
14
+ export declare class FileRequestBuilder extends BaseElement {
15
+ static readonly tagName: string;
15
16
  static get observedAttributes(): string[];
16
17
  private valueInternal;
17
18
  get fields(): FileRequestBuilderField[];
@@ -32,5 +33,4 @@ export declare class BoxFileRequestBuilderElement extends BaseElement {
32
33
  protected renderTemplate(): void;
33
34
  protected update(): void;
34
35
  }
35
- export declare const defineBoxFileRequestBuilderElement: (tagName?: string) => typeof BoxFileRequestBuilderElement;
36
36
  export {};
@@ -145,7 +145,8 @@ const elementStyles = `
145
145
  color: var(--boe-token-text-text-on-brand, #ffffff);
146
146
  }
147
147
  `;
148
- export class BoxFileRequestBuilderElement extends BaseElement {
148
+ export class FileRequestBuilder extends BaseElement {
149
+ static tagName = DEFAULT_TAG_NAME;
149
150
  static get observedAttributes() {
150
151
  return ["fields", "heading", "message", "settings", "value"];
151
152
  }
@@ -334,11 +335,4 @@ export class BoxFileRequestBuilderElement extends BaseElement {
334
335
  });
335
336
  }
336
337
  }
337
- export const defineBoxFileRequestBuilderElement = (tagName = DEFAULT_TAG_NAME) => {
338
- const existingElement = customElements.get(tagName);
339
- if (existingElement) {
340
- return existingElement;
341
- }
342
- customElements.define(tagName, BoxFileRequestBuilderElement);
343
- return BoxFileRequestBuilderElement;
344
- };
338
+ FileRequestBuilder.register();
@@ -0,0 +1,39 @@
1
+ import { Controller } from "../../core/controller.js";
2
+ import type { WizardEvents, WizardSessionConfig, WizardState, WizardStepValidation } from "./types.js";
3
+ /**
4
+ * Headless multi-step form session: owns the step sequence, a value store,
5
+ * and per-step validation gating. Forward navigation and submission run the
6
+ * step's validator; backward navigation and jumps to already-visited steps
7
+ * never re-validate — a reviewer can always go back. The host owns the
8
+ * fields and persistence; the controller owns the choreography.
9
+ */
10
+ export declare class FormWizardController extends Controller<WizardState, WizardEvents> {
11
+ readonly config: WizardSessionConfig;
12
+ constructor(config: WizardSessionConfig);
13
+ get isFirstStep(): boolean;
14
+ get isLastStep(): boolean;
15
+ setValue(field: string, value: unknown): void;
16
+ setValues(patch: Record<string, unknown>): void;
17
+ /** Validate a step (default: the current one) without navigating. */
18
+ validateStep(stepId?: string): WizardStepValidation;
19
+ /** Advance if the current step passes (or is optional and untouched by a validator). */
20
+ next(): boolean;
21
+ /** Backward navigation never validates. */
22
+ previous(): boolean;
23
+ /**
24
+ * Jump to a step. Earlier and already-visited steps are always reachable;
25
+ * jumping forward gates every intermediate step in order, stopping (and
26
+ * reporting) on the first failure.
27
+ */
28
+ goTo(stepId: string): boolean;
29
+ /** Emit the values for the host to persist. Never validates — drafts may be incomplete. */
30
+ saveDraft(): void;
31
+ /**
32
+ * Validate every non-optional step (in order); emit `submitted` when all
33
+ * pass, otherwise navigate to the first failing step and report it.
34
+ */
35
+ submit(): boolean;
36
+ reset(): void;
37
+ private gateCurrentStep;
38
+ private moveTo;
39
+ }
@@ -0,0 +1,157 @@
1
+ import { Controller } from "../../core/controller.js";
2
+ const createInitialState = (config) => ({
3
+ steps: config.steps,
4
+ currentStepId: config.steps[0]?.id ?? "",
5
+ currentStepIndex: 0,
6
+ values: { ...(config.initialValues ?? {}) },
7
+ visitedStepIds: config.steps[0] ? [config.steps[0].id] : [],
8
+ stepError: null,
9
+ submitted: false,
10
+ });
11
+ /**
12
+ * Headless multi-step form session: owns the step sequence, a value store,
13
+ * and per-step validation gating. Forward navigation and submission run the
14
+ * step's validator; backward navigation and jumps to already-visited steps
15
+ * never re-validate — a reviewer can always go back. The host owns the
16
+ * fields and persistence; the controller owns the choreography.
17
+ */
18
+ export class FormWizardController extends Controller {
19
+ config;
20
+ constructor(config) {
21
+ if (!config.steps.length) {
22
+ throw new Error("FormWizardController requires at least one step");
23
+ }
24
+ super(createInitialState(config));
25
+ this.config = config;
26
+ }
27
+ get isFirstStep() {
28
+ return this.state.currentStepIndex === 0;
29
+ }
30
+ get isLastStep() {
31
+ return this.state.currentStepIndex === this.state.steps.length - 1;
32
+ }
33
+ setValue(field, value) {
34
+ this.setValues({ [field]: value });
35
+ }
36
+ setValues(patch) {
37
+ const values = { ...this.state.values, ...patch };
38
+ this.setState({
39
+ ...this.state,
40
+ values,
41
+ // Editing clears the stale failure — it re-runs on the next gate.
42
+ stepError: null,
43
+ });
44
+ this.emit("valuesChanged", { values });
45
+ }
46
+ /** Validate a step (default: the current one) without navigating. */
47
+ validateStep(stepId = this.state.currentStepId) {
48
+ const validator = this.config.validators?.[stepId];
49
+ return validator ? validator(this.state.values) : { valid: true };
50
+ }
51
+ /** Advance if the current step passes (or is optional and untouched by a validator). */
52
+ next() {
53
+ if (this.isLastStep) {
54
+ return false;
55
+ }
56
+ if (!this.gateCurrentStep()) {
57
+ return false;
58
+ }
59
+ this.moveTo(this.state.currentStepIndex + 1);
60
+ return true;
61
+ }
62
+ /** Backward navigation never validates. */
63
+ previous() {
64
+ if (this.isFirstStep) {
65
+ return false;
66
+ }
67
+ this.moveTo(this.state.currentStepIndex - 1);
68
+ return true;
69
+ }
70
+ /**
71
+ * Jump to a step. Earlier and already-visited steps are always reachable;
72
+ * jumping forward gates every intermediate step in order, stopping (and
73
+ * reporting) on the first failure.
74
+ */
75
+ goTo(stepId) {
76
+ const targetIndex = this.state.steps.findIndex(step => step.id === stepId);
77
+ if (targetIndex < 0 || targetIndex === this.state.currentStepIndex) {
78
+ return false;
79
+ }
80
+ if (targetIndex < this.state.currentStepIndex || this.state.visitedStepIds.includes(stepId)) {
81
+ this.moveTo(targetIndex);
82
+ return true;
83
+ }
84
+ for (let index = this.state.currentStepIndex; index < targetIndex; index += 1) {
85
+ if (!this.gateCurrentStep()) {
86
+ return false;
87
+ }
88
+ this.moveTo(index + 1);
89
+ }
90
+ return true;
91
+ }
92
+ /** Emit the values for the host to persist. Never validates — drafts may be incomplete. */
93
+ saveDraft() {
94
+ this.emit("draftSaved", { values: this.state.values });
95
+ }
96
+ /**
97
+ * Validate every non-optional step (in order); emit `submitted` when all
98
+ * pass, otherwise navigate to the first failing step and report it.
99
+ */
100
+ submit() {
101
+ for (const [index, step] of this.state.steps.entries()) {
102
+ if (step.optional) {
103
+ continue;
104
+ }
105
+ const validation = this.validateStep(step.id);
106
+ if (!validation.valid) {
107
+ this.moveTo(index);
108
+ this.setState({ ...this.state, stepError: validation });
109
+ this.emit("stepInvalid", { stepId: step.id, validation });
110
+ return false;
111
+ }
112
+ }
113
+ this.setState({ ...this.state, stepError: null, submitted: true });
114
+ this.emit("submitted", { values: this.state.values });
115
+ return true;
116
+ }
117
+ reset() {
118
+ this.setState(createInitialState(this.config));
119
+ this.emit("stepChanged", {
120
+ stepId: this.state.currentStepId,
121
+ stepIndex: this.state.currentStepIndex,
122
+ });
123
+ this.emit("valuesChanged", { values: this.state.values });
124
+ }
125
+ gateCurrentStep() {
126
+ const step = this.state.steps[this.state.currentStepIndex];
127
+ if (!step || step.optional) {
128
+ return true;
129
+ }
130
+ const validation = this.validateStep(step.id);
131
+ if (validation.valid) {
132
+ if (this.state.stepError) {
133
+ this.setState({ ...this.state, stepError: null });
134
+ }
135
+ return true;
136
+ }
137
+ this.setState({ ...this.state, stepError: validation });
138
+ this.emit("stepInvalid", { stepId: step.id, validation });
139
+ return false;
140
+ }
141
+ moveTo(index) {
142
+ const step = this.state.steps[index];
143
+ if (!step) {
144
+ return;
145
+ }
146
+ this.setState({
147
+ ...this.state,
148
+ currentStepId: step.id,
149
+ currentStepIndex: index,
150
+ stepError: null,
151
+ visitedStepIds: this.state.visitedStepIds.includes(step.id)
152
+ ? this.state.visitedStepIds
153
+ : [...this.state.visitedStepIds, step.id],
154
+ });
155
+ this.emit("stepChanged", { stepId: step.id, stepIndex: index });
156
+ }
157
+ }
@@ -0,0 +1,63 @@
1
+ import { FormWizardController } from "./controller.js";
2
+ import type { WizardStepConfig, WizardStepValidator } from "./types.js";
3
+ import { BaseElement } from "../../core/index.js";
4
+ export declare class FormWizard extends BaseElement {
5
+ static readonly tagName: string;
6
+ static get observedAttributes(): string[];
7
+ private controller;
8
+ private pendingStart;
9
+ private unsubscribeFns;
10
+ private validatorsValue;
11
+ private initialValuesValue;
12
+ private titleEl;
13
+ private railEl;
14
+ private panelsEl;
15
+ private errorEl;
16
+ private backEl;
17
+ private draftEl;
18
+ private nextEl;
19
+ private submitEl;
20
+ private panelsSignature;
21
+ private suppressRailEvent;
22
+ get heading(): string;
23
+ set heading(value: string);
24
+ /**
25
+ * Step configuration; JSON `[{"id","label","description?","optional?"}]`.
26
+ * A step's id doubles as the slot name feeding its panel.
27
+ */
28
+ get steps(): WizardStepConfig[];
29
+ set steps(value: WizardStepConfig[]);
30
+ get submitLabel(): string;
31
+ set submitLabel(value: string);
32
+ /** When set, a Save draft button renders and emits `draft-saved`. */
33
+ get draftLabel(): string | null;
34
+ set draftLabel(value: string | null);
35
+ get validators(): Record<string, WizardStepValidator>;
36
+ set validators(value: Record<string, WizardStepValidator>);
37
+ get initialValues(): Record<string, unknown>;
38
+ set initialValues(value: Record<string, unknown>);
39
+ get values(): Record<string, unknown>;
40
+ get activeStep(): string;
41
+ /** The live session controller. Null until steps are configured. */
42
+ get wizardController(): FormWizardController | null;
43
+ attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
44
+ connectedCallback(): void;
45
+ disconnectedCallback(): void;
46
+ setValue(field: string, value: unknown): void;
47
+ setValues(patch: Record<string, unknown>): void;
48
+ next(): boolean;
49
+ previous(): boolean;
50
+ goTo(stepId: string): boolean;
51
+ saveDraft(): void;
52
+ submit(): boolean;
53
+ reset(): void;
54
+ private scheduleStart;
55
+ private startController;
56
+ private subscribeToController;
57
+ private teardownController;
58
+ protected renderTemplate(): void;
59
+ protected setupListeners(): void;
60
+ /** One panel per step, fed by a slot named after the step id. */
61
+ private rebuildPanels;
62
+ protected update(): void;
63
+ }