@cratis/components 1.10.2 → 2.0.1

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 (319) hide show
  1. package/README.md +475 -4
  2. package/dist/cjs/CommandDialog/CommandDialog.js +94 -4
  3. package/dist/cjs/CommandDialog/CommandDialog.js.map +1 -1
  4. package/dist/cjs/CommandDialog/CommandStepper.js +63 -3
  5. package/dist/cjs/CommandDialog/CommandStepper.js.map +1 -1
  6. package/dist/cjs/CommandDialog/StepperCommandDialog.js +90 -4
  7. package/dist/cjs/CommandDialog/StepperCommandDialog.js.map +1 -1
  8. package/dist/cjs/CommandForm/fields/CalendarField.js +14 -1
  9. package/dist/cjs/CommandForm/fields/CalendarField.js.map +1 -1
  10. package/dist/cjs/CommandForm/fields/CheckboxField.js +10 -1
  11. package/dist/cjs/CommandForm/fields/CheckboxField.js.map +1 -1
  12. package/dist/cjs/CommandForm/fields/ChipsField.js +11 -1
  13. package/dist/cjs/CommandForm/fields/ChipsField.js.map +1 -1
  14. package/dist/cjs/CommandForm/fields/ColorPickerField.js +17 -1
  15. package/dist/cjs/CommandForm/fields/ColorPickerField.js.map +1 -1
  16. package/dist/cjs/CommandForm/fields/DropdownField.js +16 -1
  17. package/dist/cjs/CommandForm/fields/DropdownField.js.map +1 -1
  18. package/dist/cjs/CommandForm/fields/InputTextField.js +41 -1
  19. package/dist/cjs/CommandForm/fields/InputTextField.js.map +1 -1
  20. package/dist/cjs/CommandForm/fields/MultiSelectField.js +13 -1
  21. package/dist/cjs/CommandForm/fields/MultiSelectField.js.map +1 -1
  22. package/dist/cjs/CommandForm/fields/NumberField.js +11 -1
  23. package/dist/cjs/CommandForm/fields/NumberField.js.map +1 -1
  24. package/dist/cjs/CommandForm/fields/RadioButtonField.js +11 -1
  25. package/dist/cjs/CommandForm/fields/RadioButtonField.js.map +1 -1
  26. package/dist/cjs/CommandForm/fields/RadioGroupField.js +22 -2
  27. package/dist/cjs/CommandForm/fields/RadioGroupField.js.map +1 -1
  28. package/dist/cjs/CommandForm/fields/SliderField.js +10 -1
  29. package/dist/cjs/CommandForm/fields/SliderField.js.map +1 -1
  30. package/dist/cjs/CommandForm/fields/TextAreaField.js +12 -1
  31. package/dist/cjs/CommandForm/fields/TextAreaField.js.map +1 -1
  32. package/dist/cjs/Common/CratisComponentsProvider.js +44 -0
  33. package/dist/cjs/Common/CratisComponentsProvider.js.map +1 -0
  34. package/dist/cjs/Common/ErrorBoundary.js +32 -0
  35. package/dist/cjs/Common/ErrorBoundary.js.map +1 -1
  36. package/dist/cjs/Common/FormElement.css +26 -0
  37. package/dist/cjs/Common/FormElement.js +14 -1
  38. package/dist/cjs/Common/FormElement.js.map +1 -1
  39. package/dist/cjs/Common/Page.js +13 -0
  40. package/dist/cjs/Common/Page.js.map +1 -1
  41. package/dist/cjs/Common/Tooltip.css +3 -3
  42. package/dist/cjs/Common/index.js +4 -0
  43. package/dist/cjs/Common/index.js.map +1 -1
  44. package/dist/cjs/DataPage/DataPage.js +104 -6
  45. package/dist/cjs/DataPage/DataPage.js.map +1 -1
  46. package/dist/cjs/DataTables/DataTableForObservableQuery.js +65 -6
  47. package/dist/cjs/DataTables/DataTableForObservableQuery.js.map +1 -1
  48. package/dist/cjs/DataTables/DataTableForQuery.js +62 -6
  49. package/dist/cjs/DataTables/DataTableForQuery.js.map +1 -1
  50. package/dist/cjs/Dialogs/BusyIndicatorDialog.js +47 -0
  51. package/dist/cjs/Dialogs/BusyIndicatorDialog.js.map +1 -1
  52. package/dist/cjs/Dialogs/Dialog.js +74 -2
  53. package/dist/cjs/Dialogs/Dialog.js.map +1 -1
  54. package/dist/cjs/Dropdown/Dropdown.js +13 -0
  55. package/dist/cjs/Dropdown/Dropdown.js.map +1 -1
  56. package/dist/cjs/ObjectContentEditor/ObjectContentEditor.js +37 -21
  57. package/dist/cjs/ObjectContentEditor/ObjectContentEditor.js.map +1 -1
  58. package/dist/cjs/ObjectNavigationalBar/ObjectNavigationalBar.css +6 -0
  59. package/dist/cjs/ObjectNavigationalBar/ObjectNavigationalBar.js +14 -2
  60. package/dist/cjs/ObjectNavigationalBar/ObjectNavigationalBar.js.map +1 -1
  61. package/dist/cjs/PivotViewer/PivotViewer.css +130 -130
  62. package/dist/cjs/PivotViewer/PivotViewer.js +19 -0
  63. package/dist/cjs/PivotViewer/PivotViewer.js.map +1 -1
  64. package/dist/cjs/PivotViewer/components/Spinner.css +8 -8
  65. package/dist/cjs/SchemaEditor/NameCell.js +2 -2
  66. package/dist/cjs/SchemaEditor/NameCell.js.map +1 -1
  67. package/dist/cjs/SchemaEditor/SchemaEditor.js +15 -3
  68. package/dist/cjs/SchemaEditor/SchemaEditor.js.map +1 -1
  69. package/dist/cjs/SchemaEditor/SchemaEditor.module.css +5 -1
  70. package/dist/cjs/SchemaEditor/TypeCell.js +3 -3
  71. package/dist/cjs/SchemaEditor/TypeCell.js.map +1 -1
  72. package/dist/cjs/TimeMachine/EventsView.js +13 -2
  73. package/dist/cjs/TimeMachine/EventsView.js.map +1 -1
  74. package/dist/cjs/TimeMachine/ReadModelView.js +10 -0
  75. package/dist/cjs/TimeMachine/ReadModelView.js.map +1 -1
  76. package/dist/cjs/Toolbar/Toolbar.css +34 -17
  77. package/dist/cjs/index.js +4 -0
  78. package/dist/cjs/index.js.map +1 -1
  79. package/dist/cjs/tailwind-utilities.css +443 -0
  80. package/dist/cjs/tokens.css +83 -0
  81. package/dist/esm/CommandDialog/CommandDialog.d.ts.map +1 -1
  82. package/dist/esm/CommandDialog/CommandDialog.js +94 -4
  83. package/dist/esm/CommandDialog/CommandDialog.js.map +1 -1
  84. package/dist/esm/CommandDialog/CommandStepper.d.ts.map +1 -1
  85. package/dist/esm/CommandDialog/CommandStepper.js +63 -3
  86. package/dist/esm/CommandDialog/CommandStepper.js.map +1 -1
  87. package/dist/esm/CommandDialog/StepperCommandDialog.d.ts +4 -0
  88. package/dist/esm/CommandDialog/StepperCommandDialog.d.ts.map +1 -1
  89. package/dist/esm/CommandDialog/StepperCommandDialog.js +90 -4
  90. package/dist/esm/CommandDialog/StepperCommandDialog.js.map +1 -1
  91. package/dist/esm/CommandForm/fields/CalendarField.d.ts +5 -0
  92. package/dist/esm/CommandForm/fields/CalendarField.d.ts.map +1 -1
  93. package/dist/esm/CommandForm/fields/CalendarField.js +14 -1
  94. package/dist/esm/CommandForm/fields/CalendarField.js.map +1 -1
  95. package/dist/esm/CommandForm/fields/CheckboxField.d.ts +5 -0
  96. package/dist/esm/CommandForm/fields/CheckboxField.d.ts.map +1 -1
  97. package/dist/esm/CommandForm/fields/CheckboxField.js +10 -1
  98. package/dist/esm/CommandForm/fields/CheckboxField.js.map +1 -1
  99. package/dist/esm/CommandForm/fields/ChipsField.d.ts +5 -0
  100. package/dist/esm/CommandForm/fields/ChipsField.d.ts.map +1 -1
  101. package/dist/esm/CommandForm/fields/ChipsField.js +11 -1
  102. package/dist/esm/CommandForm/fields/ChipsField.js.map +1 -1
  103. package/dist/esm/CommandForm/fields/ColorPickerField.d.ts +5 -0
  104. package/dist/esm/CommandForm/fields/ColorPickerField.d.ts.map +1 -1
  105. package/dist/esm/CommandForm/fields/ColorPickerField.js +17 -1
  106. package/dist/esm/CommandForm/fields/ColorPickerField.js.map +1 -1
  107. package/dist/esm/CommandForm/fields/DropdownField.d.ts +5 -0
  108. package/dist/esm/CommandForm/fields/DropdownField.d.ts.map +1 -1
  109. package/dist/esm/CommandForm/fields/DropdownField.js +16 -1
  110. package/dist/esm/CommandForm/fields/DropdownField.js.map +1 -1
  111. package/dist/esm/CommandForm/fields/InputTextField.d.ts +5 -0
  112. package/dist/esm/CommandForm/fields/InputTextField.d.ts.map +1 -1
  113. package/dist/esm/CommandForm/fields/InputTextField.js +41 -1
  114. package/dist/esm/CommandForm/fields/InputTextField.js.map +1 -1
  115. package/dist/esm/CommandForm/fields/MultiSelectField.d.ts +5 -0
  116. package/dist/esm/CommandForm/fields/MultiSelectField.d.ts.map +1 -1
  117. package/dist/esm/CommandForm/fields/MultiSelectField.js +13 -1
  118. package/dist/esm/CommandForm/fields/MultiSelectField.js.map +1 -1
  119. package/dist/esm/CommandForm/fields/NumberField.d.ts +5 -0
  120. package/dist/esm/CommandForm/fields/NumberField.d.ts.map +1 -1
  121. package/dist/esm/CommandForm/fields/NumberField.js +11 -1
  122. package/dist/esm/CommandForm/fields/NumberField.js.map +1 -1
  123. package/dist/esm/CommandForm/fields/RadioButtonField.d.ts +5 -0
  124. package/dist/esm/CommandForm/fields/RadioButtonField.d.ts.map +1 -1
  125. package/dist/esm/CommandForm/fields/RadioButtonField.js +11 -1
  126. package/dist/esm/CommandForm/fields/RadioButtonField.js.map +1 -1
  127. package/dist/esm/CommandForm/fields/RadioGroupField.d.ts +5 -0
  128. package/dist/esm/CommandForm/fields/RadioGroupField.d.ts.map +1 -1
  129. package/dist/esm/CommandForm/fields/RadioGroupField.js +22 -2
  130. package/dist/esm/CommandForm/fields/RadioGroupField.js.map +1 -1
  131. package/dist/esm/CommandForm/fields/SliderField.d.ts +5 -0
  132. package/dist/esm/CommandForm/fields/SliderField.d.ts.map +1 -1
  133. package/dist/esm/CommandForm/fields/SliderField.js +10 -1
  134. package/dist/esm/CommandForm/fields/SliderField.js.map +1 -1
  135. package/dist/esm/CommandForm/fields/TextAreaField.d.ts +5 -0
  136. package/dist/esm/CommandForm/fields/TextAreaField.d.ts.map +1 -1
  137. package/dist/esm/CommandForm/fields/TextAreaField.js +12 -1
  138. package/dist/esm/CommandForm/fields/TextAreaField.js.map +1 -1
  139. package/dist/esm/Common/CratisComponentsProvider.d.ts +11 -0
  140. package/dist/esm/Common/CratisComponentsProvider.d.ts.map +1 -0
  141. package/dist/esm/Common/CratisComponentsProvider.js +40 -0
  142. package/dist/esm/Common/CratisComponentsProvider.js.map +1 -0
  143. package/dist/esm/Common/ErrorBoundary.d.ts.map +1 -1
  144. package/dist/esm/Common/ErrorBoundary.js +32 -0
  145. package/dist/esm/Common/ErrorBoundary.js.map +1 -1
  146. package/dist/esm/Common/FormElement.css +26 -0
  147. package/dist/esm/Common/FormElement.d.ts +1 -0
  148. package/dist/esm/Common/FormElement.d.ts.map +1 -1
  149. package/dist/esm/Common/FormElement.js +14 -1
  150. package/dist/esm/Common/FormElement.js.map +1 -1
  151. package/dist/esm/Common/Page.d.ts.map +1 -1
  152. package/dist/esm/Common/Page.js +13 -0
  153. package/dist/esm/Common/Page.js.map +1 -1
  154. package/dist/esm/Common/Tooltip.css +3 -3
  155. package/dist/esm/Common/index.d.ts +1 -0
  156. package/dist/esm/Common/index.d.ts.map +1 -1
  157. package/dist/esm/Common/index.js +1 -0
  158. package/dist/esm/Common/index.js.map +1 -1
  159. package/dist/esm/DataPage/DataPage.d.ts +12 -3
  160. package/dist/esm/DataPage/DataPage.d.ts.map +1 -1
  161. package/dist/esm/DataPage/DataPage.js +104 -6
  162. package/dist/esm/DataPage/DataPage.js.map +1 -1
  163. package/dist/esm/DataTables/DataTableForObservableQuery.d.ts +9 -1
  164. package/dist/esm/DataTables/DataTableForObservableQuery.d.ts.map +1 -1
  165. package/dist/esm/DataTables/DataTableForObservableQuery.js +65 -6
  166. package/dist/esm/DataTables/DataTableForObservableQuery.js.map +1 -1
  167. package/dist/esm/DataTables/DataTableForQuery.d.ts +9 -1
  168. package/dist/esm/DataTables/DataTableForQuery.d.ts.map +1 -1
  169. package/dist/esm/DataTables/DataTableForQuery.js +62 -6
  170. package/dist/esm/DataTables/DataTableForQuery.js.map +1 -1
  171. package/dist/esm/Dialogs/BusyIndicatorDialog.d.ts.map +1 -1
  172. package/dist/esm/Dialogs/BusyIndicatorDialog.js +47 -0
  173. package/dist/esm/Dialogs/BusyIndicatorDialog.js.map +1 -1
  174. package/dist/esm/Dialogs/Dialog.d.ts +5 -1
  175. package/dist/esm/Dialogs/Dialog.d.ts.map +1 -1
  176. package/dist/esm/Dialogs/Dialog.js +74 -2
  177. package/dist/esm/Dialogs/Dialog.js.map +1 -1
  178. package/dist/esm/Dropdown/Dropdown.d.ts.map +1 -1
  179. package/dist/esm/Dropdown/Dropdown.js +13 -0
  180. package/dist/esm/Dropdown/Dropdown.js.map +1 -1
  181. package/dist/esm/ObjectContentEditor/ObjectContentEditor.d.ts +2 -1
  182. package/dist/esm/ObjectContentEditor/ObjectContentEditor.d.ts.map +1 -1
  183. package/dist/esm/ObjectContentEditor/ObjectContentEditor.js +37 -21
  184. package/dist/esm/ObjectContentEditor/ObjectContentEditor.js.map +1 -1
  185. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.css +6 -0
  186. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.d.ts +3 -1
  187. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.d.ts.map +1 -1
  188. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.js +14 -2
  189. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.js.map +1 -1
  190. package/dist/esm/PivotViewer/PivotViewer.css +130 -130
  191. package/dist/esm/PivotViewer/PivotViewer.d.ts.map +1 -1
  192. package/dist/esm/PivotViewer/PivotViewer.js +19 -0
  193. package/dist/esm/PivotViewer/PivotViewer.js.map +1 -1
  194. package/dist/esm/PivotViewer/components/Spinner.css +8 -8
  195. package/dist/esm/SchemaEditor/NameCell.d.ts.map +1 -1
  196. package/dist/esm/SchemaEditor/NameCell.js +2 -2
  197. package/dist/esm/SchemaEditor/NameCell.js.map +1 -1
  198. package/dist/esm/SchemaEditor/SchemaEditor.d.ts +2 -1
  199. package/dist/esm/SchemaEditor/SchemaEditor.d.ts.map +1 -1
  200. package/dist/esm/SchemaEditor/SchemaEditor.js +15 -3
  201. package/dist/esm/SchemaEditor/SchemaEditor.js.map +1 -1
  202. package/dist/esm/SchemaEditor/SchemaEditor.module.css +5 -1
  203. package/dist/esm/SchemaEditor/TypeCell.d.ts.map +1 -1
  204. package/dist/esm/SchemaEditor/TypeCell.js +3 -3
  205. package/dist/esm/SchemaEditor/TypeCell.js.map +1 -1
  206. package/dist/esm/TimeMachine/EventsView.d.ts +5 -0
  207. package/dist/esm/TimeMachine/EventsView.d.ts.map +1 -1
  208. package/dist/esm/TimeMachine/EventsView.js +13 -2
  209. package/dist/esm/TimeMachine/EventsView.js.map +1 -1
  210. package/dist/esm/TimeMachine/ReadModelView.d.ts.map +1 -1
  211. package/dist/esm/TimeMachine/ReadModelView.js +10 -0
  212. package/dist/esm/TimeMachine/ReadModelView.js.map +1 -1
  213. package/dist/esm/Toolbar/Toolbar.css +34 -17
  214. package/dist/esm/Toolbar/ToolbarFanOutItem.d.ts +1 -1
  215. package/dist/esm/Toolbar/ToolbarFanOutItem.d.ts.map +1 -1
  216. package/dist/esm/index.d.ts +1 -0
  217. package/dist/esm/index.d.ts.map +1 -1
  218. package/dist/esm/index.js +1 -0
  219. package/dist/esm/index.js.map +1 -1
  220. package/dist/esm/tailwind-utilities.css +443 -0
  221. package/dist/esm/tokens.css +83 -0
  222. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  223. package/package.json +33 -14
  224. package/dist/esm/CommandDialog/CommandDialog.stories.d.ts +0 -21
  225. package/dist/esm/CommandDialog/CommandDialog.stories.d.ts.map +0 -1
  226. package/dist/esm/CommandDialog/CommandDialog.stories.js +0 -353
  227. package/dist/esm/CommandDialog/CommandDialog.stories.js.map +0 -1
  228. package/dist/esm/CommandDialog/CommandStepper.stories.d.ts +0 -11
  229. package/dist/esm/CommandDialog/CommandStepper.stories.d.ts.map +0 -1
  230. package/dist/esm/CommandDialog/CommandStepper.stories.js +0 -84
  231. package/dist/esm/CommandDialog/CommandStepper.stories.js.map +0 -1
  232. package/dist/esm/CommandDialog/StepperCommandDialog.stories.d.ts +0 -12
  233. package/dist/esm/CommandDialog/StepperCommandDialog.stories.d.ts.map +0 -1
  234. package/dist/esm/CommandDialog/StepperCommandDialog.stories.js +0 -158
  235. package/dist/esm/CommandDialog/StepperCommandDialog.stories.js.map +0 -1
  236. package/dist/esm/CommandForm/fields/Fields.stories.d.ts +0 -19
  237. package/dist/esm/CommandForm/fields/Fields.stories.d.ts.map +0 -1
  238. package/dist/esm/CommandForm/fields/Fields.stories.js +0 -203
  239. package/dist/esm/CommandForm/fields/Fields.stories.js.map +0 -1
  240. package/dist/esm/Common/ErrorBoundary.stories.d.ts +0 -8
  241. package/dist/esm/Common/ErrorBoundary.stories.d.ts.map +0 -1
  242. package/dist/esm/Common/ErrorBoundary.stories.js +0 -22
  243. package/dist/esm/Common/ErrorBoundary.stories.js.map +0 -1
  244. package/dist/esm/Common/FormElement.stories.d.ts +0 -9
  245. package/dist/esm/Common/FormElement.stories.d.ts.map +0 -1
  246. package/dist/esm/Common/FormElement.stories.js +0 -27
  247. package/dist/esm/Common/FormElement.stories.js.map +0 -1
  248. package/dist/esm/Common/Icon.stories.d.ts +0 -11
  249. package/dist/esm/Common/Icon.stories.d.ts.map +0 -1
  250. package/dist/esm/Common/Icon.stories.js +0 -26
  251. package/dist/esm/Common/Icon.stories.js.map +0 -1
  252. package/dist/esm/Common/Page.stories.d.ts +0 -10
  253. package/dist/esm/Common/Page.stories.d.ts.map +0 -1
  254. package/dist/esm/Common/Page.stories.js +0 -35
  255. package/dist/esm/Common/Page.stories.js.map +0 -1
  256. package/dist/esm/DataPage/DataPage.stories.d.ts +0 -10
  257. package/dist/esm/DataPage/DataPage.stories.d.ts.map +0 -1
  258. package/dist/esm/DataPage/DataPage.stories.js +0 -69
  259. package/dist/esm/DataPage/DataPage.stories.js.map +0 -1
  260. package/dist/esm/DataTables/DataTableForObservableQuery.stories.d.ts +0 -8
  261. package/dist/esm/DataTables/DataTableForObservableQuery.stories.d.ts.map +0 -1
  262. package/dist/esm/DataTables/DataTableForObservableQuery.stories.js +0 -79
  263. package/dist/esm/DataTables/DataTableForObservableQuery.stories.js.map +0 -1
  264. package/dist/esm/DataTables/DataTableForQuery.stories.d.ts +0 -8
  265. package/dist/esm/DataTables/DataTableForQuery.stories.d.ts.map +0 -1
  266. package/dist/esm/DataTables/DataTableForQuery.stories.js +0 -54
  267. package/dist/esm/DataTables/DataTableForQuery.stories.js.map +0 -1
  268. package/dist/esm/Dialogs/BusyIndicatorDialog.stories.d.ts +0 -7
  269. package/dist/esm/Dialogs/BusyIndicatorDialog.stories.d.ts.map +0 -1
  270. package/dist/esm/Dialogs/BusyIndicatorDialog.stories.js +0 -15
  271. package/dist/esm/Dialogs/BusyIndicatorDialog.stories.js.map +0 -1
  272. package/dist/esm/Dialogs/ConfirmationDialog.stories.d.ts +0 -7
  273. package/dist/esm/Dialogs/ConfirmationDialog.stories.d.ts.map +0 -1
  274. package/dist/esm/Dialogs/ConfirmationDialog.stories.js +0 -20
  275. package/dist/esm/Dialogs/ConfirmationDialog.stories.js.map +0 -1
  276. package/dist/esm/Dialogs/Dialog.stories.d.ts +0 -13
  277. package/dist/esm/Dialogs/Dialog.stories.d.ts.map +0 -1
  278. package/dist/esm/Dialogs/Dialog.stories.js +0 -85
  279. package/dist/esm/Dialogs/Dialog.stories.js.map +0 -1
  280. package/dist/esm/ObjectContentEditor/ObjectContentEditor.stories.d.ts +0 -12
  281. package/dist/esm/ObjectContentEditor/ObjectContentEditor.stories.d.ts.map +0 -1
  282. package/dist/esm/ObjectContentEditor/ObjectContentEditor.stories.js +0 -184
  283. package/dist/esm/ObjectContentEditor/ObjectContentEditor.stories.js.map +0 -1
  284. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.stories.d.ts +0 -10
  285. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.stories.d.ts.map +0 -1
  286. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.stories.js +0 -45
  287. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.stories.js.map +0 -1
  288. package/dist/esm/PivotViewer/PivotViewer.stories.d.ts +0 -8
  289. package/dist/esm/PivotViewer/PivotViewer.stories.d.ts.map +0 -1
  290. package/dist/esm/PivotViewer/PivotViewer.stories.js +0 -233
  291. package/dist/esm/PivotViewer/PivotViewer.stories.js.map +0 -1
  292. package/dist/esm/SchemaEditor/SchemaEditor.stories.d.ts +0 -12
  293. package/dist/esm/SchemaEditor/SchemaEditor.stories.d.ts.map +0 -1
  294. package/dist/esm/SchemaEditor/SchemaEditor.stories.js +0 -157
  295. package/dist/esm/SchemaEditor/SchemaEditor.stories.js.map +0 -1
  296. package/dist/esm/TimeMachine/EventsView.stories.d.ts +0 -9
  297. package/dist/esm/TimeMachine/EventsView.stories.d.ts.map +0 -1
  298. package/dist/esm/TimeMachine/EventsView.stories.js +0 -82
  299. package/dist/esm/TimeMachine/EventsView.stories.js.map +0 -1
  300. package/dist/esm/TimeMachine/Properties.stories.d.ts +0 -10
  301. package/dist/esm/TimeMachine/Properties.stories.d.ts.map +0 -1
  302. package/dist/esm/TimeMachine/Properties.stories.js +0 -51
  303. package/dist/esm/TimeMachine/Properties.stories.js.map +0 -1
  304. package/dist/esm/TimeMachine/ReadModelView.stories.d.ts +0 -8
  305. package/dist/esm/TimeMachine/ReadModelView.stories.d.ts.map +0 -1
  306. package/dist/esm/TimeMachine/ReadModelView.stories.js +0 -80
  307. package/dist/esm/TimeMachine/ReadModelView.stories.js.map +0 -1
  308. package/dist/esm/TimeMachine/TimeMachine.stories.d.ts +0 -9
  309. package/dist/esm/TimeMachine/TimeMachine.stories.d.ts.map +0 -1
  310. package/dist/esm/TimeMachine/TimeMachine.stories.js +0 -115
  311. package/dist/esm/TimeMachine/TimeMachine.stories.js.map +0 -1
  312. package/dist/esm/Toolbar/Toolbar.stories.d.ts +0 -26
  313. package/dist/esm/Toolbar/Toolbar.stories.d.ts.map +0 -1
  314. package/dist/esm/Toolbar/Toolbar.stories.js +0 -240
  315. package/dist/esm/Toolbar/Toolbar.stories.js.map +0 -1
  316. package/dist/esm/given.d.ts +0 -5
  317. package/dist/esm/given.d.ts.map +0 -1
  318. package/dist/esm/given.js +0 -7
  319. package/dist/esm/given.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"TextAreaField.js","sources":["../../../../CommandForm/fields/TextAreaField.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;;AAaO,MAAM,aAAa,GAAG,kBAAkB,CAC3C,CAAC,KAAK,MACFA,IAAC,aAAa,EAAA,EACV,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,EACrB,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,SAAS,EAAC,QAAQ,EAAA,CACpB,CACL,EACD;AACI,IAAA,YAAY,EAAE,EAAE;IAChB,YAAY,EAAE,CAAC,CAAyC,KAAK,CAAC,CAAC,MAAM,CAAC;AACzE,CAAA;;;;"}
1
+ {"version":3,"file":"TextAreaField.js","sources":["../../../../CommandForm/fields/TextAreaField.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;;AAiCA;;;;;;;;;;AAUG;MACU,aAAa,GAAG,kBAAkB,CAC3C,CAAC,KAAK,MACFA,GAAA,CAAC,aAAa,EAAA,EACV,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,EACrB,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,SAAS,EAAE,KAAK,CAAC,SAAS,GAAG,CAAA,OAAA,EAAU,KAAK,CAAC,SAAS,CAAA,CAAE,GAAG,QAAQ,EACnE,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAA,CAC1B,CACL,EACD;AACI,IAAA,YAAY,EAAE,EAAE;IAChB,YAAY,EAAE,CAAC,CAAyC,KAAK,CAAC,CAAC,MAAM,CAAC;AACzE,CAAA;;;;"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import type { APIOptions } from 'primereact/api';
3
+ export type CratisComponentsConfig = Partial<APIOptions>;
4
+ export interface CratisComponentsProviderProps {
5
+ value?: CratisComponentsConfig;
6
+ children: React.ReactNode;
7
+ }
8
+ export declare const cratisDefaults: CratisComponentsConfig;
9
+ export declare const mergeCratisComponentsConfig: (value: CratisComponentsConfig | undefined) => CratisComponentsConfig;
10
+ export declare const CratisComponentsProvider: ({ value, children }: CratisComponentsProviderProps) => import("react/jsx-runtime").JSX.Element;
11
+ //# sourceMappingURL=CratisComponentsProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CratisComponentsProvider.d.ts","sourceRoot":"","sources":["../../../Common/CratisComponentsProvider.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAQjD,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEzD,MAAM,WAAW,6BAA6B;IAK1C,KAAK,CAAC,EAAE,sBAAsB,CAAC;IAE/B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B;AAUD,eAAO,MAAM,cAAc,EAAE,sBAA2B,CAAC;AAMzD,eAAO,MAAM,2BAA2B,GAAI,OAAO,sBAAsB,GAAG,SAAS,KAAG,sBACxB,CAAC;AAgBjE,eAAO,MAAM,wBAAwB,GAAI,qBAAqB,6BAA6B,4CAI1F,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useMemo } from 'react';
3
+ import { PrimeReactProvider } from 'primereact/api';
4
+ import { merge } from 'ts-deepmerge';
5
+
6
+ /**
7
+ * Default configuration applied to every consumer. Intentionally empty today —
8
+ * reserved for Cratis-wide opinions we may want to ship in the future (for example,
9
+ * a default pt preset that complements the --cratis-* token layer). Anything added
10
+ * here is deep-merged with the consumer's `value` so consumer settings always win.
11
+ *
12
+ * Exported so specs can verify the merge contract without re-rendering React.
13
+ */
14
+ const cratisDefaults = {};
15
+ /**
16
+ * Pure merge of {@link cratisDefaults} and consumer-supplied config. Exposed for
17
+ * specs; the provider component uses the same logic inside its `useMemo`.
18
+ */
19
+ const mergeCratisComponentsConfig = (value) => merge(cratisDefaults, value ?? {});
20
+ /**
21
+ * Single setup point for Cratis Components. Wraps {@link PrimeReactProvider} so the
22
+ * library can layer Cratis-wide defaults on top of PrimeReact's pass-through and
23
+ * unstyled mechanisms while still letting the consumer take complete control:
24
+ *
25
+ * - Pass `unstyled: true` to disable every PrimeReact base style. The wrappers in
26
+ * this package then render structurally only and pick up all visuals from your
27
+ * own CSS, Tailwind, or pt definitions.
28
+ * - Pass `pt` / `ptOptions` to apply global per-component pass-through.
29
+ *
30
+ * Consumers who want to talk to PrimeReact directly may still mount
31
+ * {@link PrimeReactProvider} themselves — this component is an optional convenience,
32
+ * not a requirement.
33
+ */
34
+ const CratisComponentsProvider = ({ value, children }) => {
35
+ const merged = useMemo(() => mergeCratisComponentsConfig(value), [value]);
36
+ return jsx(PrimeReactProvider, { value: merged, children: children });
37
+ };
38
+
39
+ export { CratisComponentsProvider, cratisDefaults, mergeCratisComponentsConfig };
40
+ //# sourceMappingURL=CratisComponentsProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CratisComponentsProvider.js","sources":["../../../Common/CratisComponentsProvider.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;;;AAyBA;;;;;;;AAOG;AACI,MAAM,cAAc,GAA2B;AAEtD;;;AAGG;AACI,MAAM,2BAA2B,GAAG,CAAC,KAAyC,KACjF,KAAK,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;AAErC;;;;;;;;;;;;;AAaG;AACI,MAAM,wBAAwB,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAiC,KAAI;AAC3F,IAAA,MAAM,MAAM,GAAG,OAAO,CAAyB,MAAM,2BAA2B,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAEjG,OAAOA,GAAA,CAAC,kBAAkB,EAAA,EAAC,KAAK,EAAE,MAAM,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAsB;AAC7E;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorBoundary.d.ts","sourceRoot":"","sources":["../../../Common/ErrorBoundary.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAExD,UAAU,KAAK;IACX,QAAQ,EAAE,SAAS,CAAC;CACvB;AACD,UAAU,KAAK;IACX,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;CAChB;AAED,qBAAa,aAAc,SAAQ,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IAC/C,KAAK,EAAE,KAAK,CAGjB;WAEY,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK;IAIpD,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS;IAIpD,MAAM;CAahB"}
1
+ {"version":3,"file":"ErrorBoundary.d.ts","sourceRoot":"","sources":["../../../Common/ErrorBoundary.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKxD,UAAU,KAAK;IAEX,QAAQ,EAAE,SAAS,CAAC;CACvB;AAKD,UAAU,KAAK;IAEX,QAAQ,EAAE,OAAO,CAAC;IAElB,KAAK,EAAE,KAAK,CAAC;CAChB;AAmBD,qBAAa,aAAc,SAAQ,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IAE/C,KAAK,EAAE,KAAK,CAGjB;WAQY,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK;IAYpD,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS;IAIpD,MAAM;CAahB"}
@@ -1,14 +1,46 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { Component } from 'react';
3
3
 
4
+ /**
5
+ * React error boundary that catches errors thrown by its descendants during
6
+ * render, lifecycle, and constructor calls. On error, it renders a minimal
7
+ * inline diagnostic (message + stack) so the rest of the application keeps
8
+ * working instead of crashing the whole tree.
9
+ *
10
+ * Wrap the boundary around any subtree whose failure should be isolated:
11
+ *
12
+ * ```tsx
13
+ * <ErrorBoundary>
14
+ * <RiskyFeature />
15
+ * </ErrorBoundary>
16
+ * ```
17
+ *
18
+ * Use one boundary per logical UI region rather than a single root-level one,
19
+ * so failures stay scoped to the feature that caused them.
20
+ */
4
21
  class ErrorBoundary extends Component {
22
+ /** Initial state — no error captured. */
5
23
  state = {
6
24
  hasError: false,
7
25
  error: new Error(),
8
26
  };
27
+ /**
28
+ * React lifecycle hook invoked when a descendant throws. Returns the
29
+ * next state, which switches the boundary into its fallback render path.
30
+ *
31
+ * @param error - The error thrown by the descendant.
32
+ */
9
33
  static getDerivedStateFromError(error) {
10
34
  return { hasError: true, error: error };
11
35
  }
36
+ /**
37
+ * React lifecycle hook invoked alongside {@link getDerivedStateFromError}.
38
+ * Forwards the error and React's component stack to the console so the
39
+ * failure is observable in DevTools.
40
+ *
41
+ * @param error - The error thrown by the descendant.
42
+ * @param errorInfo - React-supplied metadata including the component stack.
43
+ */
12
44
  componentDidCatch(error, errorInfo) {
13
45
  console.error('Uncaught error:', error, errorInfo);
14
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorBoundary.js","sources":["../../../Common/ErrorBoundary.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":";;;AAaM,MAAO,aAAc,SAAQ,SAAuB,CAAA;AAC/C,IAAA,KAAK,GAAU;AAClB,QAAA,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,IAAI,KAAK,EAAE;KACrB;IAEM,OAAO,wBAAwB,CAAC,KAAY,EAAA;QAC/C,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;IAC3C;IAEO,iBAAiB,CAAC,KAAY,EAAE,SAAoB,EAAA;QACvD,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,EAAE,SAAS,CAAC;IACtD;IAEO,MAAM,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AACrB,YAAA,QACIA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,KAAK,EAAA,QAAA,EAAA,CAChBC,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,cAAc,EAAA,QAAA,EAAA,OAAA,EAAA,CAAW,EACvCA,GAAA,CAAA,GAAA,EAAA,EAAA,QAAA,EAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAA,CAAK,EACjCA,qBAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAA,CAAK,CAAA,EAAA,CAC7B;QAEd;AAEA,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ;IAC9B;AACH;;;;"}
1
+ {"version":3,"file":"ErrorBoundary.js","sources":["../../../Common/ErrorBoundary.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":";;;AAuBA;;;;;;;;;;;;;;;;AAgBG;AACG,MAAO,aAAc,SAAQ,SAAuB,CAAA;;AAE/C,IAAA,KAAK,GAAU;AAClB,QAAA,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,IAAI,KAAK,EAAE;KACrB;AAED;;;;;AAKG;IACI,OAAO,wBAAwB,CAAC,KAAY,EAAA;QAC/C,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;IAC3C;AAEA;;;;;;;AAOG;IACI,iBAAiB,CAAC,KAAY,EAAE,SAAoB,EAAA;QACvD,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,EAAE,SAAS,CAAC;IACtD;IAEO,MAAM,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AACrB,YAAA,QACIA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,KAAK,EAAA,QAAA,EAAA,CAChBC,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,cAAc,EAAA,QAAA,EAAA,OAAA,EAAA,CAAW,EACvCA,GAAA,CAAA,GAAA,EAAA,EAAA,QAAA,EAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAA,CAAK,EACjCA,qBAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAA,CAAK,CAAA,EAAA,CAC7B;QAEd;AAEA,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ;IAC9B;AACH;;;;"}
@@ -0,0 +1,26 @@
1
+ /* Copyright (c) Cratis. All rights reserved. */
2
+ /* Licensed under the MIT license. See LICENSE file in the project root for full license information. */
3
+
4
+ .cratis-form-element {
5
+ display: flex;
6
+ flex: 1 1 auto;
7
+ align-items: stretch;
8
+ }
9
+
10
+ .cratis-form-element__addon {
11
+ display: inline-flex;
12
+ align-items: center;
13
+ justify-content: center;
14
+ padding: 0 0.75rem;
15
+ color: var(--cratis-text-color-secondary);
16
+ background: var(--cratis-surface-100);
17
+ border: 1px solid var(--cratis-surface-border);
18
+ border-right: 0;
19
+ border-top-left-radius: var(--cratis-border-radius);
20
+ border-bottom-left-radius: var(--cratis-border-radius);
21
+ }
22
+
23
+ .cratis-form-element > *:not(.cratis-form-element__addon) {
24
+ flex: 1 1 auto;
25
+ min-width: 0;
26
+ }
@@ -1,3 +1,4 @@
1
+ import './FormElement.css';
1
2
  export interface FormElementProps {
2
3
  children: React.ReactNode;
3
4
  icon: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"FormElement.d.ts","sourceRoot":"","sources":["../../../Common/FormElement.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,gBAAgB,4CAWlD,CAAC"}
1
+ {"version":3,"file":"FormElement.d.ts","sourceRoot":"","sources":["../../../Common/FormElement.tsx"],"names":[],"mappings":"AAGA,OAAO,mBAAmB,CAAC;AAK3B,MAAM,WAAW,gBAAgB;IAE7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAO1B,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB;AAcD,eAAO,MAAM,WAAW,GAAI,OAAO,gBAAgB,4CAWlD,CAAC"}
@@ -1,7 +1,20 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import './FormElement.css';
2
3
 
4
+ /**
5
+ * Lightweight wrapper that places an icon addon to the left of a form input,
6
+ * styled with the `--cratis-*` token layer (background, border, radius). Use
7
+ * it to give input fields a leading icon without pulling in PrimeReact's
8
+ * `InputGroup` chrome.
9
+ *
10
+ * ```tsx
11
+ * <FormElement icon={<i className="pi pi-user" />}>
12
+ * <InputText value={name} onChange={…} />
13
+ * </FormElement>
14
+ * ```
15
+ */
3
16
  const FormElement = (props) => {
4
- return (jsx("div", { className: "flex flex-col md:flex-row gap-3", children: jsxs("div", { className: "p-inputgroup flex-1", children: [jsx("span", { className: "p-inputgroup-addon", children: props.icon }), props.children] }) }));
17
+ return (jsx("div", { className: "flex flex-col md:flex-row gap-3", children: jsxs("div", { className: "cratis-form-element", children: [jsx("span", { className: "cratis-form-element__addon", children: props.icon }), props.children] }) }));
5
18
  };
6
19
 
7
20
  export { FormElement };
@@ -1 +1 @@
1
- {"version":3,"file":"FormElement.js","sources":["../../../Common/FormElement.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":";;AAQO,MAAM,WAAW,GAAG,CAAC,KAAuB,KAAI;IACnD,QACIA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,iCAAiC,EAAA,QAAA,EAC5CC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,qBAAqB,EAAA,QAAA,EAAA,CAChCD,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,oBAAoB,EAAA,QAAA,EAC/B,KAAK,CAAC,IAAI,EAAA,CACR,EACN,KAAK,CAAC,QAAQ,CAAA,EAAA,CACb,EAAA,CACJ;AAEd;;;;"}
1
+ {"version":3,"file":"FormElement.js","sources":["../../../Common/FormElement.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":";;;AAoBA;;;;;;;;;;;AAWG;AACI,MAAM,WAAW,GAAG,CAAC,KAAuB,KAAI;IACnD,QACIA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,iCAAiC,EAAA,QAAA,EAC5CC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,qBAAqB,EAAA,QAAA,EAAA,CAChCD,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,4BAA4B,EAAA,QAAA,EACvC,KAAK,CAAC,IAAI,EAAA,CACR,EACN,KAAK,CAAC,QAAQ,CAAA,EAAA,CACb,EAAA,CACJ;AAEd;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../../Common/Page.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElD,MAAM,WAAW,SAAU,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,eAAO,MAAM,IAAI,GAAI,gDAAwD,SAAS,4CASrF,CAAC"}
1
+ {"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../../Common/Page.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOlD,MAAM,WAAW,SAAU,SAAQ,cAAc,CAAC,cAAc,CAAC;IAM7D,KAAK,EAAE,MAAM,CAAC;IAOd,SAAS,CAAC,EAAE,OAAO,CAAC;IAGpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IAOrB,KAAK,CAAC,EAAE,OAAO,CAAA;CAClB;AAeD,eAAO,MAAM,IAAI,GAAI,gDAAwD,SAAS,4CASrF,CAAC"}
@@ -1,5 +1,18 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
 
3
+ /**
4
+ * Top-level page layout primitive. Renders a flex column that fills its parent
5
+ * vertically, with optional title heading and optional `panel` chrome around
6
+ * the main content area. Intended as the root element of every routable view.
7
+ *
8
+ * ```tsx
9
+ * <Page title="Authors" showTitle panel>
10
+ * <AuthorList />
11
+ * </Page>
12
+ * ```
13
+ *
14
+ * @param props - {@link PageProps}.
15
+ */
3
16
  const Page = ({ title, showTitle = false, children, panel, ...rest }) => {
4
17
  return (jsxs("div", { className: 'flex flex-col h-full flex-1', ...rest, children: [showTitle && jsx("h1", { className: 'text-3xl mt-3 mb-4', children: title }), jsx("main", { className: `overflow-hidden h-full flex flex-col flex-1 ${panel ? 'panel' : ''}`, children: children })] }));
5
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Page.js","sources":["../../../Common/Page.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":";;MAYa,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,GAAG,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,EAAa,KAAI;AACtF,IAAA,QACIA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,6BAA6B,KAAK,IAAI,EAAA,QAAA,EAAA,CAChD,SAAS,IAAIC,YAAI,SAAS,EAAC,oBAAoB,EAAA,QAAA,EAAE,KAAK,EAAA,CAAM,EAC7DA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,CAAA,4CAAA,EAA+C,KAAK,GAAG,OAAO,GAAG,EAAE,CAAA,CAAE,EAAA,QAAA,EACjF,QAAQ,EAAA,CACN,CAAA,EAAA,CACL;AAEd;;;;"}
1
+ {"version":3,"file":"Page.js","sources":["../../../Common/Page.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":";;AAoCA;;;;;;;;;;;;AAYG;MACU,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,GAAG,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,EAAa,KAAI;AACtF,IAAA,QACIA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,6BAA6B,KAAK,IAAI,EAAA,QAAA,EAAA,CAChD,SAAS,IAAIC,YAAI,SAAS,EAAC,oBAAoB,EAAA,QAAA,EAAE,KAAK,EAAA,CAAM,EAC7DA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,CAAA,4CAAA,EAA+C,KAAK,GAAG,OAAO,GAAG,EAAE,CAAA,CAAE,EAAA,QAAA,EACjF,QAAQ,EAAA,CACN,CAAA,EAAA,CACL;AAEd;;;;"}
@@ -3,8 +3,8 @@
3
3
 
4
4
  /* ── Tooltip bubble ──────────────────────────────────────────────────────── */
5
5
  .tooltip-bubble {
6
- background: var(--surface-100);
7
- color: var(--text-color);
8
- border: 1px solid var(--surface-border);
6
+ background: var(--cratis-surface-100);
7
+ color: var(--cratis-text-color);
8
+ border: 1px solid var(--cratis-surface-border);
9
9
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
10
10
  }
@@ -1,3 +1,4 @@
1
+ export * from './CratisComponentsProvider';
1
2
  export * from './ErrorBoundary';
2
3
  export * from './Icon';
3
4
  export * from './Page';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../Common/index.ts"],"names":[],"mappings":"AAGA,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../Common/index.ts"],"names":[],"mappings":"AAGA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"}
@@ -1,3 +1,4 @@
1
+ export { CratisComponentsProvider, cratisDefaults, mergeCratisComponentsConfig } from './CratisComponentsProvider.js';
1
2
  export { ErrorBoundary } from './ErrorBoundary.js';
2
3
  export { IconDisplay } from './Icon.js';
3
4
  export { Page } from './Page.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../Common/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAAA;AACA"}
1
+ {"version":3,"file":"index.js","sources":["../../../Common/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;AAAA;AACA"}
@@ -1,8 +1,9 @@
1
1
  import { ReactNode } from 'react';
2
2
  import React from 'react';
3
3
  import { MenuItem as PrimeMenuItem } from 'primereact/menuitem';
4
+ import { type MenubarProps } from 'primereact/menubar';
4
5
  import { IObservableQueryFor, IQueryFor } from '@cratis/arc/queries';
5
- import { DataTableFilterMeta, DataTableSelectionSingleChangeEvent } from 'primereact/datatable';
6
+ import { DataTableFilterMeta, DataTableSelectionSingleChangeEvent, type DataTableProps as PrimeDataTableProps } from 'primereact/datatable';
6
7
  import { Constructor } from '@cratis/fundamentals';
7
8
  export interface MenuItemProps extends PrimeMenuItem {
8
9
  disableOnUnselected?: boolean;
@@ -20,7 +21,7 @@ export interface IDetailsComponentProps<TDataType> {
20
21
  item: TDataType;
21
22
  onRefresh?: () => void;
22
23
  }
23
- export interface DataPageProps<TQuery extends IQueryFor<TDataType> | IObservableQueryFor<TDataType>, TDataType, TArguments> {
24
+ export interface DataPageProps<TQuery extends IQueryFor<TDataType> | IObservableQueryFor<TDataType>, TDataType extends object, TArguments> {
24
25
  title: string;
25
26
  children: ReactNode;
26
27
  detailsComponent?: React.FC<IDetailsComponentProps<any>>;
@@ -34,9 +35,17 @@ export interface DataPageProps<TQuery extends IQueryFor<TDataType> | IObservable
34
35
  defaultFilters?: DataTableFilterMeta;
35
36
  clientFiltering?: boolean;
36
37
  onRefresh?(): void;
38
+ tableClassName?: string;
39
+ tablePt?: PrimeDataTableProps<TDataType[]>['pt'];
40
+ tablePtOptions?: PrimeDataTableProps<TDataType[]>['ptOptions'];
41
+ tableUnstyled?: boolean;
42
+ menubarClassName?: string;
43
+ menubarPt?: MenubarProps['pt'];
44
+ menubarPtOptions?: MenubarProps['ptOptions'];
45
+ menubarUnstyled?: boolean;
37
46
  }
38
47
  declare const DataPage: {
39
- <TQuery extends IQueryFor<TDataType> | IObservableQueryFor<TDataType, TArguments>, TDataType, TArguments extends object>(props: DataPageProps<TQuery, TDataType, TArguments>): import("react/jsx-runtime").JSX.Element;
48
+ <TQuery extends IQueryFor<TDataType> | IObservableQueryFor<TDataType, TArguments>, TDataType extends object, TArguments extends object>(props: DataPageProps<TQuery, TDataType, TArguments>): import("react/jsx-runtime").JSX.Element;
40
49
  MenuItems: ({ children }: MenuItemsProps) => import("react/jsx-runtime").JSX.Element;
41
50
  Columns: ({ children }: ColumnProps) => import("react/jsx-runtime").JSX.Element;
42
51
  };
@@ -1 +1 @@
1
- {"version":3,"file":"DataPage.d.ts","sourceRoot":"","sources":["../../../DataPage/DataPage.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAW,MAAM,OAAO,CAAC;AAE3C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAY,MAAM,qBAAqB,CAAC;AAE/E,OAAO,EAAE,mBAAmB,EAAE,mCAAmC,EAAE,MAAM,sBAAsB,CAAC;AAGhG,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAInD,MAAM,WAAW,aAAc,SAAQ,aAAa;IAChD,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC;AAGD,eAAO,MAAM,QAAQ,GAAI,GAAG,aAAa,SAExC,CAAC;AAEF,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IACxB,QAAQ,EAAE,SAAS,CAAC;CACvB;AAED,eAAO,MAAM,SAAS,GAAI,cAAc,cAAc,4CA0BrD,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,cAAc,WAAW,4CAwBhD,CAAC;AAEF,MAAM,WAAW,sBAAsB,CAAC,SAAS;IAC7C,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAoBD,MAAM,WAAW,aAAa,CAAC,MAAM,SAAS,SAAS,CAAC,SAAS,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,UAAU;IAItH,KAAK,EAAE,MAAM,CAAC;IAKd,QAAQ,EAAE,SAAS,CAAC;IAKpB,gBAAgB,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC;IAKzD,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAK3B,cAAc,CAAC,EAAE,UAAU,CAAC;IAK5B,YAAY,EAAE,MAAM,CAAC;IAKrB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAK7B,SAAS,CAAC,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC;IAKnC,iBAAiB,CAAC,CAAC,KAAK,EAAE,mCAAmC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAK1E,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAK1C,cAAc,CAAC,EAAE,mBAAmB,CAAC;IAKrC,eAAe,CAAC,EAAE,OAAO,CAAC;IAK1B,SAAS,CAAC,IAAI,IAAI,CAAC;CACtB;AAOD,QAAA,MAAM,QAAQ;KAAI,MAAM,SAAS,SAAS,CAAC,SAAS,CAAC,GAAG,mBAAmB,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,UAAU,SAAS,MAAM,SAAS,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC;8BArJrJ,cAAc;4BA4BhB,WAAW;CAqJhD,CAAC;AAKF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"DataPage.d.ts","sourceRoot":"","sources":["../../../DataPage/DataPage.tsx"],"names":[],"mappings":"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"}
@@ -7,10 +7,22 @@ import { DataTableForObservableQuery } from '../DataTables/DataTableForObservabl
7
7
  import { DataTableForQuery } from '../DataTables/DataTableForQuery.js';
8
8
  import { Allotment } from 'allotment';
9
9
 
10
+ /**
11
+ * Declarative menu item for use inside `<DataPage.MenuItems>`. Renders nothing
12
+ * directly; the surrounding {@link MenuItems} component reads its props and
13
+ * forwards them to the action `Menubar`.
14
+ */
10
15
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
11
16
  const MenuItem = (_) => {
12
17
  return null;
13
18
  };
19
+ /**
20
+ * Renders an action `Menubar` at the top of a {@link DataPage}, populated from
21
+ * `<DataPage.MenuItem>` children. Each menu item's `disableOnUnselected` flag
22
+ * is automatically honored against the current row selection.
23
+ *
24
+ * Use as `<DataPage.MenuItems>` inside a `<DataPage>`.
25
+ */
14
26
  const MenuItems = ({ children }) => {
15
27
  const context = useDataPageContext();
16
28
  const isDisabled = useMemo(() => {
@@ -29,15 +41,24 @@ const MenuItems = ({ children }) => {
29
41
  });
30
42
  return menuItems;
31
43
  }, [children, context.selectedItem]);
32
- return (jsx("div", { className: "px-4 py-2", children: jsx(Menubar, { "aria-label": "Actions", model: items }) }));
44
+ return (jsx("div", { className: "px-4 py-2", children: jsx(Menubar, { "aria-label": "Actions", model: items, className: context.menubarClassName, pt: context.menubarPt, ptOptions: context.menubarPtOptions, unstyled: context.menubarUnstyled }) }));
33
45
  };
46
+ /**
47
+ * Renders the data table at the body of a {@link DataPage}. Automatically
48
+ * selects between {@link DataTableForQuery} (snapshot query) and
49
+ * {@link DataTableForObservableQuery} (real-time observable) based on the
50
+ * `query` type provided to the surrounding `<DataPage>`.
51
+ *
52
+ * Use as `<DataPage.Columns>` inside a `<DataPage>`, with PrimeReact `<Column>`
53
+ * children defining the table columns.
54
+ */
34
55
  const Columns = ({ children }) => {
35
56
  const context = useDataPageContext();
36
57
  if (context.query.prototype instanceof QueryFor) {
37
- return (jsx(DataTableForQuery, { ...context, selection: context.selectedItem, onSelectionChange: context.onSelectionChanged, clientFiltering: context.clientFiltering, children: children }));
58
+ return (jsx(DataTableForQuery, { ...context, selection: context.selectedItem, onSelectionChange: context.onSelectionChanged, clientFiltering: context.clientFiltering, className: context.tableClassName, pt: context.tablePt, ptOptions: context.tablePtOptions, unstyled: context.tableUnstyled, children: children }));
38
59
  }
39
60
  else {
40
- return (jsx(DataTableForObservableQuery, { ...context, selection: context.selectedItem, onSelectionChange: context.onSelectionChanged, clientFiltering: context.clientFiltering, children: children }));
61
+ return (jsx(DataTableForObservableQuery, { ...context, selection: context.selectedItem, onSelectionChange: context.onSelectionChanged, clientFiltering: context.clientFiltering, className: context.tableClassName, pt: context.tablePt, ptOptions: context.tablePtOptions, unstyled: context.tableUnstyled, children: children }));
41
62
  }
42
63
  };
43
64
  const DataPageContext = React.createContext(null);
@@ -49,9 +70,86 @@ function useDataPageContext() {
49
70
  return context;
50
71
  }
51
72
  /**
52
- * Represents a data driven page with a menu and custom defined columns for the data table.
53
- * @param props Props for the DataPage component
54
- * @returns Function to render the DataPage component
73
+ * A page primitive that combines an action menubar, a query-backed data
74
+ * table, and an optional details pane into one layout. Designed as the
75
+ * default rendering for "list view" pages in an Arc app.
76
+ *
77
+ * ## What `TQuery` is
78
+ *
79
+ * `TQuery` is the auto-generated TypeScript class produced by the Arc proxy
80
+ * generator from a C# read model query. Two flavors are accepted and
81
+ * **selected automatically at runtime** based on the class hierarchy:
82
+ *
83
+ * - **`IQueryFor<TDataType, TArguments>`** — a snapshot query. Re-fetched
84
+ * when `queryArguments` change or when the page is mounted. Rendered
85
+ * through {@link DataTableForQuery} internally.
86
+ * - **`IObservableQueryFor<TDataType, TArguments>`** — a real-time
87
+ * subscription. Connects to the backend over WebSocket and re-renders
88
+ * automatically whenever the underlying read model changes server-side.
89
+ * Rendered through {@link DataTableForObservableQuery} internally.
90
+ *
91
+ * You don't pick which inner table to use — `DataPage` inspects the
92
+ * prototype chain (`context.query.prototype instanceof QueryFor`) and
93
+ * mounts the correct one.
94
+ *
95
+ * ## Declarative composition
96
+ *
97
+ * Three children build up the page:
98
+ *
99
+ * - **`<DataPage.MenuItems>`** wraps `<DataPage.MenuItem>` elements that
100
+ * become the action `Menubar` at the top. Each item declares its `icon`,
101
+ * `label`, and `command` (an `onClick` handler). Items can be marked
102
+ * `disableOnUnselected` so they automatically grey out until the user
103
+ * picks a row — useful for Edit / Delete actions that need a target.
104
+ *
105
+ * - **`<DataPage.Columns>`** wraps PrimeReact `<Column>` elements that
106
+ * describe the visible columns. The columns themselves are
107
+ * PrimeReact's — anything supported by their `DataTable` `<Column>` is
108
+ * supported here (sorting, filtering, custom body templates, …).
109
+ *
110
+ * - **`detailsComponent`** (optional) is a React component rendered in a
111
+ * right-hand pane via Allotment when a row is selected. It receives the
112
+ * selected item as `item` and an `onRefresh` callback the parent can
113
+ * invoke to ask the page to refetch.
114
+ *
115
+ * ## Selection lifecycle
116
+ *
117
+ * `DataPage` keeps the current selection in local state and threads it to
118
+ * the inner table, the menubar (`disableOnUnselected` items follow it),
119
+ * and the optional details pane. The `onSelectionChange` prop is invoked
120
+ * after every change if the consumer also needs to react to it.
121
+ *
122
+ * ```tsx
123
+ * <DataPage<AllAuthors, Author, never>
124
+ * title="Authors"
125
+ * query={AllAuthors} // proxy from C#
126
+ * detailsComponent={AuthorDetails}>
127
+ * <DataPage.MenuItems>
128
+ * <DataPage.MenuItem icon={FaPlus} label="Add" command={onAdd} />
129
+ * <DataPage.MenuItem icon={FaPencil} label="Edit" command={onEdit}
130
+ * disableOnUnselected />
131
+ * <DataPage.MenuItem icon={FaTrash} label="Delete" command={onDelete}
132
+ * disableOnUnselected />
133
+ * </DataPage.MenuItems>
134
+ * <DataPage.Columns>
135
+ * <Column field="name" header="Name" sortable />
136
+ * <Column field="email" header="Email" />
137
+ * </DataPage.Columns>
138
+ * </DataPage>
139
+ * ```
140
+ *
141
+ * ## Styling
142
+ *
143
+ * The inner DataTable and Menubar each have their own per-slot props:
144
+ * `tablePt` / `tableUnstyled` / `tableClassName` for the table;
145
+ * `menubarPt` / `menubarUnstyled` / `menubarClassName` for the action
146
+ * menubar. See the [pass-through cheat sheet](../../Documentation/Styling/pass-through.md)
147
+ * for the full slot reference.
148
+ *
149
+ * @typeParam TQuery - The query class (proxy generated from a C# read model query).
150
+ * @typeParam TDataType - The row type returned by the query.
151
+ * @typeParam TArguments - The query's argument object type.
152
+ * @param props - {@link DataPageProps}.
55
153
  */
56
154
  const DataPage = (props) => {
57
155
  const [selectedItem, setSelectedItem] = React.useState(undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"DataPage.js","sources":["../../../DataPage/DataPage.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"DataPage.js","sources":["../../../DataPage/DataPage.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { DataTableFilterMeta, DataTableSelectionSingleChangeEvent } from 'primereact/datatable';
1
+ import { DataTableFilterMeta, DataTableSelectionSingleChangeEvent, type DataTableProps as PrimeDataTableProps } from 'primereact/datatable';
2
+ import { type PaginatorProps } from 'primereact/paginator';
2
3
  import { Constructor } from '@cratis/fundamentals';
3
4
  import { IObservableQueryFor } from '@cratis/arc/queries';
4
5
  import { ReactNode } from 'react';
@@ -13,6 +14,13 @@ export interface DataTableForObservableQueryProps<TQuery extends IObservableQuer
13
14
  globalFilterFields?: string[] | undefined;
14
15
  defaultFilters?: DataTableFilterMeta;
15
16
  clientFiltering?: boolean;
17
+ className?: string;
18
+ pt?: PrimeDataTableProps<TDataType[]>['pt'];
19
+ ptOptions?: PrimeDataTableProps<TDataType[]>['ptOptions'];
20
+ unstyled?: boolean;
21
+ paginatorPt?: PaginatorProps['pt'];
22
+ paginatorPtOptions?: PaginatorProps['ptOptions'];
23
+ paginatorUnstyled?: boolean;
16
24
  }
17
25
  export declare const DataTableForObservableQuery: <TQuery extends IObservableQueryFor<TDataType, TArguments>, TDataType extends object, TArguments extends object>(props: DataTableForObservableQueryProps<TQuery, TDataType, TArguments>) => import("react/jsx-runtime").JSX.Element;
18
26
  //# sourceMappingURL=DataTableForObservableQuery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableForObservableQuery.d.ts","sourceRoot":"","sources":["../../../DataTables/DataTableForObservableQuery.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAa,mBAAmB,EAAE,mCAAmC,EAAE,MAAM,sBAAsB,CAAC;AAE3G,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAU,MAAM,qBAAqB,CAAC;AAElE,OAAO,EAAE,SAAS,EAA+B,MAAM,OAAO,CAAC;AAK/D,MAAM,WAAW,gCAAgC,CAAC,MAAM,SAAS,mBAAmB,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM;IAI5J,QAAQ,CAAC,EAAE,SAAS,CAAC;IAKrB,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAK3B,cAAc,CAAC,EAAE,UAAU,CAAC;IAK5B,YAAY,EAAE,MAAM,CAAC;IAKrB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAK7B,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC;IAKzC,iBAAiB,CAAC,CAAC,KAAK,EAAE,mCAAmC,CAAC,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC;IAKlF,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAK1C,cAAc,CAAC,EAAE,mBAAmB,CAAC;IAKrC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AASD,eAAO,MAAM,2BAA2B,GAAI,MAAM,SAAS,mBAAmB,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,EAAE,OAAO,gCAAgC,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,4CAgGjO,CAAC"}
1
+ {"version":3,"file":"DataTableForObservableQuery.d.ts","sourceRoot":"","sources":["../../../DataTables/DataTableForObservableQuery.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAa,mBAAmB,EAAE,mCAAmC,EAAE,KAAK,cAAc,IAAI,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACvJ,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAU,MAAM,qBAAqB,CAAC;AAElE,OAAO,EAAE,SAAS,EAA+B,MAAM,OAAO,CAAC;AAS/D,MAAM,WAAW,gCAAgC,CAAC,MAAM,SAAS,mBAAmB,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM;IAI5J,QAAQ,CAAC,EAAE,SAAS,CAAC;IAKrB,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAK3B,cAAc,CAAC,EAAE,UAAU,CAAC;IAK5B,YAAY,EAAE,MAAM,CAAC;IAKrB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAK7B,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC;IAKzC,iBAAiB,CAAC,CAAC,KAAK,EAAE,mCAAmC,CAAC,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC;IAKlF,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAK1C,cAAc,CAAC,EAAE,mBAAmB,CAAC;IAKrC,eAAe,CAAC,EAAE,OAAO,CAAC;IAK1B,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,EAAE,CAAC,EAAE,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAG5C,SAAS,CAAC,EAAE,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;IAG1D,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,WAAW,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAGnC,kBAAkB,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IAGjD,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAoED,eAAO,MAAM,2BAA2B,GAAI,MAAM,SAAS,mBAAmB,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,EAAE,OAAO,gCAAgC,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,4CAuGjO,CAAC"}
@@ -7,9 +7,68 @@ import { useState, useRef, useEffect } from 'react';
7
7
 
8
8
  const paging = new Paging(0, 20);
9
9
  /**
10
- * Represents a DataTable for a query.
11
- * @param props Props for the component
12
- * @returns Function to render the DataTableForQuery component
10
+ * A paged data table bound to a Cratis Arc **observable** query
11
+ * (`IObservableQueryFor<TDataType, TArguments>`). Subscribes via
12
+ * `useObservableQueryWithPaging` from `@cratis/arc.react/queries`, which
13
+ * opens a WebSocket connection to the backend and re-renders the table
14
+ * automatically whenever the underlying read model changes server-side.
15
+ *
16
+ * ## What `TQuery` is
17
+ *
18
+ * `TQuery` is the auto-generated TypeScript class produced by the Arc proxy
19
+ * generator from a C# read model's static observable query method (one
20
+ * that returns `ISubject<TDataType>` on the backend). The proxy hooks the
21
+ * WebSocket subscription up; you only deal with the resulting React data.
22
+ *
23
+ * ## What's unique
24
+ *
25
+ * - **Real-time updates**: server-side projection writes flow into the
26
+ * table within the same render cycle, with no manual polling or refresh
27
+ * button. The connection re-subscribes automatically when
28
+ * `queryArguments` change.
29
+ * - **Resize-aware scrollable height**: the wrapper observes its container
30
+ * via `ResizeObserver` and adjusts the inner DataTable height to fit,
31
+ * so the table behaves correctly inside flex layouts (it never overflows
32
+ * beyond its parent or shrinks below 200px).
33
+ * - **Lazy paging + optional client filtering**: same modes as
34
+ * {@link DataTableForQuery}, but the page is re-issued through the
35
+ * observable subscription when the user pages.
36
+ *
37
+ * Use {@link DataTableForQuery} for snapshot queries that don't need live
38
+ * updates. Use {@link DataPage} for a higher-level layout that combines
39
+ * this table with a menubar, selection, and a details pane.
40
+ *
41
+ * ## Children
42
+ *
43
+ * Children are PrimeReact `<Column>` elements — same as
44
+ * {@link DataTableForQuery}.
45
+ *
46
+ * ```tsx
47
+ * import { DataTableForObservableQuery } from '@cratis/components/DataTables';
48
+ * import { Column } from 'primereact/column';
49
+ * import { ActiveSessions } from './ActiveSessions'; // proxy from C#
50
+ *
51
+ * <DataTableForObservableQuery
52
+ * query={ActiveSessions}
53
+ * emptyMessage="No active sessions">
54
+ * <Column field="userName" header="User" />
55
+ * <Column field="startedAt" header="Started" />
56
+ * </DataTableForObservableQuery>
57
+ * ```
58
+ *
59
+ * Rows appear and disappear in this table as users log in / log out
60
+ * server-side — no manual refresh required.
61
+ *
62
+ * ## Styling
63
+ *
64
+ * Identical to {@link DataTableForQuery}: `pt` / `ptOptions` / `unstyled` /
65
+ * `className` target the inner DataTable; `paginatorPt` and friends target
66
+ * the inner Paginator. See [pass-through cheat sheet](../../Documentation/Styling/pass-through.md).
67
+ *
68
+ * @typeParam TQuery - The observable query class (proxy generated from C# `IObservableQueryFor`).
69
+ * @typeParam TDataType - The row type returned by the query.
70
+ * @typeParam TArguments - The query's argument object type.
71
+ * @param props - {@link DataTableForObservableQueryProps}.
13
72
  */
14
73
  const DataTableForObservableQuery = (props) => {
15
74
  const [filters, setFilters] = useState(props.defaultFilters ?? {});
@@ -56,8 +115,8 @@ const DataTableForObservableQuery = (props) => {
56
115
  display: 'flex',
57
116
  flexDirection: 'column',
58
117
  height: '100%',
59
- border: '1px solid var(--surface-border)',
60
- borderRadius: 'var(--border-radius)',
118
+ border: '1px solid var(--cratis-surface-border)',
119
+ borderRadius: 'var(--cratis-border-radius)',
61
120
  overflow: 'hidden'
62
121
  }, children: [jsx("div", { style: { height: `${tableHeight}px`, overflow: 'hidden' }, children: jsx(DataTable, { value: result.data, lazy: !isClientFiltering, rows: paging.pageSize, totalRecords: totalRecords, scrollable: true, scrollHeight: '100%', selectionMode: 'single', selection: props.selection, onSelectionChange: props.onSelectionChange, dataKey: props.dataKey, filters: filters, filterDisplay: 'menu', onFilter: (e) => {
63
122
  setFilters(e.filters);
@@ -65,7 +124,7 @@ const DataTableForObservableQuery = (props) => {
65
124
  const filteredValue = e.filteredValue;
66
125
  setFilteredTotal(filteredValue ? filteredValue.length : undefined);
67
126
  }
68
- }, globalFilterFields: props.globalFilterFields, emptyMessage: props.emptyMessage, children: props.children }) }), result.paging.totalItems > 0 && (jsx("div", { style: { borderTop: '1px solid var(--surface-border)' }, children: jsx(Paginator, { first: result.paging.page * paging.pageSize, rows: paging.pageSize, totalRecords: result.paging.totalItems, onPageChange: (e) => setPage(e.page) }) }))] }));
127
+ }, globalFilterFields: props.globalFilterFields, emptyMessage: props.emptyMessage, className: props.className, pt: props.pt, ptOptions: props.ptOptions, unstyled: props.unstyled, children: props.children }) }), result.paging.totalItems > 0 && (jsx("div", { style: { borderTop: '1px solid var(--cratis-surface-border)' }, children: jsx(Paginator, { first: result.paging.page * paging.pageSize, rows: paging.pageSize, totalRecords: result.paging.totalItems, onPageChange: (e) => setPage(e.page), pt: props.paginatorPt, ptOptions: props.paginatorPtOptions, unstyled: props.paginatorUnstyled }) }))] }));
69
128
  };
70
129
 
71
130
  export { DataTableForObservableQuery };
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableForObservableQuery.js","sources":["../../../DataTables/DataTableForObservableQuery.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"DataTableForObservableQuery.js","sources":["../../../DataTables/DataTableForObservableQuery.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}