@multiplatform.one/table 6.6.0 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -3
- package/dist/cjs/components/ChildTable/index.cjs +2 -1
- package/dist/cjs/components/ChildTable/index.native.js +3 -2
- package/dist/cjs/components/ChildTable/index.native.js.map +1 -1
- package/dist/cjs/components/ColumnHeaderFilter/index.cjs +17 -9
- package/dist/cjs/components/ColumnHeaderFilter/index.native.js +33 -12
- package/dist/cjs/components/ColumnHeaderFilter/index.native.js.map +1 -1
- package/dist/cjs/components/DataTable/DataTableCardControls.native.js +1 -1
- package/dist/cjs/components/DataTable/DataTableCardControls.native.js.map +1 -1
- package/dist/cjs/components/DataTable/DataTableContext.native.js.map +1 -1
- package/dist/cjs/components/DataTable/DataTableDocumentList.cjs +222 -0
- package/dist/cjs/components/DataTable/DataTableDocumentList.native.js +237 -0
- package/dist/cjs/components/DataTable/DataTableDocumentList.native.js.map +1 -0
- package/dist/cjs/components/DataTable/DataTableMobileCards.cjs +5 -2
- package/dist/cjs/components/DataTable/DataTableMobileCards.native.js +6 -2
- package/dist/cjs/components/DataTable/DataTableMobileCards.native.js.map +1 -1
- package/dist/cjs/components/DataTable/DataTableRoot.cjs +92 -41
- package/dist/cjs/components/DataTable/DataTableRoot.native.js +104 -50
- package/dist/cjs/components/DataTable/DataTableRoot.native.js.map +1 -1
- package/dist/cjs/components/DataTable/DataTableStateContext.native.js.map +1 -1
- package/dist/cjs/components/DataTable/DataTableVirtualized.cjs +8 -2
- package/dist/cjs/components/DataTable/DataTableVirtualized.native.js +9 -3
- package/dist/cjs/components/DataTable/DataTableVirtualized.native.js.map +1 -1
- package/dist/cjs/components/DataTable/documentListSlots.cjs +59 -0
- package/dist/cjs/components/DataTable/documentListSlots.native.js +85 -0
- package/dist/cjs/components/DataTable/documentListSlots.native.js.map +1 -0
- package/dist/cjs/components/DataTable/index.native.js +84 -69
- package/dist/cjs/components/DataTable/index.native.js.map +1 -1
- package/dist/cjs/components/DataTable/rowStateChrome.cjs +55 -0
- package/dist/cjs/components/DataTable/rowStateChrome.native.js +59 -0
- package/dist/cjs/components/DataTable/rowStateChrome.native.js.map +1 -0
- package/dist/cjs/components/DataTableBulkActions/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableCell/CellModalEditor.cjs +24 -3
- package/dist/cjs/components/DataTableCell/CellModalEditor.native.js +6 -1
- package/dist/cjs/components/DataTableCell/CellModalEditor.native.js.map +1 -1
- package/dist/cjs/components/DataTableCell/CellOptionsEditor.cjs +9 -2
- package/dist/cjs/components/DataTableCell/CellOptionsEditor.native.js +11 -2
- package/dist/cjs/components/DataTableCell/CellOptionsEditor.native.js.map +1 -1
- package/dist/cjs/components/DataTableCell/index.cjs +74 -63
- package/dist/cjs/components/DataTableCell/index.native.js +94 -82
- package/dist/cjs/components/DataTableCell/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableColumnPinning/index.cjs +54 -37
- package/dist/cjs/components/DataTableColumnPinning/index.native.js +59 -38
- package/dist/cjs/components/DataTableColumnPinning/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableDateFilter/index.cjs +33 -14
- package/dist/cjs/components/DataTableDateFilter/index.native.js +33 -12
- package/dist/cjs/components/DataTableDateFilter/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableExport/index.cjs +35 -7
- package/dist/cjs/components/DataTableExport/index.native.js +42 -7
- package/dist/cjs/components/DataTableExport/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableFacetMenu/index.cjs +140 -0
- package/dist/cjs/components/DataTableFacetMenu/index.native.js +156 -0
- package/dist/cjs/components/DataTableFacetMenu/index.native.js.map +1 -0
- package/dist/cjs/components/DataTableFilterButton/index.cjs +51 -32
- package/dist/cjs/components/DataTableFilterButton/index.native.js +64 -41
- package/dist/cjs/components/DataTableFilterButton/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableFilterChips/FilterChip.cjs +143 -0
- package/dist/cjs/components/DataTableFilterChips/FilterChip.native.js +148 -0
- package/dist/cjs/components/DataTableFilterChips/FilterChip.native.js.map +1 -0
- package/dist/cjs/components/DataTableFilterChips/index.cjs +9 -31
- package/dist/cjs/components/DataTableFilterChips/index.native.js +9 -32
- package/dist/cjs/components/DataTableFilterChips/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableFilters/index.cjs +145 -502
- package/dist/cjs/components/DataTableFilters/index.native.js +171 -544
- package/dist/cjs/components/DataTableFilters/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableGrouping/index.cjs +273 -108
- package/dist/cjs/components/DataTableGrouping/index.native.js +310 -157
- package/dist/cjs/components/DataTableGrouping/index.native.js.map +1 -1
- package/dist/cjs/components/DataTablePagination/index.cjs +147 -95
- package/dist/cjs/components/DataTablePagination/index.native.js +159 -106
- package/dist/cjs/components/DataTablePagination/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableSearch/index.cjs +251 -210
- package/dist/cjs/components/DataTableSearch/index.native.js +292 -243
- package/dist/cjs/components/DataTableSearch/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableToolbar/index.cjs +141 -115
- package/dist/cjs/components/DataTableToolbar/index.native.js +164 -149
- package/dist/cjs/components/DataTableToolbar/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableViewOptions/index.cjs +25 -21
- 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/FilterManager.native.js.map +1 -1
- package/dist/cjs/components/FilterOperatorValueEditor/index.native.js.map +1 -1
- package/dist/cjs/components/KnobDialog.native.js.map +1 -1
- package/dist/cjs/components/SavedFilterDropdown.native.js.map +1 -1
- package/dist/cjs/components/SimpleTable/index.cjs +336 -46
- package/dist/cjs/components/SimpleTable/index.native.js +356 -48
- package/dist/cjs/components/SimpleTable/index.native.js.map +1 -1
- package/dist/cjs/components/TableInput/index.cjs +147 -38
- package/dist/cjs/components/TableInput/index.native.js +55 -39
- package/dist/cjs/components/TableInput/index.native.js.map +1 -1
- package/dist/cjs/components/TableInput/shared.cjs +36 -1
- package/dist/cjs/components/TableInput/shared.native.js +35 -0
- package/dist/cjs/components/TableInput/shared.native.js.map +1 -1
- package/dist/cjs/hooks/useDataTable.cjs +33 -2
- package/dist/cjs/hooks/useDataTable.native.js +41 -2
- package/dist/cjs/hooks/useDataTable.native.js.map +1 -1
- package/dist/cjs/hooks/useDataTableKeyboard.native.js.map +1 -1
- package/dist/cjs/hooks/useDragScroll.native.js.map +1 -1
- package/dist/cjs/hooks/useInfiniteRows.cjs +20 -3
- package/dist/cjs/hooks/useInfiniteRows.native.js +20 -3
- package/dist/cjs/hooks/useInfiniteRows.native.js.map +1 -1
- package/dist/cjs/hooks/useSavedFilters.native.js.map +1 -1
- package/dist/cjs/hooks/useTableColumnPinning.native.js.map +1 -1
- package/dist/cjs/hooks/useTableFiltering.native.js.map +1 -1
- package/dist/cjs/hooks/useTableGrouping.native.js.map +1 -1
- package/dist/cjs/hooks/useTableKeyboard.native.js.map +1 -1
- package/dist/cjs/hooks/useTablePagination.native.js.map +1 -1
- package/dist/cjs/hooks/useTableSearch.native.js.map +1 -1
- package/dist/cjs/hooks/useTableSelection.native.js.map +1 -1
- package/dist/cjs/hooks/useTableSorting.native.js.map +1 -1
- package/dist/cjs/hooks/useTableUrlSync.native.js.map +1 -1
- package/dist/cjs/hooks/useTableViews.native.js.map +1 -1
- package/dist/cjs/index.cjs +2 -0
- package/dist/cjs/index.native.js +2 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/shared/t.native.js.map +1 -1
- package/dist/cjs/shims/primitives.native.js.map +1 -1
- package/dist/cjs/shims/tableCellContext.native.js.map +1 -1
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/cjs/utils/columnAlign.native.js.map +1 -1
- package/dist/cjs/utils/filterFields.native.js.map +1 -1
- package/dist/cjs/utils/filterUtils.cjs +12 -5
- package/dist/cjs/utils/filterUtils.native.js +20 -5
- package/dist/cjs/utils/filterUtils.native.js.map +1 -1
- package/dist/cjs/utils/paginationDefaults.native.js.map +1 -1
- package/dist/cjs/utils/rowPress.native.js.map +1 -1
- package/dist/cjs/utils/urlStateUtils.native.js.map +1 -1
- package/dist/cjs/utils/viewData.native.js.map +1 -1
- package/dist/cjs/utils/withInterp.native.js.map +1 -1
- package/dist/esm/components/ChildTable/index.mjs +2 -1
- package/dist/esm/components/ChildTable/index.mjs.map +1 -1
- package/dist/esm/components/ChildTable/index.native.js +2 -1
- package/dist/esm/components/ChildTable/index.native.js.map +1 -1
- package/dist/esm/components/ColumnHeaderFilter/index.mjs +17 -9
- package/dist/esm/components/ColumnHeaderFilter/index.mjs.map +1 -1
- package/dist/esm/components/ColumnHeaderFilter/index.native.js +32 -11
- package/dist/esm/components/ColumnHeaderFilter/index.native.js.map +1 -1
- package/dist/esm/components/DataTable/DataTableDocumentList.mjs +196 -0
- package/dist/esm/components/DataTable/DataTableDocumentList.mjs.map +1 -0
- package/dist/esm/components/DataTable/DataTableDocumentList.native.js +208 -0
- package/dist/esm/components/DataTable/DataTableDocumentList.native.js.map +1 -0
- package/dist/esm/components/DataTable/DataTableMobileCards.mjs +5 -2
- package/dist/esm/components/DataTable/DataTableMobileCards.mjs.map +1 -1
- package/dist/esm/components/DataTable/DataTableMobileCards.native.js +6 -2
- package/dist/esm/components/DataTable/DataTableMobileCards.native.js.map +1 -1
- package/dist/esm/components/DataTable/DataTableRoot.mjs +93 -42
- package/dist/esm/components/DataTable/DataTableRoot.mjs.map +1 -1
- package/dist/esm/components/DataTable/DataTableRoot.native.js +98 -44
- package/dist/esm/components/DataTable/DataTableRoot.native.js.map +1 -1
- package/dist/esm/components/DataTable/DataTableVirtualized.mjs +8 -2
- package/dist/esm/components/DataTable/DataTableVirtualized.mjs.map +1 -1
- package/dist/esm/components/DataTable/DataTableVirtualized.native.js +9 -3
- package/dist/esm/components/DataTable/DataTableVirtualized.native.js.map +1 -1
- package/dist/esm/components/DataTable/documentListSlots.mjs +33 -0
- package/dist/esm/components/DataTable/documentListSlots.mjs.map +1 -0
- package/dist/esm/components/DataTable/documentListSlots.native.js +56 -0
- package/dist/esm/components/DataTable/documentListSlots.native.js.map +1 -0
- package/dist/esm/components/DataTable/index.native.js +52 -37
- package/dist/esm/components/DataTable/index.native.js.map +1 -1
- package/dist/esm/components/DataTable/rowStateChrome.mjs +28 -0
- package/dist/esm/components/DataTable/rowStateChrome.mjs.map +1 -0
- package/dist/esm/components/DataTable/rowStateChrome.native.js +29 -0
- package/dist/esm/components/DataTable/rowStateChrome.native.js.map +1 -0
- package/dist/esm/components/DataTableCell/CellModalEditor.mjs +25 -4
- package/dist/esm/components/DataTableCell/CellModalEditor.mjs.map +1 -1
- package/dist/esm/components/DataTableCell/CellModalEditor.native.js +6 -1
- package/dist/esm/components/DataTableCell/CellModalEditor.native.js.map +1 -1
- package/dist/esm/components/DataTableCell/CellOptionsEditor.mjs +9 -2
- package/dist/esm/components/DataTableCell/CellOptionsEditor.mjs.map +1 -1
- package/dist/esm/components/DataTableCell/CellOptionsEditor.native.js +11 -2
- package/dist/esm/components/DataTableCell/CellOptionsEditor.native.js.map +1 -1
- package/dist/esm/components/DataTableCell/index.mjs +75 -64
- package/dist/esm/components/DataTableCell/index.mjs.map +1 -1
- package/dist/esm/components/DataTableCell/index.native.js +95 -83
- package/dist/esm/components/DataTableCell/index.native.js.map +1 -1
- package/dist/esm/components/DataTableColumnPinning/index.mjs +54 -37
- package/dist/esm/components/DataTableColumnPinning/index.mjs.map +1 -1
- package/dist/esm/components/DataTableColumnPinning/index.native.js +59 -38
- package/dist/esm/components/DataTableColumnPinning/index.native.js.map +1 -1
- package/dist/esm/components/DataTableDateFilter/index.mjs +34 -15
- package/dist/esm/components/DataTableDateFilter/index.mjs.map +1 -1
- package/dist/esm/components/DataTableDateFilter/index.native.js +34 -13
- package/dist/esm/components/DataTableDateFilter/index.native.js.map +1 -1
- package/dist/esm/components/DataTableExport/index.mjs +36 -8
- package/dist/esm/components/DataTableExport/index.mjs.map +1 -1
- package/dist/esm/components/DataTableExport/index.native.js +43 -8
- package/dist/esm/components/DataTableExport/index.native.js.map +1 -1
- package/dist/esm/components/DataTableFacetMenu/index.mjs +115 -0
- package/dist/esm/components/DataTableFacetMenu/index.mjs.map +1 -0
- package/dist/esm/components/DataTableFacetMenu/index.native.js +128 -0
- package/dist/esm/components/DataTableFacetMenu/index.native.js.map +1 -0
- package/dist/esm/components/DataTableFilterButton/index.mjs +54 -35
- package/dist/esm/components/DataTableFilterButton/index.mjs.map +1 -1
- package/dist/esm/components/DataTableFilterButton/index.native.js +66 -43
- package/dist/esm/components/DataTableFilterButton/index.native.js.map +1 -1
- package/dist/esm/components/DataTableFilterChips/FilterChip.mjs +118 -0
- package/dist/esm/components/DataTableFilterChips/FilterChip.mjs.map +1 -0
- package/dist/esm/components/DataTableFilterChips/FilterChip.native.js +120 -0
- package/dist/esm/components/DataTableFilterChips/FilterChip.native.js.map +1 -0
- package/dist/esm/components/DataTableFilterChips/index.mjs +9 -32
- package/dist/esm/components/DataTableFilterChips/index.mjs.map +1 -1
- package/dist/esm/components/DataTableFilterChips/index.native.js +9 -33
- package/dist/esm/components/DataTableFilterChips/index.native.js.map +1 -1
- package/dist/esm/components/DataTableFilters/index.mjs +149 -506
- package/dist/esm/components/DataTableFilters/index.mjs.map +1 -1
- package/dist/esm/components/DataTableFilters/index.native.js +175 -548
- package/dist/esm/components/DataTableFilters/index.native.js.map +1 -1
- package/dist/esm/components/DataTableGrouping/index.mjs +275 -110
- package/dist/esm/components/DataTableGrouping/index.mjs.map +1 -1
- package/dist/esm/components/DataTableGrouping/index.native.js +287 -134
- package/dist/esm/components/DataTableGrouping/index.native.js.map +1 -1
- package/dist/esm/components/DataTablePagination/index.mjs +148 -96
- package/dist/esm/components/DataTablePagination/index.mjs.map +1 -1
- package/dist/esm/components/DataTablePagination/index.native.js +160 -107
- package/dist/esm/components/DataTablePagination/index.native.js.map +1 -1
- package/dist/esm/components/DataTableSearch/index.mjs +256 -215
- package/dist/esm/components/DataTableSearch/index.mjs.map +1 -1
- package/dist/esm/components/DataTableSearch/index.native.js +297 -248
- package/dist/esm/components/DataTableSearch/index.native.js.map +1 -1
- package/dist/esm/components/DataTableToolbar/index.mjs +145 -119
- package/dist/esm/components/DataTableToolbar/index.mjs.map +1 -1
- package/dist/esm/components/DataTableToolbar/index.native.js +167 -152
- package/dist/esm/components/DataTableToolbar/index.native.js.map +1 -1
- package/dist/esm/components/DataTableViewOptions/index.mjs +26 -22
- 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/SimpleTable/index.mjs +338 -48
- package/dist/esm/components/SimpleTable/index.mjs.map +1 -1
- package/dist/esm/components/SimpleTable/index.native.js +358 -50
- package/dist/esm/components/SimpleTable/index.native.js.map +1 -1
- package/dist/esm/components/TableInput/index.mjs +150 -41
- package/dist/esm/components/TableInput/index.mjs.map +1 -1
- package/dist/esm/components/TableInput/index.native.js +55 -39
- package/dist/esm/components/TableInput/index.native.js.map +1 -1
- package/dist/esm/components/TableInput/shared.mjs +34 -1
- package/dist/esm/components/TableInput/shared.mjs.map +1 -1
- package/dist/esm/components/TableInput/shared.native.js +34 -1
- package/dist/esm/components/TableInput/shared.native.js.map +1 -1
- package/dist/esm/hooks/useDataTable.mjs +33 -2
- package/dist/esm/hooks/useDataTable.mjs.map +1 -1
- package/dist/esm/hooks/useDataTable.native.js +41 -2
- package/dist/esm/hooks/useDataTable.native.js.map +1 -1
- package/dist/esm/hooks/useInfiniteRows.mjs +20 -3
- package/dist/esm/hooks/useInfiniteRows.mjs.map +1 -1
- package/dist/esm/hooks/useInfiniteRows.native.js +20 -3
- package/dist/esm/hooks/useInfiniteRows.native.js.map +1 -1
- package/dist/esm/index.mjs +2 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/utils/filterUtils.mjs +12 -5
- package/dist/esm/utils/filterUtils.mjs.map +1 -1
- package/dist/esm/utils/filterUtils.native.js +20 -5
- package/dist/esm/utils/filterUtils.native.js.map +1 -1
- package/dist/jsx/components/ChildTable/index.mjs +2 -1
- package/dist/jsx/components/ChildTable/index.mjs.map +1 -1
- package/dist/jsx/components/ChildTable/index.native.js +2 -1
- package/dist/jsx/components/ChildTable/index.native.js.map +1 -1
- package/dist/jsx/components/ColumnHeaderFilter/index.mjs +17 -9
- package/dist/jsx/components/ColumnHeaderFilter/index.mjs.map +1 -1
- package/dist/jsx/components/ColumnHeaderFilter/index.native.js +32 -11
- package/dist/jsx/components/ColumnHeaderFilter/index.native.js.map +1 -1
- package/dist/jsx/components/DataTable/DataTableDocumentList.mjs +196 -0
- package/dist/jsx/components/DataTable/DataTableDocumentList.mjs.map +1 -0
- package/dist/jsx/components/DataTable/DataTableDocumentList.native.js +237 -0
- package/dist/jsx/components/DataTable/DataTableDocumentList.native.js.map +1 -0
- package/dist/jsx/components/DataTable/DataTableMobileCards.mjs +5 -2
- package/dist/jsx/components/DataTable/DataTableMobileCards.mjs.map +1 -1
- package/dist/jsx/components/DataTable/DataTableMobileCards.native.js +6 -2
- package/dist/jsx/components/DataTable/DataTableMobileCards.native.js.map +1 -1
- package/dist/jsx/components/DataTable/DataTableRoot.mjs +93 -42
- package/dist/jsx/components/DataTable/DataTableRoot.mjs.map +1 -1
- package/dist/jsx/components/DataTable/DataTableRoot.native.js +97 -43
- package/dist/jsx/components/DataTable/DataTableRoot.native.js.map +1 -1
- package/dist/jsx/components/DataTable/DataTableVirtualized.mjs +8 -2
- package/dist/jsx/components/DataTable/DataTableVirtualized.mjs.map +1 -1
- package/dist/jsx/components/DataTable/DataTableVirtualized.native.js +9 -3
- package/dist/jsx/components/DataTable/DataTableVirtualized.native.js.map +1 -1
- package/dist/jsx/components/DataTable/documentListSlots.mjs +33 -0
- package/dist/jsx/components/DataTable/documentListSlots.mjs.map +1 -0
- package/dist/jsx/components/DataTable/documentListSlots.native.js +85 -0
- package/dist/jsx/components/DataTable/documentListSlots.native.js.map +1 -0
- package/dist/jsx/components/DataTable/index.native.js +74 -59
- package/dist/jsx/components/DataTable/index.native.js.map +1 -1
- package/dist/jsx/components/DataTable/rowStateChrome.mjs +28 -0
- package/dist/jsx/components/DataTable/rowStateChrome.mjs.map +1 -0
- package/dist/jsx/components/DataTable/rowStateChrome.native.js +59 -0
- package/dist/jsx/components/DataTable/rowStateChrome.native.js.map +1 -0
- package/dist/jsx/components/DataTableCell/CellModalEditor.mjs +25 -4
- package/dist/jsx/components/DataTableCell/CellModalEditor.mjs.map +1 -1
- package/dist/jsx/components/DataTableCell/CellModalEditor.native.js +6 -1
- package/dist/jsx/components/DataTableCell/CellModalEditor.native.js.map +1 -1
- package/dist/jsx/components/DataTableCell/CellOptionsEditor.mjs +9 -2
- package/dist/jsx/components/DataTableCell/CellOptionsEditor.mjs.map +1 -1
- package/dist/jsx/components/DataTableCell/CellOptionsEditor.native.js +11 -2
- package/dist/jsx/components/DataTableCell/CellOptionsEditor.native.js.map +1 -1
- package/dist/jsx/components/DataTableCell/index.mjs +75 -64
- package/dist/jsx/components/DataTableCell/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableCell/index.native.js +94 -82
- package/dist/jsx/components/DataTableCell/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableColumnPinning/index.mjs +54 -37
- package/dist/jsx/components/DataTableColumnPinning/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableColumnPinning/index.native.js +59 -38
- package/dist/jsx/components/DataTableColumnPinning/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableDateFilter/index.mjs +34 -15
- package/dist/jsx/components/DataTableDateFilter/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableDateFilter/index.native.js +33 -12
- package/dist/jsx/components/DataTableDateFilter/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableExport/index.mjs +36 -8
- package/dist/jsx/components/DataTableExport/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableExport/index.native.js +42 -7
- package/dist/jsx/components/DataTableExport/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableFacetMenu/index.mjs +115 -0
- package/dist/jsx/components/DataTableFacetMenu/index.mjs.map +1 -0
- package/dist/jsx/components/DataTableFacetMenu/index.native.js +156 -0
- package/dist/jsx/components/DataTableFacetMenu/index.native.js.map +1 -0
- package/dist/jsx/components/DataTableFilterButton/index.mjs +54 -35
- package/dist/jsx/components/DataTableFilterButton/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableFilterButton/index.native.js +63 -40
- package/dist/jsx/components/DataTableFilterButton/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableFilterChips/FilterChip.mjs +118 -0
- package/dist/jsx/components/DataTableFilterChips/FilterChip.mjs.map +1 -0
- package/dist/jsx/components/DataTableFilterChips/FilterChip.native.js +148 -0
- package/dist/jsx/components/DataTableFilterChips/FilterChip.native.js.map +1 -0
- package/dist/jsx/components/DataTableFilterChips/index.mjs +9 -32
- package/dist/jsx/components/DataTableFilterChips/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableFilterChips/index.native.js +9 -32
- package/dist/jsx/components/DataTableFilterChips/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableFilters/index.mjs +149 -506
- package/dist/jsx/components/DataTableFilters/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableFilters/index.native.js +171 -544
- package/dist/jsx/components/DataTableFilters/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableGrouping/index.mjs +275 -110
- package/dist/jsx/components/DataTableGrouping/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableGrouping/index.native.js +310 -157
- package/dist/jsx/components/DataTableGrouping/index.native.js.map +1 -1
- package/dist/jsx/components/DataTablePagination/index.mjs +148 -96
- package/dist/jsx/components/DataTablePagination/index.mjs.map +1 -1
- package/dist/jsx/components/DataTablePagination/index.native.js +159 -106
- package/dist/jsx/components/DataTablePagination/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableSearch/index.mjs +256 -215
- package/dist/jsx/components/DataTableSearch/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableSearch/index.native.js +292 -243
- package/dist/jsx/components/DataTableSearch/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableToolbar/index.mjs +145 -119
- package/dist/jsx/components/DataTableToolbar/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableToolbar/index.native.js +163 -148
- package/dist/jsx/components/DataTableToolbar/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableViewOptions/index.mjs +26 -22
- 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/SimpleTable/index.mjs +338 -48
- package/dist/jsx/components/SimpleTable/index.mjs.map +1 -1
- package/dist/jsx/components/SimpleTable/index.native.js +356 -48
- package/dist/jsx/components/SimpleTable/index.native.js.map +1 -1
- package/dist/jsx/components/TableInput/index.mjs +150 -41
- package/dist/jsx/components/TableInput/index.mjs.map +1 -1
- package/dist/jsx/components/TableInput/index.native.js +54 -38
- package/dist/jsx/components/TableInput/index.native.js.map +1 -1
- package/dist/jsx/components/TableInput/shared.mjs +34 -1
- package/dist/jsx/components/TableInput/shared.mjs.map +1 -1
- package/dist/jsx/components/TableInput/shared.native.js +35 -0
- package/dist/jsx/components/TableInput/shared.native.js.map +1 -1
- package/dist/jsx/hooks/useDataTable.mjs +33 -2
- package/dist/jsx/hooks/useDataTable.mjs.map +1 -1
- package/dist/jsx/hooks/useDataTable.native.js +41 -2
- package/dist/jsx/hooks/useDataTable.native.js.map +1 -1
- package/dist/jsx/hooks/useInfiniteRows.mjs +20 -3
- package/dist/jsx/hooks/useInfiniteRows.mjs.map +1 -1
- package/dist/jsx/hooks/useInfiniteRows.native.js +20 -3
- package/dist/jsx/hooks/useInfiniteRows.native.js.map +1 -1
- package/dist/jsx/index.js +2 -1
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +2 -1
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +2 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/utils/filterUtils.mjs +12 -5
- package/dist/jsx/utils/filterUtils.mjs.map +1 -1
- package/dist/jsx/utils/filterUtils.native.js +20 -5
- package/dist/jsx/utils/filterUtils.native.js.map +1 -1
- package/package.json +16 -16
- package/src/components/ChildTable/index.tsx +1 -0
- package/src/components/ColumnHeaderFilter/ColumnHeaderFilter.spec.tsx +85 -0
- package/src/components/ColumnHeaderFilter/index.tsx +28 -10
- package/src/components/DataTable/DataTable.stories.tsx +30 -0
- package/src/components/DataTable/DataTableDocumentList.tsx +224 -0
- package/src/components/DataTable/DataTableMobileCards.tsx +20 -8
- package/src/components/DataTable/DataTableRoot.tsx +135 -58
- package/src/components/DataTable/DataTableVirtualized.tsx +8 -11
- package/src/components/DataTable/cardLayout.spec.tsx +89 -0
- package/src/components/DataTable/documentListSlots.ts +57 -0
- package/src/components/DataTable/index.native.tsx +76 -50
- package/src/components/DataTable/keepPreviousData.spec.tsx +137 -0
- package/src/components/DataTable/rowRing.spec.tsx +118 -0
- package/src/components/DataTable/rowStateChrome.ts +38 -0
- package/src/components/DataTableCell/CellModalEditor.native.tsx +4 -0
- package/src/components/DataTableCell/CellModalEditor.tsx +31 -3
- package/src/components/DataTableCell/CellOptionsEditor.tsx +29 -12
- package/src/components/DataTableCell/DataTableCell.stories.tsx +3 -3
- package/src/components/DataTableCell/cellDraftPolicy.spec.tsx +131 -4
- package/src/components/DataTableCell/dataTableCell.spec.tsx +36 -1
- package/src/components/DataTableCell/index.tsx +121 -86
- package/src/components/DataTableColumnPinning/DataTableColumnPinning.spec.tsx +66 -0
- package/src/components/DataTableColumnPinning/index.tsx +32 -17
- package/src/components/DataTableDateFilter/DataTableDateFilter.spec.tsx +9 -1
- package/src/components/DataTableDateFilter/dateFilterZones.spec.ts +316 -0
- package/src/components/DataTableDateFilter/index.tsx +42 -22
- package/src/components/DataTableExport/exportDateZones.spec.tsx +348 -0
- package/src/components/DataTableExport/index.tsx +107 -63
- package/src/components/DataTableFacetMenu/DataTableFacetMenu.spec.tsx +264 -0
- package/src/components/DataTableFacetMenu/DataTableFacetMenu.stories.tsx +212 -0
- package/src/components/DataTableFacetMenu/index.tsx +202 -0
- package/src/components/DataTableFilterButton/index.tsx +66 -49
- package/src/components/DataTableFilterChips/DataTableFilterChips.spec.tsx +22 -0
- package/src/components/DataTableFilterChips/FilterChip.tsx +122 -0
- package/src/components/DataTableFilterChips/index.tsx +13 -29
- package/src/components/DataTableFilters/DataTableFilters.spec.tsx +56 -0
- package/src/components/DataTableFilters/index.tsx +169 -584
- package/src/components/DataTableGrouping/DataTableGrouping.spec.tsx +85 -0
- package/src/components/DataTableGrouping/index.tsx +270 -130
- package/src/components/DataTablePagination/DataTablePagination.spec.tsx +79 -4
- package/src/components/DataTablePagination/index.tsx +168 -112
- package/src/components/DataTableSearch/DataTableSearch.spec.tsx +40 -0
- package/src/components/DataTableSearch/DataTableSearch.stories.tsx +1 -1
- package/src/components/DataTableSearch/index.tsx +192 -163
- package/src/components/DataTableToolbar/DataTableToolbar.spec.tsx +48 -18
- package/src/components/DataTableToolbar/DataTableToolbar.stories.tsx +5 -45
- package/src/components/DataTableToolbar/index.tsx +128 -99
- package/src/components/DataTableViewOptions/index.tsx +29 -22
- package/src/components/SimpleTable/SimpleTable.stories.tsx +29 -5
- package/src/components/SimpleTable/index.tsx +442 -61
- package/src/components/SimpleTable/simpleTable.spec.tsx +140 -12
- package/src/components/TableInput/index.native.tsx +91 -81
- package/src/components/TableInput/index.tsx +191 -50
- package/src/components/TableInput/shared.ts +57 -0
- package/src/components/TableInput/tableInput.spec.tsx +104 -0
- package/src/hooks/useDataTable.spec.ts +100 -3
- package/src/hooks/useDataTable.ts +44 -1
- package/src/hooks/useInfiniteRows.spec.tsx +37 -0
- package/src/hooks/useInfiniteRows.ts +34 -4
- package/src/index.ts +7 -0
- package/src/types.ts +54 -3
- package/src/utils/filterUtils.ts +27 -5
- package/types/components/ChildTable/index.d.ts.map +1 -1
- package/types/components/ColumnHeaderFilter/index.d.ts.map +1 -1
- package/types/components/DataTable/DataTableDocumentList.d.ts +32 -0
- package/types/components/DataTable/DataTableDocumentList.d.ts.map +1 -0
- package/types/components/DataTable/DataTableMobileCards.d.ts +3 -1
- package/types/components/DataTable/DataTableMobileCards.d.ts.map +1 -1
- package/types/components/DataTable/DataTableRoot.d.ts +1 -1
- package/types/components/DataTable/DataTableRoot.d.ts.map +1 -1
- package/types/components/DataTable/DataTableVirtualized.d.ts +1 -2
- package/types/components/DataTable/DataTableVirtualized.d.ts.map +1 -1
- package/types/components/DataTable/documentListSlots.d.ts +26 -0
- package/types/components/DataTable/documentListSlots.d.ts.map +1 -0
- package/types/components/DataTable/index.native.d.ts +1 -1
- package/types/components/DataTable/index.native.d.ts.map +1 -1
- package/types/components/DataTable/rowStateChrome.d.ts +18 -0
- package/types/components/DataTable/rowStateChrome.d.ts.map +1 -0
- package/types/components/DataTableCell/CellModalEditor.d.ts +6 -1
- package/types/components/DataTableCell/CellModalEditor.d.ts.map +1 -1
- package/types/components/DataTableCell/CellModalEditor.native.d.ts +1 -1
- package/types/components/DataTableCell/CellModalEditor.native.d.ts.map +1 -1
- package/types/components/DataTableCell/CellOptionsEditor.d.ts +11 -3
- package/types/components/DataTableCell/CellOptionsEditor.d.ts.map +1 -1
- package/types/components/DataTableCell/index.d.ts +1 -1
- package/types/components/DataTableCell/index.d.ts.map +1 -1
- package/types/components/DataTableColumnPinning/index.d.ts.map +1 -1
- package/types/components/DataTableDateFilter/index.d.ts.map +1 -1
- package/types/components/DataTableExport/index.d.ts +17 -6
- package/types/components/DataTableExport/index.d.ts.map +1 -1
- package/types/components/DataTableFacetMenu/index.d.ts +84 -0
- package/types/components/DataTableFacetMenu/index.d.ts.map +1 -0
- package/types/components/DataTableFilterButton/index.d.ts.map +1 -1
- package/types/components/DataTableFilterChips/FilterChip.d.ts +15 -0
- package/types/components/DataTableFilterChips/FilterChip.d.ts.map +1 -0
- package/types/components/DataTableFilterChips/index.d.ts +5 -0
- package/types/components/DataTableFilterChips/index.d.ts.map +1 -1
- package/types/components/DataTableFilters/index.d.ts +11 -0
- 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 +5 -0
- package/types/components/DataTablePagination/index.d.ts.map +1 -1
- package/types/components/DataTableSearch/index.d.ts.map +1 -1
- package/types/components/DataTableToolbar/index.d.ts +2 -0
- package/types/components/DataTableToolbar/index.d.ts.map +1 -1
- package/types/components/SimpleTable/index.d.ts +27 -5
- package/types/components/SimpleTable/index.d.ts.map +1 -1
- package/types/components/TableInput/index.d.ts +6 -1
- package/types/components/TableInput/index.d.ts.map +1 -1
- package/types/components/TableInput/index.native.d.ts +6 -1
- package/types/components/TableInput/index.native.d.ts.map +1 -1
- package/types/components/TableInput/shared.d.ts +38 -0
- package/types/components/TableInput/shared.d.ts.map +1 -1
- package/types/hooks/useDataTable.d.ts +1 -1
- package/types/hooks/useDataTable.d.ts.map +1 -1
- package/types/hooks/useInfiniteRows.d.ts +8 -1
- package/types/hooks/useInfiniteRows.d.ts.map +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/types.d.ts +54 -3
- package/types/types.d.ts.map +1 -1
- package/types/utils/filterUtils.d.ts.map +1 -1
|
@@ -8,8 +8,10 @@
|
|
|
8
8
|
* label; pressing it opens a forms FloatingPanel — an anchored popover with
|
|
9
9
|
* collision handling on desktop web, a bottom sheet on native and small
|
|
10
10
|
* viewports — with the full option list, seeded at the cell's current value
|
|
11
|
-
* (Axiom 11).
|
|
12
|
-
*
|
|
11
|
+
* (Axiom 11). COMMIT-class groups (`dismissOnPick`, default) close on a pick,
|
|
12
|
+
* including re-picking the current value; COMPOSE-class groups (multi-select
|
|
13
|
+
* toggles) stay open until Escape / outside click. The face is a keyboard
|
|
14
|
+
* stop; the ring lives on the parent cell chrome (LC-71), not this node.
|
|
13
15
|
*/
|
|
14
16
|
|
|
15
17
|
import { FieldDisplay, FloatingPanel, type FieldDisplayType } from "@multiplatform.one/forms";
|
|
@@ -24,6 +26,12 @@ export interface CellOptionsEditorProps {
|
|
|
24
26
|
disabled?: boolean;
|
|
25
27
|
/** Accessible name for the chromeless cell trigger (column header). */
|
|
26
28
|
label?: string;
|
|
29
|
+
/**
|
|
30
|
+
* LC-21 COMMIT class (default): a pick — including re-picking the current
|
|
31
|
+
* value — dismisses the panel. Set false for COMPOSE class (multi-select
|
|
32
|
+
* toggles stay open so several options can be composed).
|
|
33
|
+
*/
|
|
34
|
+
dismissOnPick?: boolean;
|
|
27
35
|
/**
|
|
28
36
|
* Option-group editor rendered inside the panel. `close` dismisses the
|
|
29
37
|
* panel — call it after committing a pick (COMMIT-class dismissal).
|
|
@@ -37,6 +45,7 @@ export function CellOptionsEditor({
|
|
|
37
45
|
fieldProps,
|
|
38
46
|
disabled,
|
|
39
47
|
label,
|
|
48
|
+
dismissOnPick = true,
|
|
40
49
|
children,
|
|
41
50
|
}: CellOptionsEditorProps) {
|
|
42
51
|
const [open, setOpen] = useState(false);
|
|
@@ -50,6 +59,10 @@ export function CellOptionsEditor({
|
|
|
50
59
|
paddingVertical="$1"
|
|
51
60
|
borderRadius="$2"
|
|
52
61
|
opacity={disabled ? 0.5 : 1}
|
|
62
|
+
// LC-71: the parent CellWrapper paints the one ring; this face must
|
|
63
|
+
// not add a second outline on keyboard focus.
|
|
64
|
+
outlineWidth={0}
|
|
65
|
+
focusVisibleStyle={{ outlineWidth: 0 }}
|
|
53
66
|
{...(!disabled
|
|
54
67
|
? {
|
|
55
68
|
role: "button" as any,
|
|
@@ -68,16 +81,20 @@ export function CellOptionsEditor({
|
|
|
68
81
|
if (disabled) return face;
|
|
69
82
|
|
|
70
83
|
// LC-21 COMMIT class: picking IS the exit — including re-picking the
|
|
71
|
-
// already-selected option, which fires no onValueChange (Tamagui radio
|
|
72
|
-
//
|
|
73
|
-
// the panel open. Deferred so the option's own
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
84
|
+
// already-selected option, which fires no onValueChange (Tamagui radio /
|
|
85
|
+
// single ToggleGroup emit only on change), so the changed-pick close()
|
|
86
|
+
// alone would strand the panel open. Deferred so the option's own
|
|
87
|
+
// press/commit runs first. COMPOSE class skips this (panel stays open).
|
|
88
|
+
const handlePanelPointerUp =
|
|
89
|
+
isWeb && dismissOnPick
|
|
90
|
+
? (event: { target?: unknown }) => {
|
|
91
|
+
const target = event?.target as { closest?: (sel: string) => unknown } | null;
|
|
92
|
+
if (!target?.closest?.('[role="radio"], [role="checkbox"], [aria-pressed], label')) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
setTimeout(() => setOpen(false), 0);
|
|
96
|
+
}
|
|
97
|
+
: undefined;
|
|
81
98
|
|
|
82
99
|
return (
|
|
83
100
|
<FloatingPanel open={open} onOpenChange={setOpen} fitContent trigger={face}>
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* DataTableCell — per-field-type cell stories.
|
|
3
3
|
*
|
|
4
4
|
* Contract: every cell hosts any field; each field has a read (FieldDisplay)
|
|
5
|
-
* and an edit rendering; edits too big for the cell open in a
|
|
6
|
-
* (CellModalEditor)
|
|
7
|
-
* DataTable context required.
|
|
5
|
+
* and an edit rendering; edits too big for the cell open in a popover (option
|
|
6
|
+
* groups) or modal editor (CellModalEditor) so the row never grows (LC-06).
|
|
7
|
+
* DataTableCell is standalone — value/onChange, no DataTable context required.
|
|
8
8
|
*
|
|
9
9
|
* Each *Field story renders the SAME state in edit mode and read mode inside
|
|
10
10
|
* real table-primitive cells, and echoes the committed value (testID
|
|
@@ -95,8 +95,41 @@ function MockTextArea({ value, onChangeText }: any) {
|
|
|
95
95
|
);
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
/** Options render as
|
|
99
|
-
*
|
|
98
|
+
/** Options render as toggle buttons with aria-pressed (mirrors Tamagui
|
|
99
|
+
* ToggleGroup items: single type emits only on change). */
|
|
100
|
+
function MockToggleGroup({ value, onValueChange, options, type }: any) {
|
|
101
|
+
const selected = type === "multiple" ? (Array.isArray(value) ? value : []) : value;
|
|
102
|
+
return (
|
|
103
|
+
<div data-testid="toggle-group" data-value={JSON.stringify(selected)}>
|
|
104
|
+
{(options ?? []).map((option: any) => {
|
|
105
|
+
const pressed =
|
|
106
|
+
type === "multiple"
|
|
107
|
+
? (selected as string[]).includes(option.value)
|
|
108
|
+
: option.value === selected;
|
|
109
|
+
return (
|
|
110
|
+
<button
|
|
111
|
+
key={option.value}
|
|
112
|
+
type="button"
|
|
113
|
+
aria-pressed={pressed}
|
|
114
|
+
data-testid={`toggle-${option.value}`}
|
|
115
|
+
onClick={() => {
|
|
116
|
+
if (type === "multiple") {
|
|
117
|
+
const next = pressed
|
|
118
|
+
? (selected as string[]).filter((v) => v !== option.value)
|
|
119
|
+
: [...(selected as string[]), option.value];
|
|
120
|
+
onValueChange?.(next);
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
if (option.value !== selected) onValueChange?.(option.value);
|
|
124
|
+
}}
|
|
125
|
+
>
|
|
126
|
+
{option.label}
|
|
127
|
+
</button>
|
|
128
|
+
);
|
|
129
|
+
})}
|
|
130
|
+
</div>
|
|
131
|
+
);
|
|
132
|
+
}
|
|
100
133
|
function MockRadioGroup({ value, onValueChange, options }: any) {
|
|
101
134
|
return (
|
|
102
135
|
<div data-testid="radio-group" data-value={String(value ?? "")}>
|
|
@@ -203,7 +236,7 @@ vi.mock("@multiplatform.one/forms", async (importOriginal) => ({
|
|
|
203
236
|
Progress: createMock("Progress"),
|
|
204
237
|
RadioGroup: MockRadioGroup,
|
|
205
238
|
FloatingPanel: MockFloatingPanel,
|
|
206
|
-
ToggleGroup:
|
|
239
|
+
ToggleGroup: MockToggleGroup,
|
|
207
240
|
DatePicker: createMock("DatePicker"),
|
|
208
241
|
DatetimePicker: createMock("DatetimePicker"),
|
|
209
242
|
TimePicker: createMock("TimePicker"),
|
|
@@ -257,7 +290,7 @@ vi.mock("@multiplatform.one/theme", async (importOriginal) => ({
|
|
|
257
290
|
outlineWidth: 2,
|
|
258
291
|
outlineStyle: "solid",
|
|
259
292
|
outlineColor: "$outlineColor",
|
|
260
|
-
outlineOffset: 2,
|
|
293
|
+
outlineOffset: -2,
|
|
261
294
|
},
|
|
262
295
|
},
|
|
263
296
|
}),
|
|
@@ -644,3 +677,97 @@ describe("DataTableCell radiogroup — options escape the anchor", () => {
|
|
|
644
677
|
expect(onChange).not.toHaveBeenCalled();
|
|
645
678
|
});
|
|
646
679
|
});
|
|
680
|
+
|
|
681
|
+
describe("DataTableCell togglegroup — options escape the anchor", () => {
|
|
682
|
+
const options = [
|
|
683
|
+
{ label: "Bold", value: "bold" },
|
|
684
|
+
{ label: "Italic", value: "italic" },
|
|
685
|
+
{ label: "Underline", value: "underline" },
|
|
686
|
+
];
|
|
687
|
+
|
|
688
|
+
it("renders a compact face; options only mount in the panel after click", async () => {
|
|
689
|
+
const onChange = vi.fn();
|
|
690
|
+
const { getByTestId, queryByTestId } = renderCell({
|
|
691
|
+
field: "togglegroup",
|
|
692
|
+
value: "bold",
|
|
693
|
+
fieldProps: { options },
|
|
694
|
+
onChange,
|
|
695
|
+
});
|
|
696
|
+
|
|
697
|
+
expect(queryByTestId("toggle-group")).toBeNull();
|
|
698
|
+
expect(getByTestId("mock-FieldDisplay").getAttribute("data-field")).toBe("togglegroup");
|
|
699
|
+
|
|
700
|
+
fireEvent.click(getByTestId("floating-panel-trigger"));
|
|
701
|
+
await waitFor(() => expect(queryByTestId("toggle-group")).not.toBeNull());
|
|
702
|
+
expect(getByTestId("toggle-group").getAttribute("data-value")).toBe(JSON.stringify("bold"));
|
|
703
|
+
});
|
|
704
|
+
|
|
705
|
+
it("a single pick commits immediately and closes the panel (LC-21 COMMIT)", async () => {
|
|
706
|
+
const onChange = vi.fn();
|
|
707
|
+
const { getByTestId, queryByTestId } = renderCell({
|
|
708
|
+
field: "togglegroup",
|
|
709
|
+
value: "bold",
|
|
710
|
+
fieldProps: { options },
|
|
711
|
+
onChange,
|
|
712
|
+
});
|
|
713
|
+
|
|
714
|
+
fireEvent.click(getByTestId("floating-panel-trigger"));
|
|
715
|
+
await waitFor(() => expect(queryByTestId("toggle-group")).not.toBeNull());
|
|
716
|
+
|
|
717
|
+
fireEvent.click(getByTestId("toggle-italic"));
|
|
718
|
+
expect(onChange).toHaveBeenCalledTimes(1);
|
|
719
|
+
expect(onChange).toHaveBeenCalledWith("italic");
|
|
720
|
+
await waitFor(() => expect(queryByTestId("toggle-group")).toBeNull());
|
|
721
|
+
});
|
|
722
|
+
|
|
723
|
+
it("multi-select stays open so options can be composed (LC-21 COMPOSE)", async () => {
|
|
724
|
+
const onChange = vi.fn();
|
|
725
|
+
const { getByTestId, queryByTestId } = renderCell({
|
|
726
|
+
field: "togglegroup",
|
|
727
|
+
value: ["bold"],
|
|
728
|
+
fieldProps: { options, allowMultiple: true },
|
|
729
|
+
onChange,
|
|
730
|
+
});
|
|
731
|
+
|
|
732
|
+
fireEvent.click(getByTestId("floating-panel-trigger"));
|
|
733
|
+
await waitFor(() => expect(queryByTestId("toggle-group")).not.toBeNull());
|
|
734
|
+
|
|
735
|
+
fireEvent.click(getByTestId("toggle-italic"));
|
|
736
|
+
expect(onChange).toHaveBeenCalledWith(["bold", "italic"]);
|
|
737
|
+
expect(queryByTestId("toggle-group")).not.toBeNull();
|
|
738
|
+
|
|
739
|
+
fireEvent.pointerUp(getByTestId("toggle-italic"));
|
|
740
|
+
expect(queryByTestId("toggle-group")).not.toBeNull();
|
|
741
|
+
});
|
|
742
|
+
});
|
|
743
|
+
|
|
744
|
+
describe("CellModalEditor staging — textarea (LC-06 oversized edit)", () => {
|
|
745
|
+
async function openModal(onChange: (value: any) => void) {
|
|
746
|
+
const utils = renderCell({
|
|
747
|
+
field: "textarea",
|
|
748
|
+
value: "line one",
|
|
749
|
+
onChange,
|
|
750
|
+
});
|
|
751
|
+
fireEvent.click(utils.baseElement.querySelector('[data-testid="mock-FieldDisplay"]')!);
|
|
752
|
+
await waitFor(() =>
|
|
753
|
+
expect(utils.baseElement.querySelector('[data-testid="textarea-input"]')).not.toBeNull(),
|
|
754
|
+
);
|
|
755
|
+
return utils;
|
|
756
|
+
}
|
|
757
|
+
|
|
758
|
+
it("keeps a single-line face; edits stay in the draft until Done", async () => {
|
|
759
|
+
const onChange = vi.fn();
|
|
760
|
+
const { baseElement, getByText } = await openModal(onChange);
|
|
761
|
+
const textarea = baseElement.querySelector(
|
|
762
|
+
'[data-testid="textarea-input"]',
|
|
763
|
+
) as HTMLTextAreaElement;
|
|
764
|
+
|
|
765
|
+
fireEvent.change(textarea, { target: { value: "line two" } });
|
|
766
|
+
expect(textarea.value).toBe("line two");
|
|
767
|
+
expect(onChange).not.toHaveBeenCalled();
|
|
768
|
+
|
|
769
|
+
fireEvent.click(getByText("Done"));
|
|
770
|
+
await waitFor(() => expect(onChange).toHaveBeenCalledWith("line two"));
|
|
771
|
+
expect(onChange).toHaveBeenCalledTimes(1);
|
|
772
|
+
});
|
|
773
|
+
});
|
|
@@ -120,7 +120,7 @@ vi.mock("@multiplatform.one/theme", async (importOriginal) => ({
|
|
|
120
120
|
outlineWidth: 2,
|
|
121
121
|
outlineStyle: "solid",
|
|
122
122
|
outlineColor: "$outlineColor",
|
|
123
|
-
outlineOffset: 2,
|
|
123
|
+
outlineOffset: -2,
|
|
124
124
|
},
|
|
125
125
|
},
|
|
126
126
|
}),
|
|
@@ -344,4 +344,39 @@ describe("DataTableCell field type parity", () => {
|
|
|
344
344
|
fireEvent.click(container.querySelector('[data-testid="floating-panel-trigger"]')!);
|
|
345
345
|
await waitFor(() => expectRendered(baseElement, "RadioGroup"));
|
|
346
346
|
});
|
|
347
|
+
|
|
348
|
+
it("togglegroup routes through the popover editor (LC-06), never inline in the cell", async () => {
|
|
349
|
+
const { container, baseElement } = renderCell({
|
|
350
|
+
field: "togglegroup",
|
|
351
|
+
value: "bold",
|
|
352
|
+
fieldProps: {
|
|
353
|
+
options: [
|
|
354
|
+
{ label: "Bold", value: "bold" },
|
|
355
|
+
{ label: "Italic", value: "italic" },
|
|
356
|
+
{ label: "Underline", value: "underline" },
|
|
357
|
+
],
|
|
358
|
+
},
|
|
359
|
+
});
|
|
360
|
+
const display = container.querySelector('[data-component="FieldDisplay"]');
|
|
361
|
+
expect(display?.getAttribute("data-field")).toBe("togglegroup");
|
|
362
|
+
expectNotRendered(baseElement, "ToggleGroup");
|
|
363
|
+
fireEvent.click(container.querySelector('[data-testid="floating-panel-trigger"]')!);
|
|
364
|
+
await waitFor(() => expectRendered(baseElement, "ToggleGroup"));
|
|
365
|
+
});
|
|
366
|
+
|
|
367
|
+
it("textarea routes through the modal editor (LC-06), never inline in the cell", async () => {
|
|
368
|
+
const { container, baseElement } = await expectModalEditor(
|
|
369
|
+
{ field: "textarea", value: "line one\nline two" },
|
|
370
|
+
"textarea",
|
|
371
|
+
"TextArea",
|
|
372
|
+
);
|
|
373
|
+
expectNotRendered(container, "TextArea");
|
|
374
|
+
expectRendered(baseElement, "TextArea");
|
|
375
|
+
});
|
|
376
|
+
|
|
377
|
+
it("cell chrome carries the LC-71 composite ring class (keyboard-only, not mouse-within)", () => {
|
|
378
|
+
const { container } = renderCell({ field: "input", value: "acme" });
|
|
379
|
+
const ring = container.querySelector(".mp-composite-ring.mp-composite-ring-deep");
|
|
380
|
+
expect(ring).not.toBeNull();
|
|
381
|
+
});
|
|
347
382
|
});
|