@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,62 @@
|
|
|
1
|
+
import { summarizeWizardValues } from "./types.js";
|
|
2
|
+
import type { WizardStepConfig, WizardSummaryField } from "./types.js";
|
|
3
|
+
import { BaseElement } from "../../core/index.js";
|
|
4
|
+
/**
|
|
5
|
+
* The review step of a `box-form-wizard`: everything collected so far, grouped
|
|
6
|
+
* by the step that collected it, with an Edit link per group.
|
|
7
|
+
*
|
|
8
|
+
* The card is read-only and emits `edit-requested` rather than navigating
|
|
9
|
+
* itself, so the host stays in charge of the wizard — the same intent contract
|
|
10
|
+
* the rest of the patterns use.
|
|
11
|
+
*
|
|
12
|
+
* Two details carry the weight:
|
|
13
|
+
*
|
|
14
|
+
* - Sections follow **step order**, so the summary reads back in the sequence
|
|
15
|
+
* the user filled it in rather than in whatever order the fields were
|
|
16
|
+
* declared.
|
|
17
|
+
* - A field naming a step that does not exist lands in a trailing section
|
|
18
|
+
* instead of vanishing. A review card exists so someone can confirm what
|
|
19
|
+
* they are submitting; silently dropping a row would let them confirm a
|
|
20
|
+
* value they were never shown.
|
|
21
|
+
*/
|
|
22
|
+
export declare class WizardSummary extends BaseElement {
|
|
23
|
+
static readonly tagName: string;
|
|
24
|
+
static get observedAttributes(): string[];
|
|
25
|
+
private hostEl;
|
|
26
|
+
private fieldsRaw;
|
|
27
|
+
private fieldsCache;
|
|
28
|
+
private stepsRaw;
|
|
29
|
+
private stepsCache;
|
|
30
|
+
private valuesRaw;
|
|
31
|
+
private valuesCache;
|
|
32
|
+
get heading(): string;
|
|
33
|
+
set heading(value: string);
|
|
34
|
+
/** Verb on the per-section control. The step label is appended for its accessible name. */
|
|
35
|
+
get editLabel(): string;
|
|
36
|
+
set editLabel(value: string);
|
|
37
|
+
/** Placeholder for a field with nothing collected. */
|
|
38
|
+
get emptyText(): string;
|
|
39
|
+
set emptyText(value: string);
|
|
40
|
+
/**
|
|
41
|
+
* Fields to summarise. Note that `format` cannot survive the attribute
|
|
42
|
+
* round-trip — set the property directly when a field needs one.
|
|
43
|
+
*/
|
|
44
|
+
get fields(): WizardSummaryField[];
|
|
45
|
+
/**
|
|
46
|
+
* Setting any of `fields`, `steps`, or `values` as a **property** stores the
|
|
47
|
+
* value as-is and re-renders. It is not mirrored to the attribute, because
|
|
48
|
+
* these carry things a JSON round-trip destroys — a field's `format`
|
|
49
|
+
* function, a `Date` in the collected values. The attributes remain the
|
|
50
|
+
* declarative path for plain records; whichever is set last wins.
|
|
51
|
+
*/
|
|
52
|
+
set fields(value: WizardSummaryField[]);
|
|
53
|
+
get steps(): WizardStepConfig[];
|
|
54
|
+
set steps(value: WizardStepConfig[]);
|
|
55
|
+
get values(): Record<string, unknown>;
|
|
56
|
+
set values(value: Record<string, unknown>);
|
|
57
|
+
/** The sections as rendered — same order, so a host can mirror the card. */
|
|
58
|
+
get sections(): ReturnType<typeof summarizeWizardValues>;
|
|
59
|
+
protected renderTemplate(): void;
|
|
60
|
+
protected setupListeners(): void;
|
|
61
|
+
protected update(): void;
|
|
62
|
+
}
|
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
import { isWizardSummaryFieldRecord, summarizeWizardValues, } from "./types.js";
|
|
2
|
+
import { BaseElement } from "../../core/index.js";
|
|
3
|
+
import { boePanel, boeRadius } from "../../foundations/geometry/index.js";
|
|
4
|
+
const DEFAULT_TAG_NAME = "box-wizard-summary";
|
|
5
|
+
const escapeHtml = (value) => value
|
|
6
|
+
.replaceAll("&", "&")
|
|
7
|
+
.replaceAll("<", "<")
|
|
8
|
+
.replaceAll(">", ">")
|
|
9
|
+
.replaceAll('"', """)
|
|
10
|
+
.replaceAll("'", "'");
|
|
11
|
+
const elementStyles = `
|
|
12
|
+
:host {
|
|
13
|
+
display: block;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
[part="card"] {
|
|
17
|
+
border: ${boePanel.border};
|
|
18
|
+
border-radius: ${boePanel.radius};
|
|
19
|
+
background: ${boePanel.background};
|
|
20
|
+
overflow: hidden;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
[part="heading"] {
|
|
24
|
+
margin: 0;
|
|
25
|
+
padding: 0.85rem 1rem;
|
|
26
|
+
font: inherit;
|
|
27
|
+
font-size: 0.95rem;
|
|
28
|
+
font-weight: 700;
|
|
29
|
+
color: var(--boe-token-text-text, #1f1e1b);
|
|
30
|
+
border-block-end: 1px solid color-mix(in srgb, var(--boe-token-stroke-stroke, #e8e8e8) 70%, transparent);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
[part="sections"] {
|
|
34
|
+
margin: 0;
|
|
35
|
+
padding: 0;
|
|
36
|
+
list-style: none;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
[part="section"] + [part="section"] {
|
|
40
|
+
border-block-start: 1px solid color-mix(in srgb, var(--boe-token-stroke-stroke, #e8e8e8) 55%, transparent);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
[part="section-header"] {
|
|
44
|
+
display: flex;
|
|
45
|
+
align-items: baseline;
|
|
46
|
+
gap: 0.75rem;
|
|
47
|
+
padding: 0.7rem 1rem 0.3rem;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
[part="section-label"] {
|
|
51
|
+
font-size: 0.72rem;
|
|
52
|
+
font-weight: 700;
|
|
53
|
+
letter-spacing: 0.08em;
|
|
54
|
+
text-transform: uppercase;
|
|
55
|
+
color: var(--boe-token-text-text-secondary, #6f6f6f);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
[part="edit"] {
|
|
59
|
+
margin-inline-start: auto;
|
|
60
|
+
appearance: none;
|
|
61
|
+
font: inherit;
|
|
62
|
+
font-size: 0.78rem;
|
|
63
|
+
padding: 0.15rem 0.5rem;
|
|
64
|
+
border: 1px solid var(--boe-token-stroke-stroke, #e8e8e8);
|
|
65
|
+
border-radius: ${boeRadius.control};
|
|
66
|
+
background: var(--boe-token-surface-surface, #ffffff);
|
|
67
|
+
color: var(--boe-token-surface-surface-brand, #0061d5);
|
|
68
|
+
cursor: pointer;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
[part="edit"]:hover {
|
|
72
|
+
background: var(--boe-token-surface-surface-hover, #f4f4f4);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
[part="edit"]:focus-visible {
|
|
76
|
+
outline: none;
|
|
77
|
+
box-shadow: 0 0 0 3px color-mix(in srgb, var(--boe-token-surface-surface-brand, #0061d5) 18%, transparent);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
[part="rows"] {
|
|
81
|
+
margin: 0;
|
|
82
|
+
padding: 0 1rem 0.8rem;
|
|
83
|
+
display: grid;
|
|
84
|
+
grid-template-columns: minmax(8rem, 14rem) 1fr;
|
|
85
|
+
gap: 0.3rem 1rem;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
[part="row-label"] {
|
|
89
|
+
margin: 0;
|
|
90
|
+
font-size: 0.85rem;
|
|
91
|
+
color: var(--boe-token-text-text-secondary, #6f6f6f);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
[part="row-value"] {
|
|
95
|
+
margin: 0;
|
|
96
|
+
font-size: 0.85rem;
|
|
97
|
+
color: var(--boe-token-text-text, #1f1e1b);
|
|
98
|
+
overflow-wrap: anywhere;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
[part="row-value"][data-empty="true"] {
|
|
102
|
+
color: var(--boe-token-text-text-secondary, #6f6f6f);
|
|
103
|
+
font-style: italic;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
[part="empty"] {
|
|
107
|
+
padding: 1.2rem 1rem;
|
|
108
|
+
text-align: center;
|
|
109
|
+
color: var(--boe-token-text-text-secondary, #6f6f6f);
|
|
110
|
+
}
|
|
111
|
+
`;
|
|
112
|
+
/**
|
|
113
|
+
* The review step of a `box-form-wizard`: everything collected so far, grouped
|
|
114
|
+
* by the step that collected it, with an Edit link per group.
|
|
115
|
+
*
|
|
116
|
+
* The card is read-only and emits `edit-requested` rather than navigating
|
|
117
|
+
* itself, so the host stays in charge of the wizard — the same intent contract
|
|
118
|
+
* the rest of the patterns use.
|
|
119
|
+
*
|
|
120
|
+
* Two details carry the weight:
|
|
121
|
+
*
|
|
122
|
+
* - Sections follow **step order**, so the summary reads back in the sequence
|
|
123
|
+
* the user filled it in rather than in whatever order the fields were
|
|
124
|
+
* declared.
|
|
125
|
+
* - A field naming a step that does not exist lands in a trailing section
|
|
126
|
+
* instead of vanishing. A review card exists so someone can confirm what
|
|
127
|
+
* they are submitting; silently dropping a row would let them confirm a
|
|
128
|
+
* value they were never shown.
|
|
129
|
+
*/
|
|
130
|
+
export class WizardSummary extends BaseElement {
|
|
131
|
+
static tagName = DEFAULT_TAG_NAME;
|
|
132
|
+
static get observedAttributes() {
|
|
133
|
+
return ["edit-label", "empty-text", "fields", "heading", "steps", "values"];
|
|
134
|
+
}
|
|
135
|
+
hostEl;
|
|
136
|
+
fieldsRaw = null;
|
|
137
|
+
fieldsCache = [];
|
|
138
|
+
stepsRaw = null;
|
|
139
|
+
stepsCache = [];
|
|
140
|
+
valuesRaw = null;
|
|
141
|
+
valuesCache = {};
|
|
142
|
+
get heading() {
|
|
143
|
+
return this.getAttribute("heading") ?? "Review your answers";
|
|
144
|
+
}
|
|
145
|
+
set heading(value) {
|
|
146
|
+
this.setAttribute("heading", value);
|
|
147
|
+
}
|
|
148
|
+
/** Verb on the per-section control. The step label is appended for its accessible name. */
|
|
149
|
+
get editLabel() {
|
|
150
|
+
return this.getAttribute("edit-label") ?? "Edit";
|
|
151
|
+
}
|
|
152
|
+
set editLabel(value) {
|
|
153
|
+
this.setAttribute("edit-label", value);
|
|
154
|
+
}
|
|
155
|
+
/** Placeholder for a field with nothing collected. */
|
|
156
|
+
get emptyText() {
|
|
157
|
+
return this.getAttribute("empty-text") ?? "Not provided";
|
|
158
|
+
}
|
|
159
|
+
set emptyText(value) {
|
|
160
|
+
this.setAttribute("empty-text", value);
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Fields to summarise. Note that `format` cannot survive the attribute
|
|
164
|
+
* round-trip — set the property directly when a field needs one.
|
|
165
|
+
*/
|
|
166
|
+
get fields() {
|
|
167
|
+
const raw = this.getAttribute("fields");
|
|
168
|
+
if (!raw) {
|
|
169
|
+
return [...this.fieldsCache];
|
|
170
|
+
}
|
|
171
|
+
if (raw !== this.fieldsRaw) {
|
|
172
|
+
this.fieldsRaw = raw;
|
|
173
|
+
try {
|
|
174
|
+
const parsed = JSON.parse(raw);
|
|
175
|
+
this.fieldsCache =
|
|
176
|
+
Array.isArray(parsed) && parsed.every(isWizardSummaryFieldRecord)
|
|
177
|
+
? parsed
|
|
178
|
+
: [];
|
|
179
|
+
}
|
|
180
|
+
catch {
|
|
181
|
+
this.fieldsCache = [];
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return [...this.fieldsCache];
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Setting any of `fields`, `steps`, or `values` as a **property** stores the
|
|
188
|
+
* value as-is and re-renders. It is not mirrored to the attribute, because
|
|
189
|
+
* these carry things a JSON round-trip destroys — a field's `format`
|
|
190
|
+
* function, a `Date` in the collected values. The attributes remain the
|
|
191
|
+
* declarative path for plain records; whichever is set last wins.
|
|
192
|
+
*/
|
|
193
|
+
set fields(value) {
|
|
194
|
+
this.fieldsCache = [...value];
|
|
195
|
+
this.fieldsRaw = null;
|
|
196
|
+
this.removeAttribute("fields");
|
|
197
|
+
this.update();
|
|
198
|
+
}
|
|
199
|
+
get steps() {
|
|
200
|
+
const raw = this.getAttribute("steps");
|
|
201
|
+
if (!raw) {
|
|
202
|
+
return [...this.stepsCache];
|
|
203
|
+
}
|
|
204
|
+
if (raw !== this.stepsRaw) {
|
|
205
|
+
this.stepsRaw = raw;
|
|
206
|
+
try {
|
|
207
|
+
const parsed = JSON.parse(raw);
|
|
208
|
+
this.stepsCache = Array.isArray(parsed)
|
|
209
|
+
? parsed.filter(step => typeof step === "object" &&
|
|
210
|
+
step !== null &&
|
|
211
|
+
typeof step.id === "string" &&
|
|
212
|
+
typeof step.label === "string")
|
|
213
|
+
: [];
|
|
214
|
+
}
|
|
215
|
+
catch {
|
|
216
|
+
this.stepsCache = [];
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
return [...this.stepsCache];
|
|
220
|
+
}
|
|
221
|
+
set steps(value) {
|
|
222
|
+
this.stepsCache = [...value];
|
|
223
|
+
this.stepsRaw = null;
|
|
224
|
+
this.removeAttribute("steps");
|
|
225
|
+
this.update();
|
|
226
|
+
}
|
|
227
|
+
get values() {
|
|
228
|
+
const raw = this.getAttribute("values");
|
|
229
|
+
if (!raw) {
|
|
230
|
+
return { ...this.valuesCache };
|
|
231
|
+
}
|
|
232
|
+
if (raw !== this.valuesRaw) {
|
|
233
|
+
this.valuesRaw = raw;
|
|
234
|
+
try {
|
|
235
|
+
const parsed = JSON.parse(raw);
|
|
236
|
+
this.valuesCache =
|
|
237
|
+
typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)
|
|
238
|
+
? parsed
|
|
239
|
+
: {};
|
|
240
|
+
}
|
|
241
|
+
catch {
|
|
242
|
+
this.valuesCache = {};
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
return { ...this.valuesCache };
|
|
246
|
+
}
|
|
247
|
+
set values(value) {
|
|
248
|
+
this.valuesCache = { ...value };
|
|
249
|
+
this.valuesRaw = null;
|
|
250
|
+
this.removeAttribute("values");
|
|
251
|
+
this.update();
|
|
252
|
+
}
|
|
253
|
+
/** The sections as rendered — same order, so a host can mirror the card. */
|
|
254
|
+
get sections() {
|
|
255
|
+
return summarizeWizardValues(this.fields, this.values, this.steps);
|
|
256
|
+
}
|
|
257
|
+
renderTemplate() {
|
|
258
|
+
if (!this.shadowRoot) {
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
this.shadowRoot.innerHTML = `<style>${elementStyles}</style><div part="host"></div>`;
|
|
262
|
+
this.hostEl = this.shadowRoot.querySelector('[part="host"]');
|
|
263
|
+
}
|
|
264
|
+
setupListeners() {
|
|
265
|
+
this.hostEl.addEventListener("click", event => {
|
|
266
|
+
const trigger = event.target.closest('[part="edit"]');
|
|
267
|
+
if (!trigger) {
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
const stepId = trigger.getAttribute("data-step-id");
|
|
271
|
+
if (stepId === null) {
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
274
|
+
this.dispatchEvent(new CustomEvent("edit-requested", {
|
|
275
|
+
detail: { stepId },
|
|
276
|
+
bubbles: true,
|
|
277
|
+
composed: true,
|
|
278
|
+
}));
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
update() {
|
|
282
|
+
if (!this.hostEl) {
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
const sections = this.sections;
|
|
286
|
+
const body = sections.length
|
|
287
|
+
? `<ul part="sections" role="list">${sections
|
|
288
|
+
.map(section => {
|
|
289
|
+
const rows = section.rows
|
|
290
|
+
.map(row => {
|
|
291
|
+
const shown = row.empty ? this.emptyText : row.value;
|
|
292
|
+
return `
|
|
293
|
+
<dt part="row-label">${escapeHtml(row.label)}</dt>
|
|
294
|
+
<dd part="row-value" data-empty="${String(row.empty)}" data-key="${escapeHtml(row.key)}">${escapeHtml(shown)}</dd>
|
|
295
|
+
`;
|
|
296
|
+
})
|
|
297
|
+
.join("");
|
|
298
|
+
// The accessible name carries the step, because a screen-reader
|
|
299
|
+
// user hearing five buttons all called "Edit" learns nothing about
|
|
300
|
+
// which one goes where.
|
|
301
|
+
const edit = section.unknownStep
|
|
302
|
+
? ""
|
|
303
|
+
: `<button type="button" part="edit" data-step-id="${escapeHtml(section.stepId)}" aria-label="${escapeHtml(`${this.editLabel} ${section.label}`)}">${escapeHtml(this.editLabel)}</button>`;
|
|
304
|
+
return `
|
|
305
|
+
<li part="section" data-step-id="${escapeHtml(section.stepId)}" data-unknown-step="${String(section.unknownStep)}">
|
|
306
|
+
<div part="section-header">
|
|
307
|
+
<span part="section-label">${escapeHtml(section.label)}</span>
|
|
308
|
+
${edit}
|
|
309
|
+
</div>
|
|
310
|
+
<dl part="rows">${rows}</dl>
|
|
311
|
+
</li>
|
|
312
|
+
`;
|
|
313
|
+
})
|
|
314
|
+
.join("")}</ul>`
|
|
315
|
+
: `<div part="empty">Nothing to review yet.</div>`;
|
|
316
|
+
this.hostEl.innerHTML = `
|
|
317
|
+
<section part="card" aria-label="${escapeHtml(this.heading)}">
|
|
318
|
+
<h3 part="heading">${escapeHtml(this.heading)}</h3>
|
|
319
|
+
${body}
|
|
320
|
+
</section>
|
|
321
|
+
`;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
WizardSummary.register();
|
|
@@ -14,7 +14,8 @@ type GovernancePanelSignal = {
|
|
|
14
14
|
label: string;
|
|
15
15
|
tone?: string;
|
|
16
16
|
};
|
|
17
|
-
export declare class
|
|
17
|
+
export declare class GovernancePanel extends BaseElement {
|
|
18
|
+
static readonly tagName: string;
|
|
18
19
|
static get observedAttributes(): string[];
|
|
19
20
|
get actions(): GovernancePanelAction[];
|
|
20
21
|
set actions(value: GovernancePanelAction[]);
|
|
@@ -36,5 +37,4 @@ export declare class BoxGovernancePanelElement extends BaseElement {
|
|
|
36
37
|
protected renderTemplate(): void;
|
|
37
38
|
protected update(): void;
|
|
38
39
|
}
|
|
39
|
-
export declare const defineBoxGovernancePanelElement: (tagName?: string) => void;
|
|
40
40
|
export {};
|
|
@@ -164,7 +164,8 @@ const elementStyles = `
|
|
|
164
164
|
color: var(--boe-token-text-text-on-brand, #ffffff);
|
|
165
165
|
}
|
|
166
166
|
`;
|
|
167
|
-
export class
|
|
167
|
+
export class GovernancePanel extends BaseElement {
|
|
168
|
+
static tagName = DEFAULT_TAG_NAME;
|
|
168
169
|
static get observedAttributes() {
|
|
169
170
|
return ["actions", "heading", "message", "policies", "signals", "status"];
|
|
170
171
|
}
|
|
@@ -344,8 +345,4 @@ export class BoxGovernancePanelElement extends BaseElement {
|
|
|
344
345
|
});
|
|
345
346
|
}
|
|
346
347
|
}
|
|
347
|
-
|
|
348
|
-
if (!customElements.get(tagName)) {
|
|
349
|
-
customElements.define(tagName, BoxGovernancePanelElement);
|
|
350
|
-
}
|
|
351
|
-
};
|
|
348
|
+
GovernancePanel.register();
|
|
@@ -15,7 +15,8 @@ type BarChartPoint = {
|
|
|
15
15
|
tone?: string;
|
|
16
16
|
value: number;
|
|
17
17
|
};
|
|
18
|
-
export declare class
|
|
18
|
+
export declare class BarChart extends BaseElement {
|
|
19
|
+
static readonly tagName: string;
|
|
19
20
|
static get observedAttributes(): string[];
|
|
20
21
|
get actions(): BarChartAction[];
|
|
21
22
|
set actions(value: BarChartAction[]);
|
|
@@ -39,5 +40,4 @@ export declare class BoxBarChartElement extends BaseElement {
|
|
|
39
40
|
protected renderTemplate(): void;
|
|
40
41
|
protected update(): void;
|
|
41
42
|
}
|
|
42
|
-
export declare const defineBoxBarChartElement: (tagName?: string) => void;
|
|
43
43
|
export {};
|
|
@@ -249,7 +249,8 @@ const elementStyles = `
|
|
|
249
249
|
color: var(--boe-token-text-text-secondary, #6f6f6f);
|
|
250
250
|
}
|
|
251
251
|
`;
|
|
252
|
-
export class
|
|
252
|
+
export class BarChart extends BaseElement {
|
|
253
|
+
static tagName = DEFAULT_TAG_NAME;
|
|
253
254
|
static get observedAttributes() {
|
|
254
255
|
return ["actions", "heading", "legend", "message", "points", "summary", "timeframe"];
|
|
255
256
|
}
|
|
@@ -455,8 +456,4 @@ export class BoxBarChartElement extends BaseElement {
|
|
|
455
456
|
});
|
|
456
457
|
}
|
|
457
458
|
}
|
|
458
|
-
|
|
459
|
-
if (!customElements.get(tagName)) {
|
|
460
|
-
customElements.define(tagName, BoxBarChartElement);
|
|
461
|
-
}
|
|
462
|
-
};
|
|
459
|
+
BarChart.register();
|
|
@@ -15,7 +15,8 @@ type ChartPanelPoint = {
|
|
|
15
15
|
tone?: string;
|
|
16
16
|
value: number;
|
|
17
17
|
};
|
|
18
|
-
export declare class
|
|
18
|
+
export declare class ChartPanel extends BaseElement {
|
|
19
|
+
static readonly tagName: string;
|
|
19
20
|
static get observedAttributes(): string[];
|
|
20
21
|
get actions(): ChartPanelAction[];
|
|
21
22
|
set actions(value: ChartPanelAction[]);
|
|
@@ -39,5 +40,4 @@ export declare class BoxChartPanelElement extends BaseElement {
|
|
|
39
40
|
protected renderTemplate(): void;
|
|
40
41
|
protected update(): void;
|
|
41
42
|
}
|
|
42
|
-
export declare const defineBoxChartPanelElement: (tagName?: string) => void;
|
|
43
43
|
export {};
|
|
@@ -229,7 +229,8 @@ const elementStyles = `
|
|
|
229
229
|
color: var(--boe-token-text-text-on-brand, #ffffff);
|
|
230
230
|
}
|
|
231
231
|
`;
|
|
232
|
-
export class
|
|
232
|
+
export class ChartPanel extends BaseElement {
|
|
233
|
+
static tagName = DEFAULT_TAG_NAME;
|
|
233
234
|
static get observedAttributes() {
|
|
234
235
|
return ["actions", "heading", "legend", "message", "points", "summary", "timeframe"];
|
|
235
236
|
}
|
|
@@ -429,8 +430,4 @@ export class BoxChartPanelElement extends BaseElement {
|
|
|
429
430
|
});
|
|
430
431
|
}
|
|
431
432
|
}
|
|
432
|
-
|
|
433
|
-
if (!customElements.get(tagName)) {
|
|
434
|
-
customElements.define(tagName, BoxChartPanelElement);
|
|
435
|
-
}
|
|
436
|
-
};
|
|
433
|
+
ChartPanel.register();
|
|
@@ -10,7 +10,8 @@ type DonutChartSegment = {
|
|
|
10
10
|
tone?: string;
|
|
11
11
|
value: number;
|
|
12
12
|
};
|
|
13
|
-
export declare class
|
|
13
|
+
export declare class DonutChart extends BaseElement {
|
|
14
|
+
static readonly tagName: string;
|
|
14
15
|
static get observedAttributes(): string[];
|
|
15
16
|
private selectedSegmentId;
|
|
16
17
|
get actions(): DonutChartAction[];
|
|
@@ -39,5 +40,4 @@ export declare class BoxDonutChartElement extends BaseElement {
|
|
|
39
40
|
protected renderTemplate(): void;
|
|
40
41
|
protected update(): void;
|
|
41
42
|
}
|
|
42
|
-
export declare const defineBoxDonutChartElement: (tagName?: string) => void;
|
|
43
43
|
export {};
|
|
@@ -228,7 +228,8 @@ const elementStyles = `
|
|
|
228
228
|
}
|
|
229
229
|
}
|
|
230
230
|
`;
|
|
231
|
-
export class
|
|
231
|
+
export class DonutChart extends BaseElement {
|
|
232
|
+
static tagName = DEFAULT_TAG_NAME;
|
|
232
233
|
static get observedAttributes() {
|
|
233
234
|
return ["actions", "heading", "message", "segments", "summary", "timeframe"];
|
|
234
235
|
}
|
|
@@ -528,8 +529,4 @@ export class BoxDonutChartElement extends BaseElement {
|
|
|
528
529
|
});
|
|
529
530
|
}
|
|
530
531
|
}
|
|
531
|
-
|
|
532
|
-
if (!customElements.get(tagName)) {
|
|
533
|
-
customElements.define(tagName, BoxDonutChartElement);
|
|
534
|
-
}
|
|
535
|
-
};
|
|
532
|
+
DonutChart.register();
|
|
@@ -15,7 +15,8 @@ type LineChartPoint = {
|
|
|
15
15
|
tone?: string;
|
|
16
16
|
value: number;
|
|
17
17
|
};
|
|
18
|
-
export declare class
|
|
18
|
+
export declare class LineChart extends BaseElement {
|
|
19
|
+
static readonly tagName: string;
|
|
19
20
|
static get observedAttributes(): string[];
|
|
20
21
|
get actions(): LineChartAction[];
|
|
21
22
|
set actions(value: LineChartAction[]);
|
|
@@ -42,5 +43,4 @@ export declare class BoxLineChartElement extends BaseElement {
|
|
|
42
43
|
protected renderTemplate(): void;
|
|
43
44
|
protected update(): void;
|
|
44
45
|
}
|
|
45
|
-
export declare const defineBoxLineChartElement: (tagName?: string) => void;
|
|
46
46
|
export {};
|
|
@@ -238,7 +238,8 @@ const elementStyles = `
|
|
|
238
238
|
color: var(--boe-token-text-text-secondary, #6f6f6f);
|
|
239
239
|
}
|
|
240
240
|
`;
|
|
241
|
-
export class
|
|
241
|
+
export class LineChart extends BaseElement {
|
|
242
|
+
static tagName = DEFAULT_TAG_NAME;
|
|
242
243
|
static get observedAttributes() {
|
|
243
244
|
return ["actions", "legend", "message", "points", "summary", "timeframe", "heading"];
|
|
244
245
|
}
|
|
@@ -504,8 +505,4 @@ export class BoxLineChartElement extends BaseElement {
|
|
|
504
505
|
});
|
|
505
506
|
}
|
|
506
507
|
}
|
|
507
|
-
|
|
508
|
-
if (!customElements.get(tagName)) {
|
|
509
|
-
customElements.define(tagName, BoxLineChartElement);
|
|
510
|
-
}
|
|
511
|
-
};
|
|
508
|
+
LineChart.register();
|
|
@@ -9,7 +9,8 @@ type MetricCardTrend = {
|
|
|
9
9
|
label: string;
|
|
10
10
|
tone?: string;
|
|
11
11
|
};
|
|
12
|
-
export declare class
|
|
12
|
+
export declare class MetricCard extends BaseElement {
|
|
13
|
+
static readonly tagName: string;
|
|
13
14
|
static get observedAttributes(): string[];
|
|
14
15
|
get action(): MetricCardAction | null;
|
|
15
16
|
set action(value: MetricCardAction | null);
|
|
@@ -32,5 +33,4 @@ export declare class BoxMetricCardElement extends BaseElement {
|
|
|
32
33
|
protected renderTemplate(): void;
|
|
33
34
|
protected update(): void;
|
|
34
35
|
}
|
|
35
|
-
export declare const defineBoxMetricCardElement: (tagName?: string) => void;
|
|
36
36
|
export {};
|
|
@@ -128,7 +128,8 @@ const elementStyles = `
|
|
|
128
128
|
color: var(--boe-token-text-text-on-brand, #ffffff);
|
|
129
129
|
}
|
|
130
130
|
`;
|
|
131
|
-
export class
|
|
131
|
+
export class MetricCard extends BaseElement {
|
|
132
|
+
static tagName = DEFAULT_TAG_NAME;
|
|
132
133
|
static get observedAttributes() {
|
|
133
134
|
return ["action", "eyebrow", "message", "status", "heading", "trend", "value"];
|
|
134
135
|
}
|
|
@@ -271,8 +272,4 @@ export class BoxMetricCardElement extends BaseElement {
|
|
|
271
272
|
}
|
|
272
273
|
}
|
|
273
274
|
}
|
|
274
|
-
|
|
275
|
-
if (!customElements.get(tagName)) {
|
|
276
|
-
customElements.define(tagName, BoxMetricCardElement);
|
|
277
|
-
}
|
|
278
|
-
};
|
|
275
|
+
MetricCard.register();
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One definition of "may this author-supplied href become a real link?",
|
|
3
|
+
* shared by every surface that renders evidence or citation chips
|
|
4
|
+
* (`box-timeline`, `box-agent-chat`, `box-audit-log`). Internal: it is not
|
|
5
|
+
* re-exported from any pattern barrel.
|
|
6
|
+
*
|
|
7
|
+
* Three copies of this check previously drifted apart, which is exactly how
|
|
8
|
+
* the protocol-relative hole below survived in all of them.
|
|
9
|
+
*
|
|
10
|
+
* Allowed: absolute `http(s)`, a same-document fragment, and a rooted path.
|
|
11
|
+
* The path branch requires a *single* leading slash — `//evil.example/x` is
|
|
12
|
+
* protocol-relative and a browser resolves it to an external origin, and
|
|
13
|
+
* `/\evil.example` is normalized to that same form by some parsers. Anything
|
|
14
|
+
* else (including `javascript:`, `data:`, and leading-whitespace tricks)
|
|
15
|
+
* fails the test, and the caller renders a button instead of an anchor.
|
|
16
|
+
*/
|
|
17
|
+
export declare const isSafeHref: (value: string) => boolean;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One definition of "may this author-supplied href become a real link?",
|
|
3
|
+
* shared by every surface that renders evidence or citation chips
|
|
4
|
+
* (`box-timeline`, `box-agent-chat`, `box-audit-log`). Internal: it is not
|
|
5
|
+
* re-exported from any pattern barrel.
|
|
6
|
+
*
|
|
7
|
+
* Three copies of this check previously drifted apart, which is exactly how
|
|
8
|
+
* the protocol-relative hole below survived in all of them.
|
|
9
|
+
*
|
|
10
|
+
* Allowed: absolute `http(s)`, a same-document fragment, and a rooted path.
|
|
11
|
+
* The path branch requires a *single* leading slash — `//evil.example/x` is
|
|
12
|
+
* protocol-relative and a browser resolves it to an external origin, and
|
|
13
|
+
* `/\evil.example` is normalized to that same form by some parsers. Anything
|
|
14
|
+
* else (including `javascript:`, `data:`, and leading-whitespace tricks)
|
|
15
|
+
* fails the test, and the caller renders a button instead of an anchor.
|
|
16
|
+
*/
|
|
17
|
+
export const isSafeHref = (value) => /^https?:\/\//i.test(value) || /^\/(?![/\\])/.test(value) || value.startsWith("#");
|
|
@@ -9,7 +9,8 @@ type BulkActionItem = {
|
|
|
9
9
|
id?: string;
|
|
10
10
|
label: string;
|
|
11
11
|
};
|
|
12
|
-
export declare class
|
|
12
|
+
export declare class BulkActionBar extends BaseElement {
|
|
13
|
+
static readonly tagName: string;
|
|
13
14
|
static get observedAttributes(): string[];
|
|
14
15
|
get actions(): BulkAction[];
|
|
15
16
|
set actions(value: BulkAction[]);
|
|
@@ -31,5 +32,4 @@ export declare class BoxBulkActionBarElement extends BaseElement {
|
|
|
31
32
|
protected renderTemplate(): void;
|
|
32
33
|
protected update(): void;
|
|
33
34
|
}
|
|
34
|
-
export declare const defineBoxBulkActionBarElement: (tagName?: string) => void;
|
|
35
35
|
export {};
|