@cimpress-ui/react 0.2.1 → 0.3.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 +1 -1
- package/dist/commonjs/components/badge/badge.d.ts +31 -0
- package/dist/commonjs/components/badge/badge.d.ts.map +1 -0
- package/dist/commonjs/components/badge/badge.js +26 -0
- package/dist/commonjs/components/badge/badge.js.map +1 -0
- package/dist/commonjs/components/breadcrumbs/breadcrumbs.js +1 -1
- package/dist/commonjs/components/breadcrumbs/breadcrumbs.js.map +1 -1
- package/dist/commonjs/components/button/button.js +1 -1
- package/dist/commonjs/components/button/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.d.ts +3 -3
- package/dist/commonjs/components/button/types.d.ts.map +1 -1
- package/dist/commonjs/components/button/types.js.map +1 -1
- package/dist/commonjs/components/card/card.d.ts +5 -0
- package/dist/commonjs/components/card/card.d.ts.map +1 -1
- package/dist/commonjs/components/card/card.js +5 -0
- package/dist/commonjs/components/card/card.js.map +1 -1
- package/dist/commonjs/components/checkbox/checkbox.d.ts +2 -2
- package/dist/commonjs/components/checkbox/checkbox.d.ts.map +1 -1
- package/dist/commonjs/components/checkbox/checkbox.js +1 -1
- package/dist/commonjs/components/checkbox/checkbox.js.map +1 -1
- package/dist/commonjs/components/combo-box/combo-box.js +2 -2
- package/dist/commonjs/components/combo-box/combo-box.js.map +1 -1
- package/dist/commonjs/components/disclosure/disclosure-group.d.ts +7 -2
- package/dist/commonjs/components/disclosure/disclosure-group.d.ts.map +1 -1
- package/dist/commonjs/components/disclosure/disclosure-group.js +5 -0
- package/dist/commonjs/components/disclosure/disclosure-group.js.map +1 -1
- package/dist/commonjs/components/disclosure/disclosure.d.ts +12 -7
- package/dist/commonjs/components/disclosure/disclosure.d.ts.map +1 -1
- package/dist/commonjs/components/disclosure/disclosure.js +7 -2
- package/dist/commonjs/components/disclosure/disclosure.js.map +1 -1
- package/dist/commonjs/components/form/form.d.ts +2 -2
- package/dist/commonjs/components/form/form.d.ts.map +1 -1
- package/dist/commonjs/components/form/form.js.map +1 -1
- package/dist/commonjs/components/internal/focusable-container/focusable-container.d.ts +2 -0
- package/dist/commonjs/components/internal/focusable-container/focusable-container.d.ts.map +1 -0
- package/dist/commonjs/components/internal/focusable-container/focusable-container.js +49 -0
- package/dist/commonjs/components/internal/focusable-container/focusable-container.js.map +1 -0
- package/dist/commonjs/components/internal/form-field/form-field.js +2 -2
- package/dist/commonjs/components/internal/form-field/form-field.js.map +1 -1
- package/dist/commonjs/components/internal/spinner/spinner.js.map +1 -1
- package/dist/commonjs/components/menu/menu.d.ts +18 -12
- package/dist/commonjs/components/menu/menu.d.ts.map +1 -1
- package/dist/commonjs/components/menu/menu.js +13 -26
- package/dist/commonjs/components/menu/menu.js.map +1 -1
- package/dist/commonjs/components/modal/modal.d.ts +54 -9
- package/dist/commonjs/components/modal/modal.d.ts.map +1 -1
- package/dist/commonjs/components/modal/modal.js +23 -8
- package/dist/commonjs/components/modal/modal.js.map +1 -1
- package/dist/commonjs/components/nav-tabs/nav-tabs.d.ts +2 -2
- package/dist/commonjs/components/nav-tabs/nav-tabs.d.ts.map +1 -1
- package/dist/commonjs/components/nav-tabs/nav-tabs.js.map +1 -1
- package/dist/commonjs/components/number-field/number-field.d.ts +12 -4
- package/dist/commonjs/components/number-field/number-field.d.ts.map +1 -1
- package/dist/commonjs/components/number-field/number-field.js +12 -6
- package/dist/commonjs/components/number-field/number-field.js.map +1 -1
- package/dist/commonjs/components/pagination/action-pagination.d.ts +2 -0
- package/dist/commonjs/components/pagination/action-pagination.d.ts.map +1 -0
- package/dist/commonjs/components/pagination/action-pagination.js +27 -0
- package/dist/commonjs/components/pagination/action-pagination.js.map +1 -0
- package/dist/commonjs/components/pagination/base-pagination.d.ts +10 -0
- package/dist/commonjs/components/pagination/base-pagination.d.ts.map +1 -0
- package/dist/commonjs/components/pagination/base-pagination.js +73 -0
- package/dist/commonjs/components/pagination/base-pagination.js.map +1 -0
- package/dist/commonjs/components/pagination/link-pagination.d.ts +2 -0
- package/dist/commonjs/components/pagination/link-pagination.d.ts.map +1 -0
- package/dist/commonjs/components/pagination/link-pagination.js +60 -0
- package/dist/commonjs/components/pagination/link-pagination.js.map +1 -0
- package/dist/commonjs/components/pagination/pagination.d.ts +14 -8
- package/dist/commonjs/components/pagination/pagination.d.ts.map +1 -1
- package/dist/commonjs/components/pagination/pagination.js +36 -62
- package/dist/commonjs/components/pagination/pagination.js.map +1 -1
- package/dist/commonjs/components/popover/popover.d.ts +54 -0
- package/dist/commonjs/components/popover/popover.d.ts.map +1 -0
- package/dist/commonjs/components/popover/popover.js +40 -0
- package/dist/commonjs/components/popover/popover.js.map +1 -0
- package/dist/commonjs/components/radio/radio.d.ts +2 -2
- package/dist/commonjs/components/radio/radio.d.ts.map +1 -1
- package/dist/commonjs/components/radio/radio.js.map +1 -1
- package/dist/commonjs/components/select/select.js +2 -2
- package/dist/commonjs/components/select/select.js.map +1 -1
- package/dist/commonjs/components/table/contexts/column-collection.d.ts +21 -0
- package/dist/commonjs/components/table/contexts/column-collection.d.ts.map +1 -0
- package/dist/commonjs/components/table/contexts/column-collection.js +73 -0
- package/dist/commonjs/components/table/contexts/column-collection.js.map +1 -0
- package/dist/commonjs/components/table/contexts/row-state.d.ts +5 -1
- package/dist/commonjs/components/table/contexts/row-state.d.ts.map +1 -1
- package/dist/commonjs/components/table/contexts/row-state.js +6 -2
- package/dist/commonjs/components/table/contexts/row-state.js.map +1 -1
- package/dist/commonjs/components/table/contexts/table-state.d.ts +21 -0
- package/dist/commonjs/components/table/contexts/table-state.d.ts.map +1 -0
- package/dist/commonjs/components/table/contexts/table-state.js +47 -0
- package/dist/commonjs/components/table/contexts/table-state.js.map +1 -0
- package/dist/commonjs/components/table/hooks/use-selectable-row.d.ts +6 -0
- package/dist/commonjs/components/table/hooks/use-selectable-row.d.ts.map +1 -0
- package/dist/commonjs/components/table/hooks/use-selectable-row.js +40 -0
- package/dist/commonjs/components/table/hooks/use-selectable-row.js.map +1 -0
- package/dist/commonjs/components/table/hooks/use-table-cell.d.ts +1 -1
- package/dist/commonjs/components/table/hooks/use-table-cell.d.ts.map +1 -1
- package/dist/commonjs/components/table/hooks/use-table-cell.js +34 -15
- package/dist/commonjs/components/table/hooks/use-table-cell.js.map +1 -1
- package/dist/commonjs/components/table/hooks/use-table.d.ts +1 -1
- package/dist/commonjs/components/table/hooks/use-table.d.ts.map +1 -1
- package/dist/commonjs/components/table/hooks/use-table.js +22 -8
- package/dist/commonjs/components/table/hooks/use-table.js.map +1 -1
- package/dist/commonjs/components/table/table-all-rows-selector.d.ts +11 -0
- package/dist/commonjs/components/table/table-all-rows-selector.d.ts.map +1 -0
- package/dist/commonjs/components/table/table-all-rows-selector.js +23 -0
- package/dist/commonjs/components/table/table-all-rows-selector.js.map +1 -0
- package/dist/commonjs/components/table/table-body-cell.d.ts +9 -16
- package/dist/commonjs/components/table/table-body-cell.d.ts.map +1 -1
- package/dist/commonjs/components/table/table-body-cell.js +13 -5
- package/dist/commonjs/components/table/table-body-cell.js.map +1 -1
- package/dist/commonjs/components/table/table-body-row.d.ts +40 -0
- package/dist/commonjs/components/table/table-body-row.d.ts.map +1 -0
- package/dist/commonjs/components/table/table-body-row.js +28 -0
- package/dist/commonjs/components/table/table-body-row.js.map +1 -0
- package/dist/commonjs/components/table/table-body.d.ts +9 -3
- package/dist/commonjs/components/table/table-body.d.ts.map +1 -1
- package/dist/commonjs/components/table/table-body.js +10 -4
- package/dist/commonjs/components/table/table-body.js.map +1 -1
- package/dist/commonjs/components/table/table-container.d.ts +11 -5
- package/dist/commonjs/components/table/table-container.d.ts.map +1 -1
- package/dist/commonjs/components/table/table-container.js +12 -29
- package/dist/commonjs/components/table/table-container.js.map +1 -1
- package/dist/commonjs/components/table/table-empty-state.d.ts +18 -0
- package/dist/commonjs/components/table/table-empty-state.d.ts.map +1 -0
- package/dist/commonjs/components/table/table-empty-state.js +36 -0
- package/dist/commonjs/components/table/table-empty-state.js.map +1 -0
- package/dist/commonjs/components/table/table-header-cell.d.ts +33 -4
- package/dist/commonjs/components/table/table-header-cell.d.ts.map +1 -1
- package/dist/commonjs/components/table/table-header-cell.js +36 -5
- package/dist/commonjs/components/table/table-header-cell.js.map +1 -1
- package/dist/commonjs/components/table/{table-row.d.ts → table-header-row.d.ts} +10 -4
- package/dist/commonjs/components/table/table-header-row.d.ts.map +1 -0
- package/dist/commonjs/components/table/{table-row.js → table-header-row.js} +11 -5
- package/dist/commonjs/components/table/table-header-row.js.map +1 -0
- package/dist/commonjs/components/table/table-header.d.ts +9 -3
- package/dist/commonjs/components/table/table-header.d.ts.map +1 -1
- package/dist/commonjs/components/table/table-header.js +10 -4
- package/dist/commonjs/components/table/table-header.js.map +1 -1
- package/dist/commonjs/components/table/table-row-selector.d.ts +11 -0
- package/dist/commonjs/components/table/table-row-selector.d.ts.map +1 -0
- package/dist/commonjs/components/table/table-row-selector.js +25 -0
- package/dist/commonjs/components/table/table-row-selector.js.map +1 -0
- package/dist/commonjs/components/table/table.d.ts +34 -5
- package/dist/commonjs/components/table/table.d.ts.map +1 -1
- package/dist/commonjs/components/table/table.js +15 -7
- package/dist/commonjs/components/table/table.js.map +1 -1
- package/dist/commonjs/components/tag/tag-group.d.ts +7 -4
- package/dist/commonjs/components/tag/tag-group.d.ts.map +1 -1
- package/dist/commonjs/components/tag/tag-group.js +4 -4
- package/dist/commonjs/components/tag/tag-group.js.map +1 -1
- package/dist/commonjs/components/tag/tag.d.ts +10 -9
- package/dist/commonjs/components/tag/tag.d.ts.map +1 -1
- package/dist/commonjs/components/tag/tag.js +11 -6
- package/dist/commonjs/components/tag/tag.js.map +1 -1
- package/dist/commonjs/components/text-inputs/text-area.d.ts +5 -1
- package/dist/commonjs/components/text-inputs/text-area.d.ts.map +1 -1
- package/dist/commonjs/components/text-inputs/text-area.js +5 -2
- package/dist/commonjs/components/text-inputs/text-area.js.map +1 -1
- package/dist/commonjs/components/tooltip/tooltip.d.ts +10 -2
- package/dist/commonjs/components/tooltip/tooltip.d.ts.map +1 -1
- package/dist/commonjs/components/tooltip/tooltip.js +11 -3
- package/dist/commonjs/components/tooltip/tooltip.js.map +1 -1
- package/dist/commonjs/components/types.d.ts +3 -3
- package/dist/commonjs/components/types.d.ts.map +1 -1
- package/dist/commonjs/components/types.js.map +1 -1
- package/dist/commonjs/components/typography/types.d.ts +2 -2
- package/dist/commonjs/components/typography/types.d.ts.map +1 -1
- package/dist/commonjs/components/typography/types.js.map +1 -1
- package/dist/commonjs/icons/{minus-small.d.ts → action-redo.d.ts} +3 -3
- package/dist/commonjs/icons/action-redo.d.ts.map +1 -0
- package/dist/commonjs/icons/action-redo.js +24 -0
- package/dist/commonjs/icons/action-redo.js.map +1 -0
- package/dist/commonjs/icons/action-undo.d.ts +8 -0
- package/dist/commonjs/icons/action-undo.d.ts.map +1 -0
- package/dist/commonjs/icons/action-undo.js +24 -0
- package/dist/commonjs/icons/action-undo.js.map +1 -0
- package/dist/commonjs/icons/{checkmark.d.ts → add-bold.d.ts} +3 -3
- package/dist/commonjs/icons/add-bold.d.ts.map +1 -0
- package/dist/commonjs/icons/{alert-triangle.js → add-bold.js} +6 -6
- package/dist/commonjs/icons/add-bold.js.map +1 -0
- package/dist/commonjs/icons/add-circle-fill.js +1 -1
- package/dist/commonjs/icons/add-circle-fill.js.map +1 -1
- package/dist/commonjs/icons/add-circle.js +1 -1
- package/dist/commonjs/icons/add-circle.js.map +1 -1
- package/dist/commonjs/icons/add-square-fill.d.ts +8 -0
- package/dist/commonjs/icons/add-square-fill.d.ts.map +1 -0
- package/dist/commonjs/icons/add-square-fill.js +24 -0
- package/dist/commonjs/icons/add-square-fill.js.map +1 -0
- package/dist/commonjs/icons/add-square.d.ts +8 -0
- package/dist/commonjs/icons/add-square.d.ts.map +1 -0
- package/dist/commonjs/icons/add-square.js +24 -0
- package/dist/commonjs/icons/add-square.js.map +1 -0
- package/dist/commonjs/icons/add.d.ts.map +1 -1
- package/dist/commonjs/icons/add.js +1 -1
- package/dist/commonjs/icons/add.js.map +1 -1
- package/dist/commonjs/icons/{checkmark-small.d.ts → analytics-graph.d.ts} +3 -3
- package/dist/commonjs/icons/analytics-graph.d.ts.map +1 -0
- package/dist/commonjs/icons/analytics-graph.js +24 -0
- package/dist/commonjs/icons/analytics-graph.js.map +1 -0
- package/dist/commonjs/icons/analytics-pie-fill.d.ts +8 -0
- package/dist/commonjs/icons/analytics-pie-fill.d.ts.map +1 -0
- package/dist/commonjs/icons/{checkmark-circle.js → analytics-pie-fill.js} +6 -6
- package/dist/commonjs/icons/analytics-pie-fill.js.map +1 -0
- package/dist/commonjs/icons/analytics-pie.d.ts +8 -0
- package/dist/commonjs/icons/analytics-pie.d.ts.map +1 -0
- package/dist/commonjs/icons/analytics-pie.js +24 -0
- package/dist/commonjs/icons/analytics-pie.js.map +1 -0
- package/dist/commonjs/icons/app-window-layout.d.ts +8 -0
- package/dist/commonjs/icons/app-window-layout.d.ts.map +1 -0
- package/dist/commonjs/icons/app-window-layout.js +24 -0
- package/dist/commonjs/icons/app-window-layout.js.map +1 -0
- package/dist/commonjs/icons/app-window-next.d.ts +8 -0
- package/dist/commonjs/icons/app-window-next.d.ts.map +1 -0
- package/dist/commonjs/icons/app-window-next.js +24 -0
- package/dist/commonjs/icons/app-window-next.js.map +1 -0
- package/dist/commonjs/icons/app-window-search.d.ts +8 -0
- package/dist/commonjs/icons/app-window-search.d.ts.map +1 -0
- package/dist/commonjs/icons/app-window-search.js +24 -0
- package/dist/commonjs/icons/app-window-search.js.map +1 -0
- package/dist/commonjs/icons/arrow-down-bold.d.ts +8 -0
- package/dist/commonjs/icons/arrow-down-bold.d.ts.map +1 -0
- package/dist/commonjs/icons/arrow-down-bold.js +24 -0
- package/dist/commonjs/icons/arrow-down-bold.js.map +1 -0
- package/dist/commonjs/icons/arrow-down.d.ts +8 -0
- package/dist/commonjs/icons/arrow-down.d.ts.map +1 -0
- package/dist/commonjs/icons/{checkmark.js → arrow-down.js} +6 -6
- package/dist/commonjs/icons/arrow-down.js.map +1 -0
- package/dist/commonjs/icons/arrow-left-bold.d.ts +8 -0
- package/dist/commonjs/icons/arrow-left-bold.d.ts.map +1 -0
- package/dist/commonjs/icons/arrow-left-bold.js +24 -0
- package/dist/commonjs/icons/arrow-left-bold.js.map +1 -0
- package/dist/commonjs/icons/arrow-left.d.ts +8 -0
- package/dist/commonjs/icons/arrow-left.d.ts.map +1 -0
- package/dist/commonjs/icons/arrow-left.js +24 -0
- package/dist/commonjs/icons/arrow-left.js.map +1 -0
- package/dist/commonjs/icons/arrow-right-bold.d.ts +8 -0
- package/dist/commonjs/icons/arrow-right-bold.d.ts.map +1 -0
- package/dist/commonjs/icons/{checkmark-small.js → arrow-right-bold.js} +6 -6
- package/dist/commonjs/icons/arrow-right-bold.js.map +1 -0
- package/dist/commonjs/icons/arrow-right.d.ts +8 -0
- package/dist/commonjs/icons/arrow-right.d.ts.map +1 -0
- package/dist/commonjs/icons/arrow-right.js +24 -0
- package/dist/commonjs/icons/arrow-right.js.map +1 -0
- package/dist/commonjs/icons/arrow-up-bold.d.ts +8 -0
- package/dist/commonjs/icons/arrow-up-bold.d.ts.map +1 -0
- package/dist/commonjs/icons/arrow-up-bold.js +24 -0
- package/dist/commonjs/icons/arrow-up-bold.js.map +1 -0
- package/dist/{esm/icons/checkmark.d.ts → commonjs/icons/arrow-up.d.ts} +3 -3
- package/dist/commonjs/icons/arrow-up.d.ts.map +1 -0
- package/dist/commonjs/icons/arrow-up.js +24 -0
- package/dist/commonjs/icons/arrow-up.js.map +1 -0
- package/dist/commonjs/icons/attachment.d.ts +8 -0
- package/dist/commonjs/icons/attachment.d.ts.map +1 -0
- package/dist/commonjs/icons/attachment.js +24 -0
- package/dist/commonjs/icons/attachment.js.map +1 -0
- package/dist/commonjs/icons/barcode.d.ts +8 -0
- package/dist/commonjs/icons/barcode.d.ts.map +1 -0
- package/dist/commonjs/icons/barcode.js +24 -0
- package/dist/commonjs/icons/barcode.js.map +1 -0
- package/dist/commonjs/icons/bell-off.d.ts +8 -0
- package/dist/commonjs/icons/bell-off.d.ts.map +1 -0
- package/dist/commonjs/icons/bell-off.js +24 -0
- package/dist/commonjs/icons/bell-off.js.map +1 -0
- package/dist/commonjs/icons/{minus.d.ts → bell.d.ts} +3 -3
- package/dist/commonjs/icons/bell.d.ts.map +1 -0
- package/dist/commonjs/icons/bell.js +24 -0
- package/dist/commonjs/icons/bell.js.map +1 -0
- package/dist/commonjs/icons/book-open-fill.d.ts +8 -0
- package/dist/commonjs/icons/book-open-fill.d.ts.map +1 -0
- package/dist/commonjs/icons/book-open-fill.js +24 -0
- package/dist/commonjs/icons/book-open-fill.js.map +1 -0
- package/dist/commonjs/icons/book-open.d.ts +8 -0
- package/dist/commonjs/icons/book-open.d.ts.map +1 -0
- package/dist/commonjs/icons/book-open.js +24 -0
- package/dist/commonjs/icons/book-open.js.map +1 -0
- package/dist/commonjs/icons/brackets.d.ts +8 -0
- package/dist/commonjs/icons/brackets.d.ts.map +1 -0
- package/dist/commonjs/icons/brackets.js +24 -0
- package/dist/commonjs/icons/brackets.js.map +1 -0
- package/dist/commonjs/icons/calculator-alt.d.ts.map +1 -1
- package/dist/commonjs/icons/calculator-alt.js +1 -1
- package/dist/commonjs/icons/calculator-alt.js.map +1 -1
- package/dist/commonjs/icons/calculator.d.ts.map +1 -1
- package/dist/commonjs/icons/calculator.js +1 -1
- package/dist/commonjs/icons/calculator.js.map +1 -1
- package/dist/commonjs/icons/{alert-triangle.d.ts → calendar-empty.d.ts} +3 -3
- package/dist/commonjs/icons/calendar-empty.d.ts.map +1 -0
- package/dist/commonjs/icons/calendar-empty.js +24 -0
- package/dist/commonjs/icons/calendar-empty.js.map +1 -0
- package/dist/commonjs/icons/calendar-fill.d.ts +8 -0
- package/dist/commonjs/icons/calendar-fill.d.ts.map +1 -0
- package/dist/commonjs/icons/calendar-fill.js +24 -0
- package/dist/commonjs/icons/calendar-fill.js.map +1 -0
- package/dist/commonjs/icons/calendar.d.ts +8 -0
- package/dist/commonjs/icons/calendar.d.ts.map +1 -0
- package/dist/commonjs/icons/calendar.js +24 -0
- package/dist/commonjs/icons/calendar.js.map +1 -0
- package/dist/commonjs/icons/{checkmark-circle.d.ts → category-apparel.d.ts} +3 -3
- package/dist/commonjs/icons/category-apparel.d.ts.map +1 -0
- package/dist/commonjs/icons/category-apparel.js +24 -0
- package/dist/commonjs/icons/category-apparel.js.map +1 -0
- package/dist/commonjs/icons/category-bag.d.ts +8 -0
- package/dist/commonjs/icons/category-bag.d.ts.map +1 -0
- package/dist/commonjs/icons/category-bag.js +24 -0
- package/dist/commonjs/icons/category-bag.js.map +1 -0
- package/dist/commonjs/icons/category-book.d.ts +8 -0
- package/dist/commonjs/icons/category-book.d.ts.map +1 -0
- package/dist/commonjs/icons/category-book.js +24 -0
- package/dist/commonjs/icons/category-book.js.map +1 -0
- package/dist/commonjs/icons/category-gift.d.ts +8 -0
- package/dist/commonjs/icons/category-gift.d.ts.map +1 -0
- package/dist/commonjs/icons/category-gift.js +24 -0
- package/dist/commonjs/icons/category-gift.js.map +1 -0
- package/dist/commonjs/icons/{checkmark-circle-fill.d.ts → category-large-format.d.ts} +3 -3
- package/dist/commonjs/icons/category-large-format.d.ts.map +1 -0
- package/dist/commonjs/icons/category-large-format.js +24 -0
- package/dist/commonjs/icons/category-large-format.js.map +1 -0
- package/dist/commonjs/icons/category-newspaper.d.ts +8 -0
- package/dist/commonjs/icons/category-newspaper.d.ts.map +1 -0
- package/dist/commonjs/icons/category-newspaper.js +24 -0
- package/dist/commonjs/icons/category-newspaper.js.map +1 -0
- package/dist/commonjs/icons/category-package.d.ts +8 -0
- package/dist/commonjs/icons/category-package.d.ts.map +1 -0
- package/dist/commonjs/icons/category-package.js +24 -0
- package/dist/commonjs/icons/category-package.js.map +1 -0
- package/dist/commonjs/icons/category-promo-product.d.ts +8 -0
- package/dist/commonjs/icons/category-promo-product.d.ts.map +1 -0
- package/dist/commonjs/icons/category-promo-product.js +24 -0
- package/dist/commonjs/icons/category-promo-product.js.map +1 -0
- package/dist/commonjs/icons/category-small-format.d.ts +8 -0
- package/dist/commonjs/icons/category-small-format.d.ts.map +1 -0
- package/dist/commonjs/icons/category-small-format.js +24 -0
- package/dist/commonjs/icons/category-small-format.js.map +1 -0
- package/dist/commonjs/icons/check-badge-fill.d.ts +8 -0
- package/dist/commonjs/icons/check-badge-fill.d.ts.map +1 -0
- package/dist/commonjs/icons/check-badge-fill.js +24 -0
- package/dist/commonjs/icons/check-badge-fill.js.map +1 -0
- package/dist/commonjs/icons/check-badge.d.ts +8 -0
- package/dist/commonjs/icons/check-badge.d.ts.map +1 -0
- package/dist/commonjs/icons/check-badge.js +24 -0
- package/dist/commonjs/icons/check-badge.js.map +1 -0
- package/dist/commonjs/icons/check-bold.d.ts +8 -0
- package/dist/commonjs/icons/check-bold.d.ts.map +1 -0
- package/dist/commonjs/icons/check-bold.js +24 -0
- package/dist/commonjs/icons/check-bold.js.map +1 -0
- package/dist/commonjs/icons/check-circle-fill.d.ts +8 -0
- package/dist/commonjs/icons/check-circle-fill.d.ts.map +1 -0
- package/dist/commonjs/icons/check-circle-fill.js +24 -0
- package/dist/commonjs/icons/check-circle-fill.js.map +1 -0
- package/dist/commonjs/icons/check-circle.d.ts +8 -0
- package/dist/commonjs/icons/check-circle.d.ts.map +1 -0
- package/dist/commonjs/icons/check-circle.js +24 -0
- package/dist/commonjs/icons/check-circle.js.map +1 -0
- package/dist/commonjs/icons/check-square-fill.d.ts +8 -0
- package/dist/commonjs/icons/check-square-fill.d.ts.map +1 -0
- package/dist/commonjs/icons/check-square-fill.js +24 -0
- package/dist/commonjs/icons/check-square-fill.js.map +1 -0
- package/dist/commonjs/icons/check-square.d.ts +8 -0
- package/dist/commonjs/icons/check-square.d.ts.map +1 -0
- package/dist/commonjs/icons/{unstable-close.js → check-square.js} +6 -6
- package/dist/commonjs/icons/check-square.js.map +1 -0
- package/dist/{esm/icons/minus.d.ts → commonjs/icons/check.d.ts} +3 -3
- package/dist/commonjs/icons/check.d.ts.map +1 -0
- package/dist/commonjs/icons/check.js +24 -0
- package/dist/commonjs/icons/check.js.map +1 -0
- package/dist/commonjs/icons/chevron-down-bold.d.ts +8 -0
- package/dist/commonjs/icons/chevron-down-bold.d.ts.map +1 -0
- package/dist/commonjs/icons/{chevron-down-fill.js → chevron-down-bold.js} +6 -6
- package/dist/commonjs/icons/{chevron-down-fill.js.map → chevron-down-bold.js.map} +1 -1
- package/dist/commonjs/icons/chevron-down.d.ts +8 -0
- package/dist/commonjs/icons/chevron-down.d.ts.map +1 -0
- package/dist/commonjs/icons/chevron-down.js +24 -0
- package/dist/commonjs/icons/chevron-down.js.map +1 -0
- package/dist/commonjs/icons/chevron-expand-bold.d.ts +8 -0
- package/dist/commonjs/icons/chevron-expand-bold.d.ts.map +1 -0
- package/dist/commonjs/icons/chevron-expand-bold.js +24 -0
- package/dist/commonjs/icons/chevron-expand-bold.js.map +1 -0
- package/dist/commonjs/icons/chevron-expand.d.ts +8 -0
- package/dist/commonjs/icons/chevron-expand.d.ts.map +1 -0
- package/dist/commonjs/icons/chevron-expand.js +24 -0
- package/dist/commonjs/icons/chevron-expand.js.map +1 -0
- package/dist/commonjs/icons/chevron-left-bold.d.ts +8 -0
- package/dist/commonjs/icons/chevron-left-bold.d.ts.map +1 -0
- package/dist/commonjs/icons/chevron-left-bold.js +24 -0
- package/dist/commonjs/icons/chevron-left-bold.js.map +1 -0
- package/dist/commonjs/icons/chevron-left.d.ts +8 -0
- package/dist/commonjs/icons/chevron-left.d.ts.map +1 -0
- package/dist/commonjs/icons/chevron-left.js +24 -0
- package/dist/commonjs/icons/chevron-left.js.map +1 -0
- package/dist/commonjs/icons/chevron-right-bold.d.ts +8 -0
- package/dist/commonjs/icons/chevron-right-bold.d.ts.map +1 -0
- package/dist/commonjs/icons/chevron-right-bold.js +24 -0
- package/dist/commonjs/icons/chevron-right-bold.js.map +1 -0
- package/dist/commonjs/icons/chevron-right.d.ts +8 -0
- package/dist/commonjs/icons/chevron-right.d.ts.map +1 -0
- package/dist/commonjs/icons/chevron-right.js +24 -0
- package/dist/commonjs/icons/chevron-right.js.map +1 -0
- package/dist/commonjs/icons/chevron-up-bold.d.ts +8 -0
- package/dist/commonjs/icons/chevron-up-bold.d.ts.map +1 -0
- package/dist/commonjs/icons/chevron-up-bold.js +24 -0
- package/dist/commonjs/icons/chevron-up-bold.js.map +1 -0
- package/dist/commonjs/icons/chevron-up.d.ts +8 -0
- package/dist/commonjs/icons/chevron-up.d.ts.map +1 -0
- package/dist/commonjs/icons/chevron-up.js +24 -0
- package/dist/commonjs/icons/chevron-up.js.map +1 -0
- package/dist/commonjs/icons/circle-bold-fill.d.ts +8 -0
- package/dist/commonjs/icons/circle-bold-fill.d.ts.map +1 -0
- package/dist/commonjs/icons/{minus.js → circle-bold-fill.js} +6 -6
- package/dist/commonjs/icons/circle-bold-fill.js.map +1 -0
- package/dist/commonjs/icons/close-bold.d.ts +8 -0
- package/dist/commonjs/icons/close-bold.d.ts.map +1 -0
- package/dist/commonjs/icons/close-bold.js +24 -0
- package/dist/commonjs/icons/close-bold.js.map +1 -0
- package/dist/commonjs/icons/close-circle-fill.d.ts +8 -0
- package/dist/commonjs/icons/close-circle-fill.d.ts.map +1 -0
- package/dist/commonjs/icons/close-circle-fill.js +24 -0
- package/dist/commonjs/icons/close-circle-fill.js.map +1 -0
- package/dist/commonjs/icons/close.d.ts +8 -0
- package/dist/commonjs/icons/close.d.ts.map +1 -0
- package/dist/commonjs/icons/close.js +24 -0
- package/dist/commonjs/icons/close.js.map +1 -0
- package/dist/commonjs/icons/coins-bill.d.ts +8 -0
- package/dist/commonjs/icons/coins-bill.d.ts.map +1 -0
- package/dist/commonjs/icons/coins-bill.js +24 -0
- package/dist/commonjs/icons/coins-bill.js.map +1 -0
- package/dist/commonjs/icons/copy-paste.d.ts +8 -0
- package/dist/commonjs/icons/copy-paste.d.ts.map +1 -0
- package/dist/commonjs/icons/copy-paste.js +24 -0
- package/dist/commonjs/icons/copy-paste.js.map +1 -0
- package/dist/commonjs/icons/copy.d.ts +8 -0
- package/dist/commonjs/icons/copy.d.ts.map +1 -0
- package/dist/commonjs/icons/copy.js +24 -0
- package/dist/commonjs/icons/copy.js.map +1 -0
- package/dist/commonjs/icons/delivery-box.d.ts +8 -0
- package/dist/commonjs/icons/delivery-box.d.ts.map +1 -0
- package/dist/commonjs/icons/delivery-box.js +24 -0
- package/dist/commonjs/icons/delivery-box.js.map +1 -0
- package/dist/commonjs/icons/delivery-plane.d.ts +8 -0
- package/dist/commonjs/icons/delivery-plane.d.ts.map +1 -0
- package/dist/commonjs/icons/delivery-plane.js +24 -0
- package/dist/commonjs/icons/delivery-plane.js.map +1 -0
- package/dist/commonjs/icons/delivery-truck-fill.d.ts +8 -0
- package/dist/commonjs/icons/delivery-truck-fill.d.ts.map +1 -0
- package/dist/commonjs/icons/delivery-truck-fill.js +24 -0
- package/dist/commonjs/icons/delivery-truck-fill.js.map +1 -0
- package/dist/commonjs/icons/delivery-truck.d.ts +8 -0
- package/dist/commonjs/icons/delivery-truck.d.ts.map +1 -0
- package/dist/commonjs/icons/delivery-truck.js +24 -0
- package/dist/commonjs/icons/delivery-truck.js.map +1 -0
- package/dist/commonjs/icons/download.d.ts +8 -0
- package/dist/commonjs/icons/download.d.ts.map +1 -0
- package/dist/commonjs/icons/download.js +24 -0
- package/dist/commonjs/icons/download.js.map +1 -0
- package/dist/commonjs/icons/email-open.d.ts +8 -0
- package/dist/commonjs/icons/email-open.d.ts.map +1 -0
- package/dist/commonjs/icons/email-open.js +24 -0
- package/dist/commonjs/icons/email-open.js.map +1 -0
- package/dist/commonjs/icons/email.d.ts +8 -0
- package/dist/commonjs/icons/email.d.ts.map +1 -0
- package/dist/commonjs/icons/email.js +24 -0
- package/dist/commonjs/icons/email.js.map +1 -0
- package/dist/commonjs/icons/file-finances.d.ts +8 -0
- package/dist/commonjs/icons/file-finances.d.ts.map +1 -0
- package/dist/commonjs/icons/file-finances.js +24 -0
- package/dist/commonjs/icons/file-finances.js.map +1 -0
- package/dist/commonjs/icons/home.d.ts +8 -0
- package/dist/commonjs/icons/home.d.ts.map +1 -0
- package/dist/commonjs/icons/home.js +24 -0
- package/dist/commonjs/icons/home.js.map +1 -0
- package/dist/commonjs/icons/image-fill.d.ts +8 -0
- package/dist/commonjs/icons/image-fill.d.ts.map +1 -0
- package/dist/commonjs/icons/image-fill.js +24 -0
- package/dist/commonjs/icons/image-fill.js.map +1 -0
- package/dist/commonjs/icons/image.d.ts +8 -0
- package/dist/commonjs/icons/image.d.ts.map +1 -0
- package/dist/commonjs/icons/image.js +24 -0
- package/dist/commonjs/icons/image.js.map +1 -0
- package/dist/commonjs/icons/index.d.ts +127 -15
- package/dist/commonjs/icons/index.d.ts.map +1 -1
- package/dist/commonjs/icons/index.js +257 -31
- package/dist/commonjs/icons/index.js.map +1 -1
- package/dist/commonjs/icons/info-circle-fill.js +1 -1
- package/dist/commonjs/icons/info-circle-fill.js.map +1 -1
- package/dist/commonjs/icons/info-circle.d.ts +8 -0
- package/dist/commonjs/icons/info-circle.d.ts.map +1 -0
- package/dist/commonjs/icons/{unstable-info-circle.js → info-circle.js} +6 -6
- package/dist/commonjs/icons/info-circle.js.map +1 -0
- package/dist/commonjs/icons/keyboard.d.ts +8 -0
- package/dist/commonjs/icons/keyboard.d.ts.map +1 -0
- package/dist/commonjs/icons/keyboard.js +24 -0
- package/dist/commonjs/icons/keyboard.js.map +1 -0
- package/dist/commonjs/icons/layers.d.ts +8 -0
- package/dist/commonjs/icons/layers.d.ts.map +1 -0
- package/dist/commonjs/icons/layers.js +24 -0
- package/dist/commonjs/icons/layers.js.map +1 -0
- package/dist/commonjs/icons/link.d.ts +8 -0
- package/dist/commonjs/icons/link.d.ts.map +1 -0
- package/dist/commonjs/icons/link.js +24 -0
- package/dist/commonjs/icons/link.js.map +1 -0
- package/dist/commonjs/icons/list-bullets.d.ts +8 -0
- package/dist/commonjs/icons/list-bullets.d.ts.map +1 -0
- package/dist/commonjs/icons/list-bullets.js +24 -0
- package/dist/commonjs/icons/list-bullets.js.map +1 -0
- package/dist/commonjs/icons/list-numbers.d.ts +8 -0
- package/dist/commonjs/icons/list-numbers.d.ts.map +1 -0
- package/dist/commonjs/icons/list-numbers.js +24 -0
- package/dist/commonjs/icons/list-numbers.js.map +1 -0
- package/dist/commonjs/icons/lock-fill.d.ts +8 -0
- package/dist/commonjs/icons/lock-fill.d.ts.map +1 -0
- package/dist/commonjs/icons/lock-fill.js +24 -0
- package/dist/commonjs/icons/lock-fill.js.map +1 -0
- package/dist/commonjs/icons/lock-open-fill.d.ts +8 -0
- package/dist/commonjs/icons/lock-open-fill.d.ts.map +1 -0
- package/dist/commonjs/icons/lock-open-fill.js +24 -0
- package/dist/commonjs/icons/lock-open-fill.js.map +1 -0
- package/dist/commonjs/icons/lock-open.d.ts +8 -0
- package/dist/commonjs/icons/lock-open.d.ts.map +1 -0
- package/dist/commonjs/icons/lock-open.js +24 -0
- package/dist/commonjs/icons/lock-open.js.map +1 -0
- package/dist/commonjs/icons/lock.d.ts +8 -0
- package/dist/commonjs/icons/lock.d.ts.map +1 -0
- package/dist/commonjs/icons/lock.js +24 -0
- package/dist/commonjs/icons/lock.js.map +1 -0
- package/dist/commonjs/icons/menu-bold.d.ts +8 -0
- package/dist/commonjs/icons/menu-bold.d.ts.map +1 -0
- package/dist/commonjs/icons/menu-bold.js +24 -0
- package/dist/commonjs/icons/menu-bold.js.map +1 -0
- package/dist/commonjs/icons/menu-grid.d.ts +8 -0
- package/dist/commonjs/icons/menu-grid.d.ts.map +1 -0
- package/dist/commonjs/icons/menu-grid.js +24 -0
- package/dist/commonjs/icons/menu-grid.js.map +1 -0
- package/dist/commonjs/icons/{accounting-document.d.ts → menu-more-horizontal.d.ts} +3 -3
- package/dist/commonjs/icons/menu-more-horizontal.d.ts.map +1 -0
- package/dist/commonjs/icons/menu-more-horizontal.js +24 -0
- package/dist/commonjs/icons/menu-more-horizontal.js.map +1 -0
- package/dist/commonjs/icons/menu-more-vertical.d.ts +8 -0
- package/dist/commonjs/icons/menu-more-vertical.d.ts.map +1 -0
- package/dist/commonjs/icons/menu-more-vertical.js +24 -0
- package/dist/commonjs/icons/menu-more-vertical.js.map +1 -0
- package/dist/commonjs/icons/menu.d.ts +8 -0
- package/dist/commonjs/icons/menu.d.ts.map +1 -0
- package/dist/commonjs/icons/menu.js +24 -0
- package/dist/commonjs/icons/menu.js.map +1 -0
- package/dist/commonjs/icons/pencil-fill.d.ts +8 -0
- package/dist/commonjs/icons/pencil-fill.d.ts.map +1 -0
- package/dist/commonjs/icons/pencil-fill.js +24 -0
- package/dist/commonjs/icons/pencil-fill.js.map +1 -0
- package/dist/commonjs/icons/pencil.d.ts +8 -0
- package/dist/commonjs/icons/pencil.d.ts.map +1 -0
- package/dist/commonjs/icons/pencil.js +24 -0
- package/dist/commonjs/icons/pencil.js.map +1 -0
- package/dist/commonjs/icons/placeholder.d.ts +8 -0
- package/dist/commonjs/icons/placeholder.d.ts.map +1 -0
- package/dist/commonjs/icons/{error-circle-fill.js → placeholder.js} +6 -6
- package/dist/commonjs/icons/placeholder.js.map +1 -0
- package/dist/commonjs/icons/question-circle-fill.d.ts +8 -0
- package/dist/commonjs/icons/question-circle-fill.d.ts.map +1 -0
- package/dist/commonjs/icons/question-circle-fill.js +24 -0
- package/dist/commonjs/icons/question-circle-fill.js.map +1 -0
- package/dist/commonjs/icons/question-circle.d.ts +8 -0
- package/dist/commonjs/icons/question-circle.d.ts.map +1 -0
- package/dist/commonjs/icons/question-circle.js +24 -0
- package/dist/commonjs/icons/question-circle.js.map +1 -0
- package/dist/commonjs/icons/rating-star-bold-fill.d.ts +8 -0
- package/dist/commonjs/icons/rating-star-bold-fill.d.ts.map +1 -0
- package/dist/commonjs/icons/rating-star-bold-fill.js +24 -0
- package/dist/commonjs/icons/rating-star-bold-fill.js.map +1 -0
- package/dist/commonjs/icons/rating-star-bold.d.ts +8 -0
- package/dist/commonjs/icons/rating-star-bold.d.ts.map +1 -0
- package/dist/commonjs/icons/rating-star-bold.js +24 -0
- package/dist/commonjs/icons/rating-star-bold.js.map +1 -0
- package/dist/commonjs/icons/rating-star-fill.d.ts +8 -0
- package/dist/commonjs/icons/rating-star-fill.d.ts.map +1 -0
- package/dist/commonjs/icons/rating-star-fill.js +24 -0
- package/dist/commonjs/icons/rating-star-fill.js.map +1 -0
- package/dist/commonjs/icons/save.d.ts +8 -0
- package/dist/commonjs/icons/save.d.ts.map +1 -0
- package/dist/commonjs/icons/save.js +24 -0
- package/dist/commonjs/icons/save.js.map +1 -0
- package/dist/commonjs/icons/search-bold.d.ts +8 -0
- package/dist/commonjs/icons/search-bold.d.ts.map +1 -0
- package/dist/commonjs/icons/search-bold.js +24 -0
- package/dist/commonjs/icons/search-bold.js.map +1 -0
- package/dist/commonjs/icons/search.d.ts +8 -0
- package/dist/commonjs/icons/search.d.ts.map +1 -0
- package/dist/commonjs/icons/search.js +24 -0
- package/dist/commonjs/icons/search.js.map +1 -0
- package/dist/commonjs/icons/settings-cog-fill.d.ts +8 -0
- package/dist/commonjs/icons/settings-cog-fill.d.ts.map +1 -0
- package/dist/commonjs/icons/settings-cog-fill.js +24 -0
- package/dist/commonjs/icons/settings-cog-fill.js.map +1 -0
- package/dist/commonjs/icons/settings-cog.d.ts +8 -0
- package/dist/commonjs/icons/settings-cog.d.ts.map +1 -0
- package/dist/commonjs/icons/settings-cog.js +24 -0
- package/dist/commonjs/icons/settings-cog.js.map +1 -0
- package/dist/commonjs/icons/settings-slider.d.ts +8 -0
- package/dist/commonjs/icons/settings-slider.d.ts.map +1 -0
- package/dist/commonjs/icons/settings-slider.js +24 -0
- package/dist/commonjs/icons/settings-slider.js.map +1 -0
- package/dist/commonjs/icons/shirt-add.d.ts +8 -0
- package/dist/commonjs/icons/shirt-add.d.ts.map +1 -0
- package/dist/commonjs/icons/shirt-add.js +24 -0
- package/dist/commonjs/icons/shirt-add.js.map +1 -0
- package/dist/commonjs/icons/sort-ascending-alt.d.ts +8 -0
- package/dist/commonjs/icons/sort-ascending-alt.d.ts.map +1 -0
- package/dist/commonjs/icons/sort-ascending-alt.js +24 -0
- package/dist/commonjs/icons/sort-ascending-alt.js.map +1 -0
- package/dist/commonjs/icons/sort-ascending.d.ts +8 -0
- package/dist/commonjs/icons/sort-ascending.d.ts.map +1 -0
- package/dist/commonjs/icons/sort-ascending.js +24 -0
- package/dist/commonjs/icons/sort-ascending.js.map +1 -0
- package/dist/commonjs/icons/sort-descending-alt.d.ts +8 -0
- package/dist/commonjs/icons/sort-descending-alt.d.ts.map +1 -0
- package/dist/commonjs/icons/sort-descending-alt.js +24 -0
- package/dist/commonjs/icons/sort-descending-alt.js.map +1 -0
- package/dist/commonjs/icons/sort-descending.d.ts +8 -0
- package/dist/commonjs/icons/sort-descending.d.ts.map +1 -0
- package/dist/commonjs/icons/sort-descending.js +24 -0
- package/dist/commonjs/icons/{checkmark-small.js.map → sort-descending.js.map} +1 -1
- package/dist/commonjs/icons/sort-unsorted.d.ts +8 -0
- package/dist/commonjs/icons/sort-unsorted.d.ts.map +1 -0
- package/dist/commonjs/icons/sort-unsorted.js +24 -0
- package/dist/commonjs/icons/sort-unsorted.js.map +1 -0
- package/dist/commonjs/icons/subtract-bold.d.ts +8 -0
- package/dist/commonjs/icons/subtract-bold.d.ts.map +1 -0
- package/dist/commonjs/icons/subtract-bold.js +24 -0
- package/dist/commonjs/icons/subtract-bold.js.map +1 -0
- package/dist/commonjs/icons/subtract.d.ts +8 -0
- package/dist/commonjs/icons/subtract.d.ts.map +1 -0
- package/dist/commonjs/icons/subtract.js +24 -0
- package/dist/commonjs/icons/subtract.js.map +1 -0
- package/dist/commonjs/icons/text-alignment-center.d.ts +8 -0
- package/dist/commonjs/icons/text-alignment-center.d.ts.map +1 -0
- package/dist/commonjs/icons/{checkmark-circle-fill.js → text-alignment-center.js} +6 -6
- package/dist/commonjs/icons/{checkmark-circle-fill.js.map → text-alignment-center.js.map} +1 -1
- package/dist/commonjs/icons/text-alignment-justify.d.ts +8 -0
- package/dist/commonjs/icons/text-alignment-justify.d.ts.map +1 -0
- package/dist/commonjs/icons/text-alignment-justify.js +24 -0
- package/dist/commonjs/icons/text-alignment-justify.js.map +1 -0
- package/dist/commonjs/icons/text-alignment-left.d.ts +8 -0
- package/dist/commonjs/icons/text-alignment-left.d.ts.map +1 -0
- package/dist/commonjs/icons/text-alignment-left.js +24 -0
- package/dist/commonjs/icons/text-alignment-left.js.map +1 -0
- package/dist/commonjs/icons/text-alignment-right.d.ts +8 -0
- package/dist/commonjs/icons/text-alignment-right.d.ts.map +1 -0
- package/dist/commonjs/icons/text-alignment-right.js +24 -0
- package/dist/commonjs/icons/text-alignment-right.js.map +1 -0
- package/dist/commonjs/icons/text-bold.d.ts +8 -0
- package/dist/commonjs/icons/text-bold.d.ts.map +1 -0
- package/dist/commonjs/icons/text-bold.js +24 -0
- package/dist/commonjs/icons/text-bold.js.map +1 -0
- package/dist/commonjs/icons/text-italic.d.ts +8 -0
- package/dist/commonjs/icons/text-italic.d.ts.map +1 -0
- package/dist/commonjs/icons/{minus-small.js → text-italic.js} +6 -6
- package/dist/commonjs/icons/text-italic.js.map +1 -0
- package/dist/commonjs/icons/text-strikethrough.d.ts +8 -0
- package/dist/commonjs/icons/text-strikethrough.d.ts.map +1 -0
- package/dist/commonjs/icons/text-strikethrough.js +24 -0
- package/dist/commonjs/icons/text-strikethrough.js.map +1 -0
- package/dist/commonjs/icons/text-underline.d.ts +8 -0
- package/dist/commonjs/icons/text-underline.d.ts.map +1 -0
- package/dist/commonjs/icons/text-underline.js +24 -0
- package/dist/commonjs/icons/text-underline.js.map +1 -0
- package/dist/commonjs/icons/trash-fill.d.ts +8 -0
- package/dist/commonjs/icons/trash-fill.d.ts.map +1 -0
- package/dist/commonjs/icons/trash-fill.js +24 -0
- package/dist/commonjs/icons/trash-fill.js.map +1 -0
- package/dist/commonjs/icons/trash.d.ts +8 -0
- package/dist/commonjs/icons/trash.d.ts.map +1 -0
- package/dist/commonjs/icons/trash.js +24 -0
- package/dist/commonjs/icons/trash.js.map +1 -0
- package/dist/commonjs/icons/view-off.d.ts +8 -0
- package/dist/commonjs/icons/view-off.d.ts.map +1 -0
- package/dist/commonjs/icons/view-off.js +24 -0
- package/dist/commonjs/icons/view-off.js.map +1 -0
- package/dist/commonjs/icons/view.d.ts +8 -0
- package/dist/commonjs/icons/view.d.ts.map +1 -0
- package/dist/commonjs/icons/view.js +24 -0
- package/dist/commonjs/icons/view.js.map +1 -0
- package/dist/commonjs/icons/warning-circle-fill.js +1 -1
- package/dist/commonjs/icons/warning-circle-fill.js.map +1 -1
- package/dist/commonjs/icons/warning-fill.d.ts +8 -0
- package/dist/commonjs/icons/warning-fill.d.ts.map +1 -0
- package/dist/commonjs/icons/warning-fill.js +24 -0
- package/dist/commonjs/icons/warning-fill.js.map +1 -0
- package/dist/commonjs/icons/warning.d.ts +8 -0
- package/dist/commonjs/icons/warning.d.ts.map +1 -0
- package/dist/commonjs/icons/warning.js +24 -0
- package/dist/commonjs/icons/warning.js.map +1 -0
- package/dist/commonjs/icons/zoom-in.d.ts +8 -0
- package/dist/commonjs/icons/zoom-in.d.ts.map +1 -0
- package/dist/commonjs/icons/zoom-in.js +24 -0
- package/dist/commonjs/icons/zoom-in.js.map +1 -0
- package/dist/commonjs/icons/zoom-out.d.ts +8 -0
- package/dist/commonjs/icons/zoom-out.d.ts.map +1 -0
- package/dist/commonjs/icons/zoom-out.js +24 -0
- package/dist/commonjs/icons/zoom-out.js.map +1 -0
- package/dist/commonjs/index.d.ts +21 -13
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +18 -12
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/utils/style/types.d.ts +1 -0
- 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-server-effect-event.d.ts +3 -0
- package/dist/commonjs/utils/use-server-effect-event.d.ts.map +1 -0
- package/dist/commonjs/utils/use-server-effect-event.js +19 -0
- package/dist/commonjs/utils/use-server-effect-event.js.map +1 -0
- package/dist/commonjs/utils/use-server-layout-effect.d.ts +4 -0
- package/dist/commonjs/utils/use-server-layout-effect.d.ts.map +1 -0
- package/dist/commonjs/utils/use-server-layout-effect.js +7 -0
- package/dist/commonjs/utils/use-server-layout-effect.js.map +1 -0
- package/dist/esm/components/badge/badge.d.ts +31 -0
- package/dist/esm/components/badge/badge.d.ts.map +1 -0
- package/dist/esm/components/badge/badge.js +20 -0
- package/dist/esm/components/badge/badge.js.map +1 -0
- package/dist/esm/components/breadcrumbs/breadcrumbs.js +2 -2
- package/dist/esm/components/breadcrumbs/breadcrumbs.js.map +1 -1
- package/dist/esm/components/button/button.js +1 -1
- package/dist/esm/components/button/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.d.ts +3 -3
- package/dist/esm/components/button/types.d.ts.map +1 -1
- package/dist/esm/components/button/types.js.map +1 -1
- package/dist/esm/components/card/card.d.ts +5 -0
- package/dist/esm/components/card/card.d.ts.map +1 -1
- package/dist/esm/components/card/card.js +5 -0
- package/dist/esm/components/card/card.js.map +1 -1
- package/dist/esm/components/checkbox/checkbox.d.ts +2 -2
- package/dist/esm/components/checkbox/checkbox.d.ts.map +1 -1
- package/dist/esm/components/checkbox/checkbox.js +2 -2
- package/dist/esm/components/checkbox/checkbox.js.map +1 -1
- package/dist/esm/components/combo-box/combo-box.js +3 -3
- package/dist/esm/components/combo-box/combo-box.js.map +1 -1
- package/dist/esm/components/disclosure/disclosure-group.d.ts +7 -2
- package/dist/esm/components/disclosure/disclosure-group.d.ts.map +1 -1
- package/dist/esm/components/disclosure/disclosure-group.js +5 -0
- package/dist/esm/components/disclosure/disclosure-group.js.map +1 -1
- package/dist/esm/components/disclosure/disclosure.d.ts +12 -7
- package/dist/esm/components/disclosure/disclosure.d.ts.map +1 -1
- package/dist/esm/components/disclosure/disclosure.js +8 -3
- package/dist/esm/components/disclosure/disclosure.js.map +1 -1
- package/dist/esm/components/form/form.d.ts +2 -2
- package/dist/esm/components/form/form.d.ts.map +1 -1
- package/dist/esm/components/form/form.js.map +1 -1
- package/dist/esm/components/internal/focusable-container/focusable-container.d.ts +2 -0
- package/dist/esm/components/internal/focusable-container/focusable-container.d.ts.map +1 -0
- package/dist/esm/components/internal/focusable-container/focusable-container.js +46 -0
- package/dist/esm/components/internal/focusable-container/focusable-container.js.map +1 -0
- package/dist/esm/components/internal/form-field/form-field.js +3 -3
- package/dist/esm/components/internal/form-field/form-field.js.map +1 -1
- package/dist/esm/components/internal/spinner/spinner.js.map +1 -1
- package/dist/esm/components/menu/menu.d.ts +18 -12
- package/dist/esm/components/menu/menu.d.ts.map +1 -1
- package/dist/esm/components/menu/menu.js +12 -26
- package/dist/esm/components/menu/menu.js.map +1 -1
- package/dist/esm/components/modal/modal.d.ts +54 -9
- package/dist/esm/components/modal/modal.d.ts.map +1 -1
- package/dist/esm/components/modal/modal.js +24 -9
- package/dist/esm/components/modal/modal.js.map +1 -1
- package/dist/esm/components/nav-tabs/nav-tabs.d.ts +2 -2
- package/dist/esm/components/nav-tabs/nav-tabs.d.ts.map +1 -1
- package/dist/esm/components/nav-tabs/nav-tabs.js.map +1 -1
- package/dist/esm/components/number-field/number-field.d.ts +12 -4
- package/dist/esm/components/number-field/number-field.d.ts.map +1 -1
- package/dist/esm/components/number-field/number-field.js +12 -6
- package/dist/esm/components/number-field/number-field.js.map +1 -1
- package/dist/esm/components/pagination/action-pagination.d.ts +2 -0
- package/dist/esm/components/pagination/action-pagination.d.ts.map +1 -0
- package/dist/esm/components/pagination/action-pagination.js +24 -0
- package/dist/esm/components/pagination/action-pagination.js.map +1 -0
- package/dist/esm/components/pagination/base-pagination.d.ts +10 -0
- package/dist/esm/components/pagination/base-pagination.d.ts.map +1 -0
- package/dist/esm/components/pagination/base-pagination.js +67 -0
- package/dist/esm/components/pagination/base-pagination.js.map +1 -0
- package/dist/esm/components/pagination/link-pagination.d.ts +2 -0
- package/dist/esm/components/pagination/link-pagination.d.ts.map +1 -0
- package/dist/esm/components/pagination/link-pagination.js +57 -0
- package/dist/esm/components/pagination/link-pagination.js.map +1 -0
- package/dist/esm/components/pagination/pagination.d.ts +14 -8
- package/dist/esm/components/pagination/pagination.d.ts.map +1 -1
- package/dist/esm/components/pagination/pagination.js +36 -62
- package/dist/esm/components/pagination/pagination.js.map +1 -1
- package/dist/esm/components/popover/popover.d.ts +54 -0
- package/dist/esm/components/popover/popover.d.ts.map +1 -0
- package/dist/esm/components/popover/popover.js +33 -0
- package/dist/esm/components/popover/popover.js.map +1 -0
- package/dist/esm/components/radio/radio.d.ts +2 -2
- package/dist/esm/components/radio/radio.d.ts.map +1 -1
- package/dist/esm/components/radio/radio.js.map +1 -1
- package/dist/esm/components/select/select.js +3 -3
- package/dist/esm/components/select/select.js.map +1 -1
- package/dist/esm/components/table/contexts/column-collection.d.ts +21 -0
- package/dist/esm/components/table/contexts/column-collection.d.ts.map +1 -0
- package/dist/esm/components/table/contexts/column-collection.js +67 -0
- package/dist/esm/components/table/contexts/column-collection.js.map +1 -0
- package/dist/esm/components/table/contexts/row-state.d.ts +5 -1
- package/dist/esm/components/table/contexts/row-state.d.ts.map +1 -1
- package/dist/esm/components/table/contexts/row-state.js +6 -2
- package/dist/esm/components/table/contexts/row-state.js.map +1 -1
- package/dist/esm/components/table/contexts/table-state.d.ts +21 -0
- package/dist/esm/components/table/contexts/table-state.d.ts.map +1 -0
- package/dist/esm/components/table/contexts/table-state.js +43 -0
- package/dist/esm/components/table/contexts/table-state.js.map +1 -0
- package/dist/esm/components/table/hooks/use-selectable-row.d.ts +6 -0
- package/dist/esm/components/table/hooks/use-selectable-row.d.ts.map +1 -0
- package/dist/esm/components/table/hooks/use-selectable-row.js +37 -0
- package/dist/esm/components/table/hooks/use-selectable-row.js.map +1 -0
- package/dist/esm/components/table/hooks/use-table-cell.d.ts +1 -1
- package/dist/esm/components/table/hooks/use-table-cell.d.ts.map +1 -1
- package/dist/esm/components/table/hooks/use-table-cell.js +35 -16
- package/dist/esm/components/table/hooks/use-table-cell.js.map +1 -1
- package/dist/esm/components/table/hooks/use-table.d.ts +1 -1
- package/dist/esm/components/table/hooks/use-table.d.ts.map +1 -1
- package/dist/esm/components/table/hooks/use-table.js +22 -8
- package/dist/esm/components/table/hooks/use-table.js.map +1 -1
- package/dist/esm/components/table/table-all-rows-selector.d.ts +11 -0
- package/dist/esm/components/table/table-all-rows-selector.d.ts.map +1 -0
- package/dist/esm/components/table/table-all-rows-selector.js +20 -0
- package/dist/esm/components/table/table-all-rows-selector.js.map +1 -0
- package/dist/esm/components/table/table-body-cell.d.ts +9 -16
- package/dist/esm/components/table/table-body-cell.d.ts.map +1 -1
- package/dist/esm/components/table/table-body-cell.js +12 -4
- package/dist/esm/components/table/table-body-cell.js.map +1 -1
- package/dist/esm/components/table/table-body-row.d.ts +40 -0
- package/dist/esm/components/table/table-body-row.d.ts.map +1 -0
- package/dist/esm/components/table/table-body-row.js +25 -0
- package/dist/esm/components/table/table-body-row.js.map +1 -0
- package/dist/esm/components/table/table-body.d.ts +9 -3
- package/dist/esm/components/table/table-body.d.ts.map +1 -1
- package/dist/esm/components/table/table-body.js +9 -3
- package/dist/esm/components/table/table-body.js.map +1 -1
- package/dist/esm/components/table/table-container.d.ts +11 -5
- package/dist/esm/components/table/table-container.d.ts.map +1 -1
- package/dist/esm/components/table/table-container.js +11 -28
- package/dist/esm/components/table/table-container.js.map +1 -1
- package/dist/esm/components/table/table-empty-state.d.ts +18 -0
- package/dist/esm/components/table/table-empty-state.d.ts.map +1 -0
- package/dist/esm/components/table/table-empty-state.js +30 -0
- package/dist/esm/components/table/table-empty-state.js.map +1 -0
- package/dist/esm/components/table/table-header-cell.d.ts +33 -4
- package/dist/esm/components/table/table-header-cell.d.ts.map +1 -1
- package/dist/esm/components/table/table-header-cell.js +36 -5
- package/dist/esm/components/table/table-header-cell.js.map +1 -1
- package/dist/esm/components/table/{table-row.d.ts → table-header-row.d.ts} +10 -4
- package/dist/esm/components/table/table-header-row.d.ts.map +1 -0
- package/dist/esm/components/table/table-header-row.js +17 -0
- package/dist/esm/components/table/table-header-row.js.map +1 -0
- package/dist/esm/components/table/table-header.d.ts +9 -3
- package/dist/esm/components/table/table-header.d.ts.map +1 -1
- package/dist/esm/components/table/table-header.js +9 -3
- package/dist/esm/components/table/table-header.js.map +1 -1
- package/dist/esm/components/table/table-row-selector.d.ts +11 -0
- package/dist/esm/components/table/table-row-selector.d.ts.map +1 -0
- package/dist/esm/components/table/table-row-selector.js +22 -0
- package/dist/esm/components/table/table-row-selector.js.map +1 -0
- package/dist/esm/components/table/table.d.ts +34 -5
- package/dist/esm/components/table/table.d.ts.map +1 -1
- package/dist/esm/components/table/table.js +14 -6
- package/dist/esm/components/table/table.js.map +1 -1
- package/dist/esm/components/tag/tag-group.d.ts +7 -4
- package/dist/esm/components/tag/tag-group.d.ts.map +1 -1
- package/dist/esm/components/tag/tag-group.js +3 -3
- package/dist/esm/components/tag/tag-group.js.map +1 -1
- package/dist/esm/components/tag/tag.d.ts +10 -9
- package/dist/esm/components/tag/tag.d.ts.map +1 -1
- package/dist/esm/components/tag/tag.js +11 -6
- package/dist/esm/components/tag/tag.js.map +1 -1
- package/dist/esm/components/text-inputs/text-area.d.ts +5 -1
- package/dist/esm/components/text-inputs/text-area.d.ts.map +1 -1
- package/dist/esm/components/text-inputs/text-area.js +5 -2
- package/dist/esm/components/text-inputs/text-area.js.map +1 -1
- package/dist/esm/components/tooltip/tooltip.d.ts +10 -2
- package/dist/esm/components/tooltip/tooltip.d.ts.map +1 -1
- package/dist/esm/components/tooltip/tooltip.js +10 -2
- package/dist/esm/components/tooltip/tooltip.js.map +1 -1
- package/dist/esm/components/types.d.ts +3 -3
- package/dist/esm/components/types.d.ts.map +1 -1
- package/dist/esm/components/types.js.map +1 -1
- package/dist/esm/components/typography/types.d.ts +2 -2
- package/dist/esm/components/typography/types.d.ts.map +1 -1
- package/dist/esm/components/typography/types.js.map +1 -1
- package/dist/esm/icons/action-redo.d.ts +8 -0
- package/dist/esm/icons/action-redo.d.ts.map +1 -0
- package/dist/esm/icons/action-redo.js +19 -0
- package/dist/esm/icons/action-redo.js.map +1 -0
- package/dist/esm/icons/action-undo.d.ts +8 -0
- package/dist/esm/icons/action-undo.d.ts.map +1 -0
- package/dist/esm/icons/action-undo.js +19 -0
- package/dist/esm/icons/action-undo.js.map +1 -0
- package/dist/esm/icons/add-bold.d.ts +8 -0
- package/dist/esm/icons/add-bold.d.ts.map +1 -0
- package/dist/esm/icons/add-bold.js +19 -0
- package/dist/esm/icons/add-bold.js.map +1 -0
- package/dist/esm/icons/add-circle-fill.js +1 -1
- package/dist/esm/icons/add-circle-fill.js.map +1 -1
- package/dist/esm/icons/add-circle.js +1 -1
- package/dist/esm/icons/add-circle.js.map +1 -1
- package/dist/esm/icons/add-square-fill.d.ts +8 -0
- package/dist/esm/icons/add-square-fill.d.ts.map +1 -0
- package/dist/esm/icons/add-square-fill.js +19 -0
- package/dist/esm/icons/add-square-fill.js.map +1 -0
- package/dist/esm/icons/add-square.d.ts +8 -0
- package/dist/esm/icons/add-square.d.ts.map +1 -0
- package/dist/esm/icons/add-square.js +19 -0
- package/dist/esm/icons/add-square.js.map +1 -0
- package/dist/esm/icons/add.d.ts.map +1 -1
- package/dist/esm/icons/add.js +1 -1
- package/dist/esm/icons/add.js.map +1 -1
- package/dist/esm/icons/analytics-graph.d.ts +8 -0
- package/dist/esm/icons/analytics-graph.d.ts.map +1 -0
- package/dist/esm/icons/analytics-graph.js +19 -0
- package/dist/esm/icons/analytics-graph.js.map +1 -0
- package/dist/esm/icons/analytics-pie-fill.d.ts +8 -0
- package/dist/esm/icons/analytics-pie-fill.d.ts.map +1 -0
- package/dist/esm/icons/analytics-pie-fill.js +19 -0
- package/dist/esm/icons/analytics-pie-fill.js.map +1 -0
- package/dist/esm/icons/analytics-pie.d.ts +8 -0
- package/dist/esm/icons/analytics-pie.d.ts.map +1 -0
- package/dist/esm/icons/analytics-pie.js +19 -0
- package/dist/esm/icons/analytics-pie.js.map +1 -0
- package/dist/esm/icons/app-window-layout.d.ts +8 -0
- package/dist/esm/icons/app-window-layout.d.ts.map +1 -0
- package/dist/esm/icons/app-window-layout.js +19 -0
- package/dist/esm/icons/app-window-layout.js.map +1 -0
- package/dist/esm/icons/app-window-next.d.ts +8 -0
- package/dist/esm/icons/app-window-next.d.ts.map +1 -0
- package/dist/esm/icons/app-window-next.js +19 -0
- package/dist/esm/icons/app-window-next.js.map +1 -0
- package/dist/esm/icons/app-window-search.d.ts +8 -0
- package/dist/esm/icons/app-window-search.d.ts.map +1 -0
- package/dist/esm/icons/app-window-search.js +19 -0
- package/dist/esm/icons/app-window-search.js.map +1 -0
- package/dist/esm/icons/arrow-down-bold.d.ts +8 -0
- package/dist/esm/icons/arrow-down-bold.d.ts.map +1 -0
- package/dist/esm/icons/arrow-down-bold.js +19 -0
- package/dist/esm/icons/arrow-down-bold.js.map +1 -0
- package/dist/esm/icons/arrow-down.d.ts +8 -0
- package/dist/esm/icons/arrow-down.d.ts.map +1 -0
- package/dist/esm/icons/{checkmark.js → arrow-down.js} +6 -6
- package/dist/esm/icons/arrow-down.js.map +1 -0
- package/dist/esm/icons/arrow-left-bold.d.ts +8 -0
- package/dist/esm/icons/arrow-left-bold.d.ts.map +1 -0
- package/dist/esm/icons/arrow-left-bold.js +19 -0
- package/dist/esm/icons/arrow-left-bold.js.map +1 -0
- package/dist/esm/icons/arrow-left.d.ts +8 -0
- package/dist/esm/icons/arrow-left.d.ts.map +1 -0
- package/dist/esm/icons/arrow-left.js +19 -0
- package/dist/esm/icons/arrow-left.js.map +1 -0
- package/dist/esm/icons/arrow-right-bold.d.ts +8 -0
- package/dist/esm/icons/arrow-right-bold.d.ts.map +1 -0
- package/dist/esm/icons/{checkmark-small.js → arrow-right-bold.js} +6 -6
- package/dist/esm/icons/arrow-right-bold.js.map +1 -0
- package/dist/esm/icons/arrow-right.d.ts +8 -0
- package/dist/esm/icons/arrow-right.d.ts.map +1 -0
- package/dist/esm/icons/arrow-right.js +19 -0
- package/dist/esm/icons/arrow-right.js.map +1 -0
- package/dist/esm/icons/arrow-up-bold.d.ts +8 -0
- package/dist/esm/icons/arrow-up-bold.d.ts.map +1 -0
- package/dist/esm/icons/arrow-up-bold.js +19 -0
- package/dist/esm/icons/arrow-up-bold.js.map +1 -0
- package/dist/esm/icons/arrow-up.d.ts +8 -0
- package/dist/esm/icons/arrow-up.d.ts.map +1 -0
- package/dist/esm/icons/arrow-up.js +19 -0
- package/dist/esm/icons/arrow-up.js.map +1 -0
- package/dist/esm/icons/attachment.d.ts +8 -0
- package/dist/esm/icons/attachment.d.ts.map +1 -0
- package/dist/esm/icons/attachment.js +19 -0
- package/dist/esm/icons/attachment.js.map +1 -0
- package/dist/esm/icons/barcode.d.ts +8 -0
- package/dist/esm/icons/barcode.d.ts.map +1 -0
- package/dist/esm/icons/barcode.js +19 -0
- package/dist/esm/icons/barcode.js.map +1 -0
- package/dist/esm/icons/bell-off.d.ts +8 -0
- package/dist/esm/icons/bell-off.d.ts.map +1 -0
- package/dist/esm/icons/bell-off.js +19 -0
- package/dist/esm/icons/bell-off.js.map +1 -0
- package/dist/esm/icons/bell.d.ts +8 -0
- package/dist/esm/icons/bell.d.ts.map +1 -0
- package/dist/esm/icons/bell.js +19 -0
- package/dist/esm/icons/bell.js.map +1 -0
- package/dist/esm/icons/book-open-fill.d.ts +8 -0
- package/dist/esm/icons/book-open-fill.d.ts.map +1 -0
- package/dist/esm/icons/book-open-fill.js +19 -0
- package/dist/esm/icons/book-open-fill.js.map +1 -0
- package/dist/esm/icons/book-open.d.ts +8 -0
- package/dist/esm/icons/book-open.d.ts.map +1 -0
- package/dist/esm/icons/book-open.js +19 -0
- package/dist/esm/icons/book-open.js.map +1 -0
- package/dist/esm/icons/brackets.d.ts +8 -0
- package/dist/esm/icons/brackets.d.ts.map +1 -0
- package/dist/esm/icons/brackets.js +19 -0
- package/dist/esm/icons/brackets.js.map +1 -0
- package/dist/esm/icons/calculator-alt.d.ts.map +1 -1
- package/dist/esm/icons/calculator-alt.js +1 -1
- package/dist/esm/icons/calculator-alt.js.map +1 -1
- package/dist/esm/icons/calculator.d.ts.map +1 -1
- package/dist/esm/icons/calculator.js +1 -1
- package/dist/esm/icons/calculator.js.map +1 -1
- package/dist/esm/icons/calendar-empty.d.ts +8 -0
- package/dist/esm/icons/calendar-empty.d.ts.map +1 -0
- package/dist/esm/icons/calendar-empty.js +19 -0
- package/dist/esm/icons/calendar-empty.js.map +1 -0
- package/dist/esm/icons/calendar-fill.d.ts +8 -0
- package/dist/esm/icons/calendar-fill.d.ts.map +1 -0
- package/dist/esm/icons/calendar-fill.js +19 -0
- package/dist/esm/icons/calendar-fill.js.map +1 -0
- package/dist/esm/icons/calendar.d.ts +8 -0
- package/dist/esm/icons/calendar.d.ts.map +1 -0
- package/dist/esm/icons/calendar.js +19 -0
- package/dist/esm/icons/calendar.js.map +1 -0
- package/dist/esm/icons/category-apparel.d.ts +8 -0
- package/dist/esm/icons/category-apparel.d.ts.map +1 -0
- package/dist/esm/icons/category-apparel.js +19 -0
- package/dist/esm/icons/category-apparel.js.map +1 -0
- package/dist/esm/icons/category-bag.d.ts +8 -0
- package/dist/esm/icons/category-bag.d.ts.map +1 -0
- package/dist/esm/icons/category-bag.js +19 -0
- package/dist/esm/icons/category-bag.js.map +1 -0
- package/dist/esm/icons/category-book.d.ts +8 -0
- package/dist/esm/icons/category-book.d.ts.map +1 -0
- package/dist/esm/icons/category-book.js +19 -0
- package/dist/esm/icons/category-book.js.map +1 -0
- package/dist/esm/icons/category-gift.d.ts +8 -0
- package/dist/esm/icons/category-gift.d.ts.map +1 -0
- package/dist/esm/icons/category-gift.js +19 -0
- package/dist/esm/icons/category-gift.js.map +1 -0
- package/dist/esm/icons/category-large-format.d.ts +8 -0
- package/dist/esm/icons/category-large-format.d.ts.map +1 -0
- package/dist/esm/icons/category-large-format.js +19 -0
- package/dist/esm/icons/category-large-format.js.map +1 -0
- package/dist/esm/icons/category-newspaper.d.ts +8 -0
- package/dist/esm/icons/category-newspaper.d.ts.map +1 -0
- package/dist/esm/icons/category-newspaper.js +19 -0
- package/dist/esm/icons/category-newspaper.js.map +1 -0
- package/dist/esm/icons/category-package.d.ts +8 -0
- package/dist/esm/icons/category-package.d.ts.map +1 -0
- package/dist/esm/icons/category-package.js +19 -0
- package/dist/esm/icons/category-package.js.map +1 -0
- package/dist/esm/icons/category-promo-product.d.ts +8 -0
- package/dist/esm/icons/category-promo-product.d.ts.map +1 -0
- package/dist/esm/icons/category-promo-product.js +19 -0
- package/dist/esm/icons/category-promo-product.js.map +1 -0
- package/dist/esm/icons/category-small-format.d.ts +8 -0
- package/dist/esm/icons/category-small-format.d.ts.map +1 -0
- package/dist/esm/icons/category-small-format.js +19 -0
- package/dist/esm/icons/category-small-format.js.map +1 -0
- package/dist/esm/icons/check-badge-fill.d.ts +8 -0
- package/dist/esm/icons/check-badge-fill.d.ts.map +1 -0
- package/dist/esm/icons/check-badge-fill.js +19 -0
- package/dist/esm/icons/check-badge-fill.js.map +1 -0
- package/dist/esm/icons/check-badge.d.ts +8 -0
- package/dist/esm/icons/check-badge.d.ts.map +1 -0
- package/dist/esm/icons/check-badge.js +19 -0
- package/dist/esm/icons/check-badge.js.map +1 -0
- package/dist/esm/icons/check-bold.d.ts +8 -0
- package/dist/esm/icons/check-bold.d.ts.map +1 -0
- package/dist/esm/icons/check-bold.js +19 -0
- package/dist/esm/icons/check-bold.js.map +1 -0
- package/dist/esm/icons/check-circle-fill.d.ts +8 -0
- package/dist/esm/icons/check-circle-fill.d.ts.map +1 -0
- package/dist/esm/icons/check-circle-fill.js +19 -0
- package/dist/esm/icons/check-circle-fill.js.map +1 -0
- package/dist/esm/icons/check-circle.d.ts +8 -0
- package/dist/esm/icons/check-circle.d.ts.map +1 -0
- package/dist/esm/icons/check-circle.js +19 -0
- package/dist/esm/icons/check-circle.js.map +1 -0
- package/dist/esm/icons/check-square-fill.d.ts +8 -0
- package/dist/esm/icons/check-square-fill.d.ts.map +1 -0
- package/dist/esm/icons/check-square-fill.js +19 -0
- package/dist/esm/icons/check-square-fill.js.map +1 -0
- package/dist/esm/icons/check-square.d.ts +8 -0
- package/dist/esm/icons/check-square.d.ts.map +1 -0
- package/dist/esm/icons/check-square.js +19 -0
- package/dist/esm/icons/check-square.js.map +1 -0
- package/dist/esm/icons/check.d.ts +8 -0
- package/dist/esm/icons/check.d.ts.map +1 -0
- package/dist/esm/icons/check.js +19 -0
- package/dist/esm/icons/check.js.map +1 -0
- package/dist/esm/icons/chevron-down-bold.d.ts +8 -0
- package/dist/esm/icons/chevron-down-bold.d.ts.map +1 -0
- package/dist/esm/icons/{chevron-down-fill.js → chevron-down-bold.js} +6 -6
- package/dist/esm/icons/{chevron-down-fill.js.map → chevron-down-bold.js.map} +1 -1
- package/dist/esm/icons/chevron-down.d.ts +8 -0
- package/dist/esm/icons/chevron-down.d.ts.map +1 -0
- package/dist/esm/icons/chevron-down.js +19 -0
- package/dist/esm/icons/chevron-down.js.map +1 -0
- package/dist/esm/icons/chevron-expand-bold.d.ts +8 -0
- package/dist/esm/icons/chevron-expand-bold.d.ts.map +1 -0
- package/dist/esm/icons/chevron-expand-bold.js +19 -0
- package/dist/esm/icons/chevron-expand-bold.js.map +1 -0
- package/dist/esm/icons/chevron-expand.d.ts +8 -0
- package/dist/esm/icons/chevron-expand.d.ts.map +1 -0
- package/dist/esm/icons/chevron-expand.js +19 -0
- package/dist/esm/icons/chevron-expand.js.map +1 -0
- package/dist/esm/icons/chevron-left-bold.d.ts +8 -0
- package/dist/esm/icons/chevron-left-bold.d.ts.map +1 -0
- package/dist/esm/icons/chevron-left-bold.js +19 -0
- package/dist/esm/icons/chevron-left-bold.js.map +1 -0
- package/dist/esm/icons/chevron-left.d.ts +8 -0
- package/dist/esm/icons/chevron-left.d.ts.map +1 -0
- package/dist/esm/icons/chevron-left.js +19 -0
- package/dist/esm/icons/chevron-left.js.map +1 -0
- package/dist/esm/icons/chevron-right-bold.d.ts +8 -0
- package/dist/esm/icons/chevron-right-bold.d.ts.map +1 -0
- package/dist/esm/icons/chevron-right-bold.js +19 -0
- package/dist/esm/icons/chevron-right-bold.js.map +1 -0
- package/dist/esm/icons/chevron-right.d.ts +8 -0
- package/dist/esm/icons/chevron-right.d.ts.map +1 -0
- package/dist/esm/icons/chevron-right.js +19 -0
- package/dist/esm/icons/chevron-right.js.map +1 -0
- package/dist/esm/icons/chevron-up-bold.d.ts +8 -0
- package/dist/esm/icons/chevron-up-bold.d.ts.map +1 -0
- package/dist/esm/icons/chevron-up-bold.js +19 -0
- package/dist/esm/icons/chevron-up-bold.js.map +1 -0
- package/dist/esm/icons/chevron-up.d.ts +8 -0
- package/dist/esm/icons/chevron-up.d.ts.map +1 -0
- package/dist/esm/icons/chevron-up.js +19 -0
- package/dist/esm/icons/chevron-up.js.map +1 -0
- package/dist/esm/icons/circle-bold-fill.d.ts +8 -0
- package/dist/esm/icons/circle-bold-fill.d.ts.map +1 -0
- package/dist/esm/icons/{minus.js → circle-bold-fill.js} +6 -6
- package/dist/esm/icons/circle-bold-fill.js.map +1 -0
- package/dist/esm/icons/close-bold.d.ts +8 -0
- package/dist/esm/icons/close-bold.d.ts.map +1 -0
- package/dist/esm/icons/close-bold.js +19 -0
- package/dist/esm/icons/close-bold.js.map +1 -0
- package/dist/esm/icons/close-circle-fill.d.ts +8 -0
- package/dist/esm/icons/close-circle-fill.d.ts.map +1 -0
- package/dist/esm/icons/close-circle-fill.js +19 -0
- package/dist/esm/icons/close-circle-fill.js.map +1 -0
- package/dist/esm/icons/close.d.ts +8 -0
- package/dist/esm/icons/close.d.ts.map +1 -0
- package/dist/esm/icons/close.js +19 -0
- package/dist/esm/icons/close.js.map +1 -0
- package/dist/esm/icons/coins-bill.d.ts +8 -0
- package/dist/esm/icons/coins-bill.d.ts.map +1 -0
- package/dist/esm/icons/coins-bill.js +19 -0
- package/dist/esm/icons/coins-bill.js.map +1 -0
- package/dist/esm/icons/copy-paste.d.ts +8 -0
- package/dist/esm/icons/copy-paste.d.ts.map +1 -0
- package/dist/esm/icons/copy-paste.js +19 -0
- package/dist/esm/icons/copy-paste.js.map +1 -0
- package/dist/esm/icons/copy.d.ts +8 -0
- package/dist/esm/icons/copy.d.ts.map +1 -0
- package/dist/esm/icons/copy.js +19 -0
- package/dist/esm/icons/copy.js.map +1 -0
- package/dist/esm/icons/delivery-box.d.ts +8 -0
- package/dist/esm/icons/delivery-box.d.ts.map +1 -0
- package/dist/esm/icons/delivery-box.js +19 -0
- package/dist/esm/icons/delivery-box.js.map +1 -0
- package/dist/esm/icons/delivery-plane.d.ts +8 -0
- package/dist/esm/icons/delivery-plane.d.ts.map +1 -0
- package/dist/esm/icons/delivery-plane.js +19 -0
- package/dist/esm/icons/delivery-plane.js.map +1 -0
- package/dist/esm/icons/delivery-truck-fill.d.ts +8 -0
- package/dist/esm/icons/delivery-truck-fill.d.ts.map +1 -0
- package/dist/esm/icons/delivery-truck-fill.js +19 -0
- package/dist/esm/icons/delivery-truck-fill.js.map +1 -0
- package/dist/esm/icons/delivery-truck.d.ts +8 -0
- package/dist/esm/icons/delivery-truck.d.ts.map +1 -0
- package/dist/esm/icons/delivery-truck.js +19 -0
- package/dist/esm/icons/delivery-truck.js.map +1 -0
- package/dist/esm/icons/download.d.ts +8 -0
- package/dist/esm/icons/download.d.ts.map +1 -0
- package/dist/esm/icons/download.js +19 -0
- package/dist/esm/icons/download.js.map +1 -0
- package/dist/esm/icons/email-open.d.ts +8 -0
- package/dist/esm/icons/email-open.d.ts.map +1 -0
- package/dist/esm/icons/email-open.js +19 -0
- package/dist/esm/icons/email-open.js.map +1 -0
- package/dist/esm/icons/email.d.ts +8 -0
- package/dist/esm/icons/email.d.ts.map +1 -0
- package/dist/esm/icons/email.js +19 -0
- package/dist/esm/icons/email.js.map +1 -0
- package/dist/esm/icons/file-finances.d.ts +8 -0
- package/dist/esm/icons/file-finances.d.ts.map +1 -0
- package/dist/esm/icons/file-finances.js +19 -0
- package/dist/esm/icons/file-finances.js.map +1 -0
- package/dist/esm/icons/home.d.ts +8 -0
- package/dist/esm/icons/home.d.ts.map +1 -0
- package/dist/esm/icons/home.js +19 -0
- package/dist/esm/icons/home.js.map +1 -0
- package/dist/esm/icons/image-fill.d.ts +8 -0
- package/dist/esm/icons/image-fill.d.ts.map +1 -0
- package/dist/esm/icons/image-fill.js +19 -0
- package/dist/esm/icons/image-fill.js.map +1 -0
- package/dist/esm/icons/image.d.ts +8 -0
- package/dist/esm/icons/image.d.ts.map +1 -0
- package/dist/esm/icons/image.js +19 -0
- package/dist/esm/icons/image.js.map +1 -0
- package/dist/esm/icons/index.d.ts +127 -15
- package/dist/esm/icons/index.d.ts.map +1 -1
- package/dist/esm/icons/index.js +127 -15
- package/dist/esm/icons/index.js.map +1 -1
- package/dist/esm/icons/info-circle-fill.js +1 -1
- package/dist/esm/icons/info-circle-fill.js.map +1 -1
- package/dist/esm/icons/info-circle.d.ts +8 -0
- package/dist/esm/icons/info-circle.d.ts.map +1 -0
- package/dist/esm/icons/{unstable-info-circle.js → info-circle.js} +6 -6
- package/dist/esm/icons/info-circle.js.map +1 -0
- package/dist/esm/icons/keyboard.d.ts +8 -0
- package/dist/esm/icons/keyboard.d.ts.map +1 -0
- package/dist/esm/icons/keyboard.js +19 -0
- package/dist/esm/icons/keyboard.js.map +1 -0
- package/dist/esm/icons/layers.d.ts +8 -0
- package/dist/esm/icons/layers.d.ts.map +1 -0
- package/dist/esm/icons/layers.js +19 -0
- package/dist/esm/icons/layers.js.map +1 -0
- package/dist/esm/icons/link.d.ts +8 -0
- package/dist/esm/icons/link.d.ts.map +1 -0
- package/dist/esm/icons/link.js +19 -0
- package/dist/esm/icons/link.js.map +1 -0
- package/dist/esm/icons/list-bullets.d.ts +8 -0
- package/dist/esm/icons/list-bullets.d.ts.map +1 -0
- package/dist/esm/icons/list-bullets.js +19 -0
- package/dist/esm/icons/list-bullets.js.map +1 -0
- package/dist/esm/icons/list-numbers.d.ts +8 -0
- package/dist/esm/icons/list-numbers.d.ts.map +1 -0
- package/dist/esm/icons/list-numbers.js +19 -0
- package/dist/esm/icons/list-numbers.js.map +1 -0
- package/dist/esm/icons/lock-fill.d.ts +8 -0
- package/dist/esm/icons/lock-fill.d.ts.map +1 -0
- package/dist/esm/icons/lock-fill.js +19 -0
- package/dist/esm/icons/lock-fill.js.map +1 -0
- package/dist/esm/icons/lock-open-fill.d.ts +8 -0
- package/dist/esm/icons/lock-open-fill.d.ts.map +1 -0
- package/dist/esm/icons/lock-open-fill.js +19 -0
- package/dist/esm/icons/lock-open-fill.js.map +1 -0
- package/dist/esm/icons/lock-open.d.ts +8 -0
- package/dist/esm/icons/lock-open.d.ts.map +1 -0
- package/dist/esm/icons/lock-open.js +19 -0
- package/dist/esm/icons/lock-open.js.map +1 -0
- package/dist/esm/icons/lock.d.ts +8 -0
- package/dist/esm/icons/lock.d.ts.map +1 -0
- package/dist/esm/icons/lock.js +19 -0
- package/dist/esm/icons/lock.js.map +1 -0
- package/dist/esm/icons/menu-bold.d.ts +8 -0
- package/dist/esm/icons/menu-bold.d.ts.map +1 -0
- package/dist/esm/icons/menu-bold.js +19 -0
- package/dist/esm/icons/menu-bold.js.map +1 -0
- package/dist/esm/icons/menu-grid.d.ts +8 -0
- package/dist/esm/icons/menu-grid.d.ts.map +1 -0
- package/dist/esm/icons/menu-grid.js +19 -0
- package/dist/esm/icons/menu-grid.js.map +1 -0
- package/dist/esm/icons/menu-more-horizontal.d.ts +8 -0
- package/dist/esm/icons/menu-more-horizontal.d.ts.map +1 -0
- package/dist/esm/icons/menu-more-horizontal.js +19 -0
- package/dist/esm/icons/menu-more-horizontal.js.map +1 -0
- package/dist/esm/icons/menu-more-vertical.d.ts +8 -0
- package/dist/esm/icons/menu-more-vertical.d.ts.map +1 -0
- package/dist/esm/icons/menu-more-vertical.js +19 -0
- package/dist/esm/icons/menu-more-vertical.js.map +1 -0
- package/dist/esm/icons/menu.d.ts +8 -0
- package/dist/esm/icons/menu.d.ts.map +1 -0
- package/dist/esm/icons/menu.js +19 -0
- package/dist/esm/icons/menu.js.map +1 -0
- package/dist/esm/icons/pencil-fill.d.ts +8 -0
- package/dist/esm/icons/pencil-fill.d.ts.map +1 -0
- package/dist/esm/icons/pencil-fill.js +19 -0
- package/dist/esm/icons/pencil-fill.js.map +1 -0
- package/dist/esm/icons/pencil.d.ts +8 -0
- package/dist/esm/icons/pencil.d.ts.map +1 -0
- package/dist/esm/icons/pencil.js +19 -0
- package/dist/esm/icons/pencil.js.map +1 -0
- package/dist/esm/icons/placeholder.d.ts +8 -0
- package/dist/esm/icons/placeholder.d.ts.map +1 -0
- package/dist/esm/icons/{error-circle-fill.js → placeholder.js} +6 -6
- package/dist/esm/icons/placeholder.js.map +1 -0
- package/dist/esm/icons/question-circle-fill.d.ts +8 -0
- package/dist/esm/icons/question-circle-fill.d.ts.map +1 -0
- package/dist/esm/icons/question-circle-fill.js +19 -0
- package/dist/esm/icons/question-circle-fill.js.map +1 -0
- package/dist/esm/icons/question-circle.d.ts +8 -0
- package/dist/esm/icons/question-circle.d.ts.map +1 -0
- package/dist/esm/icons/question-circle.js +19 -0
- package/dist/esm/icons/question-circle.js.map +1 -0
- package/dist/esm/icons/rating-star-bold-fill.d.ts +8 -0
- package/dist/esm/icons/rating-star-bold-fill.d.ts.map +1 -0
- package/dist/esm/icons/rating-star-bold-fill.js +19 -0
- package/dist/esm/icons/rating-star-bold-fill.js.map +1 -0
- package/dist/esm/icons/rating-star-bold.d.ts +8 -0
- package/dist/esm/icons/rating-star-bold.d.ts.map +1 -0
- package/dist/esm/icons/rating-star-bold.js +19 -0
- package/dist/esm/icons/rating-star-bold.js.map +1 -0
- package/dist/esm/icons/rating-star-fill.d.ts +8 -0
- package/dist/esm/icons/rating-star-fill.d.ts.map +1 -0
- package/dist/esm/icons/rating-star-fill.js +19 -0
- package/dist/esm/icons/rating-star-fill.js.map +1 -0
- package/dist/esm/icons/save.d.ts +8 -0
- package/dist/esm/icons/save.d.ts.map +1 -0
- package/dist/esm/icons/save.js +19 -0
- package/dist/esm/icons/save.js.map +1 -0
- package/dist/esm/icons/search-bold.d.ts +8 -0
- package/dist/esm/icons/search-bold.d.ts.map +1 -0
- package/dist/esm/icons/search-bold.js +19 -0
- package/dist/esm/icons/search-bold.js.map +1 -0
- package/dist/esm/icons/search.d.ts +8 -0
- package/dist/esm/icons/search.d.ts.map +1 -0
- package/dist/esm/icons/search.js +19 -0
- package/dist/esm/icons/search.js.map +1 -0
- package/dist/esm/icons/settings-cog-fill.d.ts +8 -0
- package/dist/esm/icons/settings-cog-fill.d.ts.map +1 -0
- package/dist/esm/icons/settings-cog-fill.js +19 -0
- package/dist/esm/icons/settings-cog-fill.js.map +1 -0
- package/dist/esm/icons/settings-cog.d.ts +8 -0
- package/dist/esm/icons/settings-cog.d.ts.map +1 -0
- package/dist/esm/icons/settings-cog.js +19 -0
- package/dist/esm/icons/settings-cog.js.map +1 -0
- package/dist/esm/icons/settings-slider.d.ts +8 -0
- package/dist/esm/icons/settings-slider.d.ts.map +1 -0
- package/dist/esm/icons/settings-slider.js +19 -0
- package/dist/esm/icons/settings-slider.js.map +1 -0
- package/dist/esm/icons/shirt-add.d.ts +8 -0
- package/dist/esm/icons/shirt-add.d.ts.map +1 -0
- package/dist/esm/icons/shirt-add.js +19 -0
- package/dist/esm/icons/shirt-add.js.map +1 -0
- package/dist/esm/icons/sort-ascending-alt.d.ts +8 -0
- package/dist/esm/icons/sort-ascending-alt.d.ts.map +1 -0
- package/dist/esm/icons/sort-ascending-alt.js +19 -0
- package/dist/esm/icons/sort-ascending-alt.js.map +1 -0
- package/dist/esm/icons/sort-ascending.d.ts +8 -0
- package/dist/esm/icons/sort-ascending.d.ts.map +1 -0
- package/dist/esm/icons/sort-ascending.js +19 -0
- package/dist/esm/icons/sort-ascending.js.map +1 -0
- package/dist/esm/icons/sort-descending-alt.d.ts +8 -0
- package/dist/esm/icons/sort-descending-alt.d.ts.map +1 -0
- package/dist/esm/icons/sort-descending-alt.js +19 -0
- package/dist/esm/icons/sort-descending-alt.js.map +1 -0
- package/dist/esm/icons/sort-descending.d.ts +8 -0
- package/dist/esm/icons/sort-descending.d.ts.map +1 -0
- package/dist/esm/icons/sort-descending.js +19 -0
- package/dist/esm/icons/{checkmark-small.js.map → sort-descending.js.map} +1 -1
- package/dist/esm/icons/sort-unsorted.d.ts +8 -0
- package/dist/esm/icons/sort-unsorted.d.ts.map +1 -0
- package/dist/esm/icons/sort-unsorted.js +19 -0
- package/dist/esm/icons/sort-unsorted.js.map +1 -0
- package/dist/esm/icons/subtract-bold.d.ts +8 -0
- package/dist/esm/icons/subtract-bold.d.ts.map +1 -0
- package/dist/esm/icons/subtract-bold.js +19 -0
- package/dist/esm/icons/subtract-bold.js.map +1 -0
- package/dist/esm/icons/subtract.d.ts +8 -0
- package/dist/esm/icons/subtract.d.ts.map +1 -0
- package/dist/esm/icons/subtract.js +19 -0
- package/dist/esm/icons/subtract.js.map +1 -0
- package/dist/esm/icons/text-alignment-center.d.ts +8 -0
- package/dist/esm/icons/text-alignment-center.d.ts.map +1 -0
- package/dist/esm/icons/{checkmark-circle-fill.js → text-alignment-center.js} +6 -6
- package/dist/esm/icons/{checkmark-circle-fill.js.map → text-alignment-center.js.map} +1 -1
- package/dist/esm/icons/text-alignment-justify.d.ts +8 -0
- package/dist/esm/icons/text-alignment-justify.d.ts.map +1 -0
- package/dist/esm/icons/text-alignment-justify.js +19 -0
- package/dist/esm/icons/text-alignment-justify.js.map +1 -0
- package/dist/esm/icons/text-alignment-left.d.ts +8 -0
- package/dist/esm/icons/text-alignment-left.d.ts.map +1 -0
- package/dist/esm/icons/text-alignment-left.js +19 -0
- package/dist/esm/icons/text-alignment-left.js.map +1 -0
- package/dist/esm/icons/text-alignment-right.d.ts +8 -0
- package/dist/esm/icons/text-alignment-right.d.ts.map +1 -0
- package/dist/esm/icons/text-alignment-right.js +19 -0
- package/dist/esm/icons/text-alignment-right.js.map +1 -0
- package/dist/esm/icons/text-bold.d.ts +8 -0
- package/dist/esm/icons/text-bold.d.ts.map +1 -0
- package/dist/esm/icons/text-bold.js +19 -0
- package/dist/esm/icons/text-bold.js.map +1 -0
- package/dist/esm/icons/text-italic.d.ts +8 -0
- package/dist/esm/icons/text-italic.d.ts.map +1 -0
- package/dist/esm/icons/{minus-small.js → text-italic.js} +6 -6
- package/dist/esm/icons/text-italic.js.map +1 -0
- package/dist/esm/icons/text-strikethrough.d.ts +8 -0
- package/dist/esm/icons/text-strikethrough.d.ts.map +1 -0
- package/dist/esm/icons/text-strikethrough.js +19 -0
- package/dist/esm/icons/text-strikethrough.js.map +1 -0
- package/dist/esm/icons/text-underline.d.ts +8 -0
- package/dist/esm/icons/text-underline.d.ts.map +1 -0
- package/dist/esm/icons/text-underline.js +19 -0
- package/dist/esm/icons/text-underline.js.map +1 -0
- package/dist/esm/icons/trash-fill.d.ts +8 -0
- package/dist/esm/icons/trash-fill.d.ts.map +1 -0
- package/dist/esm/icons/trash-fill.js +19 -0
- package/dist/esm/icons/trash-fill.js.map +1 -0
- package/dist/esm/icons/trash.d.ts +8 -0
- package/dist/esm/icons/trash.d.ts.map +1 -0
- package/dist/esm/icons/trash.js +19 -0
- package/dist/esm/icons/trash.js.map +1 -0
- package/dist/esm/icons/view-off.d.ts +8 -0
- package/dist/esm/icons/view-off.d.ts.map +1 -0
- package/dist/esm/icons/view-off.js +19 -0
- package/dist/esm/icons/view-off.js.map +1 -0
- package/dist/esm/icons/view.d.ts +8 -0
- package/dist/esm/icons/view.d.ts.map +1 -0
- package/dist/esm/icons/view.js +19 -0
- package/dist/esm/icons/view.js.map +1 -0
- package/dist/esm/icons/warning-circle-fill.js +1 -1
- package/dist/esm/icons/warning-circle-fill.js.map +1 -1
- package/dist/esm/icons/warning-fill.d.ts +8 -0
- package/dist/esm/icons/warning-fill.d.ts.map +1 -0
- package/dist/esm/icons/warning-fill.js +19 -0
- package/dist/esm/icons/warning-fill.js.map +1 -0
- package/dist/esm/icons/warning.d.ts +8 -0
- package/dist/esm/icons/warning.d.ts.map +1 -0
- package/dist/esm/icons/warning.js +19 -0
- package/dist/esm/icons/warning.js.map +1 -0
- package/dist/esm/icons/zoom-in.d.ts +8 -0
- package/dist/esm/icons/zoom-in.d.ts.map +1 -0
- package/dist/esm/icons/zoom-in.js +19 -0
- package/dist/esm/icons/zoom-in.js.map +1 -0
- package/dist/esm/icons/zoom-out.d.ts +8 -0
- package/dist/esm/icons/zoom-out.d.ts.map +1 -0
- package/dist/esm/icons/zoom-out.js +19 -0
- package/dist/esm/icons/zoom-out.js.map +1 -0
- package/dist/esm/index.d.ts +21 -13
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +18 -12
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/style/types.d.ts +1 -0
- 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-server-effect-event.d.ts +3 -0
- package/dist/esm/utils/use-server-effect-event.d.ts.map +1 -0
- package/dist/esm/utils/use-server-effect-event.js +16 -0
- package/dist/esm/utils/use-server-effect-event.js.map +1 -0
- package/dist/esm/utils/use-server-layout-effect.d.ts +4 -0
- package/dist/esm/utils/use-server-layout-effect.d.ts.map +1 -0
- package/dist/esm/utils/use-server-layout-effect.js +4 -0
- package/dist/esm/utils/use-server-layout-effect.js.map +1 -0
- package/dist-styles/core.css +1 -0
- package/dist-styles/normalize.css +2 -0
- package/dist-styles/styles.css +1 -1
- package/package.json +46 -13
- package/dist/commonjs/components/table/table-row.d.ts.map +0 -1
- package/dist/commonjs/components/table/table-row.js.map +0 -1
- package/dist/commonjs/icons/accounting-document.d.ts.map +0 -1
- package/dist/commonjs/icons/accounting-document.js +0 -24
- package/dist/commonjs/icons/accounting-document.js.map +0 -1
- package/dist/commonjs/icons/alert-triangle.d.ts.map +0 -1
- package/dist/commonjs/icons/alert-triangle.js.map +0 -1
- package/dist/commonjs/icons/checkmark-circle-fill.d.ts.map +0 -1
- package/dist/commonjs/icons/checkmark-circle.d.ts.map +0 -1
- package/dist/commonjs/icons/checkmark-circle.js.map +0 -1
- package/dist/commonjs/icons/checkmark-small.d.ts.map +0 -1
- package/dist/commonjs/icons/checkmark.d.ts.map +0 -1
- package/dist/commonjs/icons/checkmark.js.map +0 -1
- package/dist/commonjs/icons/chevron-down-fill.d.ts +0 -8
- package/dist/commonjs/icons/chevron-down-fill.d.ts.map +0 -1
- package/dist/commonjs/icons/error-circle-fill.d.ts +0 -8
- package/dist/commonjs/icons/error-circle-fill.d.ts.map +0 -1
- package/dist/commonjs/icons/error-circle-fill.js.map +0 -1
- package/dist/commonjs/icons/minus-small.d.ts.map +0 -1
- package/dist/commonjs/icons/minus-small.js.map +0 -1
- package/dist/commonjs/icons/minus.d.ts.map +0 -1
- package/dist/commonjs/icons/minus.js.map +0 -1
- package/dist/commonjs/icons/unstable-chevron-left-fill.d.ts +0 -8
- package/dist/commonjs/icons/unstable-chevron-left-fill.d.ts.map +0 -1
- package/dist/commonjs/icons/unstable-chevron-left-fill.js +0 -24
- package/dist/commonjs/icons/unstable-chevron-left-fill.js.map +0 -1
- package/dist/commonjs/icons/unstable-chevron-right-fill.d.ts +0 -8
- package/dist/commonjs/icons/unstable-chevron-right-fill.d.ts.map +0 -1
- package/dist/commonjs/icons/unstable-chevron-right-fill.js +0 -24
- package/dist/commonjs/icons/unstable-chevron-right-fill.js.map +0 -1
- package/dist/commonjs/icons/unstable-close.d.ts +0 -8
- package/dist/commonjs/icons/unstable-close.d.ts.map +0 -1
- package/dist/commonjs/icons/unstable-close.js.map +0 -1
- package/dist/commonjs/icons/unstable-info-circle.d.ts +0 -8
- package/dist/commonjs/icons/unstable-info-circle.d.ts.map +0 -1
- package/dist/commonjs/icons/unstable-info-circle.js.map +0 -1
- package/dist/commonjs/icons/unstable-placeholder.d.ts +0 -8
- package/dist/commonjs/icons/unstable-placeholder.d.ts.map +0 -1
- package/dist/commonjs/icons/unstable-placeholder.js +0 -24
- package/dist/commonjs/icons/unstable-placeholder.js.map +0 -1
- package/dist/esm/components/table/table-row.d.ts.map +0 -1
- package/dist/esm/components/table/table-row.js +0 -11
- package/dist/esm/components/table/table-row.js.map +0 -1
- package/dist/esm/icons/accounting-document.d.ts +0 -8
- package/dist/esm/icons/accounting-document.d.ts.map +0 -1
- package/dist/esm/icons/accounting-document.js +0 -19
- package/dist/esm/icons/accounting-document.js.map +0 -1
- package/dist/esm/icons/alert-triangle.d.ts +0 -8
- package/dist/esm/icons/alert-triangle.d.ts.map +0 -1
- package/dist/esm/icons/alert-triangle.js +0 -19
- package/dist/esm/icons/alert-triangle.js.map +0 -1
- package/dist/esm/icons/checkmark-circle-fill.d.ts +0 -8
- package/dist/esm/icons/checkmark-circle-fill.d.ts.map +0 -1
- package/dist/esm/icons/checkmark-circle.d.ts +0 -8
- package/dist/esm/icons/checkmark-circle.d.ts.map +0 -1
- package/dist/esm/icons/checkmark-circle.js +0 -19
- package/dist/esm/icons/checkmark-circle.js.map +0 -1
- package/dist/esm/icons/checkmark-small.d.ts +0 -8
- package/dist/esm/icons/checkmark-small.d.ts.map +0 -1
- package/dist/esm/icons/checkmark.d.ts.map +0 -1
- package/dist/esm/icons/checkmark.js.map +0 -1
- package/dist/esm/icons/chevron-down-fill.d.ts +0 -8
- package/dist/esm/icons/chevron-down-fill.d.ts.map +0 -1
- package/dist/esm/icons/error-circle-fill.d.ts +0 -8
- package/dist/esm/icons/error-circle-fill.d.ts.map +0 -1
- package/dist/esm/icons/error-circle-fill.js.map +0 -1
- package/dist/esm/icons/minus-small.d.ts +0 -8
- package/dist/esm/icons/minus-small.d.ts.map +0 -1
- package/dist/esm/icons/minus-small.js.map +0 -1
- package/dist/esm/icons/minus.d.ts.map +0 -1
- package/dist/esm/icons/minus.js.map +0 -1
- package/dist/esm/icons/unstable-chevron-left-fill.d.ts +0 -8
- package/dist/esm/icons/unstable-chevron-left-fill.d.ts.map +0 -1
- package/dist/esm/icons/unstable-chevron-left-fill.js +0 -19
- package/dist/esm/icons/unstable-chevron-left-fill.js.map +0 -1
- package/dist/esm/icons/unstable-chevron-right-fill.d.ts +0 -8
- package/dist/esm/icons/unstable-chevron-right-fill.d.ts.map +0 -1
- package/dist/esm/icons/unstable-chevron-right-fill.js +0 -19
- package/dist/esm/icons/unstable-chevron-right-fill.js.map +0 -1
- package/dist/esm/icons/unstable-close.d.ts +0 -8
- package/dist/esm/icons/unstable-close.d.ts.map +0 -1
- package/dist/esm/icons/unstable-close.js +0 -19
- package/dist/esm/icons/unstable-close.js.map +0 -1
- package/dist/esm/icons/unstable-info-circle.d.ts +0 -8
- package/dist/esm/icons/unstable-info-circle.d.ts.map +0 -1
- package/dist/esm/icons/unstable-info-circle.js.map +0 -1
- package/dist/esm/icons/unstable-placeholder.d.ts +0 -8
- package/dist/esm/icons/unstable-placeholder.d.ts.map +0 -1
- package/dist/esm/icons/unstable-placeholder.js +0 -19
- package/dist/esm/icons/unstable-placeholder.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
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 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"]}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
2
|
export interface TableRowState {
|
|
3
3
|
rowKey: string;
|
|
4
|
+
isSelected?: boolean;
|
|
5
|
+
onSelectionToggle?: (value?: boolean) => void;
|
|
4
6
|
}
|
|
5
|
-
export declare function TableRowStateProvider({ children, rowKey }: {
|
|
7
|
+
export declare function TableRowStateProvider({ children, rowKey, isSelected, onSelectionToggle, }: {
|
|
6
8
|
children: ReactNode;
|
|
7
9
|
rowKey: string;
|
|
10
|
+
isSelected?: boolean;
|
|
11
|
+
onSelectionToggle?: (value?: boolean) => void;
|
|
8
12
|
}): import("react/jsx-runtime").JSX.Element;
|
|
9
13
|
export declare function useTableRowState(): TableRowState;
|
|
10
14
|
//# sourceMappingURL=row-state.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row-state.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/contexts/row-state.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"row-state.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/contexts/row-state.tsx"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAC;AAE3E,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/C;AAID,wBAAgB,qBAAqB,CAAC,EACpC,QAAQ,EACR,MAAM,EACN,UAAU,EACV,iBAAiB,GAClB,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/C,2CAaA;AAGD,wBAAgB,gBAAgB,IAAI,aAAa,CAOhD"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEffectEvent } from '@react-aria/utils';
|
|
2
3
|
import { createContext, useContext, useMemo } from 'react';
|
|
3
4
|
const TableRowStateContext = createContext(null);
|
|
4
|
-
export function TableRowStateProvider({ children, rowKey }) {
|
|
5
|
+
export function TableRowStateProvider({ children, rowKey, isSelected, onSelectionToggle, }) {
|
|
6
|
+
const onSelectionToggleMemoized = useEffectEvent(onSelectionToggle);
|
|
5
7
|
const tableRowState = useMemo(() => ({
|
|
6
8
|
rowKey,
|
|
7
|
-
|
|
9
|
+
isSelected,
|
|
10
|
+
onSelectionToggle: onSelectionToggleMemoized,
|
|
11
|
+
}), [rowKey, isSelected, onSelectionToggleMemoized]);
|
|
8
12
|
return _jsx(TableRowStateContext.Provider, { value: tableRowState, children: children });
|
|
9
13
|
}
|
|
10
14
|
// eslint-disable-next-line react-refresh/only-export-components
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row-state.js","sourceRoot":"","sources":["../../../../../src/components/table/contexts/row-state.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAkB,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"row-state.js","sourceRoot":"","sources":["../../../../../src/components/table/contexts/row-state.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAkB,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAQ3E,MAAM,oBAAoB,GAAG,aAAa,CAAuB,IAAI,CAAC,CAAC;AAEvE,MAAM,UAAU,qBAAqB,CAAC,EACpC,QAAQ,EACR,MAAM,EACN,UAAU,EACV,iBAAiB,GAMlB;IACC,MAAM,yBAAyB,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAEpE,MAAM,aAAa,GAAkB,OAAO,CAC1C,GAAG,EAAE,CAAC,CAAC;QACL,MAAM;QACN,UAAU;QACV,iBAAiB,EAAE,yBAAyB;KAC7C,CAAC,EACF,CAAC,MAAM,EAAE,UAAU,EAAE,yBAAyB,CAAC,CAChD,CAAC;IAEF,OAAO,KAAC,oBAAoB,CAAC,QAAQ,IAAC,KAAK,EAAE,aAAa,YAAG,QAAQ,GAAiC,CAAC;AACzG,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,gBAAgB;IAC9B,MAAM,aAAa,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACvD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC","sourcesContent":["import { useEffectEvent } from '@react-aria/utils';\nimport { createContext, type ReactNode, useContext, useMemo } from 'react';\n\nexport interface TableRowState {\n rowKey: string;\n isSelected?: boolean;\n onSelectionToggle?: (value?: boolean) => void;\n}\n\nconst TableRowStateContext = createContext<TableRowState | null>(null);\n\nexport function TableRowStateProvider({\n children,\n rowKey,\n isSelected,\n onSelectionToggle,\n}: {\n children: ReactNode;\n rowKey: string;\n isSelected?: boolean;\n onSelectionToggle?: (value?: boolean) => void;\n}) {\n const onSelectionToggleMemoized = useEffectEvent(onSelectionToggle);\n\n const tableRowState: TableRowState = useMemo(\n () => ({\n rowKey,\n isSelected,\n onSelectionToggle: onSelectionToggleMemoized,\n }),\n [rowKey, isSelected, onSelectionToggleMemoized],\n );\n\n return <TableRowStateContext.Provider value={tableRowState}>{children}</TableRowStateContext.Provider>;\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useTableRowState(): TableRowState {\n const tableRowState = useContext(TableRowStateContext);\n if (!tableRowState) {\n throw new Error('Cannot use table row state outside of a table row');\n }\n\n return tableRowState;\n}\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
/** Represents the type of row selection allowed within a table. */
|
|
3
|
+
export type RowSelectionMode = 'single' | 'multiple' | 'none';
|
|
4
|
+
export interface TableState {
|
|
5
|
+
rowSelectionMode: RowSelectionMode;
|
|
6
|
+
areAllRowsSelected?: boolean;
|
|
7
|
+
areSomeRowsSelected?: boolean;
|
|
8
|
+
onAllRowsSelectionToggle?: (value?: boolean) => void;
|
|
9
|
+
/** The selection state that will be applied to the next focused row. */
|
|
10
|
+
pendingRowSelectionState?: boolean;
|
|
11
|
+
setPendingRowSelectionState: (value: boolean | undefined) => void;
|
|
12
|
+
}
|
|
13
|
+
export declare function TableStateProvider({ children, rowSelectionMode, areAllRowsSelected, areSomeRowsSelected, onAllRowsSelectionToggle, }: {
|
|
14
|
+
children: ReactNode;
|
|
15
|
+
rowSelectionMode: RowSelectionMode;
|
|
16
|
+
areAllRowsSelected?: boolean;
|
|
17
|
+
areSomeRowsSelected?: boolean;
|
|
18
|
+
onAllRowsSelectionToggle?: (value?: boolean) => void;
|
|
19
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export declare function useTableState(): TableState;
|
|
21
|
+
//# sourceMappingURL=table-state.d.ts.map
|
|
@@ -0,0 +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;AAE7F,mEAAmE;AACnE,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;AAE9D,MAAM,WAAW,UAAU;IACzB,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,2CAkCA;AAGD,wBAAgB,aAAa,IAAI,UAAU,CAO1C"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEffectEvent } from '@react-aria/utils';
|
|
3
|
+
import { createContext, useContext, useMemo, useRef, useState } from 'react';
|
|
4
|
+
const TableStateContext = createContext(null);
|
|
5
|
+
export function TableStateProvider({ children, rowSelectionMode, areAllRowsSelected, areSomeRowsSelected, onAllRowsSelectionToggle, }) {
|
|
6
|
+
// When the pending selection state is updated, we want to trigger a re-render,
|
|
7
|
+
// but we also want immediate access to the new value.
|
|
8
|
+
// Hence why it is stored as both a ref and a state.
|
|
9
|
+
const pendingRowSelectionStateRef = useRef(undefined);
|
|
10
|
+
const [_pendingRowSelectionState, _setPendingRowSelectionState] = useState(undefined);
|
|
11
|
+
const onAllRowsSelectionToggleMemoized = useEffectEvent(onAllRowsSelectionToggle);
|
|
12
|
+
const tableState = useMemo(() => ({
|
|
13
|
+
rowSelectionMode,
|
|
14
|
+
areAllRowsSelected,
|
|
15
|
+
areSomeRowsSelected,
|
|
16
|
+
onAllRowsSelectionToggle: onAllRowsSelectionToggleMemoized,
|
|
17
|
+
get pendingRowSelectionState() {
|
|
18
|
+
return pendingRowSelectionStateRef.current;
|
|
19
|
+
},
|
|
20
|
+
setPendingRowSelectionState(pendingRowSelectionState) {
|
|
21
|
+
pendingRowSelectionStateRef.current = pendingRowSelectionState;
|
|
22
|
+
_setPendingRowSelectionState(pendingRowSelectionState);
|
|
23
|
+
},
|
|
24
|
+
}),
|
|
25
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
26
|
+
[
|
|
27
|
+
rowSelectionMode,
|
|
28
|
+
areAllRowsSelected,
|
|
29
|
+
areSomeRowsSelected,
|
|
30
|
+
onAllRowsSelectionToggleMemoized,
|
|
31
|
+
_pendingRowSelectionState,
|
|
32
|
+
]);
|
|
33
|
+
return _jsx(TableStateContext.Provider, { value: tableState, children: children });
|
|
34
|
+
}
|
|
35
|
+
// eslint-disable-next-line react-refresh/only-export-components
|
|
36
|
+
export function useTableState() {
|
|
37
|
+
const tableState = useContext(TableStateContext);
|
|
38
|
+
if (!tableState) {
|
|
39
|
+
throw new Error('Cannot use table state outside of a table');
|
|
40
|
+
}
|
|
41
|
+
return tableState;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=table-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-state.js","sourceRoot":"","sources":["../../../../../src/components/table/contexts/table-state.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAkB,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAe7F,MAAM,iBAAiB,GAAG,aAAa,CAAoB,IAAI,CAAC,CAAC;AAEjE,MAAM,UAAU,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,MAAM,CAAsB,SAAS,CAAC,CAAC;IAC3E,MAAM,CAAC,yBAAyB,EAAE,4BAA4B,CAAC,GAAG,QAAQ,CAAsB,SAAS,CAAC,CAAC;IAE3G,MAAM,gCAAgC,GAAG,cAAc,CAAC,wBAAwB,CAAC,CAAC;IAElF,MAAM,UAAU,GAAe,OAAO,CACpC,GAAG,EAAE,CAAC,CAAC;QACL,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,gBAAgB;QAChB,kBAAkB;QAClB,mBAAmB;QACnB,gCAAgC;QAChC,yBAAyB;KAC1B,CACF,CAAC;IAEF,OAAO,KAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,UAAU,YAAG,QAAQ,GAA8B,CAAC;AAChG,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,aAAa;IAC3B,MAAM,UAAU,GAAG,UAAU,CAAC,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 } from '@react-aria/utils';\nimport { createContext, type ReactNode, useContext, useMemo, useRef, useState } from 'react';\n\n/** Represents the type of row selection allowed within a table. */\nexport type RowSelectionMode = 'single' | 'multiple' | 'none';\n\nexport interface TableState {\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 onAllRowsSelectionToggleMemoized = useEffectEvent(onAllRowsSelectionToggle);\n\n const tableState: TableState = useMemo(\n () => ({\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 rowSelectionMode,\n areAllRowsSelected,\n areSomeRowsSelected,\n onAllRowsSelectionToggleMemoized,\n _pendingRowSelectionState,\n ],\n );\n\n return <TableStateContext.Provider value={tableState}>{children}</TableStateContext.Provider>;\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"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-selectable-row.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/hooks/use-selectable-row.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAIzD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;CACnD;AAED,wBAAgB,gBAAgB,IAAI,gBAAgB,CAoCnD"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { useTableRowState } from '../contexts/row-state.js';
|
|
2
|
+
import { useTableState } from '../contexts/table-state.js';
|
|
3
|
+
export function useSelectableRow() {
|
|
4
|
+
const { rowSelectionMode, setPendingRowSelectionState } = useTableState();
|
|
5
|
+
const { isSelected, onSelectionToggle } = useTableRowState();
|
|
6
|
+
// Handles row selection using a keyboard.
|
|
7
|
+
const onKeyDownCapture = (e) => {
|
|
8
|
+
// Ignore keyboard events bubbling through portals
|
|
9
|
+
if (!e.currentTarget.contains(e.target)) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
if (e.key === ' ' && e.shiftKey) {
|
|
13
|
+
// Toggle selection of current row
|
|
14
|
+
onSelectionToggle?.();
|
|
15
|
+
}
|
|
16
|
+
else if ((e.key === 'ArrowUp' || e.key === 'ArrowDown') && e.shiftKey && rowSelectionMode === 'multiple') {
|
|
17
|
+
// Extend selection up/down by one row
|
|
18
|
+
// We're not going to stop propagation so that the arrow navigation handler runs as usual,
|
|
19
|
+
// and we'll set a special state variable so that the selection state gets updated when the new row receives focus.
|
|
20
|
+
setPendingRowSelectionState(isSelected);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
// if we didn't handle anything, return early so we don't stop propagation and preventDefault
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
e.preventDefault();
|
|
28
|
+
e.stopPropagation();
|
|
29
|
+
};
|
|
30
|
+
const rowProps = {
|
|
31
|
+
onKeyDownCapture: rowSelectionMode !== 'none' ? onKeyDownCapture : undefined,
|
|
32
|
+
};
|
|
33
|
+
return {
|
|
34
|
+
rowProps,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=use-selectable-row.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-selectable-row.js","sourceRoot":"","sources":["../../../../../src/components/table/hooks/use-selectable-row.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAM3D,MAAM,UAAU,gBAAgB;IAC9B,MAAM,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,GAAG,aAAa,EAAE,CAAC;IAC1E,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAE7D,0CAA0C;IAC1C,MAAM,gBAAgB,GAAyB,CAAC,CAAC,EAAE,EAAE;QACnD,kDAAkD;QAClD,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAiB,CAAC,EAAE,CAAC;YACnD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YAChC,kCAAkC;YAClC,iBAAiB,EAAE,EAAE,CAAC;QACxB,CAAC;aAAM,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,gBAAgB,KAAK,UAAU,EAAE,CAAC;YAC3G,sCAAsC;YACtC,0FAA0F;YAC1F,mHAAmH;YACnH,2BAA2B,CAAC,UAAU,CAAC,CAAC;YACxC,OAAO;QACT,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,QAAQ,GAA4C;QACxD,gBAAgB,EAAE,gBAAgB,KAAK,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS;KAC7E,CAAC;IAEF,OAAO;QACL,QAAQ;KACT,CAAC;AACJ,CAAC","sourcesContent":["import type { KeyboardEventHandler } from 'react';\nimport type { NativeElementProps } from '../../types.js';\nimport { useTableRowState } from '../contexts/row-state.js';\nimport { useTableState } from '../contexts/table-state.js';\n\nexport interface UseSelectableRow {\n rowProps: NativeElementProps<HTMLTableRowElement>;\n}\n\nexport function useSelectableRow(): UseSelectableRow {\n const { rowSelectionMode, setPendingRowSelectionState } = useTableState();\n const { isSelected, onSelectionToggle } = useTableRowState();\n\n // Handles row selection using a keyboard.\n const onKeyDownCapture: KeyboardEventHandler = (e) => {\n // Ignore keyboard events bubbling through portals\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n if (e.key === ' ' && e.shiftKey) {\n // Toggle selection of current row\n onSelectionToggle?.();\n } else if ((e.key === 'ArrowUp' || e.key === 'ArrowDown') && e.shiftKey && rowSelectionMode === 'multiple') {\n // Extend selection up/down by one row\n // We're not going to stop propagation so that the arrow navigation handler runs as usual,\n // and we'll set a special state variable so that the selection state gets updated when the new row receives focus.\n setPendingRowSelectionState(isSelected);\n return;\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 rowProps: NativeElementProps<HTMLTableRowElement> = {\n onKeyDownCapture: rowSelectionMode !== 'none' ? onKeyDownCapture : undefined,\n };\n\n return {\n rowProps,\n };\n}\n"]}
|
|
@@ -3,5 +3,5 @@ import type { NativeElementProps } from '../../types.js';
|
|
|
3
3
|
export interface UseTableCell {
|
|
4
4
|
cellProps: NativeElementProps<HTMLTableCellElement>;
|
|
5
5
|
}
|
|
6
|
-
export declare function useTableCell(ref: RefObject<HTMLTableCellElement>, rowKey: string, columnKey: string): UseTableCell;
|
|
6
|
+
export declare function useTableCell(ref: RefObject<HTMLTableCellElement | null>, rowKey: string, columnKey: string): UseTableCell;
|
|
7
7
|
//# sourceMappingURL=use-table-cell.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-table-cell.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/hooks/use-table-cell.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"use-table-cell.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/hooks/use-table-cell.ts"],"names":[],"mappings":"AAGA,OAAO,EAAqD,KAAK,SAAS,EAAa,MAAM,OAAO,CAAC;AACrG,OAAO,KAAK,EAAoB,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAM3E,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;CACrD;AAED,wBAAgB,YAAY,CAC1B,GAAG,EAAE,SAAS,CAAC,oBAAoB,GAAG,IAAI,CAAC,EAC3C,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,YAAY,CAsJd"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { getFocusableTreeWalker, useFocusRing } from '@react-aria/focus';
|
|
2
2
|
import { isFocusVisible } from '@react-aria/interactions';
|
|
3
|
-
import { mergeProps } from '@react-aria/utils';
|
|
4
|
-
import {
|
|
3
|
+
import { mergeProps, useEffectEvent, useLayoutEffect } from '@react-aria/utils';
|
|
4
|
+
import { useEffect } from 'react';
|
|
5
5
|
import { useTableFocus } from '../contexts/focus.js';
|
|
6
|
+
import { useTableRowState } from '../contexts/row-state.js';
|
|
7
|
+
import { useTableState } from '../contexts/table-state.js';
|
|
6
8
|
import { focusTableChild } from '../utils/focus-table-child.js';
|
|
7
9
|
export function useTableCell(ref, rowKey, columnKey) {
|
|
8
10
|
const tableFocus = useTableFocus();
|
|
11
|
+
const { pendingRowSelectionState, setPendingRowSelectionState } = useTableState();
|
|
12
|
+
const { onSelectionToggle } = useTableRowState();
|
|
9
13
|
const isTabbable = rowKey === tableFocus.focusedRowKey && columnKey === tableFocus.focusedColumnKey;
|
|
10
14
|
// Handles focusing the cell.
|
|
11
15
|
// If there is a focusable child, it is focused, otherwise the cell itself is focused.
|
|
@@ -13,6 +17,12 @@ export function useTableCell(ref, rowKey, columnKey) {
|
|
|
13
17
|
if (!ref.current) {
|
|
14
18
|
return;
|
|
15
19
|
}
|
|
20
|
+
// If there's a pending selection state, apply it to this cell's row.
|
|
21
|
+
// If this cell is a header cell, `onSelectionToggle` will be undefined, but we still want to clear the pending selection state.
|
|
22
|
+
if (pendingRowSelectionState !== undefined) {
|
|
23
|
+
onSelectionToggle?.(pendingRowSelectionState);
|
|
24
|
+
setPendingRowSelectionState(undefined);
|
|
25
|
+
}
|
|
16
26
|
// If focus is already on a focusable child within the cell, early return so we don't shift focus
|
|
17
27
|
if (ref.current.contains(document.activeElement) && ref.current !== document.activeElement) {
|
|
18
28
|
return;
|
|
@@ -39,28 +49,37 @@ export function useTableCell(ref, rowKey, columnKey) {
|
|
|
39
49
|
}
|
|
40
50
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
41
51
|
}, [ref, isTabbable]);
|
|
52
|
+
const resetIfFocused = useEffectEvent(() => {
|
|
53
|
+
if (isTabbable) {
|
|
54
|
+
tableFocus.setFocus('', '');
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
// Reset table focus when the focused cell unmounts
|
|
58
|
+
useEffect(() => () => {
|
|
59
|
+
resetIfFocused();
|
|
60
|
+
}, [resetIfFocused]);
|
|
42
61
|
const onFocus = (e) => {
|
|
43
62
|
// Ignore focus events bubbling through portals
|
|
44
63
|
if (!e.currentTarget.contains(e.target)) {
|
|
45
64
|
return;
|
|
46
65
|
}
|
|
47
|
-
// If cell is already focused, return early
|
|
48
|
-
if
|
|
66
|
+
// If cell is already focused, return early.
|
|
67
|
+
// However, if focus happens as a result of a press, we need to re-run the child-focusing logic,
|
|
68
|
+
// otherwise `useFocusRing` will force the cell itself to become focused.
|
|
69
|
+
if (e.currentTarget.contains(e.relatedTarget) && isFocusVisible()) {
|
|
49
70
|
return;
|
|
50
71
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
tableFocus.setFocus(rowKey, columnKey);
|
|
61
|
-
}
|
|
72
|
+
// There are 3 scenarios for why a cell might receive focus:
|
|
73
|
+
// - focus happens through a press, we need to update table focus state to the current cell
|
|
74
|
+
// - focus happens through arrow key navigation within the table,
|
|
75
|
+
// we do nothing as table focus state would have already been updated earlier
|
|
76
|
+
// - focus happens through tabbing into the table from outside,
|
|
77
|
+
// we do nothing because we want to restore focus to the previously focused cell,
|
|
78
|
+
// and overriding table focus state would make that impossible
|
|
79
|
+
if (!isFocusVisible()) {
|
|
80
|
+
tableFocus.setFocus(rowKey, columnKey);
|
|
62
81
|
}
|
|
63
|
-
|
|
82
|
+
if (e.target === ref.current) {
|
|
64
83
|
// If the cell itself receives focus, wait a frame so that focus finishes propagating
|
|
65
84
|
// up to the tree, and move focus to a focusable child if possible.
|
|
66
85
|
requestAnimationFrame(() => {
|
|
@@ -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 } from '@react-aria/utils';\nimport { type KeyboardEventHandler, useLayoutEffect, type FocusEventHandler, type RefObject } from 'react';\nimport type { FocusableElement, NativeElementProps } from '../../types.js';\nimport { useTableFocus } from '../contexts/focus.js';\nimport { focusTableChild } from '../utils/focus-table-child.js';\n\nexport interface UseTableCell {\n cellProps: NativeElementProps<HTMLTableCellElement>;\n}\n\nexport function useTableCell(ref: RefObject<HTMLTableCellElement>, rowKey: string, columnKey: string): UseTableCell {\n const tableFocus = useTableFocus();\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 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 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 if (e.currentTarget.contains(e.relatedTarget)) {\n return;\n }\n\n if (e.target !== ref.current) {\n // If a child element of the cell receives focus, there are 3 scenarios:\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 } else {\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":"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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"]}
|
|
@@ -3,5 +3,5 @@ import type { NativeElementProps } from '../../types.js';
|
|
|
3
3
|
export interface UseTable {
|
|
4
4
|
tableProps: NativeElementProps<HTMLTableElement>;
|
|
5
5
|
}
|
|
6
|
-
export declare function useTable(ref: RefObject<HTMLTableElement>): UseTable;
|
|
6
|
+
export declare function useTable(ref: RefObject<HTMLTableElement | null>): UseTable;
|
|
7
7
|
//# sourceMappingURL=use-table.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-table.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/hooks/use-table.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAqB,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,KAAK,EAAoB,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"use-table.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/hooks/use-table.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAqB,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,KAAK,EAAoB,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAK3E,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;CAClD;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,QAAQ,CAkK1E"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { getFocusableTreeWalker, useFocusable } from '@react-aria/focus';
|
|
2
2
|
import { getInteractionModality, useKeyboard } from '@react-aria/interactions';
|
|
3
|
-
import {
|
|
3
|
+
import { isCtrlKeyPressed, mergeProps } from '@react-aria/utils';
|
|
4
4
|
import { useTableFocus } from '../contexts/focus.js';
|
|
5
|
+
import { useTableState } from '../contexts/table-state.js';
|
|
5
6
|
import { focusTableChild } from '../utils/focus-table-child.js';
|
|
6
7
|
export function useTable(ref) {
|
|
7
8
|
const tableFocus = useTableFocus();
|
|
9
|
+
const { rowSelectionMode, onAllRowsSelectionToggle } = useTableState();
|
|
8
10
|
const restoreCellFocus = (e) => {
|
|
9
11
|
if (!tableFocus.focusedRowKey || !tableFocus.focusedColumnKey) {
|
|
10
12
|
// User hasn't interacted with the table yet.
|
|
@@ -61,14 +63,14 @@ export function useTable(ref) {
|
|
|
61
63
|
}
|
|
62
64
|
else if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
|
|
63
65
|
// Focus previous/next cell in the same column
|
|
64
|
-
const selector =
|
|
66
|
+
const selector = constructColumnSelector(e.currentTarget, tableFocus.focusedRowKey, tableFocus.focusedColumnKey);
|
|
65
67
|
const walker = getFocusableTreeWalker(e.currentTarget, { accept: (node) => node.matches(selector) });
|
|
66
68
|
walker.currentNode = focusedCellElement;
|
|
67
69
|
cellElementToFocus = e.key === 'ArrowUp' ? walker.previousNode() : walker.nextNode();
|
|
68
70
|
}
|
|
69
71
|
else if (e.key === 'PageUp' || e.key === 'PageDown') {
|
|
70
72
|
// Move focus up/down by 5 rows
|
|
71
|
-
const selector =
|
|
73
|
+
const selector = constructColumnSelector(e.currentTarget, tableFocus.focusedRowKey, tableFocus.focusedColumnKey);
|
|
72
74
|
const walker = getFocusableTreeWalker(e.currentTarget, { accept: (node) => node.matches(selector) });
|
|
73
75
|
walker.currentNode = focusedCellElement;
|
|
74
76
|
const advance = e.key === 'PageUp' ? walker.previousNode.bind(walker) : walker.nextNode.bind(walker);
|
|
@@ -99,6 +101,10 @@ export function useTable(ref) {
|
|
|
99
101
|
}
|
|
100
102
|
return;
|
|
101
103
|
}
|
|
104
|
+
else if (e.key === 'a' && isCtrlKeyPressed(e) && rowSelectionMode === 'multiple') {
|
|
105
|
+
// Select all rows
|
|
106
|
+
onAllRowsSelectionToggle?.(true);
|
|
107
|
+
}
|
|
102
108
|
else {
|
|
103
109
|
// if we didn't handle anything, return early so we don't preventDefault
|
|
104
110
|
return;
|
|
@@ -129,11 +135,19 @@ export function useTable(ref) {
|
|
|
129
135
|
tableProps: mergeProps(focusableProps, keyboardProps, customProps),
|
|
130
136
|
};
|
|
131
137
|
}
|
|
132
|
-
|
|
133
|
-
function
|
|
134
|
-
|
|
135
|
-
|
|
138
|
+
/** Constructs a DOM selector for cells in the same column, taking `colspan` into account. */
|
|
139
|
+
function constructColumnSelector(tableElement, rowKey, columnKey) {
|
|
140
|
+
const baseSelector = `[data-cell-column-key='${CSS.escape(columnKey)}']:not([data-cell-row-key='${CSS.escape(rowKey)}'])`;
|
|
141
|
+
const columnHeader = tableElement.querySelector(`th[data-cell-row-key='${CSS.escape(rowKey)}'][data-cell-column-key='${CSS.escape(columnKey)}']`);
|
|
142
|
+
const columnSelectors = [baseSelector];
|
|
143
|
+
let currentColumn = columnHeader?.previousElementSibling;
|
|
144
|
+
while (currentColumn) {
|
|
145
|
+
const { cellColumnKey } = currentColumn.dataset;
|
|
146
|
+
if (cellColumnKey) {
|
|
147
|
+
columnSelectors.push(`[data-cell-column-key='${CSS.escape(cellColumnKey)}'][colspan]:not([data-cell-row-key='${CSS.escape(rowKey)}'])`);
|
|
148
|
+
}
|
|
149
|
+
currentColumn = currentColumn.previousElementSibling;
|
|
136
150
|
}
|
|
137
|
-
return
|
|
151
|
+
return `:is(${columnSelectors.join(', ')})`;
|
|
138
152
|
}
|
|
139
153
|
//# sourceMappingURL=use-table.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-table.js","sourceRoot":"","sources":["../../../../../src/components/table/hooks/use-table.ts"],"names":[],"mappings":"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","sourcesContent":["import { getFocusableTreeWalker, useFocusable } from '@react-aria/focus';\nimport { getInteractionModality, useKeyboard } from '@react-aria/interactions';\nimport { isMac, mergeProps } from '@react-aria/utils';\nimport type { FocusEventHandler, RefObject } from 'react';\nimport type { FocusableElement, NativeElementProps } from '../../types.js';\nimport { type ChildFocusStrategy, useTableFocus } from '../contexts/focus.js';\nimport { focusTableChild } from '../utils/focus-table-child.js';\n\nexport interface UseTable {\n tableProps: NativeElementProps<HTMLTableElement>;\n}\n\nexport function useTable(ref: RefObject<HTMLTableElement>): UseTable {\n const tableFocus = useTableFocus();\n\n const restoreCellFocus: FocusEventHandler = (e) => {\n if (!tableFocus.focusedRowKey || !tableFocus.focusedColumnKey) {\n // User hasn't interacted with the table yet.\n // Focus the first or last cell, depending on which direction the user is tabbing from.\n const lastFocusedElement = e.relatedTarget as Element;\n const cellElements = e.currentTarget.querySelectorAll('[data-cell-row-key][data-cell-column-key]');\n let cellElementToFocus: Element | undefined;\n\n if (\n lastFocusedElement &&\n e.currentTarget.compareDocumentPosition(lastFocusedElement) & Node.DOCUMENT_POSITION_FOLLOWING\n ) {\n cellElementToFocus = cellElements[cellElements.length - 1];\n } else {\n cellElementToFocus = cellElements[0];\n }\n\n const { cellRowKey, cellColumnKey } = (cellElementToFocus as HTMLTableCellElement).dataset;\n\n // We know the keys are defined, because we queried the DOM for elements that have them\n tableFocus.setFocus(cellRowKey!, cellColumnKey!);\n } else {\n const element = e.currentTarget.querySelector(\n `[data-cell-row-key='${CSS.escape(tableFocus.focusedRowKey)}'][data-cell-column-key='${CSS.escape(tableFocus.focusedColumnKey)}']`,\n ) as HTMLTableCellElement;\n\n if (element) {\n // If focus is already within the cell, don't refocus\n if (!element.contains(document.activeElement)) {\n focusTableChild(element);\n }\n }\n }\n };\n\n const { focusableProps } = useFocusable(\n {\n onFocus: (e) => {\n // Ignore focus events bubbling through portals\n if (!e.currentTarget.contains(e.target)) {\n return;\n }\n\n restoreCellFocus(e);\n },\n },\n ref,\n );\n\n const { keyboardProps } = useKeyboard({\n onKeyDown: (e) => {\n // Ignore keyboard events bubbling through portals\n if (!e.currentTarget.contains(e.target)) {\n return;\n }\n\n const focusedCellElement = e.currentTarget.querySelector(\n `[data-cell-row-key='${CSS.escape(tableFocus.focusedRowKey)}'][data-cell-column-key='${CSS.escape(tableFocus.focusedColumnKey)}']`,\n ) as HTMLTableCellElement;\n\n let cellElementToFocus: Node | null = null;\n let newChildFocusStrategy: ChildFocusStrategy | undefined;\n\n if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n // Focus previous/next cell in the same row\n const selector = `[data-cell-row-key='${CSS.escape(tableFocus.focusedRowKey)}']:not([data-cell-column-key='${CSS.escape(tableFocus.focusedColumnKey)}'])`;\n const walker = getFocusableTreeWalker(e.currentTarget, { accept: (node) => node.matches(selector) });\n walker.currentNode = focusedCellElement;\n cellElementToFocus = e.key === 'ArrowLeft' ? walker.previousNode() : walker.nextNode();\n newChildFocusStrategy = e.key === 'ArrowLeft' ? 'last' : 'first';\n } else if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n // Focus previous/next cell in the same column\n const selector = `[data-cell-column-key='${CSS.escape(tableFocus.focusedColumnKey)}']:not([data-cell-row-key='${CSS.escape(tableFocus.focusedRowKey)}'])`;\n const walker = getFocusableTreeWalker(e.currentTarget, { accept: (node) => node.matches(selector) });\n walker.currentNode = focusedCellElement;\n cellElementToFocus = e.key === 'ArrowUp' ? walker.previousNode() : walker.nextNode();\n } else if (e.key === 'PageUp' || e.key === 'PageDown') {\n // Move focus up/down by 5 rows\n const selector = `[data-cell-column-key='${CSS.escape(tableFocus.focusedColumnKey)}']:not([data-cell-row-key='${CSS.escape(tableFocus.focusedRowKey)}'])`;\n const walker = getFocusableTreeWalker(e.currentTarget, { accept: (node) => node.matches(selector) });\n walker.currentNode = focusedCellElement;\n\n const advance = e.key === 'PageUp' ? walker.previousNode.bind(walker) : walker.nextNode.bind(walker);\n\n // `advance()` will do nothing if there's no appropriate node found, so it's safe to just call it 5 times\n for (let i = 0; i < 5; i++) {\n advance();\n }\n\n cellElementToFocus = walker.currentNode;\n } else if (e.key === 'Home' || e.key === 'End') {\n // If Ctrl/Cmd is pressed, move focus to the first/last cell of the table;\n // otherwise, move focus to the first/last cell of the current row\n const selector = '[data-cell-row-key][data-cell-column-key]';\n const walker = getFocusableTreeWalker(e.currentTarget, { accept: (node) => node.matches(selector) });\n walker.currentNode = isCtrlKeyPressed(e) ? e.currentTarget : focusedCellElement.parentElement!;\n cellElementToFocus = e.key === 'Home' ? walker.firstChild() : walker.lastChild();\n newChildFocusStrategy = e.key === 'Home' ? 'first' : 'last';\n } else if (e.key === 'Tab') {\n // Table is supposed to be a single Tab stop, but cells may contain elements that are tabbable (checkboxes, buttons, menus, etc.).\n // We don't control the rendering of these elements, so we can't override their tabIndex to prevent tabbing.\n // Instead, we detect when Tab key is pressed, and move focus manually to the guard element before/after the table,\n // so that the browser default behavior will apply starting from that element rather than the currently focused one.\n const tableElement = e.currentTarget as HTMLTableElement;\n const guardElement = e.shiftKey ? tableElement.previousElementSibling : tableElement.nextElementSibling;\n\n if (guardElement) {\n focusTableChild(guardElement as FocusableElement);\n }\n\n return;\n } else {\n // if we didn't handle anything, return early so we don't preventDefault\n return;\n }\n\n if (cellElementToFocus) {\n const { cellRowKey, cellColumnKey } = (cellElementToFocus as HTMLTableCellElement).dataset;\n\n // We know the keys are defined, because we queried the DOM for elements that have them\n tableFocus.setFocus(cellRowKey!, cellColumnKey!, newChildFocusStrategy);\n }\n\n e.preventDefault();\n },\n });\n\n const customProps: NativeElementProps<HTMLTableElement> = {\n role: 'grid',\n // If no cell is tabbable within the table, make the table itself tabbable,\n // otherwise the Tab key will just skip it\n tabIndex: tableFocus.focusedRowKey && tableFocus.focusedColumnKey ? -1 : 0,\n onFocusCapture: (e) => {\n // If we're navigating into the table with a keyboard, focus the last focused cell instead of the first tabbable element\n if (\n getInteractionModality() === 'keyboard' &&\n !e.currentTarget.contains(e.relatedTarget) &&\n e.currentTarget.contains(e.target)\n ) {\n restoreCellFocus(e);\n }\n },\n };\n\n return {\n tableProps: mergeProps(focusableProps, keyboardProps, customProps),\n };\n}\n\n// TODO: use `isCtrlKeyPressed` from `@react-aria/utils` after version upgrade\nfunction isCtrlKeyPressed(e: { ctrlKey: boolean; metaKey: boolean }): boolean {\n if (isMac()) {\n return e.metaKey;\n }\n\n return e.ctrlKey;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"use-table.js","sourceRoot":"","sources":["../../../../../src/components/table/hooks/use-table.ts"],"names":[],"mappings":"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","sourcesContent":["import { getFocusableTreeWalker, useFocusable } from '@react-aria/focus';\nimport { getInteractionModality, useKeyboard } from '@react-aria/interactions';\nimport { isCtrlKeyPressed, mergeProps } from '@react-aria/utils';\nimport type { FocusEventHandler, RefObject } from 'react';\nimport type { FocusableElement, NativeElementProps } from '../../types.js';\nimport { type ChildFocusStrategy, useTableFocus } from '../contexts/focus.js';\nimport { useTableState } from '../contexts/table-state.js';\nimport { focusTableChild } from '../utils/focus-table-child.js';\n\nexport interface UseTable {\n tableProps: NativeElementProps<HTMLTableElement>;\n}\n\nexport function useTable(ref: RefObject<HTMLTableElement | null>): UseTable {\n const tableFocus = useTableFocus();\n const { rowSelectionMode, onAllRowsSelectionToggle } = useTableState();\n\n const restoreCellFocus: FocusEventHandler = (e) => {\n if (!tableFocus.focusedRowKey || !tableFocus.focusedColumnKey) {\n // User hasn't interacted with the table yet.\n // Focus the first or last cell, depending on which direction the user is tabbing from.\n const lastFocusedElement = e.relatedTarget as Element;\n const cellElements = e.currentTarget.querySelectorAll('[data-cell-row-key][data-cell-column-key]');\n let cellElementToFocus: Element | undefined;\n\n if (\n lastFocusedElement &&\n e.currentTarget.compareDocumentPosition(lastFocusedElement) & Node.DOCUMENT_POSITION_FOLLOWING\n ) {\n cellElementToFocus = cellElements[cellElements.length - 1];\n } else {\n cellElementToFocus = cellElements[0];\n }\n\n const { cellRowKey, cellColumnKey } = (cellElementToFocus as HTMLTableCellElement).dataset;\n\n // We know the keys are defined, because we queried the DOM for elements that have them\n tableFocus.setFocus(cellRowKey!, cellColumnKey!);\n } else {\n const element = e.currentTarget.querySelector(\n `[data-cell-row-key='${CSS.escape(tableFocus.focusedRowKey)}'][data-cell-column-key='${CSS.escape(tableFocus.focusedColumnKey)}']`,\n ) as HTMLTableCellElement;\n\n if (element) {\n // If focus is already within the cell, don't refocus\n if (!element.contains(document.activeElement)) {\n focusTableChild(element);\n }\n }\n }\n };\n\n const { focusableProps } = useFocusable(\n {\n onFocus: (e) => {\n // Ignore focus events bubbling through portals\n if (!e.currentTarget.contains(e.target)) {\n return;\n }\n\n restoreCellFocus(e);\n },\n },\n ref,\n );\n\n const { keyboardProps } = useKeyboard({\n onKeyDown: (e) => {\n // Ignore keyboard events bubbling through portals\n if (!e.currentTarget.contains(e.target)) {\n return;\n }\n\n const focusedCellElement = e.currentTarget.querySelector(\n `[data-cell-row-key='${CSS.escape(tableFocus.focusedRowKey)}'][data-cell-column-key='${CSS.escape(tableFocus.focusedColumnKey)}']`,\n ) as HTMLTableCellElement;\n\n let cellElementToFocus: Node | null = null;\n let newChildFocusStrategy: ChildFocusStrategy | undefined;\n\n if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n // Focus previous/next cell in the same row\n const selector = `[data-cell-row-key='${CSS.escape(tableFocus.focusedRowKey)}']:not([data-cell-column-key='${CSS.escape(tableFocus.focusedColumnKey)}'])`;\n const walker = getFocusableTreeWalker(e.currentTarget, { accept: (node) => node.matches(selector) });\n walker.currentNode = focusedCellElement;\n cellElementToFocus = e.key === 'ArrowLeft' ? walker.previousNode() : walker.nextNode();\n newChildFocusStrategy = e.key === 'ArrowLeft' ? 'last' : 'first';\n } else if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n // Focus previous/next cell in the same column\n const selector = constructColumnSelector(\n e.currentTarget,\n tableFocus.focusedRowKey,\n tableFocus.focusedColumnKey,\n );\n const walker = getFocusableTreeWalker(e.currentTarget, { accept: (node) => node.matches(selector) });\n walker.currentNode = focusedCellElement;\n cellElementToFocus = e.key === 'ArrowUp' ? walker.previousNode() : walker.nextNode();\n } else if (e.key === 'PageUp' || e.key === 'PageDown') {\n // Move focus up/down by 5 rows\n const selector = constructColumnSelector(\n e.currentTarget,\n tableFocus.focusedRowKey,\n tableFocus.focusedColumnKey,\n );\n const walker = getFocusableTreeWalker(e.currentTarget, { accept: (node) => node.matches(selector) });\n walker.currentNode = focusedCellElement;\n\n const advance = e.key === 'PageUp' ? walker.previousNode.bind(walker) : walker.nextNode.bind(walker);\n\n // `advance()` will do nothing if there's no appropriate node found, so it's safe to just call it 5 times\n for (let i = 0; i < 5; i++) {\n advance();\n }\n\n cellElementToFocus = walker.currentNode;\n } else if (e.key === 'Home' || e.key === 'End') {\n // If Ctrl/Cmd is pressed, move focus to the first/last cell of the table;\n // otherwise, move focus to the first/last cell of the current row\n const selector = '[data-cell-row-key][data-cell-column-key]';\n const walker = getFocusableTreeWalker(e.currentTarget, { accept: (node) => node.matches(selector) });\n walker.currentNode = isCtrlKeyPressed(e) ? e.currentTarget : focusedCellElement.parentElement!;\n cellElementToFocus = e.key === 'Home' ? walker.firstChild() : walker.lastChild();\n newChildFocusStrategy = e.key === 'Home' ? 'first' : 'last';\n } else if (e.key === 'Tab') {\n // Table is supposed to be a single Tab stop, but cells may contain elements that are tabbable (checkboxes, buttons, menus, etc.).\n // We don't control the rendering of these elements, so we can't override their tabIndex to prevent tabbing.\n // Instead, we detect when Tab key is pressed, and move focus manually to the guard element before/after the table,\n // so that the browser default behavior will apply starting from that element rather than the currently focused one.\n const tableElement = e.currentTarget as HTMLTableElement;\n const guardElement = e.shiftKey ? tableElement.previousElementSibling : tableElement.nextElementSibling;\n\n if (guardElement) {\n focusTableChild(guardElement as FocusableElement);\n }\n\n return;\n } else if (e.key === 'a' && isCtrlKeyPressed(e) && rowSelectionMode === 'multiple') {\n // Select all rows\n onAllRowsSelectionToggle?.(true);\n } else {\n // if we didn't handle anything, return early so we don't preventDefault\n return;\n }\n\n if (cellElementToFocus) {\n const { cellRowKey, cellColumnKey } = (cellElementToFocus as HTMLTableCellElement).dataset;\n\n // We know the keys are defined, because we queried the DOM for elements that have them\n tableFocus.setFocus(cellRowKey!, cellColumnKey!, newChildFocusStrategy);\n }\n\n e.preventDefault();\n },\n });\n\n const customProps: NativeElementProps<HTMLTableElement> = {\n role: 'grid',\n // If no cell is tabbable within the table, make the table itself tabbable,\n // otherwise the Tab key will just skip it\n tabIndex: tableFocus.focusedRowKey && tableFocus.focusedColumnKey ? -1 : 0,\n onFocusCapture: (e) => {\n // If we're navigating into the table with a keyboard, focus the last focused cell instead of the first tabbable element\n if (\n getInteractionModality() === 'keyboard' &&\n !e.currentTarget.contains(e.relatedTarget) &&\n e.currentTarget.contains(e.target)\n ) {\n restoreCellFocus(e);\n }\n },\n };\n\n return {\n tableProps: mergeProps(focusableProps, keyboardProps, customProps),\n };\n}\n\n/** Constructs a DOM selector for cells in the same column, taking `colspan` into account. */\nfunction constructColumnSelector(tableElement: HTMLTableElement, rowKey: string, columnKey: string): string {\n const baseSelector = `[data-cell-column-key='${CSS.escape(columnKey)}']:not([data-cell-row-key='${CSS.escape(rowKey)}'])`;\n const columnHeader = tableElement.querySelector(\n `th[data-cell-row-key='${CSS.escape(rowKey)}'][data-cell-column-key='${CSS.escape(columnKey)}']`,\n );\n\n const columnSelectors: string[] = [baseSelector];\n\n let currentColumn = columnHeader?.previousElementSibling;\n\n while (currentColumn) {\n const { cellColumnKey } = (currentColumn as HTMLElement).dataset;\n\n if (cellColumnKey) {\n columnSelectors.push(\n `[data-cell-column-key='${CSS.escape(cellColumnKey)}'][colspan]:not([data-cell-row-key='${CSS.escape(rowKey)}'])`,\n );\n }\n\n currentColumn = currentColumn.previousElementSibling;\n }\n\n return `:is(${columnSelectors.join(', ')})`;\n}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { CommonProps, LabellableProps } from '../types.js';
|
|
2
|
+
export interface TableAllRowsSelectorProps extends CommonProps, Omit<LabellableProps, 'label'> {
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* Controls the selection state of all rows within a table.
|
|
6
|
+
*
|
|
7
|
+
* See [table building guide](https://ui.cimpress.io/dev-guides/tables/).
|
|
8
|
+
*/
|
|
9
|
+
declare const _TableAllRowsSelector: (props: TableAllRowsSelectorProps & import("react").RefAttributes<HTMLLabelElement>) => import("react").JSX.Element | null;
|
|
10
|
+
export { _TableAllRowsSelector as TableAllRowsSelector };
|
|
11
|
+
//# sourceMappingURL=table-all-rows-selector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-all-rows-selector.d.ts","sourceRoot":"","sources":["../../../../src/components/table/table-all-rows-selector.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGhE,MAAM,WAAW,yBAA0B,SAAQ,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC;CAAG;AAoBjG;;;;GAIG;AACH,QAAA,MAAM,qBAAqB,4HAA2D,CAAC;AAEvF,OAAO,EAAE,qBAAqB,IAAI,oBAAoB,EAAE,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from '../../forward-ref.js';
|
|
4
|
+
import { Checkbox } from '../checkbox/checkbox.js';
|
|
5
|
+
import { useTableState } from './contexts/table-state.js';
|
|
6
|
+
function TableAllRowsSelector(props, ref) {
|
|
7
|
+
const { rowSelectionMode, areAllRowsSelected, areSomeRowsSelected, onAllRowsSelectionToggle } = useTableState();
|
|
8
|
+
if (rowSelectionMode !== 'multiple') {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
return (_jsx(Checkbox, { ...props, ref: ref, isSelected: areAllRowsSelected, isIndeterminate: areSomeRowsSelected, onChange: onAllRowsSelectionToggle }));
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Controls the selection state of all rows within a table.
|
|
15
|
+
*
|
|
16
|
+
* See [table building guide](https://ui.cimpress.io/dev-guides/tables/).
|
|
17
|
+
*/
|
|
18
|
+
const _TableAllRowsSelector = forwardRef(TableAllRowsSelector, 'TableAllRowsSelector');
|
|
19
|
+
export { _TableAllRowsSelector as TableAllRowsSelector };
|
|
20
|
+
//# sourceMappingURL=table-all-rows-selector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-all-rows-selector.js","sourceRoot":"","sources":["../../../../src/components/table/table-all-rows-selector.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI1D,SAAS,oBAAoB,CAAC,KAAgC,EAAE,GAAmC;IACjG,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,GAAG,aAAa,EAAE,CAAC;IAEhH,IAAI,gBAAgB,KAAK,UAAU,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,KAAC,QAAQ,OACH,KAAK,EACT,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,kBAAkB,EAC9B,eAAe,EAAE,mBAAmB,EACpC,QAAQ,EAAE,wBAAwB,GAClC,CACH,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,qBAAqB,GAAG,UAAU,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAC;AAEvF,OAAO,EAAE,qBAAqB,IAAI,oBAAoB,EAAE,CAAC","sourcesContent":["'use client';\n\nimport type { ForwardedRef } from 'react';\nimport { forwardRef } from '../../forward-ref.js';\nimport { Checkbox } from '../checkbox/checkbox.js';\nimport type { CommonProps, LabellableProps } from '../types.js';\nimport { useTableState } from './contexts/table-state.js';\n\nexport interface TableAllRowsSelectorProps extends CommonProps, Omit<LabellableProps, 'label'> {}\n\nfunction TableAllRowsSelector(props: TableAllRowsSelectorProps, ref: ForwardedRef<HTMLLabelElement>) {\n const { rowSelectionMode, areAllRowsSelected, areSomeRowsSelected, onAllRowsSelectionToggle } = useTableState();\n\n if (rowSelectionMode !== 'multiple') {\n return null;\n }\n\n return (\n <Checkbox\n {...props}\n ref={ref}\n isSelected={areAllRowsSelected}\n isIndeterminate={areSomeRowsSelected}\n onChange={onAllRowsSelectionToggle}\n />\n );\n}\n\n/**\n * Controls the selection state of all rows within a table.\n *\n * See [table building guide](https://ui.cimpress.io/dev-guides/tables/).\n */\nconst _TableAllRowsSelector = forwardRef(TableAllRowsSelector, 'TableAllRowsSelector');\n\nexport { _TableAllRowsSelector as TableAllRowsSelector };\n"]}
|