@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.
- package/README.md +39 -14
- package/dist/components/actions/button-group.d.ts +2 -2
- package/dist/components/actions/button-group.js +3 -9
- package/dist/components/actions/button.d.ts +2 -2
- package/dist/components/actions/button.js +3 -9
- package/dist/components/actions/icon-button.d.ts +2 -2
- package/dist/components/actions/icon-button.js +3 -9
- package/dist/components/actions/link-button.d.ts +2 -2
- package/dist/components/actions/link-button.js +3 -9
- package/dist/components/actions/menu-item.d.ts +2 -2
- package/dist/components/actions/menu-item.js +3 -9
- package/dist/components/actions/menu.d.ts +2 -2
- package/dist/components/actions/menu.js +3 -9
- package/dist/components/actions/segmented-control.d.ts +2 -2
- package/dist/components/actions/segmented-control.js +3 -9
- package/dist/components/collections/card.d.ts +2 -2
- package/dist/components/collections/card.js +3 -9
- package/dist/components/collections/carousel.d.ts +2 -2
- package/dist/components/collections/carousel.js +3 -9
- package/dist/components/collections/datalist-item.d.ts +2 -2
- package/dist/components/collections/datalist-item.js +3 -9
- package/dist/components/collections/draggable-list.d.ts +2 -2
- package/dist/components/collections/draggable-list.js +3 -9
- package/dist/components/collections/grid-view.d.ts +2 -2
- package/dist/components/collections/grid-view.js +3 -9
- package/dist/components/collections/pagination.d.ts +2 -2
- package/dist/components/collections/pagination.js +3 -9
- package/dist/components/collections/table.d.ts +59 -5
- package/dist/components/collections/table.js +342 -29
- package/dist/components/collections/thumbnail-card.d.ts +2 -2
- package/dist/components/collections/thumbnail-card.js +3 -9
- package/dist/components/collections/tree-grid.d.ts +2 -2
- package/dist/components/collections/tree-grid.js +3 -9
- package/dist/components/collections/tree.d.ts +2 -2
- package/dist/components/collections/tree.js +3 -9
- package/dist/components/feedback/alert.d.ts +2 -2
- package/dist/components/feedback/alert.js +3 -9
- package/dist/components/feedback/badge.d.ts +2 -2
- package/dist/components/feedback/badge.js +3 -9
- package/dist/components/feedback/badgeable.d.ts +2 -2
- package/dist/components/feedback/badgeable.js +3 -9
- package/dist/components/feedback/chip.d.ts +2 -2
- package/dist/components/feedback/chip.js +3 -9
- package/dist/components/feedback/due-badge.d.ts +38 -0
- package/dist/components/feedback/due-badge.js +168 -0
- package/dist/components/feedback/due-types.d.ts +32 -0
- package/dist/components/feedback/due-types.js +91 -0
- package/dist/components/feedback/empty-state.d.ts +2 -2
- package/dist/components/feedback/empty-state.js +3 -9
- package/dist/components/feedback/error-mask.d.ts +2 -2
- package/dist/components/feedback/error-mask.js +3 -9
- package/dist/components/feedback/help-text.d.ts +2 -2
- package/dist/components/feedback/help-text.js +3 -9
- package/dist/components/feedback/nudge.d.ts +2 -2
- package/dist/components/feedback/nudge.js +3 -9
- package/dist/components/feedback/progress-bar.d.ts +2 -2
- package/dist/components/feedback/progress-bar.js +3 -9
- package/dist/components/feedback/progress-ring.d.ts +2 -2
- package/dist/components/feedback/progress-ring.js +3 -9
- package/dist/components/feedback/progress-steps.d.ts +53 -7
- package/dist/components/feedback/progress-steps.js +203 -31
- package/dist/components/feedback/skeleton.d.ts +2 -2
- package/dist/components/feedback/skeleton.js +3 -9
- package/dist/components/feedback/spinner.d.ts +2 -2
- package/dist/components/feedback/spinner.js +3 -9
- package/dist/components/feedback/stage-path.d.ts +44 -0
- package/dist/components/feedback/stage-path.js +235 -0
- package/dist/components/feedback/toast.d.ts +2 -2
- package/dist/components/feedback/toast.js +3 -9
- package/dist/components/files/drop-zone.d.ts +2 -2
- package/dist/components/files/drop-zone.js +3 -9
- package/dist/components/forms/calendar.d.ts +2 -2
- package/dist/components/forms/calendar.js +3 -9
- package/dist/components/forms/category-selector.d.ts +2 -2
- package/dist/components/forms/category-selector.js +3 -9
- package/dist/components/forms/checkbox-group.d.ts +2 -2
- package/dist/components/forms/checkbox-group.js +3 -9
- package/dist/components/forms/checkbox.d.ts +2 -2
- package/dist/components/forms/checkbox.js +3 -9
- package/dist/components/forms/color-picker.d.ts +2 -2
- package/dist/components/forms/color-picker.js +3 -9
- package/dist/components/forms/combobox.d.ts +2 -2
- package/dist/components/forms/combobox.js +3 -9
- package/dist/components/forms/date-field.d.ts +2 -2
- package/dist/components/forms/date-field.js +3 -9
- package/dist/components/forms/dropdown.d.ts +2 -2
- package/dist/components/forms/dropdown.js +3 -9
- package/dist/components/forms/dual-listbox.d.ts +2 -2
- package/dist/components/forms/dual-listbox.js +3 -9
- package/dist/components/forms/fieldset.d.ts +2 -2
- package/dist/components/forms/fieldset.js +3 -9
- package/dist/components/forms/multi-select.d.ts +2 -2
- package/dist/components/forms/multi-select.js +3 -9
- package/dist/components/forms/number-input.d.ts +2 -2
- package/dist/components/forms/number-input.js +3 -9
- package/dist/components/forms/pill-cloud.d.ts +2 -2
- package/dist/components/forms/pill-cloud.js +3 -9
- package/dist/components/forms/pill-selector-dropdown.d.ts +2 -2
- package/dist/components/forms/pill-selector-dropdown.js +3 -9
- package/dist/components/forms/radio-group.d.ts +2 -2
- package/dist/components/forms/radio-group.js +3 -9
- package/dist/components/forms/range-slider.d.ts +2 -2
- package/dist/components/forms/range-slider.js +3 -9
- package/dist/components/forms/rating.d.ts +2 -2
- package/dist/components/forms/rating.js +3 -9
- package/dist/components/forms/rich-text-input.d.ts +2 -2
- package/dist/components/forms/rich-text-input.js +3 -9
- package/dist/components/forms/search-field.d.ts +2 -2
- package/dist/components/forms/search-field.js +3 -9
- package/dist/components/forms/select.d.ts +23 -2
- package/dist/components/forms/select.js +103 -12
- package/dist/components/forms/slider.d.ts +2 -2
- package/dist/components/forms/slider.js +3 -9
- package/dist/components/forms/spin-button.d.ts +2 -2
- package/dist/components/forms/spin-button.js +3 -9
- package/dist/components/forms/switch.d.ts +2 -2
- package/dist/components/forms/switch.js +3 -9
- package/dist/components/forms/tag-input.d.ts +2 -2
- package/dist/components/forms/tag-input.js +3 -9
- package/dist/components/forms/text-area.d.ts +2 -2
- package/dist/components/forms/text-area.js +3 -9
- package/dist/components/forms/text-field.d.ts +23 -2
- package/dist/components/forms/text-field.js +103 -10
- package/dist/components/forms/time-field.d.ts +2 -2
- package/dist/components/forms/time-field.js +4 -10
- package/dist/components/identity/avatar.d.ts +2 -2
- package/dist/components/identity/avatar.js +3 -9
- package/dist/components/identity/contact-datalist-item.d.ts +2 -2
- package/dist/components/identity/contact-datalist-item.js +3 -9
- package/dist/components/identity/persona.d.ts +2 -2
- package/dist/components/identity/persona.js +3 -9
- package/dist/components/layout/app-shell.d.ts +2 -2
- package/dist/components/layout/app-shell.js +3 -9
- package/dist/components/layout/divider.d.ts +2 -2
- package/dist/components/layout/divider.js +3 -9
- package/dist/components/layout/nav-sidebar.d.ts +16 -2
- package/dist/components/layout/nav-sidebar.js +52 -9
- package/dist/components/layout/section.d.ts +2 -2
- package/dist/components/layout/section.js +3 -9
- package/dist/components/layout/sidebar-toggle-button.d.ts +2 -2
- package/dist/components/layout/sidebar-toggle-button.js +3 -9
- package/dist/components/layout/split-view.d.ts +16 -2
- package/dist/components/layout/split-view.js +83 -10
- package/dist/components/navigation/accordion.d.ts +2 -2
- package/dist/components/navigation/accordion.js +3 -9
- package/dist/components/navigation/breadcrumb.d.ts +2 -2
- package/dist/components/navigation/breadcrumb.js +3 -9
- package/dist/components/navigation/tabs.d.ts +2 -2
- package/dist/components/navigation/tabs.js +3 -9
- package/dist/components/overlays/command-palette.d.ts +62 -0
- package/dist/components/overlays/command-palette.js +537 -0
- package/dist/components/overlays/command-types.d.ts +90 -0
- package/dist/components/overlays/command-types.js +259 -0
- package/dist/components/overlays/context-menu.d.ts +2 -2
- package/dist/components/overlays/context-menu.js +3 -9
- package/dist/components/overlays/dialog.d.ts +2 -2
- package/dist/components/overlays/dialog.js +3 -9
- package/dist/components/overlays/drawer.d.ts +20 -2
- package/dist/components/overlays/drawer.js +138 -18
- package/dist/components/overlays/guide-tooltip.d.ts +2 -2
- package/dist/components/overlays/guide-tooltip.js +3 -9
- package/dist/components/overlays/popover.d.ts +2 -2
- package/dist/components/overlays/popover.js +3 -9
- package/dist/components/overlays/shortcuts-overlay.d.ts +48 -0
- package/dist/components/overlays/shortcuts-overlay.js +385 -0
- package/dist/components/overlays/tooltip.d.ts +2 -2
- package/dist/components/overlays/tooltip.js +4 -10
- package/dist/components/visuals/illustration.d.ts +2 -2
- package/dist/components/visuals/illustration.js +3 -9
- package/dist/core/element.d.ts +5 -1
- package/dist/core/element.js +29 -1
- package/dist/element-maps.d.ts +292 -0
- package/dist/element-maps.js +1 -0
- package/dist/entries/access-stats.d.ts +1 -0
- package/dist/entries/access-stats.js +1 -0
- package/dist/entries/accordion.d.ts +1 -0
- package/dist/entries/accordion.js +1 -0
- package/dist/entries/activity-density.d.ts +1 -0
- package/dist/entries/activity-density.js +1 -0
- package/dist/entries/agent-chat.d.ts +1 -0
- package/dist/entries/agent-chat.js +1 -0
- package/dist/entries/alert.d.ts +1 -0
- package/dist/entries/alert.js +1 -0
- package/dist/entries/annotation-inspector.d.ts +1 -0
- package/dist/entries/annotation-inspector.js +1 -0
- package/dist/entries/annotation-thread.d.ts +1 -0
- package/dist/entries/annotation-thread.js +1 -0
- package/dist/entries/annotation-toolbar.d.ts +1 -0
- package/dist/entries/annotation-toolbar.js +1 -0
- package/dist/entries/app-shell.d.ts +1 -0
- package/dist/entries/app-shell.js +1 -0
- package/dist/entries/audit-log.d.ts +1 -0
- package/dist/entries/audit-log.js +1 -0
- package/dist/entries/avatar.d.ts +1 -0
- package/dist/entries/avatar.js +1 -0
- package/dist/entries/badge.d.ts +1 -0
- package/dist/entries/badge.js +1 -0
- package/dist/entries/badgeable.d.ts +1 -0
- package/dist/entries/badgeable.js +1 -0
- package/dist/entries/bar-chart.d.ts +1 -0
- package/dist/entries/bar-chart.js +1 -0
- package/dist/entries/breadcrumb.d.ts +1 -0
- package/dist/entries/breadcrumb.js +1 -0
- package/dist/entries/bulk-action-bar.d.ts +1 -0
- package/dist/entries/bulk-action-bar.js +1 -0
- package/dist/entries/button-group.d.ts +1 -0
- package/dist/entries/button-group.js +1 -0
- package/dist/entries/button.d.ts +1 -0
- package/dist/entries/button.js +1 -0
- package/dist/entries/calendar.d.ts +1 -0
- package/dist/entries/calendar.js +1 -0
- package/dist/entries/card.d.ts +1 -0
- package/dist/entries/card.js +1 -0
- package/dist/entries/carousel.d.ts +1 -0
- package/dist/entries/carousel.js +1 -0
- package/dist/entries/category-selector.d.ts +1 -0
- package/dist/entries/category-selector.js +1 -0
- package/dist/entries/chart-panel.d.ts +1 -0
- package/dist/entries/chart-panel.js +1 -0
- package/dist/entries/checkbox-group.d.ts +1 -0
- package/dist/entries/checkbox-group.js +1 -0
- package/dist/entries/checkbox.d.ts +1 -0
- package/dist/entries/checkbox.js +1 -0
- package/dist/entries/chip.d.ts +1 -0
- package/dist/entries/chip.js +1 -0
- package/dist/entries/collaborator-avatars.d.ts +1 -0
- package/dist/entries/collaborator-avatars.js +1 -0
- package/dist/entries/color-picker.d.ts +1 -0
- package/dist/entries/color-picker.js +1 -0
- package/dist/entries/combobox.d.ts +1 -0
- package/dist/entries/combobox.js +1 -0
- package/dist/entries/command-palette.d.ts +1 -0
- package/dist/entries/command-palette.js +1 -0
- package/dist/entries/compare-view.d.ts +1 -0
- package/dist/entries/compare-view.js +1 -0
- package/dist/entries/contact-datalist-item.d.ts +1 -0
- package/dist/entries/contact-datalist-item.js +1 -0
- package/dist/entries/content-explorer.d.ts +1 -0
- package/dist/entries/content-explorer.js +1 -0
- package/dist/entries/context-menu.d.ts +1 -0
- package/dist/entries/context-menu.js +1 -0
- package/dist/entries/datalist-item.d.ts +1 -0
- package/dist/entries/datalist-item.js +1 -0
- package/dist/entries/date-field.d.ts +1 -0
- package/dist/entries/date-field.js +1 -0
- package/dist/entries/dialog.d.ts +1 -0
- package/dist/entries/dialog.js +1 -0
- package/dist/entries/diff-viewer.d.ts +1 -0
- package/dist/entries/diff-viewer.js +1 -0
- package/dist/entries/divider.d.ts +1 -0
- package/dist/entries/divider.js +1 -0
- package/dist/entries/donut-chart.d.ts +1 -0
- package/dist/entries/donut-chart.js +1 -0
- package/dist/entries/draggable-list.d.ts +1 -0
- package/dist/entries/draggable-list.js +1 -0
- package/dist/entries/drawer.d.ts +1 -0
- package/dist/entries/drawer.js +1 -0
- package/dist/entries/drop-zone.d.ts +1 -0
- package/dist/entries/drop-zone.js +1 -0
- package/dist/entries/dropdown.d.ts +1 -0
- package/dist/entries/dropdown.js +1 -0
- package/dist/entries/dual-listbox.d.ts +1 -0
- package/dist/entries/dual-listbox.js +1 -0
- package/dist/entries/due-badge.d.ts +1 -0
- package/dist/entries/due-badge.js +1 -0
- package/dist/entries/empty-state.d.ts +1 -0
- package/dist/entries/empty-state.js +1 -0
- package/dist/entries/error-mask.d.ts +1 -0
- package/dist/entries/error-mask.js +1 -0
- package/dist/entries/explorer-action-menu.d.ts +1 -0
- package/dist/entries/explorer-action-menu.js +1 -0
- package/dist/entries/explorer-breadcrumbs.d.ts +1 -0
- package/dist/entries/explorer-breadcrumbs.js +1 -0
- package/dist/entries/explorer-items.d.ts +1 -0
- package/dist/entries/explorer-items.js +1 -0
- package/dist/entries/explorer-list.d.ts +1 -0
- package/dist/entries/explorer-list.js +1 -0
- package/dist/entries/explorer-table.d.ts +1 -0
- package/dist/entries/explorer-table.js +1 -0
- package/dist/entries/explorer-toolbar.d.ts +1 -0
- package/dist/entries/explorer-toolbar.js +1 -0
- package/dist/entries/fieldset.d.ts +1 -0
- package/dist/entries/fieldset.js +1 -0
- package/dist/entries/file-request-builder.d.ts +1 -0
- package/dist/entries/file-request-builder.js +1 -0
- package/dist/entries/filter-bar.d.ts +1 -0
- package/dist/entries/filter-bar.js +1 -0
- package/dist/entries/form-wizard.d.ts +1 -0
- package/dist/entries/form-wizard.js +1 -0
- package/dist/entries/governance-panel.d.ts +1 -0
- package/dist/entries/governance-panel.js +1 -0
- package/dist/entries/grid-view.d.ts +1 -0
- package/dist/entries/grid-view.js +1 -0
- package/dist/entries/guide-tooltip.d.ts +1 -0
- package/dist/entries/guide-tooltip.js +1 -0
- package/dist/entries/help-text.d.ts +1 -0
- package/dist/entries/help-text.js +1 -0
- package/dist/entries/icon-button.d.ts +1 -0
- package/dist/entries/icon-button.js +1 -0
- package/dist/entries/illustration.d.ts +1 -0
- package/dist/entries/illustration.js +1 -0
- package/dist/entries/invite-collaborators-modal.d.ts +1 -0
- package/dist/entries/invite-collaborators-modal.js +1 -0
- package/dist/entries/item-details-panel.d.ts +1 -0
- package/dist/entries/item-details-panel.js +1 -0
- package/dist/entries/item-form.d.ts +1 -0
- package/dist/entries/item-form.js +1 -0
- package/dist/entries/line-chart.d.ts +1 -0
- package/dist/entries/line-chart.js +1 -0
- package/dist/entries/lineage-graph.d.ts +1 -0
- package/dist/entries/lineage-graph.js +1 -0
- package/dist/entries/link-button.d.ts +1 -0
- package/dist/entries/link-button.js +1 -0
- package/dist/entries/menu-item.d.ts +1 -0
- package/dist/entries/menu-item.js +1 -0
- package/dist/entries/menu.d.ts +1 -0
- package/dist/entries/menu.js +1 -0
- package/dist/entries/metadata-filter-builder.d.ts +1 -0
- package/dist/entries/metadata-filter-builder.js +1 -0
- package/dist/entries/metadata-inspector.d.ts +1 -0
- package/dist/entries/metadata-inspector.js +1 -0
- package/dist/entries/metric-card.d.ts +1 -0
- package/dist/entries/metric-card.js +1 -0
- package/dist/entries/multi-select.d.ts +1 -0
- package/dist/entries/multi-select.js +1 -0
- package/dist/entries/nav-sidebar.d.ts +1 -0
- package/dist/entries/nav-sidebar.js +1 -0
- package/dist/entries/notification-bell.d.ts +1 -0
- package/dist/entries/notification-bell.js +1 -0
- package/dist/entries/notification-inbox.d.ts +1 -0
- package/dist/entries/notification-inbox.js +1 -0
- package/dist/entries/nudge.d.ts +1 -0
- package/dist/entries/nudge.js +1 -0
- package/dist/entries/number-input.d.ts +1 -0
- package/dist/entries/number-input.js +1 -0
- package/dist/entries/pagination.d.ts +1 -0
- package/dist/entries/pagination.js +1 -0
- package/dist/entries/permission-matrix.d.ts +1 -0
- package/dist/entries/permission-matrix.js +1 -0
- package/dist/entries/persona.d.ts +1 -0
- package/dist/entries/persona.js +1 -0
- package/dist/entries/pill-cloud.d.ts +1 -0
- package/dist/entries/pill-cloud.js +1 -0
- package/dist/entries/pill-selector-dropdown.d.ts +1 -0
- package/dist/entries/pill-selector-dropdown.js +1 -0
- package/dist/entries/popover.d.ts +1 -0
- package/dist/entries/popover.js +1 -0
- package/dist/entries/presence.d.ts +1 -0
- package/dist/entries/presence.js +1 -0
- package/dist/entries/preview-header.d.ts +1 -0
- package/dist/entries/preview-header.js +1 -0
- package/dist/entries/preview.d.ts +1 -0
- package/dist/entries/preview.js +1 -0
- package/dist/entries/progress-bar.d.ts +1 -0
- package/dist/entries/progress-bar.js +1 -0
- package/dist/entries/progress-ring.d.ts +1 -0
- package/dist/entries/progress-ring.js +1 -0
- package/dist/entries/progress-steps.d.ts +1 -0
- package/dist/entries/progress-steps.js +1 -0
- package/dist/entries/provenance-strip.d.ts +1 -0
- package/dist/entries/provenance-strip.js +1 -0
- package/dist/entries/radio-group.d.ts +1 -0
- package/dist/entries/radio-group.js +1 -0
- package/dist/entries/range-slider.d.ts +1 -0
- package/dist/entries/range-slider.js +1 -0
- package/dist/entries/rating.d.ts +1 -0
- package/dist/entries/rating.js +1 -0
- package/dist/entries/review-queue-item.d.ts +1 -0
- package/dist/entries/review-queue-item.js +1 -0
- package/dist/entries/rich-text-input.d.ts +1 -0
- package/dist/entries/rich-text-input.js +1 -0
- package/dist/entries/run-trace.d.ts +1 -0
- package/dist/entries/run-trace.js +1 -0
- package/dist/entries/saved-view-picker.d.ts +1 -0
- package/dist/entries/saved-view-picker.js +1 -0
- package/dist/entries/search-field.d.ts +1 -0
- package/dist/entries/search-field.js +1 -0
- package/dist/entries/search-results-header.d.ts +1 -0
- package/dist/entries/search-results-header.js +1 -0
- package/dist/entries/section.d.ts +1 -0
- package/dist/entries/section.js +1 -0
- package/dist/entries/segmented-control.d.ts +1 -0
- package/dist/entries/segmented-control.js +1 -0
- package/dist/entries/select.d.ts +1 -0
- package/dist/entries/select.js +1 -0
- package/dist/entries/share-panel.d.ts +1 -0
- package/dist/entries/share-panel.js +1 -0
- package/dist/entries/shortcuts-overlay.d.ts +1 -0
- package/dist/entries/shortcuts-overlay.js +1 -0
- package/dist/entries/sidebar-toggle-button.d.ts +1 -0
- package/dist/entries/sidebar-toggle-button.js +1 -0
- package/dist/entries/signature-ceremony.d.ts +1 -0
- package/dist/entries/signature-ceremony.js +1 -0
- package/dist/entries/skeleton.d.ts +1 -0
- package/dist/entries/skeleton.js +1 -0
- package/dist/entries/slider.d.ts +1 -0
- package/dist/entries/slider.js +1 -0
- package/dist/entries/spin-button.d.ts +1 -0
- package/dist/entries/spin-button.js +1 -0
- package/dist/entries/spinner.d.ts +1 -0
- package/dist/entries/spinner.js +1 -0
- package/dist/entries/split-view.d.ts +1 -0
- package/dist/entries/split-view.js +1 -0
- package/dist/entries/stage-path.d.ts +1 -0
- package/dist/entries/stage-path.js +1 -0
- package/dist/entries/switch.d.ts +1 -0
- package/dist/entries/switch.js +1 -0
- package/dist/entries/table.d.ts +1 -0
- package/dist/entries/table.js +1 -0
- package/dist/entries/tabs.d.ts +1 -0
- package/dist/entries/tabs.js +1 -0
- package/dist/entries/tag-input.d.ts +1 -0
- package/dist/entries/tag-input.js +1 -0
- package/dist/entries/task-assignment-panel.d.ts +1 -0
- package/dist/entries/task-assignment-panel.js +1 -0
- package/dist/entries/text-area.d.ts +1 -0
- package/dist/entries/text-area.js +1 -0
- package/dist/entries/text-field.d.ts +1 -0
- package/dist/entries/text-field.js +1 -0
- package/dist/entries/thumbnail-card.d.ts +1 -0
- package/dist/entries/thumbnail-card.js +1 -0
- package/dist/entries/time-field.d.ts +1 -0
- package/dist/entries/time-field.js +1 -0
- package/dist/entries/timeline.d.ts +1 -0
- package/dist/entries/timeline.js +1 -0
- package/dist/entries/toast.d.ts +1 -0
- package/dist/entries/toast.js +1 -0
- package/dist/entries/tooltip.d.ts +1 -0
- package/dist/entries/tooltip.js +1 -0
- package/dist/entries/tree-grid.d.ts +1 -0
- package/dist/entries/tree-grid.js +1 -0
- package/dist/entries/tree.d.ts +1 -0
- package/dist/entries/tree.js +1 -0
- package/dist/entries/unified-share-modal.d.ts +1 -0
- package/dist/entries/unified-share-modal.js +1 -0
- package/dist/entries/version-graph.d.ts +1 -0
- package/dist/entries/version-graph.js +1 -0
- package/dist/entries/version-list.d.ts +1 -0
- package/dist/entries/version-list.js +1 -0
- package/dist/entries/wizard-summary.d.ts +1 -0
- package/dist/entries/wizard-summary.js +1 -0
- package/dist/entries/work-queue.d.ts +1 -0
- package/dist/entries/work-queue.js +1 -0
- package/dist/entries/workload-board.d.ts +1 -0
- package/dist/entries/workload-board.js +1 -0
- package/dist/foundations/geometry/tokens.d.ts +46 -45
- package/dist/foundations/geometry/tokens.js +46 -45
- package/dist/foundations/motion/tokens.d.ts +10 -10
- package/dist/foundations/motion/tokens.js +10 -10
- package/dist/foundations/profiles/built-ins.d.ts +4 -0
- package/dist/foundations/profiles/built-ins.js +131 -0
- package/dist/foundations/profiles/controller.d.ts +4 -0
- package/dist/foundations/profiles/controller.js +107 -0
- package/dist/foundations/profiles/index.d.ts +4 -0
- package/dist/foundations/profiles/index.js +3 -0
- package/dist/foundations/profiles/registry.d.ts +72 -0
- package/dist/foundations/profiles/registry.js +119 -0
- package/dist/foundations/profiles/types.d.ts +94 -0
- package/dist/foundations/profiles/types.js +1 -0
- package/dist/foundations/theming/controller.d.ts +37 -0
- package/dist/foundations/theming/controller.js +176 -0
- package/dist/foundations/theming/index.d.ts +2 -0
- package/dist/foundations/theming/index.js +1 -0
- package/dist/foundations/tokens/box-dark.d.ts +3 -3
- package/dist/foundations/tokens/box-defaults.d.ts +3 -3
- package/dist/foundations/tokens/index.d.ts +2 -2
- package/dist/foundations/tokens/index.js +1 -1
- package/dist/foundations/tokens/registry.d.ts +37 -7
- package/dist/foundations/tokens/registry.js +55 -5
- package/dist/foundations/tokens/types.d.ts +38 -1
- package/dist/index.d.ts +27 -2
- package/dist/index.js +24 -1
- package/dist/patterns/agent-chat/agent-chat.d.ts +75 -0
- package/dist/patterns/agent-chat/agent-chat.js +820 -0
- package/dist/patterns/agent-chat/controller.d.ts +27 -0
- package/dist/patterns/agent-chat/controller.js +182 -0
- package/dist/patterns/agent-chat/index.d.ts +3 -0
- package/dist/patterns/agent-chat/index.js +6 -0
- package/dist/patterns/agent-chat/types.d.ts +109 -0
- package/dist/patterns/agent-chat/types.js +1 -0
- package/dist/patterns/audit/activity-density.d.ts +68 -0
- package/dist/patterns/audit/activity-density.js +428 -0
- package/dist/patterns/audit/audit-log.d.ts +81 -0
- package/dist/patterns/audit/audit-log.js +794 -0
- package/dist/patterns/audit/index.d.ts +3 -0
- package/dist/patterns/audit/index.js +7 -0
- package/dist/patterns/audit/shared.d.ts +10 -0
- package/dist/patterns/audit/shared.js +50 -0
- package/dist/patterns/audit/types.d.ts +143 -0
- package/dist/patterns/audit/types.js +327 -0
- package/dist/patterns/content-explorer/actions/controller.js +12 -2
- package/dist/patterns/content-explorer/adapters/action-menu.d.ts +2 -2
- package/dist/patterns/content-explorer/adapters/action-menu.js +3 -9
- package/dist/patterns/content-explorer/adapters/breadcrumbs.d.ts +2 -2
- package/dist/patterns/content-explorer/adapters/breadcrumbs.js +3 -9
- package/dist/patterns/content-explorer/adapters/items.d.ts +3 -3
- package/dist/patterns/content-explorer/adapters/items.js +4 -10
- package/dist/patterns/content-explorer/adapters/list.d.ts +2 -2
- package/dist/patterns/content-explorer/adapters/list.js +3 -9
- package/dist/patterns/content-explorer/adapters/table.d.ts +2 -2
- package/dist/patterns/content-explorer/adapters/table.js +3 -9
- package/dist/patterns/content-explorer/adapters/toolbar.d.ts +2 -2
- package/dist/patterns/content-explorer/adapters/toolbar.js +7 -13
- package/dist/patterns/content-explorer/box-transport.js +117 -25
- package/dist/patterns/content-explorer/content-explorer.d.ts +28 -16
- package/dist/patterns/content-explorer/content-explorer.js +41 -14
- package/dist/patterns/content-explorer/contracts.d.ts +24 -1
- package/dist/patterns/content-explorer/contracts.js +68 -11
- package/dist/patterns/content-explorer/controller.d.ts +16 -1
- package/dist/patterns/content-explorer/controller.js +130 -4
- package/dist/patterns/content-explorer/navigation/controller.js +11 -9
- package/dist/patterns/content-explorer/types.d.ts +58 -1
- package/dist/patterns/content-picker/content-picker.d.ts +71 -0
- package/dist/patterns/content-picker/content-picker.js +747 -0
- package/dist/patterns/content-picker/controller.d.ts +38 -0
- package/dist/patterns/content-picker/controller.js +141 -0
- package/dist/patterns/content-picker/index.d.ts +3 -0
- package/dist/patterns/content-picker/index.js +6 -0
- package/dist/patterns/content-picker/types.d.ts +52 -0
- package/dist/patterns/content-picker/types.js +26 -0
- package/dist/patterns/content-sidebar/content-sidebar.d.ts +43 -0
- package/dist/patterns/content-sidebar/content-sidebar.js +293 -0
- package/dist/patterns/content-sidebar/index.d.ts +2 -0
- package/dist/patterns/content-sidebar/index.js +4 -0
- package/dist/patterns/content-sidebar/types.d.ts +18 -0
- package/dist/patterns/content-sidebar/types.js +20 -0
- package/dist/patterns/content-uploader/box-transport.d.ts +14 -0
- package/dist/patterns/content-uploader/box-transport.js +54 -0
- package/dist/patterns/content-uploader/content-uploader.d.ts +62 -0
- package/dist/patterns/content-uploader/content-uploader.js +559 -0
- package/dist/patterns/content-uploader/controller.d.ts +39 -0
- package/dist/patterns/content-uploader/controller.js +227 -0
- package/dist/patterns/content-uploader/index.d.ts +4 -0
- package/dist/patterns/content-uploader/index.js +8 -0
- package/dist/patterns/content-uploader/types.d.ts +120 -0
- package/dist/patterns/content-uploader/types.js +38 -0
- package/dist/patterns/diff/compare-view.d.ts +47 -0
- package/dist/patterns/diff/compare-view.js +276 -0
- package/dist/patterns/diff/diff-viewer.d.ts +42 -0
- package/dist/patterns/diff/diff-viewer.js +434 -0
- package/dist/patterns/diff/engine.d.ts +22 -0
- package/dist/patterns/diff/engine.js +276 -0
- package/dist/patterns/diff/index.d.ts +4 -0
- package/dist/patterns/diff/index.js +8 -0
- package/dist/patterns/diff/types.d.ts +69 -0
- package/dist/patterns/diff/types.js +24 -0
- package/dist/patterns/file-request/file-request-builder.d.ts +2 -2
- package/dist/patterns/file-request/file-request-builder.js +3 -9
- package/dist/patterns/form-wizard/controller.d.ts +39 -0
- package/dist/patterns/form-wizard/controller.js +157 -0
- package/dist/patterns/form-wizard/form-wizard.d.ts +63 -0
- package/dist/patterns/form-wizard/form-wizard.js +468 -0
- package/dist/patterns/form-wizard/index.d.ts +4 -0
- package/dist/patterns/form-wizard/index.js +8 -0
- package/dist/patterns/form-wizard/types.d.ts +109 -0
- package/dist/patterns/form-wizard/types.js +83 -0
- package/dist/patterns/form-wizard/wizard-summary.d.ts +62 -0
- package/dist/patterns/form-wizard/wizard-summary.js +324 -0
- package/dist/patterns/governance/governance-panel.d.ts +2 -2
- package/dist/patterns/governance/governance-panel.js +3 -6
- package/dist/patterns/insights/bar-chart.d.ts +2 -2
- package/dist/patterns/insights/bar-chart.js +3 -6
- package/dist/patterns/insights/chart-panel.d.ts +2 -2
- package/dist/patterns/insights/chart-panel.js +3 -6
- package/dist/patterns/insights/donut-chart.d.ts +2 -2
- package/dist/patterns/insights/donut-chart.js +3 -6
- package/dist/patterns/insights/line-chart.d.ts +2 -2
- package/dist/patterns/insights/line-chart.js +3 -6
- package/dist/patterns/insights/metric-card.d.ts +2 -2
- package/dist/patterns/insights/metric-card.js +3 -6
- package/dist/patterns/internal/safe-href.d.ts +17 -0
- package/dist/patterns/internal/safe-href.js +17 -0
- package/dist/patterns/item/bulk-action-bar.d.ts +2 -2
- package/dist/patterns/item/bulk-action-bar.js +3 -6
- package/dist/patterns/item/item-details-panel.d.ts +2 -2
- package/dist/patterns/item/item-details-panel.js +3 -9
- package/dist/patterns/item/item-form.d.ts +2 -2
- package/dist/patterns/item/item-form.js +3 -9
- package/dist/patterns/item/preview-header.d.ts +2 -2
- package/dist/patterns/item/preview-header.js +3 -9
- package/dist/patterns/lineage/index.d.ts +3 -0
- package/dist/patterns/lineage/index.js +6 -0
- package/dist/patterns/lineage/lineage-graph.d.ts +30 -0
- package/dist/patterns/lineage/lineage-graph.js +434 -0
- package/dist/patterns/lineage/provenance-strip.d.ts +22 -0
- package/dist/patterns/lineage/provenance-strip.js +194 -0
- package/dist/patterns/lineage/types.d.ts +53 -0
- package/dist/patterns/lineage/types.js +49 -0
- package/dist/patterns/metadata/metadata-filter-builder.d.ts +2 -2
- package/dist/patterns/metadata/metadata-filter-builder.js +3 -9
- package/dist/patterns/metadata/metadata-inspector.d.ts +2 -2
- package/dist/patterns/metadata/metadata-inspector.js +3 -9
- package/dist/patterns/notifications/index.d.ts +3 -0
- package/dist/patterns/notifications/index.js +6 -0
- package/dist/patterns/notifications/notification-bell.d.ts +38 -0
- package/dist/patterns/notifications/notification-bell.js +198 -0
- package/dist/patterns/notifications/notification-inbox.d.ts +46 -0
- package/dist/patterns/notifications/notification-inbox.js +537 -0
- package/dist/patterns/notifications/types.d.ts +61 -0
- package/dist/patterns/notifications/types.js +108 -0
- package/dist/patterns/preview/annotation-inspector.d.ts +27 -8
- package/dist/patterns/preview/annotation-inspector.js +242 -103
- package/dist/patterns/preview/annotation-thread.d.ts +27 -7
- package/dist/patterns/preview/annotation-thread.js +236 -91
- package/dist/patterns/preview/annotation-toolbar.d.ts +22 -8
- package/dist/patterns/preview/annotation-toolbar.js +165 -105
- package/dist/patterns/preview/content-preview-adapter.d.ts +10 -1
- package/dist/patterns/preview/content-preview-adapter.js +26 -1
- package/dist/patterns/preview/preview-element.d.ts +17 -4
- package/dist/patterns/preview/preview-element.js +226 -61
- package/dist/patterns/preview/provider-adapter.d.ts +47 -0
- package/dist/patterns/preview/provider-adapter.js +17 -0
- package/dist/patterns/run/index.d.ts +2 -0
- package/dist/patterns/run/index.js +4 -0
- package/dist/patterns/run/run-trace.d.ts +40 -0
- package/dist/patterns/run/run-trace.js +441 -0
- package/dist/patterns/run/types.d.ts +66 -0
- package/dist/patterns/run/types.js +152 -0
- package/dist/patterns/search/filter-bar.d.ts +2 -2
- package/dist/patterns/search/filter-bar.js +3 -9
- package/dist/patterns/search/saved-view-picker.d.ts +2 -2
- package/dist/patterns/search/saved-view-picker.js +3 -9
- package/dist/patterns/search/search-results-header.d.ts +2 -2
- package/dist/patterns/search/search-results-header.js +3 -9
- package/dist/patterns/share/access-stats.d.ts +2 -2
- package/dist/patterns/share/access-stats.js +3 -9
- package/dist/patterns/share/collaborator-avatars.d.ts +2 -2
- package/dist/patterns/share/collaborator-avatars.js +3 -9
- package/dist/patterns/share/invite-collaborators-modal.d.ts +2 -2
- package/dist/patterns/share/invite-collaborators-modal.js +3 -9
- package/dist/patterns/share/permission-matrix.d.ts +2 -2
- package/dist/patterns/share/permission-matrix.js +3 -9
- package/dist/patterns/share/presence.d.ts +2 -2
- package/dist/patterns/share/presence.js +3 -9
- package/dist/patterns/share/share-panel.d.ts +2 -2
- package/dist/patterns/share/share-panel.js +3 -9
- package/dist/patterns/share/unified-share-modal.d.ts +2 -2
- package/dist/patterns/share/unified-share-modal.js +3 -9
- package/dist/patterns/signature/index.d.ts +2 -0
- package/dist/patterns/signature/index.js +4 -0
- package/dist/patterns/signature/signature-ceremony.d.ts +33 -0
- package/dist/patterns/signature/signature-ceremony.js +317 -0
- package/dist/patterns/signature/types.d.ts +68 -0
- package/dist/patterns/signature/types.js +89 -0
- package/dist/patterns/task/review-queue-item.d.ts +2 -2
- package/dist/patterns/task/review-queue-item.js +3 -6
- package/dist/patterns/task/task-assignment-panel.d.ts +2 -2
- package/dist/patterns/task/task-assignment-panel.js +3 -6
- package/dist/patterns/timeline/index.d.ts +2 -0
- package/dist/patterns/timeline/index.js +4 -0
- package/dist/patterns/timeline/timeline.d.ts +27 -0
- package/dist/patterns/timeline/timeline.js +430 -0
- package/dist/patterns/timeline/types.d.ts +36 -0
- package/dist/patterns/timeline/types.js +27 -0
- package/dist/patterns/versions/graph-layout.d.ts +43 -0
- package/dist/patterns/versions/graph-layout.js +159 -0
- package/dist/patterns/versions/index.d.ts +4 -0
- package/dist/patterns/versions/index.js +8 -0
- package/dist/patterns/versions/shared.d.ts +4 -0
- package/dist/patterns/versions/shared.js +13 -0
- package/dist/patterns/versions/types.d.ts +37 -0
- package/dist/patterns/versions/types.js +39 -0
- package/dist/patterns/versions/version-graph.d.ts +36 -0
- package/dist/patterns/versions/version-graph.js +438 -0
- package/dist/patterns/versions/version-list.d.ts +39 -0
- package/dist/patterns/versions/version-list.js +407 -0
- package/dist/patterns/work-queue/controller.d.ts +26 -0
- package/dist/patterns/work-queue/controller.js +150 -0
- package/dist/patterns/work-queue/index.d.ts +4 -0
- package/dist/patterns/work-queue/index.js +7 -0
- package/dist/patterns/work-queue/types.d.ts +128 -0
- package/dist/patterns/work-queue/types.js +45 -0
- package/dist/patterns/work-queue/work-queue.d.ts +48 -0
- package/dist/patterns/work-queue/work-queue.js +534 -0
- package/dist/patterns/work-queue/workload-board.d.ts +53 -0
- package/dist/patterns/work-queue/workload-board.js +608 -0
- package/package.json +93 -5
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Controller } from "../../core/controller.js";
|
|
2
|
+
import type { UploadFileLike, UploadQueueItem, UploaderEvents, UploaderSessionConfig, UploaderState } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Headless upload queue: validates files against the session constraints,
|
|
5
|
+
* runs up to `concurrency` transport uploads at a time, tracks per-item
|
|
6
|
+
* progress, and supports cancel / retry / remove. The transport does the
|
|
7
|
+
* actual moving of bytes; this controller never touches the network.
|
|
8
|
+
*/
|
|
9
|
+
export declare class ContentUploaderController extends Controller<UploaderState, UploaderEvents> {
|
|
10
|
+
readonly config: UploaderSessionConfig;
|
|
11
|
+
private counter;
|
|
12
|
+
private readonly files;
|
|
13
|
+
private readonly abortControllers;
|
|
14
|
+
constructor(config: UploaderSessionConfig);
|
|
15
|
+
get concurrency(): number;
|
|
16
|
+
get autoStart(): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Validate and enqueue files. Rejected files emit `itemRejected` and never
|
|
19
|
+
* enter the queue. Returns the accepted queue items.
|
|
20
|
+
*/
|
|
21
|
+
addFiles(files: UploadFileLike[]): UploadQueueItem[];
|
|
22
|
+
/** Begin (or resume) uploading queued items, up to the concurrency limit. */
|
|
23
|
+
start(): void;
|
|
24
|
+
/** Abort an in-flight upload or withdraw a queued item. */
|
|
25
|
+
cancelItem(itemId: string): void;
|
|
26
|
+
/** Requeue a failed or cancelled item and resume the pump. */
|
|
27
|
+
retryItem(itemId: string): void;
|
|
28
|
+
/** Drop a settled item from the queue. In-flight items must be cancelled first. */
|
|
29
|
+
removeItem(itemId: string): void;
|
|
30
|
+
/** Drop every settled (succeeded / cancelled) item; failed stay for retry. */
|
|
31
|
+
clearCompleted(): void;
|
|
32
|
+
destroy(): void;
|
|
33
|
+
private getItem;
|
|
34
|
+
private setItems;
|
|
35
|
+
private patchItem;
|
|
36
|
+
private pump;
|
|
37
|
+
private uploadItem;
|
|
38
|
+
private checkDrained;
|
|
39
|
+
}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
import { Controller } from "../../core/controller.js";
|
|
2
|
+
import { resolveUploadRejection, summarizeUploadQueue } from "./types.js";
|
|
3
|
+
const DEFAULT_CONCURRENCY = 2;
|
|
4
|
+
const isAbortError = (error) => error instanceof Error && (error.name === "AbortError" || error.message === "AbortError");
|
|
5
|
+
/**
|
|
6
|
+
* Headless upload queue: validates files against the session constraints,
|
|
7
|
+
* runs up to `concurrency` transport uploads at a time, tracks per-item
|
|
8
|
+
* progress, and supports cancel / retry / remove. The transport does the
|
|
9
|
+
* actual moving of bytes; this controller never touches the network.
|
|
10
|
+
*/
|
|
11
|
+
export class ContentUploaderController extends Controller {
|
|
12
|
+
config;
|
|
13
|
+
counter = 0;
|
|
14
|
+
files = new Map();
|
|
15
|
+
abortControllers = new Map();
|
|
16
|
+
constructor(config) {
|
|
17
|
+
super({ items: [], uploading: false });
|
|
18
|
+
this.config = config;
|
|
19
|
+
}
|
|
20
|
+
get concurrency() {
|
|
21
|
+
const value = this.config.concurrency ?? DEFAULT_CONCURRENCY;
|
|
22
|
+
return Number.isFinite(value) && value > 0 ? Math.floor(value) : DEFAULT_CONCURRENCY;
|
|
23
|
+
}
|
|
24
|
+
get autoStart() {
|
|
25
|
+
return this.config.autoStart ?? true;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Validate and enqueue files. Rejected files emit `itemRejected` and never
|
|
29
|
+
* enter the queue. Returns the accepted queue items.
|
|
30
|
+
*/
|
|
31
|
+
addFiles(files) {
|
|
32
|
+
const added = [];
|
|
33
|
+
for (const file of files) {
|
|
34
|
+
const rejection = resolveUploadRejection(file, this.config);
|
|
35
|
+
if (rejection) {
|
|
36
|
+
this.emit("itemRejected", { file, reason: rejection });
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
this.counter += 1;
|
|
40
|
+
const item = {
|
|
41
|
+
id: `upload-${this.counter}`,
|
|
42
|
+
name: file.name,
|
|
43
|
+
size: file.size,
|
|
44
|
+
status: "queued",
|
|
45
|
+
progress: 0,
|
|
46
|
+
};
|
|
47
|
+
this.files.set(item.id, file);
|
|
48
|
+
added.push(item);
|
|
49
|
+
}
|
|
50
|
+
if (added.length) {
|
|
51
|
+
this.setItems([...this.state.items, ...added]);
|
|
52
|
+
for (const item of added) {
|
|
53
|
+
this.emit("itemAdded", { item });
|
|
54
|
+
}
|
|
55
|
+
if (this.autoStart) {
|
|
56
|
+
this.start();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return added;
|
|
60
|
+
}
|
|
61
|
+
/** Begin (or resume) uploading queued items, up to the concurrency limit. */
|
|
62
|
+
start() {
|
|
63
|
+
this.pump();
|
|
64
|
+
}
|
|
65
|
+
/** Abort an in-flight upload or withdraw a queued item. */
|
|
66
|
+
cancelItem(itemId) {
|
|
67
|
+
const item = this.getItem(itemId);
|
|
68
|
+
if (!item) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
if (item.status === "uploading") {
|
|
72
|
+
// The upload promise handler transitions the item to "cancelled".
|
|
73
|
+
this.abortControllers.get(itemId)?.abort();
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
if (item.status === "queued") {
|
|
77
|
+
const cancelled = this.patchItem(itemId, { status: "cancelled" });
|
|
78
|
+
if (cancelled) {
|
|
79
|
+
this.emit("itemCancelled", { item: cancelled });
|
|
80
|
+
}
|
|
81
|
+
this.checkDrained();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/** Requeue a failed or cancelled item and resume the pump. */
|
|
85
|
+
retryItem(itemId) {
|
|
86
|
+
const item = this.getItem(itemId);
|
|
87
|
+
if (!item || (item.status !== "failed" && item.status !== "cancelled")) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
this.patchItem(itemId, { status: "queued", progress: 0, errorMessage: undefined });
|
|
91
|
+
this.start();
|
|
92
|
+
}
|
|
93
|
+
/** Drop a settled item from the queue. In-flight items must be cancelled first. */
|
|
94
|
+
removeItem(itemId) {
|
|
95
|
+
const item = this.getItem(itemId);
|
|
96
|
+
if (!item || item.status === "uploading") {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
this.files.delete(itemId);
|
|
100
|
+
this.setItems(this.state.items.filter(entry => entry.id !== itemId));
|
|
101
|
+
this.emit("itemRemoved", { itemId });
|
|
102
|
+
}
|
|
103
|
+
/** Drop every settled (succeeded / cancelled) item; failed stay for retry. */
|
|
104
|
+
clearCompleted() {
|
|
105
|
+
const remaining = this.state.items.filter(item => item.status !== "succeeded" && item.status !== "cancelled");
|
|
106
|
+
if (remaining.length === this.state.items.length) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
for (const item of this.state.items) {
|
|
110
|
+
if (item.status === "succeeded" || item.status === "cancelled") {
|
|
111
|
+
this.files.delete(item.id);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
this.setItems(remaining);
|
|
115
|
+
}
|
|
116
|
+
destroy() {
|
|
117
|
+
for (const abortController of this.abortControllers.values()) {
|
|
118
|
+
abortController.abort();
|
|
119
|
+
}
|
|
120
|
+
this.abortControllers.clear();
|
|
121
|
+
super.destroy();
|
|
122
|
+
}
|
|
123
|
+
getItem(itemId) {
|
|
124
|
+
return this.state.items.find(item => item.id === itemId);
|
|
125
|
+
}
|
|
126
|
+
setItems(items) {
|
|
127
|
+
this.setState({
|
|
128
|
+
items,
|
|
129
|
+
uploading: items.some(item => item.status === "uploading"),
|
|
130
|
+
});
|
|
131
|
+
this.emit("queueChanged", { items });
|
|
132
|
+
}
|
|
133
|
+
patchItem(itemId, patch) {
|
|
134
|
+
let patched;
|
|
135
|
+
const items = this.state.items.map(item => {
|
|
136
|
+
if (item.id !== itemId) {
|
|
137
|
+
return item;
|
|
138
|
+
}
|
|
139
|
+
patched = { ...item, ...patch };
|
|
140
|
+
return patched;
|
|
141
|
+
});
|
|
142
|
+
if (patched) {
|
|
143
|
+
this.setItems(items);
|
|
144
|
+
}
|
|
145
|
+
return patched;
|
|
146
|
+
}
|
|
147
|
+
pump() {
|
|
148
|
+
while (summarizeUploadQueue(this.state.items).uploading < this.concurrency &&
|
|
149
|
+
this.state.items.some(item => item.status === "queued")) {
|
|
150
|
+
const next = this.state.items.find(item => item.status === "queued");
|
|
151
|
+
if (!next) {
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
void this.uploadItem(next.id);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
async uploadItem(itemId) {
|
|
158
|
+
const file = this.files.get(itemId);
|
|
159
|
+
const item = this.getItem(itemId);
|
|
160
|
+
if (!file || !item || item.status !== "queued") {
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
const abortController = typeof AbortController === "function" ? new AbortController() : null;
|
|
164
|
+
if (abortController) {
|
|
165
|
+
this.abortControllers.set(itemId, abortController);
|
|
166
|
+
}
|
|
167
|
+
const started = this.patchItem(itemId, { status: "uploading", progress: 0 });
|
|
168
|
+
if (started) {
|
|
169
|
+
this.emit("itemStarted", { item: started });
|
|
170
|
+
}
|
|
171
|
+
try {
|
|
172
|
+
const result = await this.config.transport.uploadFile({
|
|
173
|
+
file,
|
|
174
|
+
fileName: item.name,
|
|
175
|
+
folderId: this.config.folderId,
|
|
176
|
+
token: this.config.token,
|
|
177
|
+
language: this.config.language,
|
|
178
|
+
...(abortController ? { signal: abortController.signal } : {}),
|
|
179
|
+
onProgress: fraction => {
|
|
180
|
+
const clamped = Math.max(0, Math.min(1, fraction));
|
|
181
|
+
const progressed = this.patchItem(itemId, { progress: clamped });
|
|
182
|
+
if (progressed) {
|
|
183
|
+
this.emit("itemProgress", { item: progressed });
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
});
|
|
187
|
+
const succeeded = this.patchItem(itemId, {
|
|
188
|
+
status: "succeeded",
|
|
189
|
+
progress: 1,
|
|
190
|
+
fileId: result.fileId,
|
|
191
|
+
});
|
|
192
|
+
if (succeeded) {
|
|
193
|
+
this.emit("itemSucceeded", { item: succeeded });
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
catch (error) {
|
|
197
|
+
if (abortController?.signal.aborted || isAbortError(error)) {
|
|
198
|
+
const cancelled = this.patchItem(itemId, { status: "cancelled" });
|
|
199
|
+
if (cancelled) {
|
|
200
|
+
this.emit("itemCancelled", { item: cancelled });
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
const message = error instanceof Error ? error.message : "Upload failed";
|
|
205
|
+
const failed = this.patchItem(itemId, { status: "failed", errorMessage: message });
|
|
206
|
+
if (failed) {
|
|
207
|
+
this.emit("itemFailed", { item: failed });
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
finally {
|
|
212
|
+
this.abortControllers.delete(itemId);
|
|
213
|
+
this.pump();
|
|
214
|
+
this.checkDrained();
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
checkDrained() {
|
|
218
|
+
const summary = summarizeUploadQueue(this.state.items);
|
|
219
|
+
if (summary.total > 0 && summary.queued === 0 && summary.uploading === 0) {
|
|
220
|
+
this.emit("queueDrained", {
|
|
221
|
+
succeeded: summary.succeeded,
|
|
222
|
+
failed: summary.failed,
|
|
223
|
+
cancelled: summary.cancelled,
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Upload queue contracts, constraints, and state types
|
|
2
|
+
export * from "./types.js";
|
|
3
|
+
// Headless queue controller
|
|
4
|
+
export * from "./controller.js";
|
|
5
|
+
// Box multipart upload transport
|
|
6
|
+
export * from "./box-transport.js";
|
|
7
|
+
// Composed workflow surface
|
|
8
|
+
export * from "./content-uploader.js";
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The minimum surface the uploader needs from a file: browsers hand us `File`
|
|
3
|
+
* objects, tests and non-DOM callers can pass any Blob-like with a name.
|
|
4
|
+
*/
|
|
5
|
+
export interface UploadFileLike {
|
|
6
|
+
name: string;
|
|
7
|
+
size: number;
|
|
8
|
+
}
|
|
9
|
+
export type UploadItemStatus = "queued" | "uploading" | "succeeded" | "failed" | "cancelled";
|
|
10
|
+
export interface UploadQueueItem {
|
|
11
|
+
/** Locally-assigned queue id — not the Box file id. */
|
|
12
|
+
id: string;
|
|
13
|
+
name: string;
|
|
14
|
+
size: number;
|
|
15
|
+
status: UploadItemStatus;
|
|
16
|
+
/** 0–1 fraction reported by the transport; 1 once the upload succeeds. */
|
|
17
|
+
progress: number;
|
|
18
|
+
/** Present when `status` is "failed". */
|
|
19
|
+
errorMessage?: string;
|
|
20
|
+
/** Remote file id from the transport once the upload succeeds. */
|
|
21
|
+
fileId?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface UploadRequest {
|
|
24
|
+
file: UploadFileLike;
|
|
25
|
+
fileName: string;
|
|
26
|
+
folderId: string;
|
|
27
|
+
token: string;
|
|
28
|
+
language?: string;
|
|
29
|
+
signal?: AbortSignal;
|
|
30
|
+
/** Report fractional progress (0–1). Transports may only report completion. */
|
|
31
|
+
onProgress?: (fraction: number) => void;
|
|
32
|
+
}
|
|
33
|
+
export interface UploadResult {
|
|
34
|
+
fileId: string;
|
|
35
|
+
name?: string;
|
|
36
|
+
size?: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* One narrow capability: move a single file to the destination folder. How —
|
|
40
|
+
* multipart, chunked upload sessions, a BFF — is the transport's business;
|
|
41
|
+
* the queue orchestration above it never changes.
|
|
42
|
+
*/
|
|
43
|
+
export interface UploadTransport {
|
|
44
|
+
uploadFile(request: UploadRequest): Promise<UploadResult>;
|
|
45
|
+
}
|
|
46
|
+
export interface UploaderConstraints {
|
|
47
|
+
/**
|
|
48
|
+
* Extension allowlist (case-insensitive, no leading dot) matched against
|
|
49
|
+
* the file name's suffix. Empty or omitted accepts every extension.
|
|
50
|
+
*/
|
|
51
|
+
extensions?: string[];
|
|
52
|
+
/** Reject files larger than this many bytes. Omitted means no limit. */
|
|
53
|
+
maxFileSizeBytes?: number;
|
|
54
|
+
}
|
|
55
|
+
export interface UploaderSessionConfig extends UploaderConstraints {
|
|
56
|
+
folderId: string;
|
|
57
|
+
token: string;
|
|
58
|
+
transport: UploadTransport;
|
|
59
|
+
language?: string;
|
|
60
|
+
/** Simultaneous uploads. Defaults to 2. */
|
|
61
|
+
concurrency?: number;
|
|
62
|
+
/** Start uploading as soon as files are added. Defaults to true. */
|
|
63
|
+
autoStart?: boolean;
|
|
64
|
+
}
|
|
65
|
+
export type UploadRejectionReason = "extension-not-allowed" | "file-too-large";
|
|
66
|
+
export interface UploaderState {
|
|
67
|
+
items: UploadQueueItem[];
|
|
68
|
+
/** True while any item is actively uploading. */
|
|
69
|
+
uploading: boolean;
|
|
70
|
+
}
|
|
71
|
+
export interface UploaderEvents {
|
|
72
|
+
itemAdded: {
|
|
73
|
+
item: UploadQueueItem;
|
|
74
|
+
};
|
|
75
|
+
itemRejected: {
|
|
76
|
+
file: UploadFileLike;
|
|
77
|
+
reason: UploadRejectionReason;
|
|
78
|
+
};
|
|
79
|
+
itemStarted: {
|
|
80
|
+
item: UploadQueueItem;
|
|
81
|
+
};
|
|
82
|
+
itemProgress: {
|
|
83
|
+
item: UploadQueueItem;
|
|
84
|
+
};
|
|
85
|
+
itemSucceeded: {
|
|
86
|
+
item: UploadQueueItem;
|
|
87
|
+
};
|
|
88
|
+
itemFailed: {
|
|
89
|
+
item: UploadQueueItem;
|
|
90
|
+
};
|
|
91
|
+
itemCancelled: {
|
|
92
|
+
item: UploadQueueItem;
|
|
93
|
+
};
|
|
94
|
+
itemRemoved: {
|
|
95
|
+
itemId: string;
|
|
96
|
+
};
|
|
97
|
+
queueChanged: {
|
|
98
|
+
items: UploadQueueItem[];
|
|
99
|
+
};
|
|
100
|
+
/** Fired when the last active item settles and nothing is queued. */
|
|
101
|
+
queueDrained: {
|
|
102
|
+
succeeded: number;
|
|
103
|
+
failed: number;
|
|
104
|
+
cancelled: number;
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Pure acceptance check — the single source of truth for what the uploader
|
|
109
|
+
* lets into its queue. Returns the rejection reason, or null when accepted.
|
|
110
|
+
*/
|
|
111
|
+
export declare const resolveUploadRejection: (file: UploadFileLike, constraints: UploaderConstraints) => UploadRejectionReason | null;
|
|
112
|
+
export interface UploadQueueSummary {
|
|
113
|
+
total: number;
|
|
114
|
+
queued: number;
|
|
115
|
+
uploading: number;
|
|
116
|
+
succeeded: number;
|
|
117
|
+
failed: number;
|
|
118
|
+
cancelled: number;
|
|
119
|
+
}
|
|
120
|
+
export declare const summarizeUploadQueue: (items: readonly UploadQueueItem[]) => UploadQueueSummary;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
const normalizeExtension = (value) => value.replace(/^\./, "").toLowerCase();
|
|
2
|
+
const resolveFileExtension = (name) => {
|
|
3
|
+
const dotIndex = name.lastIndexOf(".");
|
|
4
|
+
if (dotIndex <= 0 || dotIndex === name.length - 1) {
|
|
5
|
+
return null;
|
|
6
|
+
}
|
|
7
|
+
return normalizeExtension(name.slice(dotIndex + 1));
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Pure acceptance check — the single source of truth for what the uploader
|
|
11
|
+
* lets into its queue. Returns the rejection reason, or null when accepted.
|
|
12
|
+
*/
|
|
13
|
+
export const resolveUploadRejection = (file, constraints) => {
|
|
14
|
+
if (constraints.extensions?.length) {
|
|
15
|
+
const extension = resolveFileExtension(file.name);
|
|
16
|
+
if (!extension || !constraints.extensions.map(normalizeExtension).includes(extension)) {
|
|
17
|
+
return "extension-not-allowed";
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
if (constraints.maxFileSizeBytes != null && file.size > constraints.maxFileSizeBytes) {
|
|
21
|
+
return "file-too-large";
|
|
22
|
+
}
|
|
23
|
+
return null;
|
|
24
|
+
};
|
|
25
|
+
export const summarizeUploadQueue = (items) => {
|
|
26
|
+
const summary = {
|
|
27
|
+
total: items.length,
|
|
28
|
+
queued: 0,
|
|
29
|
+
uploading: 0,
|
|
30
|
+
succeeded: 0,
|
|
31
|
+
failed: 0,
|
|
32
|
+
cancelled: 0,
|
|
33
|
+
};
|
|
34
|
+
for (const item of items) {
|
|
35
|
+
summary[item.status] += 1;
|
|
36
|
+
}
|
|
37
|
+
return summary;
|
|
38
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { CompareSyncMode } from "./types.js";
|
|
2
|
+
import { BaseElement } from "../../core/index.js";
|
|
3
|
+
/**
|
|
4
|
+
* Side-by-side comparison shell with scroll-locked panes — doc-vs-doc review
|
|
5
|
+
* for the cases the diff table cannot serve, where the two things being
|
|
6
|
+
* compared are rendered documents rather than lines of text.
|
|
7
|
+
*
|
|
8
|
+
* The scroll maths lives in `mapScrollPosition`, which is pure, so the
|
|
9
|
+
* interesting behaviour is testable without a layout engine and a host can
|
|
10
|
+
* reuse it to drive its own panes.
|
|
11
|
+
*
|
|
12
|
+
* The subtle part is the **feedback loop**. Scrolling the left pane sets the
|
|
13
|
+
* right pane's `scrollTop`, which fires the right pane's own scroll event,
|
|
14
|
+
* which would scroll the left pane back — the two panes fight, and a slow
|
|
15
|
+
* drag turns into a stutter. Each programmatic scroll therefore marks the
|
|
16
|
+
* pane it is about to move, and that pane's next scroll event is swallowed.
|
|
17
|
+
*
|
|
18
|
+
* The mark is cleared immediately when the assignment does not actually move
|
|
19
|
+
* the pane (already there, or clamped at an end): no scroll event will fire
|
|
20
|
+
* in that case, so a mark left set would swallow the user's *next* real
|
|
21
|
+
* scroll instead.
|
|
22
|
+
*/
|
|
23
|
+
export declare class CompareView extends BaseElement {
|
|
24
|
+
static readonly tagName: string;
|
|
25
|
+
static get observedAttributes(): string[];
|
|
26
|
+
private hostEl;
|
|
27
|
+
private leftEl;
|
|
28
|
+
private rightEl;
|
|
29
|
+
private toggleEl;
|
|
30
|
+
/** The pane whose next scroll event came from us, not from the user. */
|
|
31
|
+
private echoPane;
|
|
32
|
+
get heading(): string;
|
|
33
|
+
set heading(value: string);
|
|
34
|
+
get leftLabel(): string;
|
|
35
|
+
set leftLabel(value: string);
|
|
36
|
+
get rightLabel(): string;
|
|
37
|
+
set rightLabel(value: string);
|
|
38
|
+
/** Scroll lock. On by default — comparing is the point of the component. */
|
|
39
|
+
get sync(): boolean;
|
|
40
|
+
set sync(value: boolean);
|
|
41
|
+
get syncMode(): CompareSyncMode;
|
|
42
|
+
set syncMode(value: CompareSyncMode);
|
|
43
|
+
private syncFrom;
|
|
44
|
+
protected renderTemplate(): void;
|
|
45
|
+
protected setupListeners(): void;
|
|
46
|
+
protected update(): void;
|
|
47
|
+
}
|