@pstdio/ui 0.20.0 → 0.21.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 (60) hide show
  1. package/dist/{MermaidComponent-AmAjWLPm.js → MermaidComponent-BVMyKttu.js} +2 -2
  2. package/dist/{MermaidComponent-AmAjWLPm.js.map → MermaidComponent-BVMyKttu.js.map} +1 -1
  3. package/dist/chat-ui.js +2 -6
  4. package/dist/chat-ui.js.map +1 -1
  5. package/dist/components/data-table/build-columns.d.ts +1 -0
  6. package/dist/components/data-table/types.d.ts +1 -0
  7. package/dist/components/diff-viewer/code-editor.d.ts +2 -0
  8. package/dist/components/diff-viewer/file-change-badge.d.ts +3 -0
  9. package/dist/components/diff-viewer/file-list-panel.d.ts +0 -1
  10. package/dist/components/diff-viewer/index.d.ts +2 -0
  11. package/dist/components/param-editor/param-editor.types.d.ts +2 -0
  12. package/dist/components/tag-editor/tag-editor-row.d.ts +1 -0
  13. package/dist/components/tag-editor/tag-editor.types.d.ts +1 -0
  14. package/dist/components/tag-editor/tag-settings-panel.d.ts +1 -1
  15. package/dist/components/tree-list/tree-list-background.d.ts +8 -0
  16. package/dist/components/tree-list/tree-list-drag.d.ts +7 -0
  17. package/dist/components/tree-list/tree-list-inline-creation-story.d.ts +3 -0
  18. package/dist/components/tree-list/tree-list-inline-input.d.ts +9 -0
  19. package/dist/components/tree-list/tree-list-move-surface.d.ts +7 -0
  20. package/dist/components/tree-list/tree-list-node-row.d.ts +1 -0
  21. package/dist/components/tree-list/tree-list.d.ts +2 -0
  22. package/dist/components/tree-list/tree-list.types.d.ts +13 -0
  23. package/dist/data-table.js +666 -643
  24. package/dist/data-table.js.map +1 -1
  25. package/dist/diff.js +799 -815
  26. package/dist/diff.js.map +1 -1
  27. package/dist/{edit-mode-data-table-4GMiDy75.js → edit-mode-data-table-D6NeiDJx.js} +3 -3
  28. package/dist/{edit-mode-data-table-4GMiDy75.js.map → edit-mode-data-table-D6NeiDJx.js.map} +1 -1
  29. package/dist/{editor-config-Dyh8n5A2.js → editor-config-D9OksZ93.js} +3 -3
  30. package/dist/{editor-config-Dyh8n5A2.js.map → editor-config-D9OksZ93.js.map} +1 -1
  31. package/dist/index.d.ts +1 -1
  32. package/dist/index.js +1025 -1042
  33. package/dist/index.js.map +1 -1
  34. package/dist/{kanban-renderer-toolbar-BcUZvGyY.js → kanban-renderer-toolbar-CpegGbwq.js} +2 -2
  35. package/dist/{kanban-renderer-toolbar-BcUZvGyY.js.map → kanban-renderer-toolbar-CpegGbwq.js.map} +1 -1
  36. package/dist/kanban-renderer.js +5 -5
  37. package/dist/{lazy-markdown-editor-CWSREEhf.js → lazy-markdown-editor-B7uP2ALS.js} +2 -2
  38. package/dist/{lazy-markdown-editor-CWSREEhf.js.map → lazy-markdown-editor-B7uP2ALS.js.map} +1 -1
  39. package/dist/{list-row-B8L4TGsh.js → list-row-9oxy-F0v.js} +228 -253
  40. package/dist/list-row-9oxy-F0v.js.map +1 -0
  41. package/dist/{param-editor-w3xH-t8A.js → param-editor-B8Ff9Nm8.js} +2 -2
  42. package/dist/{param-editor-w3xH-t8A.js.map → param-editor-B8Ff9Nm8.js.map} +1 -1
  43. package/dist/{param-editor-field-C8zRDStn.js → param-editor-field-Cu4pto_a.js} +3 -3
  44. package/dist/{param-editor-field-C8zRDStn.js.map → param-editor-field-Cu4pto_a.js.map} +1 -1
  45. package/dist/{rich-message-jZ2oPQhU.js → rich-message-DdFYRzTo.js} +2 -2
  46. package/dist/{rich-message-jZ2oPQhU.js.map → rich-message-DdFYRzTo.js.map} +1 -1
  47. package/dist/rich-text.js +4 -4
  48. package/dist/terminal.js +1 -1
  49. package/dist/terminal.js.map +1 -1
  50. package/dist/theme/recipes/input.d.ts +32 -0
  51. package/dist/{theme-J8K8KbZi.js → theme-BH4fSst9.js} +33 -1
  52. package/dist/theme-BH4fSst9.js.map +1 -0
  53. package/dist/theme.js +1 -1
  54. package/dist/tree-list-uV4UFj0x.js +1116 -0
  55. package/dist/tree-list-uV4UFj0x.js.map +1 -0
  56. package/package.json +1 -1
  57. package/dist/list-row-B8L4TGsh.js.map +0 -1
  58. package/dist/theme-J8K8KbZi.js.map +0 -1
  59. package/dist/tree-list-CC13pOYi.js +0 -1033
  60. package/dist/tree-list-CC13pOYi.js.map +0 -1
@@ -3,10 +3,10 @@ import { c as L } from "react/compiler-runtime";
3
3
  import { Icon as B, Box as le, chakra as Dt, Portal as st, Popover as ot, IconButton as ee, Flex as te, Table as O, Button as ye, Text as xe, Menu as Y, Stack as ht } from "@chakra-ui/react";
4
4
  import { isValidElement as mt, useRef as it, useEffect as rt, useState as ve } from "react";
5
5
  import { S as gt } from "./browser-storage-DPtOQJx0.js";
6
- import { K as At, f as Et, u as _t } from "./kanban-renderer-toolbar-BcUZvGyY.js";
6
+ import { K as At, f as Et, u as _t } from "./kanban-renderer-toolbar-CpegGbwq.js";
7
7
  import { createColumnHelper as Ht } from "@tanstack/react-table";
8
8
  import { CalendarClock as Tt, Type as Pt, Hash as Wt, CheckCircle2 as Mt, Check as ct, X as bt, Minus as Nt, Plus as pt, Trash2 as Ct, Pencil as Ot, ChevronsLeft as Bt, ChevronLeft as $t, ChevronRight as Vt, ChevronsRight as Lt } from "lucide-react";
9
- import { R as St, L as xt } from "./list-row-B8L4TGsh.js";
9
+ import { R as St, L as xt } from "./list-row-9oxy-F0v.js";
10
10
  import { C as wt, N as jt, a as Kt } from "./number-input-WUfejtNx.js";
11
11
  const Ft = (t) => {
12
12
  const e = L(8), {
@@ -772,4 +772,4 @@ export {
772
772
  Bn as r,
773
773
  Qt as s
774
774
  };
775
- //# sourceMappingURL=edit-mode-data-table-4GMiDy75.js.map
775
+ //# sourceMappingURL=edit-mode-data-table-D6NeiDJx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"edit-mode-data-table-4GMiDy75.js","sources":["../src/components/data-table/data-table-header.tsx","../src/components/data-table/helpers.tsx","../src/components/data-table/data-table-state.ts","../src/components/data-table/edit-mode-data-table-editors.tsx","../src/components/data-table/edit-mode-data-table-cell.tsx","../src/components/data-table/edit-mode-data-table-selection.tsx","../src/components/data-table/edit-mode-data-table-body.tsx","../src/components/data-table/edit-mode-data-table-header.tsx","../src/components/data-table/pagination-footer.tsx","../src/components/data-table/selection-toolbar.tsx","../src/components/data-table/edit-mode-data-table.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { KanbanRendererToolbar } from \"../kanban-renderer/kanban-renderer-toolbar\";\nimport type { AttributeDescriptor, KanbanRendererRow, KanbanRendererSavedView } from \"../kanban-renderer/types\";\n\ninterface DataTableHeaderProps {\n rows: KanbanRendererRow[];\n attributes: AttributeDescriptor[];\n storageKey: string;\n columnControl: ReactNode;\n defaultViews?: KanbanRendererSavedView[];\n defaultActiveViewId?: string;\n}\n\nexport const DataTableHeader = (props: DataTableHeaderProps) => {\n const { rows, attributes, storageKey, columnControl, defaultViews, defaultActiveViewId } = props;\n\n return (\n <KanbanRendererToolbar\n rows={rows}\n storageKey={storageKey}\n attributes={attributes}\n defaultSettings={{ viewMode: \"list\" }}\n defaultViews={defaultViews}\n defaultActiveViewId={defaultActiveViewId}\n displayControl={columnControl}\n />\n );\n};\n","import { Icon as ChakraIcon } from \"@chakra-ui/react\";\nimport { createColumnHelper } from \"@tanstack/react-table\";\nimport { CalendarClock, CheckCircle2, Hash, Type } from \"lucide-react\";\nimport { isValidElement, type ReactElement, type ReactNode } from \"react\";\n\nimport type { ColumnType, DisplayValue, RowData } from \"./types\";\n\nexport const isDisplayValue = (value: unknown): value is DisplayValue =>\n typeof value === \"object\" && value !== null && \"display\" in value;\n\nexport const isString = (v: unknown): v is string => typeof v === \"string\" || v instanceof String;\nexport const isNumber = (v: unknown): v is number => typeof v === \"number\" || v instanceof Number;\nexport const isBoolean = (v: unknown): v is boolean => typeof v === \"boolean\" || v instanceof Boolean;\n\nexport const getType = (values: unknown[]): ColumnType => {\n const comparableValues = values\n .map((value) => {\n if (isDisplayValue(value)) return value.sortValue ?? null;\n if (value instanceof String || value instanceof Number || value instanceof Boolean) return value.valueOf();\n if (isValidElement(value)) return null;\n return value;\n })\n .filter((value) => value !== null && value !== undefined);\n\n if (comparableValues.length === 0) return \"unknown\";\n if (comparableValues.every((v) => isString(v) && !Number.isNaN(Date.parse(v.toString())))) return \"date\";\n if (comparableValues.every((v) => isNumber(v))) return \"number\";\n if (comparableValues.every((v) => isBoolean(v))) return \"boolean\";\n if (comparableValues.every((v) => isString(v))) return \"string\";\n return \"unknown\";\n};\n\nconst headerIconProps = {\n boxSize: \"14px\",\n marginRight: \"2px\",\n};\n\nexport const getIcon = (values: unknown[]): ReactElement | null => {\n const type = getType(values);\n if (type === \"date\") return <ChakraIcon as={CalendarClock} {...headerIconProps} />;\n if (type === \"string\") return <ChakraIcon as={Type} {...headerIconProps} />;\n if (type === \"number\") return <ChakraIcon as={Hash} {...headerIconProps} />;\n if (type === \"boolean\") return <ChakraIcon as={CheckCircle2} {...headerIconProps} />;\n return null;\n};\n\nexport function formatDisplayValue(value: unknown): ReactNode {\n if (isDisplayValue(value)) return value.display;\n if (isValidElement(value)) return value;\n\n if (value instanceof String || value instanceof Number || value instanceof Boolean) {\n value = value.valueOf();\n }\n\n switch (typeof value) {\n case \"boolean\":\n return value ? \"TRUE\" : \"FALSE\";\n case \"number\":\n return value;\n case \"object\":\n return value !== null ? JSON.stringify(value) : \"-\";\n case \"undefined\":\n return \"-\";\n default:\n return value ? String(value) : \"-\";\n }\n}\n\nexport const columnHelper = createColumnHelper<RowData>();\n","import type {\n AttributeDescriptor,\n KanbanRendererFilterState,\n KanbanRendererRow,\n} from \"@/components/kanban-renderer/types\";\nimport { filterRows } from \"../kanban-renderer/kanban-renderer-grouping\";\nimport { isDisplayValue } from \"./helpers\";\nimport type { DataTableProps, DataTableSelectionAction, RowData } from \"./types\";\n\nexport const defaultPageSize = 30;\n\nexport interface DataTableRendererRow extends KanbanRendererRow {\n sourceRow: RowData;\n}\n\nexport const resolveDataTableRowId = (row: RowData, index: number, getRowId?: DataTableProps[\"getRowId\"]) => {\n if (getRowId) return getRowId(row, index);\n return typeof row.id === \"string\" ? row.id : String(index);\n};\n\nexport const resolveInitialPageSize = (props: Pick<DataTableProps, \"initialPageSize\">) => {\n if (typeof props.initialPageSize === \"number\" && props.initialPageSize > 0) return props.initialPageSize;\n return defaultPageSize;\n};\n\nexport const getSelectedOriginalRows = (rows: Array<{ original: RowData }>) => rows.map((row) => row.original);\n\nexport const resolveSelectionActions = (\n props: Pick<DataTableProps, \"selectionActions\" | \"onCSVDownload\" | \"getRowId\">,\n) => {\n const actions: DataTableSelectionAction[] = [...(props.selectionActions ?? [])];\n\n if (props.onCSVDownload) {\n actions.push({\n label: \"Download CSV\",\n onSelect: (rows) => {\n props.onCSVDownload?.(rows.map((row, index) => resolveDataTableRowId(row, index, props.getRowId)));\n },\n });\n }\n\n return actions;\n};\n\nexport const shouldEnableSelection = (\n props: Pick<DataTableProps, \"selectionMode\" | \"selectionActions\" | \"onCSVDownload\">,\n) => props.selectionMode === \"multiple\" || Boolean(props.onCSVDownload) || Boolean(props.selectionActions?.length);\n\nexport const shouldHighlightActiveRow = (props: {\n enableRowActivation?: boolean;\n activeRowId?: string | null;\n rowId: string;\n}) => props.enableRowActivation === true && props.activeRowId === props.rowId;\n\nconst toAttributeValue = (value: unknown) => {\n const raw = isDisplayValue(value) ? value.sortValue : value;\n if (typeof raw === \"boolean\") return String(raw);\n return raw;\n};\n\nconst isNumberColumn = (rows: RowData[], columnKey: string) => {\n const values = rows\n .map((row) => toAttributeValue(row[columnKey]))\n .filter((value) => value !== null && value !== undefined);\n return values.length > 0 && values.every((value) => typeof value === \"number\");\n};\n\nconst resolveAttributeType = (rows: RowData[], columnKey: string): AttributeDescriptor[\"type\"] => {\n if (isNumberColumn(rows, columnKey)) return { kind: \"number\" };\n return { kind: \"string\" };\n};\n\nexport const buildDataTableRendererAttributes = (\n rows: RowData[],\n columnKeys: string[],\n compactHeaders?: Partial<Record<string, string>>,\n): AttributeDescriptor[] =>\n columnKeys.map((columnKey) => ({\n id: columnKey,\n label: compactHeaders?.[columnKey] ?? columnKey,\n type: resolveAttributeType(rows, columnKey),\n filterable: true,\n sortable: true,\n displayable: true,\n }));\n\nexport const buildDataTableRendererRows = (\n rows: RowData[],\n columnKeys: string[],\n getRowId?: DataTableProps[\"getRowId\"],\n): DataTableRendererRow[] =>\n rows.map((row, index) => {\n const attributes = Object.fromEntries(columnKeys.map((columnKey) => [columnKey, toAttributeValue(row[columnKey])]));\n const rowId = resolveDataTableRowId(row, index, getRowId);\n const firstValue = columnKeys.length > 0 ? toAttributeValue(row[columnKeys[0]!]) : rowId;\n\n return {\n id: rowId,\n title: String(firstValue ?? rowId),\n attributes,\n sourceRow: row,\n };\n });\n\nexport const filterDataTableRows = (\n rows: DataTableRendererRow[],\n filters: KanbanRendererFilterState,\n attributes: AttributeDescriptor[],\n) => filterRows(rows, filters, attributes) as DataTableRendererRow[];\n\nexport const resolveDataTableColumnOrder = (availableColumnIds: string[], requestedColumnOrder: string[]) => {\n const availableColumnIdSet = new Set(availableColumnIds);\n const orderedColumnIds = requestedColumnOrder.filter((columnId) => availableColumnIdSet.has(columnId));\n const orderedColumnIdSet = new Set(orderedColumnIds);\n const missingColumnIds = availableColumnIds.filter((columnId) => !orderedColumnIdSet.has(columnId));\n\n return [...orderedColumnIds, ...missingColumnIds];\n};\n\nexport const reorderDataTableColumns = (columnIds: string[], activeColumnId: string, overColumnId: string) => {\n const activeIndex = columnIds.indexOf(activeColumnId);\n const overIndex = columnIds.indexOf(overColumnId);\n\n if (activeIndex < 0 || overIndex < 0 || activeIndex === overIndex) return columnIds;\n\n const nextColumnIds = [...columnIds];\n const [activeColumn] = nextColumnIds.splice(activeIndex, 1);\n if (!activeColumn) return columnIds;\n\n nextColumnIds.splice(overIndex, 0, activeColumn);\n return nextColumnIds;\n};\n\nexport const resolveDataTableToolbarStorageKey = (props: { toolbarStorageKey?: string; columnKeys: string[] }) =>\n props.toolbarStorageKey ?? `data-table:${props.columnKeys.join(\"|\") || \"empty\"}`;\n","import { Box, chakra, Flex, IconButton, Popover, Portal } from \"@chakra-ui/react\";\nimport { Check, X } from \"lucide-react\";\nimport { type KeyboardEvent, type ReactNode, type RefObject, useEffect, useRef } from \"react\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\n\ninterface InlineEditActionsProps {\n cancelLabel: string;\n saveLabel: string;\n onCancel: () => void;\n onSave: () => void;\n}\n\nconst InlineEditActions = (props: InlineEditActionsProps) => {\n const { cancelLabel, saveLabel, onCancel, onSave } = props;\n\n return (\n <Flex gap=\"2xs\" flexShrink=\"0\">\n <IconButton type=\"button\" size=\"2xs\" variant=\"ghost\" aria-label={saveLabel} onClick={onSave}>\n <Check />\n </IconButton>\n <IconButton type=\"button\" size=\"2xs\" variant=\"ghost\" aria-label={cancelLabel} onClick={onCancel}>\n <X />\n </IconButton>\n </Flex>\n );\n};\n\ninterface EditModeTextSurfaceProps {\n accessibleName: string;\n textStyle: string;\n value: string;\n onCancel: () => void;\n onChange: (value: string) => void;\n onSave: () => void;\n}\n\nconst EditModeTextSurface = (props: EditModeTextSurfaceProps) => {\n const { accessibleName, textStyle, value, onCancel, onChange, onSave } = props;\n const elementRef = useRef<HTMLDivElement>(null);\n const initialValueRef = useRef(value);\n\n useEffect(() => {\n const element = elementRef.current;\n if (!element) return;\n\n element.textContent = initialValueRef.current;\n element.focus();\n const selection = globalThis.getSelection();\n const range = document.createRange();\n range.selectNodeContents(element);\n selection?.removeAllRanges();\n selection?.addRange(range);\n }, []);\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"Enter\") {\n event.preventDefault();\n onSave();\n }\n if (event.key === \"Escape\") onCancel();\n };\n\n return (\n <chakra.div\n ref={elementRef}\n role=\"textbox\"\n aria-label={accessibleName}\n contentEditable\n suppressContentEditableWarning\n height=\"10\"\n width=\"100%\"\n paddingX=\"xs\"\n paddingY=\"xs\"\n overflow=\"hidden\"\n background=\"transparent\"\n border=\"none\"\n borderRadius=\"0\"\n outline=\"none\"\n textStyle={textStyle}\n textOverflow=\"ellipsis\"\n whiteSpace=\"nowrap\"\n onInput={(event) => onChange(event.currentTarget.textContent ?? \"\")}\n onKeyDown={handleKeyDown}\n />\n );\n};\n\ninterface EditModeHeaderEditorProps {\n accessibleName: string;\n draft: string;\n onCancel: () => void;\n onChange: (value: string) => void;\n onSave: () => void;\n}\n\nexport const EditModeHeaderEditor = (props: EditModeHeaderEditorProps) => {\n const { accessibleName, draft, onCancel, onChange, onSave } = props;\n\n return (\n <Box position=\"absolute\" inset=\"0\" width=\"100%\" height=\"10\" background=\"bg.subtle\" zIndex=\"1\">\n <EditModeTextSurface\n accessibleName={`Rename column ${accessibleName}`}\n textStyle=\"label/S/medium\"\n value={draft}\n onChange={onChange}\n onSave={onSave}\n onCancel={onCancel}\n />\n <Box position=\"absolute\" top=\"50%\" right=\"2xs\" transform=\"translateY(-50%)\" background=\"bg.subtle\">\n <InlineEditActions\n saveLabel=\"Save column name\"\n cancelLabel=\"Cancel column rename\"\n onSave={onSave}\n onCancel={onCancel}\n />\n </Box>\n </Box>\n );\n};\n\ninterface EditModeCellEditorProps {\n anchorRef: RefObject<HTMLElement | null>;\n customEditor?: ReactNode;\n draft: string;\n onCancel: () => void;\n onChange: (value: string) => void;\n onSave: () => void;\n}\n\nexport const EditModeCellEditor = (props: EditModeCellEditorProps) => {\n const { anchorRef, customEditor, draft, onCancel, onChange, onSave } = props;\n\n return (\n <Popover.Root\n open\n closeOnInteractOutside={false}\n positioning={{\n placement: \"bottom-start\",\n offset: { mainAxis: -40 },\n getAnchorElement: () => anchorRef.current,\n }}\n >\n <Portal>\n <Popover.Positioner>\n <Popover.Content\n data-table-cell-editor\n width=\"calc(var(--reference-width) + 3rem)\"\n minWidth=\"calc(var(--reference-width) + 3rem)\"\n maxWidth=\"calc(100vw - 2rem)\"\n padding=\"0\"\n overflow=\"hidden\"\n background=\"bg\"\n animation=\"none\"\n zIndex=\"popover\"\n >\n <ScrollArea\n data-table-cell-editor-body\n width=\"100%\"\n minHeight=\"10\"\n maxHeight=\"48\"\n contentProps={{ minHeight: \"10\" }}\n viewportProps={{ maxHeight: \"48\", overscrollBehavior: \"contain\" }}\n >\n {customEditor ?? (\n <EditModeTextSurface\n accessibleName=\"Edit cell\"\n textStyle=\"paragraph/S/regular\"\n value={draft}\n onChange={onChange}\n onSave={onSave}\n onCancel={onCancel}\n />\n )}\n </ScrollArea>\n <Flex\n data-table-cell-editor-footer\n height=\"8\"\n flexShrink=\"0\"\n alignItems=\"center\"\n justifyContent=\"flex-end\"\n paddingX=\"xs\"\n borderTopWidth=\"1px\"\n borderColor=\"border.subtle\"\n background=\"bg.subtle\"\n >\n <InlineEditActions\n saveLabel=\"Save cell\"\n cancelLabel=\"Cancel cell edit\"\n onSave={onSave}\n onCancel={onCancel}\n />\n </Flex>\n </Popover.Content>\n </Popover.Positioner>\n </Portal>\n </Popover.Root>\n );\n};\n","import { Box, Table } from \"@chakra-ui/react\";\nimport { type KeyboardEvent, type ReactNode, useRef } from \"react\";\nimport { EditModeCellEditor } from \"./edit-mode-data-table-editors\";\nimport type { DataTableCellContext, DataTableEditModeColumn, DataTableEditModeConfig } from \"./types\";\n\ninterface EditModeDataTableCellProps {\n activeDraft?: string;\n column: DataTableEditModeColumn;\n context: DataTableCellContext;\n editMode: DataTableEditModeConfig;\n isActive: boolean;\n isReadOnly: boolean;\n onActivate: () => void;\n onCancel: () => void;\n onDraftChange: (draft: string) => void;\n onSave: () => void;\n}\n\nexport const EditModeDataTableCell = (props: EditModeDataTableCellProps) => {\n const {\n activeDraft = \"\",\n column,\n context,\n editMode,\n isActive,\n isReadOnly,\n onActivate,\n onCancel,\n onDraftChange,\n onSave,\n } = props;\n const cellRef = useRef<HTMLTableCellElement>(null);\n const isEditable = !isReadOnly && (editMode.isCellEditable?.(context) ?? true);\n let content: ReactNode;\n\n if (isActive) {\n const customEditor = editMode.renderCellEditor?.({ context, value: activeDraft, onChange: onDraftChange });\n content = (\n <EditModeCellEditor\n anchorRef={cellRef}\n draft={activeDraft}\n customEditor={customEditor}\n onChange={onDraftChange}\n onSave={onSave}\n onCancel={onCancel}\n />\n );\n } else {\n content = (\n <Box width=\"100%\" minHeight=\"5\" textAlign=\"inherit\">\n {editMode.renderCell?.(context) ?? String(context.value ?? \"\")}\n </Box>\n );\n }\n\n const handleKeyDown = (event: KeyboardEvent<HTMLTableCellElement>) => {\n if (!isEditable || isActive || (event.key !== \"Enter\" && event.key !== \" \")) return;\n event.preventDefault();\n onActivate();\n };\n\n return (\n <Table.Cell\n ref={cellRef}\n data-column-id={column.id}\n data-editable={String(isEditable)}\n data-editing={isActive ? \"true\" : undefined}\n padding={isActive ? \"0\" : \"xs\"}\n height=\"10\"\n maxHeight=\"10\"\n position=\"relative\"\n overflow={isActive ? \"visible\" : \"hidden\"}\n background=\"bg\"\n textAlign={column.alignment ?? \"left\"}\n textStyle=\"paragraph/S/regular\"\n textOverflow=\"ellipsis\"\n verticalAlign=\"middle\"\n whiteSpace=\"nowrap\"\n borderRightWidth=\"1px\"\n borderBottomWidth=\"1px\"\n borderColor=\"border.subtle\"\n cursor={isEditable && !isActive ? \"text\" : undefined}\n tabIndex={isEditable && !isActive ? 0 : undefined}\n onClick={isEditable && !isActive ? onActivate : undefined}\n onKeyDown={handleKeyDown}\n >\n {content}\n </Table.Cell>\n );\n};\n","import { Icon as ChakraIcon, Table } from \"@chakra-ui/react\";\nimport { Check, Minus } from \"lucide-react\";\nimport { Checkbox } from \"@/components/primitives/checkbox\";\n\nconst stopControlPropagation = (event: { stopPropagation: () => void }) => {\n event.stopPropagation();\n};\n\ninterface EditModeSelectionHeaderProps {\n checked: boolean;\n indeterminate: boolean;\n onChange: (checked: boolean) => void;\n}\n\nexport const EditModeSelectionHeader = (props: EditModeSelectionHeaderProps) => {\n const { checked, indeterminate, onChange } = props;\n\n return (\n <Checkbox\n checked={checked ? true : indeterminate ? \"indeterminate\" : false}\n aria-label=\"Select all\"\n icon={<ChakraIcon as={indeterminate ? Minus : Check} boxSize=\"12px\" strokeWidth=\"3\" />}\n onClick={stopControlPropagation}\n onCheckedChange={(details) => onChange(details.checked === true)}\n />\n );\n};\n\ninterface EditModeSelectionCellProps {\n checked: boolean;\n onChange: (checked: boolean) => void;\n}\n\nexport const EditModeSelectionCell = (props: EditModeSelectionCellProps) => {\n const { checked, onChange } = props;\n\n return (\n <Table.Cell\n data-column-id=\"rowSelection\"\n height=\"10\"\n padding=\"xs\"\n textAlign=\"center\"\n background=\"bg\"\n borderRightWidth=\"1px\"\n borderBottomWidth=\"1px\"\n borderColor=\"border.subtle\"\n >\n <Checkbox\n checked={checked}\n aria-label=\"Select row\"\n icon={<ChakraIcon as={Check} boxSize=\"12px\" strokeWidth=\"3\" />}\n onClick={stopControlPropagation}\n onCheckedChange={(details) => onChange(details.checked === true)}\n />\n </Table.Cell>\n );\n};\n","import { Button, Icon, Table } from \"@chakra-ui/react\";\nimport { Plus, Trash2 } from \"lucide-react\";\nimport { ResourceContextMenu } from \"@/components/overlays/resource-context-menu\";\nimport { EditModeDataTableCell } from \"./edit-mode-data-table-cell\";\nimport { EditModeSelectionCell } from \"./edit-mode-data-table-selection\";\nimport type { DataTableCellContext, DataTableEditModeColumn, DataTableEditModeConfig, RowData } from \"./types\";\n\ninterface ActiveCell {\n rowId: string;\n columnId: string;\n draft: string;\n}\n\ninterface EditModeDataTableBodyProps {\n activeCell: ActiveCell | null;\n columns: DataTableEditModeColumn[];\n data: RowData[];\n editMode: DataTableEditModeConfig;\n enableSelection: boolean;\n isReadOnly: boolean;\n pageIndex: number;\n pageRows: RowData[];\n pageSize: number;\n selectedRowIds: Set<string>;\n showNewRow: boolean;\n onActivateCell: (cell: ActiveCell) => void;\n onAddRow: () => void;\n onCancelCell: () => void;\n onCommitCell: () => void;\n onDraftChange: (cell: ActiveCell) => void;\n onRemoveRow: (rowId: string) => void;\n onToggleRowSelection: (rowId: string, checked: boolean) => void;\n rowIdFor: (row: RowData, index: number) => string;\n}\n\nexport const EditModeDataTableBody = (props: EditModeDataTableBodyProps) => {\n const {\n activeCell,\n columns,\n data,\n editMode,\n enableSelection,\n isReadOnly,\n pageIndex,\n pageRows,\n pageSize,\n selectedRowIds,\n showNewRow,\n onActivateCell,\n onAddRow,\n onCancelCell,\n onCommitCell,\n onDraftChange,\n onRemoveRow,\n onToggleRowSelection,\n rowIdFor,\n } = props;\n\n return (\n <Table.Body>\n {pageRows.map((row, visibleIndex) => {\n const rowIndex = pageIndex * pageSize + visibleIndex;\n const sourceIndex = data.indexOf(row);\n const rowId = rowIdFor(row, sourceIndex);\n const tableRow = (\n <Table.Row\n key={rowId}\n data-document-row=\"true\"\n data-selected={selectedRowIds.has(rowId) ? \"true\" : undefined}\n aria-selected={selectedRowIds.has(rowId)}\n height=\"10\"\n background=\"bg\"\n >\n <Table.Cell\n data-column-id=\"rowIndex\"\n height=\"10\"\n padding=\"xs\"\n textAlign=\"center\"\n textStyle=\"paragraph/S/regular\"\n background=\"bg.subtle\"\n borderRightWidth=\"1px\"\n borderBottomWidth=\"1px\"\n borderColor=\"border.subtle\"\n >\n {rowIndex + 1}\n </Table.Cell>\n {enableSelection ? (\n <EditModeSelectionCell\n checked={selectedRowIds.has(rowId)}\n onChange={(checked) => onToggleRowSelection(rowId, checked)}\n />\n ) : null}\n {columns.map((column) => {\n const context: DataTableCellContext = {\n row,\n rowId,\n columnId: column.id,\n value: row[column.id] ?? \"\",\n };\n const isActive = activeCell?.rowId === rowId && activeCell.columnId === column.id;\n return (\n <EditModeDataTableCell\n key={column.id}\n activeDraft={isActive ? activeCell?.draft : undefined}\n column={column}\n context={context}\n editMode={editMode}\n isActive={isActive}\n isReadOnly={isReadOnly}\n onActivate={() => onActivateCell({ rowId, columnId: column.id, draft: String(context.value ?? \"\") })}\n onDraftChange={(draft) => onDraftChange({ rowId, columnId: column.id, draft })}\n onSave={onCommitCell}\n onCancel={onCancelCell}\n />\n );\n })}\n {!isReadOnly ? (\n <Table.Cell\n data-column-id=\"editControl\"\n width=\"min-content\"\n height=\"10\"\n position=\"sticky\"\n right=\"0\"\n zIndex=\"1\"\n background=\"bg\"\n borderLeftWidth=\"1px\"\n borderBottomWidth=\"1px\"\n borderColor=\"border.subtle\"\n />\n ) : null}\n </Table.Row>\n );\n\n if (isReadOnly) return tableRow;\n\n return (\n <ResourceContextMenu\n key={rowId}\n contentMinWidth=\"12rem\"\n actions={[\n {\n key: \"delete-row\",\n label: \"Delete row\",\n icon: <Icon as={Trash2} boxSize=\"14px\" />,\n onClick: () => onRemoveRow(rowId),\n },\n ]}\n >\n {tableRow}\n </ResourceContextMenu>\n );\n })}\n {!isReadOnly && showNewRow ? (\n <Table.Row>\n <Table.Cell colSpan={columns.length + 2 + (enableSelection ? 1 : 0)} padding=\"0\">\n <Button\n size=\"xs\"\n variant=\"ghost-static\"\n width=\"100%\"\n justifyContent=\"flex-start\"\n paddingX=\"xs\"\n color=\"fg.muted\"\n onClick={onAddRow}\n >\n <Icon as={Plus} />\n New row\n </Button>\n </Table.Cell>\n </Table.Row>\n ) : null}\n </Table.Body>\n );\n};\n","import { Flex, Icon, IconButton, Table, Text } from \"@chakra-ui/react\";\nimport { Pencil, Plus, Trash2 } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport { ResourceContextMenu } from \"@/components/overlays/resource-context-menu\";\nimport { EditModeHeaderEditor } from \"./edit-mode-data-table-editors\";\nimport { getIcon } from \"./helpers\";\nimport type { DataTableEditModeColumn, DataTableEditModeConfig, RowData } from \"./types\";\n\ninterface ActiveHeader {\n columnId: string;\n draft: string;\n}\n\ninterface EditModeDataTableHeaderProps {\n activeHeader: ActiveHeader | null;\n columnIcons?: Record<string, ReactNode>;\n columns: DataTableEditModeColumn[];\n data: RowData[];\n editMode: DataTableEditModeConfig;\n isReadOnly: boolean;\n selectionHeader?: ReactNode;\n onAddColumn: () => void;\n onCancelHeaderEdit: () => void;\n onDeleteColumn: (columnId: string) => void;\n onHeaderDraftChange: (draft: string) => void;\n onHeaderEdit: (column: DataTableEditModeColumn) => void;\n onSaveHeader: () => void;\n}\n\nexport const EditModeDataTableHeader = (props: EditModeDataTableHeaderProps) => {\n const {\n activeHeader,\n columnIcons,\n columns,\n data,\n editMode,\n isReadOnly,\n selectionHeader,\n onAddColumn,\n onCancelHeaderEdit,\n onDeleteColumn,\n onHeaderDraftChange,\n onHeaderEdit,\n onSaveHeader,\n } = props;\n\n return (\n <Table.Header>\n <Table.Row height=\"10\" background=\"bg.subtle\">\n <Table.ColumnHeader\n data-column-id=\"rowIndex\"\n width=\"fit-content\"\n padding=\"xs\"\n background=\"bg.subtle\"\n borderRightWidth=\"1px\"\n borderBottomWidth=\"1px\"\n borderColor=\"border.subtle\"\n />\n {selectionHeader ? (\n <Table.ColumnHeader\n data-column-id=\"rowSelection\"\n padding=\"xs\"\n textAlign=\"center\"\n background=\"bg.subtle\"\n borderRightWidth=\"1px\"\n borderBottomWidth=\"1px\"\n borderColor=\"border.subtle\"\n >\n {selectionHeader}\n </Table.ColumnHeader>\n ) : null}\n {columns.map((column) => {\n const isEditing = activeHeader?.columnId === column.id;\n const headerIcon = columnIcons?.[column.id] ?? getIcon(data.map((row) => row[column.id]));\n const header = (\n <Table.ColumnHeader\n key={column.id}\n data-column-id={column.id}\n data-data-column=\"true\"\n height=\"10\"\n padding={isEditing ? \"0\" : \"xs\"}\n position=\"relative\"\n overflow=\"hidden\"\n background=\"bg.subtle\"\n textAlign={column.alignment ?? \"left\"}\n borderRightWidth=\"1px\"\n borderBottomWidth=\"1px\"\n borderColor=\"border.subtle\"\n cursor={isReadOnly ? \"default\" : \"context-menu\"}\n >\n {isEditing ? (\n <EditModeHeaderEditor\n accessibleName={column.label || \"empty\"}\n draft={activeHeader.draft}\n onChange={onHeaderDraftChange}\n onSave={onSaveHeader}\n onCancel={onCancelHeaderEdit}\n />\n ) : (\n <Flex alignItems=\"center\" gap=\"1\" minWidth=\"0\" overflow=\"hidden\">\n {headerIcon}\n <Text as=\"div\" textStyle=\"label/S/medium\" truncate>\n {editMode.renderHeader?.(column) ?? column.label}\n </Text>\n </Flex>\n )}\n </Table.ColumnHeader>\n );\n\n if (isReadOnly) return header;\n\n return (\n <ResourceContextMenu\n key={column.id}\n contentMinWidth=\"12rem\"\n actions={[\n {\n key: \"edit-header\",\n label: \"Rename column\",\n icon: <Icon as={Pencil} boxSize=\"14px\" />,\n onClick: () => onHeaderEdit(column),\n },\n {\n key: \"delete-column\",\n label: \"Delete column\",\n icon: <Icon as={Trash2} boxSize=\"14px\" />,\n isDisabled: columns.length === 1,\n separatorBefore: true,\n onClick: () => onDeleteColumn(column.id),\n },\n ]}\n >\n {header}\n </ResourceContextMenu>\n );\n })}\n {!isReadOnly ? (\n <Table.ColumnHeader\n data-column-id=\"editControl\"\n width=\"min-content\"\n padding=\"2xs\"\n textAlign=\"center\"\n position=\"sticky\"\n right=\"0\"\n zIndex=\"3\"\n background=\"bg.subtle\"\n borderLeftWidth=\"1px\"\n borderBottomWidth=\"1px\"\n borderColor=\"border.subtle\"\n >\n <IconButton size=\"xs\" variant=\"ghost\" aria-label=\"Insert column\" onClick={onAddColumn}>\n <Plus />\n </IconButton>\n </Table.ColumnHeader>\n ) : null}\n </Table.Row>\n </Table.Header>\n );\n};\n","import { Button, Icon as ChakraIcon, Flex, IconButton, Menu, Portal, Stack, Text } from \"@chakra-ui/react\";\nimport { ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight } from \"lucide-react\";\n\nimport { NumberInputField, NumberInputRoot } from \"@/components/primitives/number-input\";\nimport { ListRow } from \"../list-row/list-row\";\n\ninterface PaginationFooterProps {\n pageCount: number;\n pageIndex: number;\n pageSize: number;\n pageSizeOptions: number[];\n totalRows: number;\n onPageChange: (pageIndex: number) => void;\n onPageSizeChange: (pageSize: number) => void;\n}\n\nexport function PaginationFooter(props: PaginationFooterProps) {\n const { pageCount, pageIndex, pageSize, pageSizeOptions, totalRows, onPageChange, onPageSizeChange } = props;\n const totalPages = Math.max(pageCount, 1);\n const canGoBack = pageIndex > 0;\n const canGoForward = pageIndex < totalPages - 1;\n\n return (\n <Flex\n alignItems=\"center\"\n justifyContent=\"space-between\"\n borderTop=\"1px solid\"\n borderColor={\"border.subtle\"}\n paddingX=\"xs\"\n >\n <Text textStyle=\"label/S/regular\">{totalRows} rows</Text>\n <Stack alignItems=\"center\" direction=\"row\" justifyContent=\"flex-end\" paddingY=\"xs\">\n <Flex alignItems=\"center\" gap=\"xs\" marginRight=\"sm\">\n <Text textStyle=\"label/S/regular\">Rows per page</Text>\n <Menu.Root>\n <Menu.Trigger asChild>\n <Button size=\"xs\" variant=\"outline\">\n {pageSize}\n </Button>\n </Menu.Trigger>\n <Portal>\n <Menu.Positioner>\n <Menu.Content bg=\"bg\">\n {pageSizeOptions.map((option) => (\n <Menu.Item key={option} value={`${option}`} asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n label={`${option}`}\n isSelected={option === pageSize}\n onActivate={() => onPageSizeChange(option)}\n />\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Positioner>\n </Portal>\n </Menu.Root>\n </Flex>\n <IconButton size=\"xs\" aria-label=\"Go to first page\" onClick={() => onPageChange(0)} disabled={!canGoBack}>\n <ChakraIcon as={ChevronsLeft} boxSize=\"14px\" />\n </IconButton>\n <IconButton\n size=\"xs\"\n aria-label=\"Go to previous page\"\n onClick={() => onPageChange(pageIndex - 1)}\n disabled={!canGoBack}\n >\n <ChakraIcon as={ChevronLeft} boxSize=\"14px\" />\n </IconButton>\n <IconButton\n size=\"xs\"\n aria-label=\"Go to next page\"\n onClick={() => onPageChange(pageIndex + 1)}\n disabled={!canGoForward}\n >\n <ChakraIcon as={ChevronRight} boxSize=\"14px\" />\n </IconButton>\n <IconButton\n size=\"xs\"\n aria-label=\"Go to last page\"\n onClick={() => onPageChange(totalPages - 1)}\n disabled={!canGoForward}\n >\n <ChakraIcon as={ChevronsRight} boxSize=\"14px\" />\n </IconButton>\n <Flex alignItems=\"center\" height=\"100%\" marginLeft=\"sm\" marginRight=\"md\" gap=\"xs\">\n <Text>Page</Text>\n <NumberInputRoot\n margin=\"2xs\"\n width=\"3rem\"\n size=\"xs\"\n min={1}\n max={totalPages}\n value={`${pageIndex + 1}`}\n onValueChange={(details) => {\n const next = Number.isNaN(details.valueAsNumber) ? 1 : details.valueAsNumber;\n const clamped = Math.min(totalPages, Math.max(1, next));\n onPageChange(clamped - 1);\n }}\n >\n <NumberInputField className=\"nodrag\" />\n </NumberInputRoot>\n <Text>of {totalPages}</Text>\n </Flex>\n </Stack>\n </Flex>\n );\n}\n","import { Button, Icon as ChakraIcon, Flex, IconButton, Menu, Portal, Stack, Text } from \"@chakra-ui/react\";\nimport { X } from \"lucide-react\";\nimport { ListRow } from \"../list-row/list-row\";\nimport type { DataTableSelectionAction, RowData } from \"./types\";\n\ninterface SelectionToolbarProps {\n selectedCount: number;\n totalCount: number;\n onClearSelection: () => void;\n onSelectAll: () => void;\n actions: DataTableSelectionAction[];\n selectedRows: RowData[];\n}\n\nexport function SelectionToolbar(props: SelectionToolbarProps) {\n const { selectedCount, totalCount, onClearSelection, onSelectAll, actions, selectedRows } = props;\n const actionLabel = actions.length === 1 ? actions[0]?.label : \"Actions\";\n\n return (\n <Flex position=\"absolute\" insetX=\"sm\" bottom=\"sm\" zIndex=\"popover\" justifyContent=\"center\" pointerEvents=\"none\">\n <Stack\n role=\"toolbar\"\n aria-label=\"Selection actions\"\n direction=\"row\"\n alignItems=\"center\"\n layerStyle=\"floatingBar\"\n pointerEvents=\"auto\"\n maxWidth=\"100%\"\n overflowX=\"auto\"\n >\n <IconButton aria-label=\"clear-selection\" onClick={onClearSelection} size=\"xs\">\n <ChakraIcon as={X} boxSize=\"16px\" />\n </IconButton>\n <Text>{selectedCount} rows selected</Text>\n {selectedCount !== totalCount && (\n <Button size=\"xs\" onClick={onSelectAll}>\n Select all {totalCount} rows\n </Button>\n )}\n {actions.length === 1 && actions[0] ? (\n <Button size=\"xs\" onClick={() => actions[0]?.onSelect(selectedRows)}>\n {actionLabel}\n </Button>\n ) : null}\n {actions.length > 1 ? (\n <Menu.Root>\n <Menu.Trigger asChild>\n <Button size=\"xs\">{actionLabel}</Button>\n </Menu.Trigger>\n <Portal>\n <Menu.Positioner>\n <Menu.Content bg=\"bg\">\n {actions.map((action) => (\n <Menu.Item key={action.label} value={action.label} asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n tone={action.destructive ? \"danger\" : \"default\"}\n label={action.label}\n icon={action.icon}\n onActivate={() => action.onSelect(selectedRows)}\n />\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Positioner>\n </Portal>\n </Menu.Root>\n ) : null}\n </Stack>\n </Flex>\n );\n}\n","import { Box, Flex, Table } from \"@chakra-ui/react\";\nimport { useEffect, useState } from \"react\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\nimport { useKanbanRendererStore } from \"../kanban-renderer/use-kanban-renderer-store\";\nimport { DataTableHeader } from \"./data-table-header\";\nimport {\n buildDataTableRendererAttributes,\n buildDataTableRendererRows,\n filterDataTableRows,\n resolveDataTableToolbarStorageKey,\n resolveSelectionActions,\n shouldEnableSelection,\n} from \"./data-table-state\";\nimport { EditModeDataTableBody } from \"./edit-mode-data-table-body\";\nimport { EditModeDataTableHeader } from \"./edit-mode-data-table-header\";\nimport { EditModeSelectionHeader } from \"./edit-mode-data-table-selection\";\nimport { PaginationFooter } from \"./pagination-footer\";\nimport { SelectionToolbar } from \"./selection-toolbar\";\nimport type { DataTableEditModeColumn, DataTableProps, RowData } from \"./types\";\n\nconst createId = (kind: \"column\" | \"row\") => {\n const unique = globalThis.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random()}`;\n return `${kind}-${unique}`;\n};\n\ninterface ActiveCell {\n rowId: string;\n columnId: string;\n draft: string;\n}\n\ninterface ActiveHeader {\n columnId: string;\n draft: string;\n}\n\nexport const EditModeDataTable = (props: DataTableProps) => {\n const {\n data,\n editMode,\n fullWidth = false,\n initialPageSize = 30,\n pageSizeOptions = [10, 20, 30, 50],\n isReadOnly = true,\n getRowId,\n columnIcons,\n toolbarStorageKey,\n defaultViews,\n defaultActiveViewId,\n } = props;\n const [pageIndex, setPageIndex] = useState(0);\n const [pageSize, setPageSize] = useState(() => Math.min(Math.max(initialPageSize, 1), 50));\n const [activeCell, setActiveCell] = useState<ActiveCell | null>(null);\n const [activeHeader, setActiveHeader] = useState<ActiveHeader | null>(null);\n const [selectedRowIds, setSelectedRowIds] = useState<Set<string>>(() => new Set());\n const columns = editMode?.columns ?? [];\n const columnKeys = columns.map((column) => column.id);\n const columnLabels = Object.fromEntries(columns.map((column) => [column.id, column.label]));\n const rendererAttributes = buildDataTableRendererAttributes(data, columnKeys, columnLabels);\n const rendererRows = buildDataTableRendererRows(data, columnKeys, getRowId);\n const resolvedToolbarStorageKey = resolveDataTableToolbarStorageKey({ toolbarStorageKey, columnKeys });\n const rendererInitialState = {\n settings: { viewMode: \"list\" as const },\n views: defaultViews,\n activeViewId: defaultActiveViewId,\n };\n const filters = useKanbanRendererStore(resolvedToolbarStorageKey, (state) => state.filters, rendererInitialState);\n const filteredRendererRows = filterDataTableRows(rendererRows, filters, rendererAttributes);\n const filteredData = filteredRendererRows.map((row) => row.sourceRow);\n const cappedPageSizeOptions = [...new Set(pageSizeOptions.filter((option) => option > 0 && option <= 50))];\n const pageCount = Math.max(Math.ceil(filteredData.length / pageSize), 1);\n const pageRows = filteredData.slice(pageIndex * pageSize, (pageIndex + 1) * pageSize);\n let tableWidth = \"fit-content\";\n if (fullWidth) tableWidth = isReadOnly ? \"100%\" : \"calc(100% + var(--chakra-spacing-10))\";\n const enableSelection = shouldEnableSelection(props);\n const selectionActions = resolveSelectionActions(props);\n\n useEffect(() => {\n if (pageIndex < pageCount) return;\n setPageIndex(pageCount - 1);\n }, [pageCount, pageIndex]);\n\n useEffect(() => {\n const visibleIds = new Set(filteredRendererRows.map((row) => row.id));\n setSelectedRowIds((current) => {\n const next = new Set([...current].filter((rowId) => visibleIds.has(rowId)));\n const isUnchanged = next.size === current.size && [...next].every((rowId) => current.has(rowId));\n return isUnchanged ? current : next;\n });\n }, [filteredRendererRows]);\n\n if (!editMode) return null;\n\n const rowIdFor = (row: RowData, index: number) => getRowId?.(row, index) ?? String(row.id ?? index);\n\n const commitCell = () => {\n if (!activeCell) return;\n\n editMode.onDataChange(\n data.map((row, index) =>\n rowIdFor(row, index) === activeCell.rowId ? { ...row, [activeCell.columnId]: activeCell.draft } : row,\n ),\n );\n setActiveCell(null);\n };\n\n const updateColumn = (columnId: string, update: Partial<DataTableEditModeColumn>) => {\n editMode.onColumnsChange(\n columns.map((column) => (column.id === columnId ? { ...column, ...update, id: column.id } : column)),\n );\n };\n\n const commitHeader = () => {\n if (!activeHeader) return;\n updateColumn(activeHeader.columnId, { label: activeHeader.draft });\n setActiveHeader(null);\n };\n\n const addColumn = () => {\n const id = createId(\"column\");\n editMode.onColumnsChange([...columns, { id, label: `Column ${columns.length + 1}`, alignment: null }]);\n };\n\n const removeColumn = (columnId: string) => {\n if (columns.length === 1) return;\n editMode.onColumnsChange(columns.filter((column) => column.id !== columnId));\n if (activeHeader?.columnId === columnId) setActiveHeader(null);\n };\n\n const addRow = () => {\n const row = Object.fromEntries(columns.map((column) => [column.id, \"\"]));\n row.id = createId(\"row\");\n editMode.onDataChange([...data, row]);\n };\n\n const changePageSize = (nextPageSize: number) => {\n setPageSize(Math.min(nextPageSize, 50));\n setPageIndex(0);\n };\n\n const removeRow = (rowId: string) => {\n editMode.onDataChange(data.filter((row, index) => rowIdFor(row, index) !== rowId));\n };\n\n const toggleRowSelection = (rowId: string, checked: boolean) => {\n setSelectedRowIds((current) => {\n const next = new Set(current);\n if (checked) next.add(rowId);\n else next.delete(rowId);\n return next;\n });\n };\n\n const allRowsSelected = filteredRendererRows.length > 0 && selectedRowIds.size === filteredRendererRows.length;\n const selectedRows = filteredRendererRows.filter((row) => selectedRowIds.has(row.id)).map((row) => row.sourceRow);\n\n return (\n <Flex direction=\"column\" width=\"100%\" gap=\"2xs\">\n {toolbarStorageKey ? (\n <DataTableHeader\n rows={rendererRows}\n storageKey={resolvedToolbarStorageKey}\n attributes={rendererAttributes}\n columnControl={null}\n defaultViews={defaultViews}\n defaultActiveViewId={defaultActiveViewId}\n />\n ) : null}\n <Box position=\"relative\" width=\"100%\">\n <ScrollArea\n data-table-scroll-area\n maxWidth=\"100%\"\n showHorizontalScrollbar\n showVerticalScrollbar={false}\n viewportProps={{ overflowY: \"hidden\" }}\n >\n <Table.Root\n data-edit-mode=\"true\"\n size=\"sm\"\n tableLayout=\"fixed\"\n width={tableWidth}\n borderWidth=\"1px\"\n borderColor=\"border.subtle\"\n >\n <colgroup>\n <Box as=\"col\" width=\"9\" />\n {enableSelection ? <Box as=\"col\" width=\"9\" /> : null}\n {columns.map((column) => (\n <col key={column.id} />\n ))}\n {!isReadOnly ? <Box as=\"col\" width=\"10\" /> : null}\n </colgroup>\n <EditModeDataTableHeader\n activeHeader={activeHeader}\n columnIcons={columnIcons}\n columns={columns}\n data={data}\n editMode={editMode}\n isReadOnly={isReadOnly}\n onAddColumn={addColumn}\n onCancelHeaderEdit={() => setActiveHeader(null)}\n onDeleteColumn={removeColumn}\n onHeaderDraftChange={(draft) => setActiveHeader((current) => (current ? { ...current, draft } : current))}\n onHeaderEdit={(column) => setActiveHeader({ columnId: column.id, draft: column.label })}\n onSaveHeader={commitHeader}\n selectionHeader={\n enableSelection ? (\n <EditModeSelectionHeader\n checked={allRowsSelected}\n indeterminate={selectedRowIds.size > 0 && !allRowsSelected}\n onChange={(checked) =>\n setSelectedRowIds(checked ? new Set(filteredRendererRows.map((row) => row.id)) : new Set())\n }\n />\n ) : undefined\n }\n />\n <EditModeDataTableBody\n activeCell={activeCell}\n columns={columns}\n data={data}\n editMode={editMode}\n enableSelection={enableSelection}\n isReadOnly={isReadOnly}\n pageIndex={pageIndex}\n pageRows={pageRows}\n pageSize={pageSize}\n selectedRowIds={selectedRowIds}\n showNewRow={pageIndex === pageCount - 1}\n onActivateCell={setActiveCell}\n onAddRow={addRow}\n onCancelCell={() => setActiveCell(null)}\n onCommitCell={commitCell}\n onDraftChange={setActiveCell}\n onRemoveRow={removeRow}\n onToggleRowSelection={toggleRowSelection}\n rowIdFor={rowIdFor}\n />\n </Table.Root>\n </ScrollArea>\n {enableSelection && selectedRows.length > 0 ? (\n <SelectionToolbar\n selectedCount={selectedRows.length}\n totalCount={filteredRendererRows.length}\n onClearSelection={() => setSelectedRowIds(new Set())}\n onSelectAll={() => setSelectedRowIds(new Set(filteredRendererRows.map((row) => row.id)))}\n actions={selectionActions}\n selectedRows={selectedRows}\n />\n ) : null}\n </Box>\n {pageCount > 1 ? (\n <PaginationFooter\n pageCount={pageCount}\n pageIndex={pageIndex}\n pageSize={pageSize}\n pageSizeOptions={cappedPageSizeOptions}\n totalRows={filteredData.length}\n onPageChange={setPageIndex}\n onPageSizeChange={changePageSize}\n />\n ) : null}\n </Flex>\n );\n};\n"],"names":["DataTableHeader","props","$","_c","rows","attributes","storageKey","columnControl","defaultViews","defaultActiveViewId","t0","Symbol","for","viewMode","t1","KanbanRendererToolbar","isDisplayValue","value","isString","v","String","isNumber","Number","isBoolean","Boolean","getType","values","comparableValues","map","sortValue","valueOf","isValidElement","filter","length","every","isNaN","Date","parse","toString","headerIconProps","boxSize","marginRight","getIcon","type","jsx","ChakraIcon","CalendarClock","Type","Hash","CheckCircle2","formatDisplayValue","display","JSON","stringify","columnHelper","createColumnHelper","defaultPageSize","resolveDataTableRowId","row","index","getRowId","id","resolveInitialPageSize","initialPageSize","getSelectedOriginalRows","original","resolveSelectionActions","actions","selectionActions","onCSVDownload","push","label","onSelect","shouldEnableSelection","selectionMode","shouldHighlightActiveRow","enableRowActivation","activeRowId","rowId","toAttributeValue","raw","isNumberColumn","columnKey","resolveAttributeType","kind","buildDataTableRendererAttributes","columnKeys","compactHeaders","filterable","sortable","displayable","buildDataTableRendererRows","Object","fromEntries","firstValue","title","sourceRow","filterDataTableRows","filters","filterRows","resolveDataTableColumnOrder","availableColumnIds","requestedColumnOrder","availableColumnIdSet","Set","orderedColumnIds","columnId","has","orderedColumnIdSet","missingColumnIds","reorderDataTableColumns","columnIds","activeColumnId","overColumnId","activeIndex","indexOf","overIndex","nextColumnIds","activeColumn","splice","resolveDataTableToolbarStorageKey","toolbarStorageKey","join","InlineEditActions","cancelLabel","saveLabel","onCancel","onSave","Check","IconButton","t2","X","t3","t4","Flex","EditModeTextSurface","accessibleName","textStyle","onChange","elementRef","useRef","initialValueRef","element","current","textContent","focus","selection","globalThis","getSelection","range","document","createRange","selectNodeContents","removeAllRanges","addRange","useEffect","event","key","preventDefault","handleKeyDown","event_0","currentTarget","EditModeHeaderEditor","draft","Box","jsxs","EditModeCellEditor","anchorRef","customEditor","mainAxis","placement","offset","getAnchorElement","minHeight","maxHeight","overscrollBehavior","t5","ScrollArea","t6","t7","Portal","Popover","t8","EditModeDataTableCell","activeDraft","column","context","editMode","isActive","isReadOnly","onActivate","onDraftChange","undefined","cellRef","isCellEditable","isEditable","content","renderCellEditor","renderCell","alignment","t9","t10","t11","t12","Table","stopControlPropagation","stopPropagation","EditModeSelectionHeader","checked","indeterminate","Minus","details","Checkbox","EditModeSelectionCell","EditModeDataTableBody","activeCell","columns","data","enableSelection","pageIndex","pageRows","pageSize","selectedRowIds","showNewRow","onActivateCell","onAddRow","onCancelCell","onCommitCell","onRemoveRow","onToggleRowSelection","rowIdFor","visibleIndex","rowIndex","sourceIndex","tableRow","ResourceContextMenu","icon","Icon","Trash2","onClick","Button","Plus","EditModeDataTableHeader","activeHeader","columnIcons","selectionHeader","onAddColumn","onCancelHeaderEdit","onDeleteColumn","onHeaderDraftChange","onHeaderEdit","onSaveHeader","isEditing","headerIcon","header","Text","renderHeader","Pencil","isDisabled","separatorBefore","PaginationFooter","pageCount","pageSizeOptions","totalRows","onPageChange","onPageSizeChange","totalPages","Math","max","canGoBack","canGoForward","Menu","option","ListRow","ChevronsLeft","ChevronLeft","t13","t14","t15","t16","ChevronRight","t17","t18","t19","t20","ChevronsRight","t21","t22","t23","t24","next","valueAsNumber","clamped","min","t25","NumberInputField","t26","NumberInputRoot","t27","t28","t29","Stack","t30","SelectionToolbar","selectedCount","totalCount","onClearSelection","onSelectAll","selectedRows","actionLabel","action","destructive","createId","unique","crypto","randomUUID","now","random","EditModeDataTable","fullWidth","setPageIndex","useState","setPageSize","setActiveCell","setActiveHeader","setSelectedRowIds","_temp","_temp2","columnLabels","_temp3","rendererAttributes","rendererRows","resolvedToolbarStorageKey","settings","views","activeViewId","useKanbanRendererStore","_temp4","filteredRendererRows","filteredData","_temp5","cappedPageSizeOptions","_temp6","ceil","slice","tableWidth","visibleIds","_temp7","size","rowId_0","row_1","onDataChange","row_2","index_0","commitCell","update","onColumnsChange","column_1","updateColumn","commitHeader","addColumn","columnId_0","column_2","removeColumn","row_3","_temp8","addRow","nextPageSize","changePageSize","rowId_1","row_4","index_1","removeRow","rowId_2","current_0","next_0","add","delete","toggleRowSelection","allRowsSelected","row_5","_temp9","overflowY","_temp0","t31","t32","t33","t34","current_1","column_5","t35","checked_0","_temp1","t36","t37","t38","t39","t40","t41","_temp10","t42","t43","t44","column_0","state","row_0","column_3","row_6","column_4","row_7","row_8"],"mappings":"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"}
1
+ {"version":3,"file":"edit-mode-data-table-D6NeiDJx.js","sources":["../src/components/data-table/data-table-header.tsx","../src/components/data-table/helpers.tsx","../src/components/data-table/data-table-state.ts","../src/components/data-table/edit-mode-data-table-editors.tsx","../src/components/data-table/edit-mode-data-table-cell.tsx","../src/components/data-table/edit-mode-data-table-selection.tsx","../src/components/data-table/edit-mode-data-table-body.tsx","../src/components/data-table/edit-mode-data-table-header.tsx","../src/components/data-table/pagination-footer.tsx","../src/components/data-table/selection-toolbar.tsx","../src/components/data-table/edit-mode-data-table.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { KanbanRendererToolbar } from \"../kanban-renderer/kanban-renderer-toolbar\";\nimport type { AttributeDescriptor, KanbanRendererRow, KanbanRendererSavedView } from \"../kanban-renderer/types\";\n\ninterface DataTableHeaderProps {\n rows: KanbanRendererRow[];\n attributes: AttributeDescriptor[];\n storageKey: string;\n columnControl: ReactNode;\n defaultViews?: KanbanRendererSavedView[];\n defaultActiveViewId?: string;\n}\n\nexport const DataTableHeader = (props: DataTableHeaderProps) => {\n const { rows, attributes, storageKey, columnControl, defaultViews, defaultActiveViewId } = props;\n\n return (\n <KanbanRendererToolbar\n rows={rows}\n storageKey={storageKey}\n attributes={attributes}\n defaultSettings={{ viewMode: \"list\" }}\n defaultViews={defaultViews}\n defaultActiveViewId={defaultActiveViewId}\n displayControl={columnControl}\n />\n );\n};\n","import { Icon as ChakraIcon } from \"@chakra-ui/react\";\nimport { createColumnHelper } from \"@tanstack/react-table\";\nimport { CalendarClock, CheckCircle2, Hash, Type } from \"lucide-react\";\nimport { isValidElement, type ReactElement, type ReactNode } from \"react\";\n\nimport type { ColumnType, DisplayValue, RowData } from \"./types\";\n\nexport const isDisplayValue = (value: unknown): value is DisplayValue =>\n typeof value === \"object\" && value !== null && \"display\" in value;\n\nexport const isString = (v: unknown): v is string => typeof v === \"string\" || v instanceof String;\nexport const isNumber = (v: unknown): v is number => typeof v === \"number\" || v instanceof Number;\nexport const isBoolean = (v: unknown): v is boolean => typeof v === \"boolean\" || v instanceof Boolean;\n\nexport const getType = (values: unknown[]): ColumnType => {\n const comparableValues = values\n .map((value) => {\n if (isDisplayValue(value)) return value.sortValue ?? null;\n if (value instanceof String || value instanceof Number || value instanceof Boolean) return value.valueOf();\n if (isValidElement(value)) return null;\n return value;\n })\n .filter((value) => value !== null && value !== undefined);\n\n if (comparableValues.length === 0) return \"unknown\";\n if (comparableValues.every((v) => isString(v) && !Number.isNaN(Date.parse(v.toString())))) return \"date\";\n if (comparableValues.every((v) => isNumber(v))) return \"number\";\n if (comparableValues.every((v) => isBoolean(v))) return \"boolean\";\n if (comparableValues.every((v) => isString(v))) return \"string\";\n return \"unknown\";\n};\n\nconst headerIconProps = {\n boxSize: \"14px\",\n marginRight: \"2px\",\n};\n\nexport const getIcon = (values: unknown[]): ReactElement | null => {\n const type = getType(values);\n if (type === \"date\") return <ChakraIcon as={CalendarClock} {...headerIconProps} />;\n if (type === \"string\") return <ChakraIcon as={Type} {...headerIconProps} />;\n if (type === \"number\") return <ChakraIcon as={Hash} {...headerIconProps} />;\n if (type === \"boolean\") return <ChakraIcon as={CheckCircle2} {...headerIconProps} />;\n return null;\n};\n\nexport function formatDisplayValue(value: unknown): ReactNode {\n if (isDisplayValue(value)) return value.display;\n if (isValidElement(value)) return value;\n\n if (value instanceof String || value instanceof Number || value instanceof Boolean) {\n value = value.valueOf();\n }\n\n switch (typeof value) {\n case \"boolean\":\n return value ? \"TRUE\" : \"FALSE\";\n case \"number\":\n return value;\n case \"object\":\n return value !== null ? JSON.stringify(value) : \"-\";\n case \"undefined\":\n return \"-\";\n default:\n return value ? String(value) : \"-\";\n }\n}\n\nexport const columnHelper = createColumnHelper<RowData>();\n","import type {\n AttributeDescriptor,\n KanbanRendererFilterState,\n KanbanRendererRow,\n} from \"@/components/kanban-renderer/types\";\nimport { filterRows } from \"../kanban-renderer/kanban-renderer-grouping\";\nimport { isDisplayValue } from \"./helpers\";\nimport type { DataTableProps, DataTableSelectionAction, RowData } from \"./types\";\n\nexport const defaultPageSize = 30;\n\nexport interface DataTableRendererRow extends KanbanRendererRow {\n sourceRow: RowData;\n}\n\nexport const resolveDataTableRowId = (row: RowData, index: number, getRowId?: DataTableProps[\"getRowId\"]) => {\n if (getRowId) return getRowId(row, index);\n return typeof row.id === \"string\" ? row.id : String(index);\n};\n\nexport const resolveInitialPageSize = (props: Pick<DataTableProps, \"initialPageSize\">) => {\n if (typeof props.initialPageSize === \"number\" && props.initialPageSize > 0) return props.initialPageSize;\n return defaultPageSize;\n};\n\nexport const getSelectedOriginalRows = (rows: Array<{ original: RowData }>) => rows.map((row) => row.original);\n\nexport const resolveSelectionActions = (\n props: Pick<DataTableProps, \"selectionActions\" | \"onCSVDownload\" | \"getRowId\">,\n) => {\n const actions: DataTableSelectionAction[] = [...(props.selectionActions ?? [])];\n\n if (props.onCSVDownload) {\n actions.push({\n label: \"Download CSV\",\n onSelect: (rows) => {\n props.onCSVDownload?.(rows.map((row, index) => resolveDataTableRowId(row, index, props.getRowId)));\n },\n });\n }\n\n return actions;\n};\n\nexport const shouldEnableSelection = (\n props: Pick<DataTableProps, \"selectionMode\" | \"selectionActions\" | \"onCSVDownload\">,\n) => props.selectionMode === \"multiple\" || Boolean(props.onCSVDownload) || Boolean(props.selectionActions?.length);\n\nexport const shouldHighlightActiveRow = (props: {\n enableRowActivation?: boolean;\n activeRowId?: string | null;\n rowId: string;\n}) => props.enableRowActivation === true && props.activeRowId === props.rowId;\n\nconst toAttributeValue = (value: unknown) => {\n const raw = isDisplayValue(value) ? value.sortValue : value;\n if (typeof raw === \"boolean\") return String(raw);\n return raw;\n};\n\nconst isNumberColumn = (rows: RowData[], columnKey: string) => {\n const values = rows\n .map((row) => toAttributeValue(row[columnKey]))\n .filter((value) => value !== null && value !== undefined);\n return values.length > 0 && values.every((value) => typeof value === \"number\");\n};\n\nconst resolveAttributeType = (rows: RowData[], columnKey: string): AttributeDescriptor[\"type\"] => {\n if (isNumberColumn(rows, columnKey)) return { kind: \"number\" };\n return { kind: \"string\" };\n};\n\nexport const buildDataTableRendererAttributes = (\n rows: RowData[],\n columnKeys: string[],\n compactHeaders?: Partial<Record<string, string>>,\n): AttributeDescriptor[] =>\n columnKeys.map((columnKey) => ({\n id: columnKey,\n label: compactHeaders?.[columnKey] ?? columnKey,\n type: resolveAttributeType(rows, columnKey),\n filterable: true,\n sortable: true,\n displayable: true,\n }));\n\nexport const buildDataTableRendererRows = (\n rows: RowData[],\n columnKeys: string[],\n getRowId?: DataTableProps[\"getRowId\"],\n): DataTableRendererRow[] =>\n rows.map((row, index) => {\n const attributes = Object.fromEntries(columnKeys.map((columnKey) => [columnKey, toAttributeValue(row[columnKey])]));\n const rowId = resolveDataTableRowId(row, index, getRowId);\n const firstValue = columnKeys.length > 0 ? toAttributeValue(row[columnKeys[0]!]) : rowId;\n\n return {\n id: rowId,\n title: String(firstValue ?? rowId),\n attributes,\n sourceRow: row,\n };\n });\n\nexport const filterDataTableRows = (\n rows: DataTableRendererRow[],\n filters: KanbanRendererFilterState,\n attributes: AttributeDescriptor[],\n) => filterRows(rows, filters, attributes) as DataTableRendererRow[];\n\nexport const resolveDataTableColumnOrder = (availableColumnIds: string[], requestedColumnOrder: string[]) => {\n const availableColumnIdSet = new Set(availableColumnIds);\n const orderedColumnIds = requestedColumnOrder.filter((columnId) => availableColumnIdSet.has(columnId));\n const orderedColumnIdSet = new Set(orderedColumnIds);\n const missingColumnIds = availableColumnIds.filter((columnId) => !orderedColumnIdSet.has(columnId));\n\n return [...orderedColumnIds, ...missingColumnIds];\n};\n\nexport const reorderDataTableColumns = (columnIds: string[], activeColumnId: string, overColumnId: string) => {\n const activeIndex = columnIds.indexOf(activeColumnId);\n const overIndex = columnIds.indexOf(overColumnId);\n\n if (activeIndex < 0 || overIndex < 0 || activeIndex === overIndex) return columnIds;\n\n const nextColumnIds = [...columnIds];\n const [activeColumn] = nextColumnIds.splice(activeIndex, 1);\n if (!activeColumn) return columnIds;\n\n nextColumnIds.splice(overIndex, 0, activeColumn);\n return nextColumnIds;\n};\n\nexport const resolveDataTableToolbarStorageKey = (props: { toolbarStorageKey?: string; columnKeys: string[] }) =>\n props.toolbarStorageKey ?? `data-table:${props.columnKeys.join(\"|\") || \"empty\"}`;\n","import { Box, chakra, Flex, IconButton, Popover, Portal } from \"@chakra-ui/react\";\nimport { Check, X } from \"lucide-react\";\nimport { type KeyboardEvent, type ReactNode, type RefObject, useEffect, useRef } from \"react\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\n\ninterface InlineEditActionsProps {\n cancelLabel: string;\n saveLabel: string;\n onCancel: () => void;\n onSave: () => void;\n}\n\nconst InlineEditActions = (props: InlineEditActionsProps) => {\n const { cancelLabel, saveLabel, onCancel, onSave } = props;\n\n return (\n <Flex gap=\"2xs\" flexShrink=\"0\">\n <IconButton type=\"button\" size=\"2xs\" variant=\"ghost\" aria-label={saveLabel} onClick={onSave}>\n <Check />\n </IconButton>\n <IconButton type=\"button\" size=\"2xs\" variant=\"ghost\" aria-label={cancelLabel} onClick={onCancel}>\n <X />\n </IconButton>\n </Flex>\n );\n};\n\ninterface EditModeTextSurfaceProps {\n accessibleName: string;\n textStyle: string;\n value: string;\n onCancel: () => void;\n onChange: (value: string) => void;\n onSave: () => void;\n}\n\nconst EditModeTextSurface = (props: EditModeTextSurfaceProps) => {\n const { accessibleName, textStyle, value, onCancel, onChange, onSave } = props;\n const elementRef = useRef<HTMLDivElement>(null);\n const initialValueRef = useRef(value);\n\n useEffect(() => {\n const element = elementRef.current;\n if (!element) return;\n\n element.textContent = initialValueRef.current;\n element.focus();\n const selection = globalThis.getSelection();\n const range = document.createRange();\n range.selectNodeContents(element);\n selection?.removeAllRanges();\n selection?.addRange(range);\n }, []);\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"Enter\") {\n event.preventDefault();\n onSave();\n }\n if (event.key === \"Escape\") onCancel();\n };\n\n return (\n <chakra.div\n ref={elementRef}\n role=\"textbox\"\n aria-label={accessibleName}\n contentEditable\n suppressContentEditableWarning\n height=\"10\"\n width=\"100%\"\n paddingX=\"xs\"\n paddingY=\"xs\"\n overflow=\"hidden\"\n background=\"transparent\"\n border=\"none\"\n borderRadius=\"0\"\n outline=\"none\"\n textStyle={textStyle}\n textOverflow=\"ellipsis\"\n whiteSpace=\"nowrap\"\n onInput={(event) => onChange(event.currentTarget.textContent ?? \"\")}\n onKeyDown={handleKeyDown}\n />\n );\n};\n\ninterface EditModeHeaderEditorProps {\n accessibleName: string;\n draft: string;\n onCancel: () => void;\n onChange: (value: string) => void;\n onSave: () => void;\n}\n\nexport const EditModeHeaderEditor = (props: EditModeHeaderEditorProps) => {\n const { accessibleName, draft, onCancel, onChange, onSave } = props;\n\n return (\n <Box position=\"absolute\" inset=\"0\" width=\"100%\" height=\"10\" background=\"bg.subtle\" zIndex=\"1\">\n <EditModeTextSurface\n accessibleName={`Rename column ${accessibleName}`}\n textStyle=\"label/S/medium\"\n value={draft}\n onChange={onChange}\n onSave={onSave}\n onCancel={onCancel}\n />\n <Box position=\"absolute\" top=\"50%\" right=\"2xs\" transform=\"translateY(-50%)\" background=\"bg.subtle\">\n <InlineEditActions\n saveLabel=\"Save column name\"\n cancelLabel=\"Cancel column rename\"\n onSave={onSave}\n onCancel={onCancel}\n />\n </Box>\n </Box>\n );\n};\n\ninterface EditModeCellEditorProps {\n anchorRef: RefObject<HTMLElement | null>;\n customEditor?: ReactNode;\n draft: string;\n onCancel: () => void;\n onChange: (value: string) => void;\n onSave: () => void;\n}\n\nexport const EditModeCellEditor = (props: EditModeCellEditorProps) => {\n const { anchorRef, customEditor, draft, onCancel, onChange, onSave } = props;\n\n return (\n <Popover.Root\n open\n closeOnInteractOutside={false}\n positioning={{\n placement: \"bottom-start\",\n offset: { mainAxis: -40 },\n getAnchorElement: () => anchorRef.current,\n }}\n >\n <Portal>\n <Popover.Positioner>\n <Popover.Content\n data-table-cell-editor\n width=\"calc(var(--reference-width) + 3rem)\"\n minWidth=\"calc(var(--reference-width) + 3rem)\"\n maxWidth=\"calc(100vw - 2rem)\"\n padding=\"0\"\n overflow=\"hidden\"\n background=\"bg\"\n animation=\"none\"\n zIndex=\"popover\"\n >\n <ScrollArea\n data-table-cell-editor-body\n width=\"100%\"\n minHeight=\"10\"\n maxHeight=\"48\"\n contentProps={{ minHeight: \"10\" }}\n viewportProps={{ maxHeight: \"48\", overscrollBehavior: \"contain\" }}\n >\n {customEditor ?? (\n <EditModeTextSurface\n accessibleName=\"Edit cell\"\n textStyle=\"paragraph/S/regular\"\n value={draft}\n onChange={onChange}\n onSave={onSave}\n onCancel={onCancel}\n />\n )}\n </ScrollArea>\n <Flex\n data-table-cell-editor-footer\n height=\"8\"\n flexShrink=\"0\"\n alignItems=\"center\"\n justifyContent=\"flex-end\"\n paddingX=\"xs\"\n borderTopWidth=\"1px\"\n borderColor=\"border.subtle\"\n background=\"bg.subtle\"\n >\n <InlineEditActions\n saveLabel=\"Save cell\"\n cancelLabel=\"Cancel cell edit\"\n onSave={onSave}\n onCancel={onCancel}\n />\n </Flex>\n </Popover.Content>\n </Popover.Positioner>\n </Portal>\n </Popover.Root>\n );\n};\n","import { Box, Table } from \"@chakra-ui/react\";\nimport { type KeyboardEvent, type ReactNode, useRef } from \"react\";\nimport { EditModeCellEditor } from \"./edit-mode-data-table-editors\";\nimport type { DataTableCellContext, DataTableEditModeColumn, DataTableEditModeConfig } from \"./types\";\n\ninterface EditModeDataTableCellProps {\n activeDraft?: string;\n column: DataTableEditModeColumn;\n context: DataTableCellContext;\n editMode: DataTableEditModeConfig;\n isActive: boolean;\n isReadOnly: boolean;\n onActivate: () => void;\n onCancel: () => void;\n onDraftChange: (draft: string) => void;\n onSave: () => void;\n}\n\nexport const EditModeDataTableCell = (props: EditModeDataTableCellProps) => {\n const {\n activeDraft = \"\",\n column,\n context,\n editMode,\n isActive,\n isReadOnly,\n onActivate,\n onCancel,\n onDraftChange,\n onSave,\n } = props;\n const cellRef = useRef<HTMLTableCellElement>(null);\n const isEditable = !isReadOnly && (editMode.isCellEditable?.(context) ?? true);\n let content: ReactNode;\n\n if (isActive) {\n const customEditor = editMode.renderCellEditor?.({ context, value: activeDraft, onChange: onDraftChange });\n content = (\n <EditModeCellEditor\n anchorRef={cellRef}\n draft={activeDraft}\n customEditor={customEditor}\n onChange={onDraftChange}\n onSave={onSave}\n onCancel={onCancel}\n />\n );\n } else {\n content = (\n <Box width=\"100%\" minHeight=\"5\" textAlign=\"inherit\">\n {editMode.renderCell?.(context) ?? String(context.value ?? \"\")}\n </Box>\n );\n }\n\n const handleKeyDown = (event: KeyboardEvent<HTMLTableCellElement>) => {\n if (!isEditable || isActive || (event.key !== \"Enter\" && event.key !== \" \")) return;\n event.preventDefault();\n onActivate();\n };\n\n return (\n <Table.Cell\n ref={cellRef}\n data-column-id={column.id}\n data-editable={String(isEditable)}\n data-editing={isActive ? \"true\" : undefined}\n padding={isActive ? \"0\" : \"xs\"}\n height=\"10\"\n maxHeight=\"10\"\n position=\"relative\"\n overflow={isActive ? \"visible\" : \"hidden\"}\n background=\"bg\"\n textAlign={column.alignment ?? \"left\"}\n textStyle=\"paragraph/S/regular\"\n textOverflow=\"ellipsis\"\n verticalAlign=\"middle\"\n whiteSpace=\"nowrap\"\n borderRightWidth=\"1px\"\n borderBottomWidth=\"1px\"\n borderColor=\"border.subtle\"\n cursor={isEditable && !isActive ? \"text\" : undefined}\n tabIndex={isEditable && !isActive ? 0 : undefined}\n onClick={isEditable && !isActive ? onActivate : undefined}\n onKeyDown={handleKeyDown}\n >\n {content}\n </Table.Cell>\n );\n};\n","import { Icon as ChakraIcon, Table } from \"@chakra-ui/react\";\nimport { Check, Minus } from \"lucide-react\";\nimport { Checkbox } from \"@/components/primitives/checkbox\";\n\nconst stopControlPropagation = (event: { stopPropagation: () => void }) => {\n event.stopPropagation();\n};\n\ninterface EditModeSelectionHeaderProps {\n checked: boolean;\n indeterminate: boolean;\n onChange: (checked: boolean) => void;\n}\n\nexport const EditModeSelectionHeader = (props: EditModeSelectionHeaderProps) => {\n const { checked, indeterminate, onChange } = props;\n\n return (\n <Checkbox\n checked={checked ? true : indeterminate ? \"indeterminate\" : false}\n aria-label=\"Select all\"\n icon={<ChakraIcon as={indeterminate ? Minus : Check} boxSize=\"12px\" strokeWidth=\"3\" />}\n onClick={stopControlPropagation}\n onCheckedChange={(details) => onChange(details.checked === true)}\n />\n );\n};\n\ninterface EditModeSelectionCellProps {\n checked: boolean;\n onChange: (checked: boolean) => void;\n}\n\nexport const EditModeSelectionCell = (props: EditModeSelectionCellProps) => {\n const { checked, onChange } = props;\n\n return (\n <Table.Cell\n data-column-id=\"rowSelection\"\n height=\"10\"\n padding=\"xs\"\n textAlign=\"center\"\n background=\"bg\"\n borderRightWidth=\"1px\"\n borderBottomWidth=\"1px\"\n borderColor=\"border.subtle\"\n >\n <Checkbox\n checked={checked}\n aria-label=\"Select row\"\n icon={<ChakraIcon as={Check} boxSize=\"12px\" strokeWidth=\"3\" />}\n onClick={stopControlPropagation}\n onCheckedChange={(details) => onChange(details.checked === true)}\n />\n </Table.Cell>\n );\n};\n","import { Button, Icon, Table } from \"@chakra-ui/react\";\nimport { Plus, Trash2 } from \"lucide-react\";\nimport { ResourceContextMenu } from \"@/components/overlays/resource-context-menu\";\nimport { EditModeDataTableCell } from \"./edit-mode-data-table-cell\";\nimport { EditModeSelectionCell } from \"./edit-mode-data-table-selection\";\nimport type { DataTableCellContext, DataTableEditModeColumn, DataTableEditModeConfig, RowData } from \"./types\";\n\ninterface ActiveCell {\n rowId: string;\n columnId: string;\n draft: string;\n}\n\ninterface EditModeDataTableBodyProps {\n activeCell: ActiveCell | null;\n columns: DataTableEditModeColumn[];\n data: RowData[];\n editMode: DataTableEditModeConfig;\n enableSelection: boolean;\n isReadOnly: boolean;\n pageIndex: number;\n pageRows: RowData[];\n pageSize: number;\n selectedRowIds: Set<string>;\n showNewRow: boolean;\n onActivateCell: (cell: ActiveCell) => void;\n onAddRow: () => void;\n onCancelCell: () => void;\n onCommitCell: () => void;\n onDraftChange: (cell: ActiveCell) => void;\n onRemoveRow: (rowId: string) => void;\n onToggleRowSelection: (rowId: string, checked: boolean) => void;\n rowIdFor: (row: RowData, index: number) => string;\n}\n\nexport const EditModeDataTableBody = (props: EditModeDataTableBodyProps) => {\n const {\n activeCell,\n columns,\n data,\n editMode,\n enableSelection,\n isReadOnly,\n pageIndex,\n pageRows,\n pageSize,\n selectedRowIds,\n showNewRow,\n onActivateCell,\n onAddRow,\n onCancelCell,\n onCommitCell,\n onDraftChange,\n onRemoveRow,\n onToggleRowSelection,\n rowIdFor,\n } = props;\n\n return (\n <Table.Body>\n {pageRows.map((row, visibleIndex) => {\n const rowIndex = pageIndex * pageSize + visibleIndex;\n const sourceIndex = data.indexOf(row);\n const rowId = rowIdFor(row, sourceIndex);\n const tableRow = (\n <Table.Row\n key={rowId}\n data-document-row=\"true\"\n data-selected={selectedRowIds.has(rowId) ? \"true\" : undefined}\n aria-selected={selectedRowIds.has(rowId)}\n height=\"10\"\n background=\"bg\"\n >\n <Table.Cell\n data-column-id=\"rowIndex\"\n height=\"10\"\n padding=\"xs\"\n textAlign=\"center\"\n textStyle=\"paragraph/S/regular\"\n background=\"bg.subtle\"\n borderRightWidth=\"1px\"\n borderBottomWidth=\"1px\"\n borderColor=\"border.subtle\"\n >\n {rowIndex + 1}\n </Table.Cell>\n {enableSelection ? (\n <EditModeSelectionCell\n checked={selectedRowIds.has(rowId)}\n onChange={(checked) => onToggleRowSelection(rowId, checked)}\n />\n ) : null}\n {columns.map((column) => {\n const context: DataTableCellContext = {\n row,\n rowId,\n columnId: column.id,\n value: row[column.id] ?? \"\",\n };\n const isActive = activeCell?.rowId === rowId && activeCell.columnId === column.id;\n return (\n <EditModeDataTableCell\n key={column.id}\n activeDraft={isActive ? activeCell?.draft : undefined}\n column={column}\n context={context}\n editMode={editMode}\n isActive={isActive}\n isReadOnly={isReadOnly}\n onActivate={() => onActivateCell({ rowId, columnId: column.id, draft: String(context.value ?? \"\") })}\n onDraftChange={(draft) => onDraftChange({ rowId, columnId: column.id, draft })}\n onSave={onCommitCell}\n onCancel={onCancelCell}\n />\n );\n })}\n {!isReadOnly ? (\n <Table.Cell\n data-column-id=\"editControl\"\n width=\"min-content\"\n height=\"10\"\n position=\"sticky\"\n right=\"0\"\n zIndex=\"1\"\n background=\"bg\"\n borderLeftWidth=\"1px\"\n borderBottomWidth=\"1px\"\n borderColor=\"border.subtle\"\n />\n ) : null}\n </Table.Row>\n );\n\n if (isReadOnly) return tableRow;\n\n return (\n <ResourceContextMenu\n key={rowId}\n contentMinWidth=\"12rem\"\n actions={[\n {\n key: \"delete-row\",\n label: \"Delete row\",\n icon: <Icon as={Trash2} boxSize=\"14px\" />,\n onClick: () => onRemoveRow(rowId),\n },\n ]}\n >\n {tableRow}\n </ResourceContextMenu>\n );\n })}\n {!isReadOnly && showNewRow ? (\n <Table.Row>\n <Table.Cell colSpan={columns.length + 2 + (enableSelection ? 1 : 0)} padding=\"0\">\n <Button\n size=\"xs\"\n variant=\"ghost-static\"\n width=\"100%\"\n justifyContent=\"flex-start\"\n paddingX=\"xs\"\n color=\"fg.muted\"\n onClick={onAddRow}\n >\n <Icon as={Plus} />\n New row\n </Button>\n </Table.Cell>\n </Table.Row>\n ) : null}\n </Table.Body>\n );\n};\n","import { Flex, Icon, IconButton, Table, Text } from \"@chakra-ui/react\";\nimport { Pencil, Plus, Trash2 } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport { ResourceContextMenu } from \"@/components/overlays/resource-context-menu\";\nimport { EditModeHeaderEditor } from \"./edit-mode-data-table-editors\";\nimport { getIcon } from \"./helpers\";\nimport type { DataTableEditModeColumn, DataTableEditModeConfig, RowData } from \"./types\";\n\ninterface ActiveHeader {\n columnId: string;\n draft: string;\n}\n\ninterface EditModeDataTableHeaderProps {\n activeHeader: ActiveHeader | null;\n columnIcons?: Record<string, ReactNode>;\n columns: DataTableEditModeColumn[];\n data: RowData[];\n editMode: DataTableEditModeConfig;\n isReadOnly: boolean;\n selectionHeader?: ReactNode;\n onAddColumn: () => void;\n onCancelHeaderEdit: () => void;\n onDeleteColumn: (columnId: string) => void;\n onHeaderDraftChange: (draft: string) => void;\n onHeaderEdit: (column: DataTableEditModeColumn) => void;\n onSaveHeader: () => void;\n}\n\nexport const EditModeDataTableHeader = (props: EditModeDataTableHeaderProps) => {\n const {\n activeHeader,\n columnIcons,\n columns,\n data,\n editMode,\n isReadOnly,\n selectionHeader,\n onAddColumn,\n onCancelHeaderEdit,\n onDeleteColumn,\n onHeaderDraftChange,\n onHeaderEdit,\n onSaveHeader,\n } = props;\n\n return (\n <Table.Header>\n <Table.Row height=\"10\" background=\"bg.subtle\">\n <Table.ColumnHeader\n data-column-id=\"rowIndex\"\n width=\"fit-content\"\n padding=\"xs\"\n background=\"bg.subtle\"\n borderRightWidth=\"1px\"\n borderBottomWidth=\"1px\"\n borderColor=\"border.subtle\"\n />\n {selectionHeader ? (\n <Table.ColumnHeader\n data-column-id=\"rowSelection\"\n padding=\"xs\"\n textAlign=\"center\"\n background=\"bg.subtle\"\n borderRightWidth=\"1px\"\n borderBottomWidth=\"1px\"\n borderColor=\"border.subtle\"\n >\n {selectionHeader}\n </Table.ColumnHeader>\n ) : null}\n {columns.map((column) => {\n const isEditing = activeHeader?.columnId === column.id;\n const headerIcon = columnIcons?.[column.id] ?? getIcon(data.map((row) => row[column.id]));\n const header = (\n <Table.ColumnHeader\n key={column.id}\n data-column-id={column.id}\n data-data-column=\"true\"\n height=\"10\"\n padding={isEditing ? \"0\" : \"xs\"}\n position=\"relative\"\n overflow=\"hidden\"\n background=\"bg.subtle\"\n textAlign={column.alignment ?? \"left\"}\n borderRightWidth=\"1px\"\n borderBottomWidth=\"1px\"\n borderColor=\"border.subtle\"\n cursor={isReadOnly ? \"default\" : \"context-menu\"}\n >\n {isEditing ? (\n <EditModeHeaderEditor\n accessibleName={column.label || \"empty\"}\n draft={activeHeader.draft}\n onChange={onHeaderDraftChange}\n onSave={onSaveHeader}\n onCancel={onCancelHeaderEdit}\n />\n ) : (\n <Flex alignItems=\"center\" gap=\"1\" minWidth=\"0\" overflow=\"hidden\">\n {headerIcon}\n <Text as=\"div\" textStyle=\"label/S/medium\" truncate>\n {editMode.renderHeader?.(column) ?? column.label}\n </Text>\n </Flex>\n )}\n </Table.ColumnHeader>\n );\n\n if (isReadOnly) return header;\n\n return (\n <ResourceContextMenu\n key={column.id}\n contentMinWidth=\"12rem\"\n actions={[\n {\n key: \"edit-header\",\n label: \"Rename column\",\n icon: <Icon as={Pencil} boxSize=\"14px\" />,\n onClick: () => onHeaderEdit(column),\n },\n {\n key: \"delete-column\",\n label: \"Delete column\",\n icon: <Icon as={Trash2} boxSize=\"14px\" />,\n isDisabled: columns.length === 1,\n separatorBefore: true,\n onClick: () => onDeleteColumn(column.id),\n },\n ]}\n >\n {header}\n </ResourceContextMenu>\n );\n })}\n {!isReadOnly ? (\n <Table.ColumnHeader\n data-column-id=\"editControl\"\n width=\"min-content\"\n padding=\"2xs\"\n textAlign=\"center\"\n position=\"sticky\"\n right=\"0\"\n zIndex=\"3\"\n background=\"bg.subtle\"\n borderLeftWidth=\"1px\"\n borderBottomWidth=\"1px\"\n borderColor=\"border.subtle\"\n >\n <IconButton size=\"xs\" variant=\"ghost\" aria-label=\"Insert column\" onClick={onAddColumn}>\n <Plus />\n </IconButton>\n </Table.ColumnHeader>\n ) : null}\n </Table.Row>\n </Table.Header>\n );\n};\n","import { Button, Icon as ChakraIcon, Flex, IconButton, Menu, Portal, Stack, Text } from \"@chakra-ui/react\";\nimport { ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight } from \"lucide-react\";\n\nimport { NumberInputField, NumberInputRoot } from \"@/components/primitives/number-input\";\nimport { ListRow } from \"../list-row/list-row\";\n\ninterface PaginationFooterProps {\n pageCount: number;\n pageIndex: number;\n pageSize: number;\n pageSizeOptions: number[];\n totalRows: number;\n onPageChange: (pageIndex: number) => void;\n onPageSizeChange: (pageSize: number) => void;\n}\n\nexport function PaginationFooter(props: PaginationFooterProps) {\n const { pageCount, pageIndex, pageSize, pageSizeOptions, totalRows, onPageChange, onPageSizeChange } = props;\n const totalPages = Math.max(pageCount, 1);\n const canGoBack = pageIndex > 0;\n const canGoForward = pageIndex < totalPages - 1;\n\n return (\n <Flex\n alignItems=\"center\"\n justifyContent=\"space-between\"\n borderTop=\"1px solid\"\n borderColor={\"border.subtle\"}\n paddingX=\"xs\"\n >\n <Text textStyle=\"label/S/regular\">{totalRows} rows</Text>\n <Stack alignItems=\"center\" direction=\"row\" justifyContent=\"flex-end\" paddingY=\"xs\">\n <Flex alignItems=\"center\" gap=\"xs\" marginRight=\"sm\">\n <Text textStyle=\"label/S/regular\">Rows per page</Text>\n <Menu.Root>\n <Menu.Trigger asChild>\n <Button size=\"xs\" variant=\"outline\">\n {pageSize}\n </Button>\n </Menu.Trigger>\n <Portal>\n <Menu.Positioner>\n <Menu.Content bg=\"bg\">\n {pageSizeOptions.map((option) => (\n <Menu.Item key={option} value={`${option}`} asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n label={`${option}`}\n isSelected={option === pageSize}\n onActivate={() => onPageSizeChange(option)}\n />\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Positioner>\n </Portal>\n </Menu.Root>\n </Flex>\n <IconButton size=\"xs\" aria-label=\"Go to first page\" onClick={() => onPageChange(0)} disabled={!canGoBack}>\n <ChakraIcon as={ChevronsLeft} boxSize=\"14px\" />\n </IconButton>\n <IconButton\n size=\"xs\"\n aria-label=\"Go to previous page\"\n onClick={() => onPageChange(pageIndex - 1)}\n disabled={!canGoBack}\n >\n <ChakraIcon as={ChevronLeft} boxSize=\"14px\" />\n </IconButton>\n <IconButton\n size=\"xs\"\n aria-label=\"Go to next page\"\n onClick={() => onPageChange(pageIndex + 1)}\n disabled={!canGoForward}\n >\n <ChakraIcon as={ChevronRight} boxSize=\"14px\" />\n </IconButton>\n <IconButton\n size=\"xs\"\n aria-label=\"Go to last page\"\n onClick={() => onPageChange(totalPages - 1)}\n disabled={!canGoForward}\n >\n <ChakraIcon as={ChevronsRight} boxSize=\"14px\" />\n </IconButton>\n <Flex alignItems=\"center\" height=\"100%\" marginLeft=\"sm\" marginRight=\"md\" gap=\"xs\">\n <Text>Page</Text>\n <NumberInputRoot\n margin=\"2xs\"\n width=\"3rem\"\n size=\"xs\"\n min={1}\n max={totalPages}\n value={`${pageIndex + 1}`}\n onValueChange={(details) => {\n const next = Number.isNaN(details.valueAsNumber) ? 1 : details.valueAsNumber;\n const clamped = Math.min(totalPages, Math.max(1, next));\n onPageChange(clamped - 1);\n }}\n >\n <NumberInputField className=\"nodrag\" />\n </NumberInputRoot>\n <Text>of {totalPages}</Text>\n </Flex>\n </Stack>\n </Flex>\n );\n}\n","import { Button, Icon as ChakraIcon, Flex, IconButton, Menu, Portal, Stack, Text } from \"@chakra-ui/react\";\nimport { X } from \"lucide-react\";\nimport { ListRow } from \"../list-row/list-row\";\nimport type { DataTableSelectionAction, RowData } from \"./types\";\n\ninterface SelectionToolbarProps {\n selectedCount: number;\n totalCount: number;\n onClearSelection: () => void;\n onSelectAll: () => void;\n actions: DataTableSelectionAction[];\n selectedRows: RowData[];\n}\n\nexport function SelectionToolbar(props: SelectionToolbarProps) {\n const { selectedCount, totalCount, onClearSelection, onSelectAll, actions, selectedRows } = props;\n const actionLabel = actions.length === 1 ? actions[0]?.label : \"Actions\";\n\n return (\n <Flex position=\"absolute\" insetX=\"sm\" bottom=\"sm\" zIndex=\"popover\" justifyContent=\"center\" pointerEvents=\"none\">\n <Stack\n role=\"toolbar\"\n aria-label=\"Selection actions\"\n direction=\"row\"\n alignItems=\"center\"\n layerStyle=\"floatingBar\"\n pointerEvents=\"auto\"\n maxWidth=\"100%\"\n overflowX=\"auto\"\n >\n <IconButton aria-label=\"clear-selection\" onClick={onClearSelection} size=\"xs\">\n <ChakraIcon as={X} boxSize=\"16px\" />\n </IconButton>\n <Text>{selectedCount} rows selected</Text>\n {selectedCount !== totalCount && (\n <Button size=\"xs\" onClick={onSelectAll}>\n Select all {totalCount} rows\n </Button>\n )}\n {actions.length === 1 && actions[0] ? (\n <Button size=\"xs\" onClick={() => actions[0]?.onSelect(selectedRows)}>\n {actionLabel}\n </Button>\n ) : null}\n {actions.length > 1 ? (\n <Menu.Root>\n <Menu.Trigger asChild>\n <Button size=\"xs\">{actionLabel}</Button>\n </Menu.Trigger>\n <Portal>\n <Menu.Positioner>\n <Menu.Content bg=\"bg\">\n {actions.map((action) => (\n <Menu.Item key={action.label} value={action.label} asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n tone={action.destructive ? \"danger\" : \"default\"}\n label={action.label}\n icon={action.icon}\n onActivate={() => action.onSelect(selectedRows)}\n />\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Positioner>\n </Portal>\n </Menu.Root>\n ) : null}\n </Stack>\n </Flex>\n );\n}\n","import { Box, Flex, Table } from \"@chakra-ui/react\";\nimport { useEffect, useState } from \"react\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\nimport { useKanbanRendererStore } from \"../kanban-renderer/use-kanban-renderer-store\";\nimport { DataTableHeader } from \"./data-table-header\";\nimport {\n buildDataTableRendererAttributes,\n buildDataTableRendererRows,\n filterDataTableRows,\n resolveDataTableToolbarStorageKey,\n resolveSelectionActions,\n shouldEnableSelection,\n} from \"./data-table-state\";\nimport { EditModeDataTableBody } from \"./edit-mode-data-table-body\";\nimport { EditModeDataTableHeader } from \"./edit-mode-data-table-header\";\nimport { EditModeSelectionHeader } from \"./edit-mode-data-table-selection\";\nimport { PaginationFooter } from \"./pagination-footer\";\nimport { SelectionToolbar } from \"./selection-toolbar\";\nimport type { DataTableEditModeColumn, DataTableProps, RowData } from \"./types\";\n\nconst createId = (kind: \"column\" | \"row\") => {\n const unique = globalThis.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random()}`;\n return `${kind}-${unique}`;\n};\n\ninterface ActiveCell {\n rowId: string;\n columnId: string;\n draft: string;\n}\n\ninterface ActiveHeader {\n columnId: string;\n draft: string;\n}\n\nexport const EditModeDataTable = (props: DataTableProps) => {\n const {\n data,\n editMode,\n fullWidth = false,\n initialPageSize = 30,\n pageSizeOptions = [10, 20, 30, 50],\n isReadOnly = true,\n getRowId,\n columnIcons,\n toolbarStorageKey,\n defaultViews,\n defaultActiveViewId,\n } = props;\n const [pageIndex, setPageIndex] = useState(0);\n const [pageSize, setPageSize] = useState(() => Math.min(Math.max(initialPageSize, 1), 50));\n const [activeCell, setActiveCell] = useState<ActiveCell | null>(null);\n const [activeHeader, setActiveHeader] = useState<ActiveHeader | null>(null);\n const [selectedRowIds, setSelectedRowIds] = useState<Set<string>>(() => new Set());\n const columns = editMode?.columns ?? [];\n const columnKeys = columns.map((column) => column.id);\n const columnLabels = Object.fromEntries(columns.map((column) => [column.id, column.label]));\n const rendererAttributes = buildDataTableRendererAttributes(data, columnKeys, columnLabels);\n const rendererRows = buildDataTableRendererRows(data, columnKeys, getRowId);\n const resolvedToolbarStorageKey = resolveDataTableToolbarStorageKey({ toolbarStorageKey, columnKeys });\n const rendererInitialState = {\n settings: { viewMode: \"list\" as const },\n views: defaultViews,\n activeViewId: defaultActiveViewId,\n };\n const filters = useKanbanRendererStore(resolvedToolbarStorageKey, (state) => state.filters, rendererInitialState);\n const filteredRendererRows = filterDataTableRows(rendererRows, filters, rendererAttributes);\n const filteredData = filteredRendererRows.map((row) => row.sourceRow);\n const cappedPageSizeOptions = [...new Set(pageSizeOptions.filter((option) => option > 0 && option <= 50))];\n const pageCount = Math.max(Math.ceil(filteredData.length / pageSize), 1);\n const pageRows = filteredData.slice(pageIndex * pageSize, (pageIndex + 1) * pageSize);\n let tableWidth = \"fit-content\";\n if (fullWidth) tableWidth = isReadOnly ? \"100%\" : \"calc(100% + var(--chakra-spacing-10))\";\n const enableSelection = shouldEnableSelection(props);\n const selectionActions = resolveSelectionActions(props);\n\n useEffect(() => {\n if (pageIndex < pageCount) return;\n setPageIndex(pageCount - 1);\n }, [pageCount, pageIndex]);\n\n useEffect(() => {\n const visibleIds = new Set(filteredRendererRows.map((row) => row.id));\n setSelectedRowIds((current) => {\n const next = new Set([...current].filter((rowId) => visibleIds.has(rowId)));\n const isUnchanged = next.size === current.size && [...next].every((rowId) => current.has(rowId));\n return isUnchanged ? current : next;\n });\n }, [filteredRendererRows]);\n\n if (!editMode) return null;\n\n const rowIdFor = (row: RowData, index: number) => getRowId?.(row, index) ?? String(row.id ?? index);\n\n const commitCell = () => {\n if (!activeCell) return;\n\n editMode.onDataChange(\n data.map((row, index) =>\n rowIdFor(row, index) === activeCell.rowId ? { ...row, [activeCell.columnId]: activeCell.draft } : row,\n ),\n );\n setActiveCell(null);\n };\n\n const updateColumn = (columnId: string, update: Partial<DataTableEditModeColumn>) => {\n editMode.onColumnsChange(\n columns.map((column) => (column.id === columnId ? { ...column, ...update, id: column.id } : column)),\n );\n };\n\n const commitHeader = () => {\n if (!activeHeader) return;\n updateColumn(activeHeader.columnId, { label: activeHeader.draft });\n setActiveHeader(null);\n };\n\n const addColumn = () => {\n const id = createId(\"column\");\n editMode.onColumnsChange([...columns, { id, label: `Column ${columns.length + 1}`, alignment: null }]);\n };\n\n const removeColumn = (columnId: string) => {\n if (columns.length === 1) return;\n editMode.onColumnsChange(columns.filter((column) => column.id !== columnId));\n if (activeHeader?.columnId === columnId) setActiveHeader(null);\n };\n\n const addRow = () => {\n const row = Object.fromEntries(columns.map((column) => [column.id, \"\"]));\n row.id = createId(\"row\");\n editMode.onDataChange([...data, row]);\n };\n\n const changePageSize = (nextPageSize: number) => {\n setPageSize(Math.min(nextPageSize, 50));\n setPageIndex(0);\n };\n\n const removeRow = (rowId: string) => {\n editMode.onDataChange(data.filter((row, index) => rowIdFor(row, index) !== rowId));\n };\n\n const toggleRowSelection = (rowId: string, checked: boolean) => {\n setSelectedRowIds((current) => {\n const next = new Set(current);\n if (checked) next.add(rowId);\n else next.delete(rowId);\n return next;\n });\n };\n\n const allRowsSelected = filteredRendererRows.length > 0 && selectedRowIds.size === filteredRendererRows.length;\n const selectedRows = filteredRendererRows.filter((row) => selectedRowIds.has(row.id)).map((row) => row.sourceRow);\n\n return (\n <Flex direction=\"column\" width=\"100%\" gap=\"2xs\">\n {toolbarStorageKey ? (\n <DataTableHeader\n rows={rendererRows}\n storageKey={resolvedToolbarStorageKey}\n attributes={rendererAttributes}\n columnControl={null}\n defaultViews={defaultViews}\n defaultActiveViewId={defaultActiveViewId}\n />\n ) : null}\n <Box position=\"relative\" width=\"100%\">\n <ScrollArea\n data-table-scroll-area\n maxWidth=\"100%\"\n showHorizontalScrollbar\n showVerticalScrollbar={false}\n viewportProps={{ overflowY: \"hidden\" }}\n >\n <Table.Root\n data-edit-mode=\"true\"\n size=\"sm\"\n tableLayout=\"fixed\"\n width={tableWidth}\n borderWidth=\"1px\"\n borderColor=\"border.subtle\"\n >\n <colgroup>\n <Box as=\"col\" width=\"9\" />\n {enableSelection ? <Box as=\"col\" width=\"9\" /> : null}\n {columns.map((column) => (\n <col key={column.id} />\n ))}\n {!isReadOnly ? <Box as=\"col\" width=\"10\" /> : null}\n </colgroup>\n <EditModeDataTableHeader\n activeHeader={activeHeader}\n columnIcons={columnIcons}\n columns={columns}\n data={data}\n editMode={editMode}\n isReadOnly={isReadOnly}\n onAddColumn={addColumn}\n onCancelHeaderEdit={() => setActiveHeader(null)}\n onDeleteColumn={removeColumn}\n onHeaderDraftChange={(draft) => setActiveHeader((current) => (current ? { ...current, draft } : current))}\n onHeaderEdit={(column) => setActiveHeader({ columnId: column.id, draft: column.label })}\n onSaveHeader={commitHeader}\n selectionHeader={\n enableSelection ? (\n <EditModeSelectionHeader\n checked={allRowsSelected}\n indeterminate={selectedRowIds.size > 0 && !allRowsSelected}\n onChange={(checked) =>\n setSelectedRowIds(checked ? new Set(filteredRendererRows.map((row) => row.id)) : new Set())\n }\n />\n ) : undefined\n }\n />\n <EditModeDataTableBody\n activeCell={activeCell}\n columns={columns}\n data={data}\n editMode={editMode}\n enableSelection={enableSelection}\n isReadOnly={isReadOnly}\n pageIndex={pageIndex}\n pageRows={pageRows}\n pageSize={pageSize}\n selectedRowIds={selectedRowIds}\n showNewRow={pageIndex === pageCount - 1}\n onActivateCell={setActiveCell}\n onAddRow={addRow}\n onCancelCell={() => setActiveCell(null)}\n onCommitCell={commitCell}\n onDraftChange={setActiveCell}\n onRemoveRow={removeRow}\n onToggleRowSelection={toggleRowSelection}\n rowIdFor={rowIdFor}\n />\n </Table.Root>\n </ScrollArea>\n {enableSelection && selectedRows.length > 0 ? (\n <SelectionToolbar\n selectedCount={selectedRows.length}\n totalCount={filteredRendererRows.length}\n onClearSelection={() => setSelectedRowIds(new Set())}\n onSelectAll={() => setSelectedRowIds(new Set(filteredRendererRows.map((row) => row.id)))}\n actions={selectionActions}\n selectedRows={selectedRows}\n />\n ) : null}\n </Box>\n {pageCount > 1 ? (\n <PaginationFooter\n pageCount={pageCount}\n pageIndex={pageIndex}\n pageSize={pageSize}\n pageSizeOptions={cappedPageSizeOptions}\n totalRows={filteredData.length}\n onPageChange={setPageIndex}\n onPageSizeChange={changePageSize}\n />\n ) : null}\n </Flex>\n );\n};\n"],"names":["DataTableHeader","props","$","_c","rows","attributes","storageKey","columnControl","defaultViews","defaultActiveViewId","t0","Symbol","for","viewMode","t1","KanbanRendererToolbar","isDisplayValue","value","isString","v","String","isNumber","Number","isBoolean","Boolean","getType","values","comparableValues","map","sortValue","valueOf","isValidElement","filter","length","every","isNaN","Date","parse","toString","headerIconProps","boxSize","marginRight","getIcon","type","jsx","ChakraIcon","CalendarClock","Type","Hash","CheckCircle2","formatDisplayValue","display","JSON","stringify","columnHelper","createColumnHelper","defaultPageSize","resolveDataTableRowId","row","index","getRowId","id","resolveInitialPageSize","initialPageSize","getSelectedOriginalRows","original","resolveSelectionActions","actions","selectionActions","onCSVDownload","push","label","onSelect","shouldEnableSelection","selectionMode","shouldHighlightActiveRow","enableRowActivation","activeRowId","rowId","toAttributeValue","raw","isNumberColumn","columnKey","resolveAttributeType","kind","buildDataTableRendererAttributes","columnKeys","compactHeaders","filterable","sortable","displayable","buildDataTableRendererRows","Object","fromEntries","firstValue","title","sourceRow","filterDataTableRows","filters","filterRows","resolveDataTableColumnOrder","availableColumnIds","requestedColumnOrder","availableColumnIdSet","Set","orderedColumnIds","columnId","has","orderedColumnIdSet","missingColumnIds","reorderDataTableColumns","columnIds","activeColumnId","overColumnId","activeIndex","indexOf","overIndex","nextColumnIds","activeColumn","splice","resolveDataTableToolbarStorageKey","toolbarStorageKey","join","InlineEditActions","cancelLabel","saveLabel","onCancel","onSave","Check","IconButton","t2","X","t3","t4","Flex","EditModeTextSurface","accessibleName","textStyle","onChange","elementRef","useRef","initialValueRef","element","current","textContent","focus","selection","globalThis","getSelection","range","document","createRange","selectNodeContents","removeAllRanges","addRange","useEffect","event","key","preventDefault","handleKeyDown","event_0","currentTarget","EditModeHeaderEditor","draft","Box","jsxs","EditModeCellEditor","anchorRef","customEditor","mainAxis","placement","offset","getAnchorElement","minHeight","maxHeight","overscrollBehavior","t5","ScrollArea","t6","t7","Portal","Popover","t8","EditModeDataTableCell","activeDraft","column","context","editMode","isActive","isReadOnly","onActivate","onDraftChange","undefined","cellRef","isCellEditable","isEditable","content","renderCellEditor","renderCell","alignment","t9","t10","t11","t12","Table","stopControlPropagation","stopPropagation","EditModeSelectionHeader","checked","indeterminate","Minus","details","Checkbox","EditModeSelectionCell","EditModeDataTableBody","activeCell","columns","data","enableSelection","pageIndex","pageRows","pageSize","selectedRowIds","showNewRow","onActivateCell","onAddRow","onCancelCell","onCommitCell","onRemoveRow","onToggleRowSelection","rowIdFor","visibleIndex","rowIndex","sourceIndex","tableRow","ResourceContextMenu","icon","Icon","Trash2","onClick","Button","Plus","EditModeDataTableHeader","activeHeader","columnIcons","selectionHeader","onAddColumn","onCancelHeaderEdit","onDeleteColumn","onHeaderDraftChange","onHeaderEdit","onSaveHeader","isEditing","headerIcon","header","Text","renderHeader","Pencil","isDisabled","separatorBefore","PaginationFooter","pageCount","pageSizeOptions","totalRows","onPageChange","onPageSizeChange","totalPages","Math","max","canGoBack","canGoForward","Menu","option","ListRow","ChevronsLeft","ChevronLeft","t13","t14","t15","t16","ChevronRight","t17","t18","t19","t20","ChevronsRight","t21","t22","t23","t24","next","valueAsNumber","clamped","min","t25","NumberInputField","t26","NumberInputRoot","t27","t28","t29","Stack","t30","SelectionToolbar","selectedCount","totalCount","onClearSelection","onSelectAll","selectedRows","actionLabel","action","destructive","createId","unique","crypto","randomUUID","now","random","EditModeDataTable","fullWidth","setPageIndex","useState","setPageSize","setActiveCell","setActiveHeader","setSelectedRowIds","_temp","_temp2","columnLabels","_temp3","rendererAttributes","rendererRows","resolvedToolbarStorageKey","settings","views","activeViewId","useKanbanRendererStore","_temp4","filteredRendererRows","filteredData","_temp5","cappedPageSizeOptions","_temp6","ceil","slice","tableWidth","visibleIds","_temp7","size","rowId_0","row_1","onDataChange","row_2","index_0","commitCell","update","onColumnsChange","column_1","updateColumn","commitHeader","addColumn","columnId_0","column_2","removeColumn","row_3","_temp8","addRow","nextPageSize","changePageSize","rowId_1","row_4","index_1","removeRow","rowId_2","current_0","next_0","add","delete","toggleRowSelection","allRowsSelected","row_5","_temp9","overflowY","_temp0","t31","t32","t33","t34","current_1","column_5","t35","checked_0","_temp1","t36","t37","t38","t39","t40","t41","_temp10","t42","t43","t44","column_0","state","row_0","column_3","row_6","column_4","row_7","row_8"],"mappings":"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"}
@@ -9,7 +9,7 @@ import { chakra as Vn, Box as ce, Text as le, Image as Yn, IconButton as W, Stac
9
9
  import { DecoratorNode as Me, $getSelection as se, $getNodeByKey as He, $isRangeSelection as ee, $applyNodeReplacement as Oe, ElementNode as Zn, $isParagraphNode as ot, $isElementNode as nn, $isTextNode as _t, $isLineBreakNode as rn, $getRoot as on, $createParagraphNode as we, $createTextNode as Ee, $createLineBreakNode as er, SELECTION_CHANGE_COMMAND as lt, COMMAND_PRIORITY_CRITICAL as Tt, $nodesOfType as tr, createCommand as nr, FORMAT_TEXT_COMMAND as Ye, $isRootOrShadowRoot as rr, CLICK_COMMAND as ln, COMMAND_PRIORITY_HIGH as wt, COMMAND_PRIORITY_LOW as bt, KEY_ESCAPE_COMMAND as ir, $setSelection as or, HISTORY_MERGE_TAG as ut, $addUpdateTag as sn, KEY_DOWN_COMMAND as lr, REDO_COMMAND as an, UNDO_COMMAND as cn, HISTORY_PUSH_TAG as Ut, TextNode as kt } from "lexical";
10
10
  import * as sr from "react";
11
11
  import { createContext as ar, useContext as cr, useRef as me, useEffect as q, Suspense as un, lazy as ur, useState as B, useLayoutEffect as dr, Fragment as mr } from "react";
12
- import { E as fr } from "./edit-mode-data-table-4GMiDy75.js";
12
+ import { E as fr } from "./edit-mode-data-table-D6NeiDJx.js";
13
13
  import { AutoFocusPlugin as hr } from "@lexical/react/LexicalAutoFocusPlugin";
14
14
  import { CheckListPlugin as pr } from "@lexical/react/LexicalCheckListPlugin";
15
15
  import { LexicalComposer as gr } from "@lexical/react/LexicalComposer";
@@ -630,7 +630,7 @@ function Mt() {
630
630
  function Cn(t) {
631
631
  return t instanceof De;
632
632
  }
633
- const xi = ur(() => import("./MermaidComponent-AmAjWLPm.js"));
633
+ const xi = ur(() => import("./MermaidComponent-BVMyKttu.js"));
634
634
  class Le extends Me {
635
635
  __code;
636
636
  static getType() {
@@ -2413,4 +2413,4 @@ export {
2413
2413
  _o as s,
2414
2414
  li as t
2415
2415
  };
2416
- //# sourceMappingURL=editor-config-Dyh8n5A2.js.map
2416
+ //# sourceMappingURL=editor-config-D9OksZ93.js.map