@12-apps/ui 6.27.2 → 6.28.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.
Files changed (113) hide show
  1. package/dist/_internal/components/data-display/Avatar/Avatar.js +3 -3
  2. package/dist/_internal/components/data-display/Avatar/Avatar.view.js +2 -2
  3. package/dist/_internal/components/data-display/Carousel/Carousel.js +2 -2
  4. package/dist/_internal/components/data-display/Chart/Chart.js +3 -3
  5. package/dist/_internal/components/data-display/Chart/SpecChart.js +6 -6
  6. package/dist/_internal/components/data-display/Chart/chart-renderers.js +2 -2
  7. package/dist/_internal/components/data-display/Chart/chart-spec.js +2 -2
  8. package/dist/_internal/components/data-display/DataGrid/DataGrid.body.js +2 -2
  9. package/dist/_internal/components/data-display/DataGrid/DataGrid.cells.js +1 -1
  10. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +3 -3
  11. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +18 -17
  12. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +19 -18
  13. package/dist/_internal/components/data-display/DataViews/base-list-card.js +2 -2
  14. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +3 -3
  15. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +5 -4
  16. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +17 -16
  17. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +5 -5
  18. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +3 -3
  19. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +4 -4
  20. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +2 -2
  21. package/dist/_internal/components/data-display/DataViews/data-views-row-detail.js +8 -0
  22. package/dist/_internal/components/data-display/DataViews/data-views-row-detail.js.map +1 -0
  23. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +3 -3
  24. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +2 -2
  25. package/dist/_internal/components/data-display/index.js +19 -19
  26. package/dist/_internal/components/index.js +19 -19
  27. package/dist/_internal/user-avatar/user-avatar.js +4 -4
  28. package/dist/charts.js +11 -11
  29. package/dist/{chunk-EMNGIYH6.js → chunk-7TZ6OC5T.js} +5 -5
  30. package/dist/{chunk-FUT7HGWZ.js → chunk-ALAJBLBE.js} +2 -2
  31. package/dist/{chunk-E5LWJDI3.js → chunk-AROBXRC5.js} +11 -5
  32. package/dist/chunk-AROBXRC5.js.map +1 -0
  33. package/dist/{chunk-LQRJCEFO.js → chunk-DVE53B2L.js} +4 -4
  34. package/dist/chunk-DVE53B2L.js.map +1 -0
  35. package/dist/{chunk-WZUNBSS7.js → chunk-DVUPIVI2.js} +4 -4
  36. package/dist/{chunk-KCAGCDCQ.js → chunk-EYC6ERJJ.js} +2 -2
  37. package/dist/chunk-EYC6ERJJ.js.map +1 -0
  38. package/dist/{chunk-35UG2QDB.js → chunk-HS2OJI6L.js} +7 -7
  39. package/dist/{chunk-KZLLTOB2.js → chunk-HTZNB6IV.js} +2 -2
  40. package/dist/{chunk-FJQ5CH4Q.js → chunk-J2K65BQQ.js} +2 -2
  41. package/dist/{chunk-EZMCWRXO.js → chunk-MHSTG7FF.js} +2 -2
  42. package/dist/{chunk-BBYCZZBH.js → chunk-MRMNVGNX.js} +2 -2
  43. package/dist/{chunk-DACURY25.js → chunk-NY2Y2SHA.js} +3 -3
  44. package/dist/chunk-O5UGAL2V.js +15 -0
  45. package/dist/chunk-O5UGAL2V.js.map +1 -0
  46. package/dist/{chunk-SUWIHCD6.js → chunk-PVIAHB7D.js} +4 -4
  47. package/dist/{chunk-FJGHP2QW.js → chunk-QGAYEBMU.js} +8 -2
  48. package/dist/chunk-QGAYEBMU.js.map +1 -0
  49. package/dist/{chunk-DFLTUI7W.js → chunk-QZBUGUOY.js} +4 -4
  50. package/dist/{chunk-GOWBYHYW.js → chunk-R6SBP5M5.js} +4 -4
  51. package/dist/{chunk-Y6KPZQPI.js → chunk-SOCKK67R.js} +4 -4
  52. package/dist/{chunk-SOJQEJAE.js → chunk-THOPGHTY.js} +2 -2
  53. package/dist/{chunk-6R567DH4.js → chunk-TSFFZ3AH.js} +8 -7
  54. package/dist/chunk-TSFFZ3AH.js.map +1 -0
  55. package/dist/{chunk-EZ5Z5UFI.js → chunk-TTW4MAOJ.js} +5 -5
  56. package/dist/{chunk-S7HRED4D.js → chunk-VLHGBFR6.js} +3 -3
  57. package/dist/{chunk-MC2WCZK5.js → chunk-XBZ43VIV.js} +6 -6
  58. package/dist/{chunk-JLBHH2JU.js → chunk-XOCLWQON.js} +2 -2
  59. package/dist/data-display/Avatar.js +3 -3
  60. package/dist/data-display/CardKit.js +3 -3
  61. package/dist/data-display/Carousel.js +2 -2
  62. package/dist/data-display/Chart.js +11 -11
  63. package/dist/data-display/DataGrid.js +3 -3
  64. package/dist/data-display/DataViews.js +22 -21
  65. package/dist/types/components/data-display/DataGrid/DataGrid.cells.d.ts.map +1 -1
  66. package/dist/types/components/data-display/DataGrid/DataGrid.types.d.ts +10 -0
  67. package/dist/types/components/data-display/DataGrid/DataGrid.types.d.ts.map +1 -1
  68. package/dist/types/components/data-display/DataViews/DataViewsGrid.d.ts +6 -0
  69. package/dist/types/components/data-display/DataViews/DataViewsGrid.d.ts.map +1 -1
  70. package/dist/types/components/data-display/DataViews/DataViewsTableBase.d.ts +3 -0
  71. package/dist/types/components/data-display/DataViews/DataViewsTableBase.d.ts.map +1 -1
  72. package/dist/types/components/data-display/DataViews/data-views-grid-bodies.d.ts +3 -0
  73. package/dist/types/components/data-display/DataViews/data-views-grid-bodies.d.ts.map +1 -1
  74. package/dist/types/components/data-display/DataViews/data-views-grid-parts.d.ts +3 -0
  75. package/dist/types/components/data-display/DataViews/data-views-grid-parts.d.ts.map +1 -1
  76. package/dist/types/components/data-display/DataViews/data-views-row-detail.d.ts +27 -0
  77. package/dist/types/components/data-display/DataViews/data-views-row-detail.d.ts.map +1 -0
  78. package/dist/types/components/data-display/DataViews/index.d.ts +1 -0
  79. package/dist/types/components/data-display/DataViews/index.d.ts.map +1 -1
  80. package/dist/user-avatar.js +4 -4
  81. package/package.json +1 -1
  82. package/src/components/data-display/DataGrid/DataGrid.cells.tsx +23 -9
  83. package/src/components/data-display/DataGrid/DataGrid.md +8 -0
  84. package/src/components/data-display/DataGrid/DataGrid.types.ts +10 -0
  85. package/src/components/data-display/DataViews/DataViewsGrid.tsx +6 -0
  86. package/src/components/data-display/DataViews/DataViewsTableBase.tsx +3 -0
  87. package/src/components/data-display/DataViews/data-views-grid-bodies.tsx +7 -0
  88. package/src/components/data-display/DataViews/data-views-grid-parts.tsx +4 -0
  89. package/src/components/data-display/DataViews/data-views-row-detail.ts +40 -0
  90. package/src/components/data-display/DataViews/index.ts +1 -0
  91. package/dist/chunk-6R567DH4.js.map +0 -1
  92. package/dist/chunk-E5LWJDI3.js.map +0 -1
  93. package/dist/chunk-FJGHP2QW.js.map +0 -1
  94. package/dist/chunk-KCAGCDCQ.js.map +0 -1
  95. package/dist/chunk-LQRJCEFO.js.map +0 -1
  96. /package/dist/{chunk-EMNGIYH6.js.map → chunk-7TZ6OC5T.js.map} +0 -0
  97. /package/dist/{chunk-FUT7HGWZ.js.map → chunk-ALAJBLBE.js.map} +0 -0
  98. /package/dist/{chunk-WZUNBSS7.js.map → chunk-DVUPIVI2.js.map} +0 -0
  99. /package/dist/{chunk-35UG2QDB.js.map → chunk-HS2OJI6L.js.map} +0 -0
  100. /package/dist/{chunk-KZLLTOB2.js.map → chunk-HTZNB6IV.js.map} +0 -0
  101. /package/dist/{chunk-FJQ5CH4Q.js.map → chunk-J2K65BQQ.js.map} +0 -0
  102. /package/dist/{chunk-EZMCWRXO.js.map → chunk-MHSTG7FF.js.map} +0 -0
  103. /package/dist/{chunk-BBYCZZBH.js.map → chunk-MRMNVGNX.js.map} +0 -0
  104. /package/dist/{chunk-DACURY25.js.map → chunk-NY2Y2SHA.js.map} +0 -0
  105. /package/dist/{chunk-SUWIHCD6.js.map → chunk-PVIAHB7D.js.map} +0 -0
  106. /package/dist/{chunk-DFLTUI7W.js.map → chunk-QZBUGUOY.js.map} +0 -0
  107. /package/dist/{chunk-GOWBYHYW.js.map → chunk-R6SBP5M5.js.map} +0 -0
  108. /package/dist/{chunk-Y6KPZQPI.js.map → chunk-SOCKK67R.js.map} +0 -0
  109. /package/dist/{chunk-SOJQEJAE.js.map → chunk-THOPGHTY.js.map} +0 -0
  110. /package/dist/{chunk-EZ5Z5UFI.js.map → chunk-TTW4MAOJ.js.map} +0 -0
  111. /package/dist/{chunk-S7HRED4D.js.map → chunk-VLHGBFR6.js.map} +0 -0
  112. /package/dist/{chunk-MC2WCZK5.js.map → chunk-XBZ43VIV.js.map} +0 -0
  113. /package/dist/{chunk-JLBHH2JU.js.map → chunk-XOCLWQON.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/DataViews/data-views-grid-bodies.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\n\nimport { DataGrid, type GridColumn, type GridSort } from \"../DataGrid\";\nimport { Box } from \"../../../mui/Box\";\n\nimport {\n cardTargetWidthFor,\n cardScaleForZoom,\n DENSITY_BOARD_SCALE,\n DENSITY_ROW_PADDING,\n useDataViewsLayout,\n type DataViewsDensity,\n} from \"./data-views-layout-context\";\nimport { cardGridTracks } from \"./data-views-grid-helpers\";\nimport { DataViewsBoard, type BoardConfig } from \"./DataViewsBoard\";\nimport { SelectAllStrip } from \"./data-views-select-all-strip\";\nimport { ListCardGroup, type ListGroupConfig } from \"./list-card-rails\";\nimport type { DataViewCardSelection } from \"./data-views-types\";\nimport { toGridExpansion, type DataViewRowDetail } from \"./data-views-row-detail\";\nimport type { DataViewsController } from \"./use-data-views-state\";\nimport { useDataViewsCopy } from \"./data-views-copy-context\";\n\n/* ── Body (grid) ─────────────────────────────────────────────────────────── */\n\ninterface GridBodyProps<T extends Record<string, unknown>> {\n rows: T[];\n columns: GridColumn<T>[];\n getRowId: (row: T) => string | number;\n selectedIds: Array<string | number>;\n onChangeSelected: (ids: Array<string | number>) => void;\n sortBy: GridSort[];\n onChangeSortBy: (next: GridSort[]) => void;\n /** \"server\" defers ordering to the backend (rows render as-is); \"client\" sorts in-grid. */\n sortMode: \"client\" | \"server\";\n /** Vertical cell padding, from the density preference. */\n rowPadding: number;\n rowDetail?: DataViewRowDetail<T>;\n dataTestId?: string;\n emptyState?: React.ReactNode;\n}\n\n/** The dense DataGrid with multi-select, wrapped in the scrollable table region. */\nfunction GridBody<T extends Record<string, unknown>>({\n rows,\n columns,\n getRowId,\n selectedIds,\n onChangeSelected,\n sortBy,\n onChangeSortBy,\n sortMode,\n rowPadding,\n rowDetail,\n dataTestId,\n emptyState,\n}: GridBodyProps<T>): React.JSX.Element {\n const copy = useDataViewsCopy();\n return (\n <Box\n sx={{\n width: \"100%\",\n overflowX: \"auto\",\n mt: 1.5,\n // Tabwoah-style dense rows: MUI's default TableCell padding keeps rows\n // tall regardless of rowHeight, so the DENSITY preference is applied\n // here rather than through `rowHeight`, which it would fight.\n \"& .MuiTableCell-root\": { py: rowPadding, fontSize: \"0.8125rem\" },\n \"& .MuiTableCell-head\": { py: 0.5, fontSize: \"0.75rem\" },\n }}\n >\n <DataGrid<T>\n rows={rows}\n columns={columns}\n getRowId={(row) => getRowId(row)}\n virtualizeRows={false}\n density=\"compact\"\n rowHeight={36}\n headerHeight={36}\n selection={{ mode: \"multi\", selectedRowIds: selectedIds, onChangeSelected }}\n sorting={{ mode: sortMode, sortBy, onChangeSortBy }}\n expansion={toGridExpansion(rowDetail, copy)}\n data-testid={dataTestId}\n emptyState={emptyState}\n emptyText={copy.grid.emptyFilteredTitle}\n />\n </Box>\n );\n}\n\n/* ── Body (cards) ────────────────────────────────────────────────────────── */\n\ninterface CardBodyProps<T extends Record<string, unknown>> {\n rows: T[];\n renderCard: (row: T, selection: DataViewCardSelection) => React.ReactNode;\n getRowId: (row: T) => string | number;\n selectedIds: Set<string | number>;\n onToggleId: (id: string | number) => void;\n /** The width each card asks for; `auto-fill` turns it into a column count. */\n targetCardWidth: number;\n /** Content scale (padding + type) handed to each card, from the zoom slider. */\n cardScale: number;\n dataTestId?: string;\n emptyState?: React.ReactNode;\n}\n\n/**\n * The \"Grade\" layout: the filtered/sorted rows rendered as an auto-filling grid\n * of entity-supplied cards. Reuses `rows` (= `c.matched`), so search/filter/sort\n * apply; the column width comes from the zoom slider, and each card is handed its\n * selection state so it can drive its own checkbox (BaseCard) — the same\n * selection model as the table.\n */\nfunction CardBody<T extends Record<string, unknown>>({\n rows,\n renderCard,\n getRowId,\n selectedIds,\n onToggleId,\n targetCardWidth,\n cardScale,\n dataTestId,\n emptyState,\n}: CardBodyProps<T>): React.JSX.Element {\n if (rows.length === 0) {\n return <Box sx={{ mt: 1.5 }}>{emptyState}</Box>;\n }\n return (\n <Box\n sx={{\n mt: 1.5,\n display: \"grid\",\n // Fixed inter-card gap — deliberately NOT scaled by the zoom slider, so\n // only the cards grow while the space between them stays constant.\n gap: 1.5,\n ...cardGridTracks(targetCardWidth),\n }}\n data-testid={dataTestId ? `${dataTestId}-cards` : \"data-views-cards\"}\n >\n {rows.map((row) => {\n const id = getRowId(row);\n return (\n <Box key={id}>\n {renderCard(row, {\n selected: selectedIds.has(id),\n onToggleSelect: () => onToggleId(id),\n scale: cardScale,\n })}\n </Box>\n );\n })}\n </Box>\n );\n}\n\n/* ── Body (list) ─────────────────────────────────────────────────────────── */\n\ninterface ListBodyProps<T extends Record<string, unknown>> {\n rows: T[];\n renderListRow: (row: T, selection: DataViewCardSelection) => React.ReactNode;\n getRowId: (row: T) => string | number;\n selectedIds: Set<string | number>;\n onToggleId: (id: string | number) => void;\n /** Gap between rows, from the density preference. */\n rowGap: number;\n /** The list's shared column config. See {@link ListGroupConfig}. */\n group?: ListGroupConfig<T>;\n /** The density every row answers, handed to the group when there is one. */\n density: DataViewsDensity;\n dataTestId?: string;\n emptyState?: React.ReactNode;\n}\n\n/**\n * The \"Lista\" layout: one FULL-WIDTH row per record, rendered by the entity — a\n * marker, a title, a subtitle and a value on the right is the shape it was\n * designed for (FUT-733).\n *\n * It sits between the table and the cards rather than replacing either: the\n * table is for comparing many columns, the cards are for browsing, and the list\n * is for scanning a queue on a narrow screen. Selection is the SAME model as\n * both — each row receives its selection state, so it can drive its own\n * checkbox and the bulk menu behaves identically in every layout.\n *\n * `scale` is handed over as 1 rather than the zoom multiplier, and the zoom\n * slider is hidden in this layout: a full-width row has no card size to\n * multiply. See {@link DataViewsZoomSlider}.\n */\nfunction ListBody<T extends Record<string, unknown>>({\n rows,\n renderListRow,\n getRowId,\n selectedIds,\n onToggleId,\n rowGap,\n group,\n density,\n dataTestId,\n emptyState,\n}: ListBodyProps<T>): React.JSX.Element {\n if (rows.length === 0) {\n return <Box sx={{ mt: 1.5 }}>{emptyState}</Box>;\n }\n const testId = dataTestId ? `${dataTestId}-list` : \"data-views-list\";\n const selectionFor = (id: string | number): DataViewCardSelection => ({\n selected: selectedIds.has(id),\n onToggleSelect: () => onToggleId(id),\n scale: 1,\n });\n\n if (group) {\n return (\n <Box sx={{ mt: 1.5 }}>\n <ListCardGroup\n cells={group.cells}\n metaColumns={group.metaColumns}\n rails={group.rails}\n reserveGutters={group.reserveGutters}\n density={density}\n gap={rowGap}\n dataTestId={testId}\n >\n {rows.map((row) => {\n const id = getRowId(row);\n // A FRAGMENT, NOT A BOX. The row is subgrid over the group's tracks\n // (`gridColumn: span railCount`), which only resolves while the card\n // is a DIRECT child of the group's grid. One wrapper element and the\n // span is measured against a grid that isn't there, so every rail\n // collapses — the exact failure the group exists to prevent.\n return (\n <React.Fragment key={id}>\n {renderListRow(row, selectionFor(id))}\n </React.Fragment>\n );\n })}\n </ListCardGroup>\n </Box>\n );\n }\n\n return (\n <Box\n sx={{ mt: 1.5, display: \"flex\", flexDirection: \"column\", gap: rowGap }}\n data-testid={testId}\n >\n {rows.map((row) => {\n const id = getRowId(row);\n return <Box key={id}>{renderListRow(row, selectionFor(id))}</Box>;\n })}\n </Box>\n );\n}\n\n/* ── Body selector (board vs list vs cards vs table, from context) ───────── */\n\ninterface GridMainProps<T extends Record<string, unknown>> {\n c: DataViewsController<T>;\n getRowId: (row: T) => string | number;\n renderCard?: (row: T, selection: DataViewCardSelection) => React.ReactNode;\n /** Opt-in \"Lista\" layout — one full-width row per record. */\n renderListRow?: (row: T, selection: DataViewCardSelection) => React.ReactNode;\n /** The Lista's shared columns. Omitted, each row resolves its own tracks. */\n listGroup?: ListGroupConfig<T>;\n /** Opt-in \"Quadro\" (board) layout — needs `renderCard`, since it reuses the card. */\n board?: BoardConfig<T>;\n /** Opt-in expandable rows — the TABLE only; the headerless layouts ignore it. */\n rowDetail?: DataViewRowDetail<T>;\n dataTestId?: string;\n emptyState?: React.ReactNode;\n testIdPrefix: string;\n}\n\n/**\n * The headerless layouts, each preceded by its own select-all.\n *\n * The strip is rendered HERE rather than inside each body so all three agree on\n * where it sits and what it says — and so the table, which already has one in\n * its `<thead>`, never gets a second.\n */\nfunction Headerless<T extends Record<string, unknown>>({\n c,\n getRowId,\n testIdPrefix,\n children,\n}: {\n c: DataViewsController<T>;\n getRowId: (row: T) => string | number;\n testIdPrefix: string;\n children: React.ReactNode;\n}): React.JSX.Element {\n return (\n <>\n <SelectAllStrip\n rows={c.matched}\n getRowId={getRowId}\n selectedIds={c.selectedIds}\n onChange={(next) => c.setSelectedIds(next)}\n testIdPrefix={testIdPrefix}\n />\n {children}\n </>\n );\n}\n\n/**\n * The body for one of the three HEADERLESS layouts, or `null` for the table.\n *\n * Split out from {@link GridMain} so the select-all strip is wrapped around the\n * result exactly once instead of being repeated identically in every branch —\n * which is also what keeps either function inside the line budget.\n */\nfunction headerlessBody<T extends Record<string, unknown>>(\n { c, getRowId, renderCard, renderListRow, listGroup, board, dataTestId, emptyState }: GridMainProps<T>,\n { layout, zoom, density }: ReturnType<typeof useDataViewsLayout>,\n): React.ReactNode | null {\n if (layout === \"list\" && renderListRow) {\n return (\n <ListBody\n rows={c.matched}\n renderListRow={renderListRow}\n getRowId={getRowId}\n selectedIds={c.selectedIds}\n onToggleId={c.toggleId}\n rowGap={DENSITY_ROW_PADDING[density]}\n group={listGroup}\n density={density}\n dataTestId={dataTestId}\n emptyState={emptyState}\n />\n );\n }\n if (layout === \"board\" && board && renderCard) {\n return (\n <DataViewsBoard\n rows={c.matched}\n board={board}\n getRowId={getRowId}\n renderCard={renderCard}\n selectedIds={c.selectedIds}\n onToggleId={c.toggleId}\n // DENSITY, not zoom: the board's own knob in the Exibição tab is how\n // wide its columns are, and it is the only sizing control the board\n // has since the zoom slider was removed.\n cardScale={DENSITY_BOARD_SCALE[density]}\n dataTestId={dataTestId}\n />\n );\n }\n if (layout === \"cards\" && renderCard) {\n return (\n <CardBody\n rows={c.matched}\n renderCard={renderCard}\n getRowId={getRowId}\n selectedIds={c.selectedIds}\n onToggleId={c.toggleId}\n targetCardWidth={cardTargetWidthFor(zoom, density)}\n cardScale={cardScaleForZoom(zoom)}\n dataTestId={dataTestId}\n emptyState={emptyState}\n />\n );\n }\n return null;\n}\n\n/** Picks the body from the layout context: board, list, cards, or the dense grid. */\nexport function GridMain<T extends Record<string, unknown>>(props: GridMainProps<T>): React.JSX.Element {\n const { c, getRowId, dataTestId, emptyState, testIdPrefix } = props;\n const layoutState = useDataViewsLayout();\n const body = headerlessBody(props, layoutState);\n if (body) {\n return (\n <Headerless c={c} getRowId={getRowId} testIdPrefix={testIdPrefix}>\n {body}\n </Headerless>\n );\n }\n return (\n <GridBody\n rows={c.matched}\n columns={c.gridColumns}\n getRowId={getRowId}\n selectedIds={[...c.selectedIds]}\n onChangeSelected={(ids) => c.setSelectedIds(new Set(ids))}\n sortBy={c.state.sortBy}\n onChangeSortBy={(next: GridSort[]) => c.patch({ sortBy: next })}\n sortMode={c.serverMode ? \"server\" : \"client\"}\n rowPadding={DENSITY_ROW_PADDING[layoutState.density]}\n rowDetail={props.rowDetail}\n dataTestId={dataTestId}\n emptyState={emptyState}\n />\n );\n}\n\n"],"mappings":"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","names":["default"]}
@@ -1,3 +1,6 @@
1
+ import {
2
+ RangePresets
3
+ } from "./chunk-F4RR4666.js";
1
4
  import {
2
5
  NumberBoundInput
3
6
  } from "./chunk-FV36LFPX.js";
@@ -7,9 +10,6 @@ import {
7
10
  numericRange,
8
11
  rangeChipLabel
9
12
  } from "./chunk-GCZJH4XL.js";
10
- import {
11
- RangePresets
12
- } from "./chunk-F4RR4666.js";
13
13
  import {
14
14
  presetsFor
15
15
  } from "./chunk-CBOB5AV6.js";
@@ -279,4 +279,4 @@ export {
279
279
  RangePill,
280
280
  PanelRangeField
281
281
  };
282
- //# sourceMappingURL=chunk-DFLTUI7W.js.map
282
+ //# sourceMappingURL=chunk-QZBUGUOY.js.map
@@ -1,10 +1,10 @@
1
- import {
2
- chartValueFormatter
3
- } from "./chunk-QVWNK4JO.js";
4
1
  import {
5
2
  getChartSpecRenderer,
6
3
  getRegisteredChartSpecTypes
7
4
  } from "./chunk-WKUA6P3W.js";
5
+ import {
6
+ chartValueFormatter
7
+ } from "./chunk-QVWNK4JO.js";
8
8
 
9
9
  // src/components/data-display/Chart/chart-spec.ts
10
10
  var CHART_SEMANTIC_COLORS = [
@@ -149,4 +149,4 @@ export {
149
149
  parseChartSpec,
150
150
  specToChartProps
151
151
  };
152
- //# sourceMappingURL=chunk-GOWBYHYW.js.map
152
+ //# sourceMappingURL=chunk-R6SBP5M5.js.map
@@ -1,3 +1,6 @@
1
+ import {
2
+ useCarouselNavigation
3
+ } from "./chunk-RUIV5TVA.js";
1
4
  import {
2
5
  CarouselChrome
3
6
  } from "./chunk-R6SSXEK2.js";
@@ -7,9 +10,6 @@ import {
7
10
  import {
8
11
  CarouselTrack
9
12
  } from "./chunk-WIXUMFU7.js";
10
- import {
11
- useCarouselNavigation
12
- } from "./chunk-RUIV5TVA.js";
13
13
  import {
14
14
  withDefaults
15
15
  } from "./chunk-HPK33ACY.js";
@@ -152,4 +152,4 @@ var Carousel = (props) => {
152
152
  export {
153
153
  Carousel
154
154
  };
155
- //# sourceMappingURL=chunk-Y6KPZQPI.js.map
155
+ //# sourceMappingURL=chunk-SOCKK67R.js.map
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-3ZVUNSFF.js";
6
6
  import {
7
7
  AvatarView
8
- } from "./chunk-35UG2QDB.js";
8
+ } from "./chunk-HS2OJI6L.js";
9
9
  import {
10
10
  BORDER_WIDTH,
11
11
  GROUP_HOVER,
@@ -172,4 +172,4 @@ export {
172
172
  Avatar,
173
173
  AvatarGroup
174
174
  };
175
- //# sourceMappingURL=chunk-SOJQEJAE.js.map
175
+ //# sourceMappingURL=chunk-THOPGHTY.js.map
@@ -1,16 +1,19 @@
1
1
  import {
2
2
  DataViewsEmpty
3
3
  } from "./chunk-OJCK5RNJ.js";
4
+ import {
5
+ InlineFilterControls
6
+ } from "./chunk-NY2Y2SHA.js";
4
7
  import {
5
8
  GridHeaderRow
6
9
  } from "./chunk-UC6A6ASM.js";
7
10
  import {
8
11
  GridMain
9
- } from "./chunk-FJGHP2QW.js";
12
+ } from "./chunk-QGAYEBMU.js";
10
13
  import {
11
14
  FilterDialog,
12
15
  GridFilterPanel
13
- } from "./chunk-JLBHH2JU.js";
16
+ } from "./chunk-XOCLWQON.js";
14
17
  import {
15
18
  DataViewsPagination
16
19
  } from "./chunk-HP2ODXNA.js";
@@ -18,15 +21,12 @@ import {
18
21
  toOverflowFields,
19
22
  useFilterOverflow
20
23
  } from "./chunk-TQ6FPOPD.js";
21
- import {
22
- InlineFilterControls
23
- } from "./chunk-DACURY25.js";
24
24
  import {
25
25
  ScopeTabsSlot
26
26
  } from "./chunk-QSKJLMNS.js";
27
27
  import {
28
28
  ShellToolbar
29
- } from "./chunk-BBYCZZBH.js";
29
+ } from "./chunk-MRMNVGNX.js";
30
30
  import {
31
31
  resolveSelectionExtra
32
32
  } from "./chunk-KX75HM5U.js";
@@ -180,6 +180,7 @@ function ShellStack({
180
180
  renderListRow: props.renderListRow,
181
181
  listGroup: props.listGroup,
182
182
  board: props.board,
183
+ rowDetail: props.rowDetail,
183
184
  dataTestId,
184
185
  testIdPrefix,
185
186
  emptyState: body
@@ -237,4 +238,4 @@ function GridShell(props) {
237
238
  export {
238
239
  GridShell
239
240
  };
240
- //# sourceMappingURL=chunk-6R567DH4.js.map
241
+ //# sourceMappingURL=chunk-TSFFZ3AH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/DataViews/data-views-grid-parts.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useState } from \"react\";\n\nimport { TableFilter } from \"../../layout/TableFilter\";\nimport { Stack } from \"../../../mui/Stack\";\n\nimport {\n DataViewsLayoutProvider,\n useDataViewsLayout,\n type DataViewsLayout,\n} from \"./data-views-layout-context\";\nimport { FilterDialog, GridFilterPanel } from \"./data-views-filter-panel\";\nimport { GridMain } from \"./data-views-grid-bodies\";\nimport type { ListGroupConfig } from \"./list-card-rails\";\nimport { InlineFilterControls } from \"./data-views-inline-bar\";\nimport { toOverflowFields, useFilterOverflow, type OverflowSplit } from \"./data-views-overflow\";\nimport { GridHeaderRow } from \"./data-views-header-row\";\nimport { resolveSelectionExtra, type SelectionExtraRender } from \"./data-views-selection-extra\";\nimport { ShellToolbar } from \"./data-views-shell-toolbar\";\nimport type { DisplayPanelView } from \"./data-views-display-panel\";\nimport type { DataViewExport } from \"./data-views-export\";\nimport { useDataViewsCopy } from \"./data-views-copy-context\";\nimport { DataViewsEmpty } from \"./data-views-empty\";\nimport { DataViewsPagination } from \"./data-views-pagination\";\nimport type { BoardConfig } from \"./DataViewsBoard\";\nimport { type ScopeConfig } from \"./data-views-scopes\";\nimport { ScopeTabsSlot } from \"./data-views-scope-tabs\";\nimport { togglePillValues } from \"./data-views-grid-helpers\";\nimport type {\n DataViewCardSelection,\n FilterFieldConfig,\n RangeFieldConfig,\n RangeValue,\n RowAction,\n} from \"./data-views-types\";\nimport type { DataViewRowDetail } from \"./data-views-row-detail\";\nimport type { DataViewsController } from \"./use-data-views-state\";\n\n/* ── Layout ⇄ view-state mirror ──────────────────────────────────────────── */\n\n/**\n * Mirrors the LIVE layout back into the view state, so saving a view captures\n * the layout the user is actually looking at.\n *\n * A component rather than a callback prop because only something INSIDE the\n * provider can read the layout, and only the controller can write the state.\n * The `stored !== layout` guard is what makes it idempotent: `c` is rebuilt on\n * every render, so an unguarded effect here would patch → re-render → patch.\n *\n * It re-fires when `stored` changes too, which is the case that matters after\n * applying a saved view: `appliedState` REPLACES the state, so a view saved\n * before layouts were captured clears `state.layout`, and the mirror puts the\n * current one back rather than leaving the next save with nothing to store.\n */\nfunction LayoutStateSync<T extends Record<string, unknown>>({\n c,\n}: {\n c: DataViewsController<T>;\n}): null {\n const { layout } = useDataViewsLayout();\n const stored = c.state.layout;\n useEffect(() => {\n if (stored !== layout) c.patch({ layout });\n // `c` is intentionally out of the deps — see the guard above.\n }, [layout, stored]);\n return null;\n}\n\n/* ── Shell (composes toolbar + body + panel) ─────────────────────────────── */\n\n/** The shared filter-surface props consumed by the inline bar, panel, and modal. */\ninterface FilterSurfaceProps<T extends Record<string, unknown>> {\n testIdPrefix: string;\n search: string;\n fields: FilterFieldConfig<T>[];\n rangeFields: RangeFieldConfig<T>[];\n pills: Record<string, string[]>;\n ranges: Record<string, RangeValue>;\n onSearchChange: (value: string) => void;\n onTogglePill: (fieldId: string, value: string, checked: boolean) => void;\n onChangeRange: (fieldId: string, range: RangeValue) => void;\n onClearField: (fieldId: string) => void;\n onClearAll: () => void;\n}\n\n/**\n * Derives the responsive filter state (which surface to show at this width) and\n * the filter-mutation handlers from the controller — pulled out of `GridShell`\n * so the component body stays under the size/complexity budget.\n */\n/** Grouped rather than positional: the list had grown past readability. */\ninterface GridShellFiltersArgs<T extends Record<string, unknown>> {\n c: DataViewsController<T>;\n inlineFilters: boolean;\n fields: FilterFieldConfig<T>[];\n rangeFields: RangeFieldConfig<T>[];\n testIdPrefix: string;\n alwaysShowSearch: boolean;\n /** Is \"Exportar\" on the bar? Half the right cluster's cost when it is not. */\n hasExport: boolean;\n}\n\nfunction useGridShellFilters<T extends Record<string, unknown>>({\n c,\n inlineFilters,\n fields,\n rangeFields,\n testIdPrefix,\n alwaysShowSearch,\n hasExport,\n}: GridShellFiltersArgs<T>): {\n showInline: boolean;\n useModal: boolean;\n inlineVisible: boolean;\n filterProps: FilterSurfaceProps<T>;\n split: OverflowSplit<T>;\n onControlOpenChange: (open: boolean) => void;\n} {\n const { state } = c;\n // How many filter controls are open. A COUNT, not a flag: closing one popover\n // by opening another overlaps, and a boolean would unfreeze mid-handover.\n const [openControls, setOpenControls] = useState(0);\n // ONE measurement for the whole shell: the filter row decides which controls\n // it can keep, and the TOOLBAR needs the same answer to drop its labels.\n // Measuring twice would let the two disagree at the crossover width.\n const split = useFilterOverflow(\n toOverflowFields(fields, rangeFields),\n state.pills,\n c.ranges,\n openControls > 0,\n hasExport,\n );\n // THE BAR RENDERS AT EVERY WIDTH. It used to be swapped for a full-screen\n // filter MODAL below `lg`, which was the responsive strategy before the\n // measured ladder existed — and the two now do the same job, badly together:\n // the modal took the bar away at 1199px, and with it the very degradation\n // (labels off, search collapsed, filters into \"Mais\") that exists to make a\n // narrow bar work. So a 900px window got no bar and no ladder, and the\n // operator lost the search entirely rather than gaining a compact one.\n //\n // The ladder is measured, so it already covers every width the modal did.\n const showInline = inlineFilters;\n const useModal = false;\n const inlineVisible =\n showInline &&\n (alwaysShowSearch || fields.length > 0 || rangeFields.length > 0 || state.search !== \"\");\n const filterProps: FilterSurfaceProps<T> = {\n testIdPrefix,\n search: state.search,\n fields,\n rangeFields,\n pills: state.pills,\n ranges: c.ranges,\n onSearchChange: (value) => c.patch({ search: value }),\n // Updater, never the render's `state` — see {@link DataViewStatePatch}.\n onTogglePill: (fieldId, value, checked) =>\n c.patch(({ pills }) => ({ pills: { ...pills, [fieldId]: togglePillValues(pills[fieldId], value, checked) } })),\n onChangeRange: (fieldId, range) => c.patch({ ranges: { ...c.ranges, [fieldId]: range } }),\n onClearField: (fieldId) => c.patch({ pills: { ...state.pills, [fieldId]: [] } }),\n onClearAll: () => c.patch({ search: \"\", pills: {}, ranges: {} }),\n };\n return {\n showInline,\n useModal,\n inlineVisible,\n filterProps,\n split,\n onControlOpenChange: (open) =>\n setOpenControls((count) => Math.max(0, count + (open ? 1 : -1))),\n };\n}\n\ninterface GridShellProps<T extends Record<string, unknown>> {\n c: DataViewsController<T>;\n rows: T[];\n fields: FilterFieldConfig<T>[];\n rangeFields: RangeFieldConfig<T>[];\n getRowId: (row: T) => string | number;\n testIdPrefix: string;\n dataTestId?: string;\n emptyState?: React.ReactNode;\n toolbarRightSlot?: React.ReactNode;\n rowActions?: RowAction<T>[];\n bulkActions?: (selectedRows: T[], clearSelection: () => void) => React.ReactNode;\n /** A widening control beside the selection count — see `resolveSelectionExtra`. */\n selectionExtra?: SelectionExtraRender<T>;\n /** Opt-in \"Grade\" (cards) layout: renders each row as an entity-supplied card.\n * Omit ⇒ table only (no layout toggle). */\n renderCard?: (row: T, selection: DataViewCardSelection) => React.ReactNode;\n /**\n * Opt-in \"Quadro\" (board) layout. Needs `renderCard` too — the board reuses\n * the entity's card, so a board config without one simply offers no board\n * rather than failing: that is a config gap, not a runtime error.\n */\n board?: BoardConfig<T>;\n /** Opt-in \"Lista\" layout: one full-width, entity-rendered row per record. */\n renderListRow?: (row: T, selection: DataViewCardSelection) => React.ReactNode;\n /** The Lista's shared columns, so its rows line up by construction. */\n listGroup?: ListGroupConfig<T>;\n /** Opt-in expandable rows, drawn by the table layout only. */\n rowDetail?: DataViewRowDetail<T>;\n /** The page-level partition rendered as tabs under the toolbar. */\n scopes?: ScopeConfig[];\n /**\n * The row field the scopes partition by. Compared against the board's\n * `groupBy` so the two are not shown as the same partition twice.\n */\n scopeFieldId?: string;\n /** Per-sort-field value kind, so directions read in the column's own terms. */\n sortKinds?: Record<string, string>;\n /** The saved-view chrome bracketing the Exibir panel. */\n displayView?: DisplayPanelView;\n /** Injected export — the host re-queries; the grid never fetches. */\n exportConfig?: DataViewExport;\n /** Page title in the grid's own header row, above the scopes + toolbar. */\n title?: string;\n /** Primary page actions rendered at the header row's right. */\n headerActions?: React.ReactNode;\n /** Which layout to show first when the user has expressed no preference (default \"table\"). */\n defaultLayout?: DataViewsLayout;\n /** Pin to `defaultLayout`, ignoring the remembered preference (stories/docs). */\n ignoreStoredLayout?: boolean;\n /**\n * Opt into the responsive inline filter UX: a collapsible filter row below the\n * toolbar on wide screens and a modal on narrow ones. When false (default),\n * keep the classic slide-in filter panel opened by the \"Filtros\" button.\n */\n inlineFilters?: boolean;\n /**\n * Keep the inline search box on screen even with no filter fields and no\n * active search. Without it a grid whose only filter IS the search (`fields`\n * empty) can never OFFER one: the row renders only once a search exists, so\n * the operator would have to hand-edit the URL to start one. Default false —\n * every grid that ships filter fields already shows the row.\n */\n alwaysShowSearch?: boolean;\n}\n\n/** The scrollable content region: scope tabs, toolbar, filter bar, body, pager. */\nfunction ShellStack<T extends Record<string, unknown>>({\n props,\n filters,\n}: {\n props: GridShellProps<T>;\n filters: ReturnType<typeof useGridShellFilters<T>>;\n}): React.JSX.Element {\n const copy = useDataViewsCopy();\n const { c, testIdPrefix, dataTestId, scopes = [], emptyState, inlineFilters = false } = props;\n const { showInline, useModal, inlineVisible, filterProps, split, onControlOpenChange } = filters;\n // The grid renders the FILTERED empty state itself — it is the only party\n // that knows a filter is applied. See {@link DataViewsEmpty}.\n const body = (\n <DataViewsEmpty\n filtered={c.activeFilterCount > 0 || c.state.search !== \"\"}\n onClearFilters={() => c.patch({ search: \"\", pills: {}, ranges: {} })}\n emptyState={emptyState}\n testIdPrefix={testIdPrefix}\n />\n );\n return (\n <TableFilter\n copy={copy.tableFilter} open={c.filterOpen} onOpenChange={c.setFilterOpen}\n hasActiveFilters={c.activeFilterCount > 0}\n >\n <Stack spacing={0} data-testid={dataTestId ? `${dataTestId}-container` : undefined}>\n <GridHeaderRow title={props.title} headerActions={props.headerActions} testIdPrefix={testIdPrefix} />\n <ShellToolbar\n c={c}\n rows={props.rows}\n sortKinds={props.sortKinds}\n displayView={props.displayView}\n exportConfig={props.exportConfig}\n filterControls={\n inlineVisible ? (\n <InlineFilterControls\n {...filterProps} split={split} activeFilterCount={c.activeFilterCount}\n onControlOpenChange={onControlOpenChange}\n />\n ) : undefined\n }\n barRef={split.barRef}\n testIdPrefix={testIdPrefix}\n rowActions={props.rowActions}\n bulkActions={props.bulkActions}\n selectionExtra={resolveSelectionExtra(props)}\n toolbarRightSlot={props.toolbarRightSlot}\n compactControls={showInline && split.compactControls}\n counterHidden={showInline && split.counterHidden}\n showInline={showInline}\n />\n <ScopeTabsSlot\n scopes={scopes} scopeFieldId={props.scopeFieldId} board={props.board}\n value={c.scope} onChange={c.setScope} counts={c.scopeCounts}\n testIdPrefix={testIdPrefix}\n />\n <TableFilter.Layout>\n <TableFilter.Main>\n <GridMain\n c={c}\n getRowId={props.getRowId}\n renderCard={props.renderCard}\n renderListRow={props.renderListRow}\n listGroup={props.listGroup}\n board={props.board}\n rowDetail={props.rowDetail}\n dataTestId={dataTestId}\n testIdPrefix={testIdPrefix}\n emptyState={body}\n />\n <DataViewsPagination c={c} testIdPrefix={testIdPrefix} />\n </TableFilter.Main>\n {inlineFilters ? null : <GridFilterPanel {...filterProps} />}\n </TableFilter.Layout>\n {useModal && <FilterDialog open={c.filterOpen} onClose={() => c.setFilterOpen(false)} {...filterProps} />}\n </Stack>\n </TableFilter>\n );\n}\n\nexport function GridShell<T extends Record<string, unknown>>(props: GridShellProps<T>): React.JSX.Element {\n const {\n c,\n fields,\n rangeFields,\n testIdPrefix,\n renderCard,\n renderListRow,\n board,\n defaultLayout,\n ignoreStoredLayout,\n inlineFilters = false,\n alwaysShowSearch = false,\n } = props;\n const filters = useGridShellFilters({\n c,\n inlineFilters,\n fields,\n rangeFields,\n testIdPrefix,\n alwaysShowSearch,\n hasExport: props.exportConfig !== undefined,\n });\n return (\n <DataViewsLayoutProvider\n canUseCards={Boolean(renderCard)}\n canUseList={Boolean(renderListRow)}\n // The board reuses the entity's card, so it needs BOTH — a `board` with no\n // `renderCard` offers no board rather than throwing.\n canUseBoard={Boolean(board && renderCard)}\n defaultLayout={defaultLayout}\n ignoreStoredLayout={ignoreStoredLayout}\n viewLayout={c.state.layout}\n >\n <LayoutStateSync c={c} />\n <ShellStack props={props} filters={filters} />\n </DataViewsLayoutProvider>\n );\n}\n"],"mappings":"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","names":["default"]}
@@ -1,3 +1,7 @@
1
+ import {
2
+ GridBody,
3
+ GridHeader
4
+ } from "./chunk-HTZNB6IV.js";
1
5
  import {
2
6
  DataGridEmpty,
3
7
  DataGridError,
@@ -6,10 +10,6 @@ import {
6
10
  import {
7
11
  useDataGridModel
8
12
  } from "./chunk-DLJGBJZW.js";
9
- import {
10
- GridBody,
11
- GridHeader
12
- } from "./chunk-KZLLTOB2.js";
13
13
 
14
14
  // src/components/data-display/DataGrid/DataGrid.tsx
15
15
  import Paper from "@mui/material/Paper/index.js";
@@ -117,4 +117,4 @@ export {
117
117
  DataGrid,
118
118
  GRID_ONLY_PROPS
119
119
  };
120
- //# sourceMappingURL=chunk-EZ5Z5UFI.js.map
120
+ //# sourceMappingURL=chunk-TTW4MAOJ.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  Chart
3
- } from "./chunk-EMNGIYH6.js";
3
+ } from "./chunk-7TZ6OC5T.js";
4
4
  import {
5
5
  CHART_SEMANTIC_COLORS,
6
6
  specToChartProps
7
- } from "./chunk-GOWBYHYW.js";
7
+ } from "./chunk-R6SBP5M5.js";
8
8
  import {
9
9
  accentFor
10
10
  } from "./chunk-V5IOLAIS.js";
@@ -46,4 +46,4 @@ var SpecChart = ({
46
46
  export {
47
47
  SpecChart
48
48
  };
49
- //# sourceMappingURL=chunk-S7HRED4D.js.map
49
+ //# sourceMappingURL=chunk-VLHGBFR6.js.map
@@ -1,3 +1,8 @@
1
+ import {
2
+ DiscloseSlot,
3
+ DragSlot,
4
+ SelectSlot
5
+ } from "./chunk-NUB4T3RQ.js";
1
6
  import {
2
7
  actionProps,
3
8
  metaShape,
@@ -13,11 +18,6 @@ import {
13
18
  ListCardMeta,
14
19
  ListCardTail
15
20
  } from "./chunk-IQ7WZ3RN.js";
16
- import {
17
- DiscloseSlot,
18
- DragSlot,
19
- SelectSlot
20
- } from "./chunk-NUB4T3RQ.js";
21
21
  import {
22
22
  DropIndicator
23
23
  } from "./chunk-JCJGJX7V.js";
@@ -179,4 +179,4 @@ function BaseListCard(props) {
179
179
  export {
180
180
  BaseListCard
181
181
  };
182
- //# sourceMappingURL=chunk-MC2WCZK5.js.map
182
+ //# sourceMappingURL=chunk-XBZ43VIV.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-BEWD734I.js";
4
4
  import {
5
5
  PanelRangeField
6
- } from "./chunk-DFLTUI7W.js";
6
+ } from "./chunk-QZBUGUOY.js";
7
7
  import {
8
8
  useDataViewsCopy
9
9
  } from "./chunk-KHG57NAE.js";
@@ -154,4 +154,4 @@ export {
154
154
  GridFilterPanel,
155
155
  FilterDialog
156
156
  };
157
- //# sourceMappingURL=chunk-JLBHH2JU.js.map
157
+ //# sourceMappingURL=chunk-XOCLWQON.js.map
@@ -2,11 +2,11 @@ import "../chunk-UDQSIRAP.js";
2
2
  import {
3
3
  Avatar,
4
4
  AvatarGroup
5
- } from "../chunk-SOJQEJAE.js";
5
+ } from "../chunk-THOPGHTY.js";
6
6
  import "../chunk-3ZVUNSFF.js";
7
- import "../chunk-35UG2QDB.js";
8
- import "../chunk-XRMZMBE3.js";
7
+ import "../chunk-HS2OJI6L.js";
9
8
  import "../chunk-FAITHWIO.js";
9
+ import "../chunk-XRMZMBE3.js";
10
10
  import "../chunk-SONWG2RT.js";
11
11
  import "../chunk-AG66JBNH.js";
12
12
  import "../chunk-2BYKTBDL.js";
@@ -1,3 +1,6 @@
1
+ import {
2
+ CardKebab
3
+ } from "../chunk-4OSGKO7E.js";
1
4
  import {
2
5
  useRowConfirm
3
6
  } from "../chunk-3T2I6BYA.js";
@@ -18,9 +21,6 @@ import {
18
21
  CardActionsProvider,
19
22
  useCardActions
20
23
  } from "../chunk-C5EFVSBN.js";
21
- import {
22
- CardKebab
23
- } from "../chunk-4OSGKO7E.js";
24
24
  import "../chunk-WVML3ENZ.js";
25
25
  import "../chunk-IDHZHOZW.js";
26
26
  import "../chunk-XCBQXSTR.js";
@@ -1,7 +1,8 @@
1
1
  import "../chunk-62FET2BM.js";
2
2
  import {
3
3
  Carousel
4
- } from "../chunk-Y6KPZQPI.js";
4
+ } from "../chunk-SOCKK67R.js";
5
+ import "../chunk-RUIV5TVA.js";
5
6
  import "../chunk-R6SSXEK2.js";
6
7
  import "../chunk-RXVPUW7V.js";
7
8
  import "../chunk-WIXUMFU7.js";
@@ -10,7 +11,6 @@ import {
10
11
  CarouselIndicators,
11
12
  CarouselThumbnails
12
13
  } from "../chunk-624TFFLJ.js";
13
- import "../chunk-RUIV5TVA.js";
14
14
  import "../chunk-HPK33ACY.js";
15
15
  import "../chunk-V5IOLAIS.js";
16
16
  import "../chunk-7ZPUN7TV.js";
@@ -1,14 +1,11 @@
1
1
  import "../chunk-5KLSLD72.js";
2
2
  import {
3
3
  SpecChart
4
- } from "../chunk-S7HRED4D.js";
4
+ } from "../chunk-VLHGBFR6.js";
5
5
  import {
6
6
  Chart
7
- } from "../chunk-EMNGIYH6.js";
8
- import "../chunk-WZUNBSS7.js";
9
- import "../chunk-HKV4MQ2W.js";
10
- import "../chunk-XXDXW6TX.js";
11
- import "../chunk-4V532JF6.js";
7
+ } from "../chunk-7TZ6OC5T.js";
8
+ import "../chunk-DVUPIVI2.js";
12
9
  import {
13
10
  ChartContainer,
14
11
  ChartLegend,
@@ -16,21 +13,24 @@ import {
16
13
  ChartTooltip,
17
14
  ChartTooltipContent
18
15
  } from "../chunk-M5T3COS2.js";
16
+ import "../chunk-HKV4MQ2W.js";
17
+ import "../chunk-XXDXW6TX.js";
18
+ import "../chunk-4V532JF6.js";
19
19
  import {
20
20
  CHART_SEMANTIC_COLORS,
21
21
  ChartSpecError,
22
22
  parseChartSpec,
23
23
  specToChartProps
24
- } from "../chunk-GOWBYHYW.js";
25
- import {
26
- chartValueFormatter,
27
- formatChartValue
28
- } from "../chunk-QVWNK4JO.js";
24
+ } from "../chunk-R6SBP5M5.js";
29
25
  import {
30
26
  getChartSpecRenderer,
31
27
  getRegisteredChartSpecTypes,
32
28
  registerChartSpecRenderer
33
29
  } from "../chunk-WKUA6P3W.js";
30
+ import {
31
+ chartValueFormatter,
32
+ formatChartValue
33
+ } from "../chunk-QVWNK4JO.js";
34
34
  import "../chunk-V5IOLAIS.js";
35
35
  import "../chunk-7ZPUN7TV.js";
36
36
  import "../chunk-PT6TCWIW.js";
@@ -1,11 +1,11 @@
1
1
  import "../chunk-L5CPOEDP.js";
2
2
  import {
3
3
  DataGrid
4
- } from "../chunk-EZ5Z5UFI.js";
4
+ } from "../chunk-TTW4MAOJ.js";
5
+ import "../chunk-HTZNB6IV.js";
5
6
  import "../chunk-5E3XZAED.js";
6
7
  import "../chunk-DLJGBJZW.js";
7
- import "../chunk-KZLLTOB2.js";
8
- import "../chunk-E5LWJDI3.js";
8
+ import "../chunk-AROBXRC5.js";
9
9
  import "../chunk-G3E66C6J.js";
10
10
  import "../chunk-PZ5AY32C.js";
11
11
  export {
@@ -3,58 +3,59 @@ import {
3
3
  } from "../chunk-VRKS5K4N.js";
4
4
  import {
5
5
  DataViewsTableBase
6
- } from "../chunk-LQRJCEFO.js";
7
- import "../chunk-MNSW33DU.js";
6
+ } from "../chunk-DVE53B2L.js";
8
7
  import {
9
8
  DataViewsGrid
10
- } from "../chunk-KCAGCDCQ.js";
9
+ } from "../chunk-EYC6ERJJ.js";
10
+ import "../chunk-MNSW33DU.js";
11
11
  import {
12
12
  BaseListCard
13
- } from "../chunk-MC2WCZK5.js";
13
+ } from "../chunk-XBZ43VIV.js";
14
+ import "../chunk-NUB4T3RQ.js";
14
15
  import "../chunk-5UC2RNOY.js";
15
16
  import "../chunk-2JCRNWHE.js";
16
17
  import "../chunk-FGKKLHKY.js";
17
18
  import "../chunk-IQ7WZ3RN.js";
18
- import "../chunk-NUB4T3RQ.js";
19
19
  import {
20
20
  DragContainerProvider,
21
21
  DropIndicator,
22
22
  useDragItem
23
23
  } from "../chunk-JCJGJX7V.js";
24
24
  import "../chunk-ZOLAYP2D.js";
25
- import "../chunk-6R567DH4.js";
25
+ import "../chunk-TSFFZ3AH.js";
26
26
  import "../chunk-OJCK5RNJ.js";
27
+ import "../chunk-NY2Y2SHA.js";
28
+ import "../chunk-5WNQJ5KS.js";
27
29
  import "../chunk-UC6A6ASM.js";
28
- import "../chunk-FJGHP2QW.js";
30
+ import "../chunk-QGAYEBMU.js";
29
31
  import {
30
32
  DataViewsBoard
31
33
  } from "../chunk-VKH7AENA.js";
32
- import "../chunk-JLBHH2JU.js";
34
+ import "../chunk-XOCLWQON.js";
35
+ import "../chunk-BEWD734I.js";
33
36
  import "../chunk-HP2ODXNA.js";
34
37
  import "../chunk-TQ6FPOPD.js";
35
38
  import "../chunk-IAGOUTI6.js";
36
- import "../chunk-DACURY25.js";
37
- import "../chunk-5WNQJ5KS.js";
38
- import "../chunk-BEWD734I.js";
39
- import "../chunk-FJQ5CH4Q.js";
40
- import "../chunk-EZMCWRXO.js";
39
+ import "../chunk-J2K65BQQ.js";
40
+ import "../chunk-MHSTG7FF.js";
41
41
  import "../chunk-QSKJLMNS.js";
42
- import "../chunk-DFLTUI7W.js";
42
+ import "../chunk-O5UGAL2V.js";
43
+ import "../chunk-QZBUGUOY.js";
44
+ import "../chunk-F4RR4666.js";
43
45
  import "../chunk-FV36LFPX.js";
44
46
  import "../chunk-GCZJH4XL.js";
45
- import "../chunk-F4RR4666.js";
46
47
  import "../chunk-CBOB5AV6.js";
47
48
  import "../chunk-LSJY4LWZ.js";
48
49
  import "../chunk-YFY3YVV6.js";
49
50
  import "../chunk-FR6AJSMT.js";
50
51
  import "../chunk-5M4TYFR3.js";
51
- import "../chunk-BBYCZZBH.js";
52
- import "../chunk-SUWIHCD6.js";
52
+ import "../chunk-MRMNVGNX.js";
53
+ import "../chunk-PVIAHB7D.js";
54
+ import "../chunk-O42ZA3TW.js";
53
55
  import "../chunk-EMAX7RPN.js";
54
56
  import "../chunk-OLQDB346.js";
55
57
  import "../chunk-PJTSGHTY.js";
56
58
  import "../chunk-SNR537TI.js";
57
- import "../chunk-O42ZA3TW.js";
58
59
  import "../chunk-KX75HM5U.js";
59
60
  import "../chunk-BYMWW65P.js";
60
61
  import "../chunk-HZVFAGLZ.js";
@@ -176,11 +177,11 @@ import "../chunk-SMCLG2RA.js";
176
177
  import "../chunk-G3QKH23Y.js";
177
178
  import "../chunk-JZRSHDNY.js";
178
179
  import "../chunk-L5CPOEDP.js";
179
- import "../chunk-EZ5Z5UFI.js";
180
+ import "../chunk-TTW4MAOJ.js";
181
+ import "../chunk-HTZNB6IV.js";
180
182
  import "../chunk-5E3XZAED.js";
181
183
  import "../chunk-DLJGBJZW.js";
182
- import "../chunk-KZLLTOB2.js";
183
- import "../chunk-E5LWJDI3.js";
184
+ import "../chunk-AROBXRC5.js";
184
185
  import "../chunk-G3E66C6J.js";
185
186
  import "../chunk-SNCSGLJ6.js";
186
187
  import "../chunk-VVXA7T2M.js";
@@ -1 +1 @@
1
- {"version":3,"file":"DataGrid.cells.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataGrid/DataGrid.cells.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAc5E,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAChE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC5D,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,MAAM,GACP,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA6CxC;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC9D,GAAG,EAAE,CAAC,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAClD,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,GAAG,gBAAgB,CAAC,CAAC;CACjE;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC1D,GAAG,EACH,QAAQ,EACR,KAAK,EACL,MAAM,EACN,SAAS,EACT,OAAO,EACP,KAAK,GACN,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAmCtC;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC7D,GAAG,EAAE,CAAC,CAAC;IACP,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IACxB,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;CACzB;AAsCD,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvD,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GACxB,KAAK,CAAC,GAAG,CAAC,OAAO,CAuCnB"}
1
+ {"version":3,"file":"DataGrid.cells.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataGrid/DataGrid.cells.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAc5E,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAChE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC5D,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,MAAM,GACP,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA6CxC;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC9D,GAAG,EAAE,CAAC,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAClD,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,GAAG,gBAAgB,CAAC,CAAC;CACjE;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC1D,GAAG,EACH,QAAQ,EACR,KAAK,EACL,MAAM,EACN,SAAS,EACT,OAAO,EACP,KAAK,GACN,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAmCtC;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC7D,GAAG,EAAE,CAAC,CAAC;IACP,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IACxB,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;CACzB;AAoDD,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvD,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GACxB,KAAK,CAAC,GAAG,CAAC,OAAO,CAuCnB"}
@@ -73,6 +73,16 @@ export interface GridRowExpansion<T = Record<string, unknown>> {
73
73
  defaultExpandedRowIds?: Array<string | number>;
74
74
  /** Row id equality uses `getRowId` */
75
75
  onChangeExpanded?: (ids: Array<string | number>) => void;
76
+ /**
77
+ * Which rows HAVE a detail. Omitted, every row does. A row it refuses keeps
78
+ * the (empty) chevron cell, so the columns still line up, but offers no
79
+ * toggle — a chevron that opens onto nothing is a promise the row cannot keep.
80
+ */
81
+ isRowExpandable?: (row: T) => boolean;
82
+ /** The chevron's accessible name while the row is collapsed. Default "Expand row". */
83
+ expandLabel?: string;
84
+ /** The chevron's accessible name while the row is expanded. Default "Collapse row". */
85
+ collapseLabel?: string;
76
86
  }
77
87
  export interface GridSelection {
78
88
  mode?: GridSelectionMode;
@@ -1 +1 @@
1
- {"version":3,"file":"DataGrid.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataGrid/DataGrid.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataGrid.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataGrid/DataGrid.types.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import type { DataViewExport } from "./data-views-export";
7
7
  import type { ScopeConfig } from "./data-views-scopes";
8
8
  import type { DataViewCardSelection } from "./data-views-types";
9
9
  import { type DataViewColumn, type DataViewsLayout, type DataViewServer, type DataViewState, type DataViewSyncState, type FilterFieldConfig, type RangeFieldConfig, type RowAction } from "./data-views-types";
10
+ import type { DataViewRowDetail } from "./data-views-row-detail";
10
11
  interface DataViewsGridProps<T extends Record<string, unknown>> {
11
12
  rows: T[];
12
13
  columns: DataViewColumn<T>[];
@@ -99,6 +100,11 @@ interface DataViewsGridProps<T extends Record<string, unknown>> {
99
100
  * `rowActions`/`bulkActions` still drive the multi-row bulk menu.
100
101
  */
101
102
  renderRowMenu?: (row: T) => React.ReactNode;
103
+ /**
104
+ * Opt-in expandable rows (table layout only): a chevron in a leading column
105
+ * opens `render(row)` under the row. See {@link DataViewRowDetail}.
106
+ */
107
+ rowDetail?: DataViewRowDetail<T>;
102
108
  /**
103
109
  * Opt-in "Grade" (cards) layout. When provided, a Grade/Tabela toggle appears in
104
110
  * the toolbar and the cards body renders each visible row via this function
@@ -1 +1 @@
1
- {"version":3,"file":"DataViewsGrid.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/DataViewsGrid.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACf,MAAM,oBAAoB,CAAC;AAG5B,UAAU,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC5D,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7B,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/B,4EAA4E;IAC5E,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IACpC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,CAAC;IACtC,yEAAyE;IACzE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAC9B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4FAA4F;IAC5F,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B;;;;OAIG;IACH,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,8EAA8E;IAC9E,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC/C;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IAC1C,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC;;;;OAIG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC;;;OAGG;IACH,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACnC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC;;;;OAIG;IACH,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IAChD;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,IAAI,KAAK,KAAK,CAAC,SAAS,CAAC;IACjF;;;;;;;;;OASG;IACH,cAAc,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACzC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IAC5C;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,qBAAqB,KAAK,KAAK,CAAC,SAAS,CAAC;IAC3E;;;;;OAKG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACvB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,qBAAqB,KAAK,KAAK,CAAC,SAAS,CAAC;IAC9E;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAC/B;;;;OAIG;IACH,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,8FAA8F;IAC9F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8FAA8F;IAC9F,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gGAAgG;IAChG,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAuBD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7D,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC3B,KAAK,CAAC,GAAG,CAAC,OAAO,CAQnB"}
1
+ {"version":3,"file":"DataViewsGrid.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/DataViews/DataViewsGrid.tsx"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import type { ListGroupConfig } from "./list-card-rails";
4
4
  import type { BoardConfig } from "./DataViewsBoard";
5
5
  import type { DataViewExport } from "./data-views-export";
6
6
  import type { ScopeConfig } from "./data-views-scopes";
7
+ import type { DataViewRowDetail } from "./data-views-row-detail";
7
8
  import { type DataViewColumn, type DataViewsLayout, type DataViewServer, type DataViewState, type DataViewPersistence, type DataViewRouter, type FilterFieldConfig, type RangeFieldConfig, type DataViewCardSelection, type RowAction, type SavedViewSummary } from "./data-views-types";
8
9
  export interface DataViewsTableBaseProps<T extends Record<string, unknown>> {
9
10
  /** The applied-view id read from the URL (`?view=`) on load, or null. */
@@ -54,6 +55,8 @@ export interface DataViewsTableBaseProps<T extends Record<string, unknown>> {
54
55
  selectionExtra?: SelectionExtraRender<T>;
55
56
  /** Bespoke per-row menu (an entity's self-contained 3-dots menu) instead of the auto kebab. */
56
57
  renderRowMenu?: (row: T) => React.ReactNode;
58
+ /** Opt-in expandable rows (table layout only) — see {@link DataViewRowDetail}. */
59
+ rowDetail?: DataViewRowDetail<T>;
57
60
  /** Opt-in "Grade" (cards) layout — a card renderer per row; adds a Grade/Tabela toggle. */
58
61
  renderCard?: (row: T, selection: DataViewCardSelection) => React.ReactNode;
59
62
  /** Opt-in "Quadro" (board) layout — the loaded page as columns of one field. Needs `renderCard`. */