@lucasbernardosn/react-table 0.0.0-stage → 0.2.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/LICENSE +21 -0
- package/README.md +268 -2
- package/dist/_virtual/_rolldown/runtime.js +13 -0
- package/dist/components/column-menu/column-menu-check.d.ts +8 -0
- package/dist/components/column-menu/column-menu-check.d.ts.map +1 -0
- package/dist/components/column-menu/column-menu-check.js +17 -0
- package/dist/components/column-menu/column-menu-check.js.map +1 -0
- package/dist/components/column-menu/column-menu-hide-item.d.ts +23 -0
- package/dist/components/column-menu/column-menu-hide-item.d.ts.map +1 -0
- package/dist/components/column-menu/column-menu-hide-item.js +27 -0
- package/dist/components/column-menu/column-menu-hide-item.js.map +1 -0
- package/dist/components/column-menu/column-menu-labels.d.ts +21 -0
- package/dist/components/column-menu/column-menu-labels.d.ts.map +1 -0
- package/dist/components/column-menu/column-menu-labels.js +14 -0
- package/dist/components/column-menu/column-menu-labels.js.map +1 -0
- package/dist/components/column-menu/column-menu-pin-items.d.ts +25 -0
- package/dist/components/column-menu/column-menu-pin-items.d.ts.map +1 -0
- package/dist/components/column-menu/column-menu-pin-items.js +64 -0
- package/dist/components/column-menu/column-menu-pin-items.js.map +1 -0
- package/dist/components/column-menu/column-menu-popup.d.ts +40 -0
- package/dist/components/column-menu/column-menu-popup.d.ts.map +1 -0
- package/dist/components/column-menu/column-menu-popup.js +67 -0
- package/dist/components/column-menu/column-menu-popup.js.map +1 -0
- package/dist/components/column-menu/column-menu-root.d.ts +34 -0
- package/dist/components/column-menu/column-menu-root.d.ts.map +1 -0
- package/dist/components/column-menu/column-menu-root.js +36 -0
- package/dist/components/column-menu/column-menu-root.js.map +1 -0
- package/dist/components/column-menu/column-menu-sort-items.d.ts +30 -0
- package/dist/components/column-menu/column-menu-sort-items.d.ts.map +1 -0
- package/dist/components/column-menu/column-menu-sort-items.js +62 -0
- package/dist/components/column-menu/column-menu-sort-items.js.map +1 -0
- package/dist/components/column-menu/column-menu-trigger.d.ts +23 -0
- package/dist/components/column-menu/column-menu-trigger.d.ts.map +1 -0
- package/dist/components/column-menu/column-menu-trigger.js +38 -0
- package/dist/components/column-menu/column-menu-trigger.js.map +1 -0
- package/dist/components/column-menu/index.d.ts +2 -0
- package/dist/components/column-menu/index.js +2 -0
- package/dist/components/column-menu/index.parts.d.ts +13 -0
- package/dist/components/column-menu/index.parts.d.ts.map +1 -0
- package/dist/components/column-menu/index.parts.js +20 -0
- package/dist/components/column-menu/index.parts.js.map +1 -0
- package/dist/components/columns-panel/columns-panel-item.d.ts +34 -0
- package/dist/components/columns-panel/columns-panel-item.d.ts.map +1 -0
- package/dist/components/columns-panel/columns-panel-item.js +109 -0
- package/dist/components/columns-panel/columns-panel-item.js.map +1 -0
- package/dist/components/columns-panel/columns-panel-root.d.ts +51 -0
- package/dist/components/columns-panel/columns-panel-root.d.ts.map +1 -0
- package/dist/components/columns-panel/columns-panel-root.js +134 -0
- package/dist/components/columns-panel/columns-panel-root.js.map +1 -0
- package/dist/components/columns-panel/get-columns-panel-column-order.d.ts +16 -0
- package/dist/components/columns-panel/get-columns-panel-column-order.d.ts.map +1 -0
- package/dist/components/columns-panel/get-columns-panel-column-order.js +24 -0
- package/dist/components/columns-panel/get-columns-panel-column-order.js.map +1 -0
- package/dist/components/columns-panel/index.d.ts +2 -0
- package/dist/components/columns-panel/index.js +2 -0
- package/dist/components/columns-panel/index.parts.d.ts +8 -0
- package/dist/components/columns-panel/index.parts.d.ts.map +1 -0
- package/dist/components/columns-panel/index.parts.js +12 -0
- package/dist/components/columns-panel/index.parts.js.map +1 -0
- package/dist/components/data-table/body/data-table-body.d.ts +58 -0
- package/dist/components/data-table/body/data-table-body.d.ts.map +1 -0
- package/dist/components/data-table/body/data-table-body.js +99 -0
- package/dist/components/data-table/body/data-table-body.js.map +1 -0
- package/dist/components/data-table/body/data-table-cell.d.ts +26 -0
- package/dist/components/data-table/body/data-table-cell.d.ts.map +1 -0
- package/dist/components/data-table/body/data-table-cell.js +80 -0
- package/dist/components/data-table/body/data-table-cell.js.map +1 -0
- package/dist/components/data-table/body/data-table-empty.d.ts +38 -0
- package/dist/components/data-table/body/data-table-empty.d.ts.map +1 -0
- package/dist/components/data-table/body/data-table-empty.js +71 -0
- package/dist/components/data-table/body/data-table-empty.js.map +1 -0
- package/dist/components/data-table/body/data-table-row-focus.d.ts +32 -0
- package/dist/components/data-table/body/data-table-row-focus.d.ts.map +1 -0
- package/dist/components/data-table/body/data-table-row-focus.js +58 -0
- package/dist/components/data-table/body/data-table-row-focus.js.map +1 -0
- package/dist/components/data-table/body/data-table-row.d.ts +67 -0
- package/dist/components/data-table/body/data-table-row.d.ts.map +1 -0
- package/dist/components/data-table/body/data-table-row.js +154 -0
- package/dist/components/data-table/body/data-table-row.js.map +1 -0
- package/dist/components/data-table/body/use-data-table-row-focus-recovery.d.ts +19 -0
- package/dist/components/data-table/body/use-data-table-row-focus-recovery.d.ts.map +1 -0
- package/dist/components/data-table/body/use-data-table-row-focus-recovery.js +64 -0
- package/dist/components/data-table/body/use-data-table-row-focus-recovery.js.map +1 -0
- package/dist/components/data-table/header/data-table-header-button.d.ts +25 -0
- package/dist/components/data-table/header/data-table-header-button.d.ts.map +1 -0
- package/dist/components/data-table/header/data-table-header-button.js +57 -0
- package/dist/components/data-table/header/data-table-header-button.js.map +1 -0
- package/dist/components/data-table/header/data-table-header-cell.d.ts +34 -0
- package/dist/components/data-table/header/data-table-header-cell.d.ts.map +1 -0
- package/dist/components/data-table/header/data-table-header-cell.js +97 -0
- package/dist/components/data-table/header/data-table-header-cell.js.map +1 -0
- package/dist/components/data-table/header/data-table-header-content.d.ts +21 -0
- package/dist/components/data-table/header/data-table-header-content.d.ts.map +1 -0
- package/dist/components/data-table/header/data-table-header-content.js +37 -0
- package/dist/components/data-table/header/data-table-header-content.js.map +1 -0
- package/dist/components/data-table/header/data-table-header-row.d.ts +15 -0
- package/dist/components/data-table/header/data-table-header-row.d.ts.map +1 -0
- package/dist/components/data-table/header/data-table-header-row.js +28 -0
- package/dist/components/data-table/header/data-table-header-row.js.map +1 -0
- package/dist/components/data-table/header/data-table-header.d.ts +46 -0
- package/dist/components/data-table/header/data-table-header.d.ts.map +1 -0
- package/dist/components/data-table/header/data-table-header.js +80 -0
- package/dist/components/data-table/header/data-table-header.js.map +1 -0
- package/dist/components/data-table/index.d.ts +2 -0
- package/dist/components/data-table/index.js +2 -0
- package/dist/components/data-table/index.parts.d.ts +33 -0
- package/dist/components/data-table/index.parts.d.ts.map +1 -0
- package/dist/components/data-table/index.parts.js +62 -0
- package/dist/components/data-table/index.parts.js.map +1 -0
- package/dist/components/data-table/loading/get-data-table-loading-without-rows.d.ts +16 -0
- package/dist/components/data-table/loading/get-data-table-loading-without-rows.d.ts.map +1 -0
- package/dist/components/data-table/loading/get-data-table-loading-without-rows.js +18 -0
- package/dist/components/data-table/loading/get-data-table-loading-without-rows.js.map +1 -0
- package/dist/components/data-table/loading/use-data-table-loading-inert.d.ts +16 -0
- package/dist/components/data-table/loading/use-data-table-loading-inert.d.ts.map +1 -0
- package/dist/components/data-table/loading/use-data-table-loading-inert.js +54 -0
- package/dist/components/data-table/loading/use-data-table-loading-inert.js.map +1 -0
- package/dist/components/data-table/loading/use-data-table-loading.d.ts +13 -0
- package/dist/components/data-table/loading/use-data-table-loading.d.ts.map +1 -0
- package/dist/components/data-table/loading/use-data-table-loading.js +40 -0
- package/dist/components/data-table/loading/use-data-table-loading.js.map +1 -0
- package/dist/components/data-table/pagination/data-table-page-button.d.ts +45 -0
- package/dist/components/data-table/pagination/data-table-page-button.d.ts.map +1 -0
- package/dist/components/data-table/pagination/data-table-page-button.js +67 -0
- package/dist/components/data-table/pagination/data-table-page-button.js.map +1 -0
- package/dist/components/data-table/pagination/data-table-page-size-select.d.ts +47 -0
- package/dist/components/data-table/pagination/data-table-page-size-select.d.ts.map +1 -0
- package/dist/components/data-table/pagination/data-table-page-size-select.js +68 -0
- package/dist/components/data-table/pagination/data-table-page-size-select.js.map +1 -0
- package/dist/components/data-table/pagination/data-table-page-status.d.ts +43 -0
- package/dist/components/data-table/pagination/data-table-page-status.d.ts.map +1 -0
- package/dist/components/data-table/pagination/data-table-page-status.js +48 -0
- package/dist/components/data-table/pagination/data-table-page-status.js.map +1 -0
- package/dist/components/data-table/pagination/data-table-pagination.d.ts +38 -0
- package/dist/components/data-table/pagination/data-table-pagination.d.ts.map +1 -0
- package/dist/components/data-table/pagination/data-table-pagination.js +87 -0
- package/dist/components/data-table/pagination/data-table-pagination.js.map +1 -0
- package/dist/components/data-table/pagination/data-table-row-range.d.ts +49 -0
- package/dist/components/data-table/pagination/data-table-row-range.d.ts.map +1 -0
- package/dist/components/data-table/pagination/data-table-row-range.js +63 -0
- package/dist/components/data-table/pagination/data-table-row-range.js.map +1 -0
- package/dist/components/data-table/pagination/data-table-selected-count.d.ts +37 -0
- package/dist/components/data-table/pagination/data-table-selected-count.d.ts.map +1 -0
- package/dist/components/data-table/pagination/data-table-selected-count.js +44 -0
- package/dist/components/data-table/pagination/data-table-selected-count.js.map +1 -0
- package/dist/components/data-table/pagination/use-data-table-page-scroll-reset.d.ts +15 -0
- package/dist/components/data-table/pagination/use-data-table-page-scroll-reset.d.ts.map +1 -0
- package/dist/components/data-table/pagination/use-data-table-page-scroll-reset.js +38 -0
- package/dist/components/data-table/pagination/use-data-table-page-scroll-reset.js.map +1 -0
- package/dist/components/data-table/resize/data-table-resize-handle.d.ts +48 -0
- package/dist/components/data-table/resize/data-table-resize-handle.d.ts.map +1 -0
- package/dist/components/data-table/resize/data-table-resize-handle.js +116 -0
- package/dist/components/data-table/resize/data-table-resize-handle.js.map +1 -0
- package/dist/components/data-table/resize/use-data-table-resize-scroll.d.ts +18 -0
- package/dist/components/data-table/resize/use-data-table-resize-scroll.d.ts.map +1 -0
- package/dist/components/data-table/resize/use-data-table-resize-scroll.js +55 -0
- package/dist/components/data-table/resize/use-data-table-resize-scroll.js.map +1 -0
- package/dist/components/data-table/root/data-table-grid-class-names.d.ts +10 -0
- package/dist/components/data-table/root/data-table-grid-class-names.d.ts.map +1 -0
- package/dist/components/data-table/root/data-table-grid-class-names.js +22 -0
- package/dist/components/data-table/root/data-table-grid-class-names.js.map +1 -0
- package/dist/components/data-table/root/data-table-root.d.ts +41 -0
- package/dist/components/data-table/root/data-table-root.d.ts.map +1 -0
- package/dist/components/data-table/root/data-table-root.js +72 -0
- package/dist/components/data-table/root/data-table-root.js.map +1 -0
- package/dist/components/data-table/root/data-table-scroll-area.d.ts +30 -0
- package/dist/components/data-table/root/data-table-scroll-area.d.ts.map +1 -0
- package/dist/components/data-table/root/data-table-scroll-area.js +137 -0
- package/dist/components/data-table/root/data-table-scroll-area.js.map +1 -0
- package/dist/components/data-table/root/get-data-table-column-layout.d.ts +45 -0
- package/dist/components/data-table/root/get-data-table-column-layout.d.ts.map +1 -0
- package/dist/components/data-table/root/get-data-table-column-layout.js +55 -0
- package/dist/components/data-table/root/get-data-table-column-layout.js.map +1 -0
- package/dist/components/data-table/root/get-data-table-column-pinning.d.ts +46 -0
- package/dist/components/data-table/root/get-data-table-column-pinning.d.ts.map +1 -0
- package/dist/components/data-table/root/get-data-table-column-pinning.js +46 -0
- package/dist/components/data-table/root/get-data-table-column-pinning.js.map +1 -0
- package/dist/components/data-table/root/get-data-table-scroll-parent.d.ts +13 -0
- package/dist/components/data-table/root/get-data-table-scroll-parent.d.ts.map +1 -0
- package/dist/components/data-table/root/get-data-table-scroll-parent.js +20 -0
- package/dist/components/data-table/root/get-data-table-scroll-parent.js.map +1 -0
- package/dist/components/data-table/root/use-data-table-column-layout.d.ts +25 -0
- package/dist/components/data-table/root/use-data-table-column-layout.d.ts.map +1 -0
- package/dist/components/data-table/root/use-data-table-column-layout.js +106 -0
- package/dist/components/data-table/root/use-data-table-column-layout.js.map +1 -0
- package/dist/components/data-table/root/use-data-table-header-offset.d.ts +15 -0
- package/dist/components/data-table/root/use-data-table-header-offset.d.ts.map +1 -0
- package/dist/components/data-table/root/use-data-table-header-offset.js +35 -0
- package/dist/components/data-table/root/use-data-table-header-offset.js.map +1 -0
- package/dist/components/data-table/selection/data-table-row-checkbox.d.ts +33 -0
- package/dist/components/data-table/selection/data-table-row-checkbox.d.ts.map +1 -0
- package/dist/components/data-table/selection/data-table-row-checkbox.js +50 -0
- package/dist/components/data-table/selection/data-table-row-checkbox.js.map +1 -0
- package/dist/components/data-table/selection/data-table-select-all-checkbox.d.ts +31 -0
- package/dist/components/data-table/selection/data-table-select-all-checkbox.d.ts.map +1 -0
- package/dist/components/data-table/selection/data-table-select-all-checkbox.js +44 -0
- package/dist/components/data-table/selection/data-table-select-all-checkbox.js.map +1 -0
- package/dist/components/data-table/selection/data-table-selection-bar.d.ts +51 -0
- package/dist/components/data-table/selection/data-table-selection-bar.d.ts.map +1 -0
- package/dist/components/data-table/selection/data-table-selection-bar.js +58 -0
- package/dist/components/data-table/selection/data-table-selection-bar.js.map +1 -0
- package/dist/components/data-table/selection/selection-column-def.d.ts +54 -0
- package/dist/components/data-table/selection/selection-column-def.d.ts.map +1 -0
- package/dist/components/data-table/selection/selection-column-def.js +55 -0
- package/dist/components/data-table/selection/selection-column-def.js.map +1 -0
- package/dist/components/data-table/sorting/data-table-sort-indicator.d.ts +26 -0
- package/dist/components/data-table/sorting/data-table-sort-indicator.d.ts.map +1 -0
- package/dist/components/data-table/sorting/data-table-sort-indicator.js +64 -0
- package/dist/components/data-table/sorting/data-table-sort-indicator.js.map +1 -0
- package/dist/components/data-table/sorting/data-table-sort-trigger.d.ts +31 -0
- package/dist/components/data-table/sorting/data-table-sort-trigger.d.ts.map +1 -0
- package/dist/components/data-table/sorting/data-table-sort-trigger.js +46 -0
- package/dist/components/data-table/sorting/data-table-sort-trigger.js.map +1 -0
- package/dist/components/data-table/toolbar/data-table-density-select.d.ts +39 -0
- package/dist/components/data-table/toolbar/data-table-density-select.d.ts.map +1 -0
- package/dist/components/data-table/toolbar/data-table-density-select.js +60 -0
- package/dist/components/data-table/toolbar/data-table-density-select.js.map +1 -0
- package/dist/components/data-table/toolbar/data-table-sort-column-select.d.ts +48 -0
- package/dist/components/data-table/toolbar/data-table-sort-column-select.d.ts.map +1 -0
- package/dist/components/data-table/toolbar/data-table-sort-column-select.js +79 -0
- package/dist/components/data-table/toolbar/data-table-sort-column-select.js.map +1 -0
- package/dist/components/data-table/toolbar/data-table-sort-direction-select.d.ts +40 -0
- package/dist/components/data-table/toolbar/data-table-sort-direction-select.d.ts.map +1 -0
- package/dist/components/data-table/toolbar/data-table-sort-direction-select.js +66 -0
- package/dist/components/data-table/toolbar/data-table-sort-direction-select.js.map +1 -0
- package/dist/features/active-row/active-row-feature.d.ts +22 -0
- package/dist/features/active-row/active-row-feature.d.ts.map +1 -0
- package/dist/features/active-row/active-row-feature.js +55 -0
- package/dist/features/active-row/active-row-feature.js.map +1 -0
- package/dist/features/active-row/active-row-feature.types.d.ts +64 -0
- package/dist/features/active-row/active-row-feature.types.d.ts.map +1 -0
- package/dist/features/active-row/active-row-feature.types.js +0 -0
- package/dist/features/column-alignment/column-alignment-feature.d.ts +23 -0
- package/dist/features/column-alignment/column-alignment-feature.d.ts.map +1 -0
- package/dist/features/column-alignment/column-alignment-feature.js +34 -0
- package/dist/features/column-alignment/column-alignment-feature.js.map +1 -0
- package/dist/features/column-alignment/column-alignment-feature.types.d.ts +34 -0
- package/dist/features/column-alignment/column-alignment-feature.types.d.ts.map +1 -0
- package/dist/features/column-alignment/column-alignment-feature.types.js +0 -0
- package/dist/features/index.d.ts +9 -0
- package/dist/features/index.js +5 -0
- package/dist/features/loading/loading-feature.d.ts +30 -0
- package/dist/features/loading/loading-feature.d.ts.map +1 -0
- package/dist/features/loading/loading-feature.js +48 -0
- package/dist/features/loading/loading-feature.js.map +1 -0
- package/dist/features/loading/loading-feature.types.d.ts +50 -0
- package/dist/features/loading/loading-feature.types.d.ts.map +1 -0
- package/dist/features/loading/loading-feature.types.js +0 -0
- package/dist/features/row-density/row-density-feature.d.ts +26 -0
- package/dist/features/row-density/row-density-feature.d.ts.map +1 -0
- package/dist/features/row-density/row-density-feature.js +44 -0
- package/dist/features/row-density/row-density-feature.js.map +1 -0
- package/dist/features/row-density/row-density-feature.types.d.ts +53 -0
- package/dist/features/row-density/row-density-feature.types.d.ts.map +1 -0
- package/dist/features/row-density/row-density-feature.types.js +0 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js +0 -0
- package/dist/types/table-with.d.ts +96 -0
- package/dist/types/table-with.d.ts.map +1 -0
- package/dist/types/table-with.js +0 -0
- package/dist/utils/get-default-column-label.d.ts +17 -0
- package/dist/utils/get-default-column-label.d.ts.map +1 -0
- package/dist/utils/get-default-column-label.js +18 -0
- package/dist/utils/get-default-column-label.js.map +1 -0
- package/dist/utils/has-feature.d.ts +54 -0
- package/dist/utils/has-feature.d.ts.map +1 -0
- package/dist/utils/has-feature.js +55 -0
- package/dist/utils/has-feature.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.js +3 -0
- package/package.json +80 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-table-header-button.js","names":[],"sources":["../../../../src/components/data-table/header/data-table-header-button.tsx"],"sourcesContent":["import { mergeProps, useRender } from '@base-ui/react';\nimport { mergeTwClassNames } from '@lucasbernardosn/react-ui/utils';\n\nexport type DataTableHeaderButtonProps = useRender.ComponentProps<'button'>;\n\n/**\n * O botão do tamanho da célula do header, sem ação: a base do `DataTable.SortTrigger` e de outros\n * gatilhos do header, como o de um popover da coluna. Ocupa a `DataTable.HeaderCell` inteira; nas\n * bordas, a área de agarre do `DataTable.ResizeHandle` fica por cima. Alinha o conteúdo pelo\n * `data-align` da `DataTable.HeaderCell`, sem precisar do header.\n *\n * @example\n * ```tsx\n * <Popover.Root>\n * <Popover.Trigger render={<DataTable.HeaderButton />}>\n * <DataTable.HeaderContent header={header} />\n * </Popover.Trigger>\n * …\n * </Popover.Root>\n * ```\n */\nexport const DataTableHeaderButton = (props: DataTableHeaderButtonProps) => {\n const { render, className, ...rest } = props;\n\n const baseProps = {\n 'data-component': 'DataTable.HeaderButton',\n // Só no `button` padrão: com `render`, o elemento é de quem passou, como o `span` do\n // `DataTable.SortTrigger` numa coluna que não ordena.\n type: render === undefined ? 'button' : undefined,\n className: mergeTwClassNames(\n [\n // A célula inteira, com um padding só: sai do padding da `DataTable.HeaderCell` pela\n // margem negativa e põe o mesmo por dentro. O texto fica na linha do texto das células,\n // em qualquer densidade.\n 'flex-1',\n 'self-stretch',\n 'min-w-0',\n '-mx-(--data-table-cell-padding)',\n 'px-(--data-table-cell-padding)',\n\n 'flex',\n 'items-center',\n 'gap-1',\n // Pelo `data-align` da `DataTable.HeaderCell`. `end`, e não o `flex-end` do\n // `justify-end`: segue o fim da linha mesmo com a ordem invertida (`flex-row-reverse`).\n 'in-data-[align=center]:justify-center',\n 'in-data-[align=end]:[justify-content:end]',\n\n // O `text-align: center` do botão centralizaria o texto truncado.\n 'text-start',\n\n // `:enabled` só casa com o botão: um `span` fica de fora. O fundo do hover sobe um passo do\n // `gray-2` do cabeçalho, a mesma cor do hover da linha; o texto não muda. A transição só\n // durante o hover, como no `Button` do `ui`.\n 'enabled:cursor-pointer',\n 'enabled:hover:bg-gray-3',\n 'enabled:hover:transition-[background-color]',\n 'enabled:hover:ease-in',\n 'enabled:hover:duration-150',\n\n // Por dentro: a célula vizinha pinta depois e cobriria um anel por fora.\n 'focus-ring-outside',\n '[--focus-ring-offset:-2px]',\n 'ring-gray-12',\n ],\n className,\n ),\n };\n\n return useRender({\n render,\n defaultTagName: 'button',\n props: mergeProps(baseProps, rest),\n });\n};\n\nDataTableHeaderButton.displayName = 'DataTable.HeaderButton';\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAqBA,MAAa,yBAAyB,UAAsC;CAC1E,MAAM,EAAE,QAAQ,WAAW,GAAG,SAAS;CAEvC,MAAM,YAAY;EAChB,kBAAkB;EAGlB,MAAM,WAAW,KAAA,IAAY,WAAW,KAAA;EACxC,WAAW,kBACT;GAIE;GACA;GACA;GACA;GACA;GAEA;GACA;GACA;GAGA;GACA;GAGA;GAKA;GACA;GACA;GACA;GACA;GAGA;GACA;GACA;EACF,GACA,SACF;CACF;CAEA,OAAO,UAAU;EACf;EACA,gBAAgB;EAChB,OAAO,WAAW,WAAW,IAAI;CACnC,CAAC;AACH;AAEA,sBAAsB,cAAc"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Header, RowData, TableFeatures } from "@tanstack/react-table";
|
|
2
|
+
import { useRender } from "@base-ui/react";
|
|
3
|
+
import { MergeOverride } from "@lucasbernardosn/utils";
|
|
4
|
+
//#region src/components/data-table/header/data-table-header-cell.d.ts
|
|
5
|
+
export type DataTableHeaderCellProps<TFeatures extends TableFeatures, TData extends RowData> = MergeOverride<useRender.ComponentProps<'div'>, {
|
|
6
|
+
/** O header da coluna. */
|
|
7
|
+
header: Header<TFeatures, TData>;
|
|
8
|
+
}>;
|
|
9
|
+
/**
|
|
10
|
+
* A célula de um header (`role="columnheader"`). Num header de grupo, ocupa as colunas que o
|
|
11
|
+
* grupo abrange; num placeholder, fica vazia e marcada com `data-placeholder`.
|
|
12
|
+
*
|
|
13
|
+
* Com `rowSortingFeature`, marca a direção da ordenação em `aria-sort` e `data-sorted`. Com
|
|
14
|
+
* `columnAlignmentFeature`, alinha o conteúdo pelo `align` da coluna e o marca em `data-align`.
|
|
15
|
+
* Com `columnPinningFeature`, num header fixado, gruda na borda do lado dele, marcado com
|
|
16
|
+
* `data-pinned`.
|
|
17
|
+
*
|
|
18
|
+
* Sem `children`, mostra o `DataTable.HeaderContent`. Com eles, monte o conteúdo, o
|
|
19
|
+
* `DataTable.HeaderContent` incluso, e o `DataTable.ResizeHandle`, que se ancora na borda daqui.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```tsx
|
|
23
|
+
* <DataTable.HeaderCell header={header}>
|
|
24
|
+
* <DataTable.HeaderContent header={header} />
|
|
25
|
+
* <DataTable.ResizeHandle header={header} />
|
|
26
|
+
* </DataTable.HeaderCell>
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare const DataTableHeaderCell: {
|
|
30
|
+
<TFeatures extends TableFeatures, TData extends RowData>(props: DataTableHeaderCellProps<TFeatures, TData>): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
31
|
+
displayName: string;
|
|
32
|
+
};
|
|
33
|
+
//#endregion
|
|
34
|
+
//# sourceMappingURL=data-table-header-cell.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-table-header-cell.d.ts","names":[],"sources":["../../../../src/components/data-table/header/data-table-header-cell.tsx"],"mappings":";;;;YAYY,yBACV,kBAAkB,eAClB,cAAc,WACZ,cACF,UAAU;;EAGR,QAAQ,OAAO,WAAW;;;;;;;;;;;;;;;;;;;;;;qBAwBjB;GACX,kBAAkB,eAClB,cAAc,SAAO,OAEd,yBAAyB,WAAW,yBAAM,+CAAA"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { hasColumnFeature, hasHeaderFeature } from "../../../utils/has-feature.js";
|
|
2
|
+
import { getDataTableColumnPinning, getDataTablePinnedStyle } from "../root/get-data-table-column-pinning.js";
|
|
3
|
+
import { DataTableHeaderContent } from "./data-table-header-content.js";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import { mergeProps, useRender } from "@base-ui/react";
|
|
6
|
+
import { useSelector } from "@tanstack/react-store";
|
|
7
|
+
import { mergeTwClassNames } from "@lucasbernardosn/react-ui/utils";
|
|
8
|
+
//#region src/components/data-table/header/data-table-header-cell.tsx
|
|
9
|
+
/**
|
|
10
|
+
* A célula de um header (`role="columnheader"`). Num header de grupo, ocupa as colunas que o
|
|
11
|
+
* grupo abrange; num placeholder, fica vazia e marcada com `data-placeholder`.
|
|
12
|
+
*
|
|
13
|
+
* Com `rowSortingFeature`, marca a direção da ordenação em `aria-sort` e `data-sorted`. Com
|
|
14
|
+
* `columnAlignmentFeature`, alinha o conteúdo pelo `align` da coluna e o marca em `data-align`.
|
|
15
|
+
* Com `columnPinningFeature`, num header fixado, gruda na borda do lado dele, marcado com
|
|
16
|
+
* `data-pinned`.
|
|
17
|
+
*
|
|
18
|
+
* Sem `children`, mostra o `DataTable.HeaderContent`. Com eles, monte o conteúdo, o
|
|
19
|
+
* `DataTable.HeaderContent` incluso, e o `DataTable.ResizeHandle`, que se ancora na borda daqui.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```tsx
|
|
23
|
+
* <DataTable.HeaderCell header={header}>
|
|
24
|
+
* <DataTable.HeaderContent header={header} />
|
|
25
|
+
* <DataTable.ResizeHandle header={header} />
|
|
26
|
+
* </DataTable.HeaderCell>
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
const DataTableHeaderCell = (props) => {
|
|
30
|
+
const { header, render, className, children, ...rest } = props;
|
|
31
|
+
/**
|
|
32
|
+
* Só re-renderiza quando a ordenação desta coluna muda. A ordenação é opcional, então assina o
|
|
33
|
+
* store, e o guard estreita o header; sem `rowSortingFeature`, fica `false`.
|
|
34
|
+
*/
|
|
35
|
+
const sorted = useSelector(header.column.table.store, () => hasHeaderFeature(header, "rowSortingFeature") ? header.column.getIsSorted() : false);
|
|
36
|
+
/**
|
|
37
|
+
* Sem assinatura: o alinhamento vem da definição da coluna, que não muda em runtime. Num grupo,
|
|
38
|
+
* é o da definição do grupo.
|
|
39
|
+
*/
|
|
40
|
+
const align = hasColumnFeature(header.column, "columnAlignmentFeature") ? header.column.getAlign() : void 0;
|
|
41
|
+
/**
|
|
42
|
+
* A fixação vem da coluna folha da ponta: a primeira, no início, e a última, no fim, com o
|
|
43
|
+
* deslocamento dela. Num grupo, o `getIsPinned()` diz fixado se qualquer folha for, e só a folha
|
|
44
|
+
* da ponta sabe o lado e o lugar. Sem assinatura: o pinning muda os grupos, e o
|
|
45
|
+
* `DataTable.Header` re-renderiza, com o header junto.
|
|
46
|
+
*/
|
|
47
|
+
const leafHeaders = header.getLeafHeaders().filter((leafHeader) => leafHeader.subHeaders.length === 0);
|
|
48
|
+
const startPinning = getDataTableColumnPinning((leafHeaders.at(0) ?? header).column);
|
|
49
|
+
const pinning = startPinning.position === "start" ? startPinning : getDataTableColumnPinning((leafHeaders.at(-1) ?? header).column);
|
|
50
|
+
const isGroup = header.colSpan > 1;
|
|
51
|
+
const baseProps = {
|
|
52
|
+
"data-component": "DataTable.HeaderCell",
|
|
53
|
+
"data-placeholder": header.isPlaceholder ? "" : void 0,
|
|
54
|
+
"data-sorted": sorted || void 0,
|
|
55
|
+
"data-align": align,
|
|
56
|
+
"data-pinned": pinning.position || void 0,
|
|
57
|
+
role: "columnheader",
|
|
58
|
+
"aria-sort": sorted === "asc" ? "ascending" : sorted === "desc" ? "descending" : void 0,
|
|
59
|
+
"aria-colspan": isGroup ? header.colSpan : void 0,
|
|
60
|
+
style: {
|
|
61
|
+
gridColumn: isGroup ? `span ${header.colSpan}` : void 0,
|
|
62
|
+
...getDataTablePinnedStyle(pinning)
|
|
63
|
+
},
|
|
64
|
+
className: mergeTwClassNames([
|
|
65
|
+
"relative",
|
|
66
|
+
"flex",
|
|
67
|
+
"items-center",
|
|
68
|
+
"gap-1",
|
|
69
|
+
"data-[align=center]:justify-center",
|
|
70
|
+
"data-[align=end]:justify-end",
|
|
71
|
+
"min-w-0",
|
|
72
|
+
"h-(--data-table-header-height)",
|
|
73
|
+
"px-(--data-table-cell-padding)",
|
|
74
|
+
"data-pinned:sticky",
|
|
75
|
+
"data-pinned:z-20",
|
|
76
|
+
"data-[pinned=start]:has-[+:not([data-pinned=start])]:shadow-[6px_0_8px_-6px_rgb(0_0_0/0.12)]",
|
|
77
|
+
"dark:data-[pinned=start]:has-[+:not([data-pinned=start])]:shadow-[6px_0_8px_-6px_rgb(0_0_0/0.8)]",
|
|
78
|
+
"data-[pinned=end]:not-[[data-pinned=end]+*]:shadow-[-6px_0_8px_-6px_rgb(0_0_0/0.12)]",
|
|
79
|
+
"dark:data-[pinned=end]:not-[[data-pinned=end]+*]:shadow-[-6px_0_8px_-6px_rgb(0_0_0/0.8)]",
|
|
80
|
+
"bg-gray-2",
|
|
81
|
+
"text-xs",
|
|
82
|
+
"font-medium",
|
|
83
|
+
"text-gray-11"
|
|
84
|
+
], className),
|
|
85
|
+
children: children === void 0 ? /* @__PURE__ */ jsx(DataTableHeaderContent, { header }) : children
|
|
86
|
+
};
|
|
87
|
+
return useRender({
|
|
88
|
+
render,
|
|
89
|
+
defaultTagName: "div",
|
|
90
|
+
props: mergeProps(baseProps, rest)
|
|
91
|
+
});
|
|
92
|
+
};
|
|
93
|
+
DataTableHeaderCell.displayName = "DataTable.HeaderCell";
|
|
94
|
+
//#endregion
|
|
95
|
+
export { DataTableHeaderCell };
|
|
96
|
+
|
|
97
|
+
//# sourceMappingURL=data-table-header-cell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-table-header-cell.js","names":[],"sources":["../../../../src/components/data-table/header/data-table-header-cell.tsx"],"sourcesContent":["import { mergeProps, useRender } from '@base-ui/react';\nimport { mergeTwClassNames } from '@lucasbernardosn/react-ui/utils';\nimport type { MergeOverride } from '@lucasbernardosn/utils';\nimport { useSelector } from '@tanstack/react-store';\nimport type { Header, RowData, TableFeatures } from '@tanstack/react-table';\nimport { hasColumnFeature, hasHeaderFeature } from '../../../utils';\nimport {\n getDataTableColumnPinning,\n getDataTablePinnedStyle,\n} from '../root/get-data-table-column-pinning';\nimport { DataTableHeaderContent } from './data-table-header-content';\n\nexport type DataTableHeaderCellProps<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> = MergeOverride<\n useRender.ComponentProps<'div'>,\n {\n /** O header da coluna. */\n header: Header<TFeatures, TData>;\n }\n>;\n\n/**\n * A célula de um header (`role=\"columnheader\"`). Num header de grupo, ocupa as colunas que o\n * grupo abrange; num placeholder, fica vazia e marcada com `data-placeholder`.\n *\n * Com `rowSortingFeature`, marca a direção da ordenação em `aria-sort` e `data-sorted`. Com\n * `columnAlignmentFeature`, alinha o conteúdo pelo `align` da coluna e o marca em `data-align`.\n * Com `columnPinningFeature`, num header fixado, gruda na borda do lado dele, marcado com\n * `data-pinned`.\n *\n * Sem `children`, mostra o `DataTable.HeaderContent`. Com eles, monte o conteúdo, o\n * `DataTable.HeaderContent` incluso, e o `DataTable.ResizeHandle`, que se ancora na borda daqui.\n *\n * @example\n * ```tsx\n * <DataTable.HeaderCell header={header}>\n * <DataTable.HeaderContent header={header} />\n * <DataTable.ResizeHandle header={header} />\n * </DataTable.HeaderCell>\n * ```\n */\nexport const DataTableHeaderCell = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n props: DataTableHeaderCellProps<TFeatures, TData>,\n) => {\n const { header, render, className, children, ...rest } = props;\n\n /**\n * Só re-renderiza quando a ordenação desta coluna muda. A ordenação é opcional, então assina o\n * store, e o guard estreita o header; sem `rowSortingFeature`, fica `false`.\n */\n const sorted = useSelector(header.column.table.store, () =>\n hasHeaderFeature(header, 'rowSortingFeature')\n ? header.column.getIsSorted()\n : false,\n );\n\n /**\n * Sem assinatura: o alinhamento vem da definição da coluna, que não muda em runtime. Num grupo,\n * é o da definição do grupo.\n */\n const align = hasColumnFeature(header.column, 'columnAlignmentFeature')\n ? header.column.getAlign()\n : undefined;\n\n /**\n * A fixação vem da coluna folha da ponta: a primeira, no início, e a última, no fim, com o\n * deslocamento dela. Num grupo, o `getIsPinned()` diz fixado se qualquer folha for, e só a folha\n * da ponta sabe o lado e o lugar. Sem assinatura: o pinning muda os grupos, e o\n * `DataTable.Header` re-renderiza, com o header junto.\n */\n const leafHeaders = header\n .getLeafHeaders()\n .filter((leafHeader) => leafHeader.subHeaders.length === 0);\n const startPinning = getDataTableColumnPinning(\n (leafHeaders.at(0) ?? header).column,\n );\n const pinning =\n startPinning.position === 'start'\n ? startPinning\n : getDataTableColumnPinning((leafHeaders.at(-1) ?? header).column);\n\n const isGroup = header.colSpan > 1;\n\n const baseProps = {\n 'data-component': 'DataTable.HeaderCell',\n 'data-placeholder': header.isPlaceholder ? '' : undefined,\n 'data-sorted': sorted || undefined,\n 'data-align': align,\n 'data-pinned': pinning.position || undefined,\n role: 'columnheader',\n 'aria-sort':\n sorted === 'asc'\n ? 'ascending'\n : sorted === 'desc'\n ? 'descending'\n : undefined,\n 'aria-colspan': isGroup ? header.colSpan : undefined,\n style: {\n // Os tracks do grid são os das colunas folha: o grupo abrange os das colunas dele.\n gridColumn: isGroup ? `span ${header.colSpan}` : undefined,\n ...getDataTablePinnedStyle(pinning),\n },\n className: mergeTwClassNames(\n [\n // O `DataTable.ResizeHandle` se posiciona por aqui.\n 'relative',\n\n 'flex',\n 'items-center',\n 'gap-1',\n // Vale para o conteúdo solto. O `DataTable.HeaderButton` ocupa a célula e segue o\n // `data-align` daqui por conta própria.\n 'data-[align=center]:justify-center',\n 'data-[align=end]:justify-end',\n\n // Item de grid tem `min-width: auto`: sem isto, um conteúdo longo alarga o track, e a\n // coluna deixa de bater com o template. Sem `overflow-hidden`: quem trunca é o\n // `DataTable.HeaderContent`, e o recorte aqui cortaria a área de agarre do handle.\n 'min-w-0',\n\n // Do `DataTable.Root`, pela densidade.\n 'h-(--data-table-header-height)',\n\n 'px-(--data-table-cell-padding)',\n\n // Fixado: gruda acima dos handles de resize das colunas do centro (`z-10`), que passam por\n // baixo dele.\n 'data-pinned:sticky',\n 'data-pinned:z-20',\n // A sombra na borda da fixada, como na `DataTable.Cell`.\n 'data-[pinned=start]:has-[+:not([data-pinned=start])]:shadow-[6px_0_8px_-6px_rgb(0_0_0/0.12)]',\n 'dark:data-[pinned=start]:has-[+:not([data-pinned=start])]:shadow-[6px_0_8px_-6px_rgb(0_0_0/0.8)]',\n 'data-[pinned=end]:not-[[data-pinned=end]+*]:shadow-[-6px_0_8px_-6px_rgb(0_0_0/0.12)]',\n 'dark:data-[pinned=end]:not-[[data-pinned=end]+*]:shadow-[-6px_0_8px_-6px_rgb(0_0_0/0.8)]',\n\n // Opaco: o cabeçalho gruda, e as linhas passam por baixo; fixado, o centro também.\n 'bg-gray-2',\n\n 'text-xs',\n 'font-medium',\n 'text-gray-11',\n ],\n className,\n ),\n children:\n children === undefined ? (\n <DataTableHeaderContent header={header} />\n ) : (\n children\n ),\n };\n\n return useRender({\n render,\n defaultTagName: 'div',\n props: mergeProps(baseProps, rest),\n });\n};\n\nDataTableHeaderCell.displayName = 'DataTable.HeaderCell';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,MAAa,uBAIX,UACG;CACH,MAAM,EAAE,QAAQ,QAAQ,WAAW,UAAU,GAAG,SAAS;;;;;CAMzD,MAAM,SAAS,YAAY,OAAO,OAAO,MAAM,aAC7C,iBAAiB,QAAQ,mBAAmB,IACxC,OAAO,OAAO,YAAY,IAC1B,KACN;;;;;CAMA,MAAM,QAAQ,iBAAiB,OAAO,QAAQ,wBAAwB,IAClE,OAAO,OAAO,SAAS,IACvB,KAAA;;;;;;;CAQJ,MAAM,cAAc,OACjB,eAAe,CAAC,CAChB,QAAQ,eAAe,WAAW,WAAW,WAAW,CAAC;CAC5D,MAAM,eAAe,2BAClB,YAAY,GAAG,CAAC,KAAK,OAAA,CAAQ,MAChC;CACA,MAAM,UACJ,aAAa,aAAa,UACtB,eACA,2BAA2B,YAAY,GAAG,EAAE,KAAK,OAAA,CAAQ,MAAM;CAErE,MAAM,UAAU,OAAO,UAAU;CAEjC,MAAM,YAAY;EAChB,kBAAkB;EAClB,oBAAoB,OAAO,gBAAgB,KAAK,KAAA;EAChD,eAAe,UAAU,KAAA;EACzB,cAAc;EACd,eAAe,QAAQ,YAAY,KAAA;EACnC,MAAM;EACN,aACE,WAAW,QACP,cACA,WAAW,SACT,eACA,KAAA;EACR,gBAAgB,UAAU,OAAO,UAAU,KAAA;EAC3C,OAAO;GAEL,YAAY,UAAU,QAAQ,OAAO,YAAY,KAAA;GACjD,GAAG,wBAAwB,OAAO;EACpC;EACA,WAAW,kBACT;GAEE;GAEA;GACA;GACA;GAGA;GACA;GAKA;GAGA;GAEA;GAIA;GACA;GAEA;GACA;GACA;GACA;GAGA;GAEA;GACA;GACA;EACF,GACA,SACF;EACA,UACE,aAAa,KAAA,IACX,oBAAC,wBAAD,EAAgC,OAAS,CAAA,IAEzC;CAEN;CAEA,OAAO,UAAU;EACf;EACA,gBAAgB;EAChB,OAAO,WAAW,WAAW,IAAI;CACnC,CAAC;AACH;AAEA,oBAAoB,cAAc"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Header, RowData, TableFeatures } from "@tanstack/react-table";
|
|
2
|
+
import { useRender } from "@base-ui/react";
|
|
3
|
+
import { MergeOverride } from "@lucasbernardosn/utils";
|
|
4
|
+
//#region src/components/data-table/header/data-table-header-content.d.ts
|
|
5
|
+
export type DataTableHeaderContentProps<TFeatures extends TableFeatures, TData extends RowData> = MergeOverride<useRender.ComponentProps<'span'>, {
|
|
6
|
+
/** O header da coluna. */
|
|
7
|
+
header: Header<TFeatures, TData>;
|
|
8
|
+
}>;
|
|
9
|
+
/**
|
|
10
|
+
* O conteúdo do header: o `header` da definição da coluna, truncado com reticências. Num header
|
|
11
|
+
* placeholder, fica vazio. Com `children`, eles substituem o da definição.
|
|
12
|
+
*
|
|
13
|
+
* Existe à parte porque o `DataTable.HeaderCell` não pode recortar: a área de agarre do
|
|
14
|
+
* `DataTable.ResizeHandle` passa da borda dele, e conteúdo recortado não recebe clique.
|
|
15
|
+
*/
|
|
16
|
+
export declare const DataTableHeaderContent: {
|
|
17
|
+
<TFeatures extends TableFeatures, TData extends RowData>(props: DataTableHeaderContentProps<TFeatures, TData>): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
18
|
+
displayName: string;
|
|
19
|
+
};
|
|
20
|
+
//#endregion
|
|
21
|
+
//# sourceMappingURL=data-table-header-content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-table-header-content.d.ts","names":[],"sources":["../../../../src/components/data-table/header/data-table-header-content.tsx"],"mappings":";;;;YAUY,4BACV,kBAAkB,eAClB,cAAc,WACZ,cACF,UAAU;;EAGR,QAAQ,OAAO,WAAW;;;;;;;;;qBAWjB;GACX,kBAAkB,eAClB,cAAc,SAAO,OAEd,4BAA4B,WAAW,yBAAM,+CAAA"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { FlexRender } from "@tanstack/react-table";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { mergeProps, useRender } from "@base-ui/react";
|
|
4
|
+
import { mergeTwClassNames } from "@lucasbernardosn/react-ui/utils";
|
|
5
|
+
//#region src/components/data-table/header/data-table-header-content.tsx
|
|
6
|
+
/**
|
|
7
|
+
* O conteúdo do header: o `header` da definição da coluna, truncado com reticências. Num header
|
|
8
|
+
* placeholder, fica vazio. Com `children`, eles substituem o da definição.
|
|
9
|
+
*
|
|
10
|
+
* Existe à parte porque o `DataTable.HeaderCell` não pode recortar: a área de agarre do
|
|
11
|
+
* `DataTable.ResizeHandle` passa da borda dele, e conteúdo recortado não recebe clique.
|
|
12
|
+
*/
|
|
13
|
+
const DataTableHeaderContent = (props) => {
|
|
14
|
+
const { header, render, className, children, ...rest } = props;
|
|
15
|
+
const content = header.isPlaceholder ? null : /* @__PURE__ */ jsx(FlexRender, { header });
|
|
16
|
+
const baseProps = {
|
|
17
|
+
"data-component": "DataTable.HeaderContent",
|
|
18
|
+
className: mergeTwClassNames([
|
|
19
|
+
"block",
|
|
20
|
+
"min-w-0",
|
|
21
|
+
"truncate",
|
|
22
|
+
"-m-1",
|
|
23
|
+
"p-1"
|
|
24
|
+
], className),
|
|
25
|
+
children: children === void 0 ? content : children
|
|
26
|
+
};
|
|
27
|
+
return useRender({
|
|
28
|
+
render,
|
|
29
|
+
defaultTagName: "span",
|
|
30
|
+
props: mergeProps(baseProps, rest)
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
DataTableHeaderContent.displayName = "DataTable.HeaderContent";
|
|
34
|
+
//#endregion
|
|
35
|
+
export { DataTableHeaderContent };
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=data-table-header-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-table-header-content.js","names":[],"sources":["../../../../src/components/data-table/header/data-table-header-content.tsx"],"sourcesContent":["import { mergeProps, useRender } from '@base-ui/react';\nimport { mergeTwClassNames } from '@lucasbernardosn/react-ui/utils';\nimport type { MergeOverride } from '@lucasbernardosn/utils';\nimport {\n FlexRender,\n type Header,\n type RowData,\n type TableFeatures,\n} from '@tanstack/react-table';\n\nexport type DataTableHeaderContentProps<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> = MergeOverride<\n useRender.ComponentProps<'span'>,\n {\n /** O header da coluna. */\n header: Header<TFeatures, TData>;\n }\n>;\n\n/**\n * O conteúdo do header: o `header` da definição da coluna, truncado com reticências. Num header\n * placeholder, fica vazio. Com `children`, eles substituem o da definição.\n *\n * Existe à parte porque o `DataTable.HeaderCell` não pode recortar: a área de agarre do\n * `DataTable.ResizeHandle` passa da borda dele, e conteúdo recortado não recebe clique.\n */\nexport const DataTableHeaderContent = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n props: DataTableHeaderContentProps<TFeatures, TData>,\n) => {\n const { header, render, className, children, ...rest } = props;\n\n const content = header.isPlaceholder ? null : <FlexRender header={header} />;\n\n const baseProps = {\n 'data-component': 'DataTable.HeaderContent',\n className: mergeTwClassNames(\n [\n // `span` em bloco: trunca como um bloco e ainda cabe num botão, que só aceita conteúdo\n // inline.\n 'block',\n 'min-w-0',\n 'truncate',\n\n // Afasta a borda do recorte 4px sem mover o conteúdo: cabe o anel de foco de um\n // controle aqui dentro, como o \"selecionar tudo\".\n '-m-1',\n 'p-1',\n ],\n className,\n ),\n children: children === undefined ? content : children,\n };\n\n return useRender({\n render,\n defaultTagName: 'span',\n props: mergeProps(baseProps, rest),\n });\n};\n\nDataTableHeaderContent.displayName = 'DataTable.HeaderContent';\n"],"mappings":";;;;;;;;;;;;AA4BA,MAAa,0BAIX,UACG;CACH,MAAM,EAAE,QAAQ,QAAQ,WAAW,UAAU,GAAG,SAAS;CAEzD,MAAM,UAAU,OAAO,gBAAgB,OAAO,oBAAC,YAAD,EAAoB,OAAS,CAAA;CAE3E,MAAM,YAAY;EAChB,kBAAkB;EAClB,WAAW,kBACT;GAGE;GACA;GACA;GAIA;GACA;EACF,GACA,SACF;EACA,UAAU,aAAa,KAAA,IAAY,UAAU;CAC/C;CAEA,OAAO,UAAU;EACf;EACA,gBAAgB;EAChB,OAAO,WAAW,WAAW,IAAI;CACnC,CAAC;AACH;AAEA,uBAAuB,cAAc"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useRender } from "@base-ui/react";
|
|
2
|
+
//#region src/components/data-table/header/data-table-header-row.d.ts
|
|
3
|
+
export type DataTableHeaderRowProps = useRender.ComponentProps<'div'>;
|
|
4
|
+
/**
|
|
5
|
+
* Uma linha de headers (`role="row"`), por grupo de headers. É um grid com as colunas do
|
|
6
|
+
* `--data-table-template`, que o `DataTable.Root` escreve.
|
|
7
|
+
*
|
|
8
|
+
* O `DataTable.Header` com render-prop já monta uma por grupo; use direto só no laço feito à mão.
|
|
9
|
+
*/
|
|
10
|
+
export declare const DataTableHeaderRow: {
|
|
11
|
+
(props: DataTableHeaderRowProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
12
|
+
displayName: string;
|
|
13
|
+
};
|
|
14
|
+
//#endregion
|
|
15
|
+
//# sourceMappingURL=data-table-header-row.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-table-header-row.d.ts","names":[],"sources":["../../../../src/components/data-table/header/data-table-header-row.tsx"],"mappings":";;YAIY,0BAA0B,UAAU;;;;;;;qBAQnC;GAA6B,OAAA,0CAAuB,+CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { dataTableGridClassNames } from "../root/data-table-grid-class-names.js";
|
|
2
|
+
import { mergeProps, useRender } from "@base-ui/react";
|
|
3
|
+
import { mergeTwClassNames } from "@lucasbernardosn/react-ui/utils";
|
|
4
|
+
//#region src/components/data-table/header/data-table-header-row.tsx
|
|
5
|
+
/**
|
|
6
|
+
* Uma linha de headers (`role="row"`), por grupo de headers. É um grid com as colunas do
|
|
7
|
+
* `--data-table-template`, que o `DataTable.Root` escreve.
|
|
8
|
+
*
|
|
9
|
+
* O `DataTable.Header` com render-prop já monta uma por grupo; use direto só no laço feito à mão.
|
|
10
|
+
*/
|
|
11
|
+
const DataTableHeaderRow = (props) => {
|
|
12
|
+
const { render, className, ...rest } = props;
|
|
13
|
+
const baseProps = {
|
|
14
|
+
"data-component": "DataTable.HeaderRow",
|
|
15
|
+
role: "row",
|
|
16
|
+
className: mergeTwClassNames([dataTableGridClassNames], className)
|
|
17
|
+
};
|
|
18
|
+
return useRender({
|
|
19
|
+
render,
|
|
20
|
+
defaultTagName: "div",
|
|
21
|
+
props: mergeProps(baseProps, rest)
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
DataTableHeaderRow.displayName = "DataTable.HeaderRow";
|
|
25
|
+
//#endregion
|
|
26
|
+
export { DataTableHeaderRow };
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=data-table-header-row.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-table-header-row.js","names":[],"sources":["../../../../src/components/data-table/header/data-table-header-row.tsx"],"sourcesContent":["import { mergeProps, useRender } from '@base-ui/react';\nimport { mergeTwClassNames } from '@lucasbernardosn/react-ui/utils';\nimport { dataTableGridClassNames } from '../root/data-table-grid-class-names';\n\nexport type DataTableHeaderRowProps = useRender.ComponentProps<'div'>;\n\n/**\n * Uma linha de headers (`role=\"row\"`), por grupo de headers. É um grid com as colunas do\n * `--data-table-template`, que o `DataTable.Root` escreve.\n *\n * O `DataTable.Header` com render-prop já monta uma por grupo; use direto só no laço feito à mão.\n */\nexport const DataTableHeaderRow = (props: DataTableHeaderRowProps) => {\n const { render, className, ...rest } = props;\n\n const baseProps = {\n 'data-component': 'DataTable.HeaderRow',\n role: 'row',\n className: mergeTwClassNames(\n [\n // A linha horizontal fica também na última: entre os níveis de um cabeçalho agrupado e,\n // na última, entre o cabeçalho e o corpo.\n dataTableGridClassNames,\n ],\n className,\n ),\n };\n\n return useRender({\n render,\n defaultTagName: 'div',\n props: mergeProps(baseProps, rest),\n });\n};\n\nDataTableHeaderRow.displayName = 'DataTable.HeaderRow';\n"],"mappings":";;;;;;;;;;AAYA,MAAa,sBAAsB,UAAmC;CACpE,MAAM,EAAE,QAAQ,WAAW,GAAG,SAAS;CAEvC,MAAM,YAAY;EAChB,kBAAkB;EAClB,MAAM;EACN,WAAW,kBACT,CAGE,uBACF,GACA,SACF;CACF;CAEA,OAAO,UAAU;EACf;EACA,gBAAgB;EAChB,OAAO,WAAW,WAAW,IAAI;CACnC,CAAC;AACH;AAEA,mBAAmB,cAAc"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Header, RowData, Table, TableFeatures } from "@tanstack/react-table";
|
|
2
|
+
import { useRender } from "@base-ui/react";
|
|
3
|
+
import React from "react";
|
|
4
|
+
import { MergeOverride } from "@lucasbernardosn/utils";
|
|
5
|
+
//#region src/components/data-table/header/data-table-header.d.ts
|
|
6
|
+
export type DataTableHeaderProps<TFeatures extends TableFeatures, TData extends RowData> = MergeOverride<useRender.ComponentProps<'div'>, {
|
|
7
|
+
/** A tabela do `useTable`. */
|
|
8
|
+
table: Table<TFeatures, TData>;
|
|
9
|
+
/**
|
|
10
|
+
* Uma função que recebe cada header e devolve a célula dele: o `Header` monta uma
|
|
11
|
+
* `DataTable.HeaderRow` por grupo de headers e chama a função para cada header. Com nós
|
|
12
|
+
* comuns, quem usa faz o laço.
|
|
13
|
+
* @default (header) => <DataTable.HeaderCell header={header} />
|
|
14
|
+
*/
|
|
15
|
+
children?: React.ReactNode | ((header: Header<TFeatures, TData>) => React.ReactNode);
|
|
16
|
+
}>;
|
|
17
|
+
/**
|
|
18
|
+
* O cabeçalho da tabela (`role="rowgroup"`), grudado no topo da área de rolagem.
|
|
19
|
+
*
|
|
20
|
+
* Com render-prop ou sem `children`, faz o laço sozinho: assina os grupos de headers e só
|
|
21
|
+
* re-renderiza quando a estrutura das colunas muda (`columns`, ordem, visibilidade, pinning),
|
|
22
|
+
* sem o dono da tabela precisar re-renderizar. Com nós comuns, o laço é de quem usa, e o dono
|
|
23
|
+
* precisa re-renderizar quando a estrutura muda.
|
|
24
|
+
*
|
|
25
|
+
* Com `columnPinningFeature`, monta as linhas com os grupos de cada região (as fixadas no início,
|
|
26
|
+
* o centro e as fixadas no fim): um grupo cujas colunas atravessam a fronteira da fixação vira um
|
|
27
|
+
* header em cada região, e a parte fixada gruda.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```tsx
|
|
31
|
+
* <DataTable.Header table={table}>
|
|
32
|
+
* {(header) => (
|
|
33
|
+
* <DataTable.HeaderCell header={header}>
|
|
34
|
+
* <DataTable.HeaderContent header={header} />
|
|
35
|
+
* <DataTable.ResizeHandle header={header} />
|
|
36
|
+
* </DataTable.HeaderCell>
|
|
37
|
+
* )}
|
|
38
|
+
* </DataTable.Header>
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare const DataTableHeader: {
|
|
42
|
+
<TFeatures extends TableFeatures, TData extends RowData>(props: DataTableHeaderProps<TFeatures, TData>): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
43
|
+
displayName: string;
|
|
44
|
+
};
|
|
45
|
+
//#endregion
|
|
46
|
+
//# sourceMappingURL=data-table-header.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-table-header.d.ts","names":[],"sources":["../../../../src/components/data-table/header/data-table-header.tsx"],"mappings":";;;;;YAgBY,qBACV,kBAAkB,eAClB,cAAc,WACZ,cACF,UAAU;;EAGR,OAAO,MAAM,WAAW;;;;;;;EAOxB,WACI,MAAM,cACJ,QAAQ,OAAO,WAAW,WAAW,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;qBA4BxC;GACX,kBAAkB,eAClB,cAAc,SAAO,OAEd,qBAAqB,WAAW,SAAM,MAAA,+BAAA,MAAA"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { hasTableFeature } from "../../../utils/has-feature.js";
|
|
2
|
+
import { DataTableHeaderCell } from "./data-table-header-cell.js";
|
|
3
|
+
import { DataTableHeaderRow } from "./data-table-header-row.js";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import { mergeProps, useRender } from "@base-ui/react";
|
|
6
|
+
import { shallow, useSelector } from "@tanstack/react-store";
|
|
7
|
+
import { mergeTwClassNames } from "@lucasbernardosn/react-ui/utils";
|
|
8
|
+
import { Fragment as Fragment$1 } from "react";
|
|
9
|
+
//#region src/components/data-table/header/data-table-header.tsx
|
|
10
|
+
/**
|
|
11
|
+
* O cabeçalho da tabela (`role="rowgroup"`), grudado no topo da área de rolagem.
|
|
12
|
+
*
|
|
13
|
+
* Com render-prop ou sem `children`, faz o laço sozinho: assina os grupos de headers e só
|
|
14
|
+
* re-renderiza quando a estrutura das colunas muda (`columns`, ordem, visibilidade, pinning),
|
|
15
|
+
* sem o dono da tabela precisar re-renderizar. Com nós comuns, o laço é de quem usa, e o dono
|
|
16
|
+
* precisa re-renderizar quando a estrutura muda.
|
|
17
|
+
*
|
|
18
|
+
* Com `columnPinningFeature`, monta as linhas com os grupos de cada região (as fixadas no início,
|
|
19
|
+
* o centro e as fixadas no fim): um grupo cujas colunas atravessam a fronteira da fixação vira um
|
|
20
|
+
* header em cada região, e a parte fixada gruda.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```tsx
|
|
24
|
+
* <DataTable.Header table={table}>
|
|
25
|
+
* {(header) => (
|
|
26
|
+
* <DataTable.HeaderCell header={header}>
|
|
27
|
+
* <DataTable.HeaderContent header={header} />
|
|
28
|
+
* <DataTable.ResizeHandle header={header} />
|
|
29
|
+
* </DataTable.HeaderCell>
|
|
30
|
+
* )}
|
|
31
|
+
* </DataTable.Header>
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
const DataTableHeader = (props) => {
|
|
35
|
+
const { table, render, className, children, ...rest } = props;
|
|
36
|
+
/**
|
|
37
|
+
* Os grupos que o TanStack memoiza, numa tupla: o `shallow` compara item a item, e só
|
|
38
|
+
* re-renderiza quando a estrutura das colunas muda. Tamanho, ordenação e seleção mudam o store,
|
|
39
|
+
* mas não os grupos. Com pinning, os grupos de cada região: o de uma região só tem as colunas
|
|
40
|
+
* dela.
|
|
41
|
+
*/
|
|
42
|
+
const regionHeaderGroups = useSelector(table.store, () => hasTableFeature(table, "columnPinningFeature") ? [
|
|
43
|
+
table.getStartHeaderGroups(),
|
|
44
|
+
table.getCenterHeaderGroups(),
|
|
45
|
+
table.getEndHeaderGroups()
|
|
46
|
+
] : [table.getHeaderGroups()], { compare: shallow });
|
|
47
|
+
/**
|
|
48
|
+
* As linhas do cabeçalho, uma por profundidade, com os headers das regiões na ordem do
|
|
49
|
+
* template. Toda região tem o mesmo número de grupos, o da coluna mais funda.
|
|
50
|
+
*/
|
|
51
|
+
const headerRows = (regionHeaderGroups[0] ?? []).map((headerGroup) => ({
|
|
52
|
+
depth: headerGroup.depth,
|
|
53
|
+
headers: regionHeaderGroups.flatMap((headerGroups) => headerGroups[headerGroup.depth]?.headers ?? [])
|
|
54
|
+
}));
|
|
55
|
+
/**
|
|
56
|
+
* Com render-prop ou sem `children`, o laço é daqui, com uma `HeaderRow` por grupo; com nós
|
|
57
|
+
* comuns, de quem usa.
|
|
58
|
+
*/
|
|
59
|
+
const content = typeof children === "function" || children === void 0 ? headerRows.map((headerRow) => /* @__PURE__ */ jsx(DataTableHeaderRow, { children: headerRow.headers.map((header) => /* @__PURE__ */ jsx(Fragment$1, { children: children === void 0 ? /* @__PURE__ */ jsx(DataTableHeaderCell, { header }) : children(header) }, header.id)) }, headerRow.depth)) : children;
|
|
60
|
+
const baseProps = {
|
|
61
|
+
"data-component": "DataTable.Header",
|
|
62
|
+
role: "rowgroup",
|
|
63
|
+
className: mergeTwClassNames([
|
|
64
|
+
"sticky",
|
|
65
|
+
"top-0",
|
|
66
|
+
"z-10"
|
|
67
|
+
], className),
|
|
68
|
+
children: content
|
|
69
|
+
};
|
|
70
|
+
return useRender({
|
|
71
|
+
render,
|
|
72
|
+
defaultTagName: "div",
|
|
73
|
+
props: mergeProps(baseProps, rest)
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
DataTableHeader.displayName = "DataTable.Header";
|
|
77
|
+
//#endregion
|
|
78
|
+
export { DataTableHeader };
|
|
79
|
+
|
|
80
|
+
//# sourceMappingURL=data-table-header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-table-header.js","names":["Fragment"],"sources":["../../../../src/components/data-table/header/data-table-header.tsx"],"sourcesContent":["import { mergeProps, useRender } from '@base-ui/react';\nimport { mergeTwClassNames } from '@lucasbernardosn/react-ui/utils';\nimport type { MergeOverride } from '@lucasbernardosn/utils';\nimport { shallow, useSelector } from '@tanstack/react-store';\nimport type {\n Header,\n RowData,\n Table,\n TableFeatures,\n} from '@tanstack/react-table';\nimport type React from 'react';\nimport { Fragment } from 'react';\nimport { hasTableFeature } from '../../../utils';\nimport { DataTableHeaderCell } from './data-table-header-cell';\nimport { DataTableHeaderRow } from './data-table-header-row';\n\nexport type DataTableHeaderProps<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> = MergeOverride<\n useRender.ComponentProps<'div'>,\n {\n /** A tabela do `useTable`. */\n table: Table<TFeatures, TData>;\n /**\n * Uma função que recebe cada header e devolve a célula dele: o `Header` monta uma\n * `DataTable.HeaderRow` por grupo de headers e chama a função para cada header. Com nós\n * comuns, quem usa faz o laço.\n * @default (header) => <DataTable.HeaderCell header={header} />\n */\n children?:\n | React.ReactNode\n | ((header: Header<TFeatures, TData>) => React.ReactNode);\n }\n>;\n\n/**\n * O cabeçalho da tabela (`role=\"rowgroup\"`), grudado no topo da área de rolagem.\n *\n * Com render-prop ou sem `children`, faz o laço sozinho: assina os grupos de headers e só\n * re-renderiza quando a estrutura das colunas muda (`columns`, ordem, visibilidade, pinning),\n * sem o dono da tabela precisar re-renderizar. Com nós comuns, o laço é de quem usa, e o dono\n * precisa re-renderizar quando a estrutura muda.\n *\n * Com `columnPinningFeature`, monta as linhas com os grupos de cada região (as fixadas no início,\n * o centro e as fixadas no fim): um grupo cujas colunas atravessam a fronteira da fixação vira um\n * header em cada região, e a parte fixada gruda.\n *\n * @example\n * ```tsx\n * <DataTable.Header table={table}>\n * {(header) => (\n * <DataTable.HeaderCell header={header}>\n * <DataTable.HeaderContent header={header} />\n * <DataTable.ResizeHandle header={header} />\n * </DataTable.HeaderCell>\n * )}\n * </DataTable.Header>\n * ```\n */\nexport const DataTableHeader = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n props: DataTableHeaderProps<TFeatures, TData>,\n) => {\n const { table, render, className, children, ...rest } = props;\n\n /**\n * Os grupos que o TanStack memoiza, numa tupla: o `shallow` compara item a item, e só\n * re-renderiza quando a estrutura das colunas muda. Tamanho, ordenação e seleção mudam o store,\n * mas não os grupos. Com pinning, os grupos de cada região: o de uma região só tem as colunas\n * dela.\n */\n const regionHeaderGroups = useSelector(\n table.store,\n () =>\n hasTableFeature(table, 'columnPinningFeature')\n ? [\n table.getStartHeaderGroups(),\n table.getCenterHeaderGroups(),\n table.getEndHeaderGroups(),\n ]\n : [table.getHeaderGroups()],\n { compare: shallow },\n );\n\n /**\n * As linhas do cabeçalho, uma por profundidade, com os headers das regiões na ordem do\n * template. Toda região tem o mesmo número de grupos, o da coluna mais funda.\n */\n const headerRows = (regionHeaderGroups[0] ?? []).map((headerGroup) => ({\n depth: headerGroup.depth,\n headers: regionHeaderGroups.flatMap(\n (headerGroups) => headerGroups[headerGroup.depth]?.headers ?? [],\n ),\n }));\n\n /**\n * Com render-prop ou sem `children`, o laço é daqui, com uma `HeaderRow` por grupo; com nós\n * comuns, de quem usa.\n */\n const content =\n typeof children === 'function' || children === undefined\n ? headerRows.map((headerRow) => (\n <DataTableHeaderRow key={headerRow.depth}>\n {headerRow.headers.map((header) => (\n <Fragment key={header.id}>\n {children === undefined ? (\n <DataTableHeaderCell header={header} />\n ) : (\n children(header)\n )}\n </Fragment>\n ))}\n </DataTableHeaderRow>\n ))\n : children;\n\n const baseProps = {\n 'data-component': 'DataTable.Header',\n role: 'rowgroup',\n className: mergeTwClassNames(\n [\n // Gruda no ancestral que rola, como o viewport do `DataTable.ScrollArea`.\n 'sticky',\n 'top-0',\n 'z-10',\n ],\n className,\n ),\n children: content,\n };\n\n return useRender({\n render,\n defaultTagName: 'div',\n props: mergeProps(baseProps, rest),\n });\n};\n\nDataTableHeader.displayName = 'DataTable.Header';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DA,MAAa,mBAIX,UACG;CACH,MAAM,EAAE,OAAO,QAAQ,WAAW,UAAU,GAAG,SAAS;;;;;;;CAQxD,MAAM,qBAAqB,YACzB,MAAM,aAEJ,gBAAgB,OAAO,sBAAsB,IACzC;EACE,MAAM,qBAAqB;EAC3B,MAAM,sBAAsB;EAC5B,MAAM,mBAAmB;CAC3B,IACA,CAAC,MAAM,gBAAgB,CAAC,GAC9B,EAAE,SAAS,QAAQ,CACrB;;;;;CAMA,MAAM,cAAc,mBAAmB,MAAM,CAAC,EAAA,CAAG,KAAK,iBAAiB;EACrE,OAAO,YAAY;EACnB,SAAS,mBAAmB,SACzB,iBAAiB,aAAa,YAAY,MAAM,EAAE,WAAW,CAAC,CACjE;CACF,EAAE;;;;;CAMF,MAAM,UACJ,OAAO,aAAa,cAAc,aAAa,KAAA,IAC3C,WAAW,KAAK,cACd,oBAAC,oBAAD,EAAA,UACG,UAAU,QAAQ,KAAK,WACtB,oBAACA,YAAD,EAAA,UACG,aAAa,KAAA,IACZ,oBAAC,qBAAD,EAA6B,OAAS,CAAA,IAEtC,SAAS,MAAM,EAET,GANK,OAAO,EAMZ,CACX,EACiB,GAVK,UAAU,KAUf,CACrB,IACD;CAEN,MAAM,YAAY;EAChB,kBAAkB;EAClB,MAAM;EACN,WAAW,kBACT;GAEE;GACA;GACA;EACF,GACA,SACF;EACA,UAAU;CACZ;CAEA,OAAO,UAAU;EACf;EACA,gBAAgB;EAChB,OAAO,WAAW,WAAW,IAAI;CACnC,CAAC;AACH;AAEA,gBAAgB,cAAc"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { DataTableBody, DataTableBodyProps } from "./body/data-table-body.js";
|
|
2
|
+
import { DataTableCell, DataTableCellProps } from "./body/data-table-cell.js";
|
|
3
|
+
import { DataTableEmpty, DataTableEmptyProps } from "./body/data-table-empty.js";
|
|
4
|
+
import { DataTableRow, DataTableRowProps } from "./body/data-table-row.js";
|
|
5
|
+
import { DataTableHeaderButton, DataTableHeaderButtonProps } from "./header/data-table-header-button.js";
|
|
6
|
+
import { DataTableHeaderCell, DataTableHeaderCellProps } from "./header/data-table-header-cell.js";
|
|
7
|
+
import { DataTableHeaderContent, DataTableHeaderContentProps } from "./header/data-table-header-content.js";
|
|
8
|
+
import { DataTableHeaderRow, DataTableHeaderRowProps } from "./header/data-table-header-row.js";
|
|
9
|
+
import { DataTableHeader, DataTableHeaderProps } from "./header/data-table-header.js";
|
|
10
|
+
import { DataTablePageButton, DataTablePageButtonPage, DataTablePageButtonProps } from "./pagination/data-table-page-button.js";
|
|
11
|
+
import { DataTablePageSizeSelect, DataTablePageSizeSelectProps } from "./pagination/data-table-page-size-select.js";
|
|
12
|
+
import { DataTablePageStatus, DataTablePageStatusProps, DataTablePageStatusValues } from "./pagination/data-table-page-status.js";
|
|
13
|
+
import { DataTablePagination, DataTablePaginationProps } from "./pagination/data-table-pagination.js";
|
|
14
|
+
import { DataTableRowRange, DataTableRowRangeProps, DataTableRowRangeValues } from "./pagination/data-table-row-range.js";
|
|
15
|
+
import { DataTableSelectedCount, DataTableSelectedCountProps } from "./pagination/data-table-selected-count.js";
|
|
16
|
+
import { DataTableResizeHandle, DataTableResizeHandleProps } from "./resize/data-table-resize-handle.js";
|
|
17
|
+
import { DataTableRoot, DataTableRootProps } from "./root/data-table-root.js";
|
|
18
|
+
import { DataTableScrollArea, DataTableScrollAreaProps } from "./root/data-table-scroll-area.js";
|
|
19
|
+
import { DataTableRowCheckbox, DataTableRowCheckboxProps } from "./selection/data-table-row-checkbox.js";
|
|
20
|
+
import { DataTableSelectAllCheckbox, DataTableSelectAllCheckboxProps } from "./selection/data-table-select-all-checkbox.js";
|
|
21
|
+
import { DataTableSelectionBar, DataTableSelectionBarProps } from "./selection/data-table-selection-bar.js";
|
|
22
|
+
import { SelectionColumnDefOptions, selectionColumnDef } from "./selection/selection-column-def.js";
|
|
23
|
+
import { DataTableSortIndicator, DataTableSortIndicatorProps } from "./sorting/data-table-sort-indicator.js";
|
|
24
|
+
import { DataTableSortTrigger, DataTableSortTriggerProps } from "./sorting/data-table-sort-trigger.js";
|
|
25
|
+
import { DataTableDensitySelect, DataTableDensitySelectProps } from "./toolbar/data-table-density-select.js";
|
|
26
|
+
import { DataTableSortColumnSelect, DataTableSortColumnSelectProps } from "./toolbar/data-table-sort-column-select.js";
|
|
27
|
+
import { DataTableSortDirectionSelect, DataTableSortDirectionSelectProps } from "./toolbar/data-table-sort-direction-select.js";
|
|
28
|
+
declare namespace index_parts_d_exports {
|
|
29
|
+
export { DataTableBody as Body, DataTableBodyProps as BodyProps, DataTableCell as Cell, DataTableCellProps as CellProps, DataTableDensitySelect as DensitySelect, DataTableDensitySelectProps as DensitySelectProps, DataTableEmpty as Empty, DataTableEmptyProps as EmptyProps, DataTableHeader as Header, DataTableHeaderButton as HeaderButton, DataTableHeaderButtonProps as HeaderButtonProps, DataTableHeaderCell as HeaderCell, DataTableHeaderCellProps as HeaderCellProps, DataTableHeaderContent as HeaderContent, DataTableHeaderContentProps as HeaderContentProps, DataTableHeaderProps as HeaderProps, DataTableHeaderRow as HeaderRow, DataTableHeaderRowProps as HeaderRowProps, DataTablePageButton as PageButton, DataTablePageButtonPage as PageButtonPage, DataTablePageButtonProps as PageButtonProps, DataTablePageSizeSelect as PageSizeSelect, DataTablePageSizeSelectProps as PageSizeSelectProps, DataTablePageStatus as PageStatus, DataTablePageStatusProps as PageStatusProps, DataTablePageStatusValues as PageStatusValues, DataTablePagination as Pagination, DataTablePaginationProps as PaginationProps, DataTableResizeHandle as ResizeHandle, DataTableResizeHandleProps as ResizeHandleProps, DataTableRoot as Root, DataTableRootProps as RootProps, DataTableRow as Row, DataTableRowCheckbox as RowCheckbox, DataTableRowCheckboxProps as RowCheckboxProps, DataTableRowProps as RowProps, DataTableRowRange as RowRange, DataTableRowRangeProps as RowRangeProps, DataTableRowRangeValues as RowRangeValues, DataTableScrollArea as ScrollArea, DataTableScrollAreaProps as ScrollAreaProps, DataTableSelectAllCheckbox as SelectAllCheckbox, DataTableSelectAllCheckboxProps as SelectAllCheckboxProps, DataTableSelectedCount as SelectedCount, DataTableSelectedCountProps as SelectedCountProps, DataTableSelectionBar as SelectionBar, DataTableSelectionBarProps as SelectionBarProps, SelectionColumnDefOptions, DataTableSortColumnSelect as SortColumnSelect, DataTableSortColumnSelectProps as SortColumnSelectProps, DataTableSortDirectionSelect as SortDirectionSelect, DataTableSortDirectionSelectProps as SortDirectionSelectProps, DataTableSortIndicator as SortIndicator, DataTableSortIndicatorProps as SortIndicatorProps, DataTableSortTrigger as SortTrigger, DataTableSortTriggerProps as SortTriggerProps, selectionColumnDef };
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
export { DataTableBody as Body, type DataTableBodyProps as BodyProps, DataTableCell as Cell, type DataTableCellProps as CellProps, DataTableDensitySelect as DensitySelect, type DataTableDensitySelectProps as DensitySelectProps, DataTableEmpty as Empty, type DataTableEmptyProps as EmptyProps, DataTableHeader as Header, DataTableHeaderButton as HeaderButton, type DataTableHeaderButtonProps as HeaderButtonProps, DataTableHeaderCell as HeaderCell, type DataTableHeaderCellProps as HeaderCellProps, DataTableHeaderContent as HeaderContent, type DataTableHeaderContentProps as HeaderContentProps, type DataTableHeaderProps as HeaderProps, DataTableHeaderRow as HeaderRow, type DataTableHeaderRowProps as HeaderRowProps, DataTablePageButton as PageButton, type DataTablePageButtonPage as PageButtonPage, type DataTablePageButtonProps as PageButtonProps, DataTablePageSizeSelect as PageSizeSelect, type DataTablePageSizeSelectProps as PageSizeSelectProps, DataTablePageStatus as PageStatus, type DataTablePageStatusProps as PageStatusProps, type DataTablePageStatusValues as PageStatusValues, DataTablePagination as Pagination, type DataTablePaginationProps as PaginationProps, DataTableResizeHandle as ResizeHandle, type DataTableResizeHandleProps as ResizeHandleProps, DataTableRoot as Root, type DataTableRootProps as RootProps, DataTableRow as Row, DataTableRowCheckbox as RowCheckbox, type DataTableRowCheckboxProps as RowCheckboxProps, type DataTableRowProps as RowProps, DataTableRowRange as RowRange, type DataTableRowRangeProps as RowRangeProps, type DataTableRowRangeValues as RowRangeValues, DataTableScrollArea as ScrollArea, type DataTableScrollAreaProps as ScrollAreaProps, DataTableSelectAllCheckbox as SelectAllCheckbox, type DataTableSelectAllCheckboxProps as SelectAllCheckboxProps, DataTableSelectedCount as SelectedCount, type DataTableSelectedCountProps as SelectedCountProps, DataTableSelectionBar as SelectionBar, type DataTableSelectionBarProps as SelectionBarProps, type SelectionColumnDefOptions, DataTableSortColumnSelect as SortColumnSelect, type DataTableSortColumnSelectProps as SortColumnSelectProps, DataTableSortDirectionSelect as SortDirectionSelect, type DataTableSortDirectionSelectProps as SortDirectionSelectProps, DataTableSortIndicator as SortIndicator, type DataTableSortIndicatorProps as SortIndicatorProps, DataTableSortTrigger as SortTrigger, type DataTableSortTriggerProps as SortTriggerProps, index_parts_d_exports, selectionColumnDef };
|
|
33
|
+
//# sourceMappingURL=index.parts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.parts.d.ts","names":[],"sources":["../../../src/components/data-table/index.parts.ts"],"mappings":""}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { __exportAll } from "../../_virtual/_rolldown/runtime.js";
|
|
2
|
+
import { DataTableHeaderButton } from "./header/data-table-header-button.js";
|
|
3
|
+
import { DataTableCell } from "./body/data-table-cell.js";
|
|
4
|
+
import { DataTableRow } from "./body/data-table-row.js";
|
|
5
|
+
import { DataTableBody } from "./body/data-table-body.js";
|
|
6
|
+
import { DataTableEmpty } from "./body/data-table-empty.js";
|
|
7
|
+
import { DataTableHeaderContent } from "./header/data-table-header-content.js";
|
|
8
|
+
import { DataTableHeaderCell } from "./header/data-table-header-cell.js";
|
|
9
|
+
import { DataTableHeaderRow } from "./header/data-table-header-row.js";
|
|
10
|
+
import { DataTableHeader } from "./header/data-table-header.js";
|
|
11
|
+
import { DataTablePageButton } from "./pagination/data-table-page-button.js";
|
|
12
|
+
import { DataTablePageSizeSelect } from "./pagination/data-table-page-size-select.js";
|
|
13
|
+
import { DataTablePageStatus } from "./pagination/data-table-page-status.js";
|
|
14
|
+
import { DataTableRowRange } from "./pagination/data-table-row-range.js";
|
|
15
|
+
import { DataTableSelectedCount } from "./pagination/data-table-selected-count.js";
|
|
16
|
+
import { DataTablePagination } from "./pagination/data-table-pagination.js";
|
|
17
|
+
import { DataTableResizeHandle } from "./resize/data-table-resize-handle.js";
|
|
18
|
+
import { DataTableRoot } from "./root/data-table-root.js";
|
|
19
|
+
import { DataTableScrollArea } from "./root/data-table-scroll-area.js";
|
|
20
|
+
import { DataTableRowCheckbox } from "./selection/data-table-row-checkbox.js";
|
|
21
|
+
import { DataTableSelectAllCheckbox } from "./selection/data-table-select-all-checkbox.js";
|
|
22
|
+
import { DataTableSelectionBar } from "./selection/data-table-selection-bar.js";
|
|
23
|
+
import { selectionColumnDef } from "./selection/selection-column-def.js";
|
|
24
|
+
import { DataTableSortIndicator } from "./sorting/data-table-sort-indicator.js";
|
|
25
|
+
import { DataTableSortTrigger } from "./sorting/data-table-sort-trigger.js";
|
|
26
|
+
import { DataTableDensitySelect } from "./toolbar/data-table-density-select.js";
|
|
27
|
+
import { DataTableSortColumnSelect } from "./toolbar/data-table-sort-column-select.js";
|
|
28
|
+
import { DataTableSortDirectionSelect } from "./toolbar/data-table-sort-direction-select.js";
|
|
29
|
+
//#region src/components/data-table/index.parts.ts
|
|
30
|
+
var index_parts_exports = /* @__PURE__ */ __exportAll({
|
|
31
|
+
Body: () => DataTableBody,
|
|
32
|
+
Cell: () => DataTableCell,
|
|
33
|
+
DensitySelect: () => DataTableDensitySelect,
|
|
34
|
+
Empty: () => DataTableEmpty,
|
|
35
|
+
Header: () => DataTableHeader,
|
|
36
|
+
HeaderButton: () => DataTableHeaderButton,
|
|
37
|
+
HeaderCell: () => DataTableHeaderCell,
|
|
38
|
+
HeaderContent: () => DataTableHeaderContent,
|
|
39
|
+
HeaderRow: () => DataTableHeaderRow,
|
|
40
|
+
PageButton: () => DataTablePageButton,
|
|
41
|
+
PageSizeSelect: () => DataTablePageSizeSelect,
|
|
42
|
+
PageStatus: () => DataTablePageStatus,
|
|
43
|
+
Pagination: () => DataTablePagination,
|
|
44
|
+
ResizeHandle: () => DataTableResizeHandle,
|
|
45
|
+
Root: () => DataTableRoot,
|
|
46
|
+
Row: () => DataTableRow,
|
|
47
|
+
RowCheckbox: () => DataTableRowCheckbox,
|
|
48
|
+
RowRange: () => DataTableRowRange,
|
|
49
|
+
ScrollArea: () => DataTableScrollArea,
|
|
50
|
+
SelectAllCheckbox: () => DataTableSelectAllCheckbox,
|
|
51
|
+
SelectedCount: () => DataTableSelectedCount,
|
|
52
|
+
SelectionBar: () => DataTableSelectionBar,
|
|
53
|
+
SortColumnSelect: () => DataTableSortColumnSelect,
|
|
54
|
+
SortDirectionSelect: () => DataTableSortDirectionSelect,
|
|
55
|
+
SortIndicator: () => DataTableSortIndicator,
|
|
56
|
+
SortTrigger: () => DataTableSortTrigger,
|
|
57
|
+
selectionColumnDef: () => selectionColumnDef
|
|
58
|
+
});
|
|
59
|
+
//#endregion
|
|
60
|
+
export { DataTableBody as Body, DataTableCell as Cell, DataTableDensitySelect as DensitySelect, DataTableEmpty as Empty, DataTableHeader as Header, DataTableHeaderButton as HeaderButton, DataTableHeaderCell as HeaderCell, DataTableHeaderContent as HeaderContent, DataTableHeaderRow as HeaderRow, DataTablePageButton as PageButton, DataTablePageSizeSelect as PageSizeSelect, DataTablePageStatus as PageStatus, DataTablePagination as Pagination, DataTableResizeHandle as ResizeHandle, DataTableRoot as Root, DataTableRow as Row, DataTableRowCheckbox as RowCheckbox, DataTableRowRange as RowRange, DataTableScrollArea as ScrollArea, DataTableSelectAllCheckbox as SelectAllCheckbox, DataTableSelectedCount as SelectedCount, DataTableSelectionBar as SelectionBar, DataTableSortColumnSelect as SortColumnSelect, DataTableSortDirectionSelect as SortDirectionSelect, DataTableSortIndicator as SortIndicator, DataTableSortTrigger as SortTrigger, index_parts_exports, selectionColumnDef };
|
|
61
|
+
|
|
62
|
+
//# sourceMappingURL=index.parts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.parts.js","names":[],"sources":["../../../src/components/data-table/index.parts.ts"],"sourcesContent":["export { DataTableBody as Body } from './body/data-table-body';\nexport { DataTableCell as Cell } from './body/data-table-cell';\nexport { DataTableEmpty as Empty } from './body/data-table-empty';\nexport { DataTableRow as Row } from './body/data-table-row';\nexport { DataTableHeader as Header } from './header/data-table-header';\nexport { DataTableHeaderButton as HeaderButton } from './header/data-table-header-button';\nexport { DataTableHeaderCell as HeaderCell } from './header/data-table-header-cell';\nexport { DataTableHeaderContent as HeaderContent } from './header/data-table-header-content';\nexport { DataTableHeaderRow as HeaderRow } from './header/data-table-header-row';\nexport { DataTablePageButton as PageButton } from './pagination/data-table-page-button';\nexport { DataTablePageSizeSelect as PageSizeSelect } from './pagination/data-table-page-size-select';\nexport { DataTablePageStatus as PageStatus } from './pagination/data-table-page-status';\nexport { DataTablePagination as Pagination } from './pagination/data-table-pagination';\nexport { DataTableRowRange as RowRange } from './pagination/data-table-row-range';\nexport { DataTableSelectedCount as SelectedCount } from './pagination/data-table-selected-count';\nexport { DataTableResizeHandle as ResizeHandle } from './resize/data-table-resize-handle';\nexport { DataTableRoot as Root } from './root/data-table-root';\nexport { DataTableScrollArea as ScrollArea } from './root/data-table-scroll-area';\nexport { DataTableRowCheckbox as RowCheckbox } from './selection/data-table-row-checkbox';\nexport { DataTableSelectAllCheckbox as SelectAllCheckbox } from './selection/data-table-select-all-checkbox';\nexport { DataTableSelectionBar as SelectionBar } from './selection/data-table-selection-bar';\nexport { selectionColumnDef } from './selection/selection-column-def';\nexport { DataTableSortIndicator as SortIndicator } from './sorting/data-table-sort-indicator';\nexport { DataTableSortTrigger as SortTrigger } from './sorting/data-table-sort-trigger';\nexport { DataTableDensitySelect as DensitySelect } from './toolbar/data-table-density-select';\nexport { DataTableSortColumnSelect as SortColumnSelect } from './toolbar/data-table-sort-column-select';\nexport { DataTableSortDirectionSelect as SortDirectionSelect } from './toolbar/data-table-sort-direction-select';\n\n/* types */\n\nexport type { DataTableBodyProps as BodyProps } from './body/data-table-body';\nexport type { DataTableCellProps as CellProps } from './body/data-table-cell';\nexport type { DataTableEmptyProps as EmptyProps } from './body/data-table-empty';\nexport type { DataTableRowProps as RowProps } from './body/data-table-row';\nexport type { DataTableHeaderProps as HeaderProps } from './header/data-table-header';\nexport type { DataTableHeaderButtonProps as HeaderButtonProps } from './header/data-table-header-button';\nexport type { DataTableHeaderCellProps as HeaderCellProps } from './header/data-table-header-cell';\nexport type { DataTableHeaderContentProps as HeaderContentProps } from './header/data-table-header-content';\nexport type { DataTableHeaderRowProps as HeaderRowProps } from './header/data-table-header-row';\nexport type {\n DataTablePageButtonPage as PageButtonPage,\n DataTablePageButtonProps as PageButtonProps,\n} from './pagination/data-table-page-button';\nexport type { DataTablePageSizeSelectProps as PageSizeSelectProps } from './pagination/data-table-page-size-select';\nexport type {\n DataTablePageStatusProps as PageStatusProps,\n DataTablePageStatusValues as PageStatusValues,\n} from './pagination/data-table-page-status';\nexport type { DataTablePaginationProps as PaginationProps } from './pagination/data-table-pagination';\nexport type {\n DataTableRowRangeProps as RowRangeProps,\n DataTableRowRangeValues as RowRangeValues,\n} from './pagination/data-table-row-range';\nexport type { DataTableSelectedCountProps as SelectedCountProps } from './pagination/data-table-selected-count';\nexport type { DataTableResizeHandleProps as ResizeHandleProps } from './resize/data-table-resize-handle';\nexport type { DataTableRootProps as RootProps } from './root/data-table-root';\nexport type { DataTableScrollAreaProps as ScrollAreaProps } from './root/data-table-scroll-area';\nexport type { DataTableRowCheckboxProps as RowCheckboxProps } from './selection/data-table-row-checkbox';\nexport type { DataTableSelectAllCheckboxProps as SelectAllCheckboxProps } from './selection/data-table-select-all-checkbox';\nexport type { DataTableSelectionBarProps as SelectionBarProps } from './selection/data-table-selection-bar';\nexport type { SelectionColumnDefOptions } from './selection/selection-column-def';\nexport type { DataTableSortIndicatorProps as SortIndicatorProps } from './sorting/data-table-sort-indicator';\nexport type { DataTableSortTriggerProps as SortTriggerProps } from './sorting/data-table-sort-trigger';\nexport type { DataTableDensitySelectProps as DensitySelectProps } from './toolbar/data-table-density-select';\nexport type { DataTableSortColumnSelectProps as SortColumnSelectProps } from './toolbar/data-table-sort-column-select';\nexport type { DataTableSortDirectionSelectProps as SortDirectionSelectProps } from './toolbar/data-table-sort-direction-select';\n"],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { RowData, Table, TableFeatures } from "@tanstack/react-table";
|
|
2
|
+
//#region src/components/data-table/loading/get-data-table-loading-without-rows.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* Se a tabela carrega sem nenhuma linha, como na primeira carga: o corpo mostra as
|
|
5
|
+
* linhas-fantasma, e a barra da paginação, sem o total, que ainda não chegou. Sem
|
|
6
|
+
* `loadingFeature`, `false`.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* // Primeira carga da API: `isLoading: true` e `data: []`.
|
|
11
|
+
* getDataTableLoadingWithoutRows(table); // → true
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export declare const getDataTableLoadingWithoutRows: <TFeatures extends TableFeatures, TData extends RowData>(table: Table<TFeatures, TData>) => boolean;
|
|
15
|
+
//#endregion
|
|
16
|
+
//# sourceMappingURL=get-data-table-loading-without-rows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-data-table-loading-without-rows.d.ts","names":[],"sources":["../../../../src/components/data-table/loading/get-data-table-loading-without-rows.ts"],"mappings":";;;;;;;;;;;;;qBAca,iCACX,kBAAkB,eAClB,cAAc,SAEd,OAAO,MAAM,WAAW"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { hasTableFeature } from "../../../utils/has-feature.js";
|
|
2
|
+
//#region src/components/data-table/loading/get-data-table-loading-without-rows.ts
|
|
3
|
+
/**
|
|
4
|
+
* Se a tabela carrega sem nenhuma linha, como na primeira carga: o corpo mostra as
|
|
5
|
+
* linhas-fantasma, e a barra da paginação, sem o total, que ainda não chegou. Sem
|
|
6
|
+
* `loadingFeature`, `false`.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* // Primeira carga da API: `isLoading: true` e `data: []`.
|
|
11
|
+
* getDataTableLoadingWithoutRows(table); // → true
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
const getDataTableLoadingWithoutRows = (table) => hasTableFeature(table, "loadingFeature") && table.atoms.isLoading.get() && table.getRowModel().rows.length === 0;
|
|
15
|
+
//#endregion
|
|
16
|
+
export { getDataTableLoadingWithoutRows };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=get-data-table-loading-without-rows.js.map
|