@coveord/plasma-mantine 53.1.4 → 54.0.1
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/.eslintrc.js +1 -5
- package/.turbo/turbo-build.log +3 -3
- package/.turbo/turbo-test.log +42 -37
- package/dist/.tsbuildinfo +1 -1
- package/dist/cjs/components/button/Button.d.ts +1 -2
- package/dist/cjs/components/button/Button.d.ts.map +1 -1
- package/dist/cjs/components/button/Button.js.map +1 -1
- package/dist/cjs/components/code-editor/CodeEditor.d.ts.map +1 -1
- package/dist/cjs/components/code-editor/CodeEditor.js +2 -4
- package/dist/cjs/components/code-editor/CodeEditor.js.map +1 -1
- package/dist/cjs/components/collection/Collection.d.ts.map +1 -1
- package/dist/cjs/components/collection/CollectionContext.d.ts +1 -1
- package/dist/cjs/components/collection/CollectionContext.d.ts.map +1 -1
- package/dist/cjs/components/collection/enhanceWithCollectionProps.d.ts +1 -6
- package/dist/cjs/components/collection/enhanceWithCollectionProps.d.ts.map +1 -1
- package/dist/cjs/components/date-range-picker/DateRangePickerPopoverCalendar.d.ts.map +1 -1
- package/dist/cjs/components/date-range-picker/DateRangePickerPresetSelect.d.ts.map +1 -1
- package/dist/cjs/components/header/Header.context.d.ts +1 -1
- package/dist/cjs/components/header/Header.context.d.ts.map +1 -1
- package/dist/cjs/components/header/__tests__/__snapshots__/Header.spec.tsx.snap +10 -15
- package/dist/cjs/components/inline-confirm/InlineConfirm.d.ts +10 -2
- package/dist/cjs/components/inline-confirm/InlineConfirm.d.ts.map +1 -1
- package/dist/cjs/components/inline-confirm/InlineConfirm.js +2 -1
- package/dist/cjs/components/inline-confirm/InlineConfirm.js.map +1 -1
- package/dist/cjs/components/inline-confirm/InlineConfirmContext.d.ts +1 -1
- package/dist/cjs/components/inline-confirm/InlineConfirmContext.d.ts.map +1 -1
- package/dist/cjs/components/inline-confirm/InlineConfirmPrompt.d.ts +2 -5
- package/dist/cjs/components/inline-confirm/InlineConfirmPrompt.d.ts.map +1 -1
- package/dist/cjs/components/inline-confirm/InlineConfirmPrompt.js +5 -5
- package/dist/cjs/components/inline-confirm/InlineConfirmPrompt.js.map +1 -1
- package/dist/cjs/components/inline-confirm/InlineConfirmTarget.d.ts +2 -2
- package/dist/cjs/components/inline-confirm/InlineConfirmTarget.d.ts.map +1 -1
- package/dist/cjs/components/inline-confirm/InlineConfirmTarget.js +3 -3
- package/dist/cjs/components/inline-confirm/InlineConfirmTarget.js.map +1 -1
- package/dist/cjs/components/menu/Menu.d.ts +1 -1
- package/dist/cjs/components/table/Table.d.ts +68 -55
- package/dist/cjs/components/table/Table.d.ts.map +1 -1
- package/dist/cjs/components/table/Table.js +129 -174
- package/dist/cjs/components/table/Table.js.map +1 -1
- package/dist/cjs/components/table/Table.module.css +8 -1
- package/dist/cjs/components/table/Table.types.d.ts +52 -147
- package/dist/cjs/components/table/Table.types.d.ts.map +1 -1
- package/dist/cjs/components/table/TableContext.d.ts +15 -10
- package/dist/cjs/components/table/TableContext.d.ts.map +1 -1
- package/dist/cjs/components/table/TableContext.js +5 -20
- package/dist/cjs/components/table/TableContext.js.map +1 -1
- package/dist/cjs/components/table/index.d.ts +3 -3
- package/dist/cjs/components/table/index.d.ts.map +1 -1
- package/dist/cjs/components/table/index.js +5 -1
- package/dist/cjs/components/table/index.js.map +1 -1
- package/dist/cjs/components/table/layouts/TableLayoutControl.js +6 -6
- package/dist/cjs/components/table/layouts/TableLayoutControl.js.map +1 -1
- package/dist/cjs/components/table/layouts/TableLayouts.d.ts +1 -22
- package/dist/cjs/components/table/layouts/TableLayouts.d.ts.map +1 -1
- package/dist/cjs/components/table/layouts/TableLayouts.js.map +1 -1
- package/dist/cjs/components/table/layouts/row-layout/RowLayout.d.ts +1 -2
- package/dist/cjs/components/table/layouts/row-layout/RowLayout.d.ts.map +1 -1
- package/dist/cjs/components/table/layouts/row-layout/RowLayout.js.map +1 -1
- package/dist/cjs/components/table/layouts/row-layout/RowLayoutBody.d.ts +2 -3
- package/dist/cjs/components/table/layouts/row-layout/RowLayoutBody.d.ts.map +1 -1
- package/dist/cjs/components/table/layouts/row-layout/RowLayoutBody.js +17 -18
- package/dist/cjs/components/table/layouts/row-layout/RowLayoutBody.js.map +1 -1
- package/dist/cjs/components/table/layouts/row-layout/RowLayoutContext.d.ts +1 -1
- package/dist/cjs/components/table/layouts/row-layout/RowLayoutContext.d.ts.map +1 -1
- package/dist/cjs/components/table/layouts/row-layout/RowLayoutHeader.d.ts +2 -3
- package/dist/cjs/components/table/layouts/row-layout/RowLayoutHeader.d.ts.map +1 -1
- package/dist/cjs/components/table/layouts/row-layout/RowLayoutHeader.js +9 -8
- package/dist/cjs/components/table/layouts/row-layout/RowLayoutHeader.js.map +1 -1
- package/dist/cjs/components/table/layouts/row-layout/RowLayoutIcon.d.ts +1 -5
- package/dist/cjs/components/table/layouts/row-layout/RowLayoutIcon.d.ts.map +1 -1
- package/dist/cjs/components/table/layouts/row-layout/RowLayoutIcon.js +3 -9
- package/dist/cjs/components/table/layouts/row-layout/RowLayoutIcon.js.map +1 -1
- package/dist/cjs/components/table/table-actions/TableActionContext.d.ts +9 -0
- package/dist/cjs/components/table/table-actions/TableActionContext.d.ts.map +1 -0
- package/dist/cjs/components/table/table-actions/TableActionContext.js +24 -0
- package/dist/cjs/components/table/table-actions/TableActionContext.js.map +1 -0
- package/dist/cjs/components/table/table-actions/TableActionItem.d.ts +44 -0
- package/dist/cjs/components/table/table-actions/TableActionItem.d.ts.map +1 -0
- package/dist/cjs/components/table/table-actions/TableActionItem.js +59 -0
- package/dist/cjs/components/table/table-actions/TableActionItem.js.map +1 -0
- package/dist/cjs/components/table/table-actions/TableActionsList.d.ts +37 -0
- package/dist/cjs/components/table/table-actions/TableActionsList.d.ts.map +1 -0
- package/dist/cjs/components/table/table-actions/TableActionsList.js +217 -0
- package/dist/cjs/components/table/table-actions/TableActionsList.js.map +1 -0
- package/dist/cjs/components/table/table-actions/TableHeaderActions.d.ts +11 -0
- package/dist/cjs/components/table/table-actions/TableHeaderActions.d.ts.map +1 -0
- package/dist/cjs/components/table/table-actions/TableHeaderActions.js +59 -0
- package/dist/cjs/components/table/table-actions/TableHeaderActions.js.map +1 -0
- package/dist/cjs/components/table/table-actions/index.d.ts +3 -0
- package/dist/cjs/components/table/table-actions/index.d.ts.map +1 -0
- package/dist/cjs/components/table/table-actions/index.js +9 -0
- package/dist/cjs/components/table/table-actions/index.js.map +1 -0
- package/dist/cjs/components/table/table-column/TableActionsColumn.d.ts +6 -0
- package/dist/cjs/components/table/table-column/TableActionsColumn.d.ts.map +1 -0
- package/dist/cjs/components/table/table-column/TableActionsColumn.js +53 -0
- package/dist/cjs/components/table/table-column/TableActionsColumn.js.map +1 -0
- package/dist/cjs/components/table/table-column/TableCollapsibleColumn.d.ts.map +1 -1
- package/dist/cjs/components/table/table-column/TableCollapsibleColumn.js +6 -2
- package/dist/cjs/components/table/table-column/TableCollapsibleColumn.js.map +1 -1
- package/dist/cjs/components/table/table-column/TableSelectableColumn.d.ts.map +1 -1
- package/dist/cjs/components/table/table-column/TableSelectableColumn.js +4 -0
- package/dist/cjs/components/table/table-column/TableSelectableColumn.js.map +1 -1
- package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.d.ts +7 -12
- package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.d.ts.map +1 -1
- package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.js +24 -20
- package/dist/cjs/components/table/table-columns-selector/TableColumnsSelector.js.map +1 -1
- package/dist/cjs/components/table/table-date-range-picker/TableDateRangePicker.d.ts +1 -2
- package/dist/cjs/components/table/table-date-range-picker/TableDateRangePicker.d.ts.map +1 -1
- package/dist/cjs/components/table/table-date-range-picker/TableDateRangePicker.js +7 -7
- package/dist/cjs/components/table/table-date-range-picker/TableDateRangePicker.js.map +1 -1
- package/dist/cjs/components/table/table-filter/TableFilter.d.ts +1 -2
- package/dist/cjs/components/table/table-filter/TableFilter.d.ts.map +1 -1
- package/dist/cjs/components/table/table-filter/TableFilter.js +11 -16
- package/dist/cjs/components/table/table-filter/TableFilter.js.map +1 -1
- package/dist/cjs/components/table/table-header/TableHeader.d.ts +7 -2
- package/dist/cjs/components/table/table-header/TableHeader.d.ts.map +1 -1
- package/dist/cjs/components/table/table-header/TableHeader.js +15 -12
- package/dist/cjs/components/table/table-header/TableHeader.js.map +1 -1
- package/dist/cjs/components/table/table-header/Th.d.ts +1 -2
- package/dist/cjs/components/table/table-header/Th.d.ts.map +1 -1
- package/dist/cjs/components/table/table-header/Th.js +7 -3
- package/dist/cjs/components/table/table-header/Th.js.map +1 -1
- package/dist/cjs/components/table/table-last-updated/TableLastUpdated.d.ts +1 -3
- package/dist/cjs/components/table/table-last-updated/TableLastUpdated.d.ts.map +1 -1
- package/dist/cjs/components/table/table-last-updated/TableLastUpdated.js +6 -9
- package/dist/cjs/components/table/table-last-updated/TableLastUpdated.js.map +1 -1
- package/dist/cjs/components/table/table-no-data/TableNoData.d.ts +6 -0
- package/dist/cjs/components/table/table-no-data/TableNoData.d.ts.map +1 -0
- package/dist/cjs/components/table/{table-consumer/TableConsumer.js → table-no-data/TableNoData.js} +4 -4
- package/dist/cjs/components/table/table-no-data/TableNoData.js.map +1 -0
- package/dist/cjs/components/table/table-pagination/TablePagination.d.ts.map +1 -1
- package/dist/cjs/components/table/table-pagination/TablePagination.js +9 -11
- package/dist/cjs/components/table/table-pagination/TablePagination.js.map +1 -1
- package/dist/cjs/components/table/table-pagination/TablePagination.types.d.ts +0 -4
- package/dist/cjs/components/table/table-pagination/TablePagination.types.d.ts.map +1 -1
- package/dist/cjs/components/table/table-per-page/TablePerPage.d.ts.map +1 -1
- package/dist/cjs/components/table/table-per-page/TablePerPage.js +16 -16
- package/dist/cjs/components/table/table-per-page/TablePerPage.js.map +1 -1
- package/dist/cjs/components/table/table-predicate/TablePredicate.d.ts +1 -2
- package/dist/cjs/components/table/table-predicate/TablePredicate.d.ts.map +1 -1
- package/dist/cjs/components/table/table-predicate/TablePredicate.js +12 -14
- package/dist/cjs/components/table/table-predicate/TablePredicate.js.map +1 -1
- package/dist/cjs/components/table/use-table.d.ts +182 -0
- package/dist/cjs/components/table/use-table.d.ts.map +1 -0
- package/dist/cjs/components/table/use-table.js +145 -0
- package/dist/cjs/components/table/use-table.js.map +1 -0
- package/dist/cjs/hooks/useControlledList.d.ts.map +1 -1
- package/dist/cjs/index.d.ts +11 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/theme/Theme.d.ts.map +1 -1
- package/dist/cjs/theme/Theme.js +0 -7
- package/dist/cjs/theme/Theme.js.map +1 -1
- package/dist/cjs/utils/createFactoryComponent.d.ts.map +1 -1
- package/dist/cjs/utils/overrideComponent.d.ts.map +1 -1
- package/dist/esm/components/button/Button.d.ts +1 -2
- package/dist/esm/components/button/Button.d.ts.map +1 -1
- package/dist/esm/components/button/Button.js.map +1 -1
- package/dist/esm/components/code-editor/CodeEditor.d.ts.map +1 -1
- package/dist/esm/components/code-editor/CodeEditor.js +2 -4
- package/dist/esm/components/code-editor/CodeEditor.js.map +1 -1
- package/dist/esm/components/collection/Collection.d.ts.map +1 -1
- package/dist/esm/components/collection/CollectionContext.d.ts +1 -1
- package/dist/esm/components/collection/CollectionContext.d.ts.map +1 -1
- package/dist/esm/components/collection/enhanceWithCollectionProps.d.ts +1 -6
- package/dist/esm/components/collection/enhanceWithCollectionProps.d.ts.map +1 -1
- package/dist/esm/components/date-range-picker/DateRangePickerPopoverCalendar.d.ts.map +1 -1
- package/dist/esm/components/date-range-picker/DateRangePickerPresetSelect.d.ts.map +1 -1
- package/dist/esm/components/header/Header.context.d.ts +1 -1
- package/dist/esm/components/header/Header.context.d.ts.map +1 -1
- package/dist/esm/components/header/__tests__/__snapshots__/Header.spec.tsx.snap +10 -15
- package/dist/esm/components/inline-confirm/InlineConfirm.d.ts +10 -2
- package/dist/esm/components/inline-confirm/InlineConfirm.d.ts.map +1 -1
- package/dist/esm/components/inline-confirm/InlineConfirm.js +1 -1
- package/dist/esm/components/inline-confirm/InlineConfirm.js.map +1 -1
- package/dist/esm/components/inline-confirm/InlineConfirmContext.d.ts +1 -1
- package/dist/esm/components/inline-confirm/InlineConfirmContext.d.ts.map +1 -1
- package/dist/esm/components/inline-confirm/InlineConfirmPrompt.d.ts +2 -5
- package/dist/esm/components/inline-confirm/InlineConfirmPrompt.d.ts.map +1 -1
- package/dist/esm/components/inline-confirm/InlineConfirmPrompt.js +4 -4
- package/dist/esm/components/inline-confirm/InlineConfirmPrompt.js.map +1 -1
- package/dist/esm/components/inline-confirm/InlineConfirmTarget.d.ts +2 -2
- package/dist/esm/components/inline-confirm/InlineConfirmTarget.d.ts.map +1 -1
- package/dist/esm/components/inline-confirm/InlineConfirmTarget.js +2 -2
- package/dist/esm/components/inline-confirm/InlineConfirmTarget.js.map +1 -1
- package/dist/esm/components/menu/Menu.d.ts +1 -1
- package/dist/esm/components/table/Table.d.ts +68 -55
- package/dist/esm/components/table/Table.d.ts.map +1 -1
- package/dist/esm/components/table/Table.js +122 -157
- package/dist/esm/components/table/Table.js.map +1 -1
- package/dist/esm/components/table/Table.module.css +8 -1
- package/dist/esm/components/table/Table.types.d.ts +52 -147
- package/dist/esm/components/table/Table.types.d.ts.map +1 -1
- package/dist/esm/components/table/Table.types.js.map +1 -1
- package/dist/esm/components/table/TableContext.d.ts +15 -10
- package/dist/esm/components/table/TableContext.d.ts.map +1 -1
- package/dist/esm/components/table/TableContext.js +1 -10
- package/dist/esm/components/table/TableContext.js.map +1 -1
- package/dist/esm/components/table/index.d.ts +3 -3
- package/dist/esm/components/table/index.d.ts.map +1 -1
- package/dist/esm/components/table/index.js +2 -1
- package/dist/esm/components/table/index.js.map +1 -1
- package/dist/esm/components/table/layouts/TableLayoutControl.js +4 -4
- package/dist/esm/components/table/layouts/TableLayoutControl.js.map +1 -1
- package/dist/esm/components/table/layouts/TableLayouts.d.ts +1 -22
- package/dist/esm/components/table/layouts/TableLayouts.d.ts.map +1 -1
- package/dist/esm/components/table/layouts/TableLayouts.js.map +1 -1
- package/dist/esm/components/table/layouts/row-layout/RowLayout.d.ts +1 -2
- package/dist/esm/components/table/layouts/row-layout/RowLayout.d.ts.map +1 -1
- package/dist/esm/components/table/layouts/row-layout/RowLayout.js.map +1 -1
- package/dist/esm/components/table/layouts/row-layout/RowLayoutBody.d.ts +2 -3
- package/dist/esm/components/table/layouts/row-layout/RowLayoutBody.d.ts.map +1 -1
- package/dist/esm/components/table/layouts/row-layout/RowLayoutBody.js +13 -11
- package/dist/esm/components/table/layouts/row-layout/RowLayoutBody.js.map +1 -1
- package/dist/esm/components/table/layouts/row-layout/RowLayoutContext.d.ts +1 -1
- package/dist/esm/components/table/layouts/row-layout/RowLayoutContext.d.ts.map +1 -1
- package/dist/esm/components/table/layouts/row-layout/RowLayoutHeader.d.ts +2 -3
- package/dist/esm/components/table/layouts/row-layout/RowLayoutHeader.d.ts.map +1 -1
- package/dist/esm/components/table/layouts/row-layout/RowLayoutHeader.js +5 -5
- package/dist/esm/components/table/layouts/row-layout/RowLayoutHeader.js.map +1 -1
- package/dist/esm/components/table/layouts/row-layout/RowLayoutIcon.d.ts +1 -5
- package/dist/esm/components/table/layouts/row-layout/RowLayoutIcon.d.ts.map +1 -1
- package/dist/esm/components/table/layouts/row-layout/RowLayoutIcon.js +2 -8
- package/dist/esm/components/table/layouts/row-layout/RowLayoutIcon.js.map +1 -1
- package/dist/esm/components/table/table-actions/TableActionContext.d.ts +9 -0
- package/dist/esm/components/table/table-actions/TableActionContext.d.ts.map +1 -0
- package/dist/esm/components/table/table-actions/TableActionContext.js +4 -0
- package/dist/esm/components/table/table-actions/TableActionContext.js.map +1 -0
- package/dist/esm/components/table/table-actions/TableActionItem.d.ts +44 -0
- package/dist/esm/components/table/table-actions/TableActionItem.d.ts.map +1 -0
- package/dist/esm/components/table/table-actions/TableActionItem.js +40 -0
- package/dist/esm/components/table/table-actions/TableActionItem.js.map +1 -0
- package/dist/esm/components/table/table-actions/TableActionsList.d.ts +37 -0
- package/dist/esm/components/table/table-actions/TableActionsList.d.ts.map +1 -0
- package/dist/esm/components/table/table-actions/TableActionsList.js +187 -0
- package/dist/esm/components/table/table-actions/TableActionsList.js.map +1 -0
- package/dist/esm/components/table/table-actions/TableHeaderActions.d.ts +11 -0
- package/dist/esm/components/table/table-actions/TableHeaderActions.d.ts.map +1 -0
- package/dist/esm/components/table/table-actions/TableHeaderActions.js +43 -0
- package/dist/esm/components/table/table-actions/TableHeaderActions.js.map +1 -0
- package/dist/esm/components/table/table-actions/index.d.ts +3 -0
- package/dist/esm/components/table/table-actions/index.d.ts.map +1 -0
- package/dist/esm/components/table/table-actions/index.js +4 -0
- package/dist/esm/components/table/table-actions/index.js.map +1 -0
- package/dist/esm/components/table/table-column/TableActionsColumn.d.ts +6 -0
- package/dist/esm/components/table/table-column/TableActionsColumn.d.ts.map +1 -0
- package/dist/esm/components/table/table-column/TableActionsColumn.js +40 -0
- package/dist/esm/components/table/table-column/TableActionsColumn.js.map +1 -0
- package/dist/esm/components/table/table-column/TableCollapsibleColumn.d.ts.map +1 -1
- package/dist/esm/components/table/table-column/TableCollapsibleColumn.js +7 -3
- package/dist/esm/components/table/table-column/TableCollapsibleColumn.js.map +1 -1
- package/dist/esm/components/table/table-column/TableSelectableColumn.d.ts.map +1 -1
- package/dist/esm/components/table/table-column/TableSelectableColumn.js +4 -0
- package/dist/esm/components/table/table-column/TableSelectableColumn.js.map +1 -1
- package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.d.ts +7 -12
- package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.d.ts.map +1 -1
- package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.js +22 -20
- package/dist/esm/components/table/table-columns-selector/TableColumnsSelector.js.map +1 -1
- package/dist/esm/components/table/table-date-range-picker/TableDateRangePicker.d.ts +1 -2
- package/dist/esm/components/table/table-date-range-picker/TableDateRangePicker.d.ts.map +1 -1
- package/dist/esm/components/table/table-date-range-picker/TableDateRangePicker.js +8 -8
- package/dist/esm/components/table/table-date-range-picker/TableDateRangePicker.js.map +1 -1
- package/dist/esm/components/table/table-filter/TableFilter.d.ts +1 -2
- package/dist/esm/components/table/table-filter/TableFilter.d.ts.map +1 -1
- package/dist/esm/components/table/table-filter/TableFilter.js +14 -18
- package/dist/esm/components/table/table-filter/TableFilter.js.map +1 -1
- package/dist/esm/components/table/table-header/TableHeader.d.ts +7 -2
- package/dist/esm/components/table/table-header/TableHeader.d.ts.map +1 -1
- package/dist/esm/components/table/table-header/TableHeader.js +15 -13
- package/dist/esm/components/table/table-header/TableHeader.js.map +1 -1
- package/dist/esm/components/table/table-header/Th.d.ts +1 -2
- package/dist/esm/components/table/table-header/Th.d.ts.map +1 -1
- package/dist/esm/components/table/table-header/Th.js +8 -4
- package/dist/esm/components/table/table-header/Th.js.map +1 -1
- package/dist/esm/components/table/table-last-updated/TableLastUpdated.d.ts +1 -3
- package/dist/esm/components/table/table-last-updated/TableLastUpdated.d.ts.map +1 -1
- package/dist/esm/components/table/table-last-updated/TableLastUpdated.js +6 -8
- package/dist/esm/components/table/table-last-updated/TableLastUpdated.js.map +1 -1
- package/dist/esm/components/table/table-no-data/TableNoData.d.ts +6 -0
- package/dist/esm/components/table/table-no-data/TableNoData.d.ts.map +1 -0
- package/dist/esm/components/table/table-no-data/TableNoData.js +6 -0
- package/dist/esm/components/table/table-no-data/TableNoData.js.map +1 -0
- package/dist/esm/components/table/table-pagination/TablePagination.d.ts.map +1 -1
- package/dist/esm/components/table/table-pagination/TablePagination.js +10 -13
- package/dist/esm/components/table/table-pagination/TablePagination.js.map +1 -1
- package/dist/esm/components/table/table-pagination/TablePagination.types.d.ts +0 -4
- package/dist/esm/components/table/table-pagination/TablePagination.types.d.ts.map +1 -1
- package/dist/esm/components/table/table-pagination/TablePagination.types.js.map +1 -1
- package/dist/esm/components/table/table-per-page/TablePerPage.d.ts.map +1 -1
- package/dist/esm/components/table/table-per-page/TablePerPage.js +13 -12
- package/dist/esm/components/table/table-per-page/TablePerPage.js.map +1 -1
- package/dist/esm/components/table/table-predicate/TablePredicate.d.ts +1 -2
- package/dist/esm/components/table/table-predicate/TablePredicate.d.ts.map +1 -1
- package/dist/esm/components/table/table-predicate/TablePredicate.js +14 -18
- package/dist/esm/components/table/table-predicate/TablePredicate.js.map +1 -1
- package/dist/esm/components/table/use-table.d.ts +182 -0
- package/dist/esm/components/table/use-table.d.ts.map +1 -0
- package/dist/esm/components/table/use-table.js +122 -0
- package/dist/esm/components/table/use-table.js.map +1 -0
- package/dist/esm/hooks/useControlledList.d.ts.map +1 -1
- package/dist/esm/index.d.ts +11 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/theme/Theme.d.ts.map +1 -1
- package/dist/esm/theme/Theme.js +1 -8
- package/dist/esm/theme/Theme.js.map +1 -1
- package/dist/esm/utils/createFactoryComponent.d.ts.map +1 -1
- package/dist/esm/utils/overrideComponent.d.ts.map +1 -1
- package/package.json +61 -46
- package/src/__tests__/Utils.tsx +3 -1
- package/src/components/button/Button.tsx +3 -1
- package/src/components/button/__tests__/ButtonWithDisabledTooltip.spec.tsx +1 -1
- package/src/components/code-editor/CodeEditor.tsx +1 -7
- package/src/components/date-range-picker/__tests__/DateRangePickerPopoverCalendar.spec.tsx +4 -4
- package/src/components/header/__tests__/Header.spec.tsx +21 -22
- package/src/components/header/__tests__/__snapshots__/Header.spec.tsx.snap +10 -15
- package/src/components/inline-confirm/InlineConfirm.tsx +12 -4
- package/src/components/inline-confirm/InlineConfirmPrompt.tsx +6 -9
- package/src/components/inline-confirm/InlineConfirmTarget.tsx +9 -4
- package/src/components/inline-confirm/__tests__/InlineConfirm.spec.tsx +39 -14
- package/src/components/table/Table.module.css +8 -1
- package/src/components/table/Table.tsx +148 -170
- package/src/components/table/Table.types.ts +57 -160
- package/src/components/table/TableContext.tsx +17 -16
- package/src/components/table/__tests__/Table.spec.tsx +176 -200
- package/src/components/table/__tests__/TableActions.spec.tsx +142 -31
- package/src/components/table/__tests__/TableCollapsibleColumn.spec.tsx +88 -0
- package/src/components/table/__tests__/TableColumnsSelector.spec.tsx +164 -123
- package/src/components/table/__tests__/TableDateRangePicker.spec.tsx +13 -17
- package/src/components/table/__tests__/TableFilter.spec.tsx +52 -96
- package/src/components/table/__tests__/TableLastUpdated.spec.tsx +18 -37
- package/src/components/table/__tests__/TablePagination.spec.tsx +84 -100
- package/src/components/table/__tests__/TablePerPage.spec.tsx +81 -104
- package/src/components/table/__tests__/TablePredicate.spec.tsx +26 -80
- package/src/components/table/__tests__/Th.spec.tsx +24 -19
- package/src/components/table/index.ts +3 -9
- package/src/components/table/layouts/TableLayoutControl.tsx +4 -4
- package/src/components/table/layouts/TableLayouts.tsx +0 -22
- package/src/components/table/layouts/__tests__/RowLayout.spec.tsx +210 -182
- package/src/components/table/layouts/row-layout/RowLayout.tsx +2 -2
- package/src/components/table/layouts/row-layout/RowLayoutBody.tsx +17 -17
- package/src/components/table/layouts/row-layout/RowLayoutHeader.tsx +18 -9
- package/src/components/table/layouts/row-layout/RowLayoutIcon.tsx +3 -8
- package/src/components/table/table-actions/TableActionContext.ts +9 -0
- package/src/components/table/table-actions/TableActionItem.tsx +80 -0
- package/src/components/table/table-actions/TableActionsList.tsx +209 -0
- package/src/components/table/table-actions/TableHeaderActions.tsx +56 -0
- package/src/components/table/table-actions/index.ts +2 -0
- package/src/components/table/table-column/TableActionsColumn.tsx +39 -0
- package/src/components/table/table-column/TableCollapsibleColumn.tsx +7 -3
- package/src/components/table/table-column/TableSelectableColumn.tsx +4 -0
- package/src/components/table/table-columns-selector/TableColumnsSelector.tsx +33 -28
- package/src/components/table/table-date-range-picker/TableDateRangePicker.tsx +9 -11
- package/src/components/table/table-filter/TableFilter.tsx +12 -18
- package/src/components/table/table-header/TableHeader.tsx +32 -15
- package/src/components/table/table-header/Th.tsx +8 -7
- package/src/components/table/table-last-updated/TableLastUpdated.tsx +7 -10
- package/src/components/table/table-no-data/TableNoData.tsx +7 -0
- package/src/components/table/table-pagination/TablePagination.tsx +8 -11
- package/src/components/table/table-pagination/TablePagination.types.ts +0 -4
- package/src/components/table/table-per-page/TablePerPage.tsx +8 -10
- package/src/components/table/table-predicate/TablePredicate.tsx +21 -17
- package/src/components/table/use-table.ts +323 -0
- package/src/index.ts +11 -1
- package/src/theme/Theme.tsx +0 -6
- package/dist/cjs/components/table/table-actions/TableActions.d.ts +0 -38
- package/dist/cjs/components/table/table-actions/TableActions.d.ts.map +0 -1
- package/dist/cjs/components/table/table-actions/TableActions.js +0 -47
- package/dist/cjs/components/table/table-actions/TableActions.js.map +0 -1
- package/dist/cjs/components/table/table-consumer/TableConsumer.d.ts +0 -5
- package/dist/cjs/components/table/table-consumer/TableConsumer.d.ts.map +0 -1
- package/dist/cjs/components/table/table-consumer/TableConsumer.js.map +0 -1
- package/dist/cjs/hooks/useRowSelection.d.ts +0 -10
- package/dist/cjs/hooks/useRowSelection.d.ts.map +0 -1
- package/dist/cjs/hooks/useRowSelection.js +0 -80
- package/dist/cjs/hooks/useRowSelection.js.map +0 -1
- package/dist/cjs/styles/Title.module.css +0 -5
- package/dist/esm/components/table/table-actions/TableActions.d.ts +0 -38
- package/dist/esm/components/table/table-actions/TableActions.d.ts.map +0 -1
- package/dist/esm/components/table/table-actions/TableActions.js +0 -29
- package/dist/esm/components/table/table-actions/TableActions.js.map +0 -1
- package/dist/esm/components/table/table-consumer/TableConsumer.d.ts +0 -5
- package/dist/esm/components/table/table-consumer/TableConsumer.d.ts.map +0 -1
- package/dist/esm/components/table/table-consumer/TableConsumer.js +0 -6
- package/dist/esm/components/table/table-consumer/TableConsumer.js.map +0 -1
- package/dist/esm/hooks/useRowSelection.d.ts +0 -10
- package/dist/esm/hooks/useRowSelection.d.ts.map +0 -1
- package/dist/esm/hooks/useRowSelection.js +0 -59
- package/dist/esm/hooks/useRowSelection.js.map +0 -1
- package/dist/esm/styles/Title.module.css +0 -5
- package/src/components/table/table-actions/TableActions.tsx +0 -67
- package/src/components/table/table-consumer/TableConsumer.tsx +0 -3
- package/src/hooks/useRowSelection.ts +0 -76
- package/src/styles/Title.module.css +0 -5
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import {BoxProps, Factory, useProps} from '@mantine/core';
|
|
2
|
-
import {CompoundStylesApiProps} from '@mantine/core/lib/core/styles-api/styles-api.types';
|
|
1
|
+
import {BoxProps, CompoundStylesApiProps, Factory, useProps} from '@mantine/core';
|
|
3
2
|
import {ForwardedRef} from 'react';
|
|
4
3
|
import {CustomComponentThemeExtend, identity} from '../../../../utils';
|
|
4
|
+
import {TableLayoutProps} from '../../Table.types';
|
|
5
|
+
import {useTableContext} from '../../TableContext';
|
|
5
6
|
import {Th} from '../../table-header/Th';
|
|
6
|
-
import {useTable} from '../../TableContext';
|
|
7
|
-
import {type TableLayoutProps} from '../TableLayouts';
|
|
8
7
|
import {RowLayoutBodyFactory} from './RowLayoutBody';
|
|
9
8
|
import {useRowLayout} from './RowLayoutContext';
|
|
10
9
|
|
|
@@ -26,15 +25,25 @@ const defaultProps: Partial<RowLayoutHeaderProps<unknown>> = {};
|
|
|
26
25
|
|
|
27
26
|
export const RowLayoutHeader = <T,>(props: RowLayoutHeaderProps<T> & {ref?: ForwardedRef<HTMLTableRowElement>}) => {
|
|
28
27
|
const ctx = useRowLayout();
|
|
29
|
-
const {
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
const {
|
|
29
|
+
getRowExpandedContent: _getRowExpandedContent,
|
|
30
|
+
getRowActions: _getRowActions,
|
|
31
|
+
loading: _loading,
|
|
32
|
+
getRowAttributes: _getRowAttributes,
|
|
33
|
+
onRowDoubleClick: _onRowDoubleClick,
|
|
34
|
+
className,
|
|
35
|
+
style,
|
|
36
|
+
classNames,
|
|
37
|
+
styles,
|
|
38
|
+
...others
|
|
39
|
+
} = useProps('RowLayoutHeader', defaultProps as RowLayoutHeaderProps<T>, props);
|
|
40
|
+
const {table, store} = useTableContext<T>();
|
|
32
41
|
|
|
33
42
|
const headers = table.getHeaderGroups().map((headerGroup) => (
|
|
34
43
|
<tr
|
|
35
44
|
key={headerGroup.id}
|
|
36
|
-
data-selectable={
|
|
37
|
-
data-multi-selection={multiRowSelectionEnabled}
|
|
45
|
+
data-selectable={store.rowSelectionEnabled}
|
|
46
|
+
data-multi-selection={store.multiRowSelectionEnabled}
|
|
38
47
|
{...ctx.getStyles('headerRow', {className, classNames, styles, style})}
|
|
39
48
|
{...others}
|
|
40
49
|
>
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import {Icon as IconType, ListSize16Px} from '@coveord/plasma-react-icons';
|
|
2
|
-
import {
|
|
3
|
-
import {CompoundStylesApiProps} from '@mantine/core/lib/core/styles-api/styles-api.types';
|
|
4
|
-
import {useRowLayout} from './RowLayoutContext';
|
|
2
|
+
import {CompoundStylesApiProps, Factory, factory, useProps} from '@mantine/core';
|
|
5
3
|
|
|
6
|
-
export type RowLayoutIconStylesNames = 'icon';
|
|
7
4
|
export interface RowLayoutIconProps extends CompoundStylesApiProps<RowLayoutIconFactory> {
|
|
8
5
|
icon: IconType;
|
|
9
6
|
}
|
|
@@ -11,7 +8,6 @@ export interface RowLayoutIconProps extends CompoundStylesApiProps<RowLayoutIcon
|
|
|
11
8
|
export type RowLayoutIconFactory = Factory<{
|
|
12
9
|
props: RowLayoutIconProps;
|
|
13
10
|
ref: SVGSVGElement;
|
|
14
|
-
stylesNames: RowLayoutIconStylesNames;
|
|
15
11
|
compound: true;
|
|
16
12
|
}>;
|
|
17
13
|
|
|
@@ -20,8 +16,7 @@ const defaultProps: Partial<RowLayoutIconProps> = {
|
|
|
20
16
|
};
|
|
21
17
|
|
|
22
18
|
export const RowLayoutIcon = factory<RowLayoutIconFactory>((props, ref) => {
|
|
23
|
-
const
|
|
24
|
-
const {icon: Icon, classNames, styles} = useProps('RowLayoutIcon', defaultProps, props);
|
|
19
|
+
const {icon: Icon} = useProps('RowLayoutIcon', defaultProps, props);
|
|
25
20
|
|
|
26
|
-
return <Icon ref={ref}
|
|
21
|
+
return <Icon ref={ref} />;
|
|
27
22
|
});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import {createSafeContext} from '@mantine/core';
|
|
2
|
+
|
|
3
|
+
export interface TableActionContextValue {
|
|
4
|
+
primary: boolean;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export const [TableActionProvider, useTableActionContext] = createSafeContext<TableActionContextValue>(
|
|
8
|
+
'TableActionProvider component was not found in the tree',
|
|
9
|
+
);
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CompoundStylesApiProps,
|
|
3
|
+
Menu,
|
|
4
|
+
MenuItemProps,
|
|
5
|
+
PolymorphicFactory,
|
|
6
|
+
polymorphicFactory,
|
|
7
|
+
useProps,
|
|
8
|
+
} from '@mantine/core';
|
|
9
|
+
import {ReactNode} from 'react';
|
|
10
|
+
import {Button, ButtonProps} from '../../button';
|
|
11
|
+
import {useTableContext} from '../TableContext';
|
|
12
|
+
import {useTableActionContext} from './TableActionContext';
|
|
13
|
+
|
|
14
|
+
export type TableActionItemStylesNames = 'actionItemRoot';
|
|
15
|
+
|
|
16
|
+
export interface TableActionItemProps
|
|
17
|
+
extends Omit<ButtonProps, 'classNames' | 'styles' | 'vars' | 'variant' | 'leftSection' | 'rightSection'>,
|
|
18
|
+
Omit<MenuItemProps, 'classNames' | 'styles' | 'vars' | 'variant' | 'leftSection' | 'disabled'>,
|
|
19
|
+
CompoundStylesApiProps<TableActionItemFactory> {
|
|
20
|
+
/**
|
|
21
|
+
* Action label
|
|
22
|
+
*/
|
|
23
|
+
children: ReactNode;
|
|
24
|
+
/**
|
|
25
|
+
* Content to put on the left of the label
|
|
26
|
+
*/
|
|
27
|
+
leftSection?: ReactNode;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
type TableActionItemFactory = PolymorphicFactory<{
|
|
31
|
+
props: TableActionItemProps;
|
|
32
|
+
defaultRef: HTMLButtonElement;
|
|
33
|
+
defaultComponent: 'button';
|
|
34
|
+
stylesNames: TableActionItemStylesNames;
|
|
35
|
+
compound: true;
|
|
36
|
+
}>;
|
|
37
|
+
|
|
38
|
+
const defaultProps: Partial<TableActionItemProps> = {};
|
|
39
|
+
|
|
40
|
+
export const TableActionItem = polymorphicFactory<TableActionItemFactory>(
|
|
41
|
+
(props: TableActionItemProps & {component?: any}, ref) => {
|
|
42
|
+
const {getStyles} = useTableContext();
|
|
43
|
+
const {primary} = useTableActionContext();
|
|
44
|
+
const {
|
|
45
|
+
classNames,
|
|
46
|
+
className,
|
|
47
|
+
style,
|
|
48
|
+
styles,
|
|
49
|
+
vars: _vars,
|
|
50
|
+
children,
|
|
51
|
+
component,
|
|
52
|
+
...others
|
|
53
|
+
} = useProps('PlasmaTableActionItem', defaultProps, props);
|
|
54
|
+
|
|
55
|
+
if (primary) {
|
|
56
|
+
return (
|
|
57
|
+
<Button
|
|
58
|
+
component={component}
|
|
59
|
+
ref={ref}
|
|
60
|
+
variant="subtle"
|
|
61
|
+
{...others}
|
|
62
|
+
{...getStyles('actionItemRoot', {className, style, classNames, styles})}
|
|
63
|
+
>
|
|
64
|
+
{children}
|
|
65
|
+
</Button>
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return (
|
|
70
|
+
<Menu.Item
|
|
71
|
+
component={component}
|
|
72
|
+
ref={ref}
|
|
73
|
+
{...others}
|
|
74
|
+
{...getStyles('actionItemRoot', {className, style, classNames, styles})}
|
|
75
|
+
>
|
|
76
|
+
{children}
|
|
77
|
+
</Menu.Item>
|
|
78
|
+
);
|
|
79
|
+
},
|
|
80
|
+
);
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import {MoreSize16Px} from '@coveord/plasma-react-icons';
|
|
2
|
+
import {
|
|
3
|
+
ActionIcon,
|
|
4
|
+
Box,
|
|
5
|
+
Button,
|
|
6
|
+
CSSProperties,
|
|
7
|
+
CompoundStylesApiProps,
|
|
8
|
+
ExtendComponent,
|
|
9
|
+
Factory,
|
|
10
|
+
Menu,
|
|
11
|
+
MenuProps,
|
|
12
|
+
Tooltip,
|
|
13
|
+
useProps,
|
|
14
|
+
} from '@mantine/core';
|
|
15
|
+
import {MouseEventHandler, ReactNode, useState} from 'react';
|
|
16
|
+
import {InlineConfirm} from '../../inline-confirm';
|
|
17
|
+
import {TableAction} from '../Table.types';
|
|
18
|
+
import {useTableContext} from '../TableContext';
|
|
19
|
+
import {TableActionProvider} from './TableActionContext';
|
|
20
|
+
|
|
21
|
+
export type TableActionsListStylesNames =
|
|
22
|
+
| 'actionsTarget'
|
|
23
|
+
| 'actionsDropdown'
|
|
24
|
+
| 'actionsTooltip'
|
|
25
|
+
| 'actionsGroup'
|
|
26
|
+
| 'actionsGroupLabel'
|
|
27
|
+
| 'actionsGroupDivider'
|
|
28
|
+
| 'actionsGroupItems';
|
|
29
|
+
|
|
30
|
+
export interface TableActionsListProps
|
|
31
|
+
extends Omit<MenuProps, 'classNames' | 'styles' | 'vars' | 'variant'>,
|
|
32
|
+
CompoundStylesApiProps<TableActionsListFactory> {
|
|
33
|
+
actions: TableAction[];
|
|
34
|
+
/**
|
|
35
|
+
* Label for the more menu
|
|
36
|
+
* @default 'More' when variant is 'split', 'Actions' when variant is 'combined'
|
|
37
|
+
*/
|
|
38
|
+
label?: string;
|
|
39
|
+
/**
|
|
40
|
+
* Label for the primary actions group when variant is 'combined'
|
|
41
|
+
* @default ''
|
|
42
|
+
*/
|
|
43
|
+
primaryGroupLabel?: string;
|
|
44
|
+
icon?: ReactNode;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
type TableActionsListFactory = Factory<{
|
|
48
|
+
props: TableActionsListProps;
|
|
49
|
+
ref: HTMLDivElement;
|
|
50
|
+
stylesNames: TableActionsListStylesNames;
|
|
51
|
+
compound: true;
|
|
52
|
+
variant: 'split' | 'combined';
|
|
53
|
+
}>;
|
|
54
|
+
|
|
55
|
+
const defaultProps: Partial<TableActionsListProps> = {
|
|
56
|
+
label: 'More',
|
|
57
|
+
primaryGroupLabel: '',
|
|
58
|
+
icon: <MoreSize16Px height={16} />,
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
interface ActionsDict {
|
|
62
|
+
$$primary: TableAction[];
|
|
63
|
+
$$confirmPrompt: TableAction[];
|
|
64
|
+
secondary: Record<string, Array<TableAction['component']>>;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
interface ActionGroup {
|
|
68
|
+
name: string;
|
|
69
|
+
actions: ReactNode[];
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export const TableActionsList = (props: TableActionsListProps) => {
|
|
73
|
+
const {getStyles} = useTableContext();
|
|
74
|
+
const {
|
|
75
|
+
actions,
|
|
76
|
+
icon,
|
|
77
|
+
label,
|
|
78
|
+
primaryGroupLabel,
|
|
79
|
+
classNames,
|
|
80
|
+
styles,
|
|
81
|
+
vars: _vars,
|
|
82
|
+
variant,
|
|
83
|
+
...others
|
|
84
|
+
} = useProps('PlasmaTableActionsListColumn', defaultProps, props);
|
|
85
|
+
const [opened, setOpened] = useState(false);
|
|
86
|
+
|
|
87
|
+
const onClick: MouseEventHandler = (e) => {
|
|
88
|
+
e.preventDefault();
|
|
89
|
+
e.stopPropagation();
|
|
90
|
+
setOpened((prevState) => !prevState);
|
|
91
|
+
};
|
|
92
|
+
const onChange = (newOpened: boolean) => {
|
|
93
|
+
if (!newOpened) {
|
|
94
|
+
setOpened(false);
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
const actionsGroups: ActionsDict = actions.reduce<ActionsDict>(
|
|
99
|
+
(acc, action) => {
|
|
100
|
+
if (action.group === '$$primary') {
|
|
101
|
+
acc.$$primary.push(action);
|
|
102
|
+
} else if (action.group === '$$confirmPrompt') {
|
|
103
|
+
acc.$$confirmPrompt.push(action);
|
|
104
|
+
} else {
|
|
105
|
+
if (acc.secondary[action.group]) {
|
|
106
|
+
acc.secondary[action.group].push(action.component);
|
|
107
|
+
} else {
|
|
108
|
+
acc.secondary[action.group] = [action.component];
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return acc;
|
|
112
|
+
},
|
|
113
|
+
{$$primary: [], $$confirmPrompt: [], secondary: {}},
|
|
114
|
+
);
|
|
115
|
+
|
|
116
|
+
const primaryActions = actionsGroups.$$primary.map((action) => action.component);
|
|
117
|
+
const confirmPrompts = actionsGroups.$$confirmPrompt.map((confirmPromptAction) => confirmPromptAction.component);
|
|
118
|
+
const secondaryActionGroups = Object.entries(actionsGroups.secondary).map(
|
|
119
|
+
([group, groupActions]): ActionGroup => ({
|
|
120
|
+
name: group,
|
|
121
|
+
actions: groupActions,
|
|
122
|
+
}),
|
|
123
|
+
);
|
|
124
|
+
|
|
125
|
+
if (variant === 'split') {
|
|
126
|
+
return (
|
|
127
|
+
<InlineConfirm>
|
|
128
|
+
{confirmPrompts}
|
|
129
|
+
<TableActionProvider value={{primary: true}}>{primaryActions}</TableActionProvider>
|
|
130
|
+
{secondaryActionGroups.length > 0 ? (
|
|
131
|
+
<TableActionProvider value={{primary: false}}>
|
|
132
|
+
<Menu withinPortal={false} {...others}>
|
|
133
|
+
<Menu.Target>
|
|
134
|
+
<Button
|
|
135
|
+
{...getStyles('actionsTarget', {styles, classNames})}
|
|
136
|
+
variant="subtle"
|
|
137
|
+
leftSection={icon}
|
|
138
|
+
>
|
|
139
|
+
{label}
|
|
140
|
+
</Button>
|
|
141
|
+
</Menu.Target>
|
|
142
|
+
<Menu.Dropdown {...getStyles('actionsDropdown', {styles, classNames})}>
|
|
143
|
+
<ActionsGroupsMenuItems
|
|
144
|
+
classNames={classNames}
|
|
145
|
+
styles={styles}
|
|
146
|
+
actionGroups={secondaryActionGroups}
|
|
147
|
+
/>
|
|
148
|
+
</Menu.Dropdown>
|
|
149
|
+
</Menu>
|
|
150
|
+
</TableActionProvider>
|
|
151
|
+
) : null}
|
|
152
|
+
</InlineConfirm>
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
return (
|
|
156
|
+
<InlineConfirm>
|
|
157
|
+
{confirmPrompts}
|
|
158
|
+
<TableActionProvider value={{primary: false}}>
|
|
159
|
+
<Menu opened={opened} onChange={onChange} {...others}>
|
|
160
|
+
<Menu.Target>
|
|
161
|
+
<Tooltip label={label} {...getStyles('actionsTooltip', {styles, classNames})}>
|
|
162
|
+
<ActionIcon
|
|
163
|
+
onClick={onClick}
|
|
164
|
+
variant="subtle"
|
|
165
|
+
{...getStyles('actionsTarget', {styles, classNames})}
|
|
166
|
+
>
|
|
167
|
+
{icon}
|
|
168
|
+
</ActionIcon>
|
|
169
|
+
</Tooltip>
|
|
170
|
+
</Menu.Target>
|
|
171
|
+
<Menu.Dropdown {...getStyles('actionsDropdown', {styles, classNames})}>
|
|
172
|
+
<ActionsGroupsMenuItems
|
|
173
|
+
classNames={classNames}
|
|
174
|
+
styles={styles}
|
|
175
|
+
actionGroups={
|
|
176
|
+
primaryActions.length > 0
|
|
177
|
+
? [{name: primaryGroupLabel, actions: primaryActions}, ...secondaryActionGroups]
|
|
178
|
+
: secondaryActionGroups
|
|
179
|
+
}
|
|
180
|
+
/>
|
|
181
|
+
</Menu.Dropdown>
|
|
182
|
+
</Menu>
|
|
183
|
+
</TableActionProvider>
|
|
184
|
+
</InlineConfirm>
|
|
185
|
+
);
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
interface ActionsGroupsMenuItemsProps {
|
|
189
|
+
styles: Partial<Record<TableActionsListStylesNames, CSSProperties>>;
|
|
190
|
+
classNames: Partial<Record<TableActionsListStylesNames, string>>;
|
|
191
|
+
actionGroups: ActionGroup[];
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
const ActionsGroupsMenuItems = ({styles, classNames, actionGroups}: ActionsGroupsMenuItemsProps) => {
|
|
195
|
+
const {getStyles} = useTableContext();
|
|
196
|
+
return actionGroups.map(({name, actions}, index) => (
|
|
197
|
+
<Box key={name} {...getStyles('actionsGroup', {styles, classNames})}>
|
|
198
|
+
{actionGroups.length > 1 ? (
|
|
199
|
+
<Menu.Label {...getStyles('actionsGroupLabel', {styles, classNames})}>{name}</Menu.Label>
|
|
200
|
+
) : null}
|
|
201
|
+
<Box {...getStyles('actionsGroupItems', {styles, classNames})}>{actions}</Box>
|
|
202
|
+
{index < actionGroups.length - 1 ? (
|
|
203
|
+
<Menu.Divider {...getStyles('actionsGroupDivider', {styles, classNames})} />
|
|
204
|
+
) : null}
|
|
205
|
+
</Box>
|
|
206
|
+
));
|
|
207
|
+
};
|
|
208
|
+
|
|
209
|
+
TableActionsList.extend = (input: ExtendComponent<TableActionsListFactory>) => input;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import {Factory, factory, Grid, GridColProps, Group, useProps} from '@mantine/core';
|
|
2
|
+
import {ReactElement} from 'react';
|
|
3
|
+
|
|
4
|
+
import {TableComponentsOrder} from '../Table';
|
|
5
|
+
import {TableAction} from '../Table.types';
|
|
6
|
+
import {useTableContext} from '../TableContext';
|
|
7
|
+
import {TableActionsList} from './TableActionsList';
|
|
8
|
+
|
|
9
|
+
export type TableHeaderActionsStylesNames = 'headerActionsRoot' | 'headerActionsGroup';
|
|
10
|
+
|
|
11
|
+
export interface TableHeaderActionsProps extends Omit<GridColProps, 'children'> {}
|
|
12
|
+
|
|
13
|
+
type TableHeaderActionsFactory = Factory<{
|
|
14
|
+
props: TableHeaderActionsProps;
|
|
15
|
+
ref: HTMLDivElement;
|
|
16
|
+
stylesNames: TableHeaderActionsStylesNames;
|
|
17
|
+
compound: true;
|
|
18
|
+
}>;
|
|
19
|
+
|
|
20
|
+
const defaultProps: Partial<TableHeaderActionsProps> = {};
|
|
21
|
+
|
|
22
|
+
export const TableHeaderActions = factory<TableHeaderActionsFactory>(
|
|
23
|
+
(props: TableHeaderActionsProps, ref): ReactElement => {
|
|
24
|
+
const {store, getStyles, getRowActions} = useTableContext();
|
|
25
|
+
const {style, className, classNames, styles, ...others} = useProps(
|
|
26
|
+
'PlasmaTableHeaderActions',
|
|
27
|
+
defaultProps,
|
|
28
|
+
props,
|
|
29
|
+
);
|
|
30
|
+
const selectedRows = store.getSelectedRows();
|
|
31
|
+
if (selectedRows.length === 0) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const actions: TableAction[] = getRowActions(selectedRows);
|
|
36
|
+
if (actions.length === 0) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const stylesApiProps = {classNames, styles};
|
|
41
|
+
|
|
42
|
+
return (
|
|
43
|
+
<Grid.Col
|
|
44
|
+
span="content"
|
|
45
|
+
order={TableComponentsOrder.Actions}
|
|
46
|
+
ref={ref}
|
|
47
|
+
{...getStyles('headerActionsRoot', {className, style, ...stylesApiProps})}
|
|
48
|
+
{...others}
|
|
49
|
+
>
|
|
50
|
+
<Group gap="xs" {...getStyles('headerActionsGroup', stylesApiProps)}>
|
|
51
|
+
<TableActionsList actions={actions} variant="split" />
|
|
52
|
+
</Group>
|
|
53
|
+
</Grid.Col>
|
|
54
|
+
);
|
|
55
|
+
},
|
|
56
|
+
);
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import {MoreSize16Px} from '@coveord/plasma-react-icons';
|
|
2
|
+
import {useProps} from '@mantine/core';
|
|
3
|
+
import {CellContext, ColumnDef} from '@tanstack/table-core';
|
|
4
|
+
import {FunctionComponent} from 'react';
|
|
5
|
+
import {TableActionsList, TableActionsListProps} from '../table-actions/TableActionsList';
|
|
6
|
+
import {useTableContext} from '../TableContext';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Generic column to use when your table needs actions on rows
|
|
10
|
+
*/
|
|
11
|
+
export const TableActionsColumn: ColumnDef<unknown> = {
|
|
12
|
+
id: 'actions',
|
|
13
|
+
enableSorting: false,
|
|
14
|
+
enableHiding: false,
|
|
15
|
+
meta: {
|
|
16
|
+
controlColumn: true,
|
|
17
|
+
},
|
|
18
|
+
header: '',
|
|
19
|
+
size: 84, // 16px padding left + 28px ActionIcon + 40px padding right
|
|
20
|
+
cell: (info) => <ActionsMenu info={info} />,
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
interface TableActionsColumnProps extends Omit<TableActionsListProps, 'actions'> {
|
|
24
|
+
info: CellContext<unknown, unknown>;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const defaultProps: Partial<TableActionsColumnProps> = {
|
|
28
|
+
label: 'Actions',
|
|
29
|
+
icon: <MoreSize16Px height={16} />,
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const ActionsMenu: FunctionComponent<TableActionsColumnProps> = (props) => {
|
|
33
|
+
const {getRowActions} = useTableContext();
|
|
34
|
+
|
|
35
|
+
const {info, ...others} = useProps('PlasmaTableActionsColumn', defaultProps, props);
|
|
36
|
+
|
|
37
|
+
const actionsElements = getRowActions([info.row.original]);
|
|
38
|
+
return <TableActionsList actions={actionsElements} variant="combined" {...others} />;
|
|
39
|
+
};
|
|
@@ -3,13 +3,17 @@ import {Factory, factory, useProps} from '@mantine/core';
|
|
|
3
3
|
import {CellContext, ColumnDef} from '@tanstack/table-core';
|
|
4
4
|
import {MouseEvent as ReactMouseEvent, ReactNode} from 'react';
|
|
5
5
|
import {ActionIcon, ActionIconProps} from '../../action-icon';
|
|
6
|
-
import {
|
|
6
|
+
import {useTableContext} from '../TableContext';
|
|
7
7
|
|
|
8
8
|
export type TableCollapsibleColumnStylesNames = 'collapsibleIcon';
|
|
9
9
|
|
|
10
10
|
const sharedProps: ColumnDef<unknown> = {
|
|
11
11
|
id: 'collapsible',
|
|
12
12
|
enableSorting: false,
|
|
13
|
+
enableHiding: false,
|
|
14
|
+
meta: {
|
|
15
|
+
controlColumn: true,
|
|
16
|
+
},
|
|
13
17
|
header: '',
|
|
14
18
|
size: 84, // 16px padding left + 28px ActionIcon + 40px padding right
|
|
15
19
|
};
|
|
@@ -59,7 +63,7 @@ const defaultProps: Partial<CollapsibleIconProps> = {
|
|
|
59
63
|
};
|
|
60
64
|
|
|
61
65
|
const CollapsibleIcon = factory<TableCollapsibleColumnFactory>((props, ref) => {
|
|
62
|
-
const
|
|
66
|
+
const {getStyles} = useTableContext();
|
|
63
67
|
const {info, onToggle, iconExpanded, iconCollapsed, classNames, className, style, styles, ...others} = useProps(
|
|
64
68
|
'PlasmaTableCollapsibleColumn',
|
|
65
69
|
defaultProps,
|
|
@@ -78,7 +82,7 @@ const CollapsibleIcon = factory<TableCollapsibleColumnFactory>((props, ref) => {
|
|
|
78
82
|
variant="subtle"
|
|
79
83
|
color="gray"
|
|
80
84
|
radius="sm"
|
|
81
|
-
{...
|
|
85
|
+
{...getStyles('collapsibleIcon', {className, classNames, styles, style})}
|
|
82
86
|
{...others}
|
|
83
87
|
>
|
|
84
88
|
{info.row.getIsExpanded() ? iconExpanded : iconCollapsed}
|
|
@@ -7,6 +7,10 @@ import {ColumnDef} from '@tanstack/table-core';
|
|
|
7
7
|
export const TableSelectableColumn: ColumnDef<unknown> = {
|
|
8
8
|
id: 'select',
|
|
9
9
|
enableSorting: false,
|
|
10
|
+
enableHiding: false,
|
|
11
|
+
meta: {
|
|
12
|
+
controlColumn: true,
|
|
13
|
+
},
|
|
10
14
|
header: ({table}) => {
|
|
11
15
|
const label = table.getIsAllRowsSelected() ? 'Unselect all from this page' : 'Select all from this page';
|
|
12
16
|
return (
|
|
@@ -2,6 +2,7 @@ import {
|
|
|
2
2
|
BoxProps,
|
|
3
3
|
Button,
|
|
4
4
|
Checkbox,
|
|
5
|
+
CompoundStylesApiProps,
|
|
5
6
|
Divider,
|
|
6
7
|
factory,
|
|
7
8
|
Factory,
|
|
@@ -12,11 +13,10 @@ import {
|
|
|
12
13
|
Tooltip,
|
|
13
14
|
useProps,
|
|
14
15
|
} from '@mantine/core';
|
|
15
|
-
import {
|
|
16
|
+
import {flexRender, Header} from '@tanstack/react-table';
|
|
16
17
|
import {ReactNode} from 'react';
|
|
17
|
-
|
|
18
18
|
import {TableComponentsOrder} from '../Table';
|
|
19
|
-
import {
|
|
19
|
+
import {useTableContext} from '../TableContext';
|
|
20
20
|
|
|
21
21
|
export type TableColumnsSelectorStylesNames = 'columnSelector' | 'columnSelectorWrapper';
|
|
22
22
|
|
|
@@ -31,11 +31,6 @@ export interface TableColumnsSelectorProps extends BoxProps, CompoundStylesApiPr
|
|
|
31
31
|
* @default 'outline'
|
|
32
32
|
*/
|
|
33
33
|
buttonVariant?: string;
|
|
34
|
-
/**
|
|
35
|
-
* An array of column ids that the user cannot hide. This is useful for columns that are required for the table to function properly.
|
|
36
|
-
* @default []
|
|
37
|
-
*/
|
|
38
|
-
nonHideableColumns?: string[];
|
|
39
34
|
/**
|
|
40
35
|
* Whether the count of visible columns is shown in the button label.
|
|
41
36
|
* @default false
|
|
@@ -46,19 +41,20 @@ export interface TableColumnsSelectorProps extends BoxProps, CompoundStylesApiPr
|
|
|
46
41
|
* If defined a footer will render with the remaining number of columns that can be selected.
|
|
47
42
|
*/
|
|
48
43
|
maxSelectableColumns?: number;
|
|
49
|
-
/**
|
|
50
|
-
* A dictionary of column ids and names to use for the checkbox labels.
|
|
51
|
-
*/
|
|
52
|
-
columnNames: Record<string, string>;
|
|
53
44
|
/**
|
|
54
45
|
* The content to display in the footer when maxSelectableColumns is defined.
|
|
55
46
|
*/
|
|
56
47
|
footer?: ReactNode;
|
|
57
48
|
/**
|
|
58
|
-
* The tooltip to display when the user hovers over a disabled checkbox.
|
|
49
|
+
* The tooltip to display when the user hovers over a disabled checkbox because of the limit.
|
|
59
50
|
* @default 'You have reached the maximum display limit.'
|
|
60
51
|
*/
|
|
61
52
|
limitReachedTooltip?: string;
|
|
53
|
+
/**
|
|
54
|
+
* The tooltip to display when the user hovers over a disabled checkbox because a column cannot be hidden.
|
|
55
|
+
* @default 'This column is always visible.'
|
|
56
|
+
*/
|
|
57
|
+
alwaysVisibleTooltip?: string;
|
|
62
58
|
}
|
|
63
59
|
|
|
64
60
|
export type TableColumnsSelectorFactory = Factory<{
|
|
@@ -68,26 +64,24 @@ export type TableColumnsSelectorFactory = Factory<{
|
|
|
68
64
|
compound: true;
|
|
69
65
|
}>;
|
|
70
66
|
|
|
71
|
-
const COLUMNS_IDS_TO_EXCLUDE = ['collapsible', 'select'];
|
|
72
|
-
|
|
73
67
|
const defaultProps: Partial<TableColumnsSelectorProps> = {
|
|
74
68
|
label: 'Edit columns',
|
|
75
69
|
buttonVariant: 'outline',
|
|
76
70
|
limitReachedTooltip: 'You have reached the maximum display limit.',
|
|
71
|
+
alwaysVisibleTooltip: 'This column is always visible.',
|
|
77
72
|
showVisibleCountLabel: false,
|
|
78
73
|
};
|
|
79
74
|
|
|
80
75
|
export const TableColumnsSelector = factory<TableColumnsSelectorFactory>((props, ref) => {
|
|
81
|
-
const
|
|
76
|
+
const {getStyles} = useTableContext();
|
|
82
77
|
const {
|
|
83
78
|
label,
|
|
84
79
|
buttonVariant,
|
|
85
80
|
showVisibleCountLabel,
|
|
86
|
-
nonHideableColumns = [],
|
|
87
81
|
maxSelectableColumns,
|
|
88
82
|
footer,
|
|
89
83
|
limitReachedTooltip,
|
|
90
|
-
|
|
84
|
+
alwaysVisibleTooltip,
|
|
91
85
|
classNames,
|
|
92
86
|
className,
|
|
93
87
|
styles,
|
|
@@ -95,12 +89,11 @@ export const TableColumnsSelector = factory<TableColumnsSelectorFactory>((props,
|
|
|
95
89
|
vars,
|
|
96
90
|
...others
|
|
97
91
|
} = useProps('TableColumnsSelector', defaultProps, props);
|
|
98
|
-
const {
|
|
92
|
+
const {table} = useTableContext();
|
|
99
93
|
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
const filteredColumns = getAllColumns().filter((column) => !columnsToExclude.includes(column.id));
|
|
94
|
+
const allColumns = table.getAllLeafColumns();
|
|
103
95
|
|
|
96
|
+
const filteredColumns = allColumns.filter((column) => !column.columnDef.meta?.controlColumn);
|
|
104
97
|
const selectedColumnsCount = filteredColumns.filter((column) => column.getIsVisible()).length;
|
|
105
98
|
|
|
106
99
|
if (filteredColumns.length <= 0) {
|
|
@@ -113,7 +106,7 @@ export const TableColumnsSelector = factory<TableColumnsSelectorFactory>((props,
|
|
|
113
106
|
<Grid.Col
|
|
114
107
|
span="content"
|
|
115
108
|
order={TableComponentsOrder.ColumnsSelector}
|
|
116
|
-
{...
|
|
109
|
+
{...getStyles('columnSelector', {className, style, ...stylesApiProps})}
|
|
117
110
|
{...others}
|
|
118
111
|
>
|
|
119
112
|
<Popover withinPortal position="bottom" shadow="md">
|
|
@@ -124,18 +117,30 @@ export const TableColumnsSelector = factory<TableColumnsSelectorFactory>((props,
|
|
|
124
117
|
</Popover.Target>
|
|
125
118
|
<Popover.Dropdown miw={240}>
|
|
126
119
|
<ScrollArea.Autosize mah={154}>
|
|
127
|
-
<Stack {...
|
|
120
|
+
<Stack {...getStyles('columnSelectorWrapper', stylesApiProps)}>
|
|
128
121
|
{filteredColumns.map((column) => {
|
|
122
|
+
const alwaysVisible = !column.getCanHide();
|
|
129
123
|
const isDisabled =
|
|
130
|
-
selectedColumnsCount >= maxSelectableColumns && !column.getIsVisible()
|
|
124
|
+
(selectedColumnsCount >= maxSelectableColumns && !column.getIsVisible()) ||
|
|
125
|
+
alwaysVisible;
|
|
126
|
+
|
|
131
127
|
return (
|
|
132
|
-
<Tooltip
|
|
128
|
+
<Tooltip
|
|
129
|
+
label={alwaysVisible ? alwaysVisibleTooltip : limitReachedTooltip}
|
|
130
|
+
disabled={!isDisabled}
|
|
131
|
+
position="left"
|
|
132
|
+
key={column.id}
|
|
133
|
+
>
|
|
133
134
|
<div>
|
|
134
135
|
<Checkbox
|
|
135
136
|
key={column.id}
|
|
136
|
-
label={
|
|
137
|
+
label={flexRender(column.columnDef.header, {
|
|
138
|
+
table,
|
|
139
|
+
column,
|
|
140
|
+
header: {column} as Header<unknown, unknown>,
|
|
141
|
+
})}
|
|
137
142
|
name={column.id}
|
|
138
|
-
checked={column.getIsVisible()}
|
|
143
|
+
checked={column.getIsVisible() || alwaysVisible}
|
|
139
144
|
disabled={isDisabled}
|
|
140
145
|
onChange={column.getToggleVisibilityHandler()}
|
|
141
146
|
/>
|