@rio-cloud/rio-uikit 2.3.0-beta.2 → 2.3.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 (160) hide show
  1. package/Marker.js +9 -5
  2. package/Table.js +10 -9
  3. package/TableNext.js +10 -9
  4. package/TableRowActionsDropdown.d.ts +2 -0
  5. package/TableRowActionsDropdown.js +5 -0
  6. package/TableRowActionsDropdown.js.map +1 -0
  7. package/components/analyticsAnalysisOverlay/AnalyticsAnalysisBanner.d.ts +38 -3
  8. package/components/analyticsAnalysisOverlay/AnalyticsAnalysisBanner.js +104 -109
  9. package/components/analyticsAnalysisOverlay/AnalyticsAnalysisBanner.js.map +1 -1
  10. package/components/analyticsAnalysisOverlay/AnalyticsAnalysisOverlay.d.ts +24 -5
  11. package/components/analyticsAnalysisOverlay/AnalyticsAnalysisOverlay.js +60 -56
  12. package/components/analyticsAnalysisOverlay/AnalyticsAnalysisOverlay.js.map +1 -1
  13. package/components/datepicker/DayPicker.js +72 -70
  14. package/components/datepicker/DayPicker.js.map +1 -1
  15. package/components/datepicker/DayPickerDropdown.d.ts +1 -0
  16. package/components/datepicker/DayPickerDropdown.js +61 -48
  17. package/components/datepicker/DayPickerDropdown.js.map +1 -1
  18. package/components/datepicker/useStackedDayPickerCalendars.js +26 -26
  19. package/components/datepicker/useStackedDayPickerCalendars.js.map +1 -1
  20. package/components/dropdown/ButtonDropdown.d.ts +4 -0
  21. package/components/dropdown/ButtonDropdown.js +82 -80
  22. package/components/dropdown/ButtonDropdown.js.map +1 -1
  23. package/components/listMenu/ListMenu.d.ts +8 -0
  24. package/components/listMenu/ListMenu.js +74 -66
  25. package/components/listMenu/ListMenu.js.map +1 -1
  26. package/components/map/components/Map.js +207 -156
  27. package/components/map/components/Map.js.map +1 -1
  28. package/components/map/components/MapContext.d.ts +3 -0
  29. package/components/map/components/MapContext.js +9 -6
  30. package/components/map/components/MapContext.js.map +1 -1
  31. package/components/map/components/features/MapZoom.js +19 -19
  32. package/components/map/components/features/MapZoom.js.map +1 -1
  33. package/components/map/components/features/Route.d.ts +65 -1
  34. package/components/map/components/features/Route.js +184 -98
  35. package/components/map/components/features/Route.js.map +1 -1
  36. package/components/map/components/features/basics/Marker.d.ts +21 -1
  37. package/components/map/components/features/basics/Marker.js +99 -40
  38. package/components/map/components/features/basics/Marker.js.map +1 -1
  39. package/components/map/components/features/basics/Polygon.d.ts +24 -1
  40. package/components/map/components/features/basics/Polygon.js +72 -19
  41. package/components/map/components/features/basics/Polygon.js.map +1 -1
  42. package/components/map/components/features/basics/Polyline.d.ts +29 -0
  43. package/components/map/components/features/basics/Polyline.js +69 -39
  44. package/components/map/components/features/basics/Polyline.js.map +1 -1
  45. package/components/map/components/features/layers/MarkerLayer.js +8 -8
  46. package/components/map/components/features/layers/MarkerLayer.js.map +1 -1
  47. package/components/map/components/features/layers/clustering/SimpleClusterLayer.js +13 -6
  48. package/components/map/components/features/layers/clustering/SimpleClusterLayer.js.map +1 -1
  49. package/components/map/utils/clustering.d.ts +1 -1
  50. package/components/map/utils/clustering.js +30 -30
  51. package/components/map/utils/clustering.js.map +1 -1
  52. package/components/map/utils/mapTypes.d.ts +141 -0
  53. package/components/map/utils/mapTypes.js.map +1 -1
  54. package/components/map/utils/mapUtils.d.ts +2 -0
  55. package/components/map/utils/mapUtils.js +4 -0
  56. package/components/map/utils/mapUtils.js.map +1 -1
  57. package/components/mapMarker/ClusterMapMarker.d.ts +2 -0
  58. package/components/mapMarker/ClusterMapMarker.js.map +1 -1
  59. package/components/mapMarker/SingleMapMarker.d.ts +2 -0
  60. package/components/mapMarker/SingleMapMarker.js.map +1 -1
  61. package/components/selects/ClearButton.js +9 -7
  62. package/components/selects/ClearButton.js.map +1 -1
  63. package/components/table/Table.d.ts +3 -1
  64. package/components/table/Table.js +239 -216
  65. package/components/table/Table.js.map +1 -1
  66. package/components/table/Table.types.d.ts +62 -4
  67. package/components/table/TableColumn.d.ts +8 -1
  68. package/components/table/TableColumn.js +66 -64
  69. package/components/table/TableColumn.js.map +1 -1
  70. package/components/table/TableExpandedRow.d.ts +4 -0
  71. package/components/table/TableExpandedRow.js +70 -67
  72. package/components/table/TableExpandedRow.js.map +1 -1
  73. package/components/table/TableGroupRow.d.ts +3 -1
  74. package/components/table/TableGroupRow.js +15 -14
  75. package/components/table/TableGroupRow.js.map +1 -1
  76. package/components/table/TableHeader.d.ts +9 -0
  77. package/components/table/TableHeader.js +110 -81
  78. package/components/table/TableHeader.js.map +1 -1
  79. package/components/table/TableHeaderColumn.d.ts +11 -1
  80. package/components/table/TableHeaderColumn.js +63 -58
  81. package/components/table/TableHeaderColumn.js.map +1 -1
  82. package/components/table/TableRow.d.ts +12 -0
  83. package/components/table/TableRow.js +78 -74
  84. package/components/table/TableRow.js.map +1 -1
  85. package/components/table/TableRowActionsDropdown.d.ts +11 -0
  86. package/components/table/TableRowActionsDropdown.js +22 -0
  87. package/components/table/TableRowActionsDropdown.js.map +1 -0
  88. package/components/table/TableStickyRowButton.d.ts +25 -0
  89. package/components/table/TableStickyRowButton.js +32 -0
  90. package/components/table/TableStickyRowButton.js.map +1 -0
  91. package/components/table/TableToolbar.d.ts +24 -3
  92. package/components/table/TableToolbar.js +78 -37
  93. package/components/table/TableToolbar.js.map +1 -1
  94. package/components/table/TableViewToggles.js +5 -5
  95. package/components/table/TableViewToggles.js.map +1 -1
  96. package/components/table/context/TableInteractionContext.d.ts +3 -0
  97. package/components/table/context/TableInteractionContext.js.map +1 -1
  98. package/components/table/context/TableLayoutContext.d.ts +1 -0
  99. package/components/table/context/TableLayoutContext.js.map +1 -1
  100. package/components/table/context/TableRenderContext.d.ts +1 -0
  101. package/components/table/context/TableRenderContext.js.map +1 -1
  102. package/components/table/layout/useHorizontalSectionSync.d.ts +2 -1
  103. package/components/table/layout/useHorizontalSectionSync.js +32 -31
  104. package/components/table/layout/useHorizontalSectionSync.js.map +1 -1
  105. package/components/table/layout/useMeasuredColumnMaxWidths.js +52 -54
  106. package/components/table/layout/useMeasuredColumnMaxWidths.js.map +1 -1
  107. package/components/table/layout/useTableLayout.d.ts +6 -2
  108. package/components/table/layout/useTableLayout.js +61 -48
  109. package/components/table/layout/useTableLayout.js.map +1 -1
  110. package/components/table/layout/useTableVirtualization.js +51 -56
  111. package/components/table/layout/useTableVirtualization.js.map +1 -1
  112. package/components/table/model/resolveResponsiveViewType.d.ts +2 -0
  113. package/components/table/model/resolveResponsiveViewType.js +27 -0
  114. package/components/table/model/resolveResponsiveViewType.js.map +1 -0
  115. package/components/table/render/header/TableDraggableHeaderCell.js +38 -36
  116. package/components/table/render/header/TableDraggableHeaderCell.js.map +1 -1
  117. package/components/table/render/header/TableHeader.types.d.ts +2 -0
  118. package/components/table/render/header/TableHeaderCellContent.js +16 -16
  119. package/components/table/render/header/TableHeaderCellContent.js.map +1 -1
  120. package/components/table/render/header/TableHeaderSelectionCell.d.ts +1 -0
  121. package/components/table/render/header/TableHeaderSelectionCell.js +13 -12
  122. package/components/table/render/header/TableHeaderSelectionCell.js.map +1 -1
  123. package/components/table/render/header/TableStaticHeaderCell.js +31 -29
  124. package/components/table/render/header/TableStaticHeaderCell.js.map +1 -1
  125. package/components/table/render/header/resolveHeaderCellClassName.d.ts +1 -0
  126. package/components/table/render/header/resolveHeaderCellClassName.js +10 -9
  127. package/components/table/render/header/resolveHeaderCellClassName.js.map +1 -1
  128. package/components/table/runtime/useResolvedRenderColumns.d.ts +4 -4
  129. package/components/table/runtime/useResolvedRenderColumns.js +13 -13
  130. package/components/table/runtime/useResolvedRenderColumns.js.map +1 -1
  131. package/components/table/runtime/useResolvedRenderHeader.d.ts +1 -1
  132. package/components/table/runtime/useResolvedRenderHeader.js.map +1 -1
  133. package/components/table/runtime/useResponsiveResolvedViewType.d.ts +23 -0
  134. package/components/table/runtime/useResponsiveResolvedViewType.js +22 -0
  135. package/components/table/runtime/useResponsiveResolvedViewType.js.map +1 -0
  136. package/components/table/selection/useInternalTableSelectionState.d.ts +2 -0
  137. package/components/table/selection/useInternalTableSelectionState.js +27 -17
  138. package/components/table/selection/useInternalTableSelectionState.js.map +1 -1
  139. package/components/table/selection/useTableSelection.d.ts +5 -1
  140. package/components/table/selection/useTableSelection.js +37 -26
  141. package/components/table/selection/useTableSelection.js.map +1 -1
  142. package/components/table/shared/parsePixelSize.d.ts +2 -0
  143. package/components/table/shared/parsePixelSize.js +13 -0
  144. package/components/table/shared/parsePixelSize.js.map +1 -0
  145. package/hooks/useDraggableElement.d.ts +27 -5
  146. package/hooks/useDraggableElement.js +100 -23
  147. package/hooks/useDraggableElement.js.map +1 -1
  148. package/hooks/usePopperDropdown.d.ts +1 -0
  149. package/hooks/usePopperDropdown.js +15 -12
  150. package/hooks/usePopperDropdown.js.map +1 -1
  151. package/hooks/useResizeObserver.d.ts +25 -6
  152. package/hooks/useResizeObserver.js +20 -18
  153. package/hooks/useResizeObserver.js.map +1 -1
  154. package/package.json +10 -10
  155. package/utils/analytics/createAnalyticsOverlayTooltip.js.map +1 -1
  156. package/utils/init/initConfig.js +5 -5
  157. package/utils/init/initConfig.js.map +1 -1
  158. package/version.d.ts +1 -1
  159. package/version.js +2 -2
  160. package/version.js.map +1 -1
@@ -1,81 +1,86 @@
1
- import { jsx as i } from "react/jsx-runtime";
2
- import { useId as j } from "react";
3
- import E from "../../utils/classNames.js";
4
- import M from "./render/header/TableDraggableHeaderCell.js";
5
- import V from "./render/header/TableStaticHeaderCell.js";
6
- import { useOptionalTableInteractionContext as q } from "./context/TableInteractionContext.js";
7
- import { useOptionalTableLayoutContext as B } from "./context/TableLayoutContext.js";
8
- import { useOptionalTableRenderConfigContext as F } from "./context/TableRenderConfigContext.js";
9
- import { useOptionalTableSection as G, useTableHeaderRowContext as J } from "./context/TableStructureContext.js";
10
- import { useOptionalTableRenderContext as Q } from "./context/TableRenderContext.js";
11
- const le = (m) => {
1
+ import { jsx as c } from "react/jsx-runtime";
2
+ import { useId as j, useRef as E } from "react";
3
+ import V from "../../utils/classNames.js";
4
+ import { isProd as q } from "../../utils/init/initConfig.js";
5
+ import B from "./render/header/TableDraggableHeaderCell.js";
6
+ import F from "./render/header/TableStaticHeaderCell.js";
7
+ import { useOptionalTableInteractionContext as G } from "./context/TableInteractionContext.js";
8
+ import { useOptionalTableLayoutContext as J } from "./context/TableLayoutContext.js";
9
+ import { useOptionalTableRenderConfigContext as Q } from "./context/TableRenderConfigContext.js";
10
+ import { useOptionalTableSection as U, useTableHeaderRowContext as X } from "./context/TableStructureContext.js";
11
+ import { useOptionalTableRenderContext as Y } from "./context/TableRenderContext.js";
12
+ const ie = (d) => {
12
13
  const {
13
- children: u,
14
- className: c,
15
- colSpan: C = 1,
16
- columnKey: d,
14
+ children: C,
15
+ className: h,
16
+ colSpan: a = 1,
17
+ columnKey: r,
17
18
  draggable: b,
18
- filter: h,
19
+ filter: f,
19
20
  headerClassName: p,
20
- hideLabel: f,
21
- hideOnMobile: g,
22
- horizontalAlign: R,
23
- icon: y,
24
- label: S,
25
- maxResizeWidth: x,
21
+ hideLabel: g,
22
+ hideOnMobile: R,
23
+ horizontalAlign: y,
24
+ icon: S,
25
+ label: x,
26
+ maxResizeWidth: w,
26
27
  mobileLabel: z,
27
- minResizeWidth: w,
28
+ minResizeWidth: K,
28
29
  resizeable: T,
29
- rowSpan: K = 1,
30
+ rowSpan: H = 1,
30
31
  sortable: O,
31
- verticalAlign: L,
32
- width: D,
33
- ...H
34
- } = m, n = Q(), r = F(), t = q(), o = B(), N = G(), k = J(), a = j();
35
- if (!n || !r || !t || !o || N !== "header")
32
+ verticalAlign: k,
33
+ width: L,
34
+ ...W
35
+ } = d, t = Y(), s = Q(), n = G(), o = J(), v = U(), D = X(), i = j(), u = E(!1);
36
+ if (!t || !s || !n || !o || v !== "header")
36
37
  return null;
37
- const A = k?.row ?? 1;
38
- if (n.renderDraft.headerColumns.push({
39
- id: a,
40
- columnKey: d,
41
- label: S ?? u ?? "",
42
- icon: y,
43
- filter: h,
44
- hideLabel: f,
45
- width: D,
38
+ !q && a === 1 && !r && !u.current && (console.warn(
39
+ "TableHeaderColumn: Header cells for a single data column with colSpan=1 should provide a columnKey. Without it, the table cannot derive a stable data-column layout."
40
+ ), u.current = !0);
41
+ const N = D?.row ?? 1;
42
+ if (t.renderDraft.headerColumns.push({
43
+ id: i,
44
+ columnKey: r,
45
+ label: x ?? C ?? "",
46
+ icon: S,
47
+ filter: f,
48
+ hideLabel: g,
49
+ width: L,
46
50
  mobileLabel: z,
47
- horizontalAlign: R,
48
- verticalAlign: L,
49
- headerClassName: E(c, p),
50
- hideOnMobile: g,
51
+ horizontalAlign: y,
52
+ verticalAlign: k,
53
+ headerClassName: V(h, p),
54
+ hideOnMobile: R,
51
55
  sortable: O,
52
56
  draggable: b,
53
57
  resizeable: T,
54
- minResizeWidth: w,
55
- maxResizeWidth: x,
56
- row: A,
57
- colSpan: C,
58
- rowSpan: K
59
- }), !r.isTableView)
58
+ minResizeWidth: K,
59
+ maxResizeWidth: w,
60
+ row: N,
61
+ colSpan: a,
62
+ rowSpan: H
63
+ }), !s.isTableView)
60
64
  return null;
61
- const l = n.header, e = l?.columns.find((P) => String(P.key) === a);
65
+ const l = t.header, e = l?.columns.find((M) => String(M.key) === i);
62
66
  if (!l || !e)
63
67
  return null;
64
- const I = !!e.columnKey && e.colSpan === 1 && e.columnKey !== o.lastResizableColumnKey && e.resizeable === !0 && !!o.onColumnResizeStart, W = !!e.columnKey && e.colSpan === 1 && (o.draggableColumnKeys?.length ?? 0) > 1 && e.draggable === !0 && !!o.onColumnDragEnd, v = !!e.columnKey && o.resettableColumnKeys?.has(e.columnKey), s = {
68
+ const A = !!e.columnKey && e.colSpan === 1 && e.columnKey !== o.lastResizableColumnKey && e.resizeable === !0 && !!o.onColumnResizeStart, I = !!e.columnKey && e.colSpan === 1 && (o.draggableColumnKeys?.length ?? 0) > 1 && e.draggable === !0 && !!o.onColumnDragEnd, P = !!e.columnKey && o.resettableColumnKeys?.has(e.columnKey), m = {
65
69
  column: e,
66
70
  header: l,
67
- htmlAttributes: H,
68
- hasResettableWidth: v,
69
- isResizable: I,
71
+ htmlAttributes: W,
72
+ hasResettableWidth: P,
73
+ isResizable: A,
70
74
  onColumnResizeReset: o.onColumnResizeReset,
71
75
  onColumnResizeStart: o.onColumnResizeStart,
72
- onSortChange: t.onSortChange,
73
- showSelectionColumn: t.showSelectionColumn,
74
- stickyLeftColumnCount: o.stickyLeftColumnCount
76
+ onSortChange: n.onSortChange,
77
+ showSelectionColumn: n.showSelectionColumn,
78
+ stickyLeftColumnCount: o.stickyLeftColumnCount,
79
+ stickyRightColumnCount: o.stickyRightColumnCount
75
80
  };
76
- return W ? /* @__PURE__ */ i(M, { ...s }) : /* @__PURE__ */ i(V, { ...s });
81
+ return I ? /* @__PURE__ */ c(B, { ...m }) : /* @__PURE__ */ c(F, { ...m });
77
82
  };
78
83
  export {
79
- le as default
84
+ ie as default
80
85
  };
81
86
  //# sourceMappingURL=TableHeaderColumn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableHeaderColumn.js","sources":["../../../src/components/table/TableHeaderColumn.tsx"],"sourcesContent":["import { useId, type PropsWithChildren, type ReactNode } from 'react';\n\nimport classNames from '../../utils/classNames';\nimport type { TableColumnDefinition, TableHtmlAttributes, TableRowData, TableVerticalAlign } from './Table.types';\nimport DraggableTableHeaderCell from './render/header/TableDraggableHeaderCell';\nimport StaticTableHeaderCell from './render/header/TableStaticHeaderCell';\nimport { useOptionalTableInteractionContext } from './context/TableInteractionContext';\nimport { useOptionalTableLayoutContext } from './context/TableLayoutContext';\nimport { useOptionalTableRenderConfigContext } from './context/TableRenderConfigContext';\nimport { useOptionalTableSection, useTableHeaderRowContext } from './context/TableStructureContext';\nimport { useOptionalTableRenderContext } from './context/TableRenderContext';\n\nexport type TableHeaderColumnProps<RowType extends TableRowData> = Omit<\n TableColumnDefinition<RowType>,\n 'className' | 'draggable' | 'filter' | 'headerClassName' | 'icon' | 'key' | 'label' | 'resizeable'\n> &\n PropsWithChildren<\n {\n /**\n * Column key for leaf header columns.\n */\n columnKey?: string;\n\n /**\n * Optional explicit header label.\n * If omitted, `children` are used.\n */\n label?: ReactNode;\n\n /**\n * Optional rioglyph class rendered before the header label in table view.\n */\n icon?: string;\n\n /**\n * Optional custom filter control rendered next to the header label.\n *\n * Intended for table-specific filter dropdowns such as `TableColumnFilter`.\n */\n filter?: ReactNode;\n\n /**\n * Hides the visible label in table view while preserving `label` for\n * dropdowns, cards, and mobile metadata.\n *\n * @default false\n */\n hideLabel?: boolean;\n\n /**\n * Number of columns this header cell spans.\n *\n * @default 1\n */\n colSpan?: number;\n\n /**\n * Number of header rows this cell spans.\n *\n * @default 1\n */\n rowSpan?: number;\n\n /**\n * Additional class names for this header cell only.\n */\n className?: string;\n\n /**\n * Additional class names for this header cell only.\n */\n headerClassName?: string;\n\n /**\n * Enables drag-reordering for this header column in `TABLE` view.\n *\n * When `columnOrder` and `onColumnOrderChange` are provided, reordering is controlled from the outside.\n * When they are omitted, the table keeps the reordered state internally.\n *\n * @default false\n */\n draggable?: boolean;\n\n /**\n * Enables resizing for this header column in `TABLE` view.\n *\n * When `onColumnResize` is provided, resized widths are controlled from the outside.\n * When it is omitted, the table keeps resized widths internally.\n *\n * @default false\n */\n resizeable?: boolean;\n\n /**\n * Vertical alignment for this header cell.\n *\n * @default 'middle'\n */\n verticalAlign?: TableVerticalAlign;\n } & TableHtmlAttributes\n >;\n\nconst TableHeaderColumn = <RowType extends TableRowData = TableRowData>(props: TableHeaderColumnProps<RowType>) => {\n const {\n children,\n className,\n colSpan = 1,\n columnKey,\n draggable,\n filter,\n headerClassName,\n hideLabel,\n hideOnMobile,\n horizontalAlign,\n icon,\n label,\n maxResizeWidth,\n mobileLabel,\n minResizeWidth,\n resizeable,\n rowSpan = 1,\n sortable,\n verticalAlign,\n width,\n ...remainingProps\n } = props;\n\n const renderContext = useOptionalTableRenderContext<RowType>();\n const renderConfigContext = useOptionalTableRenderConfigContext<RowType>();\n const interactionContext = useOptionalTableInteractionContext<RowType>();\n const layoutContext = useOptionalTableLayoutContext();\n const section = useOptionalTableSection();\n const headerRowContext = useTableHeaderRowContext();\n const columnId = useId();\n\n if (!renderContext || !renderConfigContext || !interactionContext || !layoutContext || section !== 'header') {\n return null;\n }\n\n const resolvedRow = headerRowContext?.row ?? 1;\n\n renderContext.renderDraft.headerColumns.push({\n id: columnId,\n columnKey,\n label: label ?? children ?? '',\n icon,\n filter,\n hideLabel,\n width,\n mobileLabel,\n horizontalAlign,\n verticalAlign,\n headerClassName: classNames(className, headerClassName),\n hideOnMobile,\n sortable,\n draggable,\n resizeable,\n minResizeWidth,\n maxResizeWidth,\n row: resolvedRow,\n colSpan,\n rowSpan,\n });\n\n if (!renderConfigContext.isTableView) {\n return null;\n }\n\n const header = renderContext.header;\n const headerColumn = header?.columns.find(column => String(column.key) === columnId);\n\n if (!header || !headerColumn) {\n return null;\n }\n\n const isResizable =\n !!headerColumn.columnKey &&\n headerColumn.colSpan === 1 &&\n headerColumn.columnKey !== layoutContext.lastResizableColumnKey &&\n headerColumn.resizeable === true &&\n !!layoutContext.onColumnResizeStart;\n\n const isDraggable =\n !!headerColumn.columnKey &&\n headerColumn.colSpan === 1 &&\n (layoutContext.draggableColumnKeys?.length ?? 0) > 1 &&\n headerColumn.draggable === true &&\n !!layoutContext.onColumnDragEnd;\n\n const hasResettableWidth =\n !!headerColumn.columnKey && layoutContext.resettableColumnKeys?.has(headerColumn.columnKey);\n\n const sharedProps = {\n column: headerColumn,\n header,\n htmlAttributes: remainingProps,\n hasResettableWidth,\n isResizable,\n onColumnResizeReset: layoutContext.onColumnResizeReset,\n onColumnResizeStart: layoutContext.onColumnResizeStart,\n onSortChange: interactionContext.onSortChange,\n showSelectionColumn: interactionContext.showSelectionColumn,\n stickyLeftColumnCount: layoutContext.stickyLeftColumnCount,\n };\n\n return isDraggable ? <DraggableTableHeaderCell {...sharedProps} /> : <StaticTableHeaderCell {...sharedProps} />;\n};\n\nexport default TableHeaderColumn;\n"],"names":["TableHeaderColumn","props","children","className","colSpan","columnKey","draggable","filter","headerClassName","hideLabel","hideOnMobile","horizontalAlign","icon","label","maxResizeWidth","mobileLabel","minResizeWidth","resizeable","rowSpan","sortable","verticalAlign","width","remainingProps","renderContext","useOptionalTableRenderContext","renderConfigContext","useOptionalTableRenderConfigContext","interactionContext","useOptionalTableInteractionContext","layoutContext","useOptionalTableLayoutContext","section","useOptionalTableSection","headerRowContext","useTableHeaderRowContext","columnId","useId","resolvedRow","classNames","header","headerColumn","column","isResizable","isDraggable","hasResettableWidth","sharedProps","DraggableTableHeaderCell","jsx","StaticTableHeaderCell"],"mappings":";;;;;;;;;;AAsGA,MAAMA,KAAoB,CAA8CC,MAA2C;AAC/G,QAAM;AAAA,IACF,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,SAAAC,IAAU;AAAA,IACV,WAAAC;AAAA,IACA,WAAAC;AAAA,IACA,QAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,WAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,MAAAC;AAAA,IACA,OAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,YAAAC;AAAA,IACA,SAAAC,IAAU;AAAA,IACV,UAAAC;AAAA,IACA,eAAAC;AAAA,IACA,OAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACHrB,GAEEsB,IAAgBC,EAAA,GAChBC,IAAsBC,EAAA,GACtBC,IAAqBC,EAAA,GACrBC,IAAgBC,EAAA,GAChBC,IAAUC,EAAA,GACVC,IAAmBC,EAAA,GACnBC,IAAWC,EAAA;AAEjB,MAAI,CAACb,KAAiB,CAACE,KAAuB,CAACE,KAAsB,CAACE,KAAiBE,MAAY;AAC/F,WAAO;AAGX,QAAMM,IAAcJ,GAAkB,OAAO;AAyB7C,MAvBAV,EAAc,YAAY,cAAc,KAAK;AAAA,IACzC,IAAIY;AAAA,IACJ,WAAA9B;AAAA,IACA,OAAOQ,KAASX,KAAY;AAAA,IAC5B,MAAAU;AAAA,IACA,QAAAL;AAAA,IACA,WAAAE;AAAA,IACA,OAAAY;AAAA,IACA,aAAAN;AAAA,IACA,iBAAAJ;AAAA,IACA,eAAAS;AAAA,IACA,iBAAiBkB,EAAWnC,GAAWK,CAAe;AAAA,IACtD,cAAAE;AAAA,IACA,UAAAS;AAAA,IACA,WAAAb;AAAA,IACA,YAAAW;AAAA,IACA,gBAAAD;AAAA,IACA,gBAAAF;AAAA,IACA,KAAKuB;AAAA,IACL,SAAAjC;AAAA,IACA,SAAAc;AAAA,EAAA,CACH,GAEG,CAACO,EAAoB;AACrB,WAAO;AAGX,QAAMc,IAAShB,EAAc,QACvBiB,IAAeD,GAAQ,QAAQ,KAAK,OAAU,OAAOE,EAAO,GAAG,MAAMN,CAAQ;AAEnF,MAAI,CAACI,KAAU,CAACC;AACZ,WAAO;AAGX,QAAME,IACF,CAAC,CAACF,EAAa,aACfA,EAAa,YAAY,KACzBA,EAAa,cAAcX,EAAc,0BACzCW,EAAa,eAAe,MAC5B,CAAC,CAACX,EAAc,qBAEdc,IACF,CAAC,CAACH,EAAa,aACfA,EAAa,YAAY,MACxBX,EAAc,qBAAqB,UAAU,KAAK,KACnDW,EAAa,cAAc,MAC3B,CAAC,CAACX,EAAc,iBAEde,IACF,CAAC,CAACJ,EAAa,aAAaX,EAAc,sBAAsB,IAAIW,EAAa,SAAS,GAExFK,IAAc;AAAA,IAChB,QAAQL;AAAA,IACR,QAAAD;AAAA,IACA,gBAAgBjB;AAAA,IAChB,oBAAAsB;AAAA,IACA,aAAAF;AAAA,IACA,qBAAqBb,EAAc;AAAA,IACnC,qBAAqBA,EAAc;AAAA,IACnC,cAAcF,EAAmB;AAAA,IACjC,qBAAqBA,EAAmB;AAAA,IACxC,uBAAuBE,EAAc;AAAA,EAAA;AAGzC,SAAOc,sBAAeG,GAAA,EAA0B,GAAGD,GAAa,IAAK,gBAAAE,EAACC,GAAA,EAAuB,GAAGH,EAAA,CAAa;AACjH;"}
1
+ {"version":3,"file":"TableHeaderColumn.js","sources":["../../../src/components/table/TableHeaderColumn.tsx"],"sourcesContent":["import { useId, useRef, type PropsWithChildren, type ReactNode } from 'react';\n\nimport classNames from '../../utils/classNames';\nimport { isProd } from '../../utils/init/initConfig';\nimport type { TableColumnDefinition, TableHtmlAttributes, TableRowData, TableVerticalAlign } from './Table.types';\nimport DraggableTableHeaderCell from './render/header/TableDraggableHeaderCell';\nimport StaticTableHeaderCell from './render/header/TableStaticHeaderCell';\nimport { useOptionalTableInteractionContext } from './context/TableInteractionContext';\nimport { useOptionalTableLayoutContext } from './context/TableLayoutContext';\nimport { useOptionalTableRenderConfigContext } from './context/TableRenderConfigContext';\nimport { useOptionalTableSection, useTableHeaderRowContext } from './context/TableStructureContext';\nimport { useOptionalTableRenderContext } from './context/TableRenderContext';\n\nexport type TableHeaderColumnProps<RowType extends TableRowData> = Omit<\n TableColumnDefinition<RowType>,\n 'className' | 'draggable' | 'filter' | 'headerClassName' | 'icon' | 'key' | 'label' | 'resizeable'\n> &\n PropsWithChildren<\n {\n /**\n * Column key for a header that represents a single data column.\n *\n * These are the lowest header cells in the table structure and should\n * therefore use `colSpan={1}`.\n *\n * For these headers, `columnKey` is effectively required because the table\n * derives its body/footer column layout, resize/drag behavior, sorting, and\n * sticky-column logic from these keys.\n *\n * Group header cells that only structure other header cells may omit `columnKey`\n * when they span multiple columns via `colSpan > 1`.\n */\n columnKey?: string;\n\n /**\n * Optional explicit header label.\n * If omitted, `children` are used.\n */\n label?: ReactNode;\n\n /**\n * Optional rioglyph class rendered before the header label in table view.\n */\n icon?: string;\n\n /**\n * Optional custom filter control rendered next to the header label.\n *\n * Intended for table-specific filter dropdowns such as `TableColumnFilter`.\n */\n filter?: ReactNode;\n\n /**\n * Hides the visible label in table view while preserving `label` for\n * dropdowns, cards, and mobile metadata.\n *\n * @default false\n */\n hideLabel?: boolean;\n\n /**\n * Number of columns this header cell spans.\n *\n * @default 1\n */\n colSpan?: number;\n\n /**\n * Number of header rows this cell spans.\n *\n * @default 1\n */\n rowSpan?: number;\n\n /**\n * Additional class names for this header cell only.\n */\n className?: string;\n\n /**\n * Additional class names for this header cell only.\n */\n headerClassName?: string;\n\n /**\n * Enables drag-reordering for this header column in `TABLE` view.\n *\n * When `columnOrder` and `onColumnOrderChange` are provided, reordering is controlled from the outside.\n * When they are omitted, the table keeps the reordered state internally.\n *\n * @default false\n */\n draggable?: boolean;\n\n /**\n * Enables resizing for this header column in `TABLE` view.\n *\n * When `onColumnResize` is provided, resized widths are controlled from the outside.\n * When it is omitted, the table keeps resized widths internally.\n *\n * @default false\n */\n resizeable?: boolean;\n\n /**\n * Vertical alignment for this header cell.\n *\n * @default 'middle'\n */\n verticalAlign?: TableVerticalAlign;\n } & TableHtmlAttributes\n >;\n\nconst TableHeaderColumn = <RowType extends TableRowData = TableRowData>(props: TableHeaderColumnProps<RowType>) => {\n const {\n children,\n className,\n colSpan = 1,\n columnKey,\n draggable,\n filter,\n headerClassName,\n hideLabel,\n hideOnMobile,\n horizontalAlign,\n icon,\n label,\n maxResizeWidth,\n mobileLabel,\n minResizeWidth,\n resizeable,\n rowSpan = 1,\n sortable,\n verticalAlign,\n width,\n ...remainingProps\n } = props;\n\n const renderContext = useOptionalTableRenderContext<RowType>();\n const renderConfigContext = useOptionalTableRenderConfigContext<RowType>();\n const interactionContext = useOptionalTableInteractionContext<RowType>();\n const layoutContext = useOptionalTableLayoutContext();\n const section = useOptionalTableSection();\n const headerRowContext = useTableHeaderRowContext();\n const columnId = useId();\n const hasWarnedMissingColumnKeyRef = useRef(false);\n\n if (!renderContext || !renderConfigContext || !interactionContext || !layoutContext || section !== 'header') {\n return null;\n }\n\n if (!isProd && colSpan === 1 && !columnKey && !hasWarnedMissingColumnKeyRef.current) {\n console.warn(\n 'TableHeaderColumn: Header cells for a single data column with colSpan=1 should provide a columnKey. ' +\n 'Without it, the table cannot derive a stable data-column layout.'\n );\n hasWarnedMissingColumnKeyRef.current = true;\n }\n\n const resolvedRow = headerRowContext?.row ?? 1;\n\n renderContext.renderDraft.headerColumns.push({\n id: columnId,\n columnKey,\n label: label ?? children ?? '',\n icon,\n filter,\n hideLabel,\n width,\n mobileLabel,\n horizontalAlign,\n verticalAlign,\n headerClassName: classNames(className, headerClassName),\n hideOnMobile,\n sortable,\n draggable,\n resizeable,\n minResizeWidth,\n maxResizeWidth,\n row: resolvedRow,\n colSpan,\n rowSpan,\n });\n\n if (!renderConfigContext.isTableView) {\n return null;\n }\n\n const header = renderContext.header;\n const headerColumn = header?.columns.find(column => String(column.key) === columnId);\n\n if (!header || !headerColumn) {\n return null;\n }\n\n const isResizable =\n !!headerColumn.columnKey &&\n headerColumn.colSpan === 1 &&\n headerColumn.columnKey !== layoutContext.lastResizableColumnKey &&\n headerColumn.resizeable === true &&\n !!layoutContext.onColumnResizeStart;\n\n const isDraggable =\n !!headerColumn.columnKey &&\n headerColumn.colSpan === 1 &&\n (layoutContext.draggableColumnKeys?.length ?? 0) > 1 &&\n headerColumn.draggable === true &&\n !!layoutContext.onColumnDragEnd;\n\n const hasResettableWidth =\n !!headerColumn.columnKey && layoutContext.resettableColumnKeys?.has(headerColumn.columnKey);\n\n const sharedProps = {\n column: headerColumn,\n header,\n htmlAttributes: remainingProps,\n hasResettableWidth,\n isResizable,\n onColumnResizeReset: layoutContext.onColumnResizeReset,\n onColumnResizeStart: layoutContext.onColumnResizeStart,\n onSortChange: interactionContext.onSortChange,\n showSelectionColumn: interactionContext.showSelectionColumn,\n stickyLeftColumnCount: layoutContext.stickyLeftColumnCount,\n stickyRightColumnCount: layoutContext.stickyRightColumnCount,\n };\n\n return isDraggable ? <DraggableTableHeaderCell {...sharedProps} /> : <StaticTableHeaderCell {...sharedProps} />;\n};\n\nexport default TableHeaderColumn;\n"],"names":["TableHeaderColumn","props","children","className","colSpan","columnKey","draggable","filter","headerClassName","hideLabel","hideOnMobile","horizontalAlign","icon","label","maxResizeWidth","mobileLabel","minResizeWidth","resizeable","rowSpan","sortable","verticalAlign","width","remainingProps","renderContext","useOptionalTableRenderContext","renderConfigContext","useOptionalTableRenderConfigContext","interactionContext","useOptionalTableInteractionContext","layoutContext","useOptionalTableLayoutContext","section","useOptionalTableSection","headerRowContext","useTableHeaderRowContext","columnId","useId","hasWarnedMissingColumnKeyRef","useRef","isProd","resolvedRow","classNames","header","headerColumn","column","isResizable","isDraggable","hasResettableWidth","sharedProps","DraggableTableHeaderCell","jsx","StaticTableHeaderCell"],"mappings":";;;;;;;;;;;AAiHA,MAAMA,KAAoB,CAA8CC,MAA2C;AAC/G,QAAM;AAAA,IACF,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,SAAAC,IAAU;AAAA,IACV,WAAAC;AAAA,IACA,WAAAC;AAAA,IACA,QAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,WAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,MAAAC;AAAA,IACA,OAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,YAAAC;AAAA,IACA,SAAAC,IAAU;AAAA,IACV,UAAAC;AAAA,IACA,eAAAC;AAAA,IACA,OAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACHrB,GAEEsB,IAAgBC,EAAA,GAChBC,IAAsBC,EAAA,GACtBC,IAAqBC,EAAA,GACrBC,IAAgBC,EAAA,GAChBC,IAAUC,EAAA,GACVC,IAAmBC,EAAA,GACnBC,IAAWC,EAAA,GACXC,IAA+BC,EAAO,EAAK;AAEjD,MAAI,CAACf,KAAiB,CAACE,KAAuB,CAACE,KAAsB,CAACE,KAAiBE,MAAY;AAC/F,WAAO;AAGX,EAAI,CAACQ,KAAUnC,MAAY,KAAK,CAACC,KAAa,CAACgC,EAA6B,YACxE,QAAQ;AAAA,IACJ;AAAA,EAAA,GAGJA,EAA6B,UAAU;AAG3C,QAAMG,IAAcP,GAAkB,OAAO;AAyB7C,MAvBAV,EAAc,YAAY,cAAc,KAAK;AAAA,IACzC,IAAIY;AAAA,IACJ,WAAA9B;AAAA,IACA,OAAOQ,KAASX,KAAY;AAAA,IAC5B,MAAAU;AAAA,IACA,QAAAL;AAAA,IACA,WAAAE;AAAA,IACA,OAAAY;AAAA,IACA,aAAAN;AAAA,IACA,iBAAAJ;AAAA,IACA,eAAAS;AAAA,IACA,iBAAiBqB,EAAWtC,GAAWK,CAAe;AAAA,IACtD,cAAAE;AAAA,IACA,UAAAS;AAAA,IACA,WAAAb;AAAA,IACA,YAAAW;AAAA,IACA,gBAAAD;AAAA,IACA,gBAAAF;AAAA,IACA,KAAK0B;AAAA,IACL,SAAApC;AAAA,IACA,SAAAc;AAAA,EAAA,CACH,GAEG,CAACO,EAAoB;AACrB,WAAO;AAGX,QAAMiB,IAASnB,EAAc,QACvBoB,IAAeD,GAAQ,QAAQ,KAAK,OAAU,OAAOE,EAAO,GAAG,MAAMT,CAAQ;AAEnF,MAAI,CAACO,KAAU,CAACC;AACZ,WAAO;AAGX,QAAME,IACF,CAAC,CAACF,EAAa,aACfA,EAAa,YAAY,KACzBA,EAAa,cAAcd,EAAc,0BACzCc,EAAa,eAAe,MAC5B,CAAC,CAACd,EAAc,qBAEdiB,IACF,CAAC,CAACH,EAAa,aACfA,EAAa,YAAY,MACxBd,EAAc,qBAAqB,UAAU,KAAK,KACnDc,EAAa,cAAc,MAC3B,CAAC,CAACd,EAAc,iBAEdkB,IACF,CAAC,CAACJ,EAAa,aAAad,EAAc,sBAAsB,IAAIc,EAAa,SAAS,GAExFK,IAAc;AAAA,IAChB,QAAQL;AAAA,IACR,QAAAD;AAAA,IACA,gBAAgBpB;AAAA,IAChB,oBAAAyB;AAAA,IACA,aAAAF;AAAA,IACA,qBAAqBhB,EAAc;AAAA,IACnC,qBAAqBA,EAAc;AAAA,IACnC,cAAcF,EAAmB;AAAA,IACjC,qBAAqBA,EAAmB;AAAA,IACxC,uBAAuBE,EAAc;AAAA,IACrC,wBAAwBA,EAAc;AAAA,EAAA;AAG1C,SAAOiB,sBAAeG,GAAA,EAA0B,GAAGD,GAAa,IAAK,gBAAAE,EAACC,GAAA,EAAuB,GAAGH,EAAA,CAAa;AACjH;"}
@@ -1,6 +1,14 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { TableHtmlAttributes, TableRowData } from './Table.types';
3
3
  export type TableRowProps<RowType extends TableRowData> = TableHtmlAttributes & Partial<RowType> & {
4
+ /**
5
+ * Keeps the row sticky at the top of the current table scroll context.
6
+ * When a sticky `TableHeader` is present, the row stacks below the measured header height.
7
+ * `TableBody maxHeight` continues to pin the row inside the internal body scroller.
8
+ *
9
+ * @default false
10
+ */
11
+ sticky?: boolean;
4
12
  /**
5
13
  * Disables row interaction such as hover styles, clicks, and keyboard activation.
6
14
  *
@@ -11,6 +19,10 @@ export type TableRowProps<RowType extends TableRowData> = TableHtmlAttributes &
11
19
  * Optional class names only for this row.
12
20
  */
13
21
  className?: string;
22
+ /**
23
+ * Excludes this row from table selection while keeping the row interactive.
24
+ */
25
+ selectable?: boolean;
14
26
  /**
15
27
  * Disable table hover styling for this row.
16
28
  */
@@ -1,111 +1,115 @@
1
- import { jsx as a, jsxs as D, Fragment as K } from "react/jsx-runtime";
2
- import { motion as A } from "motion/react";
3
- import { useRef as V } from "react";
4
- import O from "../checkbox/Checkbox.js";
5
- import y from "../../utils/classNames.js";
6
- import { resolveRowKey as j, resolveRowClassName as B } from "./model/resolveRowMeta.js";
7
- import { getInteractiveRowProps as H } from "./shared/getInteractiveRowProps.js";
8
- import { useOptionalTableInteractionContext as F } from "./context/TableInteractionContext.js";
9
- import { useOptionalTableRenderConfigContext as q } from "./context/TableRenderConfigContext.js";
10
- import { useOptionalTableSection as z, useTableBodyContext as E, extractTableHtmlAttributes as T, TableRowContext as G } from "./context/TableStructureContext.js";
11
- import { useOptionalTableRenderContext as J } from "./context/TableRenderContext.js";
12
- const L = (C) => {
13
- const { isSelected: b, isTableView: n, onToggleSelection: p, cardCellClassName: u, disabled: i } = C;
1
+ import { jsx as a, jsxs as O, Fragment as B } from "react/jsx-runtime";
2
+ import { motion as H } from "motion/react";
3
+ import { useRef as j } from "react";
4
+ import F from "../checkbox/Checkbox.js";
5
+ import N from "../../utils/classNames.js";
6
+ import { resolveRowKey as E, resolveRowClassName as M } from "./model/resolveRowMeta.js";
7
+ import { getInteractiveRowProps as q } from "./shared/getInteractiveRowProps.js";
8
+ import { useOptionalTableInteractionContext as z } from "./context/TableInteractionContext.js";
9
+ import { useOptionalTableRenderConfigContext as G } from "./context/TableRenderConfigContext.js";
10
+ import { useOptionalTableSection as J, useTableBodyContext as L, extractTableHtmlAttributes as k, TableRowContext as Q } from "./context/TableStructureContext.js";
11
+ import { useOptionalTableRenderContext as U } from "./context/TableRenderContext.js";
12
+ const W = (p) => {
13
+ const { isSelected: R, isSelectable: r, hideSelectionControl: x, isTableView: b, onToggleSelection: g, cardCellClassName: m } = p;
14
14
  return /* @__PURE__ */ a(
15
15
  "div",
16
16
  {
17
- className: y("table-cell table-selection-cell", !n && u),
17
+ className: N("table-cell table-selection-cell", !b && m),
18
18
  role: "cell",
19
19
  "aria-colindex": 1,
20
- style: n ? { gridColumn: "1 / span 1" } : void 0,
21
- onClick: (e) => e.stopPropagation(),
22
- onKeyDown: (e) => e.stopPropagation(),
23
- children: /* @__PURE__ */ a("div", { className: "table-selection-control", children: /* @__PURE__ */ a(O, { checked: b, disabled: i, onChange: p }) })
20
+ style: b ? { gridColumn: "1 / span 1", gridRow: "1 / span 1" } : void 0,
21
+ onClick: (l) => l.stopPropagation(),
22
+ onKeyDown: (l) => l.stopPropagation(),
23
+ children: !x && /* @__PURE__ */ a("div", { className: "table-selection-control", children: /* @__PURE__ */ a(F, { checked: R, disabled: !r, onChange: g }) })
24
24
  }
25
25
  );
26
- }, te = (C) => {
27
- const { children: b, disabled: n, className: p, noHover: u, ...i } = C, e = q(), w = J(), o = F(), N = z(), v = E(), m = V(0);
28
- if (m.current = 0, !w || !e || !o || w.columns.length === 0 || N !== "body" || !v)
26
+ }, se = (p) => {
27
+ const { children: R, disabled: r, className: x, noHover: b, selectable: g, sticky: m, ...l } = p, e = G(), c = U(), o = z(), I = J(), f = L(), C = j(0);
28
+ if (C.current = 0, !c || !e || !o || c.columns.length === 0 || I !== "body" || !f)
29
29
  return null;
30
- const c = i, r = v.nextRowIndex(), t = j(c, r, e.rowKey), R = typeof e.rowAnimationProps == "function" ? e.rowAnimationProps(c, r) : e.rowAnimationProps, l = H({
31
- isClickable: o.isClickable && !n,
32
- onRowClick: (s, d) => {
33
- o.onRowClick?.(s, d), o.onActiveRowChange?.(
30
+ const d = l, n = f.nextRowIndex(), t = E(d, n, e.rowKey), h = typeof e.rowAnimationProps == "function" ? e.rowAnimationProps(d, n) : e.rowAnimationProps, s = q({
31
+ isClickable: o.isClickable && !r,
32
+ onRowClick: (i, w) => {
33
+ o.onRowClick?.(i, w), o.onActiveRowChange?.(
34
34
  o.activeRowId === t ? void 0 : t,
35
- s,
36
- d
35
+ i,
36
+ w
37
37
  );
38
38
  },
39
- row: c,
40
- rowIndex: r
41
- }), g = o.selectedRowIdSet.has(t), P = o.showSelectionColumn && /* @__PURE__ */ a(
42
- L,
39
+ row: d,
40
+ rowIndex: n
41
+ }), u = o.selectableRowIdSet.has(t), v = u && o.selectedRowIdSet.has(t), P = o.showSelectionColumn && /* @__PURE__ */ a(
42
+ W,
43
43
  {
44
- isSelected: g,
44
+ isSelected: v,
45
+ isSelectable: u,
46
+ hideSelectionControl: !u && o.hideSelectionCheckboxesForExcludedRows,
45
47
  isTableView: e.isTableView,
46
48
  onToggleSelection: () => o.onToggleRowSelection?.(t),
47
- cardCellClassName: e.cardClasses.cellClassName,
48
- disabled: n
49
+ cardCellClassName: e.cardClasses.cellClassName
49
50
  }
50
- ), x = y(
51
+ ), D = !!c.renderDraft.bodyMaxHeight, y = N(
51
52
  "table-row",
52
53
  !e.isTableView && "divider-y-1 divider-color-lighter divider-style-solid",
53
54
  o.activeRowId === t && "table-row-active",
54
- n && "table-row-disabled",
55
- g && "table-row-selected",
56
- l.isClickableClassName,
57
- (n || u) && "table-row-no-hover",
55
+ r && "table-row-disabled",
56
+ v && "table-row-selected",
57
+ s.isClickableClassName,
58
+ (r || b) && "table-row-no-hover",
59
+ m && "table-row-sticky",
60
+ m && D && "table-row-sticky-in-container",
58
61
  !e.isTableView && e.cardClasses.rowClassName,
59
- p,
60
- B(e.rowClassName, c, r)
61
- ), f = /* @__PURE__ */ D(K, { children: [
62
+ x,
63
+ M(e.rowClassName, d, n)
64
+ ), S = /* @__PURE__ */ O(B, { children: [
62
65
  P,
63
- b
64
- ] }), k = {
65
- ...T(i),
66
- className: x,
67
- "data-index": r,
66
+ R
67
+ ] }), K = {
68
+ ...k(l),
69
+ className: y,
70
+ "data-index": n,
68
71
  "data-row-id": String(t),
69
- onClick: l.onClick,
70
- onKeyDown: l.onKeyDown,
72
+ onClick: s.onClick,
73
+ onKeyDown: s.onKeyDown,
71
74
  role: "row",
72
- tabIndex: l.tabIndex
73
- }, I = {
74
- ...T(i),
75
- className: x,
76
- "data-index": r,
75
+ tabIndex: s.tabIndex
76
+ }, A = {
77
+ ...k(l),
78
+ className: y,
79
+ "data-index": n,
77
80
  "data-row-id": String(t),
78
- onClick: l.onClick,
79
- onKeyDown: l.onKeyDown,
81
+ onClick: s.onClick,
82
+ onKeyDown: s.onKeyDown,
80
83
  role: "row",
81
- tabIndex: l.tabIndex,
82
- ...R
83
- }, h = /* @__PURE__ */ a(
84
- G.Provider,
84
+ tabIndex: s.tabIndex,
85
+ ...h
86
+ }, T = /* @__PURE__ */ a(
87
+ Q.Provider,
85
88
  {
86
89
  value: {
87
- nextColumnIndex: (s, d = 1) => {
88
- if (s !== void 0 && s >= 0)
89
- return m.current = s + d, s;
90
- const S = m.current;
91
- return m.current += d, S;
90
+ nextColumnIndex: (i, w = 1) => {
91
+ if (i !== void 0 && i >= 0)
92
+ return C.current = i + w, i;
93
+ const V = C.current;
94
+ return C.current += w, V;
92
95
  },
93
- rowIndex: r,
96
+ rowIndex: n,
94
97
  rowId: t,
95
- rowData: c
98
+ rowData: d
96
99
  },
97
- children: R ? /* @__PURE__ */ a(A.div, { ...I, children: f }) : /* @__PURE__ */ a("div", { ...k, children: f })
100
+ children: h ? /* @__PURE__ */ a(H.div, { ...A, children: S }) : /* @__PURE__ */ a("div", { ...K, children: S })
98
101
  }
99
102
  );
100
- return w.renderDraft.bodyRows.push({
103
+ return c.renderDraft.bodyRows.push({
101
104
  rowId: t,
102
- rowIndex: r,
105
+ rowIndex: n,
103
106
  kind: "data",
104
- disabled: n,
105
- render: () => h
106
- }), w.isRegisteringBodyRows ? null : h;
107
+ disabled: r,
108
+ selectable: !r && g !== !1,
109
+ render: () => T
110
+ }), c.isRegisteringBodyRows ? null : T;
107
111
  };
108
112
  export {
109
- te as default
113
+ se as default
110
114
  };
111
115
  //# sourceMappingURL=TableRow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableRow.js","sources":["../../../src/components/table/TableRow.tsx"],"sourcesContent":["import { motion, type HTMLMotionProps } from 'motion/react';\nimport { type ReactNode, useRef } from 'react';\n\nimport Checkbox from '../checkbox/Checkbox';\nimport classNames from '../../utils/classNames';\nimport { resolveRowClassName, resolveRowKey } from './model/resolveRowMeta';\nimport { getInteractiveRowProps } from './shared/getInteractiveRowProps';\nimport type { TableHtmlAttributes, TableRowData } from './Table.types';\nimport { useOptionalTableInteractionContext } from './context/TableInteractionContext';\nimport { useOptionalTableRenderConfigContext } from './context/TableRenderConfigContext';\nimport {\n extractTableHtmlAttributes,\n useTableBodyContext,\n TableRowContext,\n useOptionalTableSection,\n} from './context/TableStructureContext';\nimport { useOptionalTableRenderContext } from './context/TableRenderContext';\n\nexport type TableRowProps<RowType extends TableRowData> = TableHtmlAttributes &\n Partial<RowType> & {\n /**\n * Disables row interaction such as hover styles, clicks, and keyboard activation.\n *\n * @default false\n */\n disabled?: boolean;\n\n /**\n * Optional class names only for this row.\n */\n className?: string;\n\n /**\n * Disable table hover styling for this row.\n */\n noHover?: boolean;\n\n /**\n * Table row content.\n */\n children?: ReactNode;\n };\n\ntype TableRowSelectionCellProps = {\n isSelected: boolean;\n isTableView: boolean;\n onToggleSelection?: () => void;\n cardCellClassName?: string;\n disabled?: boolean;\n};\n\nconst TableRowSelectionCell = (props: TableRowSelectionCellProps) => {\n const { isSelected, isTableView, onToggleSelection, cardCellClassName, disabled } = props;\n\n return (\n <div\n className={classNames('table-cell table-selection-cell', !isTableView && cardCellClassName)}\n role='cell'\n aria-colindex={1}\n style={isTableView ? { gridColumn: '1 / span 1' } : undefined}\n onClick={event => event.stopPropagation()}\n onKeyDown={event => event.stopPropagation()}\n >\n <div className='table-selection-control'>\n <Checkbox checked={isSelected} disabled={disabled} onChange={onToggleSelection} />\n </div>\n </div>\n );\n};\n\nconst TableRow = <RowType extends TableRowData = TableRowData>(props: TableRowProps<RowType>) => {\n const { children, disabled, className, noHover, ...remainingProps } = props;\n\n const renderConfigContext = useOptionalTableRenderConfigContext<RowType>();\n const renderContext = useOptionalTableRenderContext<RowType>();\n const interactionContext = useOptionalTableInteractionContext<RowType>();\n const section = useOptionalTableSection();\n const bodyContext = useTableBodyContext();\n\n const cellIndexRef = useRef(0);\n cellIndexRef.current = 0;\n\n if (\n !renderContext ||\n !renderConfigContext ||\n !interactionContext ||\n renderContext.columns.length === 0 ||\n section !== 'body' ||\n !bodyContext\n ) {\n return null;\n }\n\n const rowData = remainingProps as RowType;\n const rowIndex = bodyContext.nextRowIndex();\n const rowId = resolveRowKey(rowData, rowIndex, renderConfigContext.rowKey);\n\n const resolvedRowAnimationProps =\n typeof renderConfigContext.rowAnimationProps === 'function'\n ? renderConfigContext.rowAnimationProps(rowData, rowIndex)\n : renderConfigContext.rowAnimationProps;\n\n const interactiveRowProps = getInteractiveRowProps({\n isClickable: interactionContext.isClickable && !disabled,\n onRowClick: (clickedRow, clickedRowIndex) => {\n interactionContext.onRowClick?.(clickedRow, clickedRowIndex);\n interactionContext.onActiveRowChange?.(\n interactionContext.activeRowId === rowId ? undefined : rowId,\n clickedRow,\n clickedRowIndex\n );\n },\n row: rowData,\n rowIndex,\n });\n\n const isSelected = interactionContext.selectedRowIdSet.has(rowId);\n const selectionCell = interactionContext.showSelectionColumn && (\n <TableRowSelectionCell\n isSelected={isSelected}\n isTableView={renderConfigContext.isTableView}\n onToggleSelection={() => interactionContext.onToggleRowSelection?.(rowId)}\n cardCellClassName={renderConfigContext.cardClasses.cellClassName}\n disabled={disabled}\n />\n );\n\n const rowClassName = classNames(\n 'table-row',\n !renderConfigContext.isTableView && 'divider-y-1 divider-color-lighter divider-style-solid',\n interactionContext.activeRowId === rowId && 'table-row-active',\n disabled && 'table-row-disabled',\n isSelected && 'table-row-selected',\n interactiveRowProps.isClickableClassName,\n (disabled || noHover) && 'table-row-no-hover',\n !renderConfigContext.isTableView && renderConfigContext.cardClasses.rowClassName,\n className,\n resolveRowClassName(renderConfigContext.rowClassName, rowData, rowIndex)\n );\n\n const rowContent = (\n <>\n {selectionCell}\n {children}\n </>\n );\n\n const staticRowProps = {\n ...extractTableHtmlAttributes(remainingProps),\n className: rowClassName,\n 'data-index': rowIndex,\n 'data-row-id': String(rowId),\n onClick: interactiveRowProps.onClick,\n onKeyDown: interactiveRowProps.onKeyDown,\n role: 'row' as const,\n tabIndex: interactiveRowProps.tabIndex,\n };\n\n const animatedRowProps = {\n ...(extractTableHtmlAttributes(remainingProps) as Omit<\n HTMLMotionProps<'div'>,\n 'children' | 'className' | 'data-index' | 'data-row-id' | 'onClick' | 'onKeyDown' | 'role' | 'tabIndex'\n >),\n className: rowClassName,\n 'data-index': rowIndex,\n 'data-row-id': String(rowId),\n onClick: interactiveRowProps.onClick,\n onKeyDown: interactiveRowProps.onKeyDown,\n role: 'row' as const,\n tabIndex: interactiveRowProps.tabIndex,\n ...resolvedRowAnimationProps,\n };\n\n const rowNode = (\n <TableRowContext.Provider\n value={{\n nextColumnIndex: (explicitColumnIndex, span = 1) => {\n if (explicitColumnIndex !== undefined && explicitColumnIndex >= 0) {\n cellIndexRef.current = explicitColumnIndex + span;\n return explicitColumnIndex;\n }\n\n const nextIndex = cellIndexRef.current;\n cellIndexRef.current += span;\n return nextIndex;\n },\n rowIndex,\n rowId,\n rowData,\n }}\n >\n {resolvedRowAnimationProps ? (\n <motion.div {...animatedRowProps}>{rowContent}</motion.div>\n ) : (\n <div {...staticRowProps}>{rowContent}</div>\n )}\n </TableRowContext.Provider>\n );\n\n renderContext.renderDraft.bodyRows.push({\n rowId,\n rowIndex,\n kind: 'data',\n disabled,\n render: () => rowNode,\n });\n\n return renderContext.isRegisteringBodyRows ? null : rowNode;\n};\n\nexport default TableRow;\n"],"names":["TableRowSelectionCell","props","isSelected","isTableView","onToggleSelection","cardCellClassName","disabled","jsx","classNames","event","Checkbox","TableRow","children","className","noHover","remainingProps","renderConfigContext","useOptionalTableRenderConfigContext","renderContext","useOptionalTableRenderContext","interactionContext","useOptionalTableInteractionContext","section","useOptionalTableSection","bodyContext","useTableBodyContext","cellIndexRef","useRef","rowData","rowIndex","rowId","resolveRowKey","resolvedRowAnimationProps","interactiveRowProps","getInteractiveRowProps","clickedRow","clickedRowIndex","selectionCell","rowClassName","resolveRowClassName","rowContent","jsxs","Fragment","staticRowProps","extractTableHtmlAttributes","animatedRowProps","rowNode","TableRowContext","explicitColumnIndex","span","nextIndex","motion"],"mappings":"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"}
1
+ {"version":3,"file":"TableRow.js","sources":["../../../src/components/table/TableRow.tsx"],"sourcesContent":["import { motion, type HTMLMotionProps } from 'motion/react';\nimport { type ReactNode, useRef } from 'react';\n\nimport Checkbox from '../checkbox/Checkbox';\nimport classNames from '../../utils/classNames';\nimport { resolveRowClassName, resolveRowKey } from './model/resolveRowMeta';\nimport { getInteractiveRowProps } from './shared/getInteractiveRowProps';\nimport type { TableHtmlAttributes, TableRowData } from './Table.types';\nimport { useOptionalTableInteractionContext } from './context/TableInteractionContext';\nimport { useOptionalTableRenderConfigContext } from './context/TableRenderConfigContext';\nimport {\n extractTableHtmlAttributes,\n useTableBodyContext,\n TableRowContext,\n useOptionalTableSection,\n} from './context/TableStructureContext';\nimport { useOptionalTableRenderContext } from './context/TableRenderContext';\n\nexport type TableRowProps<RowType extends TableRowData> = TableHtmlAttributes &\n Partial<RowType> & {\n /**\n * Keeps the row sticky at the top of the current table scroll context.\n * When a sticky `TableHeader` is present, the row stacks below the measured header height.\n * `TableBody maxHeight` continues to pin the row inside the internal body scroller.\n *\n * @default false\n */\n sticky?: boolean;\n\n /**\n * Disables row interaction such as hover styles, clicks, and keyboard activation.\n *\n * @default false\n */\n disabled?: boolean;\n\n /**\n * Optional class names only for this row.\n */\n className?: string;\n\n /**\n * Excludes this row from table selection while keeping the row interactive.\n */\n selectable?: boolean;\n\n /**\n * Disable table hover styling for this row.\n */\n noHover?: boolean;\n\n /**\n * Table row content.\n */\n children?: ReactNode;\n };\n\ntype TableRowSelectionCellProps = {\n isSelected: boolean;\n isSelectable: boolean;\n hideSelectionControl?: boolean;\n isTableView: boolean;\n onToggleSelection?: () => void;\n cardCellClassName?: string;\n};\n\nconst TableRowSelectionCell = (props: TableRowSelectionCellProps) => {\n const { isSelected, isSelectable, hideSelectionControl, isTableView, onToggleSelection, cardCellClassName } = props;\n\n return (\n <div\n className={classNames('table-cell table-selection-cell', !isTableView && cardCellClassName)}\n role='cell'\n aria-colindex={1}\n style={isTableView ? { gridColumn: '1 / span 1', gridRow: '1 / span 1' } : undefined}\n onClick={event => event.stopPropagation()}\n onKeyDown={event => event.stopPropagation()}\n >\n {!hideSelectionControl && (\n <div className='table-selection-control'>\n <Checkbox checked={isSelected} disabled={!isSelectable} onChange={onToggleSelection} />\n </div>\n )}\n </div>\n );\n};\n\nconst TableRow = <RowType extends TableRowData = TableRowData>(props: TableRowProps<RowType>) => {\n const { children, disabled, className, noHover, selectable, sticky, ...remainingProps } = props;\n\n const renderConfigContext = useOptionalTableRenderConfigContext<RowType>();\n const renderContext = useOptionalTableRenderContext<RowType>();\n const interactionContext = useOptionalTableInteractionContext<RowType>();\n const section = useOptionalTableSection();\n const bodyContext = useTableBodyContext();\n\n const cellIndexRef = useRef(0);\n cellIndexRef.current = 0;\n\n if (\n !renderContext ||\n !renderConfigContext ||\n !interactionContext ||\n renderContext.columns.length === 0 ||\n section !== 'body' ||\n !bodyContext\n ) {\n return null;\n }\n\n const rowData = remainingProps as RowType;\n const rowIndex = bodyContext.nextRowIndex();\n const rowId = resolveRowKey(rowData, rowIndex, renderConfigContext.rowKey);\n\n const resolvedRowAnimationProps =\n typeof renderConfigContext.rowAnimationProps === 'function'\n ? renderConfigContext.rowAnimationProps(rowData, rowIndex)\n : renderConfigContext.rowAnimationProps;\n\n const interactiveRowProps = getInteractiveRowProps({\n isClickable: interactionContext.isClickable && !disabled,\n onRowClick: (clickedRow, clickedRowIndex) => {\n interactionContext.onRowClick?.(clickedRow, clickedRowIndex);\n interactionContext.onActiveRowChange?.(\n interactionContext.activeRowId === rowId ? undefined : rowId,\n clickedRow,\n clickedRowIndex\n );\n },\n row: rowData,\n rowIndex,\n });\n\n const isSelectable = interactionContext.selectableRowIdSet.has(rowId);\n const isSelected = isSelectable && interactionContext.selectedRowIdSet.has(rowId);\n const selectionCell = interactionContext.showSelectionColumn && (\n <TableRowSelectionCell\n isSelected={isSelected}\n isSelectable={isSelectable}\n hideSelectionControl={!isSelectable && interactionContext.hideSelectionCheckboxesForExcludedRows}\n isTableView={renderConfigContext.isTableView}\n onToggleSelection={() => interactionContext.onToggleRowSelection?.(rowId)}\n cardCellClassName={renderConfigContext.cardClasses.cellClassName}\n />\n );\n\n const stickyInBodyScrollContainer = !!renderContext.renderDraft.bodyMaxHeight;\n\n const rowClassName = classNames(\n 'table-row',\n !renderConfigContext.isTableView && 'divider-y-1 divider-color-lighter divider-style-solid',\n interactionContext.activeRowId === rowId && 'table-row-active',\n disabled && 'table-row-disabled',\n isSelected && 'table-row-selected',\n interactiveRowProps.isClickableClassName,\n (disabled || noHover) && 'table-row-no-hover',\n sticky && 'table-row-sticky',\n sticky && stickyInBodyScrollContainer && 'table-row-sticky-in-container',\n !renderConfigContext.isTableView && renderConfigContext.cardClasses.rowClassName,\n className,\n resolveRowClassName(renderConfigContext.rowClassName, rowData, rowIndex)\n );\n\n const rowContent = (\n <>\n {selectionCell}\n {children}\n </>\n );\n\n const staticRowProps = {\n ...extractTableHtmlAttributes(remainingProps),\n className: rowClassName,\n 'data-index': rowIndex,\n 'data-row-id': String(rowId),\n onClick: interactiveRowProps.onClick,\n onKeyDown: interactiveRowProps.onKeyDown,\n role: 'row' as const,\n tabIndex: interactiveRowProps.tabIndex,\n };\n\n const animatedRowProps = {\n ...(extractTableHtmlAttributes(remainingProps) as Omit<\n HTMLMotionProps<'div'>,\n 'children' | 'className' | 'data-index' | 'data-row-id' | 'onClick' | 'onKeyDown' | 'role' | 'tabIndex'\n >),\n className: rowClassName,\n 'data-index': rowIndex,\n 'data-row-id': String(rowId),\n onClick: interactiveRowProps.onClick,\n onKeyDown: interactiveRowProps.onKeyDown,\n role: 'row' as const,\n tabIndex: interactiveRowProps.tabIndex,\n ...resolvedRowAnimationProps,\n };\n\n const rowNode = (\n <TableRowContext.Provider\n value={{\n nextColumnIndex: (explicitColumnIndex, span = 1) => {\n if (explicitColumnIndex !== undefined && explicitColumnIndex >= 0) {\n cellIndexRef.current = explicitColumnIndex + span;\n return explicitColumnIndex;\n }\n\n const nextIndex = cellIndexRef.current;\n cellIndexRef.current += span;\n return nextIndex;\n },\n rowIndex,\n rowId,\n rowData,\n }}\n >\n {resolvedRowAnimationProps ? (\n <motion.div {...animatedRowProps}>{rowContent}</motion.div>\n ) : (\n <div {...staticRowProps}>{rowContent}</div>\n )}\n </TableRowContext.Provider>\n );\n\n renderContext.renderDraft.bodyRows.push({\n rowId,\n rowIndex,\n kind: 'data',\n disabled,\n selectable: !disabled && selectable !== false,\n render: () => rowNode,\n });\n\n return renderContext.isRegisteringBodyRows ? null : rowNode;\n};\n\nexport default TableRow;\n"],"names":["TableRowSelectionCell","props","isSelected","isSelectable","hideSelectionControl","isTableView","onToggleSelection","cardCellClassName","jsx","classNames","event","Checkbox","TableRow","children","disabled","className","noHover","selectable","sticky","remainingProps","renderConfigContext","useOptionalTableRenderConfigContext","renderContext","useOptionalTableRenderContext","interactionContext","useOptionalTableInteractionContext","section","useOptionalTableSection","bodyContext","useTableBodyContext","cellIndexRef","useRef","rowData","rowIndex","rowId","resolveRowKey","resolvedRowAnimationProps","interactiveRowProps","getInteractiveRowProps","clickedRow","clickedRowIndex","selectionCell","stickyInBodyScrollContainer","rowClassName","resolveRowClassName","rowContent","jsxs","Fragment","staticRowProps","extractTableHtmlAttributes","animatedRowProps","rowNode","TableRowContext","explicitColumnIndex","span","nextIndex","motion"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { ButtonDropdownProps } from '../dropdown/ButtonDropdown';
2
+ export type TableRowActionsDropdownProps = Omit<ButtonDropdownProps, 'title' | 'bsStyle' | 'variant' | 'iconOnly' | 'iconName' | 'noCaret' | 'splitButton' | 'pullRight' | 'usePortal'> & {
3
+ /**
4
+ * Accessible label applied to the icon-only trigger button.
5
+ *
6
+ * @default 'Row actions'
7
+ */
8
+ 'aria-label'?: string;
9
+ };
10
+ declare const TableRowActionsDropdown: ({ "aria-label": ariaLabel, ...remainingProps }: TableRowActionsDropdownProps) => import("react/jsx-runtime").JSX.Element;
11
+ export default TableRowActionsDropdown;
@@ -0,0 +1,22 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import a from "../dropdown/ButtonDropdown.js";
3
+ const i = ({
4
+ "aria-label": t = "Row actions",
5
+ ...r
6
+ }) => /* @__PURE__ */ o(
7
+ a,
8
+ {
9
+ ...r,
10
+ "aria-label": t,
11
+ title: /* @__PURE__ */ o("span", { className: "rioglyph rioglyph-option-horizontal", "aria-hidden": "true" }),
12
+ bsStyle: "muted",
13
+ iconOnly: !0,
14
+ noCaret: !0,
15
+ pullRight: !0,
16
+ usePortal: !0
17
+ }
18
+ );
19
+ export {
20
+ i as default
21
+ };
22
+ //# sourceMappingURL=TableRowActionsDropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableRowActionsDropdown.js","sources":["../../../src/components/table/TableRowActionsDropdown.tsx"],"sourcesContent":["import ButtonDropdown, { type ButtonDropdownProps } from '../dropdown/ButtonDropdown';\n\nexport type TableRowActionsDropdownProps = Omit<\n ButtonDropdownProps,\n 'title' | 'bsStyle' | 'variant' | 'iconOnly' | 'iconName' | 'noCaret' | 'splitButton' | 'pullRight' | 'usePortal'\n> & {\n /**\n * Accessible label applied to the icon-only trigger button.\n *\n * @default 'Row actions'\n */\n 'aria-label'?: string;\n};\n\nconst TableRowActionsDropdown = ({\n 'aria-label': ariaLabel = 'Row actions',\n ...remainingProps\n}: TableRowActionsDropdownProps) => (\n <ButtonDropdown\n {...remainingProps}\n aria-label={ariaLabel}\n title={<span className='rioglyph rioglyph-option-horizontal' aria-hidden='true' />}\n bsStyle='muted'\n iconOnly\n noCaret\n pullRight\n usePortal\n />\n);\n\nexport default TableRowActionsDropdown;\n"],"names":["TableRowActionsDropdown","ariaLabel","remainingProps","jsx","ButtonDropdown"],"mappings":";;AAcA,MAAMA,IAA0B,CAAC;AAAA,EAC7B,cAAcC,IAAY;AAAA,EAC1B,GAAGC;AACP,MACI,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACI,GAAGF;AAAA,IACJ,cAAYD;AAAA,IACZ,OAAO,gBAAAE,EAAC,QAAA,EAAK,WAAU,uCAAsC,eAAY,QAAO;AAAA,IAChF,SAAQ;AAAA,IACR,UAAQ;AAAA,IACR,SAAO;AAAA,IACP,WAAS;AAAA,IACT,WAAS;AAAA,EAAA;AACb;"}
@@ -0,0 +1,25 @@
1
+ import { MouseEventHandler } from 'react';
2
+ export type TableStickyRowButtonProps = {
3
+ /**
4
+ * Controls whether the related row is currently sticky.
5
+ *
6
+ * @default false
7
+ */
8
+ active?: boolean;
9
+ /**
10
+ * Disables the sticky row button.
11
+ *
12
+ * @default false
13
+ */
14
+ disabled?: boolean;
15
+ /**
16
+ * Callback triggered when the sticky row button is clicked.
17
+ */
18
+ onClick?: MouseEventHandler<HTMLButtonElement>;
19
+ /**
20
+ * Optional additional class names for the button element.
21
+ */
22
+ className?: string;
23
+ };
24
+ declare const TableStickyRowButton: (props: TableStickyRowButtonProps) => import("react/jsx-runtime").JSX.Element;
25
+ export default TableStickyRowButton;
@@ -0,0 +1,32 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import l from "../button/Button.js";
3
+ import s from "../../utils/classNames.js";
4
+ const u = (a) => {
5
+ const { active: t = !1, disabled: i = !1, onClick: r, className: e, ...n } = a;
6
+ return /* @__PURE__ */ o(
7
+ l,
8
+ {
9
+ ...n,
10
+ bsStyle: "muted",
11
+ bsSize: "sm",
12
+ iconOnly: !0,
13
+ active: t,
14
+ disabled: i,
15
+ className: s("table-sticky-row-button", e),
16
+ onClick: r,
17
+ children: /* @__PURE__ */ o(
18
+ "span",
19
+ {
20
+ className: s(
21
+ "rioglyph rioglyph-pushpin transition-all transition-ease-in-out transition-duration-01 transform-origin-center",
22
+ t ? "rotate-315" : "rotate-360"
23
+ )
24
+ }
25
+ )
26
+ }
27
+ );
28
+ };
29
+ export {
30
+ u as default
31
+ };
32
+ //# sourceMappingURL=TableStickyRowButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableStickyRowButton.js","sources":["../../../src/components/table/TableStickyRowButton.tsx"],"sourcesContent":["import type { MouseEventHandler } from 'react';\n\nimport Button from '../button/Button';\nimport classNames from '../../utils/classNames';\n\nexport type TableStickyRowButtonProps = {\n /**\n * Controls whether the related row is currently sticky.\n *\n * @default false\n */\n active?: boolean;\n\n /**\n * Disables the sticky row button.\n *\n * @default false\n */\n disabled?: boolean;\n\n /**\n * Callback triggered when the sticky row button is clicked.\n */\n onClick?: MouseEventHandler<HTMLButtonElement>;\n\n /**\n * Optional additional class names for the button element.\n */\n className?: string;\n};\n\nconst TableStickyRowButton = (props: TableStickyRowButtonProps) => {\n const { active = false, disabled = false, onClick, className, ...remainingProps } = props;\n\n return (\n <Button\n {...remainingProps}\n bsStyle='muted'\n bsSize='sm'\n iconOnly\n active={active}\n disabled={disabled}\n className={classNames('table-sticky-row-button', className)}\n onClick={onClick}\n >\n <span\n className={classNames(\n 'rioglyph rioglyph-pushpin transition-all transition-ease-in-out transition-duration-01 transform-origin-center',\n active ? 'rotate-315' : 'rotate-360'\n )}\n />\n </Button>\n );\n};\n\nexport default TableStickyRowButton;\n"],"names":["TableStickyRowButton","props","active","disabled","onClick","className","remainingProps","jsx","Button","classNames"],"mappings":";;;AA+BA,MAAMA,IAAuB,CAACC,MAAqC;AAC/D,QAAM,EAAE,QAAAC,IAAS,IAAO,UAAAC,IAAW,IAAO,SAAAC,GAAS,WAAAC,GAAW,GAAGC,EAAA,IAAmBL;AAEpF,SACI,gBAAAM;AAAA,IAACC;AAAA,IAAA;AAAA,MACI,GAAGF;AAAA,MACJ,SAAQ;AAAA,MACR,QAAO;AAAA,MACP,UAAQ;AAAA,MACR,QAAAJ;AAAA,MACA,UAAAC;AAAA,MACA,WAAWM,EAAW,2BAA2BJ,CAAS;AAAA,MAC1D,SAAAD;AAAA,MAEA,UAAA,gBAAAG;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,WAAWE;AAAA,YACP;AAAA,YACAP,IAAS,eAAe;AAAA,UAAA;AAAA,QAC5B;AAAA,MAAA;AAAA,IACJ;AAAA,EAAA;AAGZ;"}