@multiplatform.one/table 7.34.4 → 7.35.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 +149 -96
- package/dist/cjs/components/SimpleTable/index.native.js +163 -109
- 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/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 +150 -97
- package/dist/esm/components/SimpleTable/index.mjs.map +1 -1
- package/dist/esm/components/SimpleTable/index.native.js +164 -110
- 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/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 +150 -97
- package/dist/jsx/components/SimpleTable/index.mjs.map +1 -1
- package/dist/jsx/components/SimpleTable/index.native.js +163 -109
- 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/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 +73 -0
- package/src/components/SimpleTable/columnSizing.ts +39 -0
- package/src/components/SimpleTable/index.tsx +184 -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/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 +24 -0
- package/types/components/SimpleTable/columnSizing.d.ts.map +1 -0
- package/types/components/SimpleTable/index.d.ts +6 -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/types.d.ts +7 -2
- package/types/types.d.ts.map +1 -1
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A small table (`size="$3"`) forwards `$3` to its toolbar, rows and cells,
|
|
3
|
+
* but its pagination footer stays at the ambient token: the pager's page
|
|
4
|
+
* controls hold the 44px press floor, so a `$3` rows-per-page Select would
|
|
5
|
+
* sit 8px short of them in one row (LC-100, LC-78).
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
9
|
+
import { defaultScaleInputs, generateScale } from "@multiplatform.one/theme";
|
|
10
|
+
import { screen } from "@testing-library/react";
|
|
11
|
+
import { describe, expect, it, vi } from "vitest";
|
|
12
|
+
import type { DataTableColumn } from "../../types";
|
|
13
|
+
import { DataTable } from "./index";
|
|
14
|
+
import { DataTable as NativeDataTable } from "./index.native";
|
|
15
|
+
|
|
16
|
+
vi.mock("@shopify/flash-list", () => ({ FlashList: () => null }));
|
|
17
|
+
|
|
18
|
+
type Row = { id: number; name: string };
|
|
19
|
+
|
|
20
|
+
const rows: Row[] = Array.from({ length: 30 }, (_, i) => ({ id: i + 1, name: `Row ${i + 1}` }));
|
|
21
|
+
const columns: DataTableColumn<Row>[] = [
|
|
22
|
+
{ accessorKey: "name", header: "Name", meta: { role: "title" } },
|
|
23
|
+
{ accessorKey: "id", header: "ID" },
|
|
24
|
+
];
|
|
25
|
+
const size = generateScale(defaultScaleInputs).tokens.size;
|
|
26
|
+
|
|
27
|
+
describe.each([
|
|
28
|
+
{ root: "web", Table: DataTable },
|
|
29
|
+
{ root: "native", Table: NativeDataTable },
|
|
30
|
+
])("a small $root DataTable", ({ Table }) => {
|
|
31
|
+
it("keeps its rows-per-page Select at the ambient token while the toolbar takes $3", () => {
|
|
32
|
+
renderWithProviders(
|
|
33
|
+
<Table
|
|
34
|
+
data={rows}
|
|
35
|
+
columns={columns}
|
|
36
|
+
layout="table"
|
|
37
|
+
size="$3"
|
|
38
|
+
enablePagination
|
|
39
|
+
enableGlobalSearch
|
|
40
|
+
/>,
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
expect(
|
|
44
|
+
screen
|
|
45
|
+
.getByLabelText("Search table data")
|
|
46
|
+
.closest("[data-visual-height]")
|
|
47
|
+
?.getAttribute("data-visual-height"),
|
|
48
|
+
).toBe(String(size.$3));
|
|
49
|
+
expect(screen.getByLabelText("Select rows per page").getAttribute("data-visual-height")).toBe(
|
|
50
|
+
String(size.$true),
|
|
51
|
+
);
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
it("paints the Select at $true in a default-size table too", () => {
|
|
55
|
+
renderWithProviders(<Table data={rows} columns={columns} layout="table" enablePagination />);
|
|
56
|
+
|
|
57
|
+
expect(screen.getByLabelText("Select rows per page").getAttribute("data-visual-height")).toBe(
|
|
58
|
+
String(size.$true),
|
|
59
|
+
);
|
|
60
|
+
});
|
|
61
|
+
});
|
|
@@ -82,7 +82,6 @@ const meta: Meta<typeof DataTableCell> = {
|
|
|
82
82
|
field: { control: "select", options: FIELD_TYPES },
|
|
83
83
|
readOnly: { control: "boolean" },
|
|
84
84
|
disabled: { control: "boolean" },
|
|
85
|
-
compact: { control: "boolean" },
|
|
86
85
|
size: { control: "text" },
|
|
87
86
|
},
|
|
88
87
|
};
|
|
@@ -345,7 +344,6 @@ export const Playground: Story = {
|
|
|
345
344
|
value: "hello",
|
|
346
345
|
readOnly: false,
|
|
347
346
|
disabled: false,
|
|
348
|
-
compact: true,
|
|
349
347
|
columnId: "playground",
|
|
350
348
|
rowIndex: 0,
|
|
351
349
|
fieldProps: { options: statusOptions, placeholder: "Type here" },
|
|
@@ -88,8 +88,6 @@ export interface DataTableCellProps {
|
|
|
88
88
|
rowData?: any;
|
|
89
89
|
/** Size token for field sizing */
|
|
90
90
|
size?: string;
|
|
91
|
-
/** Use compact density (tighter layout gaps; control size unchanged) */
|
|
92
|
-
compact?: boolean;
|
|
93
91
|
/**
|
|
94
92
|
* For linked daterange columns: the value of the linked (end date) column.
|
|
95
93
|
* When set, renders a DateRangePicker with this cell as "from" and linkedValue as "to".
|
|
@@ -113,13 +111,12 @@ export function DataTableCell({
|
|
|
113
111
|
rowIndex: _rowIndex,
|
|
114
112
|
rowData,
|
|
115
113
|
size,
|
|
116
|
-
compact,
|
|
117
114
|
linkedValue: _linkedValue,
|
|
118
115
|
onLinkedChange: _onLinkedChange,
|
|
119
116
|
}: DataTableCellProps) {
|
|
120
|
-
//
|
|
121
|
-
//
|
|
122
|
-
const { knobProps } = useResolvedKnobs({ size
|
|
117
|
+
// A table cell sits under the row's <Surface size="$3">, so its fields
|
|
118
|
+
// clamp to the row's control token.
|
|
119
|
+
const { knobProps } = useResolvedKnobs({ size });
|
|
123
120
|
const cellName = (fieldProps as any)["aria-label"] ?? columnLabel ?? columnId;
|
|
124
121
|
const {
|
|
125
122
|
options,
|
|
@@ -453,7 +450,6 @@ export function DataTableCell({
|
|
|
453
450
|
maxStars={stars}
|
|
454
451
|
starIcon={restProps.starIcon ?? CellStar}
|
|
455
452
|
size={knobProps.sizeToken}
|
|
456
|
-
compact
|
|
457
453
|
/>
|
|
458
454
|
</CellWrapper>
|
|
459
455
|
);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { componentColors } from "@multiplatform.one/components";
|
|
1
2
|
import { PushPinIcon } from "@phosphor-icons/react";
|
|
2
3
|
import {
|
|
3
4
|
MIN_PRESS_TARGET,
|
|
@@ -54,7 +55,7 @@ const PinnedIndicator = styled(View, {
|
|
|
54
55
|
top: 0,
|
|
55
56
|
bottom: 0,
|
|
56
57
|
width: 3,
|
|
57
|
-
backgroundColor:
|
|
58
|
+
backgroundColor: componentColors.selection.ring,
|
|
58
59
|
variants: {
|
|
59
60
|
position: {
|
|
60
61
|
left: {
|
|
@@ -87,7 +87,7 @@ export function DataTableDateFilter({
|
|
|
87
87
|
const triggerMinWidth = sz === "$3" ? 160 : sz === "$5" ? 240 : 200;
|
|
88
88
|
const popoverMinWidth = sz === "$3" ? 280 : sz === "$5" ? 360 : 320;
|
|
89
89
|
// Row height derives from the same size token the preset Buttons render
|
|
90
|
-
// at, so the whole-row window stays exact under every size
|
|
90
|
+
// at, so the whole-row window stays exact under every size token.
|
|
91
91
|
const tokens = getTokens({ prefixed: true });
|
|
92
92
|
const sizeTokens = tokens.size as Record<string, unknown>;
|
|
93
93
|
const presetRowHeight = Math.round(
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
wasKeyboardFocus,
|
|
23
23
|
} from "@multiplatform.one/theme";
|
|
24
24
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
25
|
-
import { Text, View, XStack, YStack } from "tamagui";
|
|
25
|
+
import { SizableText, Text, View, XStack, YStack } from "tamagui";
|
|
26
26
|
import { t } from "../../shared/t";
|
|
27
27
|
import type { FilterOperator, FilterValue, ResolvedFilterField } from "../../types";
|
|
28
28
|
import {
|
|
@@ -309,7 +309,6 @@ function FilterButton({ contentTrigger = false }: { contentTrigger?: boolean })
|
|
|
309
309
|
const trigger = (
|
|
310
310
|
<Button
|
|
311
311
|
size="$3"
|
|
312
|
-
compact
|
|
313
312
|
{...(activeChipCount > 0 ? { accent: true } : { variant: "outlined" as const })}
|
|
314
313
|
aria-label={t("Filter")}
|
|
315
314
|
icon={<FunnelIcon size={14} weight={activeChipCount > 0 ? "fill" : "regular"} />}
|
|
@@ -341,9 +340,14 @@ function FilterButton({ contentTrigger = false }: { contentTrigger?: boolean })
|
|
|
341
340
|
}}
|
|
342
341
|
icon={<BackCaretIcon size={14} />}
|
|
343
342
|
/>
|
|
344
|
-
<
|
|
343
|
+
<SizableText
|
|
344
|
+
fontFamily={knobProps.heading.fontFamily}
|
|
345
|
+
size="$3"
|
|
346
|
+
color="$color11"
|
|
347
|
+
flex={1}
|
|
348
|
+
>
|
|
345
349
|
{t("Filter: {{column}}", { column: activeField.label })}
|
|
346
|
-
</
|
|
350
|
+
</SizableText>
|
|
347
351
|
</XStack>
|
|
348
352
|
|
|
349
353
|
<FilterOperatorValueEditor
|
|
@@ -375,7 +379,6 @@ function FilterButton({ contentTrigger = false }: { contentTrigger?: boolean })
|
|
|
375
379
|
debounceMs={0}
|
|
376
380
|
placeholder={t("Search fields...")}
|
|
377
381
|
size="$3"
|
|
378
|
-
compact
|
|
379
382
|
aria-label={t("Search fields")}
|
|
380
383
|
/>
|
|
381
384
|
<YStack
|
|
@@ -61,7 +61,6 @@ describe("DataTableFilters", () => {
|
|
|
61
61
|
availableColumns: sampleColumns,
|
|
62
62
|
maxFilters: 10,
|
|
63
63
|
showFilterCount: true,
|
|
64
|
-
compact: false,
|
|
65
64
|
};
|
|
66
65
|
|
|
67
66
|
describe("chip bar", () => {
|
|
@@ -376,19 +375,9 @@ describe("DataTableFilters", () => {
|
|
|
376
375
|
});
|
|
377
376
|
});
|
|
378
377
|
|
|
379
|
-
describe("
|
|
380
|
-
it("
|
|
381
|
-
const { container } = renderWithProviders(
|
|
382
|
-
<DataTableFilters {...defaultProps} compact={true} />,
|
|
383
|
-
);
|
|
384
|
-
|
|
385
|
-
expect(container).toBeDefined();
|
|
386
|
-
});
|
|
387
|
-
|
|
388
|
-
it("should render in normal mode when compact is false", () => {
|
|
389
|
-
const { container } = renderWithProviders(
|
|
390
|
-
<DataTableFilters {...defaultProps} compact={false} />,
|
|
391
|
-
);
|
|
378
|
+
describe("size token", () => {
|
|
379
|
+
it("renders at a smaller size token", () => {
|
|
380
|
+
const { container } = renderWithProviders(<DataTableFilters {...defaultProps} size="$3" />);
|
|
392
381
|
|
|
393
382
|
expect(container).toBeDefined();
|
|
394
383
|
});
|
|
@@ -25,10 +25,6 @@ const meta: Meta<typeof DataTableFilters> = {
|
|
|
25
25
|
control: "boolean",
|
|
26
26
|
description: "Whether to show the active filter count",
|
|
27
27
|
},
|
|
28
|
-
compact: {
|
|
29
|
-
control: "boolean",
|
|
30
|
-
description: "Whether to use compact layout",
|
|
31
|
-
},
|
|
32
28
|
},
|
|
33
29
|
};
|
|
34
30
|
|
|
@@ -102,7 +98,6 @@ export const Basic: Story = {
|
|
|
102
98
|
availableColumns: sampleColumns,
|
|
103
99
|
maxFilters: 10,
|
|
104
100
|
showFilterCount: true,
|
|
105
|
-
compact: false,
|
|
106
101
|
},
|
|
107
102
|
};
|
|
108
103
|
|
|
@@ -115,9 +110,9 @@ export const WithFilters: Story = {
|
|
|
115
110
|
|
|
116
111
|
export const Compact: Story = {
|
|
117
112
|
args: {
|
|
113
|
+
size: "$3",
|
|
118
114
|
...Basic.args,
|
|
119
115
|
filters: sampleFilters,
|
|
120
|
-
compact: true,
|
|
121
116
|
},
|
|
122
117
|
};
|
|
123
118
|
|
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
import { FunnelIcon, PlusIcon } from "@phosphor-icons/react";
|
|
14
|
-
import { useResolvedKnobs } from "@multiplatform.one/theme";
|
|
14
|
+
import { useResolvedKnobs, sizeTokenStep } from "@multiplatform.one/theme";
|
|
15
15
|
import { useEffect, useState } from "react";
|
|
16
16
|
import { Button, FloatingPanel, Select } from "@multiplatform.one/forms";
|
|
17
|
-
import { Text, View, XStack, YStack } from "tamagui";
|
|
17
|
+
import { Text, View, XStack, YStack, type SizeTokens } from "tamagui";
|
|
18
18
|
import type {
|
|
19
19
|
DataTableColumnType,
|
|
20
20
|
FacetedFilterOption,
|
|
@@ -46,7 +46,11 @@ export interface DataTableFiltersProps {
|
|
|
46
46
|
}>;
|
|
47
47
|
maxFilters?: number;
|
|
48
48
|
showFilterCount?: boolean;
|
|
49
|
-
|
|
49
|
+
/**
|
|
50
|
+
* Size token (Tamagui's own `size`). Below `$true` the bar draws its small
|
|
51
|
+
* layout: an "Add Filter" trigger and the active filters as chips.
|
|
52
|
+
*/
|
|
53
|
+
size?: SizeTokens;
|
|
50
54
|
}
|
|
51
55
|
|
|
52
56
|
type ColumnOption = NonNullable<DataTableFiltersProps["availableColumns"]>[number];
|
|
@@ -60,15 +64,16 @@ export function DataTableFilters(props: DataTableFiltersProps) {
|
|
|
60
64
|
const onClearFilters = props.onClearFilters ?? ctx?.actions.clearFilters ?? (() => {});
|
|
61
65
|
const availableColumns = props.availableColumns ?? [];
|
|
62
66
|
|
|
63
|
-
const { maxFilters = 10, showFilterCount = true
|
|
67
|
+
const { maxFilters = 10, showFilterCount = true } = props;
|
|
64
68
|
|
|
65
69
|
const [builderOpen, setBuilderOpen] = useState(false);
|
|
66
70
|
const [editingId, setEditingId] = useState<string | null>(null);
|
|
67
|
-
const { knobProps } = useResolvedKnobs(
|
|
71
|
+
const { knobProps } = useResolvedKnobs({ size: props.size });
|
|
72
|
+
const small = sizeTokenStep(knobProps.sizeToken) < 0;
|
|
68
73
|
|
|
69
74
|
const canAddMoreFilters = filters.length < maxFilters;
|
|
70
75
|
const editingFilter = editingId ? (filters.find((f) => f.id === editingId) ?? null) : null;
|
|
71
|
-
const triggerName =
|
|
76
|
+
const triggerName = small ? t("Add Filter") : t("Filter");
|
|
72
77
|
const triggerLabel =
|
|
73
78
|
showFilterCount && filters.length > 0 ? `${triggerName} (${filters.length})` : triggerName;
|
|
74
79
|
|
|
@@ -95,10 +100,9 @@ export function DataTableFilters(props: DataTableFiltersProps) {
|
|
|
95
100
|
const trigger = (
|
|
96
101
|
<Button
|
|
97
102
|
size="$3"
|
|
98
|
-
compact
|
|
99
103
|
{...(filters.length > 0 ? { accent: true } : { variant: "outlined" as const })}
|
|
100
104
|
icon={
|
|
101
|
-
|
|
105
|
+
small ? (
|
|
102
106
|
<PlusIcon size={14} />
|
|
103
107
|
) : (
|
|
104
108
|
<FunnelIcon size={14} weight={filters.length > 0 ? "fill" : "regular"} />
|
|
@@ -133,7 +137,7 @@ export function DataTableFilters(props: DataTableFiltersProps) {
|
|
|
133
137
|
</FloatingPanel>
|
|
134
138
|
</View>
|
|
135
139
|
|
|
136
|
-
{!
|
|
140
|
+
{!small &&
|
|
137
141
|
filters.map((filter) => {
|
|
138
142
|
const column = availableColumns.find((col) => col.id === filter.columnId);
|
|
139
143
|
const label = getFilterChipLabel(
|
|
@@ -151,13 +155,13 @@ export function DataTableFilters(props: DataTableFiltersProps) {
|
|
|
151
155
|
);
|
|
152
156
|
})}
|
|
153
157
|
|
|
154
|
-
{
|
|
155
|
-
<Button size="$2" chromeless
|
|
158
|
+
{small && filters.length > 0 && (
|
|
159
|
+
<Button size="$2" chromeless onPress={onClearFilters} aria-label={t("Clear")}>
|
|
156
160
|
{t("Clear")}
|
|
157
161
|
</Button>
|
|
158
162
|
)}
|
|
159
|
-
{!
|
|
160
|
-
<Button size="$2" chromeless
|
|
163
|
+
{!small && filters.length >= 2 && (
|
|
164
|
+
<Button size="$2" chromeless onPress={onClearFilters} aria-label={t("Clear all")}>
|
|
161
165
|
{t("Clear all")}
|
|
162
166
|
</Button>
|
|
163
167
|
)}
|
|
@@ -181,7 +185,7 @@ function FilterBuilder({
|
|
|
181
185
|
onCancel,
|
|
182
186
|
canAdd,
|
|
183
187
|
}: FilterBuilderProps) {
|
|
184
|
-
const { knobProps } = useResolvedKnobs(
|
|
188
|
+
const { knobProps } = useResolvedKnobs();
|
|
185
189
|
const [selectedColumnId, setSelectedColumnId] = useState("");
|
|
186
190
|
const [selectedOperator, setSelectedOperator] = useState<FilterOperator>("contains");
|
|
187
191
|
const [filterValue, setFilterValue] = useState("");
|
|
@@ -240,7 +244,6 @@ function FilterBuilder({
|
|
|
240
244
|
options={columnOptions}
|
|
241
245
|
placeholder={t("Select column")}
|
|
242
246
|
size="$3"
|
|
243
|
-
compact
|
|
244
247
|
/>
|
|
245
248
|
|
|
246
249
|
{selectedColumn ? (
|
|
@@ -255,12 +258,11 @@ function FilterBuilder({
|
|
|
255
258
|
) : null}
|
|
256
259
|
|
|
257
260
|
<XStack gap="$2" justifyContent="flex-end">
|
|
258
|
-
<Button size="$3"
|
|
261
|
+
<Button size="$3" onPress={onCancel}>
|
|
259
262
|
{t("Cancel")}
|
|
260
263
|
</Button>
|
|
261
264
|
<Button
|
|
262
265
|
size="$3"
|
|
263
|
-
compact
|
|
264
266
|
accent
|
|
265
267
|
onPress={handleCommit}
|
|
266
268
|
disabled={!selectedColumnId || !selectedOperator || !canAdd}
|
|
@@ -22,6 +22,7 @@ import {
|
|
|
22
22
|
stackRadiusProps,
|
|
23
23
|
useResolvedKnobs,
|
|
24
24
|
type GroupPosition,
|
|
25
|
+
sizeTokenStop,
|
|
25
26
|
} from "@multiplatform.one/theme";
|
|
26
27
|
import { useCallback, useMemo, useState } from "react";
|
|
27
28
|
import { Button, FloatingPanel, Select } from "@multiplatform.one/forms";
|
|
@@ -79,8 +80,8 @@ export interface DataTableGroupingProps<T = any> {
|
|
|
79
80
|
|
|
80
81
|
const EMPTY_EXPANDED_GROUPS: Set<string> = new Set();
|
|
81
82
|
|
|
82
|
-
// SP-EDGE row
|
|
83
|
-
// row
|
|
83
|
+
// SP-EDGE row padding (getTableCellPadding precedent): the size token's stop
|
|
84
|
+
// picks the row; medium keeps the previous hardcoded $3/$2 defaults.
|
|
84
85
|
const groupHeaderPaddingMap: Record<string, string> = {
|
|
85
86
|
small: "$2",
|
|
86
87
|
medium: "$3",
|
|
@@ -92,7 +93,7 @@ const groupItemPaddingMap: Record<string, string> = {
|
|
|
92
93
|
large: "$3",
|
|
93
94
|
};
|
|
94
95
|
|
|
95
|
-
// Tree indent rides the
|
|
96
|
+
// Tree indent rides the size token's stop so nested groups stay flush full-bleed
|
|
96
97
|
// rows (padding, never margin) — AG Grid / Excel / Airtable grouping: the
|
|
97
98
|
// chevron and label step in, the painted row still spans the stack.
|
|
98
99
|
const groupIndentStepMap: Record<string, number> = {
|
|
@@ -380,7 +381,7 @@ function GroupHeader<T = any>({
|
|
|
380
381
|
});
|
|
381
382
|
const iconSize = groupIconSize(String(knobProps.sizeToken));
|
|
382
383
|
const metaSize = groupMetaSizeMap[knobProps.sizeToken] ?? "$3";
|
|
383
|
-
const indent = groupIndent(knobProps.
|
|
384
|
+
const indent = groupIndent(sizeTokenStop(knobProps.sizeToken), level);
|
|
384
385
|
const label = group.value == null || group.value === "" ? "No Value" : String(group.value);
|
|
385
386
|
const countLabel = `${formatNumber(group.count, { maximumFractionDigits: 0 })} item${
|
|
386
387
|
group.count !== 1 ? "s" : ""
|
|
@@ -397,7 +398,7 @@ function GroupHeader<T = any>({
|
|
|
397
398
|
alignItems="center"
|
|
398
399
|
gap="$2"
|
|
399
400
|
minHeight={44}
|
|
400
|
-
padding={groupHeaderPaddingMap[knobProps.
|
|
401
|
+
padding={groupHeaderPaddingMap[sizeTokenStop(knobProps.sizeToken)] ?? "$3"}
|
|
401
402
|
backgroundColor={knobProps.inputBackground}
|
|
402
403
|
overflow="hidden"
|
|
403
404
|
cursor="pointer"
|
|
@@ -472,7 +473,7 @@ interface GroupItemsProps<T = any> {
|
|
|
472
473
|
function GroupItems<T = any>({ items, columns = [], level, stackEnd }: GroupItemsProps<T>) {
|
|
473
474
|
const { knobProps } = useResolvedKnobs();
|
|
474
475
|
const metaSize = groupMetaSizeMap[knobProps.sizeToken] ?? "$3";
|
|
475
|
-
const indent = groupIndent(knobProps.
|
|
476
|
+
const indent = groupIndent(sizeTokenStop(knobProps.sizeToken), level);
|
|
476
477
|
const iconSize = groupIconSize(String(knobProps.sizeToken));
|
|
477
478
|
return (
|
|
478
479
|
<YStack>
|
|
@@ -488,7 +489,7 @@ function GroupItems<T = any>({ items, columns = [], level, stackEnd }: GroupItem
|
|
|
488
489
|
{index > 0 ? <View {...hairline.line} /> : null}
|
|
489
490
|
<XStack
|
|
490
491
|
{...corners}
|
|
491
|
-
padding={groupItemPaddingMap[knobProps.
|
|
492
|
+
padding={groupItemPaddingMap[sizeTokenStop(knobProps.sizeToken)] ?? "$2"}
|
|
492
493
|
paddingInlineStart={indent + iconSize}
|
|
493
494
|
overflow="hidden"
|
|
494
495
|
backgroundColor={index % 2 === 0 ? "$background" : "$color2"}
|
|
@@ -531,7 +532,7 @@ interface GroupFooterProps<T = any> {
|
|
|
531
532
|
function GroupFooter<T = any>({ group, level, renderCustomFooter }: GroupFooterProps<T>) {
|
|
532
533
|
const { knobProps } = useResolvedKnobs();
|
|
533
534
|
return (
|
|
534
|
-
<View paddingInlineStart={groupIndent(knobProps.
|
|
535
|
+
<View paddingInlineStart={groupIndent(sizeTokenStop(knobProps.sizeToken), level)}>
|
|
535
536
|
{renderCustomFooter(group, level)}
|
|
536
537
|
</View>
|
|
537
538
|
);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createElement, forwardRef, useEffect, useState } from "react";
|
|
2
2
|
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
3
|
+
import { defaultScaleInputs, generateScale } from "@multiplatform.one/theme";
|
|
3
4
|
import { fireEvent, screen } from "@testing-library/react";
|
|
4
5
|
import { describe, expect, it, vi } from "vitest";
|
|
5
6
|
|
|
@@ -261,38 +262,47 @@ describe("DataTablePagination", () => {
|
|
|
261
262
|
});
|
|
262
263
|
});
|
|
263
264
|
|
|
264
|
-
describe("
|
|
265
|
-
it("
|
|
265
|
+
describe("small size token", () => {
|
|
266
|
+
it("renders at $3", () => {
|
|
266
267
|
const { container } = renderWithProviders(
|
|
267
|
-
<DataTablePagination {...defaultProps}
|
|
268
|
+
<DataTablePagination {...defaultProps} size="$3" />,
|
|
268
269
|
);
|
|
269
270
|
|
|
270
271
|
expect(container).toBeDefined();
|
|
271
272
|
});
|
|
272
273
|
|
|
273
|
-
it("
|
|
274
|
-
const { container } = renderWithProviders(
|
|
275
|
-
<DataTablePagination {...defaultProps} compact={false} />,
|
|
276
|
-
);
|
|
274
|
+
it("renders at the default size token", () => {
|
|
275
|
+
const { container } = renderWithProviders(<DataTablePagination {...defaultProps} />);
|
|
277
276
|
|
|
278
277
|
expect(container).toBeDefined();
|
|
279
278
|
});
|
|
280
279
|
|
|
281
|
-
it("keeps the page-size selector
|
|
280
|
+
it("keeps the page-size selector at $3 (DG-TBL-04)", () => {
|
|
282
281
|
const { getByLabelText } = renderWithProviders(
|
|
283
|
-
<DataTablePagination {...defaultProps}
|
|
282
|
+
<DataTablePagination {...defaultProps} size="$3" />,
|
|
284
283
|
);
|
|
285
284
|
|
|
286
285
|
expect(getByLabelText("Select rows per page")).toBeDefined();
|
|
287
286
|
});
|
|
288
287
|
|
|
289
|
-
it("hides the jumper
|
|
288
|
+
it("hides the jumper below $true, where the numbered window already jumps", () => {
|
|
290
289
|
const { queryByLabelText } = renderWithProviders(
|
|
291
|
-
<DataTablePagination {...defaultProps}
|
|
290
|
+
<DataTablePagination {...defaultProps} size="$3" />,
|
|
292
291
|
);
|
|
293
292
|
|
|
294
293
|
expect(queryByLabelText("Page number")).toBeNull();
|
|
295
294
|
});
|
|
295
|
+
|
|
296
|
+
it("keeps its size Select level with the pager at the ambient token", () => {
|
|
297
|
+
const { getByLabelText } = renderWithProviders(
|
|
298
|
+
<DataTablePagination {...defaultProps} size="$3" />,
|
|
299
|
+
);
|
|
300
|
+
|
|
301
|
+
expect(getByLabelText("Page 1").getAttribute("data-size-token")).toBe("$true");
|
|
302
|
+
expect(getByLabelText("Select rows per page").getAttribute("data-visual-height")).toBe(
|
|
303
|
+
String(generateScale(defaultScaleInputs).tokens.size.$true),
|
|
304
|
+
);
|
|
305
|
+
});
|
|
296
306
|
});
|
|
297
307
|
|
|
298
308
|
describe("responsive behavior", () => {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Card } from "@multiplatform.one/components";
|
|
2
2
|
import { action } from "@multiplatform.one/storybook";
|
|
3
3
|
import type { GuardrailSpecimenParameter } from "@multiplatform.one/theme";
|
|
4
|
-
import { Preset } from "@multiplatform.one/theme";
|
|
5
4
|
import type { Meta, StoryObj } from "@storybook/react-native-web-vite";
|
|
6
5
|
import React from "react";
|
|
7
6
|
import { within } from "storybook/test";
|
|
@@ -45,10 +44,6 @@ const meta: Meta<typeof DataTablePagination> = {
|
|
|
45
44
|
control: "boolean",
|
|
46
45
|
description: "Whether to show page jump input",
|
|
47
46
|
},
|
|
48
|
-
compact: {
|
|
49
|
-
control: "boolean",
|
|
50
|
-
description: "Whether to use compact layout",
|
|
51
|
-
},
|
|
52
47
|
},
|
|
53
48
|
};
|
|
54
49
|
|
|
@@ -74,14 +69,13 @@ export const Basic: Story = {
|
|
|
74
69
|
showInfo: true,
|
|
75
70
|
showPageSizeSelector: true,
|
|
76
71
|
showPageJump: true,
|
|
77
|
-
compact: false,
|
|
78
72
|
},
|
|
79
73
|
};
|
|
80
74
|
|
|
81
75
|
export const Compact: Story = {
|
|
82
76
|
args: {
|
|
77
|
+
size: "$3",
|
|
83
78
|
...Basic.args,
|
|
84
|
-
compact: true,
|
|
85
79
|
},
|
|
86
80
|
};
|
|
87
81
|
|
|
@@ -789,7 +783,7 @@ export const NarrowPanel: Story = {
|
|
|
789
783
|
return (
|
|
790
784
|
<YStack width={249}>
|
|
791
785
|
<DataTablePagination
|
|
792
|
-
|
|
786
|
+
size="$3"
|
|
793
787
|
pagination={{
|
|
794
788
|
...pagination,
|
|
795
789
|
totalCount: 1000,
|
|
@@ -802,14 +796,3 @@ export const NarrowPanel: Story = {
|
|
|
802
796
|
);
|
|
803
797
|
},
|
|
804
798
|
};
|
|
805
|
-
|
|
806
|
-
export const LargeSpaceNarrow: Story = {
|
|
807
|
-
...NarrowPanel,
|
|
808
|
-
decorators: [
|
|
809
|
-
(Story) => (
|
|
810
|
-
<Preset overrides={{ space: "large" }}>
|
|
811
|
-
<Story />
|
|
812
|
-
</Preset>
|
|
813
|
-
),
|
|
814
|
-
],
|
|
815
|
-
};
|
|
@@ -47,29 +47,29 @@ beforeEach(() => {
|
|
|
47
47
|
observed.onLayout = undefined;
|
|
48
48
|
});
|
|
49
49
|
|
|
50
|
-
describe("bounded
|
|
50
|
+
describe("bounded small table pagination", () => {
|
|
51
51
|
it("preserves the default footprint and grows for wide numeric options", () => {
|
|
52
|
-
const { rerender } = renderWithProviders(<DataTablePagination
|
|
53
|
-
expect(observed.sizeWidth).toBe(
|
|
54
|
-
rerender(<DataTablePagination
|
|
55
|
-
expect(observed.sizeWidth).toBeGreaterThan(
|
|
52
|
+
const { rerender } = renderWithProviders(<DataTablePagination size="$3" />);
|
|
53
|
+
expect(observed.sizeWidth).toBe(92);
|
|
54
|
+
rerender(<DataTablePagination size="$3" pageSizeOptions={[10, 25, 1000000]} />);
|
|
55
|
+
expect(observed.sizeWidth).toBeGreaterThan(92);
|
|
56
56
|
});
|
|
57
57
|
|
|
58
|
-
it("budgets the
|
|
59
|
-
const renderPager = (
|
|
60
|
-
<Preset
|
|
61
|
-
<DataTablePagination
|
|
58
|
+
it("budgets the page-size Select at the ambient token, whatever the footer size", () => {
|
|
59
|
+
const renderPager = (small: boolean) => (
|
|
60
|
+
<Preset>
|
|
61
|
+
<DataTablePagination size={small ? "$3" : undefined} />
|
|
62
62
|
</Preset>
|
|
63
63
|
);
|
|
64
64
|
const { rerender } = renderWithProviders(renderPager(false));
|
|
65
65
|
const width = observed.sizeWidth;
|
|
66
|
-
expect(width).
|
|
66
|
+
expect(width).toBe(92);
|
|
67
67
|
rerender(renderPager(true));
|
|
68
68
|
expect(observed.sizeWidth).toBe(width);
|
|
69
69
|
});
|
|
70
70
|
|
|
71
71
|
it("starts safely and responds to container width even on a desktop viewport", () => {
|
|
72
|
-
renderWithProviders(<DataTablePagination
|
|
72
|
+
renderWithProviders(<DataTablePagination size="$3" />);
|
|
73
73
|
const pager = () => within(screen.getByRole("navigation", { name: "Page" }));
|
|
74
74
|
expect(pager().getAllByRole("button")).toHaveLength(2);
|
|
75
75
|
measure(1000);
|
|
@@ -83,7 +83,7 @@ describe("bounded compact table pagination", () => {
|
|
|
83
83
|
});
|
|
84
84
|
|
|
85
85
|
it("preserves the presentation when a container reports its width again", () => {
|
|
86
|
-
renderWithProviders(<DataTablePagination
|
|
86
|
+
renderWithProviders(<DataTablePagination size="$3" />);
|
|
87
87
|
measure(249);
|
|
88
88
|
const pager = screen.getByRole("navigation", { name: "Page" });
|
|
89
89
|
const buttons = within(pager).getAllByRole("button");
|
|
@@ -95,7 +95,7 @@ describe("bounded compact table pagination", () => {
|
|
|
95
95
|
it("resets to the first page when rows per page changes in a narrow table", async () => {
|
|
96
96
|
renderWithProviders(
|
|
97
97
|
<DataTablePagination
|
|
98
|
-
|
|
98
|
+
size="$3"
|
|
99
99
|
pagination={{ pageIndex: 5, pageSize: 25, totalPages: 40, totalCount: 1000 }}
|
|
100
100
|
/>,
|
|
101
101
|
);
|