@pstdio/ui 0.21.0 → 0.22.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 (111) hide show
  1. package/dist/{MermaidComponent-BVMyKttu.js → MermaidComponent-D92GMhht.js} +3 -3
  2. package/dist/{MermaidComponent-BVMyKttu.js.map → MermaidComponent-D92GMhht.js.map} +1 -1
  3. package/dist/chat-ui.d.ts +2 -0
  4. package/dist/chat-ui.js +2 -2
  5. package/dist/components/data-table/build-columns.d.ts +1 -0
  6. package/dist/components/data-table/data-table-column-menu.d.ts +2 -0
  7. package/dist/components/data-table/data-table-row-display.d.ts +11 -0
  8. package/dist/components/data-table/data-table-table-parts.d.ts +1 -0
  9. package/dist/components/data-table/edit-mode-data-table-body.d.ts +1 -0
  10. package/dist/components/data-table/edit-mode-data-table-cell.d.ts +1 -0
  11. package/dist/components/data-table/edit-mode-data-table-header.d.ts +1 -0
  12. package/dist/components/diff-viewer/code-editor.d.ts +8 -2
  13. package/dist/components/kanban-renderer/collection-badge.d.ts +7 -0
  14. package/dist/components/kanban-renderer/index.d.ts +1 -1
  15. package/dist/components/kanban-renderer/kanban-renderer-helpers.d.ts +2 -1
  16. package/dist/components/kanban-renderer/types.d.ts +20 -1
  17. package/dist/components/list-row/list-row-content.d.ts +1 -0
  18. package/dist/components/param-editor/param-editor-presentation.d.ts +1 -1
  19. package/dist/components/param-editor/param-editor.types.d.ts +5 -193
  20. package/dist/components/rich-text/shared/markdown-ast.d.ts +1 -0
  21. package/dist/components/rich-text/shared/markdown-source-document.d.ts +7 -0
  22. package/dist/components/rich-text/shared/markdown-source-links.d.ts +11 -0
  23. package/dist/components/rich-text/shared/markdown-source-map.d.ts +10 -0
  24. package/dist/components/rich-text/utils/inferResourceType.d.ts +1 -1
  25. package/dist/components/tag-editor/tag-editor-row.d.ts +1 -1
  26. package/dist/components/tag-editor/tag-editor.types.d.ts +12 -0
  27. package/dist/components/tag-editor/tag-settings-panel.d.ts +1 -1
  28. package/dist/components/tree-list/tree-list-drag-provider.d.ts +13 -0
  29. package/dist/components/tree-list/tree-list-order.store.d.ts +4 -1
  30. package/dist/components/tree-list/tree-list-reorder.d.ts +14 -3
  31. package/dist/components/tree-list/tree-list-sortable.d.ts +2 -0
  32. package/dist/components/tree-list/tree-list-visibility-filter.d.ts +2 -2
  33. package/dist/components/tree-list/tree-list.d.ts +3 -0
  34. package/dist/components/tree-list/tree-list.types.d.ts +4 -0
  35. package/dist/data-table.d.ts +2 -0
  36. package/dist/data-table.js +806 -793
  37. package/dist/data-table.js.map +1 -1
  38. package/dist/diff.d.ts +2 -0
  39. package/dist/diff.js +529 -533
  40. package/dist/diff.js.map +1 -1
  41. package/dist/edit-mode-data-table-DGgRuSW3.js +846 -0
  42. package/dist/edit-mode-data-table-DGgRuSW3.js.map +1 -0
  43. package/dist/index.d.ts +2 -0
  44. package/dist/index.js +1516 -1413
  45. package/dist/index.js.map +1 -1
  46. package/dist/{kanban-renderer-toolbar-CpegGbwq.js → kanban-renderer-toolbar-Bl8xXdwU.js} +527 -469
  47. package/dist/kanban-renderer-toolbar-Bl8xXdwU.js.map +1 -0
  48. package/dist/kanban-renderer.d.ts +2 -0
  49. package/dist/kanban-renderer.js +21 -21
  50. package/dist/kanban-renderer.js.map +1 -1
  51. package/dist/lazy-markdown-editor-CCOchoJX.js +235 -0
  52. package/dist/lazy-markdown-editor-CCOchoJX.js.map +1 -0
  53. package/dist/list-row-DCgdza1i.js +812 -0
  54. package/dist/list-row-DCgdza1i.js.map +1 -0
  55. package/dist/markdown-CASvn1Z2.js +1643 -0
  56. package/dist/markdown-CASvn1Z2.js.map +1 -0
  57. package/dist/markdown-editor-C4GCyebp.js +1019 -0
  58. package/dist/markdown-editor-C4GCyebp.js.map +1 -0
  59. package/dist/{mermaid-renderer-H3IhLqnQ.js → mermaid-renderer-CVnuKs-A.js} +2 -2
  60. package/dist/{mermaid-renderer-H3IhLqnQ.js.map → mermaid-renderer-CVnuKs-A.js.map} +1 -1
  61. package/dist/mermaid.d.ts +2 -0
  62. package/dist/mermaid.js +1 -1
  63. package/dist/monaco-browser-CgvlArN7.js +21 -0
  64. package/dist/monaco-browser-CgvlArN7.js.map +1 -0
  65. package/dist/{param-editor-B8Ff9Nm8.js → param-editor-CkDq623X.js} +2 -2
  66. package/dist/{param-editor-B8Ff9Nm8.js.map → param-editor-CkDq623X.js.map} +1 -1
  67. package/dist/param-editor-field-DRgbnL7-.js +2809 -0
  68. package/dist/param-editor-field-DRgbnL7-.js.map +1 -0
  69. package/dist/rich-message-DARuDVOX.js +628 -0
  70. package/dist/{rich-message-DdFYRzTo.js.map → rich-message-DARuDVOX.js.map} +1 -1
  71. package/dist/rich-text.d.ts +2 -0
  72. package/dist/rich-text.js +48 -47
  73. package/dist/rich-text.js.map +1 -1
  74. package/dist/style.css +1 -1
  75. package/dist/terminal.d.ts +2 -0
  76. package/dist/theme/primitives/sizes.d.ts +9 -0
  77. package/dist/{theme-BH4fSst9.js → theme-B-l5_a6F.js} +69 -50
  78. package/dist/theme-B-l5_a6F.js.map +1 -0
  79. package/dist/theme-preference-Bpobguh4.js +114 -0
  80. package/dist/theme-preference-Bpobguh4.js.map +1 -0
  81. package/dist/theme.d.ts +2 -0
  82. package/dist/theme.js +1 -1
  83. package/dist/tree-list-AlO5ZmxQ.js +1262 -0
  84. package/dist/tree-list-AlO5ZmxQ.js.map +1 -0
  85. package/dist/utils/theme-preference.d.ts +4 -1
  86. package/dist/workspace-badge-BR_GgsAG.js +175 -0
  87. package/dist/workspace-badge-BR_GgsAG.js.map +1 -0
  88. package/package.json +5 -42
  89. package/dist/dialog-accept-shortcut-DAEBsoWW.js +0 -7
  90. package/dist/dialog-accept-shortcut-DAEBsoWW.js.map +0 -1
  91. package/dist/edit-mode-data-table-D6NeiDJx.js +0 -775
  92. package/dist/edit-mode-data-table-D6NeiDJx.js.map +0 -1
  93. package/dist/editor-config-D9OksZ93.js +0 -2416
  94. package/dist/editor-config-D9OksZ93.js.map +0 -1
  95. package/dist/kanban-renderer-toolbar-CpegGbwq.js.map +0 -1
  96. package/dist/lazy-markdown-editor-B7uP2ALS.js +0 -26
  97. package/dist/lazy-markdown-editor-B7uP2ALS.js.map +0 -1
  98. package/dist/list-row-9oxy-F0v.js +0 -796
  99. package/dist/list-row-9oxy-F0v.js.map +0 -1
  100. package/dist/monaco-browser-CO0NxK_Z.js +0 -19
  101. package/dist/monaco-browser-CO0NxK_Z.js.map +0 -1
  102. package/dist/number-input-WUfejtNx.js +0 -343
  103. package/dist/number-input-WUfejtNx.js.map +0 -1
  104. package/dist/param-editor-field-Cu4pto_a.js +0 -2845
  105. package/dist/param-editor-field-Cu4pto_a.js.map +0 -1
  106. package/dist/rich-message-DdFYRzTo.js +0 -658
  107. package/dist/theme-BH4fSst9.js.map +0 -1
  108. package/dist/theme-preference-DyymrYpR.js +0 -123
  109. package/dist/theme-preference-DyymrYpR.js.map +0 -1
  110. package/dist/tree-list-uV4UFj0x.js +0 -1116
  111. package/dist/tree-list-uV4UFj0x.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit-mode-data-table-DGgRuSW3.js","sources":["../src/components/data-table/data-table-header.tsx","../src/components/data-table/data-table-row-display.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 { Box, Icon, IconButton, Popover, Portal, Text } from \"@chakra-ui/react\";\nimport { Settings2 } from \"lucide-react\";\nimport { Switch } from \"@/components/primitives/switch\";\n\ninterface DataTableRowDisplaySwitchProps {\n showDivider?: boolean;\n wrapRows: boolean;\n onWrapRowsChange: (wrapRows: boolean) => void;\n}\n\nexport const DataTableRowDisplaySwitch = (props: DataTableRowDisplaySwitchProps) => {\n const { showDivider = false, wrapRows, onWrapRowsChange } = props;\n\n return (\n <Box borderBottomWidth={showDivider ? \"1px\" : undefined} borderColor=\"border.subtle\" padding=\"xs\">\n <Switch\n checked={wrapRows}\n inputProps={{ role: \"switch\" }}\n width=\"full\"\n flexDirection=\"row-reverse\"\n justifyContent=\"space-between\"\n onCheckedChange={(details) => onWrapRowsChange(details.checked === true)}\n >\n <Text as=\"span\" textStyle=\"label/S/regular\">\n Wrap rows\n </Text>\n </Switch>\n </Box>\n );\n};\n\ninterface DataTableRowDisplayMenuProps extends DataTableRowDisplaySwitchProps {\n compact?: boolean;\n}\n\nexport const DataTableRowDisplayMenu = (props: DataTableRowDisplayMenuProps) => {\n const { compact = false, wrapRows, onWrapRowsChange } = props;\n const content = (\n <Popover.Positioner>\n <Popover.Content width=\"min(240px, calc(100vw - 32px))\" p=\"0\" bg=\"bg\" overflow=\"hidden\">\n <DataTableRowDisplaySwitch wrapRows={wrapRows} onWrapRowsChange={onWrapRowsChange} />\n </Popover.Content>\n </Popover.Positioner>\n );\n\n return (\n <Popover.Root positioning={{ placement: compact ? \"bottom-start\" : \"bottom-end\", offset: { mainAxis: 8 } }}>\n <Popover.Trigger asChild>\n <IconButton aria-label=\"Display settings\" variant=\"ghost\" size={compact ? \"2xs\" : \"sm\"}>\n <Icon as={Settings2} boxSize=\"14px\" />\n </IconButton>\n </Popover.Trigger>\n {compact ? content : <Portal>{content}</Portal>}\n </Popover.Root>\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 wrapRows: boolean;\n onActivate: () => void;\n onCancel: () => void;\n onDraftChange: (draft: string) => void;\n onSave: () => void;\n}\n\nconst getRowDisplayProps = (wrapRows: boolean) => {\n if (wrapRows) {\n return {\n height: undefined,\n maxHeight: undefined,\n overflowWrap: \"anywhere\" as const,\n textOverflow: undefined,\n verticalAlign: \"top\" as const,\n whiteSpace: \"normal\" as const,\n };\n }\n\n return {\n height: \"10\",\n maxHeight: \"10\",\n overflowWrap: undefined,\n textOverflow: \"ellipsis\" as const,\n verticalAlign: \"middle\" as const,\n whiteSpace: \"nowrap\" as const,\n };\n};\n\nexport const EditModeDataTableCell = (props: EditModeDataTableCellProps) => {\n const {\n activeDraft = \"\",\n column,\n context,\n editMode,\n isActive,\n isReadOnly,\n wrapRows,\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 const rowDisplayProps = getRowDisplayProps(wrapRows);\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\n width=\"100%\"\n minHeight=\"5\"\n textAlign=\"inherit\"\n overflowWrap={rowDisplayProps.overflowWrap}\n whiteSpace={rowDisplayProps.whiteSpace}\n >\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={rowDisplayProps.height}\n maxHeight={rowDisplayProps.maxHeight}\n position=\"relative\"\n overflow={isActive ? \"visible\" : \"hidden\"}\n background=\"bg\"\n textAlign={column.alignment ?? \"left\"}\n textStyle=\"paragraph/S/regular\"\n textOverflow={rowDisplayProps.textOverflow}\n verticalAlign={rowDisplayProps.verticalAlign}\n whiteSpace={rowDisplayProps.whiteSpace}\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 wrapRows: 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 wrapRows,\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={wrapRows ? undefined : \"10\"}\n background=\"bg\"\n >\n <Table.Cell\n data-column-id=\"rowIndex\"\n height={wrapRows ? undefined : \"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 verticalAlign={wrapRows ? \"top\" : \"middle\"}\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 wrapRows={wrapRows}\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={wrapRows ? undefined : \"10\"}\n position=\"sticky\"\n right=\"0\"\n zIndex=\"1\"\n background=\"bg\"\n borderLeftWidth=\"1px\"\n borderBottomWidth=\"1px\"\n borderColor=\"border.subtle\"\n verticalAlign={wrapRows ? \"top\" : \"middle\"}\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 rowDisplayControl?: ReactNode;\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 rowDisplayControl,\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={rowDisplayControl ? \"2xs\" : \"xs\"}\n background=\"bg.subtle\"\n borderRightWidth=\"1px\"\n borderBottomWidth=\"1px\"\n borderColor=\"border.subtle\"\n >\n {rowDisplayControl}\n </Table.ColumnHeader>\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 { DataTableRowDisplayMenu } from \"./data-table-row-display\";\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\nconst buildRendererInitialState = (props: Pick<DataTableProps, \"defaultViews\" | \"defaultActiveViewId\">) => ({\n settings: { viewMode: \"list\" as const },\n views: props.defaultViews,\n activeViewId: props.defaultActiveViewId,\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 [wrapRows, setWrapRows] = useState(false);\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 = buildRendererInitialState(props);\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 const rowDisplayControl = (\n <DataTableRowDisplayMenu compact={!toolbarStorageKey} wrapRows={wrapRows} onWrapRowsChange={setWrapRows} />\n );\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={rowDisplayControl}\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 rowDisplayControl={toolbarStorageKey ? undefined : rowDisplayControl}\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 wrapRows={wrapRows}\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","DataTableRowDisplaySwitch","showDivider","wrapRows","onWrapRowsChange","undefined","t2","role","t3","details","checked","t4","Text","t5","Switch","t6","jsx","Box","DataTableRowDisplayMenu","compact","Popover","content","mainAxis","placement","offset","Icon","Settings2","t7","IconButton","t8","Portal","t9","jsxs","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","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","X","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","EditModeCellEditor","anchorRef","customEditor","getAnchorElement","minHeight","maxHeight","overscrollBehavior","ScrollArea","getRowDisplayProps","height","overflowWrap","textOverflow","verticalAlign","whiteSpace","EditModeDataTableCell","activeDraft","column","context","editMode","isActive","isReadOnly","onActivate","onDraftChange","cellRef","isCellEditable","isEditable","rowDisplayProps","renderCellEditor","renderCell","alignment","t10","t11","t12","t13","Table","stopControlPropagation","stopPropagation","EditModeSelectionHeader","indeterminate","Minus","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","Trash2","onClick","Button","Plus","EditModeDataTableHeader","activeHeader","columnIcons","rowDisplayControl","selectionHeader","onAddColumn","onCancelHeaderEdit","onDeleteColumn","onHeaderDraftChange","onHeaderEdit","onSaveHeader","isEditing","headerIcon","header","renderHeader","Pencil","isDisabled","separatorBefore","PaginationFooter","pageCount","pageSizeOptions","totalRows","onPageChange","onPageSizeChange","totalPages","Math","max","canGoBack","canGoForward","Menu","option","ListRow","ChevronsLeft","ChevronLeft","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","buildRendererInitialState","settings","views","activeViewId","EditModeDataTable","fullWidth","setPageIndex","useState","setPageSize","setActiveCell","setActiveHeader","setSelectedRowIds","_temp","setWrapRows","_temp2","columnLabels","_temp3","rendererAttributes","rendererRows","resolvedToolbarStorageKey","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","t35","t36","current_1","column_5","t37","checked_0","_temp1","t38","t39","t40","t41","t42","t43","_temp10","t44","t45","t46","column_0","state","row_0","column_3","row_6","column_4","row_7","row_8"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -20,8 +20,10 @@ export type { SaveTagSettingsInput, TagEditorAction, TagEditorHeadingProps, TagE
20
20
  export { TagEditor, TagEditorHeading, TagEditorSaveBar, TagSettingsPanel } from './components/tag-editor';
21
21
  export { TreeList } from './components/tree-list/tree-list';
22
22
  export type { TreeListAction, TreeListActionContext, TreeListActionMenuItem, TreeListInlineInput, TreeListLinkComponent, TreeListNavigateEvent, TreeListNavigationIntent, TreeListNode, TreeListSection, } from './components/tree-list/tree-list.types';
23
+ export { TreeListDragProvider } from './components/tree-list/tree-list-drag-provider';
23
24
  export { getTreeListOrderStore, useTreeListOrderStore } from './components/tree-list/tree-list-order.store';
24
25
  export { applyTreeListOrder } from './components/tree-list/tree-list-order-filter';
26
+ export type { TreeListMove, TreeListMoveEndpoint, TreeListMovePolicy } from './components/tree-list/tree-list-reorder';
25
27
  export type { VisibilityOverride } from './components/tree-list/tree-list-visibility.store';
26
28
  export { getTreeListVisibilityStore, useTreeListVisibilityStore, } from './components/tree-list/tree-list-visibility.store';
27
29
  export type { TreeVisibilityMenuItems } from './components/tree-list/tree-list-visibility-filter';