@dxos/react-ui-table 0.6.14-staging.e15392e → 0.7.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 (242) hide show
  1. package/dist/lib/browser/_deprecated/index.mjs +1483 -0
  2. package/dist/lib/browser/_deprecated/index.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-A5W4XWPD.mjs +18 -0
  4. package/dist/lib/browser/chunk-A5W4XWPD.mjs.map +7 -0
  5. package/dist/lib/browser/index.mjs +1275 -1356
  6. package/dist/lib/browser/index.mjs.map +4 -4
  7. package/dist/lib/browser/meta.json +1 -1
  8. package/dist/lib/browser/types/index.mjs +7 -0
  9. package/dist/lib/browser/types/index.mjs.map +7 -0
  10. package/dist/lib/node/_deprecated/index.cjs +1511 -0
  11. package/dist/lib/node/_deprecated/index.cjs.map +7 -0
  12. package/dist/lib/node/chunk-32IGMRME.cjs +40 -0
  13. package/dist/lib/node/chunk-32IGMRME.cjs.map +7 -0
  14. package/dist/lib/node/index.cjs +1381 -0
  15. package/dist/lib/node/index.cjs.map +7 -0
  16. package/dist/lib/node/meta.json +1 -0
  17. package/dist/lib/node/types/index.cjs +29 -0
  18. package/dist/lib/node/types/index.cjs.map +7 -0
  19. package/dist/lib/node-esm/_deprecated/index.mjs +1485 -0
  20. package/dist/lib/node-esm/_deprecated/index.mjs.map +7 -0
  21. package/dist/lib/node-esm/chunk-DWQ4KGLD.mjs +20 -0
  22. package/dist/lib/node-esm/chunk-DWQ4KGLD.mjs.map +7 -0
  23. package/dist/lib/node-esm/index.mjs +1400 -0
  24. package/dist/lib/node-esm/index.mjs.map +7 -0
  25. package/dist/lib/node-esm/meta.json +1 -0
  26. package/dist/lib/node-esm/types/index.mjs +8 -0
  27. package/dist/lib/node-esm/types/index.mjs.map +7 -0
  28. package/dist/types/src/_deprecated/components/Cell/Cell.d.ts.map +1 -0
  29. package/dist/types/src/_deprecated/components/Cell/CellCombobox.d.ts.map +1 -0
  30. package/dist/types/src/_deprecated/components/Cell/index.d.ts.map +1 -0
  31. package/dist/types/src/_deprecated/components/ColumnMenu/ColumnMenu.d.ts.map +1 -0
  32. package/dist/types/src/_deprecated/components/ColumnMenu/ColumnMenu.stories.d.ts.map +1 -0
  33. package/dist/types/src/_deprecated/components/ColumnMenu/ColumnSettings.d.ts.map +1 -0
  34. package/dist/types/src/{components → _deprecated/components}/ColumnMenu/ColumnSettings.stories.d.ts +4 -4
  35. package/dist/types/src/_deprecated/components/ColumnMenu/ColumnSettings.stories.d.ts.map +1 -0
  36. package/dist/types/src/_deprecated/components/ColumnMenu/index.d.ts.map +1 -0
  37. package/dist/types/src/_deprecated/components/Table/Table.d.ts +20 -0
  38. package/dist/types/src/_deprecated/components/Table/Table.d.ts.map +1 -0
  39. package/dist/types/src/_deprecated/components/Table/Table.stories.d.ts +116 -0
  40. package/dist/types/src/_deprecated/components/Table/Table.stories.d.ts.map +1 -0
  41. package/dist/types/src/_deprecated/components/Table/TableBody.d.ts.map +1 -0
  42. package/dist/types/src/_deprecated/components/Table/TableContext.d.ts.map +1 -0
  43. package/dist/types/src/_deprecated/components/Table/TableHead.d.ts.map +1 -0
  44. package/dist/types/src/_deprecated/components/Table/TableRootContext.d.ts.map +1 -0
  45. package/dist/types/src/_deprecated/components/Table/index.d.ts +5 -0
  46. package/dist/types/src/_deprecated/components/Table/index.d.ts.map +1 -0
  47. package/dist/types/src/_deprecated/components/Table/props.d.ts.map +1 -0
  48. package/dist/types/src/_deprecated/components/index.d.ts +4 -0
  49. package/dist/types/src/_deprecated/components/index.d.ts.map +1 -0
  50. package/dist/types/src/_deprecated/helpers.d.ts.map +1 -0
  51. package/dist/types/src/_deprecated/hooks/index.d.ts +5 -0
  52. package/dist/types/src/_deprecated/hooks/index.d.ts.map +1 -0
  53. package/dist/types/src/_deprecated/hooks/useColumnSizing.d.ts.map +1 -0
  54. package/dist/types/src/{hooks → _deprecated/hooks}/useColumnSorting.d.ts +1 -1
  55. package/dist/types/src/_deprecated/hooks/useColumnSorting.d.ts.map +1 -0
  56. package/dist/types/src/_deprecated/hooks/usePinLastRow.d.ts.map +1 -0
  57. package/dist/types/src/_deprecated/hooks/useRowSelection.d.ts.map +1 -0
  58. package/dist/types/src/_deprecated/index.d.ts +8 -0
  59. package/dist/types/src/_deprecated/index.d.ts.map +1 -0
  60. package/dist/types/src/_deprecated/schema/Schema.stories.d.ts.map +1 -0
  61. package/dist/types/src/{schema → _deprecated/schema}/column-utils.d.ts +3 -0
  62. package/dist/types/src/_deprecated/schema/column-utils.d.ts.map +1 -0
  63. package/dist/types/src/_deprecated/schema/index.d.ts.map +1 -0
  64. package/dist/types/src/{schema → _deprecated/schema}/types.d.ts +3 -2
  65. package/dist/types/src/_deprecated/schema/types.d.ts.map +1 -0
  66. package/dist/types/src/_deprecated/theme.d.ts.map +1 -0
  67. package/dist/types/src/_deprecated/translations.d.ts +21 -0
  68. package/dist/types/src/_deprecated/translations.d.ts.map +1 -0
  69. package/dist/types/src/_deprecated/types.d.ts.map +1 -0
  70. package/dist/types/src/components/Table/ColumnActionsMenu.d.ts +8 -0
  71. package/dist/types/src/components/Table/ColumnActionsMenu.d.ts.map +1 -0
  72. package/dist/types/src/components/Table/ColumnSettings.d.ts +8 -0
  73. package/dist/types/src/components/Table/ColumnSettings.d.ts.map +1 -0
  74. package/dist/types/src/components/Table/RowActionsMenu.d.ts +8 -0
  75. package/dist/types/src/components/Table/RowActionsMenu.d.ts.map +1 -0
  76. package/dist/types/src/components/Table/Table.d.ts +11 -14
  77. package/dist/types/src/components/Table/Table.d.ts.map +1 -1
  78. package/dist/types/src/components/Table/Table.stories.d.ts +10 -113
  79. package/dist/types/src/components/Table/Table.stories.d.ts.map +1 -1
  80. package/dist/types/src/components/Table/index.d.ts +0 -3
  81. package/dist/types/src/components/Table/index.d.ts.map +1 -1
  82. package/dist/types/src/components/TableCellEditor/TableCellEditor.d.ts +17 -0
  83. package/dist/types/src/components/TableCellEditor/TableCellEditor.d.ts.map +1 -0
  84. package/dist/types/src/components/TableCellEditor/TableCellEditor.stories.d.ts +11 -0
  85. package/dist/types/src/components/TableCellEditor/TableCellEditor.stories.d.ts.map +1 -0
  86. package/dist/types/src/components/TableCellEditor/extension.d.ts +12 -0
  87. package/dist/types/src/components/TableCellEditor/extension.d.ts.map +1 -0
  88. package/dist/types/src/components/TableCellEditor/index.d.ts +2 -0
  89. package/dist/types/src/components/TableCellEditor/index.d.ts.map +1 -0
  90. package/dist/types/src/components/Toolbar/Toolbar.d.ts +21 -0
  91. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -0
  92. package/dist/types/src/components/Toolbar/common.d.ts +20 -0
  93. package/dist/types/src/components/Toolbar/common.d.ts.map +1 -0
  94. package/dist/types/src/components/Toolbar/index.d.ts +2 -0
  95. package/dist/types/src/components/Toolbar/index.d.ts.map +1 -0
  96. package/dist/types/src/components/index.d.ts +1 -2
  97. package/dist/types/src/components/index.d.ts.map +1 -1
  98. package/dist/types/src/components/testing.d.ts +97 -0
  99. package/dist/types/src/components/testing.d.ts.map +1 -0
  100. package/dist/types/src/hooks/index.d.ts +1 -4
  101. package/dist/types/src/hooks/index.d.ts.map +1 -1
  102. package/dist/types/src/hooks/useTableModel.d.ts +15 -0
  103. package/dist/types/src/hooks/useTableModel.d.ts.map +1 -0
  104. package/dist/types/src/index.d.ts +3 -4
  105. package/dist/types/src/index.d.ts.map +1 -1
  106. package/dist/types/src/model/index.d.ts +3 -0
  107. package/dist/types/src/model/index.d.ts.map +1 -0
  108. package/dist/types/src/model/modal-controller.d.ts +29 -0
  109. package/dist/types/src/model/modal-controller.d.ts.map +1 -0
  110. package/dist/types/src/model/selection-model.d.ts +22 -0
  111. package/dist/types/src/model/selection-model.d.ts.map +1 -0
  112. package/dist/types/src/model/table-model.d.ts +93 -0
  113. package/dist/types/src/model/table-model.d.ts.map +1 -0
  114. package/dist/types/src/model/table-model.test.d.ts +2 -0
  115. package/dist/types/src/model/table-model.test.d.ts.map +1 -0
  116. package/dist/types/src/translations.d.ts +23 -16
  117. package/dist/types/src/translations.d.ts.map +1 -1
  118. package/dist/types/src/types/index.d.ts +2 -0
  119. package/dist/types/src/types/index.d.ts.map +1 -0
  120. package/dist/types/src/types/table.d.ts +106 -0
  121. package/dist/types/src/types/table.d.ts.map +1 -0
  122. package/dist/types/src/util/grid.d.ts +14 -0
  123. package/dist/types/src/util/grid.d.ts.map +1 -0
  124. package/dist/types/src/util/index.d.ts +5 -0
  125. package/dist/types/src/util/index.d.ts.map +1 -0
  126. package/dist/types/src/util/signals.d.ts +6 -0
  127. package/dist/types/src/util/signals.d.ts.map +1 -0
  128. package/dist/types/src/util/table-buttons.d.ts +24 -0
  129. package/dist/types/src/util/table-buttons.d.ts.map +1 -0
  130. package/dist/types/src/util/table-controls.d.ts +21 -0
  131. package/dist/types/src/util/table-controls.d.ts.map +1 -0
  132. package/dist/types/src/util/table.d.ts +8 -0
  133. package/dist/types/src/util/table.d.ts.map +1 -0
  134. package/package.json +56 -22
  135. package/src/{components → _deprecated/components}/ColumnMenu/ColumnMenu.stories.tsx +4 -4
  136. package/src/{components → _deprecated/components}/ColumnMenu/ColumnSettings.stories.tsx +9 -9
  137. package/src/{components → _deprecated/components}/ColumnMenu/ColumnSettings.tsx +3 -3
  138. package/src/_deprecated/components/Table/Table.stories.tsx +508 -0
  139. package/src/_deprecated/components/Table/Table.tsx +301 -0
  140. package/src/{components → _deprecated/components}/Table/TableHead.tsx +3 -1
  141. package/src/_deprecated/components/Table/index.ts +8 -0
  142. package/src/_deprecated/components/index.ts +7 -0
  143. package/src/{helpers.tsx → _deprecated/helpers.tsx} +4 -3
  144. package/src/_deprecated/hooks/index.ts +8 -0
  145. package/src/_deprecated/index.ts +12 -0
  146. package/src/_deprecated/schema/column-utils.ts +54 -0
  147. package/src/{schema → _deprecated/schema}/types.ts +3 -2
  148. package/src/_deprecated/translations.ts +26 -0
  149. package/src/components/Table/ColumnActionsMenu.tsx +60 -0
  150. package/src/components/Table/ColumnSettings.tsx +76 -0
  151. package/src/components/Table/RowActionsMenu.tsx +36 -0
  152. package/src/components/Table/Table.stories.tsx +197 -467
  153. package/src/components/Table/Table.tsx +172 -256
  154. package/src/components/Table/index.ts +1 -4
  155. package/src/components/TableCellEditor/TableCellEditor.stories.tsx +114 -0
  156. package/src/components/TableCellEditor/TableCellEditor.tsx +155 -0
  157. package/src/components/TableCellEditor/extension.ts +62 -0
  158. package/src/components/TableCellEditor/index.ts +5 -0
  159. package/src/components/Toolbar/Toolbar.tsx +86 -0
  160. package/src/components/Toolbar/common.tsx +72 -0
  161. package/src/components/Toolbar/index.ts +5 -0
  162. package/src/components/index.ts +2 -3
  163. package/src/components/testing.ts +114 -0
  164. package/src/hooks/index.ts +1 -4
  165. package/src/hooks/useTableModel.ts +52 -0
  166. package/src/index.ts +5 -6
  167. package/src/model/index.ts +6 -0
  168. package/src/model/modal-controller.ts +83 -0
  169. package/src/model/selection-model.ts +99 -0
  170. package/src/model/table-model.test.ts +182 -0
  171. package/src/model/table-model.ts +565 -0
  172. package/src/translations.ts +20 -13
  173. package/src/types/index.ts +5 -0
  174. package/src/types/table.ts +13 -0
  175. package/src/util/grid.ts +23 -0
  176. package/src/util/index.ts +8 -0
  177. package/src/util/signals.ts +9 -0
  178. package/src/util/table-buttons.ts +48 -0
  179. package/src/util/table-controls.ts +27 -0
  180. package/src/util/table.ts +77 -0
  181. package/dist/types/src/components/Cell/Cell.d.ts.map +0 -1
  182. package/dist/types/src/components/Cell/CellCombobox.d.ts.map +0 -1
  183. package/dist/types/src/components/Cell/index.d.ts.map +0 -1
  184. package/dist/types/src/components/ColumnMenu/ColumnMenu.d.ts.map +0 -1
  185. package/dist/types/src/components/ColumnMenu/ColumnMenu.stories.d.ts.map +0 -1
  186. package/dist/types/src/components/ColumnMenu/ColumnSettings.d.ts.map +0 -1
  187. package/dist/types/src/components/ColumnMenu/ColumnSettings.stories.d.ts.map +0 -1
  188. package/dist/types/src/components/ColumnMenu/index.d.ts.map +0 -1
  189. package/dist/types/src/components/Table/TableBody.d.ts.map +0 -1
  190. package/dist/types/src/components/Table/TableContext.d.ts.map +0 -1
  191. package/dist/types/src/components/Table/TableHead.d.ts.map +0 -1
  192. package/dist/types/src/components/Table/TableRootContext.d.ts.map +0 -1
  193. package/dist/types/src/components/Table/props.d.ts.map +0 -1
  194. package/dist/types/src/helpers.d.ts.map +0 -1
  195. package/dist/types/src/hooks/useColumnSizing.d.ts.map +0 -1
  196. package/dist/types/src/hooks/useColumnSorting.d.ts.map +0 -1
  197. package/dist/types/src/hooks/usePinLastRow.d.ts.map +0 -1
  198. package/dist/types/src/hooks/useRowSelection.d.ts.map +0 -1
  199. package/dist/types/src/schema/Schema.stories.d.ts.map +0 -1
  200. package/dist/types/src/schema/column-utils.d.ts.map +0 -1
  201. package/dist/types/src/schema/index.d.ts.map +0 -1
  202. package/dist/types/src/schema/types.d.ts.map +0 -1
  203. package/dist/types/src/theme.d.ts.map +0 -1
  204. package/dist/types/src/types.d.ts.map +0 -1
  205. package/src/schema/column-utils.ts +0 -48
  206. /package/dist/types/src/{components → _deprecated/components}/Cell/Cell.d.ts +0 -0
  207. /package/dist/types/src/{components → _deprecated/components}/Cell/CellCombobox.d.ts +0 -0
  208. /package/dist/types/src/{components → _deprecated/components}/Cell/index.d.ts +0 -0
  209. /package/dist/types/src/{components → _deprecated/components}/ColumnMenu/ColumnMenu.d.ts +0 -0
  210. /package/dist/types/src/{components → _deprecated/components}/ColumnMenu/ColumnMenu.stories.d.ts +0 -0
  211. /package/dist/types/src/{components → _deprecated/components}/ColumnMenu/ColumnSettings.d.ts +0 -0
  212. /package/dist/types/src/{components → _deprecated/components}/ColumnMenu/index.d.ts +0 -0
  213. /package/dist/types/src/{components → _deprecated/components}/Table/TableBody.d.ts +0 -0
  214. /package/dist/types/src/{components → _deprecated/components}/Table/TableContext.d.ts +0 -0
  215. /package/dist/types/src/{components → _deprecated/components}/Table/TableHead.d.ts +0 -0
  216. /package/dist/types/src/{components → _deprecated/components}/Table/TableRootContext.d.ts +0 -0
  217. /package/dist/types/src/{components → _deprecated/components}/Table/props.d.ts +0 -0
  218. /package/dist/types/src/{helpers.d.ts → _deprecated/helpers.d.ts} +0 -0
  219. /package/dist/types/src/{hooks → _deprecated/hooks}/useColumnSizing.d.ts +0 -0
  220. /package/dist/types/src/{hooks → _deprecated/hooks}/usePinLastRow.d.ts +0 -0
  221. /package/dist/types/src/{hooks → _deprecated/hooks}/useRowSelection.d.ts +0 -0
  222. /package/dist/types/src/{schema → _deprecated/schema}/Schema.stories.d.ts +0 -0
  223. /package/dist/types/src/{schema → _deprecated/schema}/index.d.ts +0 -0
  224. /package/dist/types/src/{theme.d.ts → _deprecated/theme.d.ts} +0 -0
  225. /package/dist/types/src/{types.d.ts → _deprecated/types.d.ts} +0 -0
  226. /package/src/{components → _deprecated/components}/Cell/Cell.tsx +0 -0
  227. /package/src/{components → _deprecated/components}/Cell/CellCombobox.tsx +0 -0
  228. /package/src/{components → _deprecated/components}/Cell/index.ts +0 -0
  229. /package/src/{components → _deprecated/components}/ColumnMenu/ColumnMenu.tsx +0 -0
  230. /package/src/{components → _deprecated/components}/ColumnMenu/index.ts +0 -0
  231. /package/src/{components → _deprecated/components}/Table/TableBody.tsx +0 -0
  232. /package/src/{components → _deprecated/components}/Table/TableContext.tsx +0 -0
  233. /package/src/{components → _deprecated/components}/Table/TableRootContext.ts +0 -0
  234. /package/src/{components → _deprecated/components}/Table/props.ts +0 -0
  235. /package/src/{hooks → _deprecated/hooks}/useColumnSizing.ts +0 -0
  236. /package/src/{hooks → _deprecated/hooks}/useColumnSorting.ts +0 -0
  237. /package/src/{hooks → _deprecated/hooks}/usePinLastRow.ts +0 -0
  238. /package/src/{hooks → _deprecated/hooks}/useRowSelection.ts +0 -0
  239. /package/src/{schema → _deprecated/schema}/Schema.stories.tsx +0 -0
  240. /package/src/{schema → _deprecated/schema}/index.ts +0 -0
  241. /package/src/{theme.ts → _deprecated/theme.ts} +0 -0
  242. /package/src/{types.ts → _deprecated/types.ts} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/translations.ts", "../../../src/components/Table/Table.tsx", "../../../src/components/Table/ColumnActionsMenu.tsx", "../../../src/components/Table/ColumnSettings.tsx", "../../../src/components/Table/RowActionsMenu.tsx", "../../../src/components/TableCellEditor/TableCellEditor.tsx", "../../../src/components/TableCellEditor/extension.ts", "../../../src/util/grid.ts", "../../../src/util/signals.ts", "../../../src/util/table.ts", "../../../src/util/table-buttons.ts", "../../../src/components/Toolbar/Toolbar.tsx", "../../../src/components/Toolbar/common.tsx", "../../../src/hooks/useTableModel.ts", "../../../src/model/table-model.ts", "../../../src/model/modal-controller.ts", "../../../src/model/selection-model.ts", "../../../src/util/table-controls.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nexport const translationKey = 'table';\n\nexport default [\n {\n 'en-US': {\n [translationKey]: {\n 'object placeholder': 'New table',\n 'create object label': 'Create table',\n 'table name placeholder': 'Table name',\n 'settings title': 'Table settings',\n 'table schema label': 'Schema',\n 'new schema': 'New schema',\n 'continue label': 'Continue',\n 'create stack section label': 'Create table',\n 'add row': 'Add row',\n 'create comment': 'Create thread',\n 'column action sort descending': 'Sort Descending',\n 'column action sort ascending': 'Sort Ascending',\n 'column action clear sorting': 'Clear Sorting',\n 'column action settings': 'Column Settings',\n 'column action delete': 'Delete Column',\n 'delete row label': 'Delete row',\n 'bulk delete row label': 'Delete selected rows',\n 'column deleted label': 'Column deleted',\n 'new column button label': 'Create column',\n },\n },\n },\n] as const;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, {\n forwardRef,\n type PropsWithChildren,\n useCallback,\n useImperativeHandle,\n useState,\n type WheelEvent,\n} from 'react';\n\nimport { getValue } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { Filter, getSpace, fullyQualifiedId } from '@dxos/react-client/echo';\nimport { useAttention } from '@dxos/react-ui-attention';\nimport { type DxGridElement, Grid, type GridContentProps, closestCell } from '@dxos/react-ui-grid';\nimport { mx } from '@dxos/react-ui-theme';\nimport { isNotFalsy } from '@dxos/util';\n\nimport { ColumnActionsMenu } from './ColumnActionsMenu';\nimport { ColumnSettings } from './ColumnSettings';\nimport { RowActionsMenu } from './RowActionsMenu';\nimport { type TableModel } from '../../model';\nimport { type GridCell } from '../../util';\nimport { TableCellEditor, type TableCellEditorProps } from '../TableCellEditor';\n\n// NOTE(Zan): These fragments add border to inline-end and block-end of the grid using pseudo-elements.\n// These are offset by 1px to avoid double borders in planks.\nconst inlineEndLine =\n '[&>.dx-grid]:relative [&>.dx-grid]:after:absolute [&>.dx-grid]:after:inset-block-0 [&>.dx-grid]:after:-inline-end-px [&>.dx-grid]:after:is-px [&>.dx-grid]:after:bg-separator';\nconst blockEndLine =\n '[&>.dx-grid]:before:absolute [&>.dx-grid]:before:inset-inline-0 [&>.dx-grid]:before:-block-end-px [&>.dx-grid]:before:bs-px [&>.dx-grid]:before:bg-separator';\n\nconst frozen = { frozenRowsStart: 1, frozenColsStart: 1, frozenColsEnd: 1 };\n\n//\n// Root\n//\n\nexport type TableRootProps = PropsWithChildren<{ role?: string }>;\n\nconst TableRoot = ({ children }: TableRootProps) => {\n return (\n <div role='none' className='relative flex flex-col'>\n {children}\n </div>\n );\n};\n\n//\n// Main\n//\n\nexport type TableController = {\n update?: (cell?: GridCell) => void;\n};\n\nexport type TableMainProps = {\n model?: TableModel;\n};\n\nconst TableMain = forwardRef<TableController, TableMainProps>(({ model }, forwardedRef) => {\n const [dxGrid, setDxGrid] = useState<DxGridElement | null>(null);\n\n const { hasAttention } = useAttention(model?.table ? fullyQualifiedId(model.table) : 'table');\n\n /**\n * Provides an external controller that can be called to repaint the table.\n */\n useImperativeHandle<TableController, TableController>(\n forwardedRef,\n () => {\n if (!model || !dxGrid) {\n return {};\n }\n\n dxGrid.getCells = model.getCells.bind(model);\n return {\n update: (cell) => {\n if (cell) {\n dxGrid.updateIfWithinBounds(cell);\n } else {\n dxGrid.updateCells(true);\n }\n },\n };\n },\n [model, dxGrid],\n );\n\n const handleFocus: TableCellEditorProps['onFocus'] = (increment, delta) => {\n dxGrid?.refocus(increment, delta);\n };\n\n const handleEnter = useCallback<NonNullable<TableCellEditorProps['onEnter']>>(\n (cell) => {\n // TODO(burdon): Insert row only if bottom row isn't completely blank already.\n if (model && cell.row === model.getRowCount() - 1) {\n model.insertRow(cell.row);\n }\n },\n [model],\n );\n\n const handleKeyDown = useCallback<NonNullable<GridContentProps['onKeyDown']>>(\n (event) => {\n const cell = closestCell(event.target);\n if (!model || !cell) {\n return;\n }\n\n switch (event.key) {\n case 'Backspace':\n case 'Delete': {\n model.setCellData(cell, undefined);\n break;\n }\n }\n },\n [model],\n );\n\n const handleAxisResize = useCallback<NonNullable<GridContentProps['onAxisResize']>>(\n (event) => {\n if (event.axis === 'col') {\n const columnIndex = parseInt(event.index, 10);\n model?.setColumnWidth(columnIndex, event.size);\n }\n },\n [model],\n );\n\n const handleWheel = useCallback(\n (event: WheelEvent) => {\n if (!hasAttention) {\n event.stopPropagation();\n }\n },\n [hasAttention],\n );\n\n // TODO(burdon): Factor out?\n const handleQuery = useCallback<NonNullable<TableCellEditorProps['onQuery']>>(\n async ({ field, props }, _text) => {\n if (model && props.referenceSchema && field.referencePath) {\n const space = getSpace(model.table);\n invariant(space);\n const schema = space.db.schemaRegistry.getSchema(props.referenceSchema);\n if (schema) {\n // TODO(burdon): Cache/filter.\n const { objects } = await space.db.query(Filter.schema(schema)).run();\n return objects\n .map((obj) => {\n const value = getValue(obj, field.referencePath!);\n if (!value || typeof value !== 'string') {\n return undefined;\n }\n\n return {\n label: value,\n data: obj,\n };\n })\n .filter(isNotFalsy);\n }\n }\n\n return [];\n },\n [model],\n );\n\n if (!model) {\n return <span role='none' className='attention-surface' />;\n }\n\n return (\n <>\n <Grid.Root id={model.table.id ?? 'table-grid'}>\n <TableCellEditor model={model} onEnter={handleEnter} onFocus={handleFocus} onQuery={handleQuery} />\n\n <Grid.Content\n onWheelCapture={handleWheel}\n className={mx(\n '[--dx-grid-base:var(--surface-bg)] [&_.dx-grid]:grow [&_.dx-grid]:max-is-max [&_.dx-grid]:bs-0 [&_.dx-grid]:max-bs-max',\n inlineEndLine,\n blockEndLine,\n )}\n frozen={frozen}\n columns={model.columnMeta.value}\n limitRows={model.getRowCount() ?? 0}\n limitColumns={model.table.view?.fields?.length ?? 0}\n onAxisResize={handleAxisResize}\n onClick={model?.handleGridClick}\n onKeyDown={handleKeyDown}\n overscroll='trap'\n ref={setDxGrid}\n />\n </Grid.Root>\n\n <RowActionsMenu model={model} />\n <ColumnActionsMenu model={model} />\n <ColumnSettings model={model} />\n </>\n );\n});\n\n//\n// CellEditor\n//\n\nexport const Table = {\n Root: TableRoot,\n Main: TableMain,\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { DropdownMenu, useTranslation } from '@dxos/react-ui';\n\nimport { type TableModel } from '../../model';\nimport { translationKey } from '../../translations';\n\ntype ColumnActionsMenuProps = { model?: TableModel };\n\nexport const ColumnActionsMenu = ({ model }: ColumnActionsMenuProps) => {\n const { t } = useTranslation(translationKey);\n const state = model?.modalController.state.value;\n\n if (!model || state?.type !== 'column') {\n return null;\n }\n\n const currentSort = model.sorting;\n const isCurrentColumnSorted = currentSort?.fieldId === state.fieldId;\n\n return (\n <DropdownMenu.Root modal={false} open={state?.type === 'column'} onOpenChange={model.modalController.close}>\n <DropdownMenu.VirtualTrigger virtualRef={model.modalController.trigger} />\n <DropdownMenu.Portal>\n <DropdownMenu.Content>\n <DropdownMenu.Viewport>\n {(!isCurrentColumnSorted || currentSort?.direction === 'asc') && (\n <DropdownMenu.Item onClick={() => model.setSort(state.fieldId, 'desc')}>\n {t('column action sort descending')}\n </DropdownMenu.Item>\n )}\n {(!isCurrentColumnSorted || currentSort?.direction === 'desc') && (\n <DropdownMenu.Item onClick={() => model.setSort(state.fieldId, 'asc')}>\n {t('column action sort ascending')}\n </DropdownMenu.Item>\n )}\n {isCurrentColumnSorted && (\n <DropdownMenu.Item onClick={() => model.clearSort()}>\n {t('column action clear sorting')}\n </DropdownMenu.Item>\n )}\n {model.getColumnCount() > 1 && (\n <DropdownMenu.Item onClick={() => model.deleteColumn(state.fieldId)}>\n {t('column action delete')}\n </DropdownMenu.Item>\n )}\n <DropdownMenu.Item onClick={() => model.modalController.openColumnSettings()}>\n {t('column action settings')}\n </DropdownMenu.Item>\n </DropdownMenu.Viewport>\n <DropdownMenu.Arrow />\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { getSpace } from '@dxos/react-client/echo';\nimport { DropdownMenu } from '@dxos/react-ui';\nimport { FieldEditor } from '@dxos/react-ui-data';\nimport { type FieldType } from '@dxos/schema';\n\nimport { type TableModel } from '../../model';\n\ntype ColumnSettingsProps = { model?: TableModel };\n\nexport const ColumnSettings = ({ model }: ColumnSettingsProps) => {\n const [newField, setNewField] = useState<FieldType>();\n const state = model?.modalController.state.value;\n\n const space = getSpace(model?.table);\n\n useEffect(() => {\n if (state?.type === 'columnSettings' && state.mode.type === 'create' && model?.projection) {\n setNewField(model.projection.createFieldProjection());\n } else {\n setNewField(undefined);\n }\n }, [model?.projection, state]);\n\n const existingField = useMemo(() => {\n if (state?.type === 'columnSettings') {\n const { mode } = state;\n if (mode.type === 'edit') {\n return model?.table?.view?.fields.find((f) => f.id === mode.fieldId);\n }\n }\n return undefined;\n }, [model?.table?.view?.fields, state]);\n\n const field = existingField ?? newField;\n\n const handleClose = useCallback(() => {\n model?.modalController.close();\n }, [model?.modalController]);\n\n const handleCancel = useCallback(() => {\n if (state?.type === 'columnSettings' && state.mode.type === 'create' && newField) {\n model?.projection?.deleteFieldProjection(newField.id);\n }\n }, [model?.projection, state, newField]);\n\n if (!model?.table?.view || !model.projection || !field) {\n return null;\n }\n\n return (\n <DropdownMenu.Root modal={false} open={state?.type === 'columnSettings'}>\n <DropdownMenu.VirtualTrigger virtualRef={model.modalController.trigger} />\n <DropdownMenu.Portal>\n <DropdownMenu.Content classNames='md:is-64'>\n <DropdownMenu.Viewport>\n <FieldEditor\n view={model.table.view}\n projection={model.projection}\n field={field}\n registry={space?.db.schemaRegistry}\n onClose={handleClose}\n onCancel={handleCancel}\n />\n </DropdownMenu.Viewport>\n <DropdownMenu.Arrow />\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { DropdownMenu, useTranslation } from '@dxos/react-ui';\n\nimport { type TableModel } from '../../model';\nimport { translationKey } from '../../translations';\n\ntype RowActionsMenuProps = { model: TableModel };\n\nexport const RowActionsMenu = ({ model }: RowActionsMenuProps) => {\n const { t } = useTranslation(translationKey);\n const state = model.modalController.state.value;\n const hasSelection = model.selection.hasSelection.value;\n\n if (state?.type !== 'row') {\n return null;\n }\n\n return (\n <DropdownMenu.Root modal={false} open={true} onOpenChange={model.modalController.close}>\n <DropdownMenu.VirtualTrigger virtualRef={model.modalController.trigger} />\n <DropdownMenu.Content>\n <DropdownMenu.Viewport>\n <DropdownMenu.Item onClick={() => model.deleteRow(state.rowIndex)}>\n {t(hasSelection ? 'bulk delete row label' : 'delete row label')}\n </DropdownMenu.Item>\n </DropdownMenu.Viewport>\n <DropdownMenu.Arrow />\n </DropdownMenu.Content>\n </DropdownMenu.Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { FormatEnum } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { type DxGrid } from '@dxos/lit-grid';\nimport {\n editorKeys,\n type EditorKeyEvent,\n GridCellEditor,\n type GridCellEditorProps,\n type EditorKeyOrBlurHandler,\n type EditorBlurHandler,\n type GridScopedProps,\n useGridContext,\n} from '@dxos/react-ui-grid';\nimport { type FieldProjection } from '@dxos/schema';\n\nimport { completion } from './extension';\nimport { type TableModel } from '../../model';\nimport { type GridCell, toGridCell } from '../../util';\n\nexport type TableCellEditorProps = {\n model?: TableModel;\n onEnter?: (cell: GridCell) => void;\n onFocus?: DxGrid['refocus'];\n onQuery?: (field: FieldProjection, text: string) => Promise<{ label: string; data: any }[]>;\n};\n\nexport const TableCellEditor = ({\n model,\n onEnter,\n onFocus,\n onQuery,\n __gridScope,\n}: GridScopedProps<TableCellEditorProps>) => {\n const { editing } = useGridContext('TableCellEditor', __gridScope);\n const fieldProjection = useMemo<FieldProjection | undefined>(() => {\n if (!model || !editing) {\n return;\n }\n\n const { col } = toGridCell(editing.index);\n const field = model.projection.view.fields[col];\n const fieldProjection = model.projection.getFieldProjection(field.id);\n invariant(fieldProjection);\n return fieldProjection;\n }, [model, editing]);\n\n const handleClose = useCallback<EditorKeyOrBlurHandler>(\n (value, event) => {\n if (!model || !editing || !fieldProjection) {\n return;\n }\n\n const cell = toGridCell(editing.index);\n onEnter?.(cell);\n if (event && onFocus) {\n onFocus(determineNavigationAxis(event), determineNavigationDelta(event));\n }\n },\n [model, editing, onFocus, onEnter, fieldProjection, determineNavigationAxis, determineNavigationDelta],\n );\n\n const handleBlur = useCallback<EditorBlurHandler>(\n (value) => {\n if (!model || !editing) {\n return;\n }\n\n const cell = toGridCell(editing.index);\n if (value !== undefined) {\n model.setCellData(cell, value);\n }\n },\n [model, editing],\n );\n\n const extension = useMemo(() => {\n if (!fieldProjection) {\n return [];\n }\n\n const extension = [\n editorKeys({\n onClose: handleClose,\n ...(editing?.initialContent && { onNav: handleClose }),\n }),\n ];\n\n if (onQuery) {\n switch (fieldProjection.props.format) {\n case FormatEnum.Ref: {\n extension.push([\n completion({\n onQuery: (text) => onQuery(fieldProjection, text),\n onMatch: (data) => {\n if (model && editing) {\n const cell = toGridCell(editing.index);\n model.setCellData(cell, data);\n onEnter?.(cell);\n onFocus?.();\n }\n },\n }),\n ]);\n break;\n }\n }\n }\n\n return extension;\n }, [model, editing, fieldProjection, handleClose]);\n\n const getCellContent = useCallback<GridCellEditorProps['getCellContent']>(() => {\n if (model && editing) {\n const value = model.getCellData(toGridCell(editing.index));\n return value !== undefined ? String(value) : '';\n }\n }, [model, editing]);\n\n return <GridCellEditor extension={extension} getCellContent={getCellContent} onBlur={handleBlur} />;\n};\n\nconst determineNavigationAxis = ({ key }: EditorKeyEvent): 'col' | 'row' | undefined => {\n switch (key) {\n case 'ArrowUp':\n case 'ArrowDown':\n case 'Enter': {\n return 'row';\n }\n\n case 'ArrowLeft':\n case 'ArrowRight':\n case 'Tab':\n return 'col';\n }\n};\n\nconst determineNavigationDelta = ({ key, shift }: EditorKeyEvent): -1 | 1 => {\n switch (key) {\n case 'ArrowUp':\n case 'ArrowLeft':\n return -1;\n\n case 'ArrowDown':\n case 'ArrowRight':\n return 1;\n }\n\n return shift ? -1 : 1;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport {\n autocompletion,\n pickedCompletion,\n type CompletionContext,\n type CompletionResult,\n} from '@codemirror/autocomplete';\nimport { type Extension } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\n\nexport type CompletionOptions = {\n onQuery: (text: string) => Promise<CompletionResult['options']>;\n onMatch: (data: any) => void;\n};\n\n/**\n * Autocomplete Codemirror extension.\n * https://codemirror.net/docs/ref/#autocomplete.autocompletion\n */\nexport const completion = ({ onQuery, onMatch }: CompletionOptions): Extension => {\n return [\n EditorView.theme({\n '.cm-completionDialog': {\n width: 'var(--dx-gridCellWidth)',\n },\n }),\n\n autocompletion({\n icons: false,\n activateOnTyping: true,\n override: [\n async (context: CompletionContext): Promise<CompletionResult> => {\n const text = context.state.doc.toString();\n return {\n from: 0,\n options: await onQuery(text),\n };\n },\n ],\n\n // TODO(burdon): Consts from grid (to line-up with grid).\n tooltipClass: () => 'cm-completionDialog !mt-[8px] !-ml-[4px] [&>ul]:!max-h-[264px]',\n optionClass: () => 'flex h-[33px] items-center',\n\n // Uncomment to debug.\n // closeOnBlur: true,\n }),\n\n // Check for accepted completion metadata in the transaction.\n EditorView.updateListener.of((update) => {\n update.transactions.forEach((tr) => {\n const completion = tr.annotation(pickedCompletion);\n if (completion) {\n onMatch((completion as any).data);\n }\n });\n }),\n ];\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type DxGridCellIndex } from '@dxos/react-ui-grid';\n\n// TODO(burdon): Factor out to grid.\nexport type GridCell = { col: number; row: number };\n\n/**\n * Generates a string key for a cell based on its column and row indices.\n */\nexport const fromGridCell = ({ col, row }: GridCell): DxGridCellIndex => {\n return `${col},${row}` as const; // TODO(burdon): \":\" delim.\n};\n\n/**\n * Converts a cell key string back into column and row coordinates.\n */\nexport const toGridCell = (cell: DxGridCellIndex): GridCell => {\n const [col, row] = cell.split(',').map(Number);\n return { row, col };\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\n/**\n * Explicitly marks signal dependencies for tracking within effects.\n * Returns the passed value to enable inline usage.\n */\nexport const touch = <T>(value: T) => value;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport {\n AST,\n Format,\n FormatEnum,\n type JsonPath,\n type JsonProp,\n type MutableSchema,\n S,\n TypedObject,\n TypeEnum,\n} from '@dxos/echo-schema';\nimport { log } from '@dxos/log';\nimport { PublicKey } from '@dxos/react-client';\nimport { create, type Space } from '@dxos/react-client/echo';\nimport { createFieldId, createView, ViewProjection } from '@dxos/schema';\n\nimport { type TableType } from '../types';\n\n// TODO(burdon): Pass in type.\n// TODO(burdon): User should determine typename.\nexport const initializeTable = ({ space, table }: { space: Space; table: TableType }): MutableSchema => {\n log.info('initializeTable', { table });\n\n const ContactSchema = TypedObject({\n typename: `example.com/type/${PublicKey.random().truncate()}`,\n version: '0.1.0',\n })({\n name: S.optional(S.String).annotations({\n [AST.TitleAnnotationId]: 'Name',\n }),\n email: S.optional(Format.Email),\n salary: S.optional(Format.Currency()).annotations({\n [AST.TitleAnnotationId]: 'Salary',\n }), // TODO(burdon): Should default to prop name?\n });\n\n const contactSchema = space.db.schemaRegistry.addSchema(ContactSchema);\n table.view = createView({\n name: 'Test',\n typename: contactSchema.typename,\n jsonSchema: contactSchema.jsonSchema,\n fields: ['name', 'email', 'salary'],\n });\n\n const projection = new ViewProjection(contactSchema, table.view!);\n projection.setFieldProjection({\n field: {\n id: table.view.fields[2].id,\n path: 'salary' as JsonPath,\n size: 150,\n },\n });\n\n projection.setFieldProjection({\n field: {\n id: createFieldId(),\n path: 'manager' as JsonPath,\n referencePath: 'name' as JsonPath,\n },\n props: {\n property: 'manager' as JsonProp,\n type: TypeEnum.Ref,\n format: FormatEnum.Ref,\n referenceSchema: contactSchema.typename,\n title: 'Manager',\n },\n });\n\n // TODO(burdon): Last (first) row should not be in db and should be managed by the model.\n space.db.add(create(contactSchema, {}));\n\n return contactSchema;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\ntype TableButton = 'columnSettings' | 'rowMenu' | 'newColumn';\n\nconst TABLE_ATTRS: { [K in TableButton]: string } = {\n columnSettings: 'data-table-column-settings-button',\n rowMenu: 'data-table-row-menu-button',\n newColumn: 'data-table-new-column-button',\n} as const;\n\nconst ICONS: { [K in TableButton]: string } = {\n columnSettings: 'ph--caret-down--regular',\n rowMenu: 'ph--dots-three--regular',\n newColumn: 'ph--plus--regular',\n} as const;\n\nconst createButtonHtml = ({\n button,\n value = '',\n disabled = false,\n}: {\n button: TableButton;\n value?: string;\n disabled?: boolean;\n}): string => {\n const buttonClasses = 'ch-button is-6 pli-0.5 min-bs-0 absolute inset-block-1 inline-end-2' as const;\n return `<button class=\"${buttonClasses}\" ${TABLE_ATTRS[button]}=\"${value}\" ${disabled ? 'disabled' : ''}><svg><use href=\"/icons.svg#${ICONS[button]}\"/></svg></button>`;\n};\n\nexport const tableButtons = {\n columnSettings: {\n attr: TABLE_ATTRS.columnSettings,\n icon: ICONS.columnSettings,\n render: ({ fieldId }: { fieldId: string }) => createButtonHtml({ button: 'columnSettings', value: fieldId }),\n },\n rowMenu: {\n attr: TABLE_ATTRS.rowMenu,\n icon: ICONS.rowMenu,\n render: ({ rowIndex }: { rowIndex: number }) => createButtonHtml({ button: 'rowMenu', value: rowIndex.toString() }),\n },\n addColumn: {\n attr: TABLE_ATTRS.newColumn,\n icon: ICONS.newColumn,\n render: ({ disabled }: { disabled?: boolean } = {}) => createButtonHtml({ button: 'newColumn', disabled }),\n },\n} as const;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { ChatText, RowsPlusBottom } from '@phosphor-icons/react';\nimport { createContext } from '@radix-ui/react-context';\nimport React, { type PropsWithChildren } from 'react';\n\nimport { Toolbar as NaturalToolbar, type ThemedClassName, useTranslation } from '@dxos/react-ui';\n\nimport { ToolbarButton, ToolbarSeparator } from './common';\nimport { translationKey } from '../../translations';\n\n//\n// Root\n//\n\n// TODO(Zan): This should become a union later.\nexport type ToolbarAction = { type: 'add-row' } | { type: 'comment' };\n\nexport type ToolbarActionType = ToolbarAction['type'];\n\nexport type ToolbarActionHandler = (action: ToolbarAction) => void;\n\nexport type ToolbarProps = ThemedClassName<\n PropsWithChildren<{\n onAction?: ToolbarActionHandler;\n }>\n>;\n\nconst [ToolbarContextProvider, useToolbarContext] = createContext<ToolbarProps>('Toolbar');\n\nconst ToolbarRoot = ({ classNames, children, onAction }: ToolbarProps) => {\n return (\n <ToolbarContextProvider onAction={onAction}>\n <NaturalToolbar.Root classNames={['is-full shrink-0 overflow-x-auto overflow-y-hidden p-1', classNames]}>\n {children}\n </NaturalToolbar.Root>\n </ToolbarContextProvider>\n );\n};\n\nconst Editing = () => {\n const { onAction } = useToolbarContext('Editing');\n const { t } = useTranslation(translationKey);\n\n return (\n <>\n <ToolbarButton\n value='add-row'\n Icon={RowsPlusBottom}\n data-testid='table.toolbar.add-row'\n onClick={() => onAction?.({ type: 'add-row' })}\n >\n {t('add row')}\n </ToolbarButton>\n </>\n );\n};\n\nconst Actions = () => {\n const { onAction } = useToolbarContext('Actions');\n const { t } = useTranslation(translationKey);\n\n return (\n <>\n <ToolbarButton\n value='comment'\n Icon={ChatText}\n data-testid='table.toolbar.comment'\n onClick={() => onAction?.({ type: 'comment' })}\n >\n {t('create comment')}\n </ToolbarButton>\n </>\n );\n};\n\nexport const Toolbar = {\n Root: ToolbarRoot,\n Editing,\n Actions,\n Separator: ToolbarSeparator,\n};\n\nexport { useToolbarContext };\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type Icon } from '@phosphor-icons/react';\nimport React from 'react';\n\nimport {\n Toolbar as NaturalToolbar,\n Tooltip,\n type ToolbarButtonProps as NaturalToolbarButtonProps,\n type ToolbarToggleGroupItemProps as NaturalToolbarToggleGroupItemProps,\n} from '@dxos/react-ui';\nimport { getSize } from '@dxos/react-ui-theme';\n\n// TODO(burdon): Factor out in common with react-ui-editor.\n\nexport const iconStyles = getSize(5);\nexport const buttonStyles = 'min-bs-0 p-2';\nexport const tooltipProps = { side: 'top' as const, classNames: 'z-10' };\n\nexport const ToolbarSeparator = () => <div role='separator' className='grow' />;\n\n//\n// ToolbarButton\n//\n\ntype ToolbarButtonProps = NaturalToolbarButtonProps & { Icon: Icon };\n\nexport const ToolbarButton = ({ Icon, children, ...props }: ToolbarButtonProps) => {\n return (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <NaturalToolbar.Button variant='ghost' {...props} classNames={buttonStyles}>\n <Icon className={iconStyles} />\n <span className='sr-only'>{children}</span>\n </NaturalToolbar.Button>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content {...tooltipProps}>\n {children}\n <Tooltip.Arrow />\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n );\n};\n\n//\n// ToolbarToggleButton\n//\n\nexport type ToolbarToggleButtonProps = NaturalToolbarToggleGroupItemProps & { Icon: Icon };\n\nexport const ToolbarToggleButton = ({ Icon, children, ...props }: ToolbarToggleButtonProps) => {\n return (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <NaturalToolbar.ToggleGroupItem variant='ghost' {...props} classNames={buttonStyles}>\n <Icon className={iconStyles} />\n <span className='sr-only'>{children}</span>\n </NaturalToolbar.ToggleGroupItem>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content {...tooltipProps}>\n {children}\n <Tooltip.Arrow />\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nimport { type ReactiveObject } from '@dxos/react-client/echo';\nimport { type ViewProjection } from '@dxos/schema';\n\nimport { type BaseTableRow, TableModel, type TableModelProps } from '../model';\nimport { type TableType } from '../types';\n\nexport type UseTableModelParams<T extends BaseTableRow = { id: string }> = {\n table?: TableType;\n projection?: ViewProjection;\n objects?: ReactiveObject<T>[];\n} & Pick<TableModelProps<T>, 'onInsertRow' | 'onDeleteRows' | 'onDeleteColumn' | 'onCellUpdate' | 'onRowOrderChanged'>;\n\nexport const useTableModel = <T extends BaseTableRow = { id: string }>({\n objects,\n table,\n projection,\n ...props\n}: UseTableModelParams<T>): TableModel<T> | undefined => {\n const [model, setModel] = useState<TableModel<T>>();\n useEffect(() => {\n if (!table || !projection) {\n return;\n }\n\n let model: TableModel<T> | undefined;\n const t = setTimeout(async () => {\n model = new TableModel<T>({ table, projection, ...props });\n await model.open();\n setModel(model);\n });\n\n return () => {\n clearTimeout(t);\n void model?.close();\n };\n }, [table, projection]); // TODO(burdon): Trigger if callbacks change?\n\n // Update data.\n useEffect(() => {\n if (objects) {\n model?.setRows(objects);\n }\n }, [model, objects]);\n\n return model;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { computed, effect, signal, type ReadonlySignal } from '@preact/signals-core';\nimport orderBy from 'lodash.orderby';\n\nimport { Resource } from '@dxos/context';\nimport { getValue, setValue, FormatEnum, type JsonProp } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { PublicKey } from '@dxos/react-client';\nimport {\n cellClassesForFieldType,\n cellClassesForRowSelection,\n formatForDisplay,\n formatForEditing,\n parseValue,\n} from '@dxos/react-ui-data';\nimport {\n type DxGridAxisMeta,\n type DxGridCellValue,\n type DxGridPlane,\n type DxGridPlaneCells,\n type DxGridPlaneRange,\n} from '@dxos/react-ui-grid';\nimport { mx } from '@dxos/react-ui-theme';\nimport { VIEW_FIELD_LIMIT, type ViewProjection, type FieldType } from '@dxos/schema';\n\nimport { ModalController } from './modal-controller';\nimport { SelectionModel } from './selection-model';\nimport { type TableType } from '../types';\nimport { fromGridCell, type GridCell } from '../util';\nimport { tableButtons, touch } from '../util';\nimport { tableControls } from '../util/table-controls';\n\nexport type SortDirection = 'asc' | 'desc';\nexport type SortConfig = { fieldId: string; direction: SortDirection };\n\nexport type BaseTableRow = Record<JsonProp, any> & { id: string };\n\nexport type TableModelProps<T extends BaseTableRow = { id: string }> = {\n table: TableType;\n projection: ViewProjection;\n sorting?: SortConfig[];\n pinnedRows?: { top: number[]; bottom: number[] };\n onInsertRow?: (index?: number) => void;\n onDeleteRows?: (index: number, obj: T[]) => void;\n onDeleteColumn?: (fieldId: string) => void;\n onCellUpdate?: (cell: GridCell) => void;\n onRowOrderChanged?: () => void;\n};\n\nexport class TableModel<T extends BaseTableRow = { id: string }> extends Resource {\n public readonly id = `table-model-${PublicKey.random().truncate()}`;\n\n private readonly _table: TableType;\n private readonly _projection: ViewProjection;\n\n private readonly _visibleRange = signal<DxGridPlaneRange>({\n start: { row: 0, col: 0 },\n end: { row: 0, col: 0 },\n });\n\n /**\n * Maps display indices to data indices.\n * Used for translating between sorted/displayed order and original data order.\n * Keys are display indices, values are corresponding data indices.\n */\n private readonly _displayToDataIndex: Map<number, number> = new Map();\n\n private readonly _onInsertRow?: TableModelProps<T>['onInsertRow'];\n private readonly _onDeleteRows?: TableModelProps<T>['onDeleteRows'];\n private readonly _onDeleteColumn?: TableModelProps<T>['onDeleteColumn'];\n private readonly _onCellUpdate?: TableModelProps<T>['onCellUpdate'];\n private readonly _onRowOrderChanged?: TableModelProps<T>['onRowOrderChanged'];\n\n private readonly _sorting = signal<SortConfig | undefined>(undefined);\n private _sortedRows!: ReadonlySignal<T[]>;\n private _rows = signal<T[]>([]);\n\n private _pinnedRows: NonNullable<TableModelProps<T>['pinnedRows']>;\n\n private _selection!: SelectionModel<T>;\n private _columnMeta?: ReadonlySignal<DxGridAxisMeta>;\n private readonly _modalController = new ModalController();\n\n constructor({\n table,\n projection,\n sorting = [],\n pinnedRows = { top: [], bottom: [] },\n onCellUpdate,\n onDeleteColumn,\n onDeleteRows,\n onInsertRow,\n onRowOrderChanged,\n }: TableModelProps<T>) {\n super();\n this._table = table;\n this._projection = projection;\n\n this._sorting.value = sorting.at(0);\n this._pinnedRows = pinnedRows;\n this._onInsertRow = onInsertRow;\n this._onDeleteRows = onDeleteRows;\n this._onDeleteColumn = onDeleteColumn;\n this._onCellUpdate = onCellUpdate;\n this._onRowOrderChanged = onRowOrderChanged;\n }\n\n public get table() {\n return this._table;\n }\n\n public get projection() {\n return this._projection;\n }\n\n public get pinnedRows(): NonNullable<TableModelProps<T>['pinnedRows']> {\n return this._pinnedRows;\n }\n\n public get columnMeta(): ReadonlySignal<DxGridAxisMeta> {\n invariant(this._columnMeta);\n return this._columnMeta;\n }\n\n public get sorting(): SortConfig | undefined {\n return this._sorting.value;\n }\n\n public get modalController() {\n return this._modalController;\n }\n\n public get selection() {\n return this._selection;\n }\n\n //\n // Initialisation\n //\n\n protected override async _open() {\n this.initializeColumnMeta();\n this.initializeSorting();\n this.initializeEffects();\n this._selection = new SelectionModel(this._sortedRows, () => this._onRowOrderChanged?.());\n await this._selection.open(this._ctx);\n }\n\n private initializeColumnMeta(): void {\n this._columnMeta = computed(() => {\n const fields = this._table.view?.fields ?? [];\n const meta = Object.fromEntries(\n fields.map((field, index: number) => [index, { size: field?.size ?? 256, resizeable: true }]),\n );\n\n return {\n grid: meta,\n frozenColsStart: { 0: { size: 30, resizeable: false } },\n frozenColsEnd: { 0: { size: 40, resizeable: false } },\n };\n });\n }\n\n private initializeSorting(): void {\n this._sortedRows = computed(() => {\n this._displayToDataIndex.clear();\n const sort = this._sorting.value;\n if (!sort) {\n return this._rows.value;\n }\n\n const field = this._table.view?.fields.find((field) => field.id === sort.fieldId);\n if (!field) {\n return this._rows.value;\n }\n\n const dataWithIndices = this._rows.value.map((item, index) => {\n const value = getValue(item, field.path);\n return { item, index, value, isEmpty: value == null || value === '' };\n });\n const sorted = orderBy(dataWithIndices, ['isEmpty', 'value'], ['asc', sort.direction]);\n\n for (let displayIndex = 0; displayIndex < sorted.length; displayIndex++) {\n const { index: dataIndex } = sorted[displayIndex];\n if (displayIndex !== dataIndex) {\n this._displayToDataIndex.set(displayIndex, dataIndex);\n }\n }\n\n return sorted.map(({ item }) => item);\n });\n }\n\n private initializeEffects(): void {\n const rowOrderWatcher = effect(() => {\n touch(this._sortedRows.value);\n this._onRowOrderChanged?.();\n });\n this._ctx.onDispose(rowOrderWatcher);\n\n /**\n * Creates reactive effects for each row in the visible range.\n * Subscribes to changes in the visible range, recreating row effects when it changes.\n * When a row's data changes, invokes onCellUpdate to notify subscribers and trigger UI updates.\n */\n const rowEffectManager = effect(() => {\n const { start, end } = touch(this._visibleRange.value);\n const rowEffects: ReturnType<typeof effect>[] = [];\n for (let row = start.row; row <= end.row; row++) {\n rowEffects.push(\n effect(() => {\n const obj = this._sortedRows.value[row];\n this?._table?.view?.fields.forEach((field) => touch(getValue(obj, field.path)));\n this._onCellUpdate?.({ row, col: start.col });\n }),\n );\n }\n\n return () => rowEffects.forEach((cleanup) => cleanup());\n });\n this._ctx.onDispose(rowEffectManager);\n }\n\n //\n // Get Cells\n //\n\n public getCells = (range: DxGridPlaneRange, plane: DxGridPlane): DxGridPlaneCells => {\n switch (plane) {\n case 'grid': {\n this._visibleRange.value = range;\n return this.getMainGridCells(range);\n }\n case 'frozenRowsStart': {\n return this.getHeaderCells(range);\n }\n case 'frozenColsStart': {\n return this.getSelectionColumnCells(range);\n }\n case 'frozenColsEnd': {\n return this.getActionColumnCells(range);\n }\n case 'fixedStartStart': {\n return this.getSelectAllCell();\n }\n case 'fixedStartEnd': {\n return this.getNewColumnCell();\n }\n default: {\n return {};\n }\n }\n };\n\n private getMainGridCells = (range: DxGridPlaneRange): DxGridPlaneCells => {\n const values: DxGridPlaneCells = {};\n const fields = this._table.view?.fields ?? [];\n\n const addCell = (obj: T, field: FieldType, colIndex: number, displayIndex: number): void => {\n const { props } = this._projection.getFieldProjection(field.id);\n const value: DxGridCellValue = {\n get value() {\n const value = getValue(obj, field.path);\n if (value == null) {\n return '';\n }\n\n switch (props.format) {\n case FormatEnum.Ref: {\n if (!field.referencePath) {\n return ''; // TODO(burdon): Show error.\n }\n\n return getValue(value, field.referencePath);\n }\n\n default: {\n return formatForDisplay({ type: props.type, format: props.format, value });\n }\n }\n },\n };\n\n const classes = [];\n const formatClasses = cellClassesForFieldType({ type: props.type, format: props.format });\n if (formatClasses) {\n classes.push(formatClasses);\n }\n const rowSelectionClasses = cellClassesForRowSelection(this._selection.isObjectSelected(obj));\n if (rowSelectionClasses) {\n classes.push(rowSelectionClasses);\n }\n if (classes.length > 0) {\n value.className = mx(classes.flat());\n }\n\n const idx = fromGridCell({ col: colIndex, row: displayIndex });\n values[idx] = value;\n };\n\n for (let row = range.start.row; row <= range.end.row && row < this._sortedRows.value.length; row++) {\n for (let col = range.start.col; col <= range.end.col && col < fields.length; col++) {\n const field = fields[col];\n if (!field) {\n continue;\n }\n\n addCell(this._sortedRows.value[row], field, col, row);\n }\n }\n\n return values;\n };\n\n private getHeaderCells = (range: DxGridPlaneRange): DxGridPlaneCells => {\n const values: DxGridPlaneCells = {};\n const fields = this.table.view?.fields ?? [];\n for (let col = range.start.col; col <= range.end.col && col < fields.length; col++) {\n const { field, props } = this._projection.getFieldProjection(fields[col].id);\n values[fromGridCell({ col, row: 0 })] = {\n value: props.title ?? field.path,\n readonly: true,\n resizeHandle: 'col',\n accessoryHtml: tableButtons.columnSettings.render({ fieldId: field.id }),\n };\n }\n\n return values;\n };\n\n private getSelectionColumnCells = (range: DxGridPlaneRange): DxGridPlaneCells => {\n const values: DxGridPlaneCells = {};\n for (let row = range.start.row; row <= range.end.row && row < this._rows.value.length; row++) {\n const isSelected = this._selection.isRowIndexSelected(row);\n const classes = cellClassesForRowSelection(isSelected);\n values[fromGridCell({ col: 0, row })] = {\n value: '',\n readonly: true,\n className: classes ? mx(classes) : undefined,\n accessoryHtml: tableControls.checkbox.render({ rowIndex: row, checked: isSelected }),\n };\n }\n\n return values;\n };\n\n private getActionColumnCells = (range: DxGridPlaneRange): DxGridPlaneCells => {\n const values: DxGridPlaneCells = {};\n for (let row = range.start.row; row <= range.end.row && row < this._rows.value.length; row++) {\n const isSelected = this._selection.isRowIndexSelected(row);\n const classes = cellClassesForRowSelection(isSelected);\n values[fromGridCell({ col: 0, row })] = {\n value: '',\n readonly: true,\n className: classes ? mx(classes) : undefined,\n accessoryHtml: tableButtons.rowMenu.render({ rowIndex: row }),\n };\n }\n\n return values;\n };\n\n private getSelectAllCell = (): DxGridPlaneCells => {\n return {\n [fromGridCell({ col: 0, row: 0 })]: {\n value: '',\n accessoryHtml: tableControls.checkbox.render({\n rowIndex: 0,\n header: true,\n checked: this._selection.allRowsSeleted.value,\n }),\n readonly: true,\n },\n };\n };\n\n private getNewColumnCell = (): DxGridPlaneCells => {\n return {\n [fromGridCell({ col: 0, row: 0 })]: {\n value: '',\n accessoryHtml: tableButtons.addColumn.render({\n disabled: (this._table.view?.fields?.length ?? 0) >= VIEW_FIELD_LIMIT,\n }),\n readonly: true,\n },\n };\n };\n\n //\n // Data\n //\n\n public setRows = (obj: T[]): void => {\n this._rows.value = obj;\n };\n\n public getRowCount = (): number => this._rows.value.length;\n\n public getColumnCount = (): number => this.table.view?.fields.length ?? 0;\n\n public insertRow = (rowIndex?: number): void => {\n const row = rowIndex !== undefined ? this._displayToDataIndex.get(rowIndex) ?? rowIndex : this._rows.value.length;\n this._onInsertRow?.(row);\n };\n\n public deleteRow = (rowIndex: number): void => {\n const row = this._displayToDataIndex.get(rowIndex) ?? rowIndex;\n const obj = this._rows.value[row];\n const objectsToDelete = [];\n\n if (this._selection.hasSelection.value) {\n const selectedRows = this._selection.getSelectedRows();\n objectsToDelete.push(...selectedRows);\n } else {\n objectsToDelete.push(obj);\n }\n\n this._onDeleteRows?.(row, objectsToDelete);\n };\n\n public getCellData = ({ col, row }: GridCell): any => {\n const fields = this.table.view?.fields ?? [];\n if (col < 0 || col >= fields.length) {\n return undefined;\n }\n\n const field = fields[col];\n const dataIndex = this._displayToDataIndex.get(row) ?? row;\n const value = getValue(this._rows.value[dataIndex], field.path);\n if (value == null) {\n return '';\n }\n\n const { props } = this._projection.getFieldProjection(field.id);\n switch (props.format) {\n case FormatEnum.Ref: {\n if (!field.referencePath) {\n return ''; // TODO(burdon): Show error.\n }\n\n return getValue(value, field.referencePath);\n }\n\n default: {\n return formatForEditing({ type: props.type, format: props.format, value });\n }\n }\n };\n\n public setCellData = ({ col, row }: GridCell, value: any): void => {\n const rowIdx = this._displayToDataIndex.get(row) ?? row;\n const fields = this.table.view?.fields ?? [];\n if (col < 0 || col >= fields.length) {\n return;\n }\n\n const field = fields[col];\n const { props } = this._projection.getFieldProjection(field.id);\n switch (props.format) {\n case FormatEnum.Ref: {\n setValue(this._rows.value[rowIdx], field.path, value);\n break;\n }\n\n default: {\n setValue(\n this._rows.value[rowIdx],\n field.path,\n parseValue({\n type: props.type,\n format: props.format,\n value,\n }),\n );\n break;\n }\n }\n };\n\n //\n // Column Operations\n //\n\n public deleteColumn(fieldId: string): void {\n if (!this.table.view) {\n return;\n }\n\n const field = this.table.view.fields.find((field) => field.id === fieldId);\n if (field && this._onDeleteColumn) {\n if (this._sorting.value?.fieldId === fieldId) {\n this.clearSort();\n }\n this._onDeleteColumn(field.id);\n }\n }\n\n //\n // Interactions\n //\n public handleGridClick = (event: React.MouseEvent): void => {\n if (!this._modalController.handleClick(event)) {\n const target = event.target as HTMLElement;\n\n const selectionCheckbox = target.closest(`input[${tableControls.checkbox.attributes.checkbox}]`);\n if (selectionCheckbox) {\n const isHeader = selectionCheckbox.hasAttribute(tableControls.checkbox.attributes.header);\n if (isHeader) {\n if (this._selection.allRowsSeleted.value) {\n this._selection.setSelection('none');\n } else {\n this._selection.setSelection('all');\n }\n } else {\n const rowIndex = Number(selectionCheckbox.getAttribute(tableControls.checkbox.attributes.checkbox));\n this._selection.toggleSelectionForRowIndex(rowIndex);\n }\n }\n }\n };\n\n //\n // Resize\n //\n\n public setColumnWidth(columnIndex: number, width: number): void {\n const fields = this.table.view?.fields ?? [];\n if (columnIndex < fields.length) {\n const newWidth = Math.max(0, width);\n const field = fields[columnIndex];\n if (field) {\n field.size = newWidth;\n }\n }\n }\n\n //\n // Sorting\n //\n\n public setSort(fieldId: string, direction: SortDirection): void {\n this._sorting.value = { fieldId, direction };\n }\n\n public clearSort(): void {\n this._sorting.value = undefined;\n }\n\n //\n // Pinning\n //\n\n // TODO(burdon): Change to setPinned(on/off).\n public pinRow(rowIndex: number, side: 'top' | 'bottom'): void {\n this._pinnedRows[side].push(rowIndex);\n }\n\n public unpinRow(rowIndex: number): void {\n this._pinnedRows.top = this._pinnedRows.top.filter((index: number) => index !== rowIndex);\n this._pinnedRows.bottom = this._pinnedRows.bottom.filter((index: number) => index !== rowIndex);\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { signal } from '@preact/signals-core';\nimport { type RefObject, type MouseEvent, type MutableRefObject } from 'react';\n\nimport { tableButtons } from '../util';\n\nexport type ColumnSettingsMode = { type: 'create' } | { type: 'edit'; fieldId: string };\n\nexport type ModalState =\n | { type: 'row'; rowIndex: number }\n | { type: 'column'; fieldId: string }\n | { type: 'columnSettings'; mode: ColumnSettingsMode }\n | { type: 'closed' };\n\nexport class ModalController {\n private readonly _state = signal<ModalState>({ type: 'closed' });\n private readonly _triggerRef: MutableRefObject<HTMLElement> = { current: null as unknown as HTMLElement };\n\n public get state() {\n return this._state;\n }\n\n public get trigger() {\n return this._triggerRef as RefObject<HTMLButtonElement>;\n }\n\n public handleClick = (event: MouseEvent): boolean => {\n const target = event.target as HTMLElement;\n\n const rowButton = target.closest(`button[${tableButtons.rowMenu.attr}]`);\n if (rowButton) {\n this._triggerRef.current = rowButton as HTMLElement;\n this._state.value = {\n type: 'row',\n rowIndex: Number(rowButton.getAttribute(tableButtons.rowMenu.attr)),\n };\n return true;\n }\n\n const columnButton = target.closest(`button[${tableButtons.columnSettings.attr}]`);\n if (columnButton) {\n const fieldId = columnButton.getAttribute(tableButtons.columnSettings.attr)!;\n this._triggerRef.current = columnButton as HTMLElement;\n this._state.value = {\n type: 'column',\n fieldId,\n };\n return true;\n }\n\n const addColumnButton = target.closest(`button[${tableButtons.addColumn.attr}]`);\n if (addColumnButton) {\n this._triggerRef.current = addColumnButton as HTMLElement;\n this._state.value = {\n type: 'columnSettings',\n mode: { type: 'create' },\n };\n return true;\n }\n\n return false;\n };\n\n public openColumnSettings = () => {\n if (this._state.value.type === 'column') {\n const fieldId = this._state.value.fieldId;\n // Queue next render to let the column action modal close completely.\n requestAnimationFrame(() => {\n this._state.value = {\n type: 'columnSettings',\n mode: { type: 'edit', fieldId },\n };\n });\n }\n };\n\n public close = () => {\n this._state.value = { type: 'closed' };\n };\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { computed, effect, signal, type ReadonlySignal } from '@preact/signals-core';\n\nimport { Resource } from '@dxos/context';\n\nimport { type BaseTableRow } from './table-model';\nimport { touch } from '../util';\n\nexport class SelectionModel<T extends BaseTableRow> extends Resource {\n private readonly _selection = signal<Set<string>>(new Set());\n\n private readonly _validSelectedIds = computed<Set<string>>(() => {\n const rows = this._rows.value;\n if (!rows) {\n return new Set<string>();\n }\n const validIds = new Set(rows.map((row) => row.id));\n return new Set([...this._selection.value].filter((id) => validIds.has(id)));\n });\n\n private readonly _hasSelection = computed<boolean>(() => this._validSelectedIds.value.size > 0);\n\n private readonly _allSelected = computed<boolean>(() => {\n const rows = this._rows.value;\n if (rows.length === 0) {\n return false;\n }\n return rows.length !== 0 || rows.every((row) => this._selection.value.has(row.id));\n });\n\n constructor(\n private readonly _rows: ReadonlySignal<T[]>,\n private readonly _onSelectionChanged?: () => void,\n ) {\n super();\n }\n\n protected override async _open() {\n const selectionWatcher = effect(() => {\n touch(this._selection.value);\n this._onSelectionChanged?.();\n });\n this._ctx.onDispose(selectionWatcher);\n }\n\n //\n // Getters\n //\n\n public get selection(): ReadonlySignal<Set<string>> {\n return this._selection;\n }\n\n public get hasSelection(): ReadonlySignal<boolean> {\n return this._hasSelection;\n }\n\n public get allRowsSeleted(): ReadonlySignal<boolean> {\n return this._allSelected;\n }\n\n public getSelectedRows = (): T[] => {\n const selectedIds = this._validSelectedIds.value;\n return this._rows.value.filter((row) => selectedIds.has(row.id));\n };\n\n public isRowIndexSelected = (rowIndex: number): boolean => {\n const row = this._rows.value[rowIndex];\n return this._selection.value.has(row.id);\n };\n\n public isObjectSelected = (object: T): boolean => {\n return this._selection.value.has(object.id);\n };\n\n //\n // Manipulation\n //\n\n public toggleSelectionForRowIndex = (rowIndex: number): void => {\n const row = this._rows.value[rowIndex];\n const newSelection = new Set(this._selection.value);\n\n if (newSelection.has(row.id)) {\n newSelection.delete(row.id);\n } else {\n newSelection.add(row.id);\n }\n\n this._selection.value = newSelection;\n };\n\n public setSelection = (mode: 'all' | 'none'): void => {\n this._selection.value = mode === 'all' ? new Set(this._rows.value.map((row) => row.id)) : new Set();\n };\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nexport const checkboxAttributes = {\n checkbox: 'data-table-checkbox',\n header: 'data-table-header',\n} as const;\n\nexport type RenderCheckboxProps = { rowIndex: number; header?: boolean; checked?: boolean; disabled?: boolean };\nexport const renderCheckbox = ({\n rowIndex,\n header = false,\n checked = false,\n disabled = false,\n}: RenderCheckboxProps): string => {\n const baseClasses = 'absolute inset-block-[6px] inline-end-[6px]' as const;\n const { attributes } = tableControls.checkbox;\n return `<input type=\"checkbox\" class=\"${baseClasses}\" ${attributes.checkbox}=\"${rowIndex}\" ${header ? attributes.header : ''} ${checked ? 'checked' : ''} ${disabled ? 'disabled' : ''}/>`;\n};\n\nexport const tableControls = {\n checkbox: {\n attributes: checkboxAttributes,\n render: renderCheckbox,\n },\n} as const;\n"],
5
+ "mappings": "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",
6
+ "names": ["import_react", "import_echo", "import_react_ui", "import_echo_schema", "import_invariant", "import_react_ui_grid", "import_react_ui_theme", "import_react_client", "import_react_ui_data", "import_schema", "import_signals_core", "import_context", "translationKey", "ColumnActionsMenu", "model", "t", "useTranslation", "state", "modalController", "value", "type", "currentSort", "sorting", "isCurrentColumnSorted", "fieldId", "React", "DropdownMenu", "Root", "modal", "open", "onOpenChange", "close", "VirtualTrigger", "virtualRef", "trigger", "Portal", "Content", "Viewport", "direction", "Item", "onClick", "setSort", "clearSort", "getColumnCount", "deleteColumn", "openColumnSettings", "Arrow", "ColumnSettings", "newField", "setNewField", "useState", "space", "getSpace", "table", "useEffect", "mode", "projection", "createFieldProjection", "undefined", "existingField", "useMemo", "view", "fields", "find", "f", "id", "field", "handleClose", "useCallback", "handleCancel", "deleteFieldProjection", "classNames", "FieldEditor", "registry", "db", "schemaRegistry", "onClose", "onCancel", "RowActionsMenu", "hasSelection", "selection", "deleteRow", "rowIndex", "completion", "onQuery", "onMatch", "EditorView", "theme", "width", "autocompletion", "icons", "activateOnTyping", "override", "context", "text", "doc", "toString", "from", "options", "tooltipClass", "optionClass", "updateListener", "of", "update", "transactions", "forEach", "tr", "annotation", "pickedCompletion", "data", "fromGridCell", "col", "row", "toGridCell", "cell", "split", "map", "Number", "touch", "initializeTable", "log", "info", "ContactSchema", "TypedObject", "typename", "PublicKey", "random", "truncate", "version", "name", "S", "optional", "String", "annotations", "AST", "TitleAnnotationId", "email", "Format", "Email", "salary", "Currency", "contactSchema", "addSchema", "createView", "jsonSchema", "ViewProjection", "setFieldProjection", "path", "size", "createFieldId", "referencePath", "props", "property", "TypeEnum", "Ref", "format", "FormatEnum", "referenceSchema", "title", "add", "create", "TABLE_ATTRS", "columnSettings", "rowMenu", "newColumn", "ICONS", "createButtonHtml", "button", "disabled", "buttonClasses", "tableButtons", "attr", "icon", "render", "addColumn", "TableCellEditor", "onEnter", "onFocus", "__gridScope", "editing", "useGridContext", "fieldProjection", "index", "getFieldProjection", "invariant", "event", "determineNavigationAxis", "determineNavigationDelta", "handleBlur", "setCellData", "extension", "editorKeys", "initialContent", "onNav", "push", "getCellContent", "getCellData", "GridCellEditor", "onBlur", "key", "shift", "inlineEndLine", "blockEndLine", "frozen", "frozenRowsStart", "frozenColsStart", "frozenColsEnd", "TableRoot", "children", "div", "role", "className", "TableMain", "forwardRef", "forwardedRef", "dxGrid", "setDxGrid", "hasAttention", "useAttention", "fullyQualifiedId", "useImperativeHandle", "getCells", "bind", "updateIfWithinBounds", "updateCells", "handleFocus", "increment", "delta", "refocus", "handleEnter", "getRowCount", "insertRow", "handleKeyDown", "closestCell", "target", "handleAxisResize", "axis", "columnIndex", "parseInt", "setColumnWidth", "handleWheel", "stopPropagation", "handleQuery", "_text", "schema", "getSchema", "objects", "query", "Filter", "run", "obj", "getValue", "label", "filter", "isNotFalsy", "span", "Grid", "onWheelCapture", "mx", "columns", "columnMeta", "limitRows", "limitColumns", "length", "onAxisResize", "handleGridClick", "onKeyDown", "overscroll", "ref", "Table", "Main", "iconStyles", "getSize", "buttonStyles", "tooltipProps", "side", "ToolbarSeparator", "ToolbarButton", "Icon", "Tooltip", "Trigger", "asChild", "NaturalToolbar", "Button", "variant", "ToolbarContextProvider", "useToolbarContext", "createContext", "ToolbarRoot", "onAction", "Editing", "RowsPlusBottom", "data-testid", "Actions", "ChatText", "Toolbar", "Separator", "ModalController", "_state", "signal", "_triggerRef", "current", "handleClick", "rowButton", "closest", "getAttribute", "columnButton", "addColumnButton", "requestAnimationFrame", "SelectionModel", "Resource", "constructor", "_rows", "_onSelectionChanged", "_selection", "Set", "_validSelectedIds", "computed", "rows", "validIds", "has", "_hasSelection", "_allSelected", "every", "getSelectedRows", "selectedIds", "isRowIndexSelected", "isObjectSelected", "object", "toggleSelectionForRowIndex", "newSelection", "delete", "setSelection", "_open", "selectionWatcher", "effect", "_ctx", "onDispose", "allRowsSeleted", "checkboxAttributes", "checkbox", "header", "renderCheckbox", "checked", "baseClasses", "attributes", "tableControls", "TableModel", "pinnedRows", "top", "bottom", "onCellUpdate", "onDeleteColumn", "onDeleteRows", "onInsertRow", "onRowOrderChanged", "_visibleRange", "start", "end", "Map", "_sorting", "_modalController", "range", "plane", "getMainGridCells", "getHeaderCells", "getSelectionColumnCells", "getActionColumnCells", "getSelectAllCell", "getNewColumnCell", "values", "_table", "addCell", "colIndex", "displayIndex", "_projection", "formatForDisplay", "classes", "formatClasses", "cellClassesForFieldType", "rowSelectionClasses", "cellClassesForRowSelection", "flat", "idx", "_sortedRows", "readonly", "resizeHandle", "accessoryHtml", "isSelected", "VIEW_FIELD_LIMIT", "_displayToDataIndex", "get", "_onInsertRow", "objectsToDelete", "selectedRows", "_onDeleteRows", "dataIndex", "formatForEditing", "rowIdx", "setValue", "parseValue", "selectionCheckbox", "isHeader", "hasAttribute", "at", "_pinnedRows", "_onDeleteColumn", "_onCellUpdate", "_onRowOrderChanged", "_columnMeta", "initializeColumnMeta", "initializeSorting", "initializeEffects", "meta", "Object", "fromEntries", "resizeable", "grid", "clear", "sort", "dataWithIndices", "item", "isEmpty", "sorted", "orderBy", "set", "rowOrderWatcher", "rowEffectManager", "rowEffects", "cleanup", "newWidth", "Math", "max", "pinRow", "unpinRow", "useTableModel", "setModel", "setTimeout", "clearTimeout", "setRows"]
7
+ }
@@ -0,0 +1 @@
1
+ {"inputs":{"packages/ui/react-ui-table/src/_deprecated/translations.ts":{"bytes":2416,"imports":[],"format":"esm"},"packages/ui/react-ui-table/src/_deprecated/components/Cell/CellCombobox.tsx":{"bytes":11836,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-searchlist","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-table/src/_deprecated/translations.ts","kind":"import-statement","original":"../../translations"}],"format":"esm"},"packages/ui/react-ui-table/src/_deprecated/components/Cell/index.ts":{"bytes":538,"imports":[{"path":"packages/ui/react-ui-table/src/_deprecated/components/Cell/CellCombobox.tsx","kind":"import-statement","original":"./CellCombobox"}],"format":"esm"},"packages/ui/react-ui-table/src/_deprecated/components/ColumnMenu/ColumnSettings.tsx":{"bytes":22427,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-table/src/_deprecated/translations.ts","kind":"import-statement","original":"../../translations"}],"format":"esm"},"packages/ui/react-ui-table/src/_deprecated/hooks/useColumnSizing.ts":{"bytes":5085,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-table/src/_deprecated/components/Table/TableContext.tsx":{"bytes":2904,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-table/src/_deprecated/hooks/useColumnSorting.ts":{"bytes":6861,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-table/src/_deprecated/components/Table/TableContext.tsx","kind":"import-statement","original":"../components/Table/TableContext"}],"format":"esm"},"packages/ui/react-ui-table/src/_deprecated/hooks/usePinLastRow.ts":{"bytes":4500,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-table/src/_deprecated/hooks/useRowSelection.ts":{"bytes":5118,"imports":[{"path":"@radix-ui/react-use-controllable-state","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-table/src/_deprecated/hooks/index.ts":{"bytes":859,"imports":[{"path":"packages/ui/react-ui-table/src/_deprecated/hooks/useColumnSizing.ts","kind":"import-statement","original":"./useColumnSizing"},{"path":"packages/ui/react-ui-table/src/_deprecated/hooks/useColumnSorting.ts","kind":"import-statement","original":"./useColumnSorting"},{"path":"packages/ui/react-ui-table/src/_deprecated/hooks/usePinLastRow.ts","kind":"import-statement","original":"./usePinLastRow"},{"path":"packages/ui/react-ui-table/src/_deprecated/hooks/useRowSelection.ts","kind":"import-statement","original":"./useRowSelection"}],"format":"esm"},"packages/ui/react-ui-table/src/_deprecated/components/ColumnMenu/ColumnMenu.tsx":{"bytes":21077,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-table/src/_deprecated/components/ColumnMenu/ColumnSettings.tsx","kind":"import-statement","original":"./ColumnSettings"},{"path":"packages/ui/react-ui-table/src/_deprecated/hooks/index.ts","kind":"import-statement","original":"../../hooks"}],"format":"esm"},"packages/ui/react-ui-table/src/_deprecated/components/ColumnMenu/index.ts":{"bytes":644,"imports":[{"path":"packages/ui/react-ui-table/src/_deprecated/components/ColumnMenu/ColumnMenu.tsx","kind":"import-statement","original":"./ColumnMenu"},{"path":"packages/ui/react-ui-table/src/_deprecated/components/ColumnMenu/ColumnSettings.tsx","kind":"import-statement","original":"./ColumnSettings"}],"format":"esm"},"packages/ui/react-ui-table/src/_deprecated/components/Table/props.ts":{"bytes":2895,"imports":[],"format":"esm"},"packages/ui/react-ui-table/src/_deprecated/components/Table/TableRootContext.ts":{"bytes":3983,"imports":[{"path":"@tanstack/react-virtual","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-table/src/_deprecated/theme.ts":{"bytes":9221,"imports":[{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-table/src/_deprecated/components/Cell/Cell.tsx":{"bytes":10701,"imports":[{"path":"@fluentui/react-tabster","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-table/src/_deprecated/theme.ts","kind":"import-statement","original":"../../theme"},{"path":"packages/ui/react-ui-table/src/_deprecated/components/Table/TableContext.tsx","kind":"import-statement","original":"../Table/TableContext"}],"format":"esm"},"packages/ui/react-ui-table/src/_deprecated/components/Table/TableBody.tsx":{"bytes":9027,"imports":[{"path":"@fluentui/react-tabster","kind":"import-statement","external":true},{"path":"@tanstack/react-table","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-table/src/_deprecated/components/Table/TableContext.tsx","kind":"import-statement","original":"./TableContext"},{"path":"packages/ui/react-ui-table/src/_deprecated/components/Table/TableRootContext.ts","kind":"import-statement","original":"./TableRootContext"},{"path":"packages/ui/react-ui-table/src/_deprecated/theme.ts","kind":"import-statement","original":"../../theme"},{"path":"packages/ui/react-ui-table/src/_deprecated/components/Cell/Cell.tsx","kind":"import-statement","original":"../Cell/Cell"}],"format":"esm"},"packages/ui/react-ui-table/src/_deprecated/components/Table/TableHead.tsx":{"bytes":8285,"imports":[{"path":"@tanstack/react-table","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-grid","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-table/src/_deprecated/components/Table/TableContext.tsx","kind":"import-statement","original":"./TableContext"},{"path":"packages/ui/react-ui-table/src/_deprecated/theme.ts","kind":"import-statement","original":"../../theme"}],"format":"esm"},"packages/ui/react-ui-table/src/_deprecated/components/Table/Table.tsx":{"bytes":31565,"imports":[{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"@tanstack/react-table","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-table/src/_deprecated/components/Table/TableBody.tsx","kind":"import-statement","original":"./TableBody"},{"path":"packages/ui/react-ui-table/src/_deprecated/components/Table/TableContext.tsx","kind":"import-statement","original":"./TableContext"},{"path":"packages/ui/react-ui-table/src/_deprecated/components/Table/TableHead.tsx","kind":"import-statement","original":"./TableHead"},{"path":"packages/ui/react-ui-table/src/_deprecated/components/Table/TableRootContext.ts","kind":"import-statement","original":"./TableRootContext"},{"path":"packages/ui/react-ui-table/src/_deprecated/hooks/index.ts","kind":"import-statement","original":"../../hooks"},{"path":"packages/ui/react-ui-table/src/_deprecated/theme.ts","kind":"import-statement","original":"../../theme"}],"format":"esm"},"packages/ui/react-ui-table/src/_deprecated/components/Table/index.ts":{"bytes":813,"imports":[{"path":"packages/ui/react-ui-table/src/_deprecated/components/Table/props.ts","kind":"import-statement","original":"./props"},{"path":"packages/ui/react-ui-table/src/_deprecated/components/Table/Table.tsx","kind":"import-statement","original":"./Table"},{"path":"packages/ui/react-ui-table/src/_deprecated/components/Table/TableContext.tsx","kind":"import-statement","original":"./TableContext"},{"path":"packages/ui/react-ui-table/src/_deprecated/components/Table/TableRootContext.ts","kind":"import-statement","original":"./TableRootContext"}],"format":"esm"},"packages/ui/react-ui-table/src/_deprecated/components/index.ts":{"bytes":688,"imports":[{"path":"packages/ui/react-ui-table/src/_deprecated/components/Cell/index.ts","kind":"import-statement","original":"./Cell"},{"path":"packages/ui/react-ui-table/src/_deprecated/components/ColumnMenu/index.ts","kind":"import-statement","original":"./ColumnMenu"},{"path":"packages/ui/react-ui-table/src/_deprecated/components/Table/index.ts","kind":"import-statement","original":"./Table"}],"format":"esm"},"packages/ui/react-ui-table/src/_deprecated/helpers.tsx":{"bytes":55781,"imports":[{"path":"@fluentui/react-tabster","kind":"import-statement","external":true},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"@tanstack/react-table","kind":"import-statement","external":true},{"path":"date-fns/format","kind":"import-statement","external":true},{"path":"date-fns/formatDistanceToNow","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-grid","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-table/src/_deprecated/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/ui/react-ui-table/src/_deprecated/theme.ts","kind":"import-statement","original":"./theme"}],"format":"esm"},"packages/ui/react-ui-table/src/_deprecated/schema/column-utils.ts":{"bytes":6718,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-table/src/_deprecated/helpers.tsx","kind":"import-statement","original":"../helpers"}],"format":"esm"},"packages/ui/react-ui-table/src/_deprecated/schema/types.ts":{"bytes":1460,"imports":[],"format":"esm"},"packages/ui/react-ui-table/src/_deprecated/schema/index.ts":{"bytes":610,"imports":[{"path":"packages/ui/react-ui-table/src/_deprecated/schema/column-utils.ts","kind":"import-statement","original":"./column-utils"},{"path":"packages/ui/react-ui-table/src/_deprecated/schema/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/ui/react-ui-table/src/_deprecated/types.ts":{"bytes":1874,"imports":[],"format":"esm"},"packages/ui/react-ui-table/src/_deprecated/index.ts":{"bytes":1154,"imports":[{"path":"packages/ui/react-ui-table/src/_deprecated/translations.ts","kind":"import-statement","original":"./translations"},{"path":"packages/ui/react-ui-table/src/_deprecated/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/ui/react-ui-table/src/_deprecated/helpers.tsx","kind":"import-statement","original":"./helpers"},{"path":"packages/ui/react-ui-table/src/_deprecated/hooks/index.ts","kind":"import-statement","original":"./hooks"},{"path":"packages/ui/react-ui-table/src/_deprecated/schema/index.ts","kind":"import-statement","original":"./schema"},{"path":"packages/ui/react-ui-table/src/_deprecated/theme.ts","kind":"import-statement","original":"./theme"},{"path":"packages/ui/react-ui-table/src/_deprecated/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/ui/react-ui-table/src/translations.ts":{"bytes":3582,"imports":[],"format":"esm"},"packages/ui/react-ui-table/src/components/Table/ColumnActionsMenu.tsx":{"bytes":7572,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-table/src/translations.ts","kind":"import-statement","original":"../../translations"}],"format":"esm"},"packages/ui/react-ui-table/src/components/Table/ColumnSettings.tsx":{"bytes":8987,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-data","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-table/src/components/Table/RowActionsMenu.tsx":{"bytes":4325,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-table/src/translations.ts","kind":"import-statement","original":"../../translations"}],"format":"esm"},"packages/ui/react-ui-table/src/components/TableCellEditor/extension.ts":{"bytes":5434,"imports":[{"path":"@codemirror/autocomplete","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-table/src/util/grid.ts":{"bytes":2113,"imports":[],"format":"esm"},"packages/ui/react-ui-table/src/util/signals.ts":{"bytes":915,"imports":[],"format":"esm"},"packages/ui/react-ui-table/src/util/table.ts":{"bytes":7969,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-table/src/util/table-buttons.ts":{"bytes":5371,"imports":[],"format":"esm"},"packages/ui/react-ui-table/src/util/index.ts":{"bytes":768,"imports":[{"path":"packages/ui/react-ui-table/src/util/grid.ts","kind":"import-statement","original":"./grid"},{"path":"packages/ui/react-ui-table/src/util/signals.ts","kind":"import-statement","original":"./signals"},{"path":"packages/ui/react-ui-table/src/util/table.ts","kind":"import-statement","original":"./table"},{"path":"packages/ui/react-ui-table/src/util/table-buttons.ts","kind":"import-statement","original":"./table-buttons"}],"format":"esm"},"packages/ui/react-ui-table/src/components/TableCellEditor/TableCellEditor.tsx":{"bytes":14140,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-ui-grid","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-table/src/components/TableCellEditor/extension.ts","kind":"import-statement","original":"./extension"},{"path":"packages/ui/react-ui-table/src/util/index.ts","kind":"import-statement","original":"../../util"}],"format":"esm"},"packages/ui/react-ui-table/src/components/TableCellEditor/index.ts":{"bytes":544,"imports":[{"path":"packages/ui/react-ui-table/src/components/TableCellEditor/TableCellEditor.tsx","kind":"import-statement","original":"./TableCellEditor"}],"format":"esm"},"packages/ui/react-ui-table/src/components/Table/Table.tsx":{"bytes":20908,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-grid","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-table/src/components/Table/ColumnActionsMenu.tsx","kind":"import-statement","original":"./ColumnActionsMenu"},{"path":"packages/ui/react-ui-table/src/components/Table/ColumnSettings.tsx","kind":"import-statement","original":"./ColumnSettings"},{"path":"packages/ui/react-ui-table/src/components/Table/RowActionsMenu.tsx","kind":"import-statement","original":"./RowActionsMenu"},{"path":"packages/ui/react-ui-table/src/components/TableCellEditor/index.ts","kind":"import-statement","original":"../TableCellEditor"}],"format":"esm"},"packages/ui/react-ui-table/src/components/Table/index.ts":{"bytes":508,"imports":[{"path":"packages/ui/react-ui-table/src/components/Table/Table.tsx","kind":"import-statement","original":"./Table"}],"format":"esm"},"packages/ui/react-ui-table/src/components/Toolbar/common.tsx":{"bytes":7027,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-table/src/components/Toolbar/Toolbar.tsx":{"bytes":6926,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-table/src/components/Toolbar/common.tsx","kind":"import-statement","original":"./common"},{"path":"packages/ui/react-ui-table/src/translations.ts","kind":"import-statement","original":"../../translations"}],"format":"esm"},"packages/ui/react-ui-table/src/components/Toolbar/index.ts":{"bytes":516,"imports":[{"path":"packages/ui/react-ui-table/src/components/Toolbar/Toolbar.tsx","kind":"import-statement","original":"./Toolbar"}],"format":"esm"},"packages/ui/react-ui-table/src/components/index.ts":{"bytes":589,"imports":[{"path":"packages/ui/react-ui-table/src/components/Table/index.ts","kind":"import-statement","original":"./Table"},{"path":"packages/ui/react-ui-table/src/components/Toolbar/index.ts","kind":"import-statement","original":"./Toolbar"}],"format":"esm"},"packages/ui/react-ui-table/src/model/modal-controller.ts":{"bytes":8407,"imports":[{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-table/src/util/index.ts","kind":"import-statement","original":"../util"}],"format":"esm"},"packages/ui/react-ui-table/src/model/selection-model.ts":{"bytes":10638,"imports":[{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-table/src/util/index.ts","kind":"import-statement","original":"../util"}],"format":"esm"},"packages/ui/react-ui-table/src/util/table-controls.ts":{"bytes":3047,"imports":[],"format":"esm"},"packages/ui/react-ui-table/src/model/table-model.ts":{"bytes":62367,"imports":[{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"lodash.orderby","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui-data","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-table/src/model/modal-controller.ts","kind":"import-statement","original":"./modal-controller"},{"path":"packages/ui/react-ui-table/src/model/selection-model.ts","kind":"import-statement","original":"./selection-model"},{"path":"packages/ui/react-ui-table/src/util/index.ts","kind":"import-statement","original":"../util"},{"path":"packages/ui/react-ui-table/src/util/index.ts","kind":"import-statement","original":"../util"},{"path":"packages/ui/react-ui-table/src/util/table-controls.ts","kind":"import-statement","original":"../util/table-controls"}],"format":"esm"},"packages/ui/react-ui-table/src/model/index.ts":{"bytes":623,"imports":[{"path":"packages/ui/react-ui-table/src/model/table-model.ts","kind":"import-statement","original":"./table-model"},{"path":"packages/ui/react-ui-table/src/model/modal-controller.ts","kind":"import-statement","original":"./modal-controller"}],"format":"esm"},"packages/ui/react-ui-table/src/hooks/useTableModel.ts":{"bytes":4264,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-table/src/model/index.ts","kind":"import-statement","original":"../model"}],"format":"esm"},"packages/ui/react-ui-table/src/hooks/index.ts":{"bytes":517,"imports":[{"path":"packages/ui/react-ui-table/src/hooks/useTableModel.ts","kind":"import-statement","original":"./useTableModel"}],"format":"esm"},"packages/ui/react-ui-table/src/types/table.ts":{"bytes":1968,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-table/src/types/index.ts":{"bytes":497,"imports":[{"path":"packages/ui/react-ui-table/src/types/table.ts","kind":"import-statement","original":"./table"}],"format":"esm"},"packages/ui/react-ui-table/src/index.ts":{"bytes":998,"imports":[{"path":"packages/ui/react-ui-table/src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"packages/ui/react-ui-table/src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/ui/react-ui-table/src/hooks/index.ts","kind":"import-statement","original":"./hooks"},{"path":"packages/ui/react-ui-table/src/types/index.ts","kind":"import-statement","original":"./types"},{"path":"packages/ui/react-ui-table/src/util/index.ts","kind":"import-statement","original":"./util"}],"format":"esm"}},"outputs":{"packages/ui/react-ui-table/dist/lib/node/_deprecated/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":112998},"packages/ui/react-ui-table/dist/lib/node/_deprecated/index.cjs":{"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-searchlist","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@radix-ui/react-use-controllable-state","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@radix-ui/react-slot","kind":"import-statement","external":true},{"path":"@tanstack/react-table","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@fluentui/react-tabster","kind":"import-statement","external":true},{"path":"@tanstack/react-table","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@tanstack/react-virtual","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@fluentui/react-tabster","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@tanstack/react-table","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-grid","kind":"import-statement","external":true},{"path":"@fluentui/react-tabster","kind":"import-statement","external":true},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"@tanstack/react-table","kind":"import-statement","external":true},{"path":"date-fns/format","kind":"import-statement","external":true},{"path":"date-fns/formatDistanceToNow","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-grid","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"exports":["CellCombobox","ColumnBuilder","ColumnMenu","ColumnSettings","MemoizedVirtualizedTableContent","SortIndicator","TABLE_NAME","Table","TablePrimitive","TableProvider","TableRootContext","createColumnBuilder","currentRow","flushPadding","gridCellFocusRing","groupTh","headPadding","schemaToColumnDefs","selectedRow","tableRoot","tbodyRoot","tbodyTr","tdRoot","textPadding","theadResizeRoot","theadRoot","theadTh","theadTr","translations","useColumnResizing","useColumnSorting","usePinLastRow","useRowSelection","useSortColumn","useTableContext","useTableRootContext"],"entryPoint":"packages/ui/react-ui-table/src/_deprecated/index.ts","inputs":{"packages/ui/react-ui-table/src/_deprecated/translations.ts":{"bytesInOutput":612},"packages/ui/react-ui-table/src/_deprecated/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-table/src/_deprecated/components/Cell/CellCombobox.tsx":{"bytesInOutput":2993},"packages/ui/react-ui-table/src/_deprecated/components/Cell/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-table/src/_deprecated/components/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-table/src/_deprecated/components/ColumnMenu/ColumnMenu.tsx":{"bytesInOutput":6108},"packages/ui/react-ui-table/src/_deprecated/components/ColumnMenu/ColumnSettings.tsx":{"bytesInOutput":5745},"packages/ui/react-ui-table/src/_deprecated/hooks/useColumnSizing.ts":{"bytesInOutput":1068},"packages/ui/react-ui-table/src/_deprecated/hooks/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-table/src/_deprecated/hooks/useColumnSorting.ts":{"bytesInOutput":1472},"packages/ui/react-ui-table/src/_deprecated/components/Table/TableContext.tsx":{"bytesInOutput":442},"packages/ui/react-ui-table/src/_deprecated/hooks/usePinLastRow.ts":{"bytesInOutput":961},"packages/ui/react-ui-table/src/_deprecated/hooks/useRowSelection.ts":{"bytesInOutput":1055},"packages/ui/react-ui-table/src/_deprecated/components/ColumnMenu/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-table/src/_deprecated/components/Table/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-table/src/_deprecated/components/Table/Table.tsx":{"bytesInOutput":7450},"packages/ui/react-ui-table/src/_deprecated/components/Table/TableBody.tsx":{"bytesInOutput":1994},"packages/ui/react-ui-table/src/_deprecated/components/Table/TableRootContext.ts":{"bytesInOutput":758},"packages/ui/react-ui-table/src/_deprecated/theme.ts":{"bytesInOutput":2144},"packages/ui/react-ui-table/src/_deprecated/components/Cell/Cell.tsx":{"bytesInOutput":2259},"packages/ui/react-ui-table/src/_deprecated/components/Table/TableHead.tsx":{"bytesInOutput":1851},"packages/ui/react-ui-table/src/_deprecated/helpers.tsx":{"bytesInOutput":13643},"packages/ui/react-ui-table/src/_deprecated/schema/column-utils.ts":{"bytesInOutput":1476},"packages/ui/react-ui-table/src/_deprecated/schema/index.ts":{"bytesInOutput":0}},"bytes":54263},"packages/ui/react-ui-table/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":91512},"packages/ui/react-ui-table/dist/lib/node/index.cjs":{"imports":[{"path":"packages/ui/react-ui-table/dist/lib/node/chunk-32IGMRME.cjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/react-ui-grid","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-data","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-ui-grid","kind":"import-statement","external":true},{"path":"@codemirror/autocomplete","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"@radix-ui/react-context","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"lodash.orderby","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui-data","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true}],"exports":["Table","TableType","Toolbar","fromGridCell","initializeTable","tableButtons","toGridCell","touch","translations","useTableModel","useToolbarContext"],"entryPoint":"packages/ui/react-ui-table/src/index.ts","inputs":{"packages/ui/react-ui-table/src/translations.ts":{"bytesInOutput":1024},"packages/ui/react-ui-table/src/components/Table/Table.tsx":{"bytesInOutput":4908},"packages/ui/react-ui-table/src/components/Table/ColumnActionsMenu.tsx":{"bytesInOutput":1880},"packages/ui/react-ui-table/src/components/Table/ColumnSettings.tsx":{"bytesInOutput":2279},"packages/ui/react-ui-table/src/components/Table/RowActionsMenu.tsx":{"bytesInOutput":1034},"packages/ui/react-ui-table/src/components/TableCellEditor/TableCellEditor.tsx":{"bytesInOutput":3486},"packages/ui/react-ui-table/src/components/TableCellEditor/extension.ts":{"bytesInOutput":1111},"packages/ui/react-ui-table/src/util/grid.ts":{"bytesInOutput":183},"packages/ui/react-ui-table/src/util/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-table/src/util/signals.ts":{"bytesInOutput":30},"packages/ui/react-ui-table/src/util/table.ts":{"bytesInOutput":1780},"packages/ui/react-ui-table/src/util/table-buttons.ts":{"bytesInOutput":1233},"packages/ui/react-ui-table/src/components/TableCellEditor/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-table/src/components/Table/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-table/src/components/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-table/src/components/Toolbar/Toolbar.tsx":{"bytesInOutput":1600},"packages/ui/react-ui-table/src/components/Toolbar/common.tsx":{"bytesInOutput":1091},"packages/ui/react-ui-table/src/components/Toolbar/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-table/src/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-table/src/hooks/useTableModel.ts":{"bytesInOutput":711},"packages/ui/react-ui-table/src/model/table-model.ts":{"bytesInOutput":15068},"packages/ui/react-ui-table/src/model/modal-controller.ts":{"bytesInOutput":1877},"packages/ui/react-ui-table/src/model/selection-model.ts":{"bytesInOutput":2303},"packages/ui/react-ui-table/src/util/table-controls.ts":{"bytesInOutput":604},"packages/ui/react-ui-table/src/model/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-table/src/hooks/index.ts":{"bytesInOutput":0}},"bytes":43924},"packages/ui/react-ui-table/dist/lib/node/types/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/ui/react-ui-table/dist/lib/node/types/index.cjs":{"imports":[{"path":"packages/ui/react-ui-table/dist/lib/node/chunk-32IGMRME.cjs","kind":"import-statement"}],"exports":["TableType"],"entryPoint":"packages/ui/react-ui-table/src/types/index.ts","inputs":{},"bytes":112},"packages/ui/react-ui-table/dist/lib/node/chunk-32IGMRME.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1074},"packages/ui/react-ui-table/dist/lib/node/chunk-32IGMRME.cjs":{"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"exports":["TableType"],"inputs":{"packages/ui/react-ui-table/src/types/table.ts":{"bytesInOutput":382},"packages/ui/react-ui-table/src/types/index.ts":{"bytesInOutput":0}},"bytes":500}}}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var types_exports = {};
20
+ __export(types_exports, {
21
+ TableType: () => import_chunk_32IGMRME.TableType
22
+ });
23
+ module.exports = __toCommonJS(types_exports);
24
+ var import_chunk_32IGMRME = require("../chunk-32IGMRME.cjs");
25
+ // Annotate the CommonJS export names for ESM import in node:
26
+ 0 && (module.exports = {
27
+ TableType
28
+ });
29
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["index.cjs"],
4
+ "sourcesContent": ["import {\n TableType\n} from \"../chunk-32IGMRME.cjs\";\nexport {\n TableType\n};\n//# sourceMappingURL=index.cjs.map\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAEO;",
6
+ "names": []
7
+ }