@multiplatform.one/table 7.34.4 → 7.36.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/dist/cjs/components/ChildTable/index.cjs +26 -23
- package/dist/cjs/components/ChildTable/index.native.js +26 -23
- package/dist/cjs/components/ChildTable/index.native.js.map +1 -1
- package/dist/cjs/components/DataTable/DataTableCardControls.cjs +3 -8
- package/dist/cjs/components/DataTable/DataTableCardControls.native.js +3 -8
- package/dist/cjs/components/DataTable/DataTableCardControls.native.js.map +1 -1
- package/dist/cjs/components/DataTable/DataTableContext.cjs +1 -2
- package/dist/cjs/components/DataTable/DataTableContext.native.js +1 -2
- package/dist/cjs/components/DataTable/DataTableContext.native.js.map +1 -1
- package/dist/cjs/components/DataTable/DataTableDocumentList.cjs +50 -20
- package/dist/cjs/components/DataTable/DataTableDocumentList.native.js +59 -27
- package/dist/cjs/components/DataTable/DataTableDocumentList.native.js.map +1 -1
- package/dist/cjs/components/DataTable/DataTableInfiniteTail.cjs +1 -1
- package/dist/cjs/components/DataTable/DataTableInfiniteTail.native.js +1 -1
- package/dist/cjs/components/DataTable/DataTableInfiniteTail.native.js.map +1 -1
- package/dist/cjs/components/DataTable/DataTableMobileCards.cjs +5 -11
- package/dist/cjs/components/DataTable/DataTableMobileCards.native.js +5 -11
- package/dist/cjs/components/DataTable/DataTableMobileCards.native.js.map +1 -1
- package/dist/cjs/components/DataTable/DataTableRoot.cjs +601 -606
- package/dist/cjs/components/DataTable/DataTableRoot.native.js +705 -710
- package/dist/cjs/components/DataTable/DataTableRoot.native.js.map +1 -1
- package/dist/cjs/components/DataTable/DataTableVirtualized.cjs +3 -2
- package/dist/cjs/components/DataTable/DataTableVirtualized.native.js +3 -2
- package/dist/cjs/components/DataTable/DataTableVirtualized.native.js.map +1 -1
- package/dist/cjs/components/DataTable/documentListSlots.cjs +8 -1
- package/dist/cjs/components/DataTable/documentListSlots.native.js +8 -1
- package/dist/cjs/components/DataTable/documentListSlots.native.js.map +1 -1
- package/dist/cjs/components/DataTable/index.native.js +264 -252
- package/dist/cjs/components/DataTable/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableCell/index.cjs +2 -5
- package/dist/cjs/components/DataTableCell/index.native.js +2 -5
- package/dist/cjs/components/DataTableCell/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableColumnPinning/index.cjs +2 -1
- package/dist/cjs/components/DataTableColumnPinning/index.native.js +2 -1
- package/dist/cjs/components/DataTableColumnPinning/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableFilterButton/index.cjs +3 -5
- package/dist/cjs/components/DataTableFilterButton/index.native.js +3 -5
- package/dist/cjs/components/DataTableFilterButton/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableFilterChips/index.cjs +0 -1
- package/dist/cjs/components/DataTableFilterChips/index.native.js +0 -1
- package/dist/cjs/components/DataTableFilters/index.cjs +11 -19
- package/dist/cjs/components/DataTableFilters/index.native.js +11 -19
- package/dist/cjs/components/DataTableFilters/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableGrouping/index.cjs +5 -5
- package/dist/cjs/components/DataTableGrouping/index.native.js +7 -7
- package/dist/cjs/components/DataTableGrouping/index.native.js.map +1 -1
- package/dist/cjs/components/DataTablePagination/index.cjs +14 -18
- package/dist/cjs/components/DataTablePagination/index.native.js +14 -18
- package/dist/cjs/components/DataTablePagination/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableSearch/index.cjs +5 -7
- package/dist/cjs/components/DataTableSearch/index.native.js +5 -7
- package/dist/cjs/components/DataTableSearch/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableToolbar/index.cjs +2 -10
- package/dist/cjs/components/DataTableToolbar/index.native.js +2 -10
- package/dist/cjs/components/DataTableToolbar/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableViewOptions/index.cjs +5 -3
- package/dist/cjs/components/DataTableViewOptions/index.native.js +6 -4
- package/dist/cjs/components/DataTableViewOptions/index.native.js.map +1 -1
- package/dist/cjs/components/KnobDialog.cjs +4 -34
- package/dist/cjs/components/KnobDialog.native.js +3 -34
- package/dist/cjs/components/KnobDialog.native.js.map +1 -1
- package/dist/cjs/components/SavedFilterDropdown.cjs +0 -1
- package/dist/cjs/components/SavedFilterDropdown.native.js +0 -1
- package/dist/cjs/components/SavedFilterDropdown.native.js.map +1 -1
- package/dist/cjs/components/SimpleTable/ScrollFrame.cjs +51 -0
- package/dist/cjs/components/SimpleTable/ScrollFrame.native.js +84 -0
- package/dist/cjs/components/SimpleTable/ScrollFrame.native.js.map +1 -0
- package/dist/cjs/components/SimpleTable/columnSizing.cjs +50 -0
- package/dist/cjs/components/SimpleTable/columnSizing.native.js +71 -0
- package/dist/cjs/components/SimpleTable/columnSizing.native.js.map +1 -0
- package/dist/cjs/components/SimpleTable/index.cjs +152 -97
- package/dist/cjs/components/SimpleTable/index.native.js +166 -110
- package/dist/cjs/components/SimpleTable/index.native.js.map +1 -1
- package/dist/cjs/components/TableInput/RowDetailEditor.cjs +1 -6
- package/dist/cjs/components/TableInput/RowDetailEditor.native.js +1 -5
- package/dist/cjs/components/TableInput/RowDetailEditor.native.js.map +1 -1
- package/dist/cjs/components/TableInput/index.cjs +4 -19
- package/dist/cjs/components/TableInput/index.native.js +2 -11
- package/dist/cjs/components/TableInput/index.native.js.map +1 -1
- package/dist/cjs/index.cjs +1 -0
- package/dist/cjs/index.native.js +1 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/esm/components/ChildTable/index.mjs +26 -23
- package/dist/esm/components/ChildTable/index.mjs.map +1 -1
- package/dist/esm/components/ChildTable/index.native.js +26 -23
- package/dist/esm/components/ChildTable/index.native.js.map +1 -1
- package/dist/esm/components/DataTable/DataTableCardControls.mjs +3 -8
- package/dist/esm/components/DataTable/DataTableCardControls.mjs.map +1 -1
- package/dist/esm/components/DataTable/DataTableCardControls.native.js +3 -8
- package/dist/esm/components/DataTable/DataTableCardControls.native.js.map +1 -1
- package/dist/esm/components/DataTable/DataTableContext.mjs +1 -2
- package/dist/esm/components/DataTable/DataTableContext.mjs.map +1 -1
- package/dist/esm/components/DataTable/DataTableContext.native.js +1 -2
- package/dist/esm/components/DataTable/DataTableContext.native.js.map +1 -1
- package/dist/esm/components/DataTable/DataTableDocumentList.mjs +52 -22
- package/dist/esm/components/DataTable/DataTableDocumentList.mjs.map +1 -1
- package/dist/esm/components/DataTable/DataTableDocumentList.native.js +61 -29
- package/dist/esm/components/DataTable/DataTableDocumentList.native.js.map +1 -1
- package/dist/esm/components/DataTable/DataTableInfiniteTail.mjs +1 -1
- package/dist/esm/components/DataTable/DataTableInfiniteTail.mjs.map +1 -1
- package/dist/esm/components/DataTable/DataTableInfiniteTail.native.js +1 -1
- package/dist/esm/components/DataTable/DataTableInfiniteTail.native.js.map +1 -1
- package/dist/esm/components/DataTable/DataTableMobileCards.mjs +5 -11
- package/dist/esm/components/DataTable/DataTableMobileCards.mjs.map +1 -1
- package/dist/esm/components/DataTable/DataTableMobileCards.native.js +5 -11
- package/dist/esm/components/DataTable/DataTableMobileCards.native.js.map +1 -1
- package/dist/esm/components/DataTable/DataTableRoot.mjs +603 -608
- package/dist/esm/components/DataTable/DataTableRoot.mjs.map +1 -1
- package/dist/esm/components/DataTable/DataTableRoot.native.js +707 -712
- package/dist/esm/components/DataTable/DataTableRoot.native.js.map +1 -1
- package/dist/esm/components/DataTable/DataTableVirtualized.mjs +4 -3
- package/dist/esm/components/DataTable/DataTableVirtualized.mjs.map +1 -1
- package/dist/esm/components/DataTable/DataTableVirtualized.native.js +4 -3
- package/dist/esm/components/DataTable/DataTableVirtualized.native.js.map +1 -1
- package/dist/esm/components/DataTable/documentListSlots.mjs +8 -1
- package/dist/esm/components/DataTable/documentListSlots.mjs.map +1 -1
- package/dist/esm/components/DataTable/documentListSlots.native.js +8 -1
- package/dist/esm/components/DataTable/documentListSlots.native.js.map +1 -1
- package/dist/esm/components/DataTable/index.native.js +265 -253
- package/dist/esm/components/DataTable/index.native.js.map +1 -1
- package/dist/esm/components/DataTableCell/index.mjs +2 -5
- package/dist/esm/components/DataTableCell/index.mjs.map +1 -1
- package/dist/esm/components/DataTableCell/index.native.js +2 -5
- package/dist/esm/components/DataTableCell/index.native.js.map +1 -1
- package/dist/esm/components/DataTableColumnPinning/index.mjs +2 -1
- package/dist/esm/components/DataTableColumnPinning/index.mjs.map +1 -1
- package/dist/esm/components/DataTableColumnPinning/index.native.js +2 -1
- package/dist/esm/components/DataTableColumnPinning/index.native.js.map +1 -1
- package/dist/esm/components/DataTableFilterButton/index.mjs +4 -6
- package/dist/esm/components/DataTableFilterButton/index.mjs.map +1 -1
- package/dist/esm/components/DataTableFilterButton/index.native.js +4 -6
- package/dist/esm/components/DataTableFilterButton/index.native.js.map +1 -1
- package/dist/esm/components/DataTableFilterChips/index.mjs +0 -1
- package/dist/esm/components/DataTableFilterChips/index.mjs.map +1 -1
- package/dist/esm/components/DataTableFilterChips/index.native.js +0 -1
- package/dist/esm/components/DataTableFilters/index.mjs +12 -20
- package/dist/esm/components/DataTableFilters/index.mjs.map +1 -1
- package/dist/esm/components/DataTableFilters/index.native.js +12 -20
- package/dist/esm/components/DataTableFilters/index.native.js.map +1 -1
- package/dist/esm/components/DataTableGrouping/index.mjs +6 -6
- package/dist/esm/components/DataTableGrouping/index.mjs.map +1 -1
- package/dist/esm/components/DataTableGrouping/index.native.js +8 -8
- package/dist/esm/components/DataTableGrouping/index.native.js.map +1 -1
- package/dist/esm/components/DataTablePagination/index.mjs +15 -19
- package/dist/esm/components/DataTablePagination/index.mjs.map +1 -1
- package/dist/esm/components/DataTablePagination/index.native.js +15 -19
- package/dist/esm/components/DataTablePagination/index.native.js.map +1 -1
- package/dist/esm/components/DataTableSearch/index.mjs +5 -7
- package/dist/esm/components/DataTableSearch/index.mjs.map +1 -1
- package/dist/esm/components/DataTableSearch/index.native.js +5 -7
- package/dist/esm/components/DataTableSearch/index.native.js.map +1 -1
- package/dist/esm/components/DataTableToolbar/index.mjs +2 -10
- package/dist/esm/components/DataTableToolbar/index.mjs.map +1 -1
- package/dist/esm/components/DataTableToolbar/index.native.js +2 -10
- package/dist/esm/components/DataTableToolbar/index.native.js.map +1 -1
- package/dist/esm/components/DataTableViewOptions/index.mjs +6 -4
- package/dist/esm/components/DataTableViewOptions/index.mjs.map +1 -1
- package/dist/esm/components/DataTableViewOptions/index.native.js +7 -5
- package/dist/esm/components/DataTableViewOptions/index.native.js.map +1 -1
- package/dist/esm/components/KnobDialog.mjs +6 -36
- package/dist/esm/components/KnobDialog.mjs.map +1 -1
- package/dist/esm/components/KnobDialog.native.js +5 -36
- package/dist/esm/components/KnobDialog.native.js.map +1 -1
- package/dist/esm/components/SavedFilterDropdown.mjs +0 -1
- package/dist/esm/components/SavedFilterDropdown.mjs.map +1 -1
- package/dist/esm/components/SavedFilterDropdown.native.js +0 -1
- package/dist/esm/components/SavedFilterDropdown.native.js.map +1 -1
- package/dist/esm/components/SimpleTable/ScrollFrame.mjs +25 -0
- package/dist/esm/components/SimpleTable/ScrollFrame.mjs.map +1 -0
- package/dist/esm/components/SimpleTable/ScrollFrame.native.js +55 -0
- package/dist/esm/components/SimpleTable/ScrollFrame.native.js.map +1 -0
- package/dist/esm/components/SimpleTable/columnSizing.mjs +25 -0
- package/dist/esm/components/SimpleTable/columnSizing.mjs.map +1 -0
- package/dist/esm/components/SimpleTable/columnSizing.native.js +43 -0
- package/dist/esm/components/SimpleTable/columnSizing.native.js.map +1 -0
- package/dist/esm/components/SimpleTable/index.mjs +152 -98
- package/dist/esm/components/SimpleTable/index.mjs.map +1 -1
- package/dist/esm/components/SimpleTable/index.native.js +166 -111
- package/dist/esm/components/SimpleTable/index.native.js.map +1 -1
- package/dist/esm/components/TableInput/RowDetailEditor.mjs +1 -6
- package/dist/esm/components/TableInput/RowDetailEditor.mjs.map +1 -1
- package/dist/esm/components/TableInput/RowDetailEditor.native.js +1 -5
- package/dist/esm/components/TableInput/RowDetailEditor.native.js.map +1 -1
- package/dist/esm/components/TableInput/index.mjs +5 -20
- package/dist/esm/components/TableInput/index.mjs.map +1 -1
- package/dist/esm/components/TableInput/index.native.js +3 -12
- package/dist/esm/components/TableInput/index.native.js.map +1 -1
- package/dist/esm/index.mjs +2 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -2
- package/dist/esm/index.native.js.map +1 -1
- package/dist/jsx/components/ChildTable/index.mjs +26 -23
- package/dist/jsx/components/ChildTable/index.mjs.map +1 -1
- package/dist/jsx/components/ChildTable/index.native.js +26 -23
- package/dist/jsx/components/ChildTable/index.native.js.map +1 -1
- package/dist/jsx/components/DataTable/DataTableCardControls.mjs +3 -8
- package/dist/jsx/components/DataTable/DataTableCardControls.mjs.map +1 -1
- package/dist/jsx/components/DataTable/DataTableCardControls.native.js +3 -8
- package/dist/jsx/components/DataTable/DataTableCardControls.native.js.map +1 -1
- package/dist/jsx/components/DataTable/DataTableContext.mjs +1 -2
- package/dist/jsx/components/DataTable/DataTableContext.mjs.map +1 -1
- package/dist/jsx/components/DataTable/DataTableContext.native.js +1 -2
- package/dist/jsx/components/DataTable/DataTableContext.native.js.map +1 -1
- package/dist/jsx/components/DataTable/DataTableDocumentList.mjs +52 -22
- package/dist/jsx/components/DataTable/DataTableDocumentList.mjs.map +1 -1
- package/dist/jsx/components/DataTable/DataTableDocumentList.native.js +59 -27
- package/dist/jsx/components/DataTable/DataTableDocumentList.native.js.map +1 -1
- package/dist/jsx/components/DataTable/DataTableInfiniteTail.mjs +1 -1
- package/dist/jsx/components/DataTable/DataTableInfiniteTail.mjs.map +1 -1
- package/dist/jsx/components/DataTable/DataTableInfiniteTail.native.js +1 -1
- package/dist/jsx/components/DataTable/DataTableInfiniteTail.native.js.map +1 -1
- package/dist/jsx/components/DataTable/DataTableMobileCards.mjs +5 -11
- package/dist/jsx/components/DataTable/DataTableMobileCards.mjs.map +1 -1
- package/dist/jsx/components/DataTable/DataTableMobileCards.native.js +5 -11
- package/dist/jsx/components/DataTable/DataTableMobileCards.native.js.map +1 -1
- package/dist/jsx/components/DataTable/DataTableRoot.mjs +603 -608
- package/dist/jsx/components/DataTable/DataTableRoot.mjs.map +1 -1
- package/dist/jsx/components/DataTable/DataTableRoot.native.js +705 -710
- package/dist/jsx/components/DataTable/DataTableRoot.native.js.map +1 -1
- package/dist/jsx/components/DataTable/DataTableVirtualized.mjs +4 -3
- package/dist/jsx/components/DataTable/DataTableVirtualized.mjs.map +1 -1
- package/dist/jsx/components/DataTable/DataTableVirtualized.native.js +3 -2
- package/dist/jsx/components/DataTable/DataTableVirtualized.native.js.map +1 -1
- package/dist/jsx/components/DataTable/documentListSlots.mjs +8 -1
- package/dist/jsx/components/DataTable/documentListSlots.mjs.map +1 -1
- package/dist/jsx/components/DataTable/documentListSlots.native.js +8 -1
- package/dist/jsx/components/DataTable/documentListSlots.native.js.map +1 -1
- package/dist/jsx/components/DataTable/index.native.js +264 -252
- package/dist/jsx/components/DataTable/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableCell/index.mjs +2 -5
- package/dist/jsx/components/DataTableCell/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableCell/index.native.js +2 -5
- package/dist/jsx/components/DataTableCell/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableColumnPinning/index.mjs +2 -1
- package/dist/jsx/components/DataTableColumnPinning/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableColumnPinning/index.native.js +2 -1
- package/dist/jsx/components/DataTableColumnPinning/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableFilterButton/index.mjs +4 -6
- package/dist/jsx/components/DataTableFilterButton/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableFilterButton/index.native.js +3 -5
- package/dist/jsx/components/DataTableFilterButton/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableFilterChips/index.mjs +0 -1
- package/dist/jsx/components/DataTableFilterChips/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableFilterChips/index.native.js +0 -1
- package/dist/jsx/components/DataTableFilters/index.mjs +12 -20
- package/dist/jsx/components/DataTableFilters/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableFilters/index.native.js +11 -19
- package/dist/jsx/components/DataTableFilters/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableGrouping/index.mjs +6 -6
- package/dist/jsx/components/DataTableGrouping/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableGrouping/index.native.js +7 -7
- package/dist/jsx/components/DataTableGrouping/index.native.js.map +1 -1
- package/dist/jsx/components/DataTablePagination/index.mjs +15 -19
- package/dist/jsx/components/DataTablePagination/index.mjs.map +1 -1
- package/dist/jsx/components/DataTablePagination/index.native.js +14 -18
- package/dist/jsx/components/DataTablePagination/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableSearch/index.mjs +5 -7
- package/dist/jsx/components/DataTableSearch/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableSearch/index.native.js +5 -7
- package/dist/jsx/components/DataTableSearch/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableToolbar/index.mjs +2 -10
- package/dist/jsx/components/DataTableToolbar/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableToolbar/index.native.js +2 -10
- package/dist/jsx/components/DataTableToolbar/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableViewOptions/index.mjs +6 -4
- package/dist/jsx/components/DataTableViewOptions/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableViewOptions/index.native.js +6 -4
- package/dist/jsx/components/DataTableViewOptions/index.native.js.map +1 -1
- package/dist/jsx/components/KnobDialog.mjs +6 -36
- package/dist/jsx/components/KnobDialog.mjs.map +1 -1
- package/dist/jsx/components/KnobDialog.native.js +3 -34
- package/dist/jsx/components/KnobDialog.native.js.map +1 -1
- package/dist/jsx/components/SavedFilterDropdown.mjs +0 -1
- package/dist/jsx/components/SavedFilterDropdown.mjs.map +1 -1
- package/dist/jsx/components/SavedFilterDropdown.native.js +0 -1
- package/dist/jsx/components/SavedFilterDropdown.native.js.map +1 -1
- package/dist/jsx/components/SimpleTable/ScrollFrame.mjs +25 -0
- package/dist/jsx/components/SimpleTable/ScrollFrame.mjs.map +1 -0
- package/dist/jsx/components/SimpleTable/ScrollFrame.native.js +84 -0
- package/dist/jsx/components/SimpleTable/ScrollFrame.native.js.map +1 -0
- package/dist/jsx/components/SimpleTable/columnSizing.mjs +25 -0
- package/dist/jsx/components/SimpleTable/columnSizing.mjs.map +1 -0
- package/dist/jsx/components/SimpleTable/columnSizing.native.js +71 -0
- package/dist/jsx/components/SimpleTable/columnSizing.native.js.map +1 -0
- package/dist/jsx/components/SimpleTable/index.mjs +152 -98
- package/dist/jsx/components/SimpleTable/index.mjs.map +1 -1
- package/dist/jsx/components/SimpleTable/index.native.js +166 -110
- package/dist/jsx/components/SimpleTable/index.native.js.map +1 -1
- package/dist/jsx/components/TableInput/RowDetailEditor.mjs +1 -6
- package/dist/jsx/components/TableInput/RowDetailEditor.mjs.map +1 -1
- package/dist/jsx/components/TableInput/RowDetailEditor.native.js +1 -5
- package/dist/jsx/components/TableInput/RowDetailEditor.native.js.map +1 -1
- package/dist/jsx/components/TableInput/index.mjs +5 -20
- package/dist/jsx/components/TableInput/index.mjs.map +1 -1
- package/dist/jsx/components/TableInput/index.native.js +2 -11
- package/dist/jsx/components/TableInput/index.native.js.map +1 -1
- package/dist/jsx/index.js +2 -2
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +2 -2
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +1 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/package.json +12 -12
- package/src/components/ChildTable/ChildTable.stories.tsx +1 -2
- package/src/components/ChildTable/childTable.spec.tsx +2 -2
- package/src/components/ChildTable/childTable.zebra.spec.tsx +3 -3
- package/src/components/ChildTable/index.tsx +29 -26
- package/src/components/DataTable/DataTable.spec.tsx +49 -2
- package/src/components/DataTable/DataTable.stories.tsx +5 -5
- package/src/components/DataTable/DataTableCardControls.tsx +5 -10
- package/src/components/DataTable/DataTableContext.ts +5 -7
- package/src/components/DataTable/DataTableDocumentList.tsx +59 -21
- package/src/components/DataTable/DataTableInfiniteTail.tsx +1 -1
- package/src/components/DataTable/DataTableMobileCards.tsx +4 -9
- package/src/components/DataTable/DataTableRoot.tsx +900 -898
- package/src/components/DataTable/DataTableVirtualized.tsx +4 -2
- package/src/components/DataTable/FieldsInCells.stories.tsx +0 -1
- package/src/components/DataTable/compoundComponent.spec.tsx +7 -21
- package/src/components/DataTable/dataTableDocumentList.spec.tsx +78 -20
- package/src/components/DataTable/dataTableMobileCards.spec.tsx +19 -22
- package/src/components/DataTable/documentListSlots.ts +25 -6
- package/src/components/DataTable/footerLayout.spec.tsx +7 -7
- package/src/components/DataTable/index.native.tsx +329 -322
- package/src/components/DataTable/smallTableFooter.spec.tsx +61 -0
- package/src/components/DataTableCell/DataTableCell.stories.tsx +0 -2
- package/src/components/DataTableCell/index.tsx +3 -7
- package/src/components/DataTableColumnPinning/index.tsx +2 -1
- package/src/components/DataTableDateFilter/index.tsx +1 -1
- package/src/components/DataTableFilterButton/index.tsx +8 -5
- package/src/components/DataTableFilterChips/index.tsx +1 -1
- package/src/components/DataTableFilters/DataTableFilters.spec.tsx +3 -14
- package/src/components/DataTableFilters/DataTableFilters.stories.tsx +1 -6
- package/src/components/DataTableFilters/index.tsx +19 -17
- package/src/components/DataTableGrouping/index.tsx +9 -8
- package/src/components/DataTablePagination/DataTablePagination.spec.tsx +21 -11
- package/src/components/DataTablePagination/DataTablePagination.stories.tsx +2 -19
- package/src/components/DataTablePagination/DataTablePagination.width.spec.tsx +13 -13
- package/src/components/DataTablePagination/index.tsx +19 -15
- package/src/components/DataTableSearch/DataTableSearch.stories.tsx +1 -1
- package/src/components/DataTableSearch/index.tsx +7 -7
- package/src/components/DataTableToolbar/index.tsx +1 -7
- package/src/components/DataTableViewOptions/DataTableViewOptions.spec.tsx +5 -5
- package/src/components/DataTableViewOptions/DataTableViewOptions.stories.tsx +1 -1
- package/src/components/DataTableViewOptions/index.tsx +15 -6
- package/src/components/FilterOperatorValueEditor/FilterOperatorValueEditor.spec.tsx +17 -37
- package/src/components/KnobDialog.tsx +5 -37
- package/src/components/SavedFilterDropdown.tsx +0 -1
- package/src/components/SimpleTable/ScrollFrame.native.tsx +49 -0
- package/src/components/SimpleTable/ScrollFrame.tsx +18 -0
- package/src/components/SimpleTable/SimpleTable.stories.tsx +47 -0
- package/src/components/SimpleTable/columnSizing.spec.ts +88 -0
- package/src/components/SimpleTable/columnSizing.ts +46 -0
- package/src/components/SimpleTable/index.tsx +185 -112
- package/src/components/SimpleTable/simpleTable.spec.tsx +47 -19
- package/src/components/TableInput/RowDetailEditor.native.tsx +1 -3
- package/src/components/TableInput/RowDetailEditor.tsx +2 -10
- package/src/components/TableInput/index.native.tsx +3 -16
- package/src/components/TableInput/index.tsx +13 -24
- package/src/index.ts +1 -1
- package/src/types.ts +7 -2
- package/types/components/ChildTable/index.d.ts +3 -1
- package/types/components/ChildTable/index.d.ts.map +1 -1
- package/types/components/DataTable/DataTableCardControls.d.ts +2 -3
- package/types/components/DataTable/DataTableCardControls.d.ts.map +1 -1
- package/types/components/DataTable/DataTableContext.d.ts +4 -4
- package/types/components/DataTable/DataTableContext.d.ts.map +1 -1
- package/types/components/DataTable/DataTableDocumentList.d.ts +7 -4
- package/types/components/DataTable/DataTableDocumentList.d.ts.map +1 -1
- package/types/components/DataTable/DataTableMobileCards.d.ts +1 -2
- package/types/components/DataTable/DataTableMobileCards.d.ts.map +1 -1
- package/types/components/DataTable/DataTableRoot.d.ts +1 -3
- package/types/components/DataTable/DataTableRoot.d.ts.map +1 -1
- package/types/components/DataTable/DataTableVirtualized.d.ts.map +1 -1
- package/types/components/DataTable/documentListSlots.d.ts +7 -4
- package/types/components/DataTable/documentListSlots.d.ts.map +1 -1
- package/types/components/DataTable/index.native.d.ts +1 -1
- package/types/components/DataTable/index.native.d.ts.map +1 -1
- package/types/components/DataTableCell/index.d.ts +1 -3
- package/types/components/DataTableCell/index.d.ts.map +1 -1
- package/types/components/DataTableColumnPinning/index.d.ts.map +1 -1
- package/types/components/DataTableFilters/index.d.ts +6 -1
- package/types/components/DataTableFilters/index.d.ts.map +1 -1
- package/types/components/DataTableGrouping/index.d.ts.map +1 -1
- package/types/components/DataTablePagination/index.d.ts +8 -1
- package/types/components/DataTablePagination/index.d.ts.map +1 -1
- package/types/components/DataTableToolbar/index.d.ts +0 -1
- package/types/components/DataTableToolbar/index.d.ts.map +1 -1
- package/types/components/DataTableViewOptions/index.d.ts +6 -1
- package/types/components/DataTableViewOptions/index.d.ts.map +1 -1
- package/types/components/KnobDialog.d.ts +0 -7
- package/types/components/KnobDialog.d.ts.map +1 -1
- package/types/components/SavedFilterDropdown.d.ts.map +1 -1
- package/types/components/SimpleTable/ScrollFrame.d.ts +10 -0
- package/types/components/SimpleTable/ScrollFrame.d.ts.map +1 -0
- package/types/components/SimpleTable/ScrollFrame.native.d.ts +10 -0
- package/types/components/SimpleTable/ScrollFrame.native.d.ts.map +1 -0
- package/types/components/SimpleTable/columnSizing.d.ts +30 -0
- package/types/components/SimpleTable/columnSizing.d.ts.map +1 -0
- package/types/components/SimpleTable/index.d.ts +7 -12
- package/types/components/SimpleTable/index.d.ts.map +1 -1
- package/types/components/TableInput/RowDetailEditor.d.ts +1 -2
- package/types/components/TableInput/RowDetailEditor.d.ts.map +1 -1
- package/types/components/TableInput/RowDetailEditor.native.d.ts +1 -1
- package/types/components/TableInput/RowDetailEditor.native.d.ts.map +1 -1
- package/types/components/TableInput/index.d.ts +1 -6
- package/types/components/TableInput/index.d.ts.map +1 -1
- package/types/components/TableInput/index.native.d.ts +1 -6
- package/types/components/TableInput/index.native.d.ts.map +1 -1
- package/types/index.d.ts +1 -1
- package/types/index.d.ts.map +1 -1
- package/types/types.d.ts +7 -2
- package/types/types.d.ts.map +1 -1
|
@@ -71,7 +71,7 @@ function native(tableZebra: "on" | "off") {
|
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
describe("ChildTable tableZebra (K4)", () => {
|
|
74
|
-
it("web: off by default, odd rows take $
|
|
74
|
+
it("web: off by default, odd rows take $color3 when on", () => {
|
|
75
75
|
const off = web("off");
|
|
76
76
|
expect(off.map((row) => row.getAttribute("data-table-zebra"))).toEqual([
|
|
77
77
|
"off",
|
|
@@ -88,7 +88,7 @@ describe("ChildTable tableZebra (K4)", () => {
|
|
|
88
88
|
"even",
|
|
89
89
|
"odd",
|
|
90
90
|
]);
|
|
91
|
-
expect(on.map(fill)).toEqual([[], ["_bg-
|
|
91
|
+
expect(on.map(fill)).toEqual([[], ["_bg-color3"], [], ["_bg-color3"]]);
|
|
92
92
|
});
|
|
93
93
|
|
|
94
94
|
it("native: stripes the same rows as web", () => {
|
|
@@ -108,6 +108,6 @@ describe("ChildTable tableZebra (K4)", () => {
|
|
|
108
108
|
"even",
|
|
109
109
|
"odd",
|
|
110
110
|
]);
|
|
111
|
-
expect(on.map(fill)).toEqual([[], ["_bg-
|
|
111
|
+
expect(on.map(fill)).toEqual([[], ["_bg-color3"], [], ["_bg-color3"]]);
|
|
112
112
|
});
|
|
113
113
|
});
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { useCallback, type ReactNode } from "react";
|
|
2
2
|
import { renumberIdx } from "@multiplatform.one/components";
|
|
3
3
|
import { FieldLayout, useFormField, type AnyFormApi } from "@multiplatform.one/forms";
|
|
4
|
-
import {
|
|
4
|
+
import { Surface } from "@multiplatform.one/theme";
|
|
5
|
+
import { useProps, YStack, type SizeTokens } from "tamagui";
|
|
5
6
|
import { TableInput } from "../TableInput";
|
|
6
7
|
import type { ChildCellHidden } from "../TableInput/shared";
|
|
7
8
|
import type { DataTableColumn, DataTableData } from "../../types";
|
|
@@ -17,7 +18,8 @@ export type ChildTableProps<TRow extends DataTableData = DataTableData> = {
|
|
|
17
18
|
disabled?: boolean;
|
|
18
19
|
readOnly?: boolean;
|
|
19
20
|
skeleton?: boolean;
|
|
20
|
-
|
|
21
|
+
/** Control size token for the field and every cell editor (`$3` for a tighter grid). */
|
|
22
|
+
size?: SizeTokens;
|
|
21
23
|
minRows?: number;
|
|
22
24
|
maxRows?: number;
|
|
23
25
|
showRowNumbers?: boolean;
|
|
@@ -82,7 +84,7 @@ export function ChildTable<TRow extends DataTableData = DataTableData>(
|
|
|
82
84
|
disabled,
|
|
83
85
|
readOnly,
|
|
84
86
|
skeleton,
|
|
85
|
-
|
|
87
|
+
size,
|
|
86
88
|
minRows,
|
|
87
89
|
maxRows,
|
|
88
90
|
showRowNumbers = true,
|
|
@@ -99,7 +101,7 @@ export function ChildTable<TRow extends DataTableData = DataTableData>(
|
|
|
99
101
|
isCellHidden,
|
|
100
102
|
} = useProps(props);
|
|
101
103
|
|
|
102
|
-
const { knobProps, id, resolvedForm } = useFormField({ form, id: idProp,
|
|
104
|
+
const { knobProps, id, resolvedForm } = useFormField({ form, id: idProp, size });
|
|
103
105
|
const formBound = !!resolvedForm && !!name;
|
|
104
106
|
const hasLayout = label || error || helperText || required;
|
|
105
107
|
const enableReorder = enableReorderProp ?? !(readOnly || disabled);
|
|
@@ -119,28 +121,29 @@ export function ChildTable<TRow extends DataTableData = DataTableData>(
|
|
|
119
121
|
const Input = TableInput<TRow>;
|
|
120
122
|
|
|
121
123
|
const table = (
|
|
122
|
-
<
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
124
|
+
<Surface size={size}>
|
|
125
|
+
<Input
|
|
126
|
+
name={name}
|
|
127
|
+
form={resolvedForm}
|
|
128
|
+
validators={validators}
|
|
129
|
+
required={required}
|
|
130
|
+
skeleton={skeleton}
|
|
131
|
+
data={value ?? []}
|
|
132
|
+
onChange={emitChange}
|
|
133
|
+
columns={columns ?? []}
|
|
134
|
+
defaultRow={defaultRow}
|
|
135
|
+
readOnly={readOnly || disabled}
|
|
136
|
+
minRows={minRows}
|
|
137
|
+
maxRows={maxRows}
|
|
138
|
+
showRowNumbers={showRowNumbers}
|
|
139
|
+
showAddRow={showAddRow && !readOnly && !disabled}
|
|
140
|
+
showDeleteRow={showDeleteRow && !readOnly && !disabled}
|
|
141
|
+
enableReorder={enableReorder && !readOnly && !disabled}
|
|
142
|
+
rowDetail={rowDetail}
|
|
143
|
+
detailColumns={detailColumns}
|
|
144
|
+
isCellHidden={isCellHidden}
|
|
145
|
+
/>
|
|
146
|
+
</Surface>
|
|
144
147
|
);
|
|
145
148
|
|
|
146
149
|
if (!hasLayout && !formBound) return table;
|
|
@@ -143,7 +143,7 @@ describe("DataTable", () => {
|
|
|
143
143
|
|
|
144
144
|
it("should apply different sizes", () => {
|
|
145
145
|
const { container } = renderWithProviders(
|
|
146
|
-
<DataTable data={sampleData} columns={columns} size="
|
|
146
|
+
<DataTable data={sampleData} columns={columns} size="$3" onStateChange={vi.fn()} />,
|
|
147
147
|
);
|
|
148
148
|
|
|
149
149
|
// In test env sm===false → mobile card view renders (no <table> element)
|
|
@@ -152,7 +152,7 @@ describe("DataTable", () => {
|
|
|
152
152
|
|
|
153
153
|
it("should apply different sizes (large)", () => {
|
|
154
154
|
const { container } = renderWithProviders(
|
|
155
|
-
<DataTable data={sampleData} columns={columns} size="
|
|
155
|
+
<DataTable data={sampleData} columns={columns} size="$5" onStateChange={vi.fn()} />,
|
|
156
156
|
);
|
|
157
157
|
|
|
158
158
|
// In test env sm===false → mobile card view renders (no <table> element)
|
|
@@ -930,3 +930,50 @@ describe("DataTable", () => {
|
|
|
930
930
|
});
|
|
931
931
|
});
|
|
932
932
|
});
|
|
933
|
+
|
|
934
|
+
describe("DataTable size token (WP-c2)", () => {
|
|
935
|
+
type Person = { id: number; firstName: string };
|
|
936
|
+
const people: Person[] = [
|
|
937
|
+
{ id: 1, firstName: "John" },
|
|
938
|
+
{ id: 2, firstName: "Jane" },
|
|
939
|
+
];
|
|
940
|
+
const editable: DataTableColumn<Person>[] = [
|
|
941
|
+
{ accessorKey: "firstName", header: "First Name", field: "input" },
|
|
942
|
+
{ accessorKey: "id", header: "ID" },
|
|
943
|
+
];
|
|
944
|
+
|
|
945
|
+
function renderSized(size?: "$3" | "$5") {
|
|
946
|
+
return renderWithProviders(
|
|
947
|
+
<DataTable
|
|
948
|
+
data={people}
|
|
949
|
+
columns={editable}
|
|
950
|
+
layout="table"
|
|
951
|
+
size={size}
|
|
952
|
+
enableGlobalSearch
|
|
953
|
+
enableFiltering
|
|
954
|
+
onDataChange={vi.fn()}
|
|
955
|
+
/>,
|
|
956
|
+
);
|
|
957
|
+
}
|
|
958
|
+
|
|
959
|
+
it('size="$3" renders the toolbar controls at $3 and cell controls one key below', () => {
|
|
960
|
+
const { container } = renderSized("$3");
|
|
961
|
+
const search = screen.getByLabelText("Search table data").closest("[data-size-token]");
|
|
962
|
+
expect(search?.getAttribute("data-size-token")).toBe("$3");
|
|
963
|
+
const cellBoxes = container.querySelectorAll(
|
|
964
|
+
"[role='cell'] [data-ring-target='box'][data-size-token]",
|
|
965
|
+
);
|
|
966
|
+
expect(cellBoxes.length).toBeGreaterThan(0);
|
|
967
|
+
for (const box of Array.from(cellBoxes)) {
|
|
968
|
+
expect(box.getAttribute("data-size-token")).toBe("$2");
|
|
969
|
+
}
|
|
970
|
+
});
|
|
971
|
+
|
|
972
|
+
it("a default table keeps the toolbar at the ambient token and cells at $3", () => {
|
|
973
|
+
const { container } = renderSized();
|
|
974
|
+
const search = screen.getByLabelText("Search table data").closest("[data-size-token]");
|
|
975
|
+
expect(search?.getAttribute("data-size-token")).toBe("$true");
|
|
976
|
+
const box = container.querySelector("[role='cell'] [data-ring-target='box'][data-size-token]");
|
|
977
|
+
expect(box?.getAttribute("data-size-token")).toBe("$3");
|
|
978
|
+
});
|
|
979
|
+
});
|
|
@@ -325,8 +325,8 @@ const AdvancedTableStory = () => {
|
|
|
325
325
|
renderFilters={(props) => (
|
|
326
326
|
<DataTableFilters {...props} availableColumns={columnsWithCounts} maxFilters={5} />
|
|
327
327
|
)}
|
|
328
|
-
renderPagination={(props) => <DataTablePagination {...props}
|
|
329
|
-
size="
|
|
328
|
+
renderPagination={(props) => <DataTablePagination {...props} size="$3" />}
|
|
329
|
+
size="$true"
|
|
330
330
|
aria-label="User management table"
|
|
331
331
|
/>
|
|
332
332
|
</YStack>
|
|
@@ -347,7 +347,7 @@ const SimpleTableStory = () => {
|
|
|
347
347
|
enableSorting={true}
|
|
348
348
|
enablePagination={true}
|
|
349
349
|
enableGlobalSearch={true}
|
|
350
|
-
size="
|
|
350
|
+
size="$3"
|
|
351
351
|
/>
|
|
352
352
|
</View>
|
|
353
353
|
);
|
|
@@ -549,7 +549,7 @@ export const Compact: Story = {
|
|
|
549
549
|
args: {
|
|
550
550
|
data: sampleData,
|
|
551
551
|
columns: basicColumns as DataTableColumn<Record<string, any>>[],
|
|
552
|
-
size: "
|
|
552
|
+
size: "$3",
|
|
553
553
|
},
|
|
554
554
|
};
|
|
555
555
|
|
|
@@ -557,7 +557,7 @@ export const Large: Story = {
|
|
|
557
557
|
args: {
|
|
558
558
|
data: sampleData,
|
|
559
559
|
columns: basicColumns as DataTableColumn<Record<string, any>>[],
|
|
560
|
-
size: "
|
|
560
|
+
size: "$5",
|
|
561
561
|
},
|
|
562
562
|
};
|
|
563
563
|
|
|
@@ -34,7 +34,6 @@ export interface DataTableCardControlsProps {
|
|
|
34
34
|
type: DataTableColumnType;
|
|
35
35
|
options?: FacetedFilterOption[];
|
|
36
36
|
}>;
|
|
37
|
-
compact?: boolean;
|
|
38
37
|
/** Table-level disabled state (UX-011): controls render inert + LC-40 visible. */
|
|
39
38
|
disabled?: boolean;
|
|
40
39
|
}
|
|
@@ -46,12 +45,11 @@ function getColumnLabel(column: any): string {
|
|
|
46
45
|
|
|
47
46
|
export function DataTableCardSortControl({
|
|
48
47
|
table,
|
|
49
|
-
compact = false,
|
|
50
48
|
disabled = false,
|
|
51
49
|
contained = false,
|
|
52
|
-
}: Pick<DataTableCardControlsProps, "table" | "
|
|
50
|
+
}: Pick<DataTableCardControlsProps, "table" | "disabled"> & { contained?: boolean }) {
|
|
53
51
|
const { t } = useTranslation();
|
|
54
|
-
const { knobProps } = useResolvedKnobs({ component: "DataTable"
|
|
52
|
+
const { knobProps } = useResolvedKnobs({ component: "DataTable" });
|
|
55
53
|
const chrome = dataTableChrome(String(knobProps.sizeToken));
|
|
56
54
|
const [sortMenuOpen, setSortMenuOpen] = useState(false);
|
|
57
55
|
const sortableColumns = table.getVisibleLeafColumns().filter((col: any) => col.getCanSort());
|
|
@@ -141,11 +139,10 @@ export function DataTableCardControls({
|
|
|
141
139
|
enableSorting = false,
|
|
142
140
|
enableFiltering = false,
|
|
143
141
|
availableColumns = [],
|
|
144
|
-
compact = false,
|
|
145
142
|
disabled = false,
|
|
146
143
|
}: DataTableCardControlsProps) {
|
|
147
144
|
const { t } = useTranslation();
|
|
148
|
-
const { disabledState } = useResolvedKnobs({ component: "DataTable"
|
|
145
|
+
const { disabledState } = useResolvedKnobs({ component: "DataTable" });
|
|
149
146
|
if (!enableSorting && !enableFiltering) return null;
|
|
150
147
|
return (
|
|
151
148
|
<XStack
|
|
@@ -156,9 +153,7 @@ export function DataTableCardControls({
|
|
|
156
153
|
role="toolbar"
|
|
157
154
|
aria-label={t("Card list controls")}
|
|
158
155
|
>
|
|
159
|
-
{enableSorting &&
|
|
160
|
-
<DataTableCardSortControl table={table} compact={compact} disabled={disabled} />
|
|
161
|
-
)}
|
|
156
|
+
{enableSorting && <DataTableCardSortControl table={table} disabled={disabled} />}
|
|
162
157
|
{enableFiltering && availableColumns.length > 0 && (
|
|
163
158
|
// DataTableFilters (chrome) has no disabled API — the wrapper is the
|
|
164
159
|
// LC-40 carrier and interaction gate for the disabled table.
|
|
@@ -167,7 +162,7 @@ export function DataTableCardControls({
|
|
|
167
162
|
? { ...disabledState.chromeKnobProps, pointerEvents: "none" as const }
|
|
168
163
|
: {})}
|
|
169
164
|
>
|
|
170
|
-
<DataTableFilters
|
|
165
|
+
<DataTableFilters size="$3" availableColumns={availableColumns} />
|
|
171
166
|
</View>
|
|
172
167
|
)}
|
|
173
168
|
</XStack>
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* DataTableContext - styled context for DataTable compound component.
|
|
3
3
|
*
|
|
4
|
-
* Shares
|
|
5
|
-
*
|
|
4
|
+
* Shares the table's size token across the compound tree so sub-components
|
|
5
|
+
* render with consistent sizing without prop drilling.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { createStyledContext } from "tamagui";
|
|
8
|
+
import { createStyledContext, type SizeTokens } from "tamagui";
|
|
9
9
|
|
|
10
10
|
export const DataTableContext = createStyledContext<{
|
|
11
|
-
size:
|
|
12
|
-
compact: boolean;
|
|
11
|
+
size: SizeTokens;
|
|
13
12
|
}>({
|
|
14
|
-
size: "
|
|
15
|
-
compact: false,
|
|
13
|
+
size: "$true",
|
|
16
14
|
});
|
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* DataTableDocumentList — subject-led document rows (desk List view).
|
|
3
3
|
*
|
|
4
|
-
* One horizontal row per document: checkbox | title
|
|
5
|
-
*
|
|
4
|
+
* One horizontal row per document: checkbox | title over one wrapping meta
|
|
5
|
+
* line | fixed-width numeric/date columns (ListRowMeta) | indicators | actions.
|
|
6
|
+
* A record is one 48–56 px row: metas never stack one line per column. No key-value labels, no card chrome, no grid headers,
|
|
6
7
|
* no wrapping into a column grid (Polaris Index / Frappe list). Stacked-group
|
|
7
8
|
* radius (LC-72): first row top corners, last row bottom, interiors square.
|
|
9
|
+
* In the compact size class the trailing columns, indicators and actions
|
|
10
|
+
* wrap in one line under the subject so they never narrow the title, and an
|
|
11
|
+
* empty meta field is left out (FZ-7374).
|
|
8
12
|
* LC-71: selected = fill; keyboard ring rides the row when it is the tab stop.
|
|
9
13
|
*/
|
|
10
14
|
|
|
11
|
-
import { EmptyState } from "@multiplatform.one/components";
|
|
15
|
+
import { EmptyState, ListRowMeta } from "@multiplatform.one/components";
|
|
12
16
|
import { Checkbox } from "@multiplatform.one/forms";
|
|
13
17
|
import {
|
|
14
18
|
getGroupPosition,
|
|
15
19
|
hairline,
|
|
16
20
|
stackRadiusProps,
|
|
21
|
+
useLayoutSizeClass,
|
|
17
22
|
useResolvedKnobs,
|
|
18
23
|
} from "@multiplatform.one/theme";
|
|
19
24
|
import { TableCellContext } from "@multiplatform.one/table-primitives";
|
|
@@ -50,7 +55,6 @@ export interface DataTableDocumentListProps<TData> {
|
|
|
50
55
|
disabled?: boolean;
|
|
51
56
|
hasActiveFilters: boolean;
|
|
52
57
|
renderCellContent: (cell: any, rowIndex: number, rowData: TData) => React.ReactNode;
|
|
53
|
-
compact?: boolean;
|
|
54
58
|
selectRowLabel?: (row: any, rowIndex: number) => string;
|
|
55
59
|
getRowPressProps?: (row: any, rowIndex: number, variant?: "row" | "card") => Record<string, any>;
|
|
56
60
|
/** In-flight refetch: do not paint empty-state over a blank body. */
|
|
@@ -69,13 +73,13 @@ export function DataTableDocumentList<TData extends Record<string, any>>({
|
|
|
69
73
|
disabled = false,
|
|
70
74
|
hasActiveFilters,
|
|
71
75
|
renderCellContent,
|
|
72
|
-
compact = false,
|
|
73
76
|
selectRowLabel,
|
|
74
77
|
getRowPressProps,
|
|
75
78
|
queryInFlight = false,
|
|
76
79
|
}: DataTableDocumentListProps<TData>) {
|
|
77
80
|
const { t } = useTranslation();
|
|
78
|
-
const { knobProps } = useResolvedKnobs({ component: "DataTable"
|
|
81
|
+
const { knobProps } = useResolvedKnobs({ component: "DataTable" });
|
|
82
|
+
const compact = useLayoutSizeClass() === "compact";
|
|
79
83
|
const chrome = dataTableChrome(String(knobProps.sizeToken));
|
|
80
84
|
const tableZebraOn = knobProps.tableZebra === "on";
|
|
81
85
|
const rowPad = knobProps.panelPadding.padding;
|
|
@@ -87,6 +91,7 @@ export function DataTableDocumentList<TData extends Record<string, any>>({
|
|
|
87
91
|
const titleCell = pickDocumentListTitleCell(visibleCells);
|
|
88
92
|
const {
|
|
89
93
|
indicators,
|
|
94
|
+
trailing,
|
|
90
95
|
metas: metaCells,
|
|
91
96
|
actions,
|
|
92
97
|
} = partitionDocumentListCells(visibleCells, titleCell);
|
|
@@ -106,7 +111,16 @@ export function DataTableDocumentList<TData extends Record<string, any>>({
|
|
|
106
111
|
);
|
|
107
112
|
const indicatorCells = indicators.map((cell: any) => slotCell(cell, "indicator"));
|
|
108
113
|
const actionCells = actions.map((cell: any) => slotCell(cell, "actions"));
|
|
109
|
-
|
|
114
|
+
// A compact row drops the fixed column width: the values wrap under
|
|
115
|
+
// the subject with the indicators and actions.
|
|
116
|
+
const trailingCells = trailing.map((cell: any) => (
|
|
117
|
+
<ListRowMeta key={cell.id} width={compact ? undefined : "$10"}>
|
|
118
|
+
<TableCellContext.Provider value={{ inTableCell: true, isHeader: false }}>
|
|
119
|
+
{renderCellContent(cell, index, rowData)}
|
|
120
|
+
</TableCellContext.Provider>
|
|
121
|
+
</ListRowMeta>
|
|
122
|
+
));
|
|
123
|
+
const compactLine = [...trailingCells, ...indicatorCells, ...actionCells];
|
|
110
124
|
const position = getGroupPosition(index, tableRows.length);
|
|
111
125
|
const corners = stackRadiusProps(position, knobProps.borderRadiusOuter.borderRadius);
|
|
112
126
|
const selected = Boolean(enableRowSelection && row.getIsSelected?.());
|
|
@@ -157,7 +171,6 @@ export function DataTableDocumentList<TData extends Record<string, any>>({
|
|
|
157
171
|
row: index + 1,
|
|
158
172
|
}),
|
|
159
173
|
}}
|
|
160
|
-
compact={compact}
|
|
161
174
|
/>
|
|
162
175
|
)}
|
|
163
176
|
<YStack flex={1} minWidth={0} gap="$1" overflow="hidden">
|
|
@@ -170,30 +183,54 @@ export function DataTableDocumentList<TData extends Record<string, any>>({
|
|
|
170
183
|
) : (
|
|
171
184
|
<View flex={1} />
|
|
172
185
|
)}
|
|
173
|
-
{metas.
|
|
174
|
-
<
|
|
175
|
-
key={cell.id}
|
|
186
|
+
{metas.length > 0 ? (
|
|
187
|
+
<XStack
|
|
176
188
|
minWidth={0}
|
|
189
|
+
flexWrap="wrap"
|
|
190
|
+
alignItems="center"
|
|
191
|
+
columnGap="$3"
|
|
192
|
+
rowGap="$1"
|
|
177
193
|
opacity={0.7}
|
|
178
194
|
overflow="hidden"
|
|
179
|
-
{...({ "data-list-slot": "meta" } as any)}
|
|
195
|
+
{...({ "data-list-slot": "meta-line" } as any)}
|
|
180
196
|
>
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
197
|
+
{metas.map((cell: any) => (
|
|
198
|
+
<View
|
|
199
|
+
key={cell.id}
|
|
200
|
+
minWidth={0}
|
|
201
|
+
flexShrink={1}
|
|
202
|
+
overflow="hidden"
|
|
203
|
+
{...({ "data-list-slot": "meta" } as any)}
|
|
204
|
+
>
|
|
205
|
+
<TableCellContext.Provider value={{ inTableCell: true, isHeader: false }}>
|
|
206
|
+
{renderCellContent(cell, index, rowData)}
|
|
207
|
+
</TableCellContext.Provider>
|
|
208
|
+
</View>
|
|
209
|
+
))}
|
|
210
|
+
</XStack>
|
|
211
|
+
) : null}
|
|
212
|
+
{compact && compactLine.length > 0 ? (
|
|
187
213
|
<XStack
|
|
188
214
|
gap="$2"
|
|
189
215
|
alignItems="center"
|
|
190
216
|
flexWrap="wrap"
|
|
191
|
-
{...({ "data-list-slot": "trailing" } as any)}
|
|
217
|
+
{...({ "data-list-slot": "trailing-line" } as any)}
|
|
192
218
|
>
|
|
193
|
-
{
|
|
219
|
+
{compactLine}
|
|
194
220
|
</XStack>
|
|
195
221
|
) : null}
|
|
196
222
|
</YStack>
|
|
223
|
+
{!compact && trailing.length > 0 ? (
|
|
224
|
+
<XStack
|
|
225
|
+
flexShrink={0}
|
|
226
|
+
gap="$3"
|
|
227
|
+
alignItems="center"
|
|
228
|
+
flexWrap="nowrap"
|
|
229
|
+
{...({ "data-list-slot": "trailing-cluster" } as any)}
|
|
230
|
+
>
|
|
231
|
+
{trailingCells}
|
|
232
|
+
</XStack>
|
|
233
|
+
) : null}
|
|
197
234
|
{!compact && indicators.length > 0 ? (
|
|
198
235
|
<XStack flexShrink={0} gap="$2" alignItems="center" flexWrap="nowrap" maxWidth="40%">
|
|
199
236
|
{indicatorCells}
|
|
@@ -220,6 +257,7 @@ export function DataTableDocumentList<TData extends Record<string, any>>({
|
|
|
220
257
|
t,
|
|
221
258
|
tableRows.length,
|
|
222
259
|
tableZebraOn,
|
|
260
|
+
compact,
|
|
223
261
|
],
|
|
224
262
|
);
|
|
225
263
|
|
|
@@ -234,7 +272,7 @@ export function DataTableDocumentList<TData extends Record<string, any>>({
|
|
|
234
272
|
{tableRows.length === 0 ? (
|
|
235
273
|
queryInFlight ? null : (
|
|
236
274
|
<EmptyState
|
|
237
|
-
|
|
275
|
+
size="$3"
|
|
238
276
|
backgroundColor="$color1"
|
|
239
277
|
{...knobProps.borderRadius}
|
|
240
278
|
aria-live="polite"
|
|
@@ -126,7 +126,6 @@ export interface DataTableMobileCardsProps<TData> {
|
|
|
126
126
|
selectAllChecked?: boolean;
|
|
127
127
|
selectAllIndeterminate?: boolean;
|
|
128
128
|
onToggleSelectAll?: () => void;
|
|
129
|
-
compact?: boolean;
|
|
130
129
|
/**
|
|
131
130
|
* Accessible name for a row's selection checkbox ("Select row {identity}",
|
|
132
131
|
* built by DataTableRoot so cards and grid share one naming source).
|
|
@@ -159,13 +158,12 @@ export function DataTableMobileCards<TData extends Record<string, any>>({
|
|
|
159
158
|
selectAllChecked = false,
|
|
160
159
|
selectAllIndeterminate = false,
|
|
161
160
|
onToggleSelectAll,
|
|
162
|
-
compact = false,
|
|
163
161
|
selectRowLabel,
|
|
164
162
|
getRowPressProps,
|
|
165
163
|
queryInFlight = false,
|
|
166
164
|
}: DataTableMobileCardsProps<TData>) {
|
|
167
165
|
const { t } = useTranslation();
|
|
168
|
-
const { knobProps } = useResolvedKnobs({ component: "DataTable"
|
|
166
|
+
const { knobProps } = useResolvedKnobs({ component: "DataTable" });
|
|
169
167
|
const tableZebraOn = knobProps.tableZebra === "on";
|
|
170
168
|
|
|
171
169
|
const renderCell = useCallback(
|
|
@@ -241,7 +239,6 @@ export function DataTableMobileCards<TData extends Record<string, any>>({
|
|
|
241
239
|
row: index + 1,
|
|
242
240
|
}),
|
|
243
241
|
}}
|
|
244
|
-
compact={compact}
|
|
245
242
|
/>
|
|
246
243
|
)}
|
|
247
244
|
{titleCell ? (
|
|
@@ -258,7 +255,7 @@ export function DataTableMobileCards<TData extends Record<string, any>>({
|
|
|
258
255
|
<View flex={1} />
|
|
259
256
|
)}
|
|
260
257
|
{showRowNumbers && (
|
|
261
|
-
<Text fontSize={knobProps.sizeToken} color="$color10"
|
|
258
|
+
<Text fontSize={knobProps.sizeToken} color="$color10">
|
|
262
259
|
#{index + 1}
|
|
263
260
|
</Text>
|
|
264
261
|
)}
|
|
@@ -321,7 +318,7 @@ export function DataTableMobileCards<TData extends Record<string, any>>({
|
|
|
321
318
|
>
|
|
322
319
|
{figures.map((cell: any) => (
|
|
323
320
|
<XStack key={cell.id} alignItems="center" gap="$1.5" flexShrink={1} minWidth={0}>
|
|
324
|
-
<Text fontSize={knobProps.sizeToken} color="$color10"
|
|
321
|
+
<Text fontSize={knobProps.sizeToken} color="$color10">
|
|
325
322
|
{getColumnLabel(cell)}
|
|
326
323
|
</Text>
|
|
327
324
|
<View flexShrink={1} minWidth={0}>
|
|
@@ -357,7 +354,6 @@ export function DataTableMobileCards<TData extends Record<string, any>>({
|
|
|
357
354
|
minRows,
|
|
358
355
|
renderCell,
|
|
359
356
|
onDeleteRow,
|
|
360
|
-
compact,
|
|
361
357
|
knobProps,
|
|
362
358
|
tableZebraOn,
|
|
363
359
|
t,
|
|
@@ -386,7 +382,6 @@ export function DataTableMobileCards<TData extends Record<string, any>>({
|
|
|
386
382
|
}}
|
|
387
383
|
disabled={disabled}
|
|
388
384
|
checkboxProps={{ "aria-label": t("Select all rows") }}
|
|
389
|
-
compact={compact}
|
|
390
385
|
/>
|
|
391
386
|
<Text fontSize={knobProps.sizeToken} color="$color10">
|
|
392
387
|
{t("Select all")}
|
|
@@ -396,7 +391,7 @@ export function DataTableMobileCards<TData extends Record<string, any>>({
|
|
|
396
391
|
{tableRows.length === 0 ? (
|
|
397
392
|
queryInFlight ? null : (
|
|
398
393
|
<EmptyState
|
|
399
|
-
|
|
394
|
+
size="$3"
|
|
400
395
|
backgroundColor="$color1"
|
|
401
396
|
{...knobProps.borderRadius}
|
|
402
397
|
aria-live="polite"
|