@cimpress-ui/react 0.3.0 → 1.0.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 +0 -2
- package/dist/commonjs/components/alert/alert.d.ts +25 -0
- package/dist/commonjs/components/alert/alert.d.ts.map +1 -0
- package/dist/commonjs/components/alert/alert.js +51 -0
- package/dist/commonjs/components/alert/alert.js.map +1 -0
- package/dist/commonjs/components/alert-dialog/alert-dialog.d.ts +51 -0
- package/dist/commonjs/components/alert-dialog/alert-dialog.d.ts.map +1 -0
- package/dist/commonjs/components/alert-dialog/alert-dialog.js +26 -0
- package/dist/commonjs/components/alert-dialog/alert-dialog.js.map +1 -0
- package/dist/commonjs/components/app-header/app-header.d.ts +20 -0
- package/dist/commonjs/components/app-header/app-header.d.ts.map +1 -0
- package/dist/commonjs/components/app-header/app-header.js +26 -0
- package/dist/commonjs/components/app-header/app-header.js.map +1 -0
- package/dist/commonjs/components/app-header/cimpress-logo.d.ts +2 -0
- package/dist/commonjs/components/app-header/cimpress-logo.d.ts.map +1 -0
- package/dist/commonjs/components/app-header/cimpress-logo.js +9 -0
- package/dist/commonjs/components/app-header/cimpress-logo.js.map +1 -0
- package/dist/commonjs/components/app-header/simple-auth-tool.d.ts +29 -0
- package/dist/commonjs/components/app-header/simple-auth-tool.d.ts.map +1 -0
- package/dist/commonjs/components/app-header/simple-auth-tool.js +31 -0
- package/dist/commonjs/components/app-header/simple-auth-tool.js.map +1 -0
- package/dist/commonjs/components/breadcrumbs/breadcrumbs.d.ts.map +1 -1
- package/dist/commonjs/components/breadcrumbs/breadcrumbs.js +17 -1
- package/dist/commonjs/components/breadcrumbs/breadcrumbs.js.map +1 -1
- package/dist/commonjs/components/button/button.d.ts.map +1 -1
- package/dist/commonjs/components/button/button.js +3 -3
- package/dist/commonjs/components/button/button.js.map +1 -1
- package/dist/commonjs/components/button/icon-button.d.ts.map +1 -1
- package/dist/commonjs/components/button/icon-button.js +3 -3
- package/dist/commonjs/components/button/icon-button.js.map +1 -1
- package/dist/commonjs/components/button/icon-link-button.js +1 -1
- package/dist/commonjs/components/button/icon-link-button.js.map +1 -1
- package/dist/commonjs/components/button/link-button.js +1 -1
- package/dist/commonjs/components/button/link-button.js.map +1 -1
- package/dist/commonjs/components/button/types.js.map +1 -1
- package/dist/commonjs/components/callout/callout.d.ts +27 -0
- package/dist/commonjs/components/callout/callout.d.ts.map +1 -0
- package/dist/commonjs/components/callout/callout.js +46 -0
- package/dist/commonjs/components/callout/callout.js.map +1 -0
- package/dist/commonjs/components/card/card.d.ts +51 -11
- package/dist/commonjs/components/card/card.d.ts.map +1 -1
- package/dist/commonjs/components/card/card.js +19 -13
- package/dist/commonjs/components/card/card.js.map +1 -1
- package/dist/commonjs/components/checkbox/checkbox-group.d.ts +1 -1
- package/dist/commonjs/components/checkbox/checkbox-group.d.ts.map +1 -1
- package/dist/commonjs/components/checkbox/checkbox-group.js +2 -2
- package/dist/commonjs/components/checkbox/checkbox-group.js.map +1 -1
- package/dist/commonjs/components/checkbox/checkbox.d.ts.map +1 -1
- package/dist/commonjs/components/checkbox/checkbox.js +3 -3
- package/dist/commonjs/components/checkbox/checkbox.js.map +1 -1
- package/dist/commonjs/components/combo-box/combo-box.d.ts +7 -1
- package/dist/commonjs/components/combo-box/combo-box.d.ts.map +1 -1
- package/dist/commonjs/components/combo-box/combo-box.js +15 -6
- package/dist/commonjs/components/combo-box/combo-box.js.map +1 -1
- package/dist/commonjs/components/container/container.d.ts +16 -0
- package/dist/commonjs/components/container/container.d.ts.map +1 -0
- package/dist/commonjs/components/container/container.js +13 -0
- package/dist/commonjs/components/container/container.js.map +1 -0
- package/dist/commonjs/components/date-picker/date-picker-calendar.d.ts +2 -0
- package/dist/commonjs/components/date-picker/date-picker-calendar.d.ts.map +1 -0
- package/dist/commonjs/components/date-picker/date-picker-calendar.js +26 -0
- package/dist/commonjs/components/date-picker/date-picker-calendar.js.map +1 -0
- package/dist/commonjs/components/date-picker/date-picker.d.ts +17 -0
- package/dist/commonjs/components/date-picker/date-picker.d.ts.map +1 -0
- package/dist/commonjs/components/date-picker/date-picker.js +54 -0
- package/dist/commonjs/components/date-picker/date-picker.js.map +1 -0
- package/dist/commonjs/components/date-picker/utils.d.ts +2 -0
- package/dist/commonjs/components/date-picker/utils.d.ts.map +1 -0
- package/dist/commonjs/components/date-picker/utils.js +31 -0
- package/dist/commonjs/components/date-picker/utils.js.map +1 -0
- package/dist/commonjs/components/date-picker/views/month/month-view.d.ts +2 -0
- package/dist/commonjs/components/date-picker/views/month/month-view.d.ts.map +1 -0
- package/dist/commonjs/components/date-picker/views/month/month-view.js +35 -0
- package/dist/commonjs/components/date-picker/views/month/month-view.js.map +1 -0
- package/dist/commonjs/components/date-picker/views/multi-year/multi-year-view.d.ts +2 -0
- package/dist/commonjs/components/date-picker/views/multi-year/multi-year-view.d.ts.map +1 -0
- package/dist/commonjs/components/date-picker/views/multi-year/multi-year-view.js +16 -0
- package/dist/commonjs/components/date-picker/views/multi-year/multi-year-view.js.map +1 -0
- package/dist/commonjs/components/date-picker/views/multi-year/use-multi-year-view-state.d.ts +2 -0
- package/dist/commonjs/components/date-picker/views/multi-year/use-multi-year-view-state.d.ts.map +1 -0
- package/dist/commonjs/components/date-picker/views/multi-year/use-multi-year-view-state.js +130 -0
- package/dist/commonjs/components/date-picker/views/multi-year/use-multi-year-view-state.js.map +1 -0
- package/dist/commonjs/components/date-picker/views/types.d.ts +2 -0
- package/dist/commonjs/components/date-picker/views/types.d.ts.map +1 -0
- package/dist/commonjs/components/date-picker/views/types.js +3 -0
- package/dist/commonjs/components/date-picker/views/types.js.map +1 -0
- package/dist/commonjs/components/date-picker/views/use-view-header.d.ts +2 -0
- package/dist/commonjs/components/date-picker/views/use-view-header.d.ts.map +1 -0
- package/dist/commonjs/components/date-picker/views/use-view-header.js +56 -0
- package/dist/commonjs/components/date-picker/views/use-view-header.js.map +1 -0
- package/dist/commonjs/components/date-picker/views/view-grid-cell.d.ts +2 -0
- package/dist/commonjs/components/date-picker/views/view-grid-cell.d.ts.map +1 -0
- package/dist/commonjs/components/date-picker/views/view-grid-cell.js +72 -0
- package/dist/commonjs/components/date-picker/views/view-grid-cell.js.map +1 -0
- package/dist/commonjs/components/date-picker/views/view-grid.d.ts +2 -0
- package/dist/commonjs/components/date-picker/views/view-grid.d.ts.map +1 -0
- package/dist/commonjs/components/date-picker/views/view-grid.js +75 -0
- package/dist/commonjs/components/date-picker/views/view-grid.js.map +1 -0
- package/dist/commonjs/components/date-picker/views/view-provider.d.ts +2 -0
- package/dist/commonjs/components/date-picker/views/view-provider.d.ts.map +1 -0
- package/dist/commonjs/components/date-picker/views/view-provider.js +21 -0
- package/dist/commonjs/components/date-picker/views/view-provider.js.map +1 -0
- package/dist/commonjs/components/date-picker/views/year/use-year-view-state.d.ts +2 -0
- package/dist/commonjs/components/date-picker/views/year/use-year-view-state.d.ts.map +1 -0
- package/dist/commonjs/components/date-picker/views/year/use-year-view-state.js +158 -0
- package/dist/commonjs/components/date-picker/views/year/use-year-view-state.js.map +1 -0
- package/dist/commonjs/components/date-picker/views/year/year-view.d.ts +2 -0
- package/dist/commonjs/components/date-picker/views/year/year-view.d.ts.map +1 -0
- package/dist/commonjs/components/date-picker/views/year/year-view.js +20 -0
- package/dist/commonjs/components/date-picker/views/year/year-view.js.map +1 -0
- package/dist/commonjs/components/dialog-root/dialog-root.d.ts +20 -0
- package/dist/commonjs/components/dialog-root/dialog-root.d.ts.map +1 -0
- package/dist/commonjs/components/dialog-root/dialog-root.js +15 -0
- package/dist/commonjs/components/dialog-root/dialog-root.js.map +1 -0
- package/dist/commonjs/components/disclosure/context.d.ts +3 -0
- package/dist/commonjs/components/disclosure/context.d.ts.map +1 -0
- package/dist/commonjs/components/disclosure/context.js +7 -0
- package/dist/commonjs/components/disclosure/context.js.map +1 -0
- package/dist/commonjs/components/disclosure/disclosure-group.d.ts +15 -4
- package/dist/commonjs/components/disclosure/disclosure-group.d.ts.map +1 -1
- package/dist/commonjs/components/disclosure/disclosure-group.js +11 -5
- package/dist/commonjs/components/disclosure/disclosure-group.js.map +1 -1
- package/dist/commonjs/components/disclosure/disclosure.d.ts +35 -4
- package/dist/commonjs/components/disclosure/disclosure.d.ts.map +1 -1
- package/dist/commonjs/components/disclosure/disclosure.js +16 -5
- package/dist/commonjs/components/disclosure/disclosure.js.map +1 -1
- package/dist/commonjs/components/divider/divider.d.ts +12 -0
- package/dist/commonjs/components/divider/divider.d.ts.map +1 -0
- package/dist/commonjs/components/divider/divider.js +19 -0
- package/dist/commonjs/components/divider/divider.js.map +1 -0
- package/dist/commonjs/components/drawer/drawer.d.ts +81 -0
- package/dist/commonjs/components/drawer/drawer.d.ts.map +1 -0
- package/dist/commonjs/components/drawer/drawer.js +59 -0
- package/dist/commonjs/components/drawer/drawer.js.map +1 -0
- package/dist/commonjs/components/file-picker/file-picker.d.ts +19 -0
- package/dist/commonjs/components/file-picker/file-picker.d.ts.map +1 -0
- package/dist/commonjs/components/file-picker/file-picker.js +68 -0
- package/dist/commonjs/components/file-picker/file-picker.js.map +1 -0
- package/dist/commonjs/components/internal/form-field/form-field.js +1 -1
- package/dist/commonjs/components/internal/form-field/form-field.js.map +1 -1
- package/dist/commonjs/components/internal/x-button/x-button.d.ts +2 -0
- package/dist/commonjs/components/internal/x-button/x-button.d.ts.map +1 -0
- package/dist/commonjs/components/internal/x-button/x-button.js +17 -0
- package/dist/commonjs/components/internal/x-button/x-button.js.map +1 -0
- package/dist/commonjs/components/link-tabs/context.d.ts +2 -0
- package/dist/commonjs/components/link-tabs/context.d.ts.map +1 -0
- package/dist/commonjs/components/link-tabs/context.js +7 -0
- package/dist/commonjs/components/link-tabs/context.js.map +1 -0
- package/dist/commonjs/components/link-tabs/link-tabs.d.ts +36 -0
- package/dist/commonjs/components/link-tabs/link-tabs.d.ts.map +1 -0
- package/dist/commonjs/components/link-tabs/link-tabs.js +54 -0
- package/dist/commonjs/components/link-tabs/link-tabs.js.map +1 -0
- package/dist/commonjs/components/menu/menu.d.ts +3 -6
- package/dist/commonjs/components/menu/menu.d.ts.map +1 -1
- package/dist/commonjs/components/menu/menu.js +4 -9
- package/dist/commonjs/components/menu/menu.js.map +1 -1
- package/dist/commonjs/components/modal-dialog/modal-dialog.d.ts +63 -0
- package/dist/commonjs/components/modal-dialog/modal-dialog.d.ts.map +1 -0
- package/dist/commonjs/components/modal-dialog/modal-dialog.js +46 -0
- package/dist/commonjs/components/modal-dialog/modal-dialog.js.map +1 -0
- package/dist/commonjs/components/number-field/number-field.d.ts +1 -1
- package/dist/commonjs/components/number-field/number-field.d.ts.map +1 -1
- package/dist/commonjs/components/number-field/number-field.js +6 -4
- package/dist/commonjs/components/number-field/number-field.js.map +1 -1
- package/dist/commonjs/components/pagination/base-pagination.d.ts.map +1 -1
- package/dist/commonjs/components/pagination/base-pagination.js +9 -10
- package/dist/commonjs/components/pagination/base-pagination.js.map +1 -1
- package/dist/commonjs/components/pagination/pagination.d.ts.map +1 -1
- package/dist/commonjs/components/pagination/pagination.js +7 -5
- package/dist/commonjs/components/pagination/pagination.js.map +1 -1
- package/dist/commonjs/components/popover/popover.d.ts +7 -2
- package/dist/commonjs/components/popover/popover.d.ts.map +1 -1
- package/dist/commonjs/components/popover/popover.js +2 -2
- package/dist/commonjs/components/popover/popover.js.map +1 -1
- package/dist/commonjs/components/radio/radio-group.d.ts +1 -1
- package/dist/commonjs/components/radio/radio-group.d.ts.map +1 -1
- package/dist/commonjs/components/radio/radio-group.js +2 -2
- package/dist/commonjs/components/radio/radio-group.js.map +1 -1
- package/dist/commonjs/components/radio/radio.d.ts.map +1 -1
- package/dist/commonjs/components/radio/radio.js +3 -3
- package/dist/commonjs/components/radio/radio.js.map +1 -1
- package/dist/commonjs/components/select/select.d.ts +7 -1
- package/dist/commonjs/components/select/select.d.ts.map +1 -1
- package/dist/commonjs/components/select/select.js +14 -6
- package/dist/commonjs/components/select/select.js.map +1 -1
- package/dist/commonjs/components/spacing/stack/stack.d.ts +1 -1
- package/dist/commonjs/components/spacing/stack/stack.js +1 -1
- package/dist/commonjs/components/spacing/stack/stack.js.map +1 -1
- package/dist/commonjs/components/spacing/types.d.ts +1 -1
- package/dist/commonjs/components/spacing/types.d.ts.map +1 -1
- package/dist/commonjs/components/spacing/types.js +2 -2
- package/dist/commonjs/components/spacing/types.js.map +1 -1
- package/dist/commonjs/components/spinner/spinner.d.ts.map +1 -1
- package/dist/commonjs/components/spinner/spinner.js +3 -3
- package/dist/commonjs/components/spinner/spinner.js.map +1 -1
- package/dist/commonjs/components/table/contexts/column-collection.d.ts.map +1 -1
- package/dist/commonjs/components/table/contexts/column-collection.js +2 -0
- package/dist/commonjs/components/table/contexts/column-collection.js.map +1 -1
- package/dist/commonjs/components/table/contexts/table-state.d.ts +1 -0
- package/dist/commonjs/components/table/contexts/table-state.d.ts.map +1 -1
- package/dist/commonjs/components/table/contexts/table-state.js +6 -1
- package/dist/commonjs/components/table/contexts/table-state.js.map +1 -1
- package/dist/commonjs/components/table/hooks/use-table-cell.js +2 -2
- package/dist/commonjs/components/table/hooks/use-table-cell.js.map +1 -1
- package/dist/commonjs/components/table/table-empty-state.js +1 -1
- package/dist/commonjs/components/table/table-empty-state.js.map +1 -1
- package/dist/commonjs/components/table/table-header-button.d.ts +2 -0
- package/dist/commonjs/components/table/table-header-button.d.ts.map +1 -0
- package/dist/commonjs/components/table/table-header-button.js +16 -0
- package/dist/commonjs/components/table/table-header-button.js.map +1 -0
- package/dist/commonjs/components/table/table-header-cell.d.ts.map +1 -1
- package/dist/commonjs/components/table/table-header-cell.js +7 -5
- package/dist/commonjs/components/table/table-header-cell.js.map +1 -1
- package/dist/commonjs/components/table/table.d.ts +1 -1
- package/dist/commonjs/components/table/table.d.ts.map +1 -1
- package/dist/commonjs/components/table/table.js +2 -2
- package/dist/commonjs/components/table/table.js.map +1 -1
- package/dist/commonjs/components/tabs/tabs.d.ts +53 -0
- package/dist/commonjs/components/tabs/tabs.d.ts.map +1 -0
- package/dist/commonjs/components/tabs/tabs.js +69 -0
- package/dist/commonjs/components/tabs/tabs.js.map +1 -0
- package/dist/commonjs/components/tag/tag-group.d.ts +1 -1
- package/dist/commonjs/components/tag/tag-group.d.ts.map +1 -1
- package/dist/commonjs/components/tag/tag-group.js.map +1 -1
- package/dist/commonjs/components/tag/tag.js +1 -1
- package/dist/commonjs/components/tag/tag.js.map +1 -1
- package/dist/commonjs/components/tag-field/tag-field-input.d.ts +2 -0
- package/dist/commonjs/components/tag-field/tag-field-input.d.ts.map +1 -0
- package/dist/commonjs/components/tag-field/tag-field-input.js +30 -0
- package/dist/commonjs/components/tag-field/tag-field-input.js.map +1 -0
- package/dist/commonjs/components/tag-field/tag-field-list-box.d.ts +2 -0
- package/dist/commonjs/components/tag-field/tag-field-list-box.d.ts.map +1 -0
- package/dist/commonjs/components/tag-field/tag-field-list-box.js +38 -0
- package/dist/commonjs/components/tag-field/tag-field-list-box.js.map +1 -0
- package/dist/commonjs/components/tag-field/tag-field-tags.d.ts +2 -0
- package/dist/commonjs/components/tag-field/tag-field-tags.d.ts.map +1 -0
- package/dist/commonjs/components/tag-field/tag-field-tags.js +29 -0
- package/dist/commonjs/components/tag-field/tag-field-tags.js.map +1 -0
- package/dist/commonjs/components/tag-field/tag-field.d.ts +51 -0
- package/dist/commonjs/components/tag-field/tag-field.d.ts.map +1 -0
- package/dist/commonjs/components/tag-field/tag-field.js +143 -0
- package/dist/commonjs/components/tag-field/tag-field.js.map +1 -0
- package/dist/commonjs/components/text-inputs/text-area.d.ts +1 -1
- package/dist/commonjs/components/text-inputs/text-area.d.ts.map +1 -1
- package/dist/commonjs/components/text-inputs/text-area.js +3 -3
- package/dist/commonjs/components/text-inputs/text-area.js.map +1 -1
- package/dist/commonjs/components/text-inputs/text-field.d.ts +1 -1
- package/dist/commonjs/components/text-inputs/text-field.d.ts.map +1 -1
- package/dist/commonjs/components/text-inputs/text-field.js +3 -3
- package/dist/commonjs/components/text-inputs/text-field.js.map +1 -1
- package/dist/commonjs/components/toast/toast-region.d.ts +5 -0
- package/dist/commonjs/components/toast/toast-region.d.ts.map +1 -0
- package/dist/commonjs/components/toast/toast-region.js +24 -0
- package/dist/commonjs/components/toast/toast-region.js.map +1 -0
- package/dist/commonjs/components/toast/toast.d.ts +2 -0
- package/dist/commonjs/components/toast/toast.d.ts.map +1 -0
- package/dist/commonjs/components/toast/toast.js +24 -0
- package/dist/commonjs/components/toast/toast.js.map +1 -0
- package/dist/commonjs/components/toast/types.d.ts +5 -0
- package/dist/commonjs/components/toast/types.d.ts.map +1 -0
- package/dist/commonjs/components/toast/types.js +3 -0
- package/dist/commonjs/components/toast/types.js.map +1 -0
- package/dist/commonjs/components/toggle/toggle.d.ts +14 -0
- package/dist/commonjs/components/toggle/toggle.d.ts.map +1 -0
- package/dist/commonjs/components/toggle/toggle.js +32 -0
- package/dist/commonjs/components/toggle/toggle.js.map +1 -0
- package/dist/commonjs/components/toggle-button/toggle-button-group.d.ts +15 -0
- package/dist/commonjs/components/toggle-button/toggle-button-group.d.ts.map +1 -0
- package/dist/commonjs/components/toggle-button/toggle-button-group.js +30 -0
- package/dist/commonjs/components/toggle-button/toggle-button-group.js.map +1 -0
- package/dist/commonjs/components/toggle-button/toggle-button.d.ts +16 -0
- package/dist/commonjs/components/toggle-button/toggle-button.d.ts.map +1 -0
- package/dist/commonjs/components/toggle-button/toggle-button.js +24 -0
- package/dist/commonjs/components/toggle-button/toggle-button.js.map +1 -0
- package/dist/commonjs/components/toggle-button/toggle-icon-button.d.ts +14 -0
- package/dist/commonjs/components/toggle-button/toggle-icon-button.d.ts.map +1 -0
- package/dist/commonjs/components/toggle-button/toggle-icon-button.js +24 -0
- package/dist/commonjs/components/toggle-button/toggle-icon-button.js.map +1 -0
- package/dist/commonjs/components/tooltip/tooltip.d.ts +4 -2
- package/dist/commonjs/components/tooltip/tooltip.d.ts.map +1 -1
- package/dist/commonjs/components/tooltip/tooltip.js.map +1 -1
- package/dist/commonjs/components/types.d.ts +4 -0
- package/dist/commonjs/components/types.d.ts.map +1 -1
- package/dist/commonjs/components/types.js.map +1 -1
- package/dist/commonjs/components/typography/text.d.ts.map +1 -1
- package/dist/commonjs/date.d.ts +2 -0
- package/dist/commonjs/date.d.ts.map +1 -0
- package/dist/commonjs/date.js +27 -0
- package/dist/commonjs/date.js.map +1 -0
- package/dist/commonjs/i18n/index.d.ts +3 -0
- package/dist/commonjs/i18n/index.d.ts.map +1 -0
- package/dist/commonjs/i18n/index.js +19 -0
- package/dist/commonjs/i18n/index.js.map +1 -0
- package/dist/commonjs/i18n/localization-provider.d.ts +59 -0
- package/dist/commonjs/i18n/localization-provider.d.ts.map +1 -0
- package/dist/commonjs/i18n/localization-provider.js +82 -0
- package/dist/commonjs/i18n/localization-provider.js.map +1 -0
- package/dist/commonjs/i18n/messages/en-US.d.ts +4 -0
- package/dist/commonjs/i18n/messages/en-US.d.ts.map +1 -0
- package/dist/commonjs/i18n/messages/en-US.js +44 -0
- package/dist/commonjs/i18n/messages/en-US.js.map +1 -0
- package/dist/commonjs/i18n/messages/index.d.ts +3 -0
- package/dist/commonjs/i18n/messages/index.d.ts.map +1 -0
- package/dist/commonjs/i18n/messages/index.js +6 -0
- package/dist/commonjs/i18n/messages/index.js.map +1 -0
- package/dist/commonjs/i18n/messages/types.d.ts +82 -0
- package/dist/commonjs/i18n/messages/types.d.ts.map +1 -0
- package/dist/commonjs/i18n/messages/types.js +3 -0
- package/dist/commonjs/i18n/messages/types.js.map +1 -0
- package/dist/commonjs/icons/index.d.ts +1 -0
- package/dist/commonjs/icons/index.d.ts.map +1 -1
- package/dist/commonjs/icons/index.js +3 -1
- package/dist/commonjs/icons/index.js.map +1 -1
- package/dist/commonjs/icons/rating-star.d.ts +8 -0
- package/dist/commonjs/icons/rating-star.d.ts.map +1 -0
- package/dist/commonjs/icons/rating-star.js +24 -0
- package/dist/commonjs/icons/rating-star.js.map +1 -0
- package/dist/commonjs/index.d.ts +26 -5
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +24 -5
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/providers/ssr/ssr-provider.d.ts +1 -3
- package/dist/commonjs/providers/ssr/ssr-provider.d.ts.map +1 -1
- package/dist/commonjs/providers/ssr/ssr-provider.js +2 -2
- package/dist/commonjs/providers/ssr/ssr-provider.js.map +1 -1
- package/dist/commonjs/utils/is-production.d.ts +2 -0
- package/dist/commonjs/utils/is-production.d.ts.map +1 -0
- package/dist/commonjs/utils/is-production.js +7 -0
- package/dist/commonjs/utils/is-production.js.map +1 -0
- package/dist/commonjs/utils/style/types.d.ts +1 -1
- package/dist/commonjs/utils/style/types.d.ts.map +1 -1
- package/dist/commonjs/utils/style/types.js.map +1 -1
- package/dist/commonjs/utils/use-media-query.d.ts +2 -0
- package/dist/commonjs/utils/use-media-query.d.ts.map +1 -0
- package/dist/commonjs/utils/use-media-query.js +35 -0
- package/dist/commonjs/utils/use-media-query.js.map +1 -0
- package/dist/commonjs/utils/use-production-warning.d.ts +3 -0
- package/dist/commonjs/utils/use-production-warning.d.ts.map +1 -0
- package/dist/commonjs/utils/use-production-warning.js +7 -0
- package/dist/commonjs/utils/use-production-warning.js.map +1 -0
- package/dist/commonjs/with-style-props.d.ts.map +1 -1
- package/dist/esm/components/alert/alert.d.ts +25 -0
- package/dist/esm/components/alert/alert.d.ts.map +1 -0
- package/dist/esm/components/alert/alert.js +45 -0
- package/dist/esm/components/alert/alert.js.map +1 -0
- package/dist/esm/components/alert-dialog/alert-dialog.d.ts +51 -0
- package/dist/esm/components/alert-dialog/alert-dialog.d.ts.map +1 -0
- package/dist/esm/components/alert-dialog/alert-dialog.js +20 -0
- package/dist/esm/components/alert-dialog/alert-dialog.js.map +1 -0
- package/dist/esm/components/app-header/app-header.d.ts +20 -0
- package/dist/esm/components/app-header/app-header.d.ts.map +1 -0
- package/dist/esm/components/app-header/app-header.js +20 -0
- package/dist/esm/components/app-header/app-header.js.map +1 -0
- package/dist/esm/components/app-header/cimpress-logo.d.ts +2 -0
- package/dist/esm/components/app-header/cimpress-logo.d.ts.map +1 -0
- package/dist/esm/components/app-header/cimpress-logo.js +6 -0
- package/dist/esm/components/app-header/cimpress-logo.js.map +1 -0
- package/dist/esm/components/app-header/simple-auth-tool.d.ts +29 -0
- package/dist/esm/components/app-header/simple-auth-tool.d.ts.map +1 -0
- package/dist/esm/components/app-header/simple-auth-tool.js +28 -0
- package/dist/esm/components/app-header/simple-auth-tool.js.map +1 -0
- package/dist/esm/components/breadcrumbs/breadcrumbs.d.ts.map +1 -1
- package/dist/esm/components/breadcrumbs/breadcrumbs.js +18 -2
- package/dist/esm/components/breadcrumbs/breadcrumbs.js.map +1 -1
- package/dist/esm/components/button/button.d.ts.map +1 -1
- package/dist/esm/components/button/button.js +3 -3
- package/dist/esm/components/button/button.js.map +1 -1
- package/dist/esm/components/button/icon-button.d.ts.map +1 -1
- package/dist/esm/components/button/icon-button.js +3 -3
- package/dist/esm/components/button/icon-button.js.map +1 -1
- package/dist/esm/components/button/icon-link-button.js +1 -1
- package/dist/esm/components/button/icon-link-button.js.map +1 -1
- package/dist/esm/components/button/link-button.js +1 -1
- package/dist/esm/components/button/link-button.js.map +1 -1
- package/dist/esm/components/button/types.js.map +1 -1
- package/dist/esm/components/callout/callout.d.ts +27 -0
- package/dist/esm/components/callout/callout.d.ts.map +1 -0
- package/dist/esm/components/callout/callout.js +40 -0
- package/dist/esm/components/callout/callout.js.map +1 -0
- package/dist/esm/components/card/card.d.ts +51 -11
- package/dist/esm/components/card/card.d.ts.map +1 -1
- package/dist/esm/components/card/card.js +17 -12
- package/dist/esm/components/card/card.js.map +1 -1
- package/dist/esm/components/checkbox/checkbox-group.d.ts +1 -1
- package/dist/esm/components/checkbox/checkbox-group.d.ts.map +1 -1
- package/dist/esm/components/checkbox/checkbox-group.js +2 -2
- package/dist/esm/components/checkbox/checkbox-group.js.map +1 -1
- package/dist/esm/components/checkbox/checkbox.d.ts.map +1 -1
- package/dist/esm/components/checkbox/checkbox.js +3 -3
- package/dist/esm/components/checkbox/checkbox.js.map +1 -1
- package/dist/esm/components/combo-box/combo-box.d.ts +7 -1
- package/dist/esm/components/combo-box/combo-box.d.ts.map +1 -1
- package/dist/esm/components/combo-box/combo-box.js +17 -8
- package/dist/esm/components/combo-box/combo-box.js.map +1 -1
- package/dist/esm/components/container/container.d.ts +16 -0
- package/dist/esm/components/container/container.d.ts.map +1 -0
- package/dist/esm/components/container/container.js +7 -0
- package/dist/esm/components/container/container.js.map +1 -0
- package/dist/esm/components/date-picker/date-picker-calendar.d.ts +2 -0
- package/dist/esm/components/date-picker/date-picker-calendar.d.ts.map +1 -0
- package/dist/esm/components/date-picker/date-picker-calendar.js +23 -0
- package/dist/esm/components/date-picker/date-picker-calendar.js.map +1 -0
- package/dist/esm/components/date-picker/date-picker.d.ts +17 -0
- package/dist/esm/components/date-picker/date-picker.d.ts.map +1 -0
- package/dist/esm/components/date-picker/date-picker.js +48 -0
- package/dist/esm/components/date-picker/date-picker.js.map +1 -0
- package/dist/esm/components/date-picker/utils.d.ts +2 -0
- package/dist/esm/components/date-picker/utils.d.ts.map +1 -0
- package/dist/esm/components/date-picker/utils.js +26 -0
- package/dist/esm/components/date-picker/utils.js.map +1 -0
- package/dist/esm/components/date-picker/views/month/month-view.d.ts +2 -0
- package/dist/esm/components/date-picker/views/month/month-view.d.ts.map +1 -0
- package/dist/esm/components/date-picker/views/month/month-view.js +29 -0
- package/dist/esm/components/date-picker/views/month/month-view.js.map +1 -0
- package/dist/esm/components/date-picker/views/multi-year/multi-year-view.d.ts +2 -0
- package/dist/esm/components/date-picker/views/multi-year/multi-year-view.d.ts.map +1 -0
- package/dist/esm/components/date-picker/views/multi-year/multi-year-view.js +13 -0
- package/dist/esm/components/date-picker/views/multi-year/multi-year-view.js.map +1 -0
- package/dist/esm/components/date-picker/views/multi-year/use-multi-year-view-state.d.ts +2 -0
- package/dist/esm/components/date-picker/views/multi-year/use-multi-year-view-state.d.ts.map +1 -0
- package/dist/esm/components/date-picker/views/multi-year/use-multi-year-view-state.js +127 -0
- package/dist/esm/components/date-picker/views/multi-year/use-multi-year-view-state.js.map +1 -0
- package/dist/esm/components/date-picker/views/types.d.ts +2 -0
- package/dist/esm/components/date-picker/views/types.d.ts.map +1 -0
- package/dist/esm/components/date-picker/views/types.js +2 -0
- package/dist/esm/components/date-picker/views/types.js.map +1 -0
- package/dist/esm/components/date-picker/views/use-view-header.d.ts +2 -0
- package/dist/esm/components/date-picker/views/use-view-header.d.ts.map +1 -0
- package/dist/esm/components/date-picker/views/use-view-header.js +53 -0
- package/dist/esm/components/date-picker/views/use-view-header.js.map +1 -0
- package/dist/esm/components/date-picker/views/view-grid-cell.d.ts +2 -0
- package/dist/esm/components/date-picker/views/view-grid-cell.d.ts.map +1 -0
- package/dist/esm/components/date-picker/views/view-grid-cell.js +66 -0
- package/dist/esm/components/date-picker/views/view-grid-cell.js.map +1 -0
- package/dist/esm/components/date-picker/views/view-grid.d.ts +2 -0
- package/dist/esm/components/date-picker/views/view-grid.d.ts.map +1 -0
- package/dist/esm/components/date-picker/views/view-grid.js +69 -0
- package/dist/esm/components/date-picker/views/view-grid.js.map +1 -0
- package/dist/esm/components/date-picker/views/view-provider.d.ts +2 -0
- package/dist/esm/components/date-picker/views/view-provider.d.ts.map +1 -0
- package/dist/esm/components/date-picker/views/view-provider.js +17 -0
- package/dist/esm/components/date-picker/views/view-provider.js.map +1 -0
- package/dist/esm/components/date-picker/views/year/use-year-view-state.d.ts +2 -0
- package/dist/esm/components/date-picker/views/year/use-year-view-state.d.ts.map +1 -0
- package/dist/esm/components/date-picker/views/year/use-year-view-state.js +155 -0
- package/dist/esm/components/date-picker/views/year/use-year-view-state.js.map +1 -0
- package/dist/esm/components/date-picker/views/year/year-view.d.ts +2 -0
- package/dist/esm/components/date-picker/views/year/year-view.d.ts.map +1 -0
- package/dist/esm/components/date-picker/views/year/year-view.js +17 -0
- package/dist/esm/components/date-picker/views/year/year-view.js.map +1 -0
- package/dist/esm/components/dialog-root/dialog-root.d.ts +20 -0
- package/dist/esm/components/dialog-root/dialog-root.d.ts.map +1 -0
- package/dist/esm/components/dialog-root/dialog-root.js +12 -0
- package/dist/esm/components/dialog-root/dialog-root.js.map +1 -0
- package/dist/esm/components/disclosure/context.d.ts +3 -0
- package/dist/esm/components/disclosure/context.d.ts.map +1 -0
- package/dist/esm/components/disclosure/context.js +4 -0
- package/dist/esm/components/disclosure/context.js.map +1 -0
- package/dist/esm/components/disclosure/disclosure-group.d.ts +15 -4
- package/dist/esm/components/disclosure/disclosure-group.d.ts.map +1 -1
- package/dist/esm/components/disclosure/disclosure-group.js +10 -4
- package/dist/esm/components/disclosure/disclosure-group.js.map +1 -1
- package/dist/esm/components/disclosure/disclosure.d.ts +35 -4
- package/dist/esm/components/disclosure/disclosure.d.ts.map +1 -1
- package/dist/esm/components/disclosure/disclosure.js +16 -5
- package/dist/esm/components/disclosure/disclosure.js.map +1 -1
- package/dist/esm/components/divider/divider.d.ts +12 -0
- package/dist/esm/components/divider/divider.d.ts.map +1 -0
- package/dist/esm/components/divider/divider.js +13 -0
- package/dist/esm/components/divider/divider.js.map +1 -0
- package/dist/esm/components/drawer/drawer.d.ts +81 -0
- package/dist/esm/components/drawer/drawer.d.ts.map +1 -0
- package/dist/esm/components/drawer/drawer.js +50 -0
- package/dist/esm/components/drawer/drawer.js.map +1 -0
- package/dist/esm/components/file-picker/file-picker.d.ts +19 -0
- package/dist/esm/components/file-picker/file-picker.d.ts.map +1 -0
- package/dist/esm/components/file-picker/file-picker.js +62 -0
- package/dist/esm/components/file-picker/file-picker.js.map +1 -0
- package/dist/esm/components/internal/form-field/form-field.js +1 -1
- package/dist/esm/components/internal/form-field/form-field.js.map +1 -1
- package/dist/esm/components/internal/x-button/x-button.d.ts +2 -0
- package/dist/esm/components/internal/x-button/x-button.d.ts.map +1 -0
- package/dist/esm/components/internal/x-button/x-button.js +11 -0
- package/dist/esm/components/internal/x-button/x-button.js.map +1 -0
- package/dist/esm/components/link-tabs/context.d.ts +2 -0
- package/dist/esm/components/link-tabs/context.d.ts.map +1 -0
- package/dist/esm/components/link-tabs/context.js +4 -0
- package/dist/esm/components/link-tabs/context.js.map +1 -0
- package/dist/esm/components/link-tabs/link-tabs.d.ts +36 -0
- package/dist/esm/components/link-tabs/link-tabs.d.ts.map +1 -0
- package/dist/esm/components/link-tabs/link-tabs.js +47 -0
- package/dist/esm/components/link-tabs/link-tabs.js.map +1 -0
- package/dist/esm/components/menu/menu.d.ts +3 -6
- package/dist/esm/components/menu/menu.d.ts.map +1 -1
- package/dist/esm/components/menu/menu.js +5 -9
- package/dist/esm/components/menu/menu.js.map +1 -1
- package/dist/esm/components/modal-dialog/modal-dialog.d.ts +63 -0
- package/dist/esm/components/modal-dialog/modal-dialog.d.ts.map +1 -0
- package/dist/esm/components/modal-dialog/modal-dialog.js +38 -0
- package/dist/esm/components/modal-dialog/modal-dialog.js.map +1 -0
- package/dist/esm/components/number-field/number-field.d.ts +1 -1
- package/dist/esm/components/number-field/number-field.d.ts.map +1 -1
- package/dist/esm/components/number-field/number-field.js +5 -3
- package/dist/esm/components/number-field/number-field.js.map +1 -1
- package/dist/esm/components/pagination/base-pagination.d.ts.map +1 -1
- package/dist/esm/components/pagination/base-pagination.js +6 -7
- package/dist/esm/components/pagination/base-pagination.js.map +1 -1
- package/dist/esm/components/pagination/pagination.d.ts.map +1 -1
- package/dist/esm/components/pagination/pagination.js +7 -5
- package/dist/esm/components/pagination/pagination.js.map +1 -1
- package/dist/esm/components/popover/popover.d.ts +7 -2
- package/dist/esm/components/popover/popover.d.ts.map +1 -1
- package/dist/esm/components/popover/popover.js +2 -2
- package/dist/esm/components/popover/popover.js.map +1 -1
- package/dist/esm/components/radio/radio-group.d.ts +1 -1
- package/dist/esm/components/radio/radio-group.d.ts.map +1 -1
- package/dist/esm/components/radio/radio-group.js +2 -2
- package/dist/esm/components/radio/radio-group.js.map +1 -1
- package/dist/esm/components/radio/radio.d.ts.map +1 -1
- package/dist/esm/components/radio/radio.js +3 -3
- package/dist/esm/components/radio/radio.js.map +1 -1
- package/dist/esm/components/select/select.d.ts +7 -1
- package/dist/esm/components/select/select.d.ts.map +1 -1
- package/dist/esm/components/select/select.js +15 -7
- package/dist/esm/components/select/select.js.map +1 -1
- package/dist/esm/components/spacing/stack/stack.d.ts +1 -1
- package/dist/esm/components/spacing/stack/stack.js +1 -1
- package/dist/esm/components/spacing/stack/stack.js.map +1 -1
- package/dist/esm/components/spacing/types.d.ts +1 -1
- package/dist/esm/components/spacing/types.d.ts.map +1 -1
- package/dist/esm/components/spacing/types.js +2 -2
- package/dist/esm/components/spacing/types.js.map +1 -1
- package/dist/esm/components/spinner/spinner.d.ts.map +1 -1
- package/dist/esm/components/spinner/spinner.js +3 -3
- package/dist/esm/components/spinner/spinner.js.map +1 -1
- package/dist/esm/components/table/contexts/column-collection.d.ts.map +1 -1
- package/dist/esm/components/table/contexts/column-collection.js +2 -0
- package/dist/esm/components/table/contexts/column-collection.js.map +1 -1
- package/dist/esm/components/table/contexts/table-state.d.ts +1 -0
- package/dist/esm/components/table/contexts/table-state.d.ts.map +1 -1
- package/dist/esm/components/table/contexts/table-state.js +8 -3
- package/dist/esm/components/table/contexts/table-state.js.map +1 -1
- package/dist/esm/components/table/hooks/use-table-cell.js +2 -2
- package/dist/esm/components/table/hooks/use-table-cell.js.map +1 -1
- package/dist/esm/components/table/table-empty-state.js +1 -1
- package/dist/esm/components/table/table-empty-state.js.map +1 -1
- package/dist/esm/components/table/table-header-button.d.ts +2 -0
- package/dist/esm/components/table/table-header-button.d.ts.map +1 -0
- package/dist/esm/components/table/table-header-button.js +10 -0
- package/dist/esm/components/table/table-header-button.js.map +1 -0
- package/dist/esm/components/table/table-header-cell.d.ts.map +1 -1
- package/dist/esm/components/table/table-header-cell.js +9 -7
- package/dist/esm/components/table/table-header-cell.js.map +1 -1
- package/dist/esm/components/table/table.d.ts +1 -1
- package/dist/esm/components/table/table.d.ts.map +1 -1
- package/dist/esm/components/table/table.js +2 -2
- package/dist/esm/components/table/table.js.map +1 -1
- package/dist/esm/components/tabs/tabs.d.ts +53 -0
- package/dist/esm/components/tabs/tabs.d.ts.map +1 -0
- package/dist/esm/components/tabs/tabs.js +59 -0
- package/dist/esm/components/tabs/tabs.js.map +1 -0
- package/dist/esm/components/tag/tag-group.d.ts +1 -1
- package/dist/esm/components/tag/tag-group.d.ts.map +1 -1
- package/dist/esm/components/tag/tag-group.js.map +1 -1
- package/dist/esm/components/tag/tag.js +1 -1
- package/dist/esm/components/tag/tag.js.map +1 -1
- package/dist/esm/components/tag-field/tag-field-input.d.ts +2 -0
- package/dist/esm/components/tag-field/tag-field-input.d.ts.map +1 -0
- package/dist/esm/components/tag-field/tag-field-input.js +24 -0
- package/dist/esm/components/tag-field/tag-field-input.js.map +1 -0
- package/dist/esm/components/tag-field/tag-field-list-box.d.ts +2 -0
- package/dist/esm/components/tag-field/tag-field-list-box.d.ts.map +1 -0
- package/dist/esm/components/tag-field/tag-field-list-box.js +35 -0
- package/dist/esm/components/tag-field/tag-field-list-box.js.map +1 -0
- package/dist/esm/components/tag-field/tag-field-tags.d.ts +2 -0
- package/dist/esm/components/tag-field/tag-field-tags.d.ts.map +1 -0
- package/dist/esm/components/tag-field/tag-field-tags.js +26 -0
- package/dist/esm/components/tag-field/tag-field-tags.js.map +1 -0
- package/dist/esm/components/tag-field/tag-field.d.ts +51 -0
- package/dist/esm/components/tag-field/tag-field.d.ts.map +1 -0
- package/dist/esm/components/tag-field/tag-field.js +135 -0
- package/dist/esm/components/tag-field/tag-field.js.map +1 -0
- package/dist/esm/components/text-inputs/text-area.d.ts +1 -1
- package/dist/esm/components/text-inputs/text-area.d.ts.map +1 -1
- package/dist/esm/components/text-inputs/text-area.js +3 -3
- package/dist/esm/components/text-inputs/text-area.js.map +1 -1
- package/dist/esm/components/text-inputs/text-field.d.ts +1 -1
- package/dist/esm/components/text-inputs/text-field.d.ts.map +1 -1
- package/dist/esm/components/text-inputs/text-field.js +3 -3
- package/dist/esm/components/text-inputs/text-field.js.map +1 -1
- package/dist/esm/components/toast/toast-region.d.ts +5 -0
- package/dist/esm/components/toast/toast-region.d.ts.map +1 -0
- package/dist/esm/components/toast/toast-region.js +20 -0
- package/dist/esm/components/toast/toast-region.js.map +1 -0
- package/dist/esm/components/toast/toast.d.ts +2 -0
- package/dist/esm/components/toast/toast.d.ts.map +1 -0
- package/dist/esm/components/toast/toast.js +21 -0
- package/dist/esm/components/toast/toast.js.map +1 -0
- package/dist/esm/components/toast/types.d.ts +5 -0
- package/dist/esm/components/toast/types.d.ts.map +1 -0
- package/dist/esm/components/toast/types.js +2 -0
- package/dist/esm/components/toast/types.js.map +1 -0
- package/dist/esm/components/toggle/toggle.d.ts +14 -0
- package/dist/esm/components/toggle/toggle.d.ts.map +1 -0
- package/dist/esm/components/toggle/toggle.js +26 -0
- package/dist/esm/components/toggle/toggle.js.map +1 -0
- package/dist/esm/components/toggle-button/toggle-button-group.d.ts +15 -0
- package/dist/esm/components/toggle-button/toggle-button-group.d.ts.map +1 -0
- package/dist/esm/components/toggle-button/toggle-button-group.js +24 -0
- package/dist/esm/components/toggle-button/toggle-button-group.js.map +1 -0
- package/dist/esm/components/toggle-button/toggle-button.d.ts +16 -0
- package/dist/esm/components/toggle-button/toggle-button.d.ts.map +1 -0
- package/dist/esm/components/toggle-button/toggle-button.js +18 -0
- package/dist/esm/components/toggle-button/toggle-button.js.map +1 -0
- package/dist/esm/components/toggle-button/toggle-icon-button.d.ts +14 -0
- package/dist/esm/components/toggle-button/toggle-icon-button.d.ts.map +1 -0
- package/dist/esm/components/toggle-button/toggle-icon-button.js +18 -0
- package/dist/esm/components/toggle-button/toggle-icon-button.js.map +1 -0
- package/dist/esm/components/tooltip/tooltip.d.ts +4 -2
- package/dist/esm/components/tooltip/tooltip.d.ts.map +1 -1
- package/dist/esm/components/tooltip/tooltip.js.map +1 -1
- package/dist/esm/components/types.d.ts +4 -0
- package/dist/esm/components/types.d.ts.map +1 -1
- package/dist/esm/components/types.js.map +1 -1
- package/dist/esm/components/typography/text.d.ts.map +1 -1
- package/dist/esm/date.d.ts +2 -0
- package/dist/esm/date.d.ts.map +1 -0
- package/dist/esm/date.js +11 -0
- package/dist/esm/date.js.map +1 -0
- package/dist/esm/i18n/index.d.ts +3 -0
- package/dist/esm/i18n/index.d.ts.map +1 -0
- package/dist/esm/i18n/index.js +3 -0
- package/dist/esm/i18n/index.js.map +1 -0
- package/dist/esm/i18n/localization-provider.d.ts +59 -0
- package/dist/esm/i18n/localization-provider.d.ts.map +1 -0
- package/dist/esm/i18n/localization-provider.js +76 -0
- package/dist/esm/i18n/localization-provider.js.map +1 -0
- package/dist/esm/i18n/messages/en-US.d.ts +4 -0
- package/dist/esm/i18n/messages/en-US.d.ts.map +1 -0
- package/dist/esm/i18n/messages/en-US.js +41 -0
- package/dist/esm/i18n/messages/en-US.js.map +1 -0
- package/dist/esm/i18n/messages/index.d.ts +3 -0
- package/dist/esm/i18n/messages/index.d.ts.map +1 -0
- package/dist/esm/i18n/messages/index.js +2 -0
- package/dist/esm/i18n/messages/index.js.map +1 -0
- package/dist/esm/i18n/messages/types.d.ts +82 -0
- package/dist/esm/i18n/messages/types.d.ts.map +1 -0
- package/dist/esm/i18n/messages/types.js +2 -0
- package/dist/esm/i18n/messages/types.js.map +1 -0
- package/dist/esm/icons/index.d.ts +1 -0
- package/dist/esm/icons/index.d.ts.map +1 -1
- package/dist/esm/icons/index.js +1 -0
- package/dist/esm/icons/index.js.map +1 -1
- package/dist/esm/icons/rating-star.d.ts +8 -0
- package/dist/esm/icons/rating-star.d.ts.map +1 -0
- package/dist/esm/icons/rating-star.js +19 -0
- package/dist/esm/icons/rating-star.js.map +1 -0
- package/dist/esm/index.d.ts +26 -5
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +24 -5
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/providers/ssr/ssr-provider.d.ts +1 -3
- package/dist/esm/providers/ssr/ssr-provider.d.ts.map +1 -1
- package/dist/esm/providers/ssr/ssr-provider.js +3 -3
- package/dist/esm/providers/ssr/ssr-provider.js.map +1 -1
- package/dist/esm/utils/is-production.d.ts +2 -0
- package/dist/esm/utils/is-production.d.ts.map +1 -0
- package/dist/esm/utils/is-production.js +4 -0
- package/dist/esm/utils/is-production.js.map +1 -0
- package/dist/esm/utils/style/types.d.ts +1 -1
- package/dist/esm/utils/style/types.d.ts.map +1 -1
- package/dist/esm/utils/style/types.js.map +1 -1
- package/dist/esm/utils/use-media-query.d.ts +2 -0
- package/dist/esm/utils/use-media-query.d.ts.map +1 -0
- package/dist/esm/utils/use-media-query.js +32 -0
- package/dist/esm/utils/use-media-query.js.map +1 -0
- package/dist/esm/utils/use-production-warning.d.ts +3 -0
- package/dist/esm/utils/use-production-warning.d.ts.map +1 -0
- package/dist/esm/utils/use-production-warning.js +4 -0
- package/dist/esm/utils/use-production-warning.js.map +1 -0
- package/dist/esm/with-style-props.d.ts.map +1 -1
- package/dist-styles/core.css +1 -1
- package/dist-styles/normalize.css +1 -1
- package/dist-styles/styles.css +1 -1
- package/package.json +64 -20
- package/dist/commonjs/components/card/card-context.d.ts +0 -4
- package/dist/commonjs/components/card/card-context.d.ts.map +0 -1
- package/dist/commonjs/components/card/card-context.js +0 -6
- package/dist/commonjs/components/card/card-context.js.map +0 -1
- package/dist/commonjs/components/modal/modal.d.ts +0 -64
- package/dist/commonjs/components/modal/modal.d.ts.map +0 -1
- package/dist/commonjs/components/modal/modal.js +0 -40
- package/dist/commonjs/components/modal/modal.js.map +0 -1
- package/dist/commonjs/components/nav-tabs/nav-tabs.d.ts +0 -23
- package/dist/commonjs/components/nav-tabs/nav-tabs.d.ts.map +0 -1
- package/dist/commonjs/components/nav-tabs/nav-tabs.js +0 -27
- package/dist/commonjs/components/nav-tabs/nav-tabs.js.map +0 -1
- package/dist/esm/components/card/card-context.d.ts +0 -4
- package/dist/esm/components/card/card-context.d.ts.map +0 -1
- package/dist/esm/components/card/card-context.js +0 -3
- package/dist/esm/components/card/card-context.js.map +0 -1
- package/dist/esm/components/modal/modal.d.ts +0 -64
- package/dist/esm/components/modal/modal.d.ts.map +0 -1
- package/dist/esm/components/modal/modal.js +0 -33
- package/dist/esm/components/modal/modal.js.map +0 -1
- package/dist/esm/components/nav-tabs/nav-tabs.d.ts +0 -23
- package/dist/esm/components/nav-tabs/nav-tabs.d.ts.map +0 -1
- package/dist/esm/components/nav-tabs/nav-tabs.js +0 -20
- package/dist/esm/components/nav-tabs/nav-tabs.js.map +0 -1
|
@@ -31,12 +31,12 @@ function getResponsiveVariables(targetTokenGroup, sourceTokenGroup, data, defaul
|
|
|
31
31
|
}
|
|
32
32
|
if (typeof data !== 'object') {
|
|
33
33
|
return {
|
|
34
|
-
[`--cim-${targetTokenGroup}-
|
|
34
|
+
[`--cim-${targetTokenGroup}-sm`]: `var(--cim-${sourceTokenGroup}-${data ?? defaultValue})`,
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
37
|
const result = {
|
|
38
38
|
// Default value in case the smallest breakpoint isn't defined
|
|
39
|
-
[`--cim-${targetTokenGroup}-
|
|
39
|
+
[`--cim-${targetTokenGroup}-sm`]: `var(--cim-${sourceTokenGroup}-${defaultValue})`,
|
|
40
40
|
};
|
|
41
41
|
Object.entries(data).forEach(([breakpoint, value]) => {
|
|
42
42
|
result[`--cim-${targetTokenGroup}-${breakpoint}`] = `var(--cim-${sourceTokenGroup}-${value})`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/components/spacing/types.ts"],"names":[],"mappings":";;AAiCA,wDA0BC;AAlDD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAgB,sBAAsB,CACpC,gBAAwB,EACxB,gBAAwB,EACxB,IAAoB,EACpB,YAAgB;IAEhB,IAAI,IAAI,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QACrD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO;YACL,CAAC,SAAS,gBAAgB,KAAK,CAAC,EAAE,aAAa,gBAAgB,IAAI,IAAI,IAAI,YAAY,GAAG;SAC3F,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAA2B;QACrC,8DAA8D;QAC9D,CAAC,SAAS,gBAAgB,KAAK,CAAC,EAAE,aAAa,gBAAgB,IAAI,YAAY,GAAG;KACnF,CAAC;IAEF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE;QACnD,MAAM,CAAC,SAAS,gBAAgB,IAAI,UAAU,EAAE,CAAC,GAAG,aAAa,gBAAgB,IAAI,KAAK,GAAG,CAAC;IAChG,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["/** Represents a valid spacing amount within the design system. */\nexport type Spacing = 0 | 2 | 4 | 8 | 12 | 16 | 24 | 32 | 40 | 48 | 64 | 96;\n\n/** Represents a screen size breakpoint for responsive design. */\nexport type Breakpoint = '
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/components/spacing/types.ts"],"names":[],"mappings":";;AAiCA,wDA0BC;AAlDD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAgB,sBAAsB,CACpC,gBAAwB,EACxB,gBAAwB,EACxB,IAAoB,EACpB,YAAgB;IAEhB,IAAI,IAAI,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QACrD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO;YACL,CAAC,SAAS,gBAAgB,KAAK,CAAC,EAAE,aAAa,gBAAgB,IAAI,IAAI,IAAI,YAAY,GAAG;SAC3F,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAA2B;QACrC,8DAA8D;QAC9D,CAAC,SAAS,gBAAgB,KAAK,CAAC,EAAE,aAAa,gBAAgB,IAAI,YAAY,GAAG;KACnF,CAAC;IAEF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE;QACnD,MAAM,CAAC,SAAS,gBAAgB,IAAI,UAAU,EAAE,CAAC,GAAG,aAAa,gBAAgB,IAAI,KAAK,GAAG,CAAC;IAChG,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["/** Represents a valid spacing amount within the design system. */\nexport type Spacing = 0 | 2 | 4 | 8 | 12 | 16 | 24 | 32 | 40 | 48 | 64 | 96;\n\n/** Represents a screen size breakpoint for responsive design. */\nexport type Breakpoint = 'sm' | 'md' | 'lg' | 'xl';\n\n/** Represents a primitive value that can change based on screen size. */\nexport type Responsive<T extends string | number | boolean> = T | Partial<Record<Breakpoint, T>>;\n\n/**\n * Given params like so:\n *\n * ```ts\n * (\n * 'box-ml',\n * 'space',\n * {\n * sm: 4,\n * lg: 6,\n * }\n * )\n * ```\n *\n * Creates an object like so:\n *\n * ```ts\n * {\n * '--cim-box-ml-sm': 'var(--cim-space-4)',\n * '--cim-box-ml-lg': 'var(--cim-space-6)',\n * }\n * ```\n *\n */\nexport function getResponsiveVariables<T extends string | number | boolean>(\n targetTokenGroup: string,\n sourceTokenGroup: string,\n data?: Responsive<T>,\n defaultValue?: T,\n): Record<string, string> | undefined {\n if (data === undefined && defaultValue === undefined) {\n return undefined;\n }\n\n if (typeof data !== 'object') {\n return {\n [`--cim-${targetTokenGroup}-sm`]: `var(--cim-${sourceTokenGroup}-${data ?? defaultValue})`,\n };\n }\n\n const result: Record<string, string> = {\n // Default value in case the smallest breakpoint isn't defined\n [`--cim-${targetTokenGroup}-sm`]: `var(--cim-${sourceTokenGroup}-${defaultValue})`,\n };\n\n Object.entries(data).forEach(([breakpoint, value]) => {\n result[`--cim-${targetTokenGroup}-${breakpoint}`] = `var(--cim-${sourceTokenGroup}-${value})`;\n });\n\n return result;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../../../src/components/spinner/spinner.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../../../src/components/spinner/spinner.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAIhE,MAAM,WAAW,YAAa,SAAQ,WAAW,EAAE,eAAe;IAChE;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;CACrC;AA8BD;;;;GAIG;AACH,QAAA,MAAM,QAAQ,8JAAiD,CAAC;AAEhE,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,CAAC"}
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.Spinner = void 0;
|
|
5
5
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
-
const react_1 = require("react");
|
|
7
6
|
const react_aria_components_1 = require("react-aria-components");
|
|
8
7
|
const forward_ref_js_1 = require("../../forward-ref.js");
|
|
8
|
+
const use_production_warning_js_1 = require("../../utils/use-production-warning.js");
|
|
9
9
|
const with_style_props_js_1 = require("../../with-style-props.js");
|
|
10
10
|
const spinner_js_1 = require("../internal/spinner/spinner.js");
|
|
11
11
|
const utils_js_1 = require("../typography/utils.js");
|
|
@@ -21,12 +21,12 @@ const labelVariants = {
|
|
|
21
21
|
};
|
|
22
22
|
function Spinner({ size = 'medium', label, ...props }, ref) {
|
|
23
23
|
const { 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy } = props;
|
|
24
|
-
(0,
|
|
24
|
+
(0, use_production_warning_js_1.useProductionWarning)(() => {
|
|
25
25
|
if (!label && !ariaLabel && !ariaLabelledBy) {
|
|
26
26
|
console.warn('Spinner requires one of label / aria-label / aria-labelledby for accessibility');
|
|
27
27
|
}
|
|
28
28
|
}, [label, ariaLabel, ariaLabelledBy]);
|
|
29
|
-
return ((0, jsx_runtime_1.jsx)(spinner_js_1.InternalSpinner, { ...props, size: ringSizes[size], spinnerRef: ref, children: label && (0, jsx_runtime_1.jsx)(react_aria_components_1.Label, { className: (0, utils_js_1.textStyle)({ variant: labelVariants[size], tone: '
|
|
29
|
+
return ((0, jsx_runtime_1.jsx)(spinner_js_1.InternalSpinner, { ...props, size: ringSizes[size], spinnerRef: ref, children: label && (0, jsx_runtime_1.jsx)(react_aria_components_1.Label, { className: (0, utils_js_1.textStyle)({ variant: labelVariants[size], tone: 'base' }), children: label }) }));
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
32
|
* Displays a loading indicator to represent an ongoing operation.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../../../src/components/spinner/spinner.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;
|
|
1
|
+
{"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../../../src/components/spinner/spinner.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAGb,iEAA0D;AAC1D,yDAAkD;AAClD,qFAA6E;AAC7E,mEAA2D;AAC3D,+DAAiE;AAGjE,qDAAmD;AAUnD,MAAM,SAAS,GAAsD;IACnE,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,MAAM;CACd,CAAC;AAEF,MAAM,aAAa,GAA2E;IAC5F,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,MAAM;CACd,CAAC;AAEF,SAAS,OAAO,CAAC,EAAE,IAAI,GAAG,QAAQ,EAAE,KAAK,EAAE,GAAG,KAAK,EAAgB,EAAE,GAAiC;IACpG,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAE7E,IAAA,gDAAoB,EAAC,GAAG,EAAE;QACxB,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;QACjG,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;IAEvC,OAAO,CACL,uBAAC,4BAAe,OAAK,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,YAC/D,KAAK,IAAI,uBAAC,6BAAQ,IAAC,SAAS,EAAE,IAAA,oBAAS,EAAC,EAAE,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,YAAG,KAAK,GAAY,GAC5F,CACnB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,QAAQ,GAAG,IAAA,oCAAc,EAAC,IAAA,2BAAU,EAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;AAE3C,2BAAO","sourcesContent":["'use client';\n\nimport type { ForwardedRef } from 'react';\nimport { Label as RACLabel } from 'react-aria-components';\nimport { forwardRef } from '../../forward-ref.js';\nimport { useProductionWarning } from '../../utils/use-production-warning.js';\nimport { withStyleProps } from '../../with-style-props.js';\nimport { InternalSpinner } from '../internal/spinner/spinner.js';\nimport type { CommonProps, LabellableProps } from '../types.js';\nimport type { TextStyleOptions } from '../typography/types.js';\nimport { textStyle } from '../typography/utils.js';\n\nexport interface SpinnerProps extends CommonProps, LabellableProps {\n /**\n * Determines the size of the spinner.\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n}\n\nconst ringSizes: Record<NonNullable<SpinnerProps['size']>, string> = {\n small: '24px',\n medium: '48px',\n large: '80px',\n};\n\nconst labelVariants: Record<NonNullable<SpinnerProps['size']>, TextStyleOptions['variant']> = {\n small: 'small',\n medium: 'medium',\n large: 'body',\n};\n\nfunction Spinner({ size = 'medium', label, ...props }: SpinnerProps, ref: ForwardedRef<HTMLDivElement>) {\n const { 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy } = props;\n\n useProductionWarning(() => {\n if (!label && !ariaLabel && !ariaLabelledBy) {\n console.warn('Spinner requires one of label / aria-label / aria-labelledby for accessibility');\n }\n }, [label, ariaLabel, ariaLabelledBy]);\n\n return (\n <InternalSpinner {...props} size={ringSizes[size]} spinnerRef={ref}>\n {label && <RACLabel className={textStyle({ variant: labelVariants[size], tone: 'base' })}>{label}</RACLabel>}\n </InternalSpinner>\n );\n}\n\n/**\n * Displays a loading indicator to represent an ongoing operation.\n *\n * See [spinner usage guidelines](https://ui.cimpress.io/components/spinner/).\n */\nconst _Spinner = withStyleProps(forwardRef(Spinner), 'Spinner');\n\nexport { _Spinner as Spinner };\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-collection.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/contexts/column-collection.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAyC,MAAM,OAAO,CAAC;AAQ7G,UAAU,UAAU;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,gBAAgB,EAAE,sBAAsB,CAAC;CAC1C;AAED,2EAA2E;AAC3E,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;AAMhE,wBAAgB,wBAAwB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAsB7E;AAED,KAAK,iBAAiB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,MAAM,IAAI,CAAC;AAGvE,wBAAgB,qBAAqB,IAAI,iBAAiB,
|
|
1
|
+
{"version":3,"file":"column-collection.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/contexts/column-collection.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAyC,MAAM,OAAO,CAAC;AAQ7G,UAAU,UAAU;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,gBAAgB,EAAE,sBAAsB,CAAC;CAC1C;AAED,2EAA2E;AAC3E,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;AAMhE,wBAAgB,wBAAwB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAsB7E;AAED,KAAK,iBAAiB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,MAAM,IAAI,CAAC;AAGvE,wBAAgB,qBAAqB,IAAI,iBAAiB,CAuBzD;AAGD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,SAAS,CAO3E;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,iBAAiB,CAchG"}
|
|
@@ -42,6 +42,8 @@ function useColumnRegistration() {
|
|
|
42
42
|
return () => {
|
|
43
43
|
const { columns } = columnCollection;
|
|
44
44
|
if (columns[key] === data) {
|
|
45
|
+
// This is a temporary deletion before a context update, so this is fine
|
|
46
|
+
// eslint-disable-next-line react-hooks/react-compiler
|
|
45
47
|
delete columns[key];
|
|
46
48
|
columnCollection.setColumns({ ...columns });
|
|
47
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-collection.js","sourceRoot":"","sources":["../../../../../src/components/table/contexts/column-collection.tsx"],"names":[],"mappings":";;AAqBA,4DAsBC;AAKD,
|
|
1
|
+
{"version":3,"file":"column-collection.js","sourceRoot":"","sources":["../../../../../src/components/table/contexts/column-collection.tsx"],"names":[],"mappings":"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","sourcesContent":["import { createContext, type ReactNode, type RefObject, useContext, useMemo, useRef, useState } from 'react';\nimport { useServerEffectEvent } from '../../../utils/use-server-effect-event.js';\n\ninterface ColumnCollection {\n columns: Record<string, ColumnData>;\n setColumns: (columns: Record<string, ColumnData>) => void;\n}\n\ninterface ColumnData {\n number?: number;\n width?: string | number;\n contentAlignment: ColumnContentAlignment;\n}\n\n/** Represents the direction of content alignment within a table column. */\nexport type ColumnContentAlignment = 'start' | 'center' | 'end';\n\nconst ColumnCollectionContext = createContext<ColumnCollection | null>(null);\n\nconst EMPTY_OBJECT = {};\n\nexport function ColumnCollectionProvider({ children }: { children: ReactNode }) {\n // When column collection is updated, we want to trigger a re-render,\n // but we also want immediate access to the updated collection during SSR.\n // Hence why it is stored as both a ref and a state.\n const columnsRef = useRef<Record<string, ColumnData>>(EMPTY_OBJECT);\n const [_columns, _setColumns] = useState<Record<string, ColumnData>>(EMPTY_OBJECT);\n\n const collection: ColumnCollection = useMemo(\n () => ({\n get columns() {\n return columnsRef.current;\n },\n setColumns: (columns) => {\n columnsRef.current = columns;\n _setColumns(columns);\n },\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [_columns],\n );\n\n return <ColumnCollectionContext.Provider value={collection}>{children}</ColumnCollectionContext.Provider>;\n}\n\ntype ColumnRegistrator = (key: string, data: ColumnData) => () => void;\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useColumnRegistration(): ColumnRegistrator {\n const columnCollection = useContext(ColumnCollectionContext);\n if (!columnCollection) {\n throw new Error('Cannot use column registration outside of a table');\n }\n\n return useServerEffectEvent((key, data) => {\n columnCollection.setColumns({\n ...columnCollection.columns,\n [key]: data,\n });\n\n return () => {\n const { columns } = columnCollection;\n\n if (columns[key] === data) {\n // This is a temporary deletion before a context update, so this is fine\n // eslint-disable-next-line react-hooks/react-compiler\n delete columns[key];\n columnCollection.setColumns({ ...columns });\n }\n };\n });\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useColumnData(key: string): Readonly<ColumnData> | undefined {\n const columnCollection = useContext(ColumnCollectionContext);\n if (!columnCollection) {\n throw new Error('Cannot use column data outside of a table');\n }\n\n return columnCollection.columns[key];\n}\n\nexport interface UseEmptyStateCell {\n columnKey: string;\n colSpan: number;\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useEmptyStateCell(ref: RefObject<HTMLTableCellElement | null>): UseEmptyStateCell {\n const columnCollection = useContext(ColumnCollectionContext);\n if (!columnCollection) {\n throw new Error('Cannot use empty state cell outside of a table');\n }\n\n // Empty state cell should have the same column key as the first column in the table, so find it\n const parentTableElement = ref.current?.closest('table');\n const firstColumn = parentTableElement?.querySelector('[data-cell-row-key][data-cell-column-key]');\n\n return {\n columnKey: (firstColumn as HTMLTableCellElement | undefined)?.dataset.cellColumnKey ?? '???',\n colSpan: Object.keys(columnCollection.columns).length,\n };\n}\n"]}
|
|
@@ -2,6 +2,7 @@ import { type ReactNode } from 'react';
|
|
|
2
2
|
/** Represents the type of row selection allowed within a table. */
|
|
3
3
|
export type RowSelectionMode = 'single' | 'multiple' | 'none';
|
|
4
4
|
export interface TableState {
|
|
5
|
+
sortLabelId: string;
|
|
5
6
|
rowSelectionMode: RowSelectionMode;
|
|
6
7
|
areAllRowsSelected?: boolean;
|
|
7
8
|
areSomeRowsSelected?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-state.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/contexts/table-state.tsx"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,SAAS,EAAyC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"table-state.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/contexts/table-state.tsx"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,SAAS,EAAyC,MAAM,OAAO,CAAC;AAG7F,mEAAmE;AACnE,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;AAE9D,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,wBAAwB,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACrD,wEAAwE;IACxE,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,2BAA2B,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,KAAK,IAAI,CAAC;CACnE;AAID,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,GACzB,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,wBAAwB,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACtD,2CA8CA;AAGD,wBAAgB,aAAa,IAAI,UAAU,CAO1C"}
|
|
@@ -5,6 +5,7 @@ exports.useTableState = useTableState;
|
|
|
5
5
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
6
|
const utils_1 = require("@react-aria/utils");
|
|
7
7
|
const react_1 = require("react");
|
|
8
|
+
const localization_provider_js_1 = require("../../../i18n/localization-provider.js");
|
|
8
9
|
const TableStateContext = (0, react_1.createContext)(null);
|
|
9
10
|
function TableStateProvider({ children, rowSelectionMode, areAllRowsSelected, areSomeRowsSelected, onAllRowsSelectionToggle, }) {
|
|
10
11
|
// When the pending selection state is updated, we want to trigger a re-render,
|
|
@@ -12,8 +13,11 @@ function TableStateProvider({ children, rowSelectionMode, areAllRowsSelected, ar
|
|
|
12
13
|
// Hence why it is stored as both a ref and a state.
|
|
13
14
|
const pendingRowSelectionStateRef = (0, react_1.useRef)(undefined);
|
|
14
15
|
const [_pendingRowSelectionState, _setPendingRowSelectionState] = (0, react_1.useState)(undefined);
|
|
16
|
+
const sortLabelId = (0, utils_1.useId)();
|
|
17
|
+
const messages = (0, localization_provider_js_1.useLocalizedMessages)('table');
|
|
15
18
|
const onAllRowsSelectionToggleMemoized = (0, utils_1.useEffectEvent)(onAllRowsSelectionToggle);
|
|
16
19
|
const tableState = (0, react_1.useMemo)(() => ({
|
|
20
|
+
sortLabelId,
|
|
17
21
|
rowSelectionMode,
|
|
18
22
|
areAllRowsSelected,
|
|
19
23
|
areSomeRowsSelected,
|
|
@@ -28,13 +32,14 @@ function TableStateProvider({ children, rowSelectionMode, areAllRowsSelected, ar
|
|
|
28
32
|
}),
|
|
29
33
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
30
34
|
[
|
|
35
|
+
sortLabelId,
|
|
31
36
|
rowSelectionMode,
|
|
32
37
|
areAllRowsSelected,
|
|
33
38
|
areSomeRowsSelected,
|
|
34
39
|
onAllRowsSelectionToggleMemoized,
|
|
35
40
|
_pendingRowSelectionState,
|
|
36
41
|
]);
|
|
37
|
-
return (0, jsx_runtime_1.
|
|
42
|
+
return ((0, jsx_runtime_1.jsxs)(TableStateContext.Provider, { value: tableState, children: [children, (0, jsx_runtime_1.jsx)("span", { style: { display: 'none' }, id: sortLabelId, children: messages.format('toggleColumnSortOrder') })] }));
|
|
38
43
|
}
|
|
39
44
|
// eslint-disable-next-line react-refresh/only-export-components
|
|
40
45
|
function useTableState() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-state.js","sourceRoot":"","sources":["../../../../../src/components/table/contexts/table-state.tsx"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"table-state.js","sourceRoot":"","sources":["../../../../../src/components/table/contexts/table-state.tsx"],"names":[],"mappings":";;AAoBA,gDA0DC;AAGD,sCAOC;;AAxFD,6CAA0D;AAC1D,iCAA6F;AAC7F,qFAA8E;AAgB9E,MAAM,iBAAiB,GAAG,IAAA,qBAAa,EAAoB,IAAI,CAAC,CAAC;AAEjE,SAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,GAOzB;IACC,+EAA+E;IAC/E,sDAAsD;IACtD,oDAAoD;IACpD,MAAM,2BAA2B,GAAG,IAAA,cAAM,EAAsB,SAAS,CAAC,CAAC;IAC3E,MAAM,CAAC,yBAAyB,EAAE,4BAA4B,CAAC,GAAG,IAAA,gBAAQ,EAAsB,SAAS,CAAC,CAAC;IAE3G,MAAM,WAAW,GAAG,IAAA,aAAK,GAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,IAAA,+CAAoB,EAAC,OAAO,CAAC,CAAC;IAE/C,MAAM,gCAAgC,GAAG,IAAA,sBAAc,EAAC,wBAAwB,CAAC,CAAC;IAElF,MAAM,UAAU,GAAe,IAAA,eAAO,EACpC,GAAG,EAAE,CAAC,CAAC;QACL,WAAW;QACX,gBAAgB;QAChB,kBAAkB;QAClB,mBAAmB;QACnB,wBAAwB,EAAE,gCAAgC;QAC1D,IAAI,wBAAwB;YAC1B,OAAO,2BAA2B,CAAC,OAAO,CAAC;QAC7C,CAAC;QACD,2BAA2B,CAAC,wBAA6C;YACvE,2BAA2B,CAAC,OAAO,GAAG,wBAAwB,CAAC;YAC/D,4BAA4B,CAAC,wBAAwB,CAAC,CAAC;QACzD,CAAC;KACF,CAAC;IACF,uDAAuD;IACvD;QACE,WAAW;QACX,gBAAgB;QAChB,kBAAkB;QAClB,mBAAmB;QACnB,gCAAgC;QAChC,yBAAyB;KAC1B,CACF,CAAC;IAEF,OAAO,CACL,wBAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,UAAU,aAC1C,QAAQ,EACT,iCAAM,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,WAAW,YAC9C,QAAQ,CAAC,MAAM,CAAC,uBAAuB,CAAC,GACpC,IACoB,CAC9B,CAAC;AACJ,CAAC;AAED,gEAAgE;AAChE,SAAgB,aAAa;IAC3B,MAAM,UAAU,GAAG,IAAA,kBAAU,EAAC,iBAAiB,CAAC,CAAC;IACjD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC","sourcesContent":["import { useEffectEvent, useId } from '@react-aria/utils';\nimport { createContext, type ReactNode, useContext, useMemo, useRef, useState } from 'react';\nimport { useLocalizedMessages } from '../../../i18n/localization-provider.js';\n\n/** Represents the type of row selection allowed within a table. */\nexport type RowSelectionMode = 'single' | 'multiple' | 'none';\n\nexport interface TableState {\n sortLabelId: string;\n rowSelectionMode: RowSelectionMode;\n areAllRowsSelected?: boolean;\n areSomeRowsSelected?: boolean;\n onAllRowsSelectionToggle?: (value?: boolean) => void;\n /** The selection state that will be applied to the next focused row. */\n pendingRowSelectionState?: boolean;\n setPendingRowSelectionState: (value: boolean | undefined) => void;\n}\n\nconst TableStateContext = createContext<TableState | null>(null);\n\nexport function TableStateProvider({\n children,\n rowSelectionMode,\n areAllRowsSelected,\n areSomeRowsSelected,\n onAllRowsSelectionToggle,\n}: {\n children: ReactNode;\n rowSelectionMode: RowSelectionMode;\n areAllRowsSelected?: boolean;\n areSomeRowsSelected?: boolean;\n onAllRowsSelectionToggle?: (value?: boolean) => void;\n}) {\n // When the pending selection state is updated, we want to trigger a re-render,\n // but we also want immediate access to the new value.\n // Hence why it is stored as both a ref and a state.\n const pendingRowSelectionStateRef = useRef<boolean | undefined>(undefined);\n const [_pendingRowSelectionState, _setPendingRowSelectionState] = useState<boolean | undefined>(undefined);\n\n const sortLabelId = useId();\n const messages = useLocalizedMessages('table');\n\n const onAllRowsSelectionToggleMemoized = useEffectEvent(onAllRowsSelectionToggle);\n\n const tableState: TableState = useMemo(\n () => ({\n sortLabelId,\n rowSelectionMode,\n areAllRowsSelected,\n areSomeRowsSelected,\n onAllRowsSelectionToggle: onAllRowsSelectionToggleMemoized,\n get pendingRowSelectionState() {\n return pendingRowSelectionStateRef.current;\n },\n setPendingRowSelectionState(pendingRowSelectionState: boolean | undefined) {\n pendingRowSelectionStateRef.current = pendingRowSelectionState;\n _setPendingRowSelectionState(pendingRowSelectionState);\n },\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n sortLabelId,\n rowSelectionMode,\n areAllRowsSelected,\n areSomeRowsSelected,\n onAllRowsSelectionToggleMemoized,\n _pendingRowSelectionState,\n ],\n );\n\n return (\n <TableStateContext.Provider value={tableState}>\n {children}\n <span style={{ display: 'none' }} id={sortLabelId}>\n {messages.format('toggleColumnSortOrder')}\n </span>\n </TableStateContext.Provider>\n );\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useTableState(): TableState {\n const tableState = useContext(TableStateContext);\n if (!tableState) {\n throw new Error('Cannot use table state outside of a table');\n }\n\n return tableState;\n}\n"]}
|
|
@@ -13,6 +13,7 @@ function useTableCell(ref, rowKey, columnKey) {
|
|
|
13
13
|
const tableFocus = (0, focus_js_1.useTableFocus)();
|
|
14
14
|
const { pendingRowSelectionState, setPendingRowSelectionState } = (0, table_state_js_1.useTableState)();
|
|
15
15
|
const { onSelectionToggle } = (0, row_state_js_1.useTableRowState)();
|
|
16
|
+
const { focusProps, isFocusVisible: isCellFocusVisible } = (0, focus_1.useFocusRing)();
|
|
16
17
|
const isTabbable = rowKey === tableFocus.focusedRowKey && columnKey === tableFocus.focusedColumnKey;
|
|
17
18
|
// Handles focusing the cell.
|
|
18
19
|
// If there is a focusable child, it is focused, otherwise the cell itself is focused.
|
|
@@ -128,14 +129,13 @@ function useTableCell(ref, rowKey, columnKey) {
|
|
|
128
129
|
e.preventDefault();
|
|
129
130
|
e.stopPropagation();
|
|
130
131
|
};
|
|
131
|
-
const { focusProps, isFocused } = (0, focus_1.useFocusRing)();
|
|
132
132
|
const customProps = {
|
|
133
133
|
tabIndex: isTabbable ? 0 : -1,
|
|
134
134
|
onFocus,
|
|
135
135
|
onKeyDownCapture,
|
|
136
136
|
'data-cell-row-key': rowKey,
|
|
137
137
|
'data-cell-column-key': columnKey,
|
|
138
|
-
'data-
|
|
138
|
+
'data-focus-visible': isCellFocusVisible || undefined,
|
|
139
139
|
};
|
|
140
140
|
return {
|
|
141
141
|
cellProps: (0, utils_1.mergeProps)(focusProps, customProps),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-table-cell.js","sourceRoot":"","sources":["../../../../../src/components/table/hooks/use-table-cell.ts"],"names":[],"mappings":"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","sourcesContent":["import { getFocusableTreeWalker, useFocusRing } from '@react-aria/focus';\nimport { isFocusVisible } from '@react-aria/interactions';\nimport { mergeProps, useEffectEvent, useLayoutEffect } from '@react-aria/utils';\nimport { type KeyboardEventHandler, type FocusEventHandler, type RefObject, useEffect } from 'react';\nimport type { FocusableElement, NativeElementProps } from '../../types.js';\nimport { useTableFocus } from '../contexts/focus.js';\nimport { useTableRowState } from '../contexts/row-state.js';\nimport { useTableState } from '../contexts/table-state.js';\nimport { focusTableChild } from '../utils/focus-table-child.js';\n\nexport interface UseTableCell {\n cellProps: NativeElementProps<HTMLTableCellElement>;\n}\n\nexport function useTableCell(\n ref: RefObject<HTMLTableCellElement | null>,\n rowKey: string,\n columnKey: string,\n): UseTableCell {\n const tableFocus = useTableFocus();\n const { pendingRowSelectionState, setPendingRowSelectionState } = useTableState();\n const { onSelectionToggle } = useTableRowState();\n\n const isTabbable = rowKey === tableFocus.focusedRowKey && columnKey === tableFocus.focusedColumnKey;\n\n // Handles focusing the cell.\n // If there is a focusable child, it is focused, otherwise the cell itself is focused.\n const focusCell = () => {\n if (!ref.current) {\n return;\n }\n\n // If there's a pending selection state, apply it to this cell's row.\n // If this cell is a header cell, `onSelectionToggle` will be undefined, but we still want to clear the pending selection state.\n if (pendingRowSelectionState !== undefined) {\n onSelectionToggle?.(pendingRowSelectionState);\n setPendingRowSelectionState(undefined);\n }\n\n // If focus is already on a focusable child within the cell, early return so we don't shift focus\n if (ref.current.contains(document.activeElement) && ref.current !== document.activeElement) {\n return;\n }\n\n const treeWalker = getFocusableTreeWalker(ref.current);\n const focusable = tableFocus.childFocusStrategy === 'last' ? treeWalker.lastChild() : treeWalker.firstChild();\n\n if (focusable) {\n // Cell has focusable children, focus the child\n focusTableChild(focusable as FocusableElement);\n } else if (!ref.current.contains(document.activeElement)) {\n // Cell has no focusable children and current focus is outside of the cell, focus the cell itself\n focusTableChild(ref.current);\n } else if (ref.current === document.activeElement && !isTabbable) {\n // Focus is on the current cell, but table focus is elsewhere, update table focus state\n tableFocus.setFocus(rowKey, columnKey);\n }\n };\n\n // Focus the cell DOM node when table focus moves to this cell\n useLayoutEffect(() => {\n if (isTabbable && !ref.current!.contains(document.activeElement)) {\n focusCell();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ref, isTabbable]);\n\n const resetIfFocused = useEffectEvent(() => {\n if (isTabbable) {\n tableFocus.setFocus('', '');\n }\n });\n\n // Reset table focus when the focused cell unmounts\n useEffect(\n () => () => {\n resetIfFocused();\n },\n [resetIfFocused],\n );\n\n const onFocus: FocusEventHandler = (e) => {\n // Ignore focus events bubbling through portals\n if (!e.currentTarget.contains(e.target)) {\n return;\n }\n\n // If cell is already focused, return early.\n // However, if focus happens as a result of a press, we need to re-run the child-focusing logic,\n // otherwise `useFocusRing` will force the cell itself to become focused.\n if (e.currentTarget.contains(e.relatedTarget) && isFocusVisible()) {\n return;\n }\n\n // There are 3 scenarios for why a cell might receive focus:\n // - focus happens through a press, we need to update table focus state to the current cell\n // - focus happens through arrow key navigation within the table,\n // we do nothing as table focus state would have already been updated earlier\n // - focus happens through tabbing into the table from outside,\n // we do nothing because we want to restore focus to the previously focused cell,\n // and overriding table focus state would make that impossible\n if (!isFocusVisible()) {\n tableFocus.setFocus(rowKey, columnKey);\n }\n\n if (e.target === ref.current) {\n // If the cell itself receives focus, wait a frame so that focus finishes propagating\n // up to the tree, and move focus to a focusable child if possible.\n requestAnimationFrame(() => {\n if (document.activeElement === ref.current) {\n focusCell();\n }\n });\n }\n };\n\n // Handles keyboard navigation between focusable children within the cell.\n const onKeyDownCapture: KeyboardEventHandler = (e) => {\n // Ignore keyboard events bubbling through portals\n if (!e.currentTarget.contains(e.target as Element) || !ref.current || !document.activeElement) {\n return;\n }\n\n const walker = getFocusableTreeWalker(ref.current);\n walker.currentNode = document.activeElement;\n\n if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n // Move to the previous/next focusable element within the cell\n const childElementToFocus = e.key === 'ArrowLeft' ? walker.previousNode() : walker.nextNode();\n\n if (childElementToFocus && childElementToFocus !== ref.current) {\n focusTableChild(childElementToFocus as FocusableElement);\n } else {\n // If there is no previous/next focusable element within the current cell, focus should move to the previous/next cell.\n // This is handled by `useTable`, so we need to let the event bubble up to it.\n // But we also don't want this event to reach children of the current cell, as arrow keys should be used exclusively for table navigation.\n // Solution: re-dispatch the event from a parent element of the current cell.\n ref.current.parentElement!.dispatchEvent(new KeyboardEvent(e.nativeEvent.type, e.nativeEvent));\n }\n } else if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n // Move to the previous/next cell in the current column.\n // This is handled by `useTable`, so we need to let the event bubble up to it.\n // But we also don't want this event to reach children of the current cell, as arrow keys should be used exclusively for table navigation.\n // Solution: re-dispatch the event from a parent element of the current cell.\n ref.current.parentElement?.dispatchEvent(new KeyboardEvent(e.nativeEvent.type, e.nativeEvent));\n } else {\n // if we didn't handle anything, return early so we don't stop propagation and preventDefault\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n };\n\n const { focusProps, isFocused } = useFocusRing();\n\n const customProps: NativeElementProps<HTMLTableCellElement> = {\n tabIndex: isTabbable ? 0 : -1,\n onFocus,\n onKeyDownCapture,\n 'data-cell-row-key': rowKey,\n 'data-cell-column-key': columnKey,\n 'data-focused': isFocused || undefined,\n };\n\n return {\n cellProps: mergeProps(focusProps, customProps),\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"use-table-cell.js","sourceRoot":"","sources":["../../../../../src/components/table/hooks/use-table-cell.ts"],"names":[],"mappings":";;AAcA,oCA0JC;AAxKD,6CAAyE;AACzE,2DAA0D;AAC1D,6CAAgF;AAChF,iCAAqG;AAErG,mDAAqD;AACrD,2DAA4D;AAC5D,+DAA2D;AAC3D,wEAAgE;AAMhE,SAAgB,YAAY,CAC1B,GAA2C,EAC3C,MAAc,EACd,SAAiB;IAEjB,MAAM,UAAU,GAAG,IAAA,wBAAa,GAAE,CAAC;IACnC,MAAM,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,GAAG,IAAA,8BAAa,GAAE,CAAC;IAClF,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAA,+BAAgB,GAAE,CAAC;IAEjD,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,IAAA,oBAAY,GAAE,CAAC;IAE1E,MAAM,UAAU,GAAG,MAAM,KAAK,UAAU,CAAC,aAAa,IAAI,SAAS,KAAK,UAAU,CAAC,gBAAgB,CAAC;IAEpG,6BAA6B;IAC7B,sFAAsF;IACtF,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,qEAAqE;QACrE,gIAAgI;QAChI,IAAI,wBAAwB,KAAK,SAAS,EAAE,CAAC;YAC3C,iBAAiB,EAAE,CAAC,wBAAwB,CAAC,CAAC;YAC9C,2BAA2B,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;QAED,iGAAiG;QACjG,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,aAAa,EAAE,CAAC;YAC3F,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,IAAA,8BAAsB,EAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,UAAU,CAAC,kBAAkB,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QAE9G,IAAI,SAAS,EAAE,CAAC;YACd,+CAA+C;YAC/C,IAAA,sCAAe,EAAC,SAA6B,CAAC,CAAC;QACjD,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACzD,iGAAiG;YACjG,IAAA,sCAAe,EAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;aAAM,IAAI,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,aAAa,IAAI,CAAC,UAAU,EAAE,CAAC;YACjE,uFAAuF;YACvF,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,CAAC;IAEF,8DAA8D;IAC9D,IAAA,uBAAe,EAAC,GAAG,EAAE;QACnB,IAAI,UAAU,IAAI,CAAC,GAAG,CAAC,OAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACjE,SAAS,EAAE,CAAC;QACd,CAAC;QACD,uDAAuD;IACzD,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;IAEtB,MAAM,cAAc,GAAG,IAAA,sBAAc,EAAC,GAAG,EAAE;QACzC,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,mDAAmD;IACnD,IAAA,iBAAS,EACP,GAAG,EAAE,CAAC,GAAG,EAAE;QACT,cAAc,EAAE,CAAC;IACnB,CAAC,EACD,CAAC,cAAc,CAAC,CACjB,CAAC;IAEF,MAAM,OAAO,GAAsB,CAAC,CAAC,EAAE,EAAE;QACvC,+CAA+C;QAC/C,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACxC,OAAO;QACT,CAAC;QAED,4CAA4C;QAC5C,gGAAgG;QAChG,yEAAyE;QACzE,IAAI,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,IAAA,6BAAc,GAAE,EAAE,CAAC;YAClE,OAAO;QACT,CAAC;QAED,4DAA4D;QAC5D,2FAA2F;QAC3F,iEAAiE;QACjE,+EAA+E;QAC/E,+DAA+D;QAC/D,mFAAmF;QACnF,gEAAgE;QAChE,IAAI,CAAC,IAAA,6BAAc,GAAE,EAAE,CAAC;YACtB,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;YAC7B,qFAAqF;YACrF,mEAAmE;YACnE,qBAAqB,CAAC,GAAG,EAAE;gBACzB,IAAI,QAAQ,CAAC,aAAa,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;oBAC3C,SAAS,EAAE,CAAC;gBACd,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,0EAA0E;IAC1E,MAAM,gBAAgB,GAAyB,CAAC,CAAC,EAAE,EAAE;QACnD,kDAAkD;QAClD,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;YAC9F,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,IAAA,8BAAsB,EAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC;QAE5C,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,IAAI,CAAC,CAAC,GAAG,KAAK,YAAY,EAAE,CAAC;YACpD,8DAA8D;YAC9D,MAAM,mBAAmB,GAAG,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAE9F,IAAI,mBAAmB,IAAI,mBAAmB,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC/D,IAAA,sCAAe,EAAC,mBAAuC,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,uHAAuH;gBACvH,8EAA8E;gBAC9E,0IAA0I;gBAC1I,6EAA6E;gBAC7E,GAAG,CAAC,OAAO,CAAC,aAAc,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YACjG,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;YACxD,wDAAwD;YACxD,8EAA8E;YAC9E,0IAA0I;YAC1I,6EAA6E;YAC7E,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QACjG,CAAC;aAAM,CAAC;YACN,6FAA6F;YAC7F,OAAO;QACT,CAAC;QAED,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,WAAW,GAA6C;QAC5D,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,OAAO;QACP,gBAAgB;QAChB,mBAAmB,EAAE,MAAM;QAC3B,sBAAsB,EAAE,SAAS;QACjC,oBAAoB,EAAE,kBAAkB,IAAI,SAAS;KACtD,CAAC;IAEF,OAAO;QACL,SAAS,EAAE,IAAA,kBAAU,EAAC,UAAU,EAAE,WAAW,CAAC;KAC/C,CAAC;AACJ,CAAC","sourcesContent":["import { getFocusableTreeWalker, useFocusRing } from '@react-aria/focus';\nimport { isFocusVisible } from '@react-aria/interactions';\nimport { mergeProps, useEffectEvent, useLayoutEffect } from '@react-aria/utils';\nimport { type KeyboardEventHandler, type FocusEventHandler, type RefObject, useEffect } from 'react';\nimport type { FocusableElement, NativeElementProps } from '../../types.js';\nimport { useTableFocus } from '../contexts/focus.js';\nimport { useTableRowState } from '../contexts/row-state.js';\nimport { useTableState } from '../contexts/table-state.js';\nimport { focusTableChild } from '../utils/focus-table-child.js';\n\nexport interface UseTableCell {\n cellProps: NativeElementProps<HTMLTableCellElement>;\n}\n\nexport function useTableCell(\n ref: RefObject<HTMLTableCellElement | null>,\n rowKey: string,\n columnKey: string,\n): UseTableCell {\n const tableFocus = useTableFocus();\n const { pendingRowSelectionState, setPendingRowSelectionState } = useTableState();\n const { onSelectionToggle } = useTableRowState();\n\n const { focusProps, isFocusVisible: isCellFocusVisible } = useFocusRing();\n\n const isTabbable = rowKey === tableFocus.focusedRowKey && columnKey === tableFocus.focusedColumnKey;\n\n // Handles focusing the cell.\n // If there is a focusable child, it is focused, otherwise the cell itself is focused.\n const focusCell = () => {\n if (!ref.current) {\n return;\n }\n\n // If there's a pending selection state, apply it to this cell's row.\n // If this cell is a header cell, `onSelectionToggle` will be undefined, but we still want to clear the pending selection state.\n if (pendingRowSelectionState !== undefined) {\n onSelectionToggle?.(pendingRowSelectionState);\n setPendingRowSelectionState(undefined);\n }\n\n // If focus is already on a focusable child within the cell, early return so we don't shift focus\n if (ref.current.contains(document.activeElement) && ref.current !== document.activeElement) {\n return;\n }\n\n const treeWalker = getFocusableTreeWalker(ref.current);\n const focusable = tableFocus.childFocusStrategy === 'last' ? treeWalker.lastChild() : treeWalker.firstChild();\n\n if (focusable) {\n // Cell has focusable children, focus the child\n focusTableChild(focusable as FocusableElement);\n } else if (!ref.current.contains(document.activeElement)) {\n // Cell has no focusable children and current focus is outside of the cell, focus the cell itself\n focusTableChild(ref.current);\n } else if (ref.current === document.activeElement && !isTabbable) {\n // Focus is on the current cell, but table focus is elsewhere, update table focus state\n tableFocus.setFocus(rowKey, columnKey);\n }\n };\n\n // Focus the cell DOM node when table focus moves to this cell\n useLayoutEffect(() => {\n if (isTabbable && !ref.current!.contains(document.activeElement)) {\n focusCell();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ref, isTabbable]);\n\n const resetIfFocused = useEffectEvent(() => {\n if (isTabbable) {\n tableFocus.setFocus('', '');\n }\n });\n\n // Reset table focus when the focused cell unmounts\n useEffect(\n () => () => {\n resetIfFocused();\n },\n [resetIfFocused],\n );\n\n const onFocus: FocusEventHandler = (e) => {\n // Ignore focus events bubbling through portals\n if (!e.currentTarget.contains(e.target)) {\n return;\n }\n\n // If cell is already focused, return early.\n // However, if focus happens as a result of a press, we need to re-run the child-focusing logic,\n // otherwise `useFocusRing` will force the cell itself to become focused.\n if (e.currentTarget.contains(e.relatedTarget) && isFocusVisible()) {\n return;\n }\n\n // There are 3 scenarios for why a cell might receive focus:\n // - focus happens through a press, we need to update table focus state to the current cell\n // - focus happens through arrow key navigation within the table,\n // we do nothing as table focus state would have already been updated earlier\n // - focus happens through tabbing into the table from outside,\n // we do nothing because we want to restore focus to the previously focused cell,\n // and overriding table focus state would make that impossible\n if (!isFocusVisible()) {\n tableFocus.setFocus(rowKey, columnKey);\n }\n\n if (e.target === ref.current) {\n // If the cell itself receives focus, wait a frame so that focus finishes propagating\n // up to the tree, and move focus to a focusable child if possible.\n requestAnimationFrame(() => {\n if (document.activeElement === ref.current) {\n focusCell();\n }\n });\n }\n };\n\n // Handles keyboard navigation between focusable children within the cell.\n const onKeyDownCapture: KeyboardEventHandler = (e) => {\n // Ignore keyboard events bubbling through portals\n if (!e.currentTarget.contains(e.target as Element) || !ref.current || !document.activeElement) {\n return;\n }\n\n const walker = getFocusableTreeWalker(ref.current);\n walker.currentNode = document.activeElement;\n\n if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n // Move to the previous/next focusable element within the cell\n const childElementToFocus = e.key === 'ArrowLeft' ? walker.previousNode() : walker.nextNode();\n\n if (childElementToFocus && childElementToFocus !== ref.current) {\n focusTableChild(childElementToFocus as FocusableElement);\n } else {\n // If there is no previous/next focusable element within the current cell, focus should move to the previous/next cell.\n // This is handled by `useTable`, so we need to let the event bubble up to it.\n // But we also don't want this event to reach children of the current cell, as arrow keys should be used exclusively for table navigation.\n // Solution: re-dispatch the event from a parent element of the current cell.\n ref.current.parentElement!.dispatchEvent(new KeyboardEvent(e.nativeEvent.type, e.nativeEvent));\n }\n } else if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n // Move to the previous/next cell in the current column.\n // This is handled by `useTable`, so we need to let the event bubble up to it.\n // But we also don't want this event to reach children of the current cell, as arrow keys should be used exclusively for table navigation.\n // Solution: re-dispatch the event from a parent element of the current cell.\n ref.current.parentElement?.dispatchEvent(new KeyboardEvent(e.nativeEvent.type, e.nativeEvent));\n } else {\n // if we didn't handle anything, return early so we don't stop propagation and preventDefault\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n };\n\n const customProps: NativeElementProps<HTMLTableCellElement> = {\n tabIndex: isTabbable ? 0 : -1,\n onFocus,\n onKeyDownCapture,\n 'data-cell-row-key': rowKey,\n 'data-cell-column-key': columnKey,\n 'data-focus-visible': isCellFocusVisible || undefined,\n };\n\n return {\n cellProps: mergeProps(focusProps, customProps),\n };\n}\n"]}
|
|
@@ -31,6 +31,6 @@ function TableEmptyStateInner({ props: { UNSAFE_className, UNSAFE_style, title,
|
|
|
31
31
|
// `useTableCell` requires `TableRowStateProvider`
|
|
32
32
|
const { cellProps } = (0, use_table_cell_js_1.useTableCell)(cellRef, rowKey, columnKey);
|
|
33
33
|
const columnData = (0, column_collection_js_1.useColumnData)(columnKey);
|
|
34
|
-
return ((0, jsx_runtime_1.jsx)("tr", { children: (0, jsx_runtime_1.jsx)("td", { ...(0, utils_1.mergeProps)(props, cellProps), ref: cellRef, className: (0, clsx_1.default)('cim-table-empty-state', UNSAFE_className), style: UNSAFE_style, "aria-colindex": columnData?.number, colSpan: colSpan, "data-alignment": "center", children: (0, jsx_runtime_1.jsxs)("div", { className: "cim-table-empty-state-content", children: [(0, jsx_runtime_1.jsx)(text_js_1.Text, { as: "span", variant: "title-6", tone: "
|
|
34
|
+
return ((0, jsx_runtime_1.jsx)("tr", { children: (0, jsx_runtime_1.jsx)("td", { ...(0, utils_1.mergeProps)(props, cellProps), ref: cellRef, className: (0, clsx_1.default)('cim-table-empty-state', UNSAFE_className), style: UNSAFE_style, "aria-colindex": columnData?.number, colSpan: colSpan, "data-alignment": "center", children: (0, jsx_runtime_1.jsxs)("div", { className: "cim-table-empty-state-content", children: [(0, jsx_runtime_1.jsx)(text_js_1.Text, { as: "span", variant: "title-6", tone: "base", children: title }), (0, jsx_runtime_1.jsx)(text_js_1.Text, { as: "span", variant: "medium", tone: "base", children: description }), action && (0, jsx_runtime_1.jsx)("div", { className: "cim-table-empty-state-action", children: action })] }) }) }, "__cim__internal__empty-state__"));
|
|
35
35
|
}
|
|
36
36
|
//# sourceMappingURL=table-empty-state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-empty-state.js","sourceRoot":"","sources":["../../../../src/components/table/table-empty-state.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;AAEb,6CAAoE;AACpE,gDAAwB;AAExB,yDAAkD;AAElD,mDAA6C;AAC7C,0EAAmF;AACnF,0DAAkF;AAClF,iEAAyD;AAWzD,SAAS,eAAe,CAAC,KAA2B,EAAE,GAAuC;IAC3F,MAAM,MAAM,GAAG,IAAA,aAAK,GAAE,CAAC;IAEvB,OAAO,CACL,uBAAC,oCAAqB,IAAC,MAAM,EAAE,MAAM,YACnC,uBAAC,oBAAoB,IAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,GAAI,GACnC,CACzB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,IAAA,2BAAU,EAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;AA6C3C,2CAAe;AAtC5C,SAAS,oBAAoB,CAAC,EAC5B,KAAK,EAAE,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAC/E,YAAY,GACc;IAC1B,MAAM,OAAO,GAAG,IAAA,oBAAY,EAAC,YAAY,CAAC,CAAC;IAC3C,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAA,wCAAiB,EAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAgB,GAAE,CAAC;IACtC,kDAAkD;IAClD,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,gCAAY,EAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,IAAA,oCAAa,EAAC,SAAS,CAAC,CAAC;IAE5C,OAAO,CACL,yCACE,kCACM,IAAA,kBAAU,EAAC,KAAK,EAAE,SAAS,CAAC,EAChC,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,IAAA,cAAI,EAAC,uBAAuB,EAAE,gBAAgB,CAAC,EAC1D,KAAK,EAAE,YAAY,mBACJ,UAAU,EAAE,MAAM,EACjC,OAAO,EAAE,OAAO,oBACD,QAAQ,YAEvB,iCAAK,SAAS,EAAC,+BAA+B,aAC5C,uBAAC,cAAI,IAAC,EAAE,EAAC,MAAM,EAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,
|
|
1
|
+
{"version":3,"file":"table-empty-state.js","sourceRoot":"","sources":["../../../../src/components/table/table-empty-state.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;AAEb,6CAAoE;AACpE,gDAAwB;AAExB,yDAAkD;AAElD,mDAA6C;AAC7C,0EAAmF;AACnF,0DAAkF;AAClF,iEAAyD;AAWzD,SAAS,eAAe,CAAC,KAA2B,EAAE,GAAuC;IAC3F,MAAM,MAAM,GAAG,IAAA,aAAK,GAAE,CAAC;IAEvB,OAAO,CACL,uBAAC,oCAAqB,IAAC,MAAM,EAAE,MAAM,YACnC,uBAAC,oBAAoB,IAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,GAAI,GACnC,CACzB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,IAAA,2BAAU,EAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;AA6C3C,2CAAe;AAtC5C,SAAS,oBAAoB,CAAC,EAC5B,KAAK,EAAE,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAC/E,YAAY,GACc;IAC1B,MAAM,OAAO,GAAG,IAAA,oBAAY,EAAC,YAAY,CAAC,CAAC;IAC3C,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAA,wCAAiB,EAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAgB,GAAE,CAAC;IACtC,kDAAkD;IAClD,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,gCAAY,EAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,IAAA,oCAAa,EAAC,SAAS,CAAC,CAAC;IAE5C,OAAO,CACL,yCACE,kCACM,IAAA,kBAAU,EAAC,KAAK,EAAE,SAAS,CAAC,EAChC,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,IAAA,cAAI,EAAC,uBAAuB,EAAE,gBAAgB,CAAC,EAC1D,KAAK,EAAE,YAAY,mBACJ,UAAU,EAAE,MAAM,EACjC,OAAO,EAAE,OAAO,oBACD,QAAQ,YAEvB,iCAAK,SAAS,EAAC,+BAA+B,aAC5C,uBAAC,cAAI,IAAC,EAAE,EAAC,MAAM,EAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,MAAM,YAC1C,KAAK,GACD,EAEP,uBAAC,cAAI,IAAC,EAAE,EAAC,MAAM,EAAC,OAAO,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,YACzC,WAAW,GACP,EAEN,MAAM,IAAI,gCAAK,SAAS,EAAC,8BAA8B,YAAE,MAAM,GAAO,IACnE,GACH,IArBC,gCAAgC,CAsBnC,CACN,CAAC;AACJ,CAAC","sourcesContent":["'use client';\n\nimport { mergeProps, useId, useObjectRef } from '@react-aria/utils';\nimport clsx from 'clsx';\nimport type { ForwardedRef, ReactNode } from 'react';\nimport { forwardRef } from '../../forward-ref.js';\nimport type { CommonProps } from '../types.js';\nimport { Text } from '../typography/text.js';\nimport { useColumnData, useEmptyStateCell } from './contexts/column-collection.js';\nimport { TableRowStateProvider, useTableRowState } from './contexts/row-state.js';\nimport { useTableCell } from './hooks/use-table-cell.js';\n\nexport interface TableEmptyStateProps extends CommonProps {\n /** The title of the empty state. */\n title: string;\n /** The description of the empty state. */\n description: string;\n /** An optional action button displayed within the empty state. */\n action?: ReactNode;\n}\n\nfunction TableEmptyState(props: TableEmptyStateProps, ref: ForwardedRef<HTMLTableCellElement>) {\n const rowKey = useId();\n\n return (\n <TableRowStateProvider rowKey={rowKey}>\n <TableEmptyStateInner props={props} forwardedRef={ref} />\n </TableRowStateProvider>\n );\n}\n\n/**\n * Renders an empty state within a table that has no data.\n *\n * See [table usage guidelines](https://ui.cimpress.io/components/table/) and [table building guide](https://ui.cimpress.io/dev-guides/tables/).\n */\nconst _TableEmptyState = forwardRef(TableEmptyState, 'TableEmptyState');\n\ninterface TableEmptyStateInnerProps {\n props: TableEmptyStateProps;\n forwardedRef: ForwardedRef<HTMLTableCellElement>;\n}\n\nfunction TableEmptyStateInner({\n props: { UNSAFE_className, UNSAFE_style, title, description, action, ...props },\n forwardedRef,\n}: TableEmptyStateInnerProps) {\n const cellRef = useObjectRef(forwardedRef);\n const { columnKey, colSpan } = useEmptyStateCell(cellRef);\n const { rowKey } = useTableRowState();\n // `useTableCell` requires `TableRowStateProvider`\n const { cellProps } = useTableCell(cellRef, rowKey, columnKey);\n const columnData = useColumnData(columnKey);\n\n return (\n <tr key=\"__cim__internal__empty-state__\">\n <td\n {...mergeProps(props, cellProps)}\n ref={cellRef}\n className={clsx('cim-table-empty-state', UNSAFE_className)}\n style={UNSAFE_style}\n aria-colindex={columnData?.number}\n colSpan={colSpan}\n data-alignment=\"center\"\n >\n <div className=\"cim-table-empty-state-content\">\n <Text as=\"span\" variant=\"title-6\" tone=\"base\">\n {title}\n </Text>\n\n <Text as=\"span\" variant=\"medium\" tone=\"base\">\n {description}\n </Text>\n\n {action && <div className=\"cim-table-empty-state-action\">{action}</div>}\n </div>\n </td>\n </tr>\n );\n}\n\nexport { _TableEmptyState as TableEmptyState };\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-header-button.d.ts","sourceRoot":"","sources":["../../../../src/components/table/table-header-button.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.TableHeaderButton = TableHeaderButton;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const clsx_1 = __importDefault(require("clsx"));
|
|
9
|
+
const react_aria_components_1 = require("react-aria-components");
|
|
10
|
+
/**
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
function TableHeaderButton({ UNSAFE_className, UNSAFE_style, icon, ...props }) {
|
|
14
|
+
return ((0, jsx_runtime_1.jsx)(react_aria_components_1.Button, { ...props, className: (0, clsx_1.default)('cim-table-header-button', UNSAFE_className), style: UNSAFE_style, children: icon }));
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=table-header-button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-header-button.js","sourceRoot":"","sources":["../../../../src/components/table/table-header-button.tsx"],"names":[],"mappings":";;;;;AAaA,8CAMC;;AAnBD,gDAAwB;AAExB,iEAAgG;AAQhG;;GAEG;AACH,SAAgB,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,KAAK,EAA0B;IAC1G,OAAO,CACL,uBAAC,8BAAS,OAAK,KAAK,EAAE,SAAS,EAAE,IAAA,cAAI,EAAC,yBAAyB,EAAE,gBAAgB,CAAC,EAAE,KAAK,EAAE,YAAY,YACpG,IAAI,GACK,CACb,CAAC;AACJ,CAAC","sourcesContent":["import clsx from 'clsx';\nimport type { ReactNode } from 'react';\nimport { type ButtonProps as RACButtonProps, Button as RACButton } from 'react-aria-components';\nimport type { CommonProps, LabellableProps } from '../types.js';\n\ninterface TableHeaderButtonProps extends CommonProps, Omit<LabellableProps, 'label'>, Pick<RACButtonProps, 'onPress'> {\n /** The icon displayed within the button. */\n icon: ReactNode;\n}\n\n/**\n * @internal\n */\nexport function TableHeaderButton({ UNSAFE_className, UNSAFE_style, icon, ...props }: TableHeaderButtonProps) {\n return (\n <RACButton {...props} className={clsx('cim-table-header-button', UNSAFE_className)} style={UNSAFE_style}>\n {icon}\n </RACButton>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-header-cell.d.ts","sourceRoot":"","sources":["../../../../src/components/table/table-header-cell.tsx"],"names":[],"mappings":"AAGA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"table-header-cell.d.ts","sourceRoot":"","sources":["../../../../src/components/table/table-header-cell.tsx"],"names":[],"mappings":"AAGA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIlE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,KAAK,sBAAsB,EAAyB,MAAM,iCAAiC,CAAC;AAMrG,mDAAmD;AACnD,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,YAAY,CAAC;AAE9D,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACvD,uCAAuC;IACvC,QAAQ,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B;;;OAGG;IACH,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD;;OAEG;IACH,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,gDAAgD;IAChD,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAgFD;;;;GAIG;AACH,QAAA,MAAM,gBAAgB,2HAAiD,CAAC;AAExE,OAAO,EAAE,gBAAgB,IAAI,eAAe,EAAE,CAAC"}
|
|
@@ -5,16 +5,17 @@ exports.TableHeaderCell = void 0;
|
|
|
5
5
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
6
|
const utils_1 = require("@react-aria/utils");
|
|
7
7
|
const react_1 = require("react");
|
|
8
|
-
const react_aria_components_1 = require("react-aria-components");
|
|
9
8
|
const forward_ref_js_1 = require("../../forward-ref.js");
|
|
10
9
|
const index_js_1 = require("../../icons/index.js");
|
|
11
10
|
const use_server_layout_effect_js_1 = require("../../utils/use-server-layout-effect.js");
|
|
12
11
|
const column_collection_js_1 = require("./contexts/column-collection.js");
|
|
13
12
|
const row_state_js_1 = require("./contexts/row-state.js");
|
|
13
|
+
const table_state_js_1 = require("./contexts/table-state.js");
|
|
14
14
|
const use_table_cell_js_1 = require("./hooks/use-table-cell.js");
|
|
15
|
+
const table_header_button_js_1 = require("./table-header-button.js");
|
|
15
16
|
const SORT_ORDER_ICONS = {
|
|
16
|
-
ascending: (0, jsx_runtime_1.jsx)(index_js_1.IconSortAscending, {
|
|
17
|
-
descending: (0, jsx_runtime_1.jsx)(index_js_1.IconSortDescending, {
|
|
17
|
+
ascending: (0, jsx_runtime_1.jsx)(index_js_1.IconSortAscending, {}),
|
|
18
|
+
descending: (0, jsx_runtime_1.jsx)(index_js_1.IconSortDescending, {}),
|
|
18
19
|
};
|
|
19
20
|
function TableHeaderCell({ children, UNSAFE_className, UNSAFE_style, columnKey, columnNumber, columnWidth, columnContentAlignment = 'start', sortOrder, onSortOrderToggle, iconStart, iconEnd, ...props }, ref) {
|
|
20
21
|
const cellRef = (0, utils_1.useObjectRef)(ref);
|
|
@@ -22,6 +23,8 @@ function TableHeaderCell({ children, UNSAFE_className, UNSAFE_style, columnKey,
|
|
|
22
23
|
const { cellProps } = (0, use_table_cell_js_1.useTableCell)(cellRef, rowKey, columnKey);
|
|
23
24
|
const registerColumn = (0, column_collection_js_1.useColumnRegistration)();
|
|
24
25
|
const unregisterRef = (0, react_1.useRef)(null);
|
|
26
|
+
const { sortLabelId } = (0, table_state_js_1.useTableState)();
|
|
27
|
+
const contentId = (0, utils_1.useId)();
|
|
25
28
|
const isSortable = typeof onSortOrderToggle === 'function';
|
|
26
29
|
// Columns need to be registered during SSR to prevent layout shifting on hydration
|
|
27
30
|
(0, use_server_layout_effect_js_1.useServerLayoutEffect)(() => {
|
|
@@ -35,8 +38,7 @@ function TableHeaderCell({ children, UNSAFE_className, UNSAFE_style, columnKey,
|
|
|
35
38
|
unregisterRef.current = null;
|
|
36
39
|
};
|
|
37
40
|
}, [registerColumn, columnKey, columnNumber, columnWidth, columnContentAlignment]);
|
|
38
|
-
|
|
39
|
-
return ((0, jsx_runtime_1.jsx)("th", { ...(0, utils_1.mergeProps)(props, cellProps), ref: cellRef, className: UNSAFE_className, style: columnWidth ? { ...UNSAFE_style, width: columnWidth } : UNSAFE_style, scope: "col", "aria-colindex": columnNumber, "aria-sort": sortOrder, "data-alignment": columnContentAlignment, children: isSortable ? ((0, jsx_runtime_1.jsx)(react_aria_components_1.Button, { className: "cim-table-sort-button cim-table-header-cell-container", onPress: () => onSortOrderToggle(), children: content })) : ((0, jsx_runtime_1.jsx)("div", { className: "cim-table-header-cell-container", children: content })) }));
|
|
41
|
+
return ((0, jsx_runtime_1.jsx)("th", { ...(0, utils_1.mergeProps)(props, cellProps), ref: cellRef, className: UNSAFE_className, style: columnWidth ? { ...UNSAFE_style, width: columnWidth } : UNSAFE_style, scope: "col", "aria-colindex": columnNumber, "aria-sort": sortOrder, "data-alignment": columnContentAlignment, children: (0, jsx_runtime_1.jsxs)("div", { className: "cim-table-header-cell-container", children: [iconStart, (0, jsx_runtime_1.jsx)("span", { id: contentId, children: children }), iconEnd, isSortable ? ((0, jsx_runtime_1.jsx)(table_header_button_js_1.TableHeaderButton, { UNSAFE_className: "cim-table-header-sort-button", "aria-labelledby": `${sortLabelId} ${contentId}`, icon: sortOrder ? SORT_ORDER_ICONS[sortOrder] : (0, jsx_runtime_1.jsx)(index_js_1.IconSortUnsorted, {}), onPress: () => onSortOrderToggle(), "data-highlighted": !!sortOrder || undefined })) : sortOrder ? (SORT_ORDER_ICONS[sortOrder]) : undefined] }) }));
|
|
40
42
|
}
|
|
41
43
|
/**
|
|
42
44
|
* Renders a header cell within a table header row.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-header-cell.js","sourceRoot":"","sources":["../../../../src/components/table/table-header-cell.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAEb,
|
|
1
|
+
{"version":3,"file":"table-header-cell.js","sourceRoot":"","sources":["../../../../src/components/table/table-header-cell.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAEb,6CAAoE;AACpE,iCAAkE;AAClE,yDAAkD;AAClD,mDAA+F;AAC/F,yFAAgF;AAEhF,0EAAqG;AACrG,0DAA2D;AAC3D,8DAA0D;AAC1D,iEAAyD;AACzD,qEAA6D;AAgD7D,MAAM,gBAAgB,GAA4C;IAChE,SAAS,EAAE,uBAAC,4BAAiB,KAAG;IAChC,UAAU,EAAE,uBAAC,6BAAkB,KAAG;CACnC,CAAC;AAEF,SAAS,eAAe,CACtB,EACE,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,WAAW,EACX,sBAAsB,GAAG,OAAO,EAChC,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,OAAO,EACP,GAAG,KAAK,EACa,EACvB,GAAuC;IAEvC,MAAM,OAAO,GAAG,IAAA,oBAAY,EAAC,GAAG,CAAC,CAAC;IAClC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAgB,GAAE,CAAC;IACtC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,gCAAY,EAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/D,MAAM,cAAc,GAAG,IAAA,4CAAqB,GAAE,CAAC;IAC/C,MAAM,aAAa,GAAG,IAAA,cAAM,EAAsB,IAAI,CAAC,CAAC;IAExD,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,8BAAa,GAAE,CAAC;IACxC,MAAM,SAAS,GAAG,IAAA,aAAK,GAAE,CAAC;IAE1B,MAAM,UAAU,GAAG,OAAO,iBAAiB,KAAK,UAAU,CAAC;IAE3D,mFAAmF;IACnF,IAAA,mDAAqB,EAAC,GAAG,EAAE;QACzB,aAAa,CAAC,OAAO,GAAG,cAAc,CAAC,SAAS,EAAE;YAChD,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,WAAW;YAClB,gBAAgB,EAAE,sBAAsB;SACzC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1B,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;QAC/B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAEnF,OAAO,CACL,kCACM,IAAA,kBAAU,EAAC,KAAK,EAAE,SAAS,CAAC,EAChC,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,gBAAgB,EAC3B,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,YAAY,EAC3E,KAAK,EAAC,KAAK,mBACI,YAAY,eAChB,SAAS,oBACJ,sBAAsB,YAEtC,iCAAK,SAAS,EAAC,iCAAiC,aAC7C,SAAS,EACV,iCAAM,EAAE,EAAE,SAAS,YAAG,QAAQ,GAAQ,EACrC,OAAO,EACP,UAAU,CAAC,CAAC,CAAC,CACZ,uBAAC,0CAAiB,IAChB,gBAAgB,EAAC,8BAA8B,qBAC9B,GAAG,WAAW,IAAI,SAAS,EAAE,EAC9C,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,uBAAC,2BAAgB,KAAG,EACpE,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE,sBAChB,CAAC,CAAC,SAAS,IAAI,SAAS,GAC1C,CACH,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CACd,gBAAgB,CAAC,SAAS,CAAC,CAC5B,CAAC,CAAC,CAAC,SAAS,IACT,GACH,CACN,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,IAAA,2BAAU,EAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;AAE3C,2CAAe","sourcesContent":["'use client';\n\nimport { mergeProps, useId, useObjectRef } from '@react-aria/utils';\nimport { useRef, type ForwardedRef, type ReactNode } from 'react';\nimport { forwardRef } from '../../forward-ref.js';\nimport { IconSortAscending, IconSortDescending, IconSortUnsorted } from '../../icons/index.js';\nimport { useServerLayoutEffect } from '../../utils/use-server-layout-effect.js';\nimport type { CommonProps } from '../types.js';\nimport { type ColumnContentAlignment, useColumnRegistration } from './contexts/column-collection.js';\nimport { useTableRowState } from './contexts/row-state.js';\nimport { useTableState } from './contexts/table-state.js';\nimport { useTableCell } from './hooks/use-table-cell.js';\nimport { TableHeaderButton } from './table-header-button.js';\n\n/** Represents the sort order of a table column. */\nexport type TableColumnSortOrder = 'ascending' | 'descending';\n\nexport interface TableHeaderCellProps extends CommonProps {\n /** The contents of the header cell. */\n children: ReactNode;\n /**\n * A unique identifier for the column that this cell belongs to.\n * Cells that belong to the same column must have the same `columnKey`.\n */\n columnKey: string;\n /**\n * The position of the column that this cell belongs to within the full dataset.\n *\n * Provide this value if your table presents a subset of columns, such as when the user toggles column visibility.\n *\n * This number must be:\n * - greater than or equal to `1`\n * - greater than the `columnNumber` of any previous cells in the current row\n * - less than or equal to the `totalColumnCount` of the parent `Table`\n *\n * Use together with `totalColumnCount` on the `Table` component.\n */\n columnNumber?: number;\n /** The width of the column. Can be any valid value of the `width` CSS property. */\n columnWidth?: string | number;\n /**\n * Horizontal alignment of cell content within the column.\n * @default 'start'\n */\n columnContentAlignment?: ColumnContentAlignment;\n /**\n * The current sort order of the column.\n */\n sortOrder?: TableColumnSortOrder;\n /**\n * A function called when the column's sort order should change.\n * If not provided, the column will not be sortable.\n */\n onSortOrderToggle?: () => void;\n /** An icon displayed before the header text. */\n iconStart?: ReactNode;\n /** An icon displayed after the header text. */\n iconEnd?: ReactNode;\n}\n\nconst SORT_ORDER_ICONS: Record<TableColumnSortOrder, ReactNode> = {\n ascending: <IconSortAscending />,\n descending: <IconSortDescending />,\n};\n\nfunction TableHeaderCell(\n {\n children,\n UNSAFE_className,\n UNSAFE_style,\n columnKey,\n columnNumber,\n columnWidth,\n columnContentAlignment = 'start',\n sortOrder,\n onSortOrderToggle,\n iconStart,\n iconEnd,\n ...props\n }: TableHeaderCellProps,\n ref: ForwardedRef<HTMLTableCellElement>,\n) {\n const cellRef = useObjectRef(ref);\n const { rowKey } = useTableRowState();\n const { cellProps } = useTableCell(cellRef, rowKey, columnKey);\n const registerColumn = useColumnRegistration();\n const unregisterRef = useRef<(() => void) | null>(null);\n\n const { sortLabelId } = useTableState();\n const contentId = useId();\n\n const isSortable = typeof onSortOrderToggle === 'function';\n\n // Columns need to be registered during SSR to prevent layout shifting on hydration\n useServerLayoutEffect(() => {\n unregisterRef.current = registerColumn(columnKey, {\n number: columnNumber,\n width: columnWidth,\n contentAlignment: columnContentAlignment,\n });\n\n return () => {\n unregisterRef.current?.();\n unregisterRef.current = null;\n };\n }, [registerColumn, columnKey, columnNumber, columnWidth, columnContentAlignment]);\n\n return (\n <th\n {...mergeProps(props, cellProps)}\n ref={cellRef}\n className={UNSAFE_className}\n style={columnWidth ? { ...UNSAFE_style, width: columnWidth } : UNSAFE_style}\n scope=\"col\"\n aria-colindex={columnNumber}\n aria-sort={sortOrder}\n data-alignment={columnContentAlignment}\n >\n <div className=\"cim-table-header-cell-container\">\n {iconStart}\n <span id={contentId}>{children}</span>\n {iconEnd}\n {isSortable ? (\n <TableHeaderButton\n UNSAFE_className=\"cim-table-header-sort-button\"\n aria-labelledby={`${sortLabelId} ${contentId}`}\n icon={sortOrder ? SORT_ORDER_ICONS[sortOrder] : <IconSortUnsorted />}\n onPress={() => onSortOrderToggle()}\n data-highlighted={!!sortOrder || undefined}\n />\n ) : sortOrder ? (\n SORT_ORDER_ICONS[sortOrder]\n ) : undefined}\n </div>\n </th>\n );\n}\n\n/**\n * Renders a header cell within a table header row.\n *\n * See [table usage guidelines](https://ui.cimpress.io/components/table/) and [table building guide](https://ui.cimpress.io/dev-guides/tables/).\n */\nconst _TableHeaderCell = forwardRef(TableHeaderCell, 'TableHeaderCell');\n\nexport { _TableHeaderCell as TableHeaderCell };\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
2
|
import type { AriaLabelingProps, CommonProps } from '../types.js';
|
|
3
3
|
import { type RowSelectionMode } from './contexts/table-state.js';
|
|
4
4
|
export interface TableProps extends CommonProps, AriaLabelingProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../src/components/table/table.tsx"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../src/components/table/table.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,OAAO,CAAC;AAGrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGlE,OAAO,EAAE,KAAK,gBAAgB,EAAqC,MAAM,2BAA2B,CAAC;AAGrG,MAAM,WAAW,UAAW,SAAQ,WAAW,EAAE,iBAAiB;IAChE,iCAAiC;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACtD;AAqED;;;;GAIG;AACH,QAAA,MAAM,MAAM,6GAA6B,CAAC;AAE1C,OAAO,EAAE,MAAM,IAAI,KAAK,EAAE,CAAC"}
|
|
@@ -4,15 +4,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.Table = void 0;
|
|
5
5
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
6
|
const utils_1 = require("@react-aria/utils");
|
|
7
|
-
const react_1 = require("react");
|
|
8
7
|
const forward_ref_js_1 = require("../../forward-ref.js");
|
|
8
|
+
const use_production_warning_js_1 = require("../../utils/use-production-warning.js");
|
|
9
9
|
const column_collection_js_1 = require("./contexts/column-collection.js");
|
|
10
10
|
const focus_js_1 = require("./contexts/focus.js");
|
|
11
11
|
const table_state_js_1 = require("./contexts/table-state.js");
|
|
12
12
|
const use_table_js_1 = require("./hooks/use-table.js");
|
|
13
13
|
function Table({ rowSelectionMode = 'none', areAllRowsSelected, areSomeRowsSelected, onAllRowsSelectionToggle, ...props }, ref) {
|
|
14
14
|
const { 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy } = props;
|
|
15
|
-
(0,
|
|
15
|
+
(0, use_production_warning_js_1.useProductionWarning)(() => {
|
|
16
16
|
if (!ariaLabel && !ariaLabelledBy) {
|
|
17
17
|
console.warn('Table requires one of aria-label / aria-labelledby for accessibility');
|
|
18
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../../../src/components/table/table.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAEb,6CAA6D;
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../../../src/components/table/table.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAEb,6CAA6D;AAE7D,yDAAkD;AAClD,qFAA6E;AAE7E,0EAA2E;AAC3E,kDAAyD;AACzD,8DAAqG;AACrG,uDAAgD;AA+ChD,SAAS,KAAK,CACZ,EACE,gBAAgB,GAAG,MAAM,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,GAAG,KAAK,EACG,EACb,GAAmC;IAEnC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAE7E,IAAA,gDAAoB,EAAC,GAAG,EAAE;QACxB,IAAI,CAAC,SAAS,IAAI,CAAC,cAAc,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;QACvF,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;IAEhC,OAAO,CACL,uBAAC,6BAAkB,cACjB,uBAAC,mCAAkB,IACjB,gBAAgB,EAAE,gBAAgB,EAClC,kBAAkB,EAAE,kBAAkB,EACtC,mBAAmB,EAAE,mBAAmB,EACxC,wBAAwB,EAAE,wBAAwB,YAElD,wBAAC,+CAAwB,eACvB,iCAAM,QAAQ,EAAE,CAAC,CAAC,sDAAqC,EACvD,uBAAC,UAAU,IAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,GAAI,EAC/C,iCAAM,QAAQ,EAAE,CAAC,CAAC,sDAAqC,IAC9B,GACR,GACF,CACtB,CAAC;AACJ,CAAC;AAUD,SAAS,UAAU,CAAC,EAClB,KAAK,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAAG,KAAK,EAAE,EAC9F,YAAY,GACI;IAChB,MAAM,QAAQ,GAAG,IAAA,oBAAY,EAAC,YAAY,CAAC,CAAC;IAC5C,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,uBAAQ,EAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAA,8BAAa,GAAE,CAAC;IAE7C,OAAO,CACL,qCACM,IAAA,kBAAU,EAAC,KAAK,EAAE,UAAU,CAAC,EACjC,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,gBAAgB,EAC3B,KAAK,EAAE,YAAY,mBACJ,aAAa,mBACb,gBAAgB,0BACT,gBAAgB,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,YAEvE,QAAQ,GACH,CACT,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,MAAM,GAAG,IAAA,2BAAU,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAEvB,uBAAK","sourcesContent":["'use client';\n\nimport { mergeProps, useObjectRef } from '@react-aria/utils';\nimport type { ForwardedRef, ReactNode } from 'react';\nimport { forwardRef } from '../../forward-ref.js';\nimport { useProductionWarning } from '../../utils/use-production-warning.js';\nimport type { AriaLabelingProps, CommonProps } from '../types.js';\nimport { ColumnCollectionProvider } from './contexts/column-collection.js';\nimport { TableFocusProvider } from './contexts/focus.js';\nimport { type RowSelectionMode, TableStateProvider, useTableState } from './contexts/table-state.js';\nimport { useTable } from './hooks/use-table.js';\n\nexport interface TableProps extends CommonProps, AriaLabelingProps {\n /** The contents of the table. */\n children: ReactNode;\n /**\n * The number of rows in the full dataset, including headers.\n *\n * Provide this value if your table presents a subset of rows, such as when using pagination.\n * Use `-1` if the number of rows is not known.\n *\n * You must provide `rowNumber` on each table row if `totalRowCount` is defined.\n */\n totalRowCount?: number;\n /**\n * The number of columns in the full dataset.\n *\n * Provide this value if your table presents a subset of columns, such as when the user toggles column visibility.\n * Use `-1` if the number of columns is not known.\n *\n * You must provide `columnNumber` on each table header cell if `totalColumnCount` is defined.\n */\n totalColumnCount?: number;\n /**\n * The type of row selection that is allowed within the table.\n * @default 'none'\n */\n rowSelectionMode?: RowSelectionMode;\n /**\n * Whether all of the table's rows are selected.\n * The meaning of \"all rows\" is dictated by the consumer.\n */\n areAllRowsSelected?: boolean;\n /**\n * Whether some (but not all) of the table's rows are selected.\n * The meaning of \"some rows\" is dictated by the consumer.\n */\n areSomeRowsSelected?: boolean;\n /**\n * A function called when the selection state of all rows should change.\n *\n * If called without an argument, you are free to pick the new selection state based on your own logic.\n * If called with an argument, you must set the selection state to the provided value.\n */\n onAllRowsSelectionToggle?: (value?: boolean) => void;\n}\n\nfunction Table(\n {\n rowSelectionMode = 'none',\n areAllRowsSelected,\n areSomeRowsSelected,\n onAllRowsSelectionToggle,\n ...props\n }: TableProps,\n ref: ForwardedRef<HTMLTableElement>,\n) {\n const { 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy } = props;\n\n useProductionWarning(() => {\n if (!ariaLabel && !ariaLabelledBy) {\n console.warn('Table requires one of aria-label / aria-labelledby for accessibility');\n }\n }, [ariaLabel, ariaLabelledBy]);\n\n return (\n <TableFocusProvider>\n <TableStateProvider\n rowSelectionMode={rowSelectionMode}\n areAllRowsSelected={areAllRowsSelected}\n areSomeRowsSelected={areSomeRowsSelected}\n onAllRowsSelectionToggle={onAllRowsSelectionToggle}\n >\n <ColumnCollectionProvider>\n <span tabIndex={-1} data-cim-table-guard aria-hidden />\n <TableInner props={props} forwardedRef={ref} />\n <span tabIndex={-1} data-cim-table-guard aria-hidden />\n </ColumnCollectionProvider>\n </TableStateProvider>\n </TableFocusProvider>\n );\n}\n\ninterface TableInnerProps {\n props: Omit<\n TableProps,\n 'rowSelectionMode' | 'areAllRowsSelected' | 'areSomeRowsSelected' | 'onAllRowsSelectionToggle'\n >;\n forwardedRef: ForwardedRef<HTMLTableElement>;\n}\n\nfunction TableInner({\n props: { children, UNSAFE_className, UNSAFE_style, totalRowCount, totalColumnCount, ...props },\n forwardedRef,\n}: TableInnerProps) {\n const tableRef = useObjectRef(forwardedRef);\n const { tableProps } = useTable(tableRef);\n const { rowSelectionMode } = useTableState();\n\n return (\n <table\n {...mergeProps(props, tableProps)}\n ref={tableRef}\n className={UNSAFE_className}\n style={UNSAFE_style}\n aria-rowcount={totalRowCount}\n aria-colcount={totalColumnCount}\n aria-multiselectable={rowSelectionMode === 'multiple' ? true : undefined}\n >\n {children}\n </table>\n );\n}\n\n/**\n * Displays data in an organized, tabular way.\n *\n * See [table usage guidelines](https://ui.cimpress.io/components/table/) and [table building guide](https://ui.cimpress.io/dev-guides/tables/).\n */\nconst _Table = forwardRef(Table, 'Table');\n\nexport { _Table as Table };\n"]}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import { type TabsProps as RACTabsProps, type TabProps as RACTabProps } from 'react-aria-components';
|
|
3
|
+
import type { AriaLabelingProps, CollectionItem, CollectionProps, CommonProps, Key, StringLikeChildren } from '../types.js';
|
|
4
|
+
export interface TabsProps extends CommonProps, AriaLabelingProps, Pick<RACTabsProps, 'selectedKey' | 'defaultSelectedKey' | 'disabledKeys' | 'onSelectionChange'> {
|
|
5
|
+
/** The children of the `<Tabs>` element. Should include `<TabList>` and `<TabPanels>` elements. */
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Organizes content into multiple sections that users can switch between.
|
|
10
|
+
*
|
|
11
|
+
* See [tabs usage guidelines](https://ui.cimpress.io/components/tabs/).
|
|
12
|
+
*/
|
|
13
|
+
declare const _Tabs: (props: TabsProps & import("react").RefAttributes<HTMLDivElement> & import("../../with-style-props.js").StyleProps) => import("react").JSX.Element | null;
|
|
14
|
+
export { _Tabs as Tabs };
|
|
15
|
+
export interface TabListProps<T extends CollectionItem> extends CollectionProps<T> {
|
|
16
|
+
}
|
|
17
|
+
/** Renders a collection of `Tab` components within `Tabs`. */
|
|
18
|
+
export declare function TabList<T extends CollectionItem>({ children, ...props }: TabListProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export declare namespace TabList {
|
|
20
|
+
var displayName: string;
|
|
21
|
+
}
|
|
22
|
+
export interface TabProps extends Pick<RACTabProps, 'id' | 'isDisabled' | 'onHoverStart' | 'onHoverEnd'> {
|
|
23
|
+
/** The text to display as the tab title. */
|
|
24
|
+
children: StringLikeChildren;
|
|
25
|
+
/** An icon displayed before the tab title. */
|
|
26
|
+
iconStart?: ReactNode;
|
|
27
|
+
/** A badge displayed after the tab title. */
|
|
28
|
+
badge?: ReactNode;
|
|
29
|
+
}
|
|
30
|
+
/** Renders a single tab within `TabList`. */
|
|
31
|
+
export declare function Tab({ children, iconStart, badge, ...props }: TabProps): import("react/jsx-runtime").JSX.Element;
|
|
32
|
+
export declare namespace Tab {
|
|
33
|
+
var displayName: string;
|
|
34
|
+
}
|
|
35
|
+
export interface TabPanelsProps<T extends CollectionItem> extends CollectionProps<T> {
|
|
36
|
+
}
|
|
37
|
+
/** Renders a collection of `TabPanel` components within `Tabs`. */
|
|
38
|
+
export declare function TabPanels<T extends CollectionItem>({ ...props }: TabPanelsProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
39
|
+
export declare namespace TabPanels {
|
|
40
|
+
var displayName: string;
|
|
41
|
+
}
|
|
42
|
+
export interface TabPanelProps {
|
|
43
|
+
/** The content to display in the tab panel. */
|
|
44
|
+
children: ReactNode;
|
|
45
|
+
/** The unique id of the associated tab. */
|
|
46
|
+
id?: Key;
|
|
47
|
+
}
|
|
48
|
+
/** Renders a single tab panel within `TabPanels`. */
|
|
49
|
+
export declare function TabPanel({ children, id, ...props }: TabPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
50
|
+
export declare namespace TabPanel {
|
|
51
|
+
var displayName: string;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=tabs.d.ts.map
|