@dxos/react-ui-table 0.8.3-staging.0fa589b → 0.8.4-main.1da679c

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 (148) hide show
  1. package/dist/lib/browser/chunk-63UUF4IG.mjs +66 -0
  2. package/dist/lib/browser/chunk-63UUF4IG.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-BBXDTWCX.mjs +1822 -0
  4. package/dist/lib/browser/chunk-BBXDTWCX.mjs.map +7 -0
  5. package/dist/lib/browser/index.mjs +816 -2152
  6. package/dist/lib/browser/index.mjs.map +4 -4
  7. package/dist/lib/browser/meta.json +1 -1
  8. package/dist/lib/browser/testing/index.mjs +124 -0
  9. package/dist/lib/browser/testing/index.mjs.map +7 -0
  10. package/dist/lib/browser/types/index.mjs +3 -5
  11. package/dist/lib/node-esm/chunk-K734DJB7.mjs +67 -0
  12. package/dist/lib/node-esm/chunk-K734DJB7.mjs.map +7 -0
  13. package/dist/lib/node-esm/chunk-RNQDU7IQ.mjs +1823 -0
  14. package/dist/lib/node-esm/chunk-RNQDU7IQ.mjs.map +7 -0
  15. package/dist/lib/node-esm/index.mjs +816 -2152
  16. package/dist/lib/node-esm/index.mjs.map +4 -4
  17. package/dist/lib/node-esm/meta.json +1 -1
  18. package/dist/lib/node-esm/testing/index.mjs +125 -0
  19. package/dist/lib/node-esm/testing/index.mjs.map +7 -0
  20. package/dist/lib/node-esm/types/index.mjs +3 -5
  21. package/dist/types/src/components/Table/ColumnActionsMenu.d.ts +1 -1
  22. package/dist/types/src/components/Table/ColumnActionsMenu.d.ts.map +1 -1
  23. package/dist/types/src/components/Table/ColumnSettings.d.ts +4 -2
  24. package/dist/types/src/components/Table/ColumnSettings.d.ts.map +1 -1
  25. package/dist/types/src/components/Table/CreateRefPanel.d.ts +1 -1
  26. package/dist/types/src/components/Table/CreateRefPanel.d.ts.map +1 -1
  27. package/dist/types/src/components/Table/DynamicTable.d.ts +1 -1
  28. package/dist/types/src/components/Table/DynamicTable.d.ts.map +1 -1
  29. package/dist/types/src/components/Table/DynamicTable.stories.d.ts +50 -2
  30. package/dist/types/src/components/Table/DynamicTable.stories.d.ts.map +1 -1
  31. package/dist/types/src/components/Table/Relations.stories.d.ts +44 -0
  32. package/dist/types/src/components/Table/Relations.stories.d.ts.map +1 -0
  33. package/dist/types/src/components/Table/RowActionsMenu.d.ts +1 -1
  34. package/dist/types/src/components/Table/RowActionsMenu.d.ts.map +1 -1
  35. package/dist/types/src/components/Table/Table.d.ts +3 -2
  36. package/dist/types/src/components/Table/Table.d.ts.map +1 -1
  37. package/dist/types/src/components/Table/Table.stories.d.ts +42 -3
  38. package/dist/types/src/components/Table/Table.stories.d.ts.map +1 -1
  39. package/dist/types/src/components/TableCellEditor/CellValidationMessage.d.ts +2 -1
  40. package/dist/types/src/components/TableCellEditor/CellValidationMessage.d.ts.map +1 -1
  41. package/dist/types/src/components/TableCellEditor/FormCellEditor.d.ts +8 -3
  42. package/dist/types/src/components/TableCellEditor/FormCellEditor.d.ts.map +1 -1
  43. package/dist/types/src/components/TableCellEditor/TableCellEditor.d.ts +9 -15
  44. package/dist/types/src/components/TableCellEditor/TableCellEditor.d.ts.map +1 -1
  45. package/dist/types/src/components/TableCellEditor/TableCellEditor.stories.d.ts +39 -3
  46. package/dist/types/src/components/TableCellEditor/TableCellEditor.stories.d.ts.map +1 -1
  47. package/dist/types/src/components/TableToolbar/TableToolbar.d.ts.map +1 -1
  48. package/dist/types/src/components/testing.d.ts +3 -40
  49. package/dist/types/src/components/testing.d.ts.map +1 -1
  50. package/dist/types/src/hooks/index.d.ts +1 -0
  51. package/dist/types/src/hooks/index.d.ts.map +1 -1
  52. package/dist/types/src/hooks/useAddRow.d.ts +14 -0
  53. package/dist/types/src/hooks/useAddRow.d.ts.map +1 -0
  54. package/dist/types/src/hooks/useTableModel.d.ts +8 -7
  55. package/dist/types/src/hooks/useTableModel.d.ts.map +1 -1
  56. package/dist/types/src/index.d.ts +1 -2
  57. package/dist/types/src/index.d.ts.map +1 -1
  58. package/dist/types/src/model/modal-controller.d.ts.map +1 -1
  59. package/dist/types/src/model/selection-model.d.ts +2 -1
  60. package/dist/types/src/model/selection-model.d.ts.map +1 -1
  61. package/dist/types/src/model/table-model.d.ts +59 -21
  62. package/dist/types/src/model/table-model.d.ts.map +1 -1
  63. package/dist/types/src/model/table-presentation.d.ts +10 -1
  64. package/dist/types/src/model/table-presentation.d.ts.map +1 -1
  65. package/dist/types/src/model/table-sorting.d.ts +3 -4
  66. package/dist/types/src/model/table-sorting.d.ts.map +1 -1
  67. package/dist/types/src/playwright/playwright.config.d.ts +3 -0
  68. package/dist/types/src/playwright/playwright.config.d.ts.map +1 -0
  69. package/dist/types/src/testing/index.d.ts +2 -0
  70. package/dist/types/src/testing/index.d.ts.map +1 -0
  71. package/dist/types/src/testing/useTestTableModel.d.ts +22 -0
  72. package/dist/types/src/testing/useTestTableModel.d.ts.map +1 -0
  73. package/dist/types/src/translations.d.ts +5 -6
  74. package/dist/types/src/translations.d.ts.map +1 -1
  75. package/dist/types/src/types/index.d.ts +1 -1
  76. package/dist/types/src/types/index.d.ts.map +1 -1
  77. package/dist/types/src/types/schema.d.ts +28 -0
  78. package/dist/types/src/types/schema.d.ts.map +1 -0
  79. package/dist/types/src/util/dynamic-table.d.ts +4 -5
  80. package/dist/types/src/util/dynamic-table.d.ts.map +1 -1
  81. package/dist/types/src/util/index.d.ts +0 -1
  82. package/dist/types/src/util/index.d.ts.map +1 -1
  83. package/dist/types/src/util/table-buttons.d.ts +15 -1
  84. package/dist/types/src/util/table-buttons.d.ts.map +1 -1
  85. package/dist/types/src/util/table-controls.d.ts.map +1 -1
  86. package/dist/types/tsconfig.tsbuildinfo +1 -1
  87. package/package.json +57 -44
  88. package/src/components/Table/ColumnActionsMenu.tsx +1 -1
  89. package/src/components/Table/ColumnSettings.tsx +15 -11
  90. package/src/components/Table/CreateRefPanel.tsx +30 -11
  91. package/src/components/Table/DynamicTable.stories.tsx +8 -5
  92. package/src/components/Table/DynamicTable.tsx +17 -10
  93. package/src/components/Table/{relations.stories.tsx → Relations.stories.tsx} +56 -47
  94. package/src/components/Table/RowActionsMenu.tsx +3 -3
  95. package/src/components/Table/Table.stories.tsx +126 -159
  96. package/src/components/Table/Table.tsx +169 -123
  97. package/src/components/TableCellEditor/CellValidationMessage.tsx +7 -2
  98. package/src/components/TableCellEditor/FormCellEditor.tsx +158 -48
  99. package/src/components/TableCellEditor/TableCellEditor.stories.tsx +31 -47
  100. package/src/components/TableCellEditor/TableCellEditor.tsx +106 -111
  101. package/src/components/TableToolbar/TableToolbar.tsx +2 -2
  102. package/src/components/testing.ts +7 -24
  103. package/src/hooks/index.ts +1 -0
  104. package/src/hooks/useAddRow.ts +38 -0
  105. package/src/hooks/useTableModel.ts +21 -17
  106. package/src/index.ts +1 -2
  107. package/src/model/modal-controller.ts +1 -1
  108. package/src/model/selection-model.ts +6 -3
  109. package/src/model/table-model.test.ts +12 -9
  110. package/src/model/table-model.ts +288 -88
  111. package/src/model/table-presentation.test.ts +12 -8
  112. package/src/model/table-presentation.ts +263 -138
  113. package/src/model/table-sorting.ts +22 -13
  114. package/src/playwright/playwright.config.ts +17 -0
  115. package/src/playwright/smoke.spec.ts +137 -44
  116. package/src/testing/index.ts +5 -0
  117. package/src/testing/useTestTableModel.ts +124 -0
  118. package/src/translations.ts +7 -5
  119. package/src/types/index.ts +2 -2
  120. package/src/types/schema.ts +73 -0
  121. package/src/util/dynamic-table.ts +24 -21
  122. package/src/util/index.ts +0 -1
  123. package/src/util/schema.ts +1 -1
  124. package/src/util/table-buttons.ts +28 -4
  125. package/src/util/table-controls.ts +4 -1
  126. package/dist/lib/browser/chunk-TL7CKQQV.mjs +0 -27
  127. package/dist/lib/browser/chunk-TL7CKQQV.mjs.map +0 -7
  128. package/dist/lib/node/chunk-O2VPBNS5.cjs +0 -50
  129. package/dist/lib/node/chunk-O2VPBNS5.cjs.map +0 -7
  130. package/dist/lib/node/index.cjs +0 -2739
  131. package/dist/lib/node/index.cjs.map +0 -7
  132. package/dist/lib/node/meta.json +0 -1
  133. package/dist/lib/node/types/index.cjs +0 -31
  134. package/dist/lib/node/types/index.cjs.map +0 -7
  135. package/dist/lib/node-esm/chunk-GBT6GD4G.mjs +0 -29
  136. package/dist/lib/node-esm/chunk-GBT6GD4G.mjs.map +0 -7
  137. package/dist/types/src/components/Table/relations.stories.d.ts +0 -9
  138. package/dist/types/src/components/Table/relations.stories.d.ts.map +0 -1
  139. package/dist/types/src/components/TableCellEditor/extension.d.ts +0 -13
  140. package/dist/types/src/components/TableCellEditor/extension.d.ts.map +0 -1
  141. package/dist/types/src/types/table.d.ts +0 -56
  142. package/dist/types/src/types/table.d.ts.map +0 -1
  143. package/dist/types/src/util/table.d.ts +0 -14
  144. package/dist/types/src/util/table.d.ts.map +0 -1
  145. package/src/components/TableCellEditor/extension.ts +0 -61
  146. package/src/playwright/playwright.config.cts +0 -18
  147. package/src/types/table.ts +0 -27
  148. package/src/util/table.ts +0 -127
@@ -1 +1 @@
1
- {"inputs":{"packages/ui/react-ui-table/src/translations.ts":{"bytes":3874,"imports":[],"format":"esm"},"packages/ui/react-ui-table/src/components/Table/ColumnActionsMenu.tsx":{"bytes":8704,"imports":[{"path":"@preact-signals/safe-react/tracking","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/translations.ts","kind":"import-statement","original":"../../translations"}],"format":"esm"},"packages/ui/react-ui-table/src/components/Table/ColumnSettings.tsx":{"bytes":9111,"imports":[{"path":"@preact-signals/safe-react/tracking","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-form","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-table/src/components/Table/CreateRefPanel.tsx":{"bytes":9680,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"effect","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-form","kind":"import-statement","external":true},{"path":"@dxos/react-ui-grid","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-table/src/components/Table/RowActionsMenu.tsx":{"bytes":6172,"imports":[{"path":"@preact-signals/safe-react/tracking","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/translations.ts","kind":"import-statement","original":"../../translations"}],"format":"esm"},"packages/ui/react-ui-table/src/types/table.ts":{"bytes":3173,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","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":465,"imports":[{"path":"packages/ui/react-ui-table/src/types/table.ts","kind":"import-statement","original":"./table"}],"format":"esm"},"packages/ui/react-ui-table/src/util/dynamic-table.ts":{"bytes":9648,"imports":[{"path":"@dxos/echo","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/types/index.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/ui/react-ui-table/src/util/signals.ts":{"bytes":879,"imports":[],"format":"esm"},"packages/ui/react-ui-table/src/util/table.ts":{"bytes":11612,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","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":12236,"imports":[],"format":"esm"},"packages/ui/react-ui-table/src/util/table-controls.ts":{"bytes":8758,"imports":[],"format":"esm"},"packages/ui/react-ui-table/src/util/schema.ts":{"bytes":4020,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"effect/SchemaAST","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-table/src/util/index.ts":{"bytes":945,"imports":[{"path":"packages/ui/react-ui-table/src/util/dynamic-table.ts","kind":"import-statement","original":"./dynamic-table"},{"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"},{"path":"packages/ui/react-ui-table/src/util/table-controls.ts","kind":"import-statement","original":"./table-controls"},{"path":"packages/ui/react-ui-table/src/util/schema.ts","kind":"import-statement","original":"./schema"}],"format":"esm"},"packages/ui/react-ui-table/src/model/selection-model.ts":{"bytes":11816,"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/model/table-sorting.ts":{"bytes":23070,"imports":[{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"lodash.orderby","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-table/src/util/tag.ts":{"bytes":2855,"imports":[],"format":"esm"},"packages/ui/react-ui-table/src/model/table-model.ts":{"bytes":49415,"imports":[{"path":"@preact/signals-core","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/live-object","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-table/src/model/selection-model.ts","kind":"import-statement","original":"./selection-model"},{"path":"packages/ui/react-ui-table/src/model/table-sorting.ts","kind":"import-statement","original":"./table-sorting"},{"path":"packages/ui/react-ui-table/src/util/index.ts","kind":"import-statement","original":"../util"},{"path":"packages/ui/react-ui-table/src/util/tag.ts","kind":"import-statement","original":"../util/tag"}],"format":"esm"},"packages/ui/react-ui-table/src/model/modal-controller.ts":{"bytes":8327,"imports":[{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-table/src/model/table-presentation.ts":{"bytes":43266,"imports":[{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"effect/Predicate","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","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/schema","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/index.ts":{"bytes":781,"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"},{"path":"packages/ui/react-ui-table/src/model/table-presentation.ts","kind":"import-statement","original":"./table-presentation"}],"format":"esm"},"packages/ui/react-ui-table/src/components/TableCellEditor/CellValidationMessage.tsx":{"bytes":3686,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-grid","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-table/src/components/TableCellEditor/FormCellEditor.tsx":{"bytes":10777,"imports":[{"path":"@preact-signals/safe-react/tracking","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","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/react-ui-grid","kind":"import-statement","external":true},{"path":"@dxos/util","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/components/TableCellEditor/extension.ts":{"bytes":5454,"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/components/TableCellEditor/TableCellEditor.tsx":{"bytes":39198,"imports":[{"path":"@preact-signals/safe-react/tracking","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","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-grid","kind":"import-statement","external":true},{"path":"@dxos/react-ui-tag-picker","kind":"import-statement","external":true},{"path":"packages/ui/react-ui-table/src/components/TableCellEditor/CellValidationMessage.tsx","kind":"import-statement","original":"./CellValidationMessage"},{"path":"packages/ui/react-ui-table/src/components/TableCellEditor/FormCellEditor.tsx","kind":"import-statement","original":"./FormCellEditor"},{"path":"packages/ui/react-ui-table/src/components/TableCellEditor/extension.ts","kind":"import-statement","original":"./extension"}],"format":"esm"},"packages/ui/react-ui-table/src/components/TableCellEditor/index.ts":{"bytes":512,"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":40877,"imports":[{"path":"@preact-signals/safe-react/tracking","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-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","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/CreateRefPanel.tsx","kind":"import-statement","original":"./CreateRefPanel"},{"path":"packages/ui/react-ui-table/src/components/Table/RowActionsMenu.tsx","kind":"import-statement","original":"./RowActionsMenu"},{"path":"packages/ui/react-ui-table/src/model/index.ts","kind":"import-statement","original":"../../model"},{"path":"packages/ui/react-ui-table/src/translations.ts","kind":"import-statement","original":"../../translations"},{"path":"packages/ui/react-ui-table/src/util/index.ts","kind":"import-statement","original":"../../util"},{"path":"packages/ui/react-ui-table/src/components/TableCellEditor/index.ts","kind":"import-statement","original":"../TableCellEditor"}],"format":"esm"},"packages/ui/react-ui-table/src/hooks/useTableModel.ts":{"bytes":9818,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"lodash.orderby","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-attention","kind":"import-statement","external":true},{"path":"@dxos/util","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":489,"imports":[{"path":"packages/ui/react-ui-table/src/hooks/useTableModel.ts","kind":"import-statement","original":"./useTableModel"}],"format":"esm"},"packages/ui/react-ui-table/src/components/Table/DynamicTable.tsx":{"bytes":10300,"imports":[{"path":"@preact-signals/safe-react/tracking","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/components/Table/Table.tsx","kind":"import-statement","original":"./Table"},{"path":"packages/ui/react-ui-table/src/hooks/index.ts","kind":"import-statement","original":"../../hooks"},{"path":"packages/ui/react-ui-table/src/model/index.ts","kind":"import-statement","original":"../../model"},{"path":"packages/ui/react-ui-table/src/util/index.ts","kind":"import-statement","original":"../../util"}],"format":"esm"},"packages/ui/react-ui-table/src/components/Table/index.ts":{"bytes":576,"imports":[{"path":"packages/ui/react-ui-table/src/components/Table/Table.tsx","kind":"import-statement","original":"./Table"},{"path":"packages/ui/react-ui-table/src/components/Table/DynamicTable.tsx","kind":"import-statement","original":"./DynamicTable"}],"format":"esm"},"packages/ui/react-ui-table/src/components/TableToolbar/TableToolbar.tsx":{"bytes":9265,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","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/TableToolbar/index.ts":{"bytes":502,"imports":[{"path":"packages/ui/react-ui-table/src/components/TableToolbar/TableToolbar.tsx","kind":"import-statement","original":"./TableToolbar"}],"format":"esm"},"packages/ui/react-ui-table/src/components/index.ts":{"bytes":570,"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/TableToolbar/index.ts","kind":"import-statement","original":"./TableToolbar"}],"format":"esm"},"packages/ui/react-ui-table/src/index.ts":{"bytes":1043,"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/model/index.ts","kind":"import-statement","original":"./model"},{"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/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":175714},"packages/ui/react-ui-table/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/ui/react-ui-table/dist/lib/browser/chunk-TL7CKQQV.mjs","kind":"import-statement"},{"path":"@preact-signals/safe-react/tracking","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-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","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":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","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-form","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"effect","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-form","kind":"import-statement","external":true},{"path":"@dxos/react-ui-grid","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@preact/signals-core","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/live-object","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","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":"effect","kind":"import-statement","external":true},{"path":"effect/SchemaAST","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"lodash.orderby","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"effect/Predicate","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","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/schema","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","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","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-grid","kind":"import-statement","external":true},{"path":"@dxos/react-ui-tag-picker","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-grid","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","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","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/react-ui-grid","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@codemirror/autocomplete","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","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":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"lodash.orderby","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-attention","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","kind":"import-statement","external":true}],"exports":["BUTTON_IDENTIFIERS","CONTROL_IDENTIFIERS","CheckboxStory","DynamicTable","ModalController","SwitchStory","Table","TableModel","TablePresentation","TableSchema","TableToolbar","TableType","cellClassesForRowSelection","getBaseSchema","initializeTable","makeDynamicTable","narrowSchema","tableButtons","tableControls","touch","translations","useTableModel"],"entryPoint":"packages/ui/react-ui-table/src/index.ts","inputs":{"packages/ui/react-ui-table/src/translations.ts":{"bytesInOutput":1158},"packages/ui/react-ui-table/src/components/Table/Table.tsx":{"bytesInOutput":9863},"packages/ui/react-ui-table/src/components/Table/ColumnActionsMenu.tsx":{"bytesInOutput":2315},"packages/ui/react-ui-table/src/components/Table/ColumnSettings.tsx":{"bytesInOutput":2435},"packages/ui/react-ui-table/src/components/Table/CreateRefPanel.tsx":{"bytesInOutput":2582},"packages/ui/react-ui-table/src/components/Table/RowActionsMenu.tsx":{"bytesInOutput":1576},"packages/ui/react-ui-table/src/model/table-model.ts":{"bytesInOutput":11503},"packages/ui/react-ui-table/src/model/selection-model.ts":{"bytesInOutput":2579},"packages/ui/react-ui-table/src/util/dynamic-table.ts":{"bytesInOutput":2052},"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":2618},"packages/ui/react-ui-table/src/util/table-buttons.ts":{"bytesInOutput":2903},"packages/ui/react-ui-table/src/util/table-controls.ts":{"bytesInOutput":1905},"packages/ui/react-ui-table/src/util/schema.ts":{"bytesInOutput":498},"packages/ui/react-ui-table/src/model/table-sorting.ts":{"bytesInOutput":4459},"packages/ui/react-ui-table/src/util/tag.ts":{"bytesInOutput":334},"packages/ui/react-ui-table/src/model/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-table/src/model/modal-controller.ts":{"bytesInOutput":2085},"packages/ui/react-ui-table/src/model/table-presentation.ts":{"bytesInOutput":10501},"packages/ui/react-ui-table/src/components/TableCellEditor/TableCellEditor.tsx":{"bytesInOutput":10093},"packages/ui/react-ui-table/src/components/TableCellEditor/CellValidationMessage.tsx":{"bytesInOutput":956},"packages/ui/react-ui-table/src/components/TableCellEditor/FormCellEditor.tsx":{"bytesInOutput":3102},"packages/ui/react-ui-table/src/components/TableCellEditor/extension.ts":{"bytesInOutput":1145},"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/Table/DynamicTable.tsx":{"bytesInOutput":2101},"packages/ui/react-ui-table/src/hooks/useTableModel.ts":{"bytesInOutput":2152},"packages/ui/react-ui-table/src/hooks/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-table/src/components/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-table/src/components/TableToolbar/TableToolbar.tsx":{"bytesInOutput":2088},"packages/ui/react-ui-table/src/components/TableToolbar/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-table/src/index.ts":{"bytesInOutput":0}},"bytes":85472},"packages/ui/react-ui-table/dist/lib/browser/types/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/ui/react-ui-table/dist/lib/browser/types/index.mjs":{"imports":[{"path":"packages/ui/react-ui-table/dist/lib/browser/chunk-TL7CKQQV.mjs","kind":"import-statement"}],"exports":["TableSchema","TableType"],"entryPoint":"packages/ui/react-ui-table/src/types/index.ts","inputs":{},"bytes":142},"packages/ui/react-ui-table/dist/lib/browser/chunk-TL7CKQQV.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1689},"packages/ui/react-ui-table/dist/lib/browser/chunk-TL7CKQQV.mjs":{"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"exports":["TableSchema","TableType"],"inputs":{"packages/ui/react-ui-table/src/types/table.ts":{"bytesInOutput":605},"packages/ui/react-ui-table/src/types/index.ts":{"bytesInOutput":0}},"bytes":738}}}
1
+ {"inputs":{"src/translations.ts":{"bytes":4073,"imports":[],"format":"esm"},"src/types/schema.ts":{"bytes":7254,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","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}],"format":"esm"},"src/types/index.ts":{"bytes":506,"imports":[{"path":"src/types/schema.ts","kind":"import-statement","original":"./schema"}],"format":"esm"},"src/util/dynamic-table.ts":{"bytes":9954,"imports":[{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"src/util/signals.ts":{"bytes":866,"imports":[],"format":"esm"},"src/util/table-buttons.ts":{"bytes":14540,"imports":[],"format":"esm"},"src/util/table-controls.ts":{"bytes":9201,"imports":[{"path":"@dxos/lit-grid","kind":"import-statement","external":true}],"format":"esm"},"src/util/schema.ts":{"bytes":4007,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"effect/SchemaAST","kind":"import-statement","external":true}],"format":"esm"},"src/util/index.ts":{"bytes":851,"imports":[{"path":"src/util/dynamic-table.ts","kind":"import-statement","original":"./dynamic-table"},{"path":"src/util/signals.ts","kind":"import-statement","original":"./signals"},{"path":"src/util/table-buttons.ts","kind":"import-statement","original":"./table-buttons"},{"path":"src/util/table-controls.ts","kind":"import-statement","original":"./table-controls"},{"path":"src/util/schema.ts","kind":"import-statement","original":"./schema"}],"format":"esm"},"src/util/tag.ts":{"bytes":2842,"imports":[],"format":"esm"},"src/model/selection-model.ts":{"bytes":13092,"imports":[{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"src/util/index.ts","kind":"import-statement","original":"../util"}],"format":"esm"},"src/model/table-sorting.ts":{"bytes":23534,"imports":[{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"lodash.orderby","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true}],"format":"esm"},"src/model/table-model.ts":{"bytes":73115,"imports":[{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"src/types/index.ts","kind":"import-statement","original":"../types"},{"path":"src/util/index.ts","kind":"import-statement","original":"../util"},{"path":"src/util/tag.ts","kind":"import-statement","original":"../util/tag"},{"path":"src/model/selection-model.ts","kind":"import-statement","original":"./selection-model"},{"path":"src/model/table-sorting.ts","kind":"import-statement","original":"./table-sorting"}],"format":"esm"},"src/model/modal-controller.ts":{"bytes":9240,"imports":[{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/model/table-presentation.ts":{"bytes":56847,"imports":[{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"effect/Predicate","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","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/schema","kind":"import-statement","external":true},{"path":"src/util/index.ts","kind":"import-statement","original":"../util"}],"format":"esm"},"src/model/index.ts":{"bytes":768,"imports":[{"path":"src/model/table-model.ts","kind":"import-statement","original":"./table-model"},{"path":"src/model/modal-controller.ts","kind":"import-statement","original":"./modal-controller"},{"path":"src/model/table-presentation.ts","kind":"import-statement","original":"./table-presentation"}],"format":"esm"},"src/components/TableCellEditor/CellValidationMessage.tsx":{"bytes":4390,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-grid","kind":"import-statement","external":true}],"format":"esm"},"src/components/TableCellEditor/FormCellEditor.tsx":{"bytes":23831,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","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-form","kind":"import-statement","external":true},{"path":"@dxos/react-ui-grid","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/translations.ts","kind":"import-statement","original":"../../translations"},{"path":"src/util/index.ts","kind":"import-statement","original":"../../util"}],"format":"esm"},"src/components/TableCellEditor/TableCellEditor.tsx":{"bytes":39351,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/async","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-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-grid","kind":"import-statement","external":true},{"path":"@dxos/react-ui-tag-picker","kind":"import-statement","external":true},{"path":"src/components/TableCellEditor/CellValidationMessage.tsx","kind":"import-statement","original":"./CellValidationMessage"},{"path":"src/components/TableCellEditor/FormCellEditor.tsx","kind":"import-statement","original":"./FormCellEditor"}],"format":"esm"},"src/components/TableCellEditor/index.ts":{"bytes":499,"imports":[{"path":"src/components/TableCellEditor/TableCellEditor.tsx","kind":"import-statement","original":"./TableCellEditor"}],"format":"esm"},"src/components/Table/ColumnActionsMenu.tsx":{"bytes":8691,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"src/translations.ts","kind":"import-statement","original":"../../translations"}],"format":"esm"},"src/components/Table/ColumnSettings.tsx":{"bytes":8958,"imports":[{"path":"@preact-signals/safe-react/tracking","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-form","kind":"import-statement","external":true}],"format":"esm"},"src/components/Table/CreateRefPanel.tsx":{"bytes":11370,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/live-object","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/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/react-ui-grid","kind":"import-statement","external":true}],"format":"esm"},"src/components/Table/RowActionsMenu.tsx":{"bytes":6292,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"src/translations.ts","kind":"import-statement","original":"../../translations"}],"format":"esm"},"src/components/Table/Table.tsx":{"bytes":49421,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"effect/String","kind":"import-statement","external":true},{"path":"react","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-grid","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"src/model/index.ts","kind":"import-statement","original":"../../model"},{"path":"src/util/index.ts","kind":"import-statement","original":"../../util"},{"path":"src/components/TableCellEditor/index.ts","kind":"import-statement","original":"../TableCellEditor"},{"path":"src/components/Table/ColumnActionsMenu.tsx","kind":"import-statement","original":"./ColumnActionsMenu"},{"path":"src/components/Table/ColumnSettings.tsx","kind":"import-statement","original":"./ColumnSettings"},{"path":"src/components/Table/CreateRefPanel.tsx","kind":"import-statement","original":"./CreateRefPanel"},{"path":"src/components/Table/RowActionsMenu.tsx","kind":"import-statement","original":"./RowActionsMenu"}],"format":"esm"},"src/hooks/useTableModel.ts":{"bytes":10156,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"lodash.orderby","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-attention","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/model/index.ts","kind":"import-statement","original":"../model"}],"format":"esm"},"src/hooks/useAddRow.ts":{"bytes":3047,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true}],"format":"esm"},"src/hooks/index.ts":{"bytes":565,"imports":[{"path":"src/hooks/useTableModel.ts","kind":"import-statement","original":"./useTableModel"},{"path":"src/hooks/useAddRow.ts","kind":"import-statement","original":"./useAddRow"}],"format":"esm"},"src/components/Table/DynamicTable.tsx":{"bytes":10758,"imports":[{"path":"@preact-signals/safe-react/tracking","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":"src/hooks/index.ts","kind":"import-statement","original":"../../hooks"},{"path":"src/model/index.ts","kind":"import-statement","original":"../../model"},{"path":"src/util/index.ts","kind":"import-statement","original":"../../util"},{"path":"src/components/Table/Table.tsx","kind":"import-statement","original":"./Table"}],"format":"esm"},"src/components/Table/index.ts":{"bytes":563,"imports":[{"path":"src/components/Table/Table.tsx","kind":"import-statement","original":"./Table"},{"path":"src/components/Table/DynamicTable.tsx","kind":"import-statement","original":"./DynamicTable"}],"format":"esm"},"src/components/TableToolbar/TableToolbar.tsx":{"bytes":9252,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","kind":"import-statement","external":true},{"path":"src/translations.ts","kind":"import-statement","original":"../../translations"}],"format":"esm"},"src/components/TableToolbar/index.ts":{"bytes":489,"imports":[{"path":"src/components/TableToolbar/TableToolbar.tsx","kind":"import-statement","original":"./TableToolbar"}],"format":"esm"},"src/components/index.ts":{"bytes":557,"imports":[{"path":"src/components/Table/index.ts","kind":"import-statement","original":"./Table"},{"path":"src/components/TableToolbar/index.ts","kind":"import-statement","original":"./TableToolbar"}],"format":"esm"},"src/index.ts":{"bytes":961,"imports":[{"path":"src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"src/hooks/index.ts","kind":"import-statement","original":"./hooks"},{"path":"src/model/index.ts","kind":"import-statement","original":"./model"},{"path":"src/util/index.ts","kind":"import-statement","original":"./util"}],"format":"esm"},"src/testing/useTestTableModel.ts":{"bytes":12840,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-search","kind":"import-statement","external":true},{"path":"@dxos/random","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/react-client/testing","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"src/hooks/index.ts","kind":"import-statement","original":"../hooks"},{"path":"src/model/index.ts","kind":"import-statement","original":"../model"}],"format":"esm"},"src/testing/index.ts":{"bytes":486,"imports":[{"path":"src/testing/useTestTableModel.ts","kind":"import-statement","original":"./useTestTableModel"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":88382},"dist/lib/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-BBXDTWCX.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-63UUF4IG.mjs","kind":"import-statement"},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"effect/String","kind":"import-statement","external":true},{"path":"react","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-grid","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/async","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-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-grid","kind":"import-statement","external":true},{"path":"@dxos/react-ui-tag-picker","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-grid","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","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-form","kind":"import-statement","external":true},{"path":"@dxos/react-ui-grid","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","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-form","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/live-object","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/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/react-ui-grid","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","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":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","kind":"import-statement","external":true},{"path":"@dxos/react-ui-menu","kind":"import-statement","external":true}],"exports":["BUTTON_IDENTIFIERS","CONTROL_IDENTIFIERS","CheckboxStory","DynamicTable","ModalController","SwitchStory","Table","TableModel","TablePresentation","TableToolbar","cellClassesForRowSelection","getBaseSchema","makeDynamicTable","narrowSchema","tableButtons","tableControls","touch","translations","useAddRow","useTableModel"],"entryPoint":"src/index.ts","inputs":{"src/translations.ts":{"bytesInOutput":1169},"src/components/Table/Table.tsx":{"bytesInOutput":11728},"src/components/TableCellEditor/TableCellEditor.tsx":{"bytesInOutput":10207},"src/components/TableCellEditor/CellValidationMessage.tsx":{"bytesInOutput":1117},"src/components/TableCellEditor/FormCellEditor.tsx":{"bytesInOutput":6418},"src/components/TableCellEditor/index.ts":{"bytesInOutput":0},"src/components/Table/ColumnActionsMenu.tsx":{"bytesInOutput":2329},"src/components/Table/ColumnSettings.tsx":{"bytesInOutput":2437},"src/components/Table/CreateRefPanel.tsx":{"bytesInOutput":3066},"src/components/Table/RowActionsMenu.tsx":{"bytesInOutput":1605},"src/components/Table/index.ts":{"bytesInOutput":0},"src/components/Table/DynamicTable.tsx":{"bytesInOutput":2221},"src/components/index.ts":{"bytesInOutput":0},"src/components/TableToolbar/TableToolbar.tsx":{"bytesInOutput":2088},"src/components/TableToolbar/index.ts":{"bytesInOutput":0},"src/index.ts":{"bytesInOutput":0}},"bytes":45719},"dist/lib/browser/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6934},"dist/lib/browser/testing/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-BBXDTWCX.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-63UUF4IG.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-search","kind":"import-statement","external":true},{"path":"@dxos/random","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/react-client/testing","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true}],"exports":["useTestTableModel"],"entryPoint":"src/testing/index.ts","inputs":{"src/testing/useTestTableModel.ts":{"bytesInOutput":3017},"src/testing/index.ts":{"bytesInOutput":0}},"bytes":3244},"dist/lib/browser/chunk-BBXDTWCX.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":112759},"dist/lib/browser/chunk-BBXDTWCX.mjs":{"imports":[{"path":"dist/lib/browser/chunk-63UUF4IG.mjs","kind":"import-statement"},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@dxos/lit-grid","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"effect/SchemaAST","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@dxos/schema","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"lodash.orderby","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"effect/Predicate","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","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/schema","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"lodash.orderby","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-attention","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true}],"exports":["BUTTON_IDENTIFIERS","CONTROL_IDENTIFIERS","CheckboxStory","ModalController","SwitchStory","TableModel","TablePresentation","cellClassesForRowSelection","getBaseSchema","makeDynamicTable","narrowSchema","tableButtons","tableControls","touch","useAddRow","useTableModel"],"inputs":{"src/util/dynamic-table.ts":{"bytesInOutput":2116},"src/util/signals.ts":{"bytesInOutput":30},"src/util/table-buttons.ts":{"bytesInOutput":3500},"src/util/table-controls.ts":{"bytesInOutput":2045},"src/util/schema.ts":{"bytesInOutput":486},"src/util/index.ts":{"bytesInOutput":0},"src/model/table-model.ts":{"bytesInOutput":18712},"src/util/tag.ts":{"bytesInOutput":334},"src/model/selection-model.ts":{"bytesInOutput":3596},"src/model/table-sorting.ts":{"bytesInOutput":4966},"src/model/modal-controller.ts":{"bytesInOutput":2531},"src/model/table-presentation.ts":{"bytesInOutput":14203},"src/model/index.ts":{"bytesInOutput":0},"src/hooks/useTableModel.ts":{"bytesInOutput":2224},"src/hooks/useAddRow.ts":{"bytesInOutput":389},"src/hooks/index.ts":{"bytesInOutput":0}},"bytes":55939},"dist/lib/browser/types/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/types/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-63UUF4IG.mjs","kind":"import-statement"}],"exports":["Table"],"entryPoint":"src/types/index.ts","inputs":{},"bytes":131},"dist/lib/browser/chunk-63UUF4IG.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4065},"dist/lib/browser/chunk-63UUF4IG.mjs":{"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo","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":["schema_exports"],"inputs":{"src/types/schema.ts":{"bytesInOutput":1560},"src/types/index.ts":{"bytesInOutput":0}},"bytes":1825}}}
@@ -0,0 +1,124 @@
1
+ import {
2
+ TablePresentation,
3
+ useAddRow,
4
+ useTableModel
5
+ } from "../chunk-BBXDTWCX.mjs";
6
+ import "../chunk-63UUF4IG.mjs";
7
+
8
+ // src/testing/useTestTableModel.ts
9
+ import { useCallback, useMemo, useRef } from "react";
10
+ import { isMutable, toJsonSchema } from "@dxos/echo-schema";
11
+ import { useGlobalFilteredObjects } from "@dxos/plugin-search";
12
+ import { faker } from "@dxos/random";
13
+ import { useClient } from "@dxos/react-client";
14
+ import { Filter, useQuery, useSchema } from "@dxos/react-client/echo";
15
+ import { useClientProvider } from "@dxos/react-client/testing";
16
+ import { DataType, ProjectionModel, typenameFromQuery } from "@dxos/schema";
17
+ faker.seed(0);
18
+ var useTestTableModel = () => {
19
+ const client = useClient();
20
+ const { space } = useClientProvider();
21
+ const views = useQuery(space, Filter.type(DataType.View));
22
+ const view = useMemo(() => views.at(0), [
23
+ views
24
+ ]);
25
+ const typename = view?.query ? typenameFromQuery(view.query) : void 0;
26
+ const schema = useSchema(client, space, typename);
27
+ const jsonSchema = useMemo(() => schema ? toJsonSchema(schema) : void 0, [
28
+ schema
29
+ ]);
30
+ const projection = useMemo(() => {
31
+ if (schema && view?.projection) {
32
+ return new ProjectionModel(toJsonSchema(schema), view.projection);
33
+ }
34
+ }, [
35
+ schema,
36
+ view?.projection
37
+ ]);
38
+ const features = useMemo(() => ({
39
+ selection: {
40
+ enabled: true,
41
+ mode: "multiple"
42
+ },
43
+ dataEditable: true,
44
+ schemaEditable: schema && isMutable(schema)
45
+ }), [
46
+ schema
47
+ ]);
48
+ const objects = useQuery(space, schema ? Filter.type(schema) : Filter.nothing());
49
+ const filteredObjects = useGlobalFilteredObjects(objects);
50
+ const tableRef = useRef(null);
51
+ const handleCellUpdate = useCallback((cell) => {
52
+ tableRef.current?.update?.(cell);
53
+ }, []);
54
+ const handleRowOrderChange = useCallback(() => {
55
+ tableRef.current?.update?.();
56
+ }, []);
57
+ const addRow = useAddRow({
58
+ space,
59
+ schema
60
+ });
61
+ const handleDeleteRows = useCallback((_, objects2) => {
62
+ for (const object of objects2) {
63
+ space?.db.remove(object);
64
+ }
65
+ }, [
66
+ space
67
+ ]);
68
+ const handleDeleteColumn = useCallback((fieldId) => {
69
+ if (projection) {
70
+ projection.deleteFieldProjection(fieldId);
71
+ }
72
+ }, [
73
+ projection
74
+ ]);
75
+ const model = useTableModel({
76
+ view,
77
+ schema: jsonSchema,
78
+ projection,
79
+ features,
80
+ rows: filteredObjects,
81
+ onInsertRow: addRow,
82
+ onDeleteRows: handleDeleteRows,
83
+ onDeleteColumn: handleDeleteColumn,
84
+ onCellUpdate: handleCellUpdate,
85
+ onRowOrderChange: handleRowOrderChange
86
+ });
87
+ const handleInsertRow = useCallback(() => {
88
+ const insertResult = model?.insertRow();
89
+ tableRef.current?.handleInsertRowResult?.(insertResult);
90
+ }, [
91
+ model,
92
+ tableRef.current
93
+ ]);
94
+ const handleSaveView = useCallback(() => {
95
+ model?.saveView();
96
+ }, [
97
+ model
98
+ ]);
99
+ const presentation = useMemo(() => {
100
+ if (model) {
101
+ return new TablePresentation(model);
102
+ }
103
+ }, [
104
+ model
105
+ ]);
106
+ return {
107
+ schema,
108
+ view,
109
+ projection,
110
+ tableRef,
111
+ model,
112
+ presentation,
113
+ space,
114
+ client,
115
+ handleInsertRow,
116
+ handleSaveView,
117
+ handleDeleteRows,
118
+ handleDeleteColumn
119
+ };
120
+ };
121
+ export {
122
+ useTestTableModel
123
+ };
124
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/testing/useTestTableModel.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback, useMemo, useRef } from 'react';\n\nimport { isMutable, toJsonSchema } from '@dxos/echo-schema';\nimport { useGlobalFilteredObjects } from '@dxos/plugin-search';\nimport { faker } from '@dxos/random';\nimport { useClient } from '@dxos/react-client';\nimport { Filter, useQuery, useSchema } from '@dxos/react-client/echo';\nimport { useClientProvider } from '@dxos/react-client/testing';\nimport { DataType, ProjectionModel, typenameFromQuery } from '@dxos/schema';\n\nimport { type TableController } from '../components';\nimport { useAddRow, useTableModel } from '../hooks';\nimport { TablePresentation } from '../model';\n\nfaker.seed(0); // NOTE(ZaymonFC): Required for smoke tests.\n\n/**\n * Custom hook to create and manage a test table model for storybook demonstrations.\n * Provides table data, schema, and handlers for table operations.\n */\nexport const useTestTableModel = () => {\n const client = useClient();\n const { space } = useClientProvider();\n\n const views = useQuery(space, Filter.type(DataType.View));\n const view = useMemo(() => views.at(0), [views]);\n const typename = view?.query ? typenameFromQuery(view.query) : undefined;\n const schema = useSchema(client, space, typename);\n const jsonSchema = useMemo(() => (schema ? toJsonSchema(schema) : undefined), [schema]);\n\n const projection = useMemo(() => {\n if (schema && view?.projection) {\n return new ProjectionModel(toJsonSchema(schema), view.projection);\n }\n }, [schema, view?.projection]);\n\n const features = useMemo(\n () => ({\n selection: { enabled: true, mode: 'multiple' as const },\n dataEditable: true,\n schemaEditable: schema && isMutable(schema),\n }),\n [schema],\n );\n\n const objects = useQuery(space, schema ? Filter.type(schema) : Filter.nothing());\n const filteredObjects = useGlobalFilteredObjects(objects);\n\n const tableRef = useRef<TableController>(null);\n const handleCellUpdate = useCallback((cell: any) => {\n tableRef.current?.update?.(cell);\n }, []);\n\n const handleRowOrderChange = useCallback(() => {\n tableRef.current?.update?.();\n }, []);\n\n const addRow = useAddRow({ space, schema });\n\n const handleDeleteRows = useCallback(\n (_: number, objects: any[]) => {\n for (const object of objects) {\n space?.db.remove(object);\n }\n },\n [space],\n );\n\n const handleDeleteColumn = useCallback(\n (fieldId: string) => {\n if (projection) {\n projection.deleteFieldProjection(fieldId);\n }\n },\n [projection],\n );\n\n const model = useTableModel({\n view,\n schema: jsonSchema,\n projection,\n features,\n rows: filteredObjects,\n onInsertRow: addRow,\n onDeleteRows: handleDeleteRows,\n onDeleteColumn: handleDeleteColumn,\n onCellUpdate: handleCellUpdate,\n onRowOrderChange: handleRowOrderChange,\n });\n\n const handleInsertRow = useCallback(() => {\n const insertResult = model?.insertRow();\n tableRef.current?.handleInsertRowResult?.(insertResult);\n }, [model, tableRef.current]);\n\n const handleSaveView = useCallback(() => {\n model?.saveView();\n }, [model]);\n\n const presentation = useMemo(() => {\n if (model) {\n return new TablePresentation(model);\n }\n }, [model]);\n\n return {\n schema,\n view,\n projection,\n tableRef,\n model,\n presentation,\n space,\n client,\n handleInsertRow,\n handleSaveView,\n handleDeleteRows,\n handleDeleteColumn,\n };\n};\n"],
5
+ "mappings": ";;;;;;;;AAIA,SAASA,aAAaC,SAASC,cAAc;AAE7C,SAASC,WAAWC,oBAAoB;AACxC,SAASC,gCAAgC;AACzC,SAASC,aAAa;AACtB,SAASC,iBAAiB;AAC1B,SAASC,QAAQC,UAAUC,iBAAiB;AAC5C,SAASC,yBAAyB;AAClC,SAASC,UAAUC,iBAAiBC,yBAAyB;AAM7DC,MAAMC,KAAK,CAAA;AAMJ,IAAMC,oBAAoB,MAAA;AAC/B,QAAMC,SAASC,UAAAA;AACf,QAAM,EAAEC,MAAK,IAAKC,kBAAAA;AAElB,QAAMC,QAAQC,SAASH,OAAOI,OAAOC,KAAKC,SAASC,IAAI,CAAA;AACvD,QAAMC,OAAOC,QAAQ,MAAMP,MAAMQ,GAAG,CAAA,GAAI;IAACR;GAAM;AAC/C,QAAMS,WAAWH,MAAMI,QAAQC,kBAAkBL,KAAKI,KAAK,IAAIE;AAC/D,QAAMC,SAASC,UAAUlB,QAAQE,OAAOW,QAAAA;AACxC,QAAMM,aAAaR,QAAQ,MAAOM,SAASG,aAAaH,MAAAA,IAAUD,QAAY;IAACC;GAAO;AAEtF,QAAMI,aAAaV,QAAQ,MAAA;AACzB,QAAIM,UAAUP,MAAMW,YAAY;AAC9B,aAAO,IAAIC,gBAAgBF,aAAaH,MAAAA,GAASP,KAAKW,UAAU;IAClE;EACF,GAAG;IAACJ;IAAQP,MAAMW;GAAW;AAE7B,QAAME,WAAWZ,QACf,OAAO;IACLa,WAAW;MAAEC,SAAS;MAAMC,MAAM;IAAoB;IACtDC,cAAc;IACdC,gBAAgBX,UAAUY,UAAUZ,MAAAA;EACtC,IACA;IAACA;GAAO;AAGV,QAAMa,UAAUzB,SAASH,OAAOe,SAASX,OAAOC,KAAKU,MAAAA,IAAUX,OAAOyB,QAAO,CAAA;AAC7E,QAAMC,kBAAkBC,yBAAyBH,OAAAA;AAEjD,QAAMI,WAAWC,OAAwB,IAAA;AACzC,QAAMC,mBAAmBC,YAAY,CAACC,SAAAA;AACpCJ,aAASK,SAASC,SAASF,IAAAA;EAC7B,GAAG,CAAA,CAAE;AAEL,QAAMG,uBAAuBJ,YAAY,MAAA;AACvCH,aAASK,SAASC,SAAAA;EACpB,GAAG,CAAA,CAAE;AAEL,QAAME,SAASC,UAAU;IAAEzC;IAAOe;EAAO,CAAA;AAEzC,QAAM2B,mBAAmBP,YACvB,CAACQ,GAAWf,aAAAA;AACV,eAAWgB,UAAUhB,UAAS;AAC5B5B,aAAO6C,GAAGC,OAAOF,MAAAA;IACnB;EACF,GACA;IAAC5C;GAAM;AAGT,QAAM+C,qBAAqBZ,YACzB,CAACa,YAAAA;AACC,QAAI7B,YAAY;AACdA,iBAAW8B,sBAAsBD,OAAAA;IACnC;EACF,GACA;IAAC7B;GAAW;AAGd,QAAM+B,QAAQC,cAAc;IAC1B3C;IACAO,QAAQE;IACRE;IACAE;IACA+B,MAAMtB;IACNuB,aAAab;IACbc,cAAcZ;IACda,gBAAgBR;IAChBS,cAActB;IACduB,kBAAkBlB;EACpB,CAAA;AAEA,QAAMmB,kBAAkBvB,YAAY,MAAA;AAClC,UAAMwB,eAAeT,OAAOU,UAAAA;AAC5B5B,aAASK,SAASwB,wBAAwBF,YAAAA;EAC5C,GAAG;IAACT;IAAOlB,SAASK;GAAQ;AAE5B,QAAMyB,iBAAiB3B,YAAY,MAAA;AACjCe,WAAOa,SAAAA;EACT,GAAG;IAACb;GAAM;AAEV,QAAMc,eAAevD,QAAQ,MAAA;AAC3B,QAAIyC,OAAO;AACT,aAAO,IAAIe,kBAAkBf,KAAAA;IAC/B;EACF,GAAG;IAACA;GAAM;AAEV,SAAO;IACLnC;IACAP;IACAW;IACAa;IACAkB;IACAc;IACAhE;IACAF;IACA4D;IACAI;IACApB;IACAK;EACF;AACF;",
6
+ "names": ["useCallback", "useMemo", "useRef", "isMutable", "toJsonSchema", "useGlobalFilteredObjects", "faker", "useClient", "Filter", "useQuery", "useSchema", "useClientProvider", "DataType", "ProjectionModel", "typenameFromQuery", "faker", "seed", "useTestTableModel", "client", "useClient", "space", "useClientProvider", "views", "useQuery", "Filter", "type", "DataType", "View", "view", "useMemo", "at", "typename", "query", "typenameFromQuery", "undefined", "schema", "useSchema", "jsonSchema", "toJsonSchema", "projection", "ProjectionModel", "features", "selection", "enabled", "mode", "dataEditable", "schemaEditable", "isMutable", "objects", "nothing", "filteredObjects", "useGlobalFilteredObjects", "tableRef", "useRef", "handleCellUpdate", "useCallback", "cell", "current", "update", "handleRowOrderChange", "addRow", "useAddRow", "handleDeleteRows", "_", "object", "db", "remove", "handleDeleteColumn", "fieldId", "deleteFieldProjection", "model", "useTableModel", "rows", "onInsertRow", "onDeleteRows", "onDeleteColumn", "onCellUpdate", "onRowOrderChange", "handleInsertRow", "insertResult", "insertRow", "handleInsertRowResult", "handleSaveView", "saveView", "presentation", "TablePresentation"]
7
+ }
@@ -1,9 +1,7 @@
1
1
  import {
2
- TableSchema,
3
- TableType
4
- } from "../chunk-TL7CKQQV.mjs";
2
+ schema_exports
3
+ } from "../chunk-63UUF4IG.mjs";
5
4
  export {
6
- TableSchema,
7
- TableType
5
+ schema_exports as Table
8
6
  };
9
7
  //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,67 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ var __defProp = Object.defineProperty;
3
+ var __export = (target, all) => {
4
+ for (var name in all)
5
+ __defProp(target, name, { get: all[name], enumerable: true });
6
+ };
7
+
8
+ // src/types/schema.ts
9
+ var schema_exports = {};
10
+ __export(schema_exports, {
11
+ Table: () => Table,
12
+ make: () => make,
13
+ makeView: () => makeView
14
+ });
15
+ import { Schema } from "effect";
16
+ import { Match } from "effect";
17
+ import { Obj, Type } from "@dxos/echo";
18
+ import { JsonPath, toEffectSchema } from "@dxos/echo-schema";
19
+ import { ViewAnnotation } from "@dxos/echo-schema";
20
+ import { createViewFromSpace, getSchemaProperties } from "@dxos/schema";
21
+ var Table = Schema.Struct({
22
+ sizes: Schema.Record({
23
+ key: JsonPath,
24
+ value: Schema.Number
25
+ }).pipe(Schema.mutable)
26
+ }).pipe(Type.Obj({
27
+ typename: "dxos.org/type/Table",
28
+ version: "0.1.0"
29
+ }), ViewAnnotation.set(true));
30
+ var make = (props = {}) => Obj.make(Table, {
31
+ sizes: {},
32
+ ...props
33
+ });
34
+ var makeView = async ({ sizes, ...props }) => {
35
+ const table = Obj.make(Table, {
36
+ sizes: {}
37
+ });
38
+ const { jsonSchema, view } = await createViewFromSpace({
39
+ ...props,
40
+ presentation: table
41
+ });
42
+ const schema = toEffectSchema(jsonSchema);
43
+ const shouldIncludeId = props.fields?.find((field) => field === "id") !== void 0;
44
+ const properties = getSchemaProperties(schema.ast, {}, shouldIncludeId);
45
+ for (const property of properties) {
46
+ if (sizes?.[property.name]) {
47
+ table.sizes[property.name] = sizes[property.name];
48
+ continue;
49
+ }
50
+ Match.type().pipe(Match.when("boolean", () => {
51
+ table.sizes[property.name] = 100;
52
+ }), Match.when("number", () => {
53
+ table.sizes[property.name] = 100;
54
+ }), Match.orElse(() => {
55
+ }))(property.type);
56
+ }
57
+ return {
58
+ jsonSchema,
59
+ schema,
60
+ view
61
+ };
62
+ };
63
+
64
+ export {
65
+ schema_exports
66
+ };
67
+ //# sourceMappingURL=chunk-K734DJB7.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/schema.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Schema } from 'effect';\nimport { Match } from 'effect';\n\nimport { Obj, Type } from '@dxos/echo';\nimport { JsonPath, type JsonSchemaType, toEffectSchema } from '@dxos/echo-schema';\nimport { ViewAnnotation } from '@dxos/echo-schema';\nimport { type SimpleType } from '@dxos/effect';\nimport { type CreateViewFromSpaceProps, type DataType, createViewFromSpace, getSchemaProperties } from '@dxos/schema';\n\nexport const Table = Schema.Struct({\n sizes: Schema.Record({\n key: JsonPath,\n value: Schema.Number,\n }).pipe(Schema.mutable),\n}).pipe(\n Type.Obj({\n typename: 'dxos.org/type/Table',\n version: '0.1.0',\n }),\n ViewAnnotation.set(true),\n);\n\nexport type Table = Schema.Schema.Type<typeof Table>;\n\n/**\n * Make a table view.\n */\nexport const make = (props: Partial<Obj.MakeProps<typeof Table>> = {}) => Obj.make(Table, { sizes: {}, ...props });\n\ntype MakeViewProps = Omit<CreateViewFromSpaceProps, 'presentation'> & {\n sizes?: Record<string, number>;\n};\n\nexport const makeView = async ({\n sizes,\n ...props\n}: MakeViewProps): Promise<{\n jsonSchema: JsonSchemaType;\n view: DataType.View;\n schema: ReturnType<typeof toEffectSchema>;\n}> => {\n const table = Obj.make(Table, { sizes: {} });\n const { jsonSchema, view } = await createViewFromSpace({ ...props, presentation: table });\n\n // Preset sizes.\n const schema = toEffectSchema(jsonSchema);\n const shouldIncludeId = props.fields?.find((field) => field === 'id') !== undefined;\n const properties = getSchemaProperties(schema.ast, {}, shouldIncludeId);\n for (const property of properties) {\n if (sizes?.[property.name]) {\n table.sizes[property.name as JsonPath] = sizes[property.name];\n continue;\n }\n\n Match.type<SimpleType>().pipe(\n Match.when('boolean', () => {\n table.sizes[property.name as JsonPath] = 100;\n }),\n Match.when('number', () => {\n table.sizes[property.name as JsonPath] = 100;\n }),\n Match.orElse(() => {\n // Noop.\n }),\n )(property.type);\n }\n\n return { jsonSchema, schema, view };\n};\n"],
5
+ "mappings": ";;;;;;;;AAAA;;;;;;AAIA,SAASA,cAAc;AACvB,SAASC,aAAa;AAEtB,SAASC,KAAKC,YAAY;AAC1B,SAASC,UAA+BC,sBAAsB;AAC9D,SAASC,sBAAsB;AAE/B,SAAuDC,qBAAqBC,2BAA2B;AAEhG,IAAMC,QAAQC,OAAOC,OAAO;EACjCC,OAAOF,OAAOG,OAAO;IACnBC,KAAKC;IACLC,OAAON,OAAOO;EAChB,CAAA,EAAGC,KAAKR,OAAOS,OAAO;AACxB,CAAA,EAAGD,KACDE,KAAKC,IAAI;EACPC,UAAU;EACVC,SAAS;AACX,CAAA,GACAC,eAAeC,IAAI,IAAA,CAAA;AAQd,IAAMC,OAAO,CAACC,QAA8C,CAAC,MAAMN,IAAIK,KAAKjB,OAAO;EAAEG,OAAO,CAAC;EAAG,GAAGe;AAAM,CAAA;AAMzG,IAAMC,WAAW,OAAO,EAC7BhB,OACA,GAAGe,MAAAA,MACW;AAKd,QAAME,QAAQR,IAAIK,KAAKjB,OAAO;IAAEG,OAAO,CAAC;EAAE,CAAA;AAC1C,QAAM,EAAEkB,YAAYC,KAAI,IAAK,MAAMC,oBAAoB;IAAE,GAAGL;IAAOM,cAAcJ;EAAM,CAAA;AAGvF,QAAMK,SAASC,eAAeL,UAAAA;AAC9B,QAAMM,kBAAkBT,MAAMU,QAAQC,KAAK,CAACC,UAAUA,UAAU,IAAA,MAAUC;AAC1E,QAAMC,aAAaC,oBAAoBR,OAAOS,KAAK,CAAC,GAAGP,eAAAA;AACvD,aAAWQ,YAAYH,YAAY;AACjC,QAAI7B,QAAQgC,SAASC,IAAI,GAAG;AAC1BhB,YAAMjB,MAAMgC,SAASC,IAAI,IAAgBjC,MAAMgC,SAASC,IAAI;AAC5D;IACF;AAEAC,UAAMC,KAAI,EAAe7B,KACvB4B,MAAME,KAAK,WAAW,MAAA;AACpBnB,YAAMjB,MAAMgC,SAASC,IAAI,IAAgB;IAC3C,CAAA,GACAC,MAAME,KAAK,UAAU,MAAA;AACnBnB,YAAMjB,MAAMgC,SAASC,IAAI,IAAgB;IAC3C,CAAA,GACAC,MAAMG,OAAO,MAAA;IAEb,CAAA,CAAA,EACAL,SAASG,IAAI;EACjB;AAEA,SAAO;IAAEjB;IAAYI;IAAQH;EAAK;AACpC;",
6
+ "names": ["Schema", "Match", "Obj", "Type", "JsonPath", "toEffectSchema", "ViewAnnotation", "createViewFromSpace", "getSchemaProperties", "Table", "Schema", "Struct", "sizes", "Record", "key", "JsonPath", "value", "Number", "pipe", "mutable", "Type", "Obj", "typename", "version", "ViewAnnotation", "set", "make", "props", "makeView", "table", "jsonSchema", "view", "createViewFromSpace", "presentation", "schema", "toEffectSchema", "shouldIncludeId", "fields", "find", "field", "undefined", "properties", "getSchemaProperties", "ast", "property", "name", "Match", "type", "when", "orElse"]
7
+ }