@cratis/components 0.1.18 → 1.0.3

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 (294) hide show
  1. package/README.md +83 -0
  2. package/dist/cjs/CommandDialog/CommandDialog.js +14 -25
  3. package/dist/cjs/CommandDialog/CommandDialog.js.map +1 -1
  4. package/dist/cjs/CommandForm/fields/CheckboxField.js +2 -2
  5. package/dist/cjs/CommandForm/fields/CheckboxField.js.map +1 -1
  6. package/dist/cjs/CommandForm/fields/DropdownField.js +5 -5
  7. package/dist/cjs/CommandForm/fields/DropdownField.js.map +1 -1
  8. package/dist/cjs/CommandForm/fields/InputTextField.js +2 -2
  9. package/dist/cjs/CommandForm/fields/InputTextField.js.map +1 -1
  10. package/dist/cjs/CommandForm/fields/NumberField.js +2 -2
  11. package/dist/cjs/CommandForm/fields/NumberField.js.map +1 -1
  12. package/dist/cjs/CommandForm/fields/SliderField.js +5 -9
  13. package/dist/cjs/CommandForm/fields/SliderField.js.map +1 -1
  14. package/dist/cjs/CommandForm/fields/TextAreaField.js +2 -2
  15. package/dist/cjs/CommandForm/fields/TextAreaField.js.map +1 -1
  16. package/dist/cjs/CommandForm/index.js +35 -15
  17. package/dist/cjs/CommandForm/index.js.map +1 -1
  18. package/dist/cjs/Common/ErrorBoundary.js +26 -0
  19. package/dist/cjs/Common/ErrorBoundary.js.map +1 -0
  20. package/dist/cjs/Common/FormElement.js +10 -0
  21. package/dist/cjs/Common/FormElement.js.map +1 -0
  22. package/dist/cjs/Common/index.js +12 -0
  23. package/dist/cjs/Common/index.js.map +1 -0
  24. package/dist/cjs/DataTables/DataTableForObservableQuery.js +53 -1
  25. package/dist/cjs/DataTables/DataTableForObservableQuery.js.map +1 -1
  26. package/dist/cjs/DataTables/DataTableForQuery.js +19 -1
  27. package/dist/cjs/DataTables/DataTableForQuery.js.map +1 -1
  28. package/dist/cjs/Dialogs/BusyIndicatorDialog.js +2 -3
  29. package/dist/cjs/Dialogs/BusyIndicatorDialog.js.map +1 -1
  30. package/dist/cjs/Dialogs/ConfirmationDialog.js +4 -21
  31. package/dist/cjs/Dialogs/ConfirmationDialog.js.map +1 -1
  32. package/dist/cjs/Dialogs/Dialog.js +66 -0
  33. package/dist/cjs/Dialogs/Dialog.js.map +1 -0
  34. package/dist/cjs/Dialogs/index.js +4 -2
  35. package/dist/cjs/Dialogs/index.js.map +1 -1
  36. package/dist/cjs/ObjectContentEditor/ObjectContentEditor.js +156 -0
  37. package/dist/cjs/ObjectContentEditor/ObjectContentEditor.js.map +1 -0
  38. package/dist/cjs/ObjectContentEditor/index.js +8 -0
  39. package/dist/cjs/ObjectContentEditor/index.js.map +1 -0
  40. package/dist/cjs/ObjectNavigationalBar/ObjectNavigationalBar.js +45 -0
  41. package/dist/cjs/ObjectNavigationalBar/ObjectNavigationalBar.js.map +1 -0
  42. package/dist/cjs/ObjectNavigationalBar/index.js +8 -0
  43. package/dist/cjs/ObjectNavigationalBar/index.js.map +1 -0
  44. package/dist/cjs/PivotViewer/components/PivotCanvas.js.map +1 -1
  45. package/dist/cjs/PivotViewer/components/PivotViewerMain.js.map +1 -1
  46. package/dist/cjs/PivotViewer/components/pivot/groups.js +15 -15
  47. package/dist/cjs/PivotViewer/components/pivot/groups.js.map +1 -1
  48. package/dist/cjs/PivotViewer/components/pivot/sprites.js +2 -2
  49. package/dist/cjs/PivotViewer/components/pivot/sprites.js.map +1 -1
  50. package/dist/cjs/PivotViewer/types.js.map +1 -1
  51. package/dist/cjs/SchemaEditor/NameCell.js +38 -0
  52. package/dist/cjs/SchemaEditor/NameCell.js.map +1 -0
  53. package/dist/cjs/SchemaEditor/SchemaEditor.js +352 -0
  54. package/dist/cjs/SchemaEditor/SchemaEditor.js.map +1 -0
  55. package/dist/cjs/SchemaEditor/SchemaEditor.module.css +11 -0
  56. package/dist/cjs/SchemaEditor/TypeCell.js +102 -0
  57. package/dist/cjs/SchemaEditor/TypeCell.js.map +1 -0
  58. package/dist/cjs/SchemaEditor/index.js +10 -0
  59. package/dist/cjs/SchemaEditor/index.js.map +1 -0
  60. package/dist/cjs/TimeMachine/TimeMachine.js +0 -3
  61. package/dist/cjs/TimeMachine/TimeMachine.js.map +1 -1
  62. package/dist/cjs/index.js +20 -12
  63. package/dist/cjs/index.js.map +1 -1
  64. package/dist/cjs/package.json +3 -0
  65. package/dist/cjs/types/TypeFormat.js +20 -0
  66. package/dist/cjs/types/TypeFormat.js.map +1 -0
  67. package/dist/esm/CommandDialog/CommandDialog.d.ts +1 -1
  68. package/dist/esm/CommandDialog/CommandDialog.d.ts.map +1 -1
  69. package/dist/esm/CommandDialog/CommandDialog.js +15 -26
  70. package/dist/esm/CommandDialog/CommandDialog.js.map +1 -1
  71. package/dist/esm/CommandDialog/CommandDialog.stories.d.ts +1 -0
  72. package/dist/esm/CommandDialog/CommandDialog.stories.d.ts.map +1 -1
  73. package/dist/esm/CommandDialog/CommandDialog.stories.js +57 -3
  74. package/dist/esm/CommandDialog/CommandDialog.stories.js.map +1 -1
  75. package/dist/esm/CommandForm/fields/CheckboxField.d.ts +3 -2
  76. package/dist/esm/CommandForm/fields/CheckboxField.d.ts.map +1 -1
  77. package/dist/esm/CommandForm/fields/CheckboxField.js +1 -1
  78. package/dist/esm/CommandForm/fields/CheckboxField.js.map +1 -1
  79. package/dist/esm/CommandForm/fields/DropdownField.d.ts +7 -6
  80. package/dist/esm/CommandForm/fields/DropdownField.d.ts.map +1 -1
  81. package/dist/esm/CommandForm/fields/DropdownField.js +6 -6
  82. package/dist/esm/CommandForm/fields/DropdownField.js.map +1 -1
  83. package/dist/esm/CommandForm/fields/Fields.stories.d.ts +13 -0
  84. package/dist/esm/CommandForm/fields/Fields.stories.d.ts.map +1 -0
  85. package/dist/esm/CommandForm/fields/Fields.stories.js +137 -0
  86. package/dist/esm/CommandForm/fields/Fields.stories.js.map +1 -0
  87. package/dist/esm/CommandForm/fields/InputTextField.d.ts +3 -2
  88. package/dist/esm/CommandForm/fields/InputTextField.d.ts.map +1 -1
  89. package/dist/esm/CommandForm/fields/InputTextField.js +1 -1
  90. package/dist/esm/CommandForm/fields/InputTextField.js.map +1 -1
  91. package/dist/esm/CommandForm/fields/NumberField.d.ts +3 -2
  92. package/dist/esm/CommandForm/fields/NumberField.d.ts.map +1 -1
  93. package/dist/esm/CommandForm/fields/NumberField.js +1 -1
  94. package/dist/esm/CommandForm/fields/NumberField.js.map +1 -1
  95. package/dist/esm/CommandForm/fields/SliderField.d.ts +5 -4
  96. package/dist/esm/CommandForm/fields/SliderField.d.ts.map +1 -1
  97. package/dist/esm/CommandForm/fields/SliderField.js +5 -9
  98. package/dist/esm/CommandForm/fields/SliderField.js.map +1 -1
  99. package/dist/esm/CommandForm/fields/TextAreaField.d.ts +3 -2
  100. package/dist/esm/CommandForm/fields/TextAreaField.d.ts.map +1 -1
  101. package/dist/esm/CommandForm/fields/TextAreaField.js +1 -1
  102. package/dist/esm/CommandForm/fields/TextAreaField.js.map +1 -1
  103. package/dist/esm/CommandForm/fields/index.d.ts +2 -2
  104. package/dist/esm/CommandForm/fields/index.d.ts.map +1 -1
  105. package/dist/esm/CommandForm/fields/index.js +2 -2
  106. package/dist/esm/CommandForm/fields/index.js.map +1 -1
  107. package/dist/esm/CommandForm/index.d.ts +1 -5
  108. package/dist/esm/CommandForm/index.d.ts.map +1 -1
  109. package/dist/esm/CommandForm/index.js +3 -7
  110. package/dist/esm/CommandForm/index.js.map +1 -1
  111. package/dist/esm/Common/ErrorBoundary.d.ts +1 -1
  112. package/dist/esm/Common/ErrorBoundary.js +7 -4
  113. package/dist/esm/Common/ErrorBoundary.js.map +1 -1
  114. package/dist/esm/Common/ErrorBoundary.stories.d.ts +7 -7
  115. package/dist/esm/Common/ErrorBoundary.stories.d.ts.map +1 -1
  116. package/dist/esm/Common/ErrorBoundary.stories.js +21 -5
  117. package/dist/esm/Common/ErrorBoundary.stories.js.map +1 -1
  118. package/dist/esm/Common/FormElement.js +7 -4
  119. package/dist/esm/Common/FormElement.js.map +1 -1
  120. package/dist/esm/Common/FormElement.stories.d.ts +8 -7
  121. package/dist/esm/Common/FormElement.stories.d.ts.map +1 -1
  122. package/dist/esm/Common/FormElement.stories.js +25 -4
  123. package/dist/esm/Common/FormElement.stories.js.map +1 -1
  124. package/dist/esm/Common/Page.stories.d.ts +7 -7
  125. package/dist/esm/Common/Page.stories.d.ts.map +1 -1
  126. package/dist/esm/Common/Page.stories.js +20 -5
  127. package/dist/esm/Common/Page.stories.js.map +1 -1
  128. package/dist/esm/Common/index.js +4 -4
  129. package/dist/esm/Common/index.js.map +1 -1
  130. package/dist/esm/DataPage/DataPage.stories.d.ts +7 -7
  131. package/dist/esm/DataPage/DataPage.stories.d.ts.map +1 -1
  132. package/dist/esm/DataPage/DataPage.stories.js +33 -5
  133. package/dist/esm/DataPage/DataPage.stories.js.map +1 -1
  134. package/dist/esm/DataTables/DataTableForObservableQuery.d.ts +1 -0
  135. package/dist/esm/DataTables/DataTableForObservableQuery.d.ts.map +1 -1
  136. package/dist/esm/DataTables/DataTableForObservableQuery.js +55 -3
  137. package/dist/esm/DataTables/DataTableForObservableQuery.js.map +1 -1
  138. package/dist/esm/DataTables/DataTableForObservableQuery.stories.d.ts +7 -7
  139. package/dist/esm/DataTables/DataTableForObservableQuery.stories.d.ts.map +1 -1
  140. package/dist/esm/DataTables/DataTableForObservableQuery.stories.js +55 -5
  141. package/dist/esm/DataTables/DataTableForObservableQuery.stories.js.map +1 -1
  142. package/dist/esm/DataTables/DataTableForQuery.d.ts +1 -0
  143. package/dist/esm/DataTables/DataTableForQuery.d.ts.map +1 -1
  144. package/dist/esm/DataTables/DataTableForQuery.js +21 -3
  145. package/dist/esm/DataTables/DataTableForQuery.js.map +1 -1
  146. package/dist/esm/DataTables/DataTableForQuery.stories.d.ts +7 -7
  147. package/dist/esm/DataTables/DataTableForQuery.stories.d.ts.map +1 -1
  148. package/dist/esm/DataTables/DataTableForQuery.stories.js +31 -5
  149. package/dist/esm/DataTables/DataTableForQuery.stories.js.map +1 -1
  150. package/dist/esm/Dialogs/BusyIndicatorDialog.d.ts.map +1 -1
  151. package/dist/esm/Dialogs/BusyIndicatorDialog.js +3 -4
  152. package/dist/esm/Dialogs/BusyIndicatorDialog.js.map +1 -1
  153. package/dist/esm/Dialogs/ConfirmationDialog.d.ts.map +1 -1
  154. package/dist/esm/Dialogs/ConfirmationDialog.js +6 -23
  155. package/dist/esm/Dialogs/ConfirmationDialog.js.map +1 -1
  156. package/dist/esm/Dialogs/Dialog.d.ts +23 -0
  157. package/dist/esm/Dialogs/Dialog.d.ts.map +1 -0
  158. package/dist/esm/Dialogs/Dialog.js +64 -0
  159. package/dist/esm/Dialogs/Dialog.js.map +1 -0
  160. package/dist/esm/Dialogs/index.d.ts +2 -1
  161. package/dist/esm/Dialogs/index.d.ts.map +1 -1
  162. package/dist/esm/Dialogs/index.js +2 -1
  163. package/dist/esm/Dialogs/index.js.map +1 -1
  164. package/dist/esm/ObjectContentEditor/ObjectContentEditor.d.ts +8 -0
  165. package/dist/esm/ObjectContentEditor/ObjectContentEditor.d.ts.map +1 -0
  166. package/dist/esm/ObjectContentEditor/ObjectContentEditor.js +135 -0
  167. package/dist/esm/ObjectContentEditor/ObjectContentEditor.js.map +1 -0
  168. package/dist/esm/ObjectContentEditor/ObjectContentEditor.stories.d.ts +10 -0
  169. package/dist/esm/ObjectContentEditor/ObjectContentEditor.stories.d.ts.map +1 -0
  170. package/dist/esm/ObjectContentEditor/ObjectContentEditor.stories.js +144 -0
  171. package/dist/esm/ObjectContentEditor/ObjectContentEditor.stories.js.map +1 -0
  172. package/dist/esm/ObjectContentEditor/index.d.ts +2 -0
  173. package/dist/esm/ObjectContentEditor/index.d.ts.map +1 -0
  174. package/dist/esm/ObjectContentEditor/index.js +2 -0
  175. package/dist/esm/ObjectContentEditor/index.js.map +1 -0
  176. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.d.ts +6 -0
  177. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.d.ts.map +1 -0
  178. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.js +24 -0
  179. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.js.map +1 -0
  180. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.stories.d.ts +10 -0
  181. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.stories.d.ts.map +1 -0
  182. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.stories.js +46 -0
  183. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.stories.js.map +1 -0
  184. package/dist/esm/ObjectNavigationalBar/index.d.ts +2 -0
  185. package/dist/esm/ObjectNavigationalBar/index.d.ts.map +1 -0
  186. package/dist/esm/ObjectNavigationalBar/index.js +2 -0
  187. package/dist/esm/ObjectNavigationalBar/index.js.map +1 -0
  188. package/dist/esm/PivotViewer/components/PivotCanvas.d.ts +2 -2
  189. package/dist/esm/PivotViewer/components/PivotCanvas.d.ts.map +1 -1
  190. package/dist/esm/PivotViewer/components/PivotCanvas.js.map +1 -1
  191. package/dist/esm/PivotViewer/components/PivotViewerMain.d.ts +2 -2
  192. package/dist/esm/PivotViewer/components/PivotViewerMain.d.ts.map +1 -1
  193. package/dist/esm/PivotViewer/components/PivotViewerMain.js.map +1 -1
  194. package/dist/esm/PivotViewer/components/pivot/groups.d.ts.map +1 -1
  195. package/dist/esm/PivotViewer/components/pivot/groups.js +2 -2
  196. package/dist/esm/PivotViewer/components/pivot/groups.js.map +1 -1
  197. package/dist/esm/PivotViewer/components/pivot/sprites.d.ts +4 -4
  198. package/dist/esm/PivotViewer/components/pivot/sprites.d.ts.map +1 -1
  199. package/dist/esm/PivotViewer/components/pivot/sprites.js +2 -2
  200. package/dist/esm/PivotViewer/components/pivot/sprites.js.map +1 -1
  201. package/dist/esm/PivotViewer/types.d.ts +2 -2
  202. package/dist/esm/PivotViewer/types.d.ts.map +1 -1
  203. package/dist/esm/PivotViewer/types.js.map +1 -1
  204. package/dist/esm/SchemaEditor/NameCell.d.ts +9 -0
  205. package/dist/esm/SchemaEditor/NameCell.d.ts.map +1 -0
  206. package/dist/esm/SchemaEditor/NameCell.js +17 -0
  207. package/dist/esm/SchemaEditor/NameCell.js.map +1 -0
  208. package/dist/esm/SchemaEditor/SchemaEditor.d.ts +17 -0
  209. package/dist/esm/SchemaEditor/SchemaEditor.d.ts.map +1 -0
  210. package/dist/esm/SchemaEditor/SchemaEditor.js +331 -0
  211. package/dist/esm/SchemaEditor/SchemaEditor.js.map +1 -0
  212. package/dist/esm/SchemaEditor/SchemaEditor.module.css +11 -0
  213. package/dist/esm/SchemaEditor/SchemaEditor.stories.d.ts +12 -0
  214. package/dist/esm/SchemaEditor/SchemaEditor.stories.d.ts.map +1 -0
  215. package/dist/esm/SchemaEditor/SchemaEditor.stories.js +158 -0
  216. package/dist/esm/SchemaEditor/SchemaEditor.stories.js.map +1 -0
  217. package/dist/esm/SchemaEditor/TypeCell.d.ts +14 -0
  218. package/dist/esm/SchemaEditor/TypeCell.d.ts.map +1 -0
  219. package/dist/esm/SchemaEditor/TypeCell.js +81 -0
  220. package/dist/esm/SchemaEditor/TypeCell.js.map +1 -0
  221. package/dist/esm/SchemaEditor/index.d.ts +4 -0
  222. package/dist/esm/SchemaEditor/index.d.ts.map +1 -0
  223. package/dist/esm/SchemaEditor/index.js +3 -0
  224. package/dist/esm/SchemaEditor/index.js.map +1 -0
  225. package/dist/esm/TimeMachine/EventsView.stories.d.ts +8 -7
  226. package/dist/esm/TimeMachine/EventsView.stories.d.ts.map +1 -1
  227. package/dist/esm/TimeMachine/EventsView.stories.js +80 -4
  228. package/dist/esm/TimeMachine/EventsView.stories.js.map +1 -1
  229. package/dist/esm/TimeMachine/Properties.stories.d.ts +9 -7
  230. package/dist/esm/TimeMachine/Properties.stories.d.ts.map +1 -1
  231. package/dist/esm/TimeMachine/Properties.stories.js +49 -4
  232. package/dist/esm/TimeMachine/Properties.stories.js.map +1 -1
  233. package/dist/esm/TimeMachine/ReadModelView.stories.d.ts +7 -7
  234. package/dist/esm/TimeMachine/ReadModelView.stories.d.ts.map +1 -1
  235. package/dist/esm/TimeMachine/ReadModelView.stories.js +79 -5
  236. package/dist/esm/TimeMachine/ReadModelView.stories.js.map +1 -1
  237. package/dist/esm/TimeMachine/TimeMachine.js +1 -1
  238. package/dist/esm/TimeMachine/TimeMachine.stories.d.ts +8 -7
  239. package/dist/esm/TimeMachine/TimeMachine.stories.d.ts.map +1 -1
  240. package/dist/esm/TimeMachine/TimeMachine.stories.js +113 -4
  241. package/dist/esm/TimeMachine/TimeMachine.stories.js.map +1 -1
  242. package/dist/esm/index.d.ts +7 -3
  243. package/dist/esm/index.d.ts.map +1 -1
  244. package/dist/esm/index.js +20 -12
  245. package/dist/esm/index.js.map +1 -1
  246. package/dist/esm/package.json +3 -0
  247. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  248. package/dist/esm/types/JsonSchema.d.ts +32 -0
  249. package/dist/esm/types/JsonSchema.d.ts.map +1 -0
  250. package/dist/esm/types/JsonSchema.js +2 -0
  251. package/dist/esm/types/JsonSchema.js.map +1 -0
  252. package/dist/esm/types/TypeFormat.d.ts +6 -0
  253. package/dist/esm/types/TypeFormat.d.ts.map +1 -0
  254. package/dist/esm/types/TypeFormat.js +18 -0
  255. package/dist/esm/types/TypeFormat.js.map +1 -0
  256. package/package.json +41 -78
  257. package/dist/cjs/CommandForm/CommandForm.js +0 -183
  258. package/dist/cjs/CommandForm/CommandForm.js.map +0 -1
  259. package/dist/cjs/CommandForm/CommandFormField.js +0 -11
  260. package/dist/cjs/CommandForm/CommandFormField.js.map +0 -1
  261. package/dist/cjs/CommandForm/CommandFormFields.js +0 -73
  262. package/dist/cjs/CommandForm/CommandFormFields.js.map +0 -1
  263. package/dist/cjs/CommandForm/ValidationMessage.js +0 -24
  264. package/dist/cjs/CommandForm/ValidationMessage.js.map +0 -1
  265. package/dist/cjs/CommandForm/asCommandFormField.js +0 -47
  266. package/dist/cjs/CommandForm/asCommandFormField.js.map +0 -1
  267. package/dist/esm/CommandForm/CommandForm.d.ts +0 -49
  268. package/dist/esm/CommandForm/CommandForm.d.ts.map +0 -1
  269. package/dist/esm/CommandForm/CommandForm.js +0 -178
  270. package/dist/esm/CommandForm/CommandForm.js.map +0 -1
  271. package/dist/esm/CommandForm/CommandForm.stories.d.ts +0 -8
  272. package/dist/esm/CommandForm/CommandForm.stories.d.ts.map +0 -1
  273. package/dist/esm/CommandForm/CommandForm.stories.js +0 -45
  274. package/dist/esm/CommandForm/CommandForm.stories.js.map +0 -1
  275. package/dist/esm/CommandForm/CommandFormField.d.ts +0 -18
  276. package/dist/esm/CommandForm/CommandFormField.d.ts.map +0 -1
  277. package/dist/esm/CommandForm/CommandFormField.js +0 -9
  278. package/dist/esm/CommandForm/CommandFormField.js.map +0 -1
  279. package/dist/esm/CommandForm/CommandFormFields.d.ts +0 -11
  280. package/dist/esm/CommandForm/CommandFormFields.d.ts.map +0 -1
  281. package/dist/esm/CommandForm/CommandFormFields.js +0 -71
  282. package/dist/esm/CommandForm/CommandFormFields.js.map +0 -1
  283. package/dist/esm/CommandForm/UserRegistrationCommand.d.ts +0 -63
  284. package/dist/esm/CommandForm/UserRegistrationCommand.d.ts.map +0 -1
  285. package/dist/esm/CommandForm/UserRegistrationCommand.js +0 -143
  286. package/dist/esm/CommandForm/UserRegistrationCommand.js.map +0 -1
  287. package/dist/esm/CommandForm/ValidationMessage.d.ts +0 -8
  288. package/dist/esm/CommandForm/ValidationMessage.d.ts.map +0 -1
  289. package/dist/esm/CommandForm/ValidationMessage.js +0 -22
  290. package/dist/esm/CommandForm/ValidationMessage.js.map +0 -1
  291. package/dist/esm/CommandForm/asCommandFormField.d.ts +0 -32
  292. package/dist/esm/CommandForm/asCommandFormField.d.ts.map +0 -1
  293. package/dist/esm/CommandForm/asCommandFormField.js +0 -45
  294. package/dist/esm/CommandForm/asCommandFormField.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaEditor.js","sources":["../../../SchemaEditor/SchemaEditor.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { useState, useEffect, useMemo, useCallback } from 'react';\nimport { Button } from 'primereact/button';\nimport { DataTable } from 'primereact/datatable';\nimport { Column } from 'primereact/column';\nimport { Menubar } from 'primereact/menubar';\nimport { Tooltip } from 'primereact/tooltip';\nimport * as faIcons from 'react-icons/fa6';\nimport { NameCell } from './NameCell';\nimport { TypeCell } from './TypeCell';\nimport { JsonSchema, JsonSchemaProperty, NavigationItem } from '../types/JsonSchema';\nimport { TypeFormat, DEFAULT_TYPE_FORMATS } from '../types/TypeFormat';\nimport css from './SchemaEditor.module.css';\nimport { MenuItem } from 'primereact/menuitem';\n\nexport interface SchemaEditorProps {\n schema: JsonSchema;\n eventTypeName?: string;\n canEdit?: boolean;\n canNotEditReason?: string;\n onChange?: (schema: JsonSchema) => void;\n onSave?: () => void;\n onCancel?: () => void;\n editMode?: boolean;\n saveDisabled?: boolean;\n cancelDisabled?: boolean;\n typeFormats?: TypeFormat[];\n}\n\nexport const SchemaEditor = ({ \n schema, \n eventTypeName = '', \n canEdit = true, \n canNotEditReason, \n onChange, \n onSave, \n onCancel, \n editMode, \n saveDisabled = false, \n cancelDisabled = false,\n typeFormats = DEFAULT_TYPE_FORMATS\n}: SchemaEditorProps) => {\n const [currentPath, setCurrentPath] = useState<string[]>([]);\n const [properties, setProperties] = useState<JsonSchemaProperty[]>([]);\n const [currentSchema, setCurrentSchema] = useState<JsonSchema>(schema);\n const [isEditMode, setIsEditMode] = useState(editMode ?? false);\n const [initialSchema, setInitialSchema] = useState<JsonSchema>(schema);\n const [validationErrors, setValidationErrors] = useState<Record<string, string>>({});\n\n useEffect(() => {\n if (!isEditMode) {\n setCurrentPath([]);\n }\n }, [isEditMode]);\n\n const validatePropertyName = useCallback((name: string, propertyId: string, allProperties: JsonSchemaProperty[]): string | undefined => {\n if (!name || name.trim() === '') {\n return 'Property name cannot be empty';\n }\n\n const validIdentifierPattern = /^[a-zA-Z_][a-zA-Z0-9_]*$/;\n if (!validIdentifierPattern.test(name)) {\n return 'Property name must start with a letter or underscore and contain only letters, numbers, and underscores';\n }\n\n const duplicates = allProperties.filter(p => p.name === name && p.id !== propertyId);\n if (duplicates.length > 0) {\n return 'Property name must be unique';\n }\n\n return undefined;\n }, []);\n\n const validateAllProperties = useCallback((properties: JsonSchemaProperty[]) => {\n const errors: Record<string, string> = {};\n\n properties.forEach(prop => {\n if (!prop.name) return;\n const error = validatePropertyName(prop.name, prop.id!, properties);\n if (error) {\n errors[prop.id!] = error;\n }\n });\n\n setValidationErrors(errors);\n return Object.keys(errors).length === 0;\n }, [validatePropertyName]);\n\n useEffect(() => {\n setCurrentSchema(schema);\n setInitialSchema(JSON.parse(JSON.stringify(schema)));\n }, [schema]);\n\n useEffect(() => {\n loadPropertiesForCurrentPath();\n }, [currentPath, currentSchema, isEditMode]);\n\n const loadPropertiesForCurrentPath = () => {\n let targetSchema: JsonSchema | JsonSchemaProperty = currentSchema;\n\n for (const segment of currentPath) {\n if (targetSchema.type === 'array' && segment === '$items') {\n targetSchema = targetSchema.items || {};\n } else if (targetSchema.properties && targetSchema.properties[segment]) {\n targetSchema = targetSchema.properties[segment] as JsonSchema | JsonSchemaProperty;\n } else {\n return;\n }\n }\n\n const schemaProps: JsonSchemaProperty[] = [];\n if (targetSchema.properties) {\n let idCounter = 0;\n for (const [name, property] of Object.entries(targetSchema.properties)) {\n schemaProps.push({\n id: `prop-${currentPath.join('-')}-${idCounter++}`,\n name,\n type: property.type || 'string',\n format: property.format,\n description: property.description,\n items: property.items,\n properties: property.properties,\n required: (currentSchema.required as string[] | undefined)?.includes(name) || false\n });\n }\n }\n\n setProperties(schemaProps);\n if (isEditMode) {\n validateAllProperties(schemaProps);\n }\n };\n\n const updateSchemaAtPath = useCallback((path: string[], updater: (schema: JsonSchema) => JsonSchema) => {\n const newSchema = JSON.parse(JSON.stringify(currentSchema));\n\n if (path.length === 0) {\n const updated = updater(newSchema);\n setCurrentSchema(updated);\n onChange?.(updated);\n return;\n }\n\n let targetSchema = newSchema;\n for (let i = 0; i < path.length - 1; i++) {\n const segment = path[i];\n if (targetSchema.type === 'array' && segment === '$items') {\n if (!targetSchema.items) {\n targetSchema.items = { type: 'object', properties: {} };\n }\n targetSchema = targetSchema.items;\n } else if (targetSchema.properties && targetSchema.properties[segment]) {\n targetSchema = targetSchema.properties[segment];\n }\n }\n\n const lastSegment = path[path.length - 1];\n if (targetSchema.type === 'array' && lastSegment === '$items') {\n targetSchema.items = updater(targetSchema.items || {});\n } else {\n if (!targetSchema.properties) {\n targetSchema.properties = {};\n }\n targetSchema.properties[lastSegment] = updater(targetSchema.properties[lastSegment] || {});\n }\n\n setCurrentSchema(newSchema);\n onChange?.(newSchema);\n }, [currentSchema, onChange]);\n\n const addProperty = useCallback(() => {\n updateSchemaAtPath(currentPath, (schema) => {\n const newProps = { ...(schema.properties || {}) };\n let newName = 'newProperty';\n let counter = 1;\n while (newProps[newName]) {\n newName = `newProperty${counter++}`;\n }\n newProps[newName] = { type: 'string' };\n return { ...schema, properties: newProps };\n });\n }, [currentPath, updateSchemaAtPath]);\n\n const removeProperty = useCallback((propertyName: string) => {\n updateSchemaAtPath(currentPath, (schema) => {\n const newProps = { ...(schema.properties || {}) };\n delete newProps[propertyName];\n return { ...schema, properties: newProps };\n });\n }, [currentPath, updateSchemaAtPath]);\n\n const updateProperty = useCallback((oldName: string, field: keyof JsonSchemaProperty, value: unknown, additionalUpdates?: Partial<JsonSchemaProperty>) => {\n updateSchemaAtPath(currentPath, (schema) => {\n const newProps = { ...(schema.properties || {}) };\n const prop = { ...(newProps[oldName] || {}) };\n\n if (field === 'name') {\n if (value !== oldName && !newProps[value as string]) {\n newProps[value as string] = prop;\n delete newProps[oldName];\n }\n } else if (field === 'type') {\n prop.type = value as string;\n if (value === 'array') {\n prop.items = { type: 'string' };\n delete prop.format;\n } else if (value === 'object') {\n prop.properties = {};\n delete prop.format;\n delete prop.items;\n } else {\n delete prop.items;\n delete prop.properties;\n }\n\n if (additionalUpdates) {\n if ('format' in additionalUpdates) {\n if (additionalUpdates.format) {\n prop.format = additionalUpdates.format as string;\n } else {\n delete prop.format;\n }\n }\n }\n\n newProps[oldName] = prop;\n } else if (field === 'format') {\n if (value && value !== 'none') {\n prop.format = value as string;\n } else {\n delete prop.format;\n }\n newProps[oldName] = prop;\n }\n\n return { ...schema, properties: newProps };\n });\n }, [currentPath, updateSchemaAtPath]);\n\n const updateArrayItemType = useCallback((propertyName: string, itemType: string) => {\n updateSchemaAtPath(currentPath, (schema) => {\n const newProps = { ...(schema.properties || {}) };\n const prop = { ...(newProps[propertyName] || {}) };\n\n if (itemType === 'object') {\n prop.items = { type: 'object', properties: {} };\n } else if (itemType === 'array') {\n prop.items = { type: 'array', items: { type: 'string' } };\n } else {\n prop.items = { type: itemType };\n }\n\n newProps[propertyName] = prop;\n return { ...schema, properties: newProps };\n });\n }, [currentPath, updateSchemaAtPath]);\n\n const navigateToProperty = useCallback((propertyName: string) => {\n setCurrentPath([...currentPath, propertyName]);\n }, [currentPath]);\n\n const navigateToArrayItems = useCallback((propertyName: string) => {\n setCurrentPath([...currentPath, propertyName, '$items']);\n }, [currentPath]);\n\n const navigateBack = useCallback(() => {\n if (currentPath.length > 0) {\n setCurrentPath(currentPath.slice(0, -1));\n }\n }, [currentPath]);\n\n const navigateToBreadcrumb = useCallback((index: number) => {\n const items = getBreadcrumbItems();\n setCurrentPath(items[index].path);\n }, [currentPath, eventTypeName]);\n\n const handleSave = useCallback(() => {\n onSave?.();\n setIsEditMode(false);\n }, [onSave]);\n\n const handleCancel = useCallback(() => {\n setCurrentSchema(JSON.parse(JSON.stringify(initialSchema)));\n onChange?.(JSON.parse(JSON.stringify(initialSchema)));\n setIsEditMode(false);\n onCancel?.();\n }, [initialSchema, onChange, onCancel]);\n\n const handleEdit = useCallback(() => {\n setInitialSchema(JSON.parse(JSON.stringify(currentSchema)));\n setIsEditMode(true);\n }, [currentSchema]);\n\n const getBreadcrumbItems = () => {\n const items: NavigationItem[] = [{ name: eventTypeName, path: [] }];\n\n for (let i = 0; i < currentPath.length; i++) {\n const segment = currentPath[i];\n if (segment === '$items') {\n items.push({\n name: '[items]',\n path: currentPath.slice(0, i + 1)\n });\n } else {\n items.push({\n name: segment,\n path: currentPath.slice(0, i + 1)\n });\n }\n }\n\n return items;\n };\n\n const getCurrentDescription = useCallback(() => {\n let targetSchema: JsonSchema | JsonSchemaProperty = currentSchema;\n\n for (const segment of currentPath) {\n if (targetSchema.type === 'array' && segment === '$items') {\n targetSchema = targetSchema.items || {};\n } else if (targetSchema.properties && targetSchema.properties[segment]) {\n targetSchema = targetSchema.properties[segment] as JsonSchema | JsonSchemaProperty;\n } else {\n return undefined;\n }\n }\n\n return targetSchema.description;\n }, [currentSchema, currentPath]);\n\n const hasValidationErrors = Object.keys(validationErrors).length > 0;\n\n const menuItems = useMemo(() => [\n ...(!isEditMode ? [{\n label: 'Edit',\n icon: <faIcons.FaPencil className='mr-2' />,\n command: canEdit ? handleEdit : undefined,\n className: !canEdit ? 'edit-disabled-with-reason' : undefined,\n template: !canEdit && canNotEditReason ? (item: MenuItem) => (\n <div\n className=\"p-menuitem-link p-disabled\"\n data-pr-tooltip={canNotEditReason}\n data-pr-position=\"bottom\"\n style={{ cursor: 'not-allowed', opacity: 0.6 }}\n >\n {item.icon}\n <span className=\"p-menuitem-text\">{item.label}</span>\n </div>\n ) : undefined\n }] : []),\n ...(isEditMode ? [\n ...(!saveDisabled ? [{\n label: 'Save',\n icon: <faIcons.FaCheck className='mr-2' />,\n command: hasValidationErrors ? undefined : handleSave,\n disabled: hasValidationErrors\n }] : []),\n ...(!cancelDisabled ? [{\n label: 'Cancel',\n icon: <faIcons.FaXmark className='mr-2' />,\n command: handleCancel\n }] : []),\n {\n label: 'Add Property',\n icon: <faIcons.FaPlus className='mr-2' />,\n command: addProperty\n }\n ] : [])\n ], [isEditMode, handleSave, handleCancel, handleEdit, addProperty, canEdit, canNotEditReason, hasValidationErrors, saveDisabled, cancelDisabled]);\n\n const breadcrumbItems = getBreadcrumbItems();\n const isAtRoot = currentPath.length === 0;\n const currentDescription = getCurrentDescription();\n\n return (\n <div className=\"schema-editor\" style={{ display: 'flex', flexDirection: 'column', height: '100%' }}>\n <div className=\"px-4 py-4\">\n <Tooltip target=\"[data-pr-tooltip]\" />\n <div className=\"schema-editor-menubar\">\n <Menubar aria-label=\"Actions\" model={menuItems} />\n </div>\n </div>\n\n <div className=\"px-4 py-2 border-bottom-1 surface-border\">\n <div style={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}>\n <Button\n icon={<faIcons.FaArrowLeft />}\n className=\"p-button-text p-button-sm\"\n onClick={navigateBack}\n disabled={isAtRoot}\n tooltip=\"Navigate back\"\n tooltipOptions={{ position: 'top' }}\n />\n <div style={{ fontSize: '0.9rem', color: 'var(--text-color-secondary)', cursor: 'pointer' }}>\n {breadcrumbItems.map((item, index) => (\n <span key={index}>\n {index > 0 && <span className=\"mx-2\">&gt;</span>}\n <span\n onClick={() => navigateToBreadcrumb(index)}\n style={{ cursor: 'pointer', textDecoration: index < breadcrumbItems.length - 1 ? 'underline' : 'none' }}\n >\n {item.name}\n </span>\n </span>\n ))}\n </div>\n </div>\n {currentDescription && (\n <div style={{ fontSize: '0.875rem', color: 'var(--text-color-secondary)', marginTop: '0.5rem', marginLeft: '2.5rem', fontStyle: 'italic', display: 'flex', alignItems: 'center', gap: '0.5rem' }}>\n <faIcons.FaCircleInfo />\n <span>{currentDescription}</span>\n </div>\n )}\n </div>\n\n <div style={{ flex: 1, overflow: 'auto', padding: '1rem' }}>\n <Tooltip key={`nav-${eventTypeName}-${currentPath.join('/')}`} target=\".schema-navigation-tooltip\" mouseTrack mouseTrackTop={15} />\n <Tooltip key={`desc-${eventTypeName}-${currentPath.join('/')}`} target=\".schema-description-tooltip\" />\n <DataTable\n key={`${isEditMode}-${currentPath.join('/')}`}\n value={properties}\n dataKey=\"id\"\n emptyMessage=\"No properties defined\"\n rowClassName={(rowData: JsonSchemaProperty) => {\n if (!isEditMode && (rowData.type === 'object' || (rowData.type === 'array' && rowData.items?.type === 'object'))) {\n return css.navigableRow;\n }\n return '';\n }}\n onRowClick={(e) => {\n if (!isEditMode) {\n const rowData = e.data as JsonSchemaProperty;\n if (rowData.name) {\n if (rowData.type === 'object') {\n navigateToProperty(rowData.name);\n } else if (rowData.type === 'array' && rowData.items?.type === 'object') {\n navigateToArrayItems(rowData.name);\n }\n }\n }\n }}\n pt={{\n root: { style: { border: 'none' } },\n tbody: { style: { borderTop: '1px solid var(--surface-border)' } }\n }}\n >\n <Column\n field=\"name\"\n header=\"Property\"\n body={(rowData: JsonSchemaProperty) => (\n <NameCell\n rowData={rowData}\n isEditMode={isEditMode}\n onUpdate={updateProperty}\n validationError={validationErrors[rowData.id!]}\n />\n )}\n style={{ width: '30%' }}\n />\n <Column\n header=\"Type\"\n body={(rowData: JsonSchemaProperty) => (\n <TypeCell\n rowData={rowData}\n isEditMode={isEditMode}\n typeFormats={typeFormats}\n onUpdateProperty={updateProperty}\n onUpdateArrayItemType={updateArrayItemType}\n onNavigateToProperty={navigateToProperty}\n onNavigateToArrayItems={navigateToArrayItems}\n onRemoveProperty={removeProperty}\n />\n )}\n style={{ width: '70%' }}\n />\n </DataTable>\n </div>\n </div>\n );\n};\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -0,0 +1,11 @@
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
+ .navigableRow {
5
+ cursor: pointer;
6
+ transition: background-color 0.15s;
7
+ }
8
+
9
+ .navigableRow:hover {
10
+ background-color: var(--surface-hover) !important;
11
+ }
@@ -0,0 +1,12 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { SchemaEditor } from './SchemaEditor';
3
+ declare const meta: Meta<typeof SchemaEditor>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof SchemaEditor>;
6
+ export declare const Interactive: Story;
7
+ export declare const ViewMode: Story;
8
+ export declare const EditMode: Story;
9
+ export declare const ReadOnly: Story;
10
+ export declare const EmptySchema: Story;
11
+ export declare const SimpleSchema: Story;
12
+ //# sourceMappingURL=SchemaEditor.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaEditor.stories.d.ts","sourceRoot":"","sources":["../../../SchemaEditor/SchemaEditor.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,YAAY,CAOnC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,YAAY,CAAC,CAAC;AAwF3C,eAAO,MAAM,WAAW,EAAE,KAEzB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAStB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAUtB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAQtB,CAAC;AAOF,eAAO,MAAM,WAAW,EAAE,KAUzB,CAAC;AAoBF,eAAO,MAAM,YAAY,EAAE,KAO1B,CAAC"}
@@ -0,0 +1,158 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { SchemaEditor } from './SchemaEditor';
4
+ const meta = {
5
+ title: 'Components/SchemaEditor',
6
+ component: SchemaEditor,
7
+ tags: ['autodocs'],
8
+ parameters: {
9
+ layout: 'padded',
10
+ },
11
+ };
12
+ export default meta;
13
+ const sampleSchema = {
14
+ type: 'object',
15
+ properties: {
16
+ id: {
17
+ type: 'string',
18
+ format: 'guid',
19
+ description: 'Unique identifier'
20
+ },
21
+ name: {
22
+ type: 'string',
23
+ description: 'Name of the entity'
24
+ },
25
+ email: {
26
+ type: 'string',
27
+ description: 'Email address'
28
+ },
29
+ age: {
30
+ type: 'integer',
31
+ format: 'int32',
32
+ description: 'Age in years'
33
+ },
34
+ isActive: {
35
+ type: 'boolean',
36
+ description: 'Whether the entity is active'
37
+ },
38
+ address: {
39
+ type: 'object',
40
+ description: 'Address information',
41
+ properties: {
42
+ street: {
43
+ type: 'string',
44
+ description: 'Street address'
45
+ },
46
+ city: {
47
+ type: 'string',
48
+ description: 'City name'
49
+ },
50
+ zipCode: {
51
+ type: 'string',
52
+ description: 'ZIP/Postal code'
53
+ },
54
+ country: {
55
+ type: 'string',
56
+ description: 'Country name'
57
+ }
58
+ }
59
+ },
60
+ tags: {
61
+ type: 'array',
62
+ description: 'Tags associated with the entity',
63
+ items: { type: 'string' }
64
+ },
65
+ metadata: {
66
+ type: 'array',
67
+ description: 'Metadata entries',
68
+ items: {
69
+ type: 'object',
70
+ properties: {
71
+ key: { type: 'string' },
72
+ value: { type: 'string' }
73
+ }
74
+ }
75
+ }
76
+ }
77
+ };
78
+ const InteractiveWrapper = () => {
79
+ const [schema, setSchema] = useState(JSON.parse(JSON.stringify(sampleSchema)));
80
+ return (_jsx("div", { style: { height: '600px', background: 'var(--surface-ground)' }, children: _jsx(SchemaEditor, { schema: schema, eventTypeName: "User", canEdit: true, onChange: (newSchema) => {
81
+ setSchema(newSchema);
82
+ console.log('Schema changed:', newSchema);
83
+ }, onSave: () => console.log('Save clicked', schema), onCancel: () => console.log('Cancel clicked') }) }));
84
+ };
85
+ export const Interactive = {
86
+ render: () => _jsx(InteractiveWrapper, {}),
87
+ };
88
+ export const ViewMode = {
89
+ args: {
90
+ schema: sampleSchema,
91
+ eventTypeName: 'User',
92
+ canEdit: true,
93
+ onChange: () => console.log('Schema changed'),
94
+ onSave: () => console.log('Save clicked'),
95
+ onCancel: () => console.log('Cancel clicked'),
96
+ },
97
+ };
98
+ export const EditMode = {
99
+ args: {
100
+ schema: sampleSchema,
101
+ eventTypeName: 'User',
102
+ canEdit: true,
103
+ editMode: true,
104
+ onChange: () => console.log('Schema changed'),
105
+ onSave: () => console.log('Save clicked'),
106
+ onCancel: () => console.log('Cancel clicked'),
107
+ },
108
+ };
109
+ export const ReadOnly = {
110
+ args: {
111
+ schema: sampleSchema,
112
+ eventTypeName: 'User',
113
+ canEdit: false,
114
+ canNotEditReason: 'Schema is locked for editing',
115
+ onChange: () => console.log('Schema changed'),
116
+ },
117
+ };
118
+ const emptySchema = {
119
+ type: 'object',
120
+ properties: {}
121
+ };
122
+ export const EmptySchema = {
123
+ args: {
124
+ schema: emptySchema,
125
+ eventTypeName: 'NewType',
126
+ canEdit: true,
127
+ editMode: true,
128
+ onChange: () => console.log('Schema changed'),
129
+ onSave: () => console.log('Save clicked'),
130
+ onCancel: () => console.log('Cancel clicked'),
131
+ },
132
+ };
133
+ const simpleSchema = {
134
+ type: 'object',
135
+ properties: {
136
+ title: {
137
+ type: 'string',
138
+ description: 'The title'
139
+ },
140
+ count: {
141
+ type: 'integer',
142
+ description: 'A count value'
143
+ },
144
+ enabled: {
145
+ type: 'boolean',
146
+ description: 'Whether enabled'
147
+ }
148
+ }
149
+ };
150
+ export const SimpleSchema = {
151
+ args: {
152
+ schema: simpleSchema,
153
+ eventTypeName: 'SimpleType',
154
+ canEdit: true,
155
+ onChange: () => console.log('Schema changed'),
156
+ },
157
+ };
158
+ //# sourceMappingURL=SchemaEditor.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaEditor.stories.js","sourceRoot":"","sources":["../../../SchemaEditor/SchemaEditor.stories.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { TypeFormat } from '../types/TypeFormat';
2
+ import { JsonSchemaProperty } from '../types/JsonSchema';
3
+ export interface TypeCellProps {
4
+ rowData: JsonSchemaProperty;
5
+ isEditMode: boolean;
6
+ typeFormats: TypeFormat[];
7
+ onUpdateProperty: (oldName: string, field: keyof JsonSchemaProperty, value: unknown, additionalUpdates?: Partial<JsonSchemaProperty>) => void;
8
+ onUpdateArrayItemType: (propertyName: string, itemType: string) => void;
9
+ onNavigateToProperty: (propertyName: string) => void;
10
+ onNavigateToArrayItems: (propertyName: string) => void;
11
+ onRemoveProperty: (propertyName: string) => void;
12
+ }
13
+ export declare const TypeCell: ({ rowData, isEditMode, typeFormats, onUpdateProperty, onUpdateArrayItemType, onNavigateToProperty, onNavigateToArrayItems, onRemoveProperty }: TypeCellProps) => string | import("react/jsx-runtime").JSX.Element;
14
+ //# sourceMappingURL=TypeCell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeCell.d.ts","sourceRoot":"","sources":["../../../SchemaEditor/TypeCell.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC;IAC9I,qBAAqB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACxE,oBAAoB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,sBAAsB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,gBAAgB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD;AAOD,eAAO,MAAM,QAAQ,GAAI,+IAStB,aAAa,qDAmJf,CAAC"}
@@ -0,0 +1,81 @@
1
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
+ import { Button } from 'primereact/button';
3
+ import { Dropdown } from 'primereact/dropdown';
4
+ import * as faIcons from 'react-icons/fa6';
5
+
6
+ const CONTAINER_TYPES = [
7
+ { label: 'array', value: 'array' },
8
+ { label: 'object', value: 'object' }
9
+ ];
10
+ const TypeCell = ({ rowData, isEditMode, typeFormats, onUpdateProperty, onUpdateArrayItemType, onNavigateToProperty, onNavigateToArrayItems, onRemoveProperty }) => {
11
+ const DEFAULT_TYPE_OPTIONS = [
12
+ { label: 'string', value: 'string' },
13
+ { label: 'integer', value: 'integer' },
14
+ { label: 'number', value: 'number' },
15
+ { label: 'boolean', value: 'boolean' }
16
+ ];
17
+ const formatOptions = typeFormats.length > 0
18
+ ? typeFormats.map(tf => {
19
+ const format = (!tf.format || tf.format === '' ? tf.jsonType : tf.format);
20
+ return { label: format, value: format };
21
+ })
22
+ : DEFAULT_TYPE_OPTIONS;
23
+ const allTypeOptions = [
24
+ ...formatOptions,
25
+ ...CONTAINER_TYPES
26
+ ];
27
+ const displayValue = rowData.format || rowData.type || 'string';
28
+ const currentValue = rowData.format || rowData.type || 'string';
29
+ const handleTypeChange = (value, propertyName, isArrayItem = false) => {
30
+ if (value === 'array' || value === 'object') {
31
+ if (isArrayItem) {
32
+ onUpdateArrayItemType(propertyName, value);
33
+ }
34
+ else {
35
+ onUpdateProperty(propertyName, 'type', value, { format: undefined });
36
+ }
37
+ }
38
+ else {
39
+ const typeFormat = typeFormats.find(tf => {
40
+ const effectiveFormat = (!tf.format || tf.format === '' ? tf.jsonType : tf.format);
41
+ return effectiveFormat === value;
42
+ });
43
+ if (typeFormat) {
44
+ if (isArrayItem) {
45
+ onUpdateArrayItemType(propertyName, typeFormat.jsonType);
46
+ }
47
+ else {
48
+ if (typeFormat.format && typeFormat.format !== '') {
49
+ onUpdateProperty(propertyName, 'type', typeFormat.jsonType, { format: value });
50
+ }
51
+ else {
52
+ onUpdateProperty(propertyName, 'type', typeFormat.jsonType, { format: undefined });
53
+ }
54
+ }
55
+ }
56
+ else {
57
+ if (isArrayItem) {
58
+ onUpdateArrayItemType(propertyName, value);
59
+ }
60
+ else {
61
+ onUpdateProperty(propertyName, 'type', value, { format: undefined });
62
+ }
63
+ }
64
+ }
65
+ };
66
+ if (!isEditMode) {
67
+ if (rowData.type === 'array') {
68
+ const itemType = rowData.items?.type || 'string';
69
+ const isNavigable = itemType === 'object';
70
+ return (jsxs("div", { className: "flex align-items-center gap-2 w-full", style: { height: '100%' }, "data-pr-tooltip": isNavigable ? 'Click to navigate to item definition' : undefined, "data-pr-position": "top", children: [jsxs("span", { children: ["Array of ", itemType] }), isNavigable && (jsxs(Fragment, { children: [jsx("div", { style: { flex: 1 } }), jsx("span", { style: { display: 'flex', alignItems: 'center' }, children: jsx(faIcons.FaArrowRight, { style: { fontSize: '1rem', color: 'var(--primary-color)' } }) })] }))] }));
71
+ }
72
+ else if (rowData.type === 'object') {
73
+ return (jsxs("div", { className: "flex align-items-center gap-2 w-full", style: { height: '100%' }, "data-pr-tooltip": "Click to navigate to object properties", "data-pr-position": "top", children: [jsx("span", { children: "Object" }), jsx("div", { style: { flex: 1 } }), jsx("span", { style: { display: 'flex', alignItems: 'center' }, children: jsx(faIcons.FaArrowRight, { style: { fontSize: '1rem', color: 'var(--primary-color)' } }) })] }));
74
+ }
75
+ return displayValue;
76
+ }
77
+ return (jsxs("div", { className: "flex align-items-center gap-2 w-full", style: { minHeight: '2.5rem' }, children: [jsx(Dropdown, { value: currentValue, options: allTypeOptions, onChange: (e) => handleTypeChange(e.value, rowData.name || ''), className: "flex-1" }), rowData.type === 'array' && rowData.items && (jsxs(Fragment, { children: [jsx("span", { style: { whiteSpace: 'nowrap', display: 'flex', alignItems: 'center' }, children: "of" }), jsx(Dropdown, { value: rowData.items.type || 'string', options: allTypeOptions, onChange: (e) => handleTypeChange(e.value, rowData.name || '', true), className: "flex-1" })] })), jsxs("div", { style: { marginLeft: 'auto', display: 'flex', alignItems: 'center', gap: '0.5rem' }, children: [rowData.type === 'array' && rowData.items?.type === 'object' && rowData.name && (jsx(Button, { icon: jsx(faIcons.FaArrowRight, {}), className: "p-button-text p-button-sm", onClick: () => onNavigateToArrayItems(rowData.name), tooltip: "Navigate to item definition", tooltipOptions: { position: 'top' } })), rowData.type === 'object' && rowData.name && (jsx(Button, { icon: jsx(faIcons.FaArrowRight, {}), className: "p-button-text p-button-sm", onClick: () => onNavigateToProperty(rowData.name), tooltip: "Navigate to object properties", tooltipOptions: { position: 'top' } })), rowData.name && (jsx(Button, { icon: jsx(faIcons.FaTrash, {}), className: "p-button-text p-button-danger p-button-sm", onClick: () => onRemoveProperty(rowData.name), tooltip: "Delete property", tooltipOptions: { position: 'top' } }))] })] }));
78
+ };
79
+
80
+ export { TypeCell };
81
+ //# sourceMappingURL=TypeCell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeCell.js","sources":["../../../SchemaEditor/TypeCell.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Button } from 'primereact/button';\nimport { Dropdown } from 'primereact/dropdown';\nimport * as faIcons from 'react-icons/fa6';\nimport { TypeFormat } from '../types/TypeFormat';\nimport { JsonSchemaProperty } from '../types/JsonSchema';\n\nexport interface TypeCellProps {\n rowData: JsonSchemaProperty;\n isEditMode: boolean;\n typeFormats: TypeFormat[];\n onUpdateProperty: (oldName: string, field: keyof JsonSchemaProperty, value: unknown, additionalUpdates?: Partial<JsonSchemaProperty>) => void;\n onUpdateArrayItemType: (propertyName: string, itemType: string) => void;\n onNavigateToProperty: (propertyName: string) => void;\n onNavigateToArrayItems: (propertyName: string) => void;\n onRemoveProperty: (propertyName: string) => void;\n}\n\nconst CONTAINER_TYPES = [\n { label: 'array', value: 'array' },\n { label: 'object', value: 'object' }\n];\n\nexport const TypeCell = ({\n rowData,\n isEditMode,\n typeFormats,\n onUpdateProperty,\n onUpdateArrayItemType,\n onNavigateToProperty,\n onNavigateToArrayItems,\n onRemoveProperty\n}: TypeCellProps) => {\n const DEFAULT_TYPE_OPTIONS = [\n { label: 'string', value: 'string' },\n { label: 'integer', value: 'integer' },\n { label: 'number', value: 'number' },\n { label: 'boolean', value: 'boolean' }\n ];\n\n const formatOptions = typeFormats.length > 0\n ? typeFormats.map(tf => {\n const format = (!tf.format || tf.format === '' ? tf.jsonType : tf.format);\n return { label: format, value: format };\n })\n : DEFAULT_TYPE_OPTIONS;\n\n const allTypeOptions = [\n ...formatOptions,\n ...CONTAINER_TYPES\n ];\n\n const displayValue = rowData.format || rowData.type || 'string';\n const currentValue = rowData.format || rowData.type || 'string';\n\n const handleTypeChange = (value: string, propertyName: string, isArrayItem: boolean = false) => {\n if (value === 'array' || value === 'object') {\n if (isArrayItem) {\n onUpdateArrayItemType(propertyName, value);\n } else {\n onUpdateProperty(propertyName, 'type', value, { format: undefined });\n }\n } else {\n const typeFormat = typeFormats.find(tf => {\n const effectiveFormat = (!tf.format || tf.format === '' ? tf.jsonType : tf.format);\n return effectiveFormat === value;\n });\n\n if (typeFormat) {\n if (isArrayItem) {\n onUpdateArrayItemType(propertyName, typeFormat.jsonType);\n } else {\n if (typeFormat.format && typeFormat.format !== '') {\n onUpdateProperty(propertyName, 'type', typeFormat.jsonType, { format: value });\n } else {\n onUpdateProperty(propertyName, 'type', typeFormat.jsonType, { format: undefined });\n }\n }\n } else {\n if (isArrayItem) {\n onUpdateArrayItemType(propertyName, value);\n } else {\n onUpdateProperty(propertyName, 'type', value, { format: undefined });\n }\n }\n }\n };\n\n if (!isEditMode) {\n if (rowData.type === 'array') {\n const itemType = rowData.items?.type || 'string';\n const isNavigable = itemType === 'object';\n return (\n <div\n className=\"flex align-items-center gap-2 w-full\"\n style={{ height: '100%' }}\n data-pr-tooltip={isNavigable ? 'Click to navigate to item definition' : undefined}\n data-pr-position=\"top\"\n >\n <span>Array of {itemType}</span>\n {isNavigable && (\n <>\n <div style={{ flex: 1 }} />\n <span style={{ display: 'flex', alignItems: 'center' }}>\n <faIcons.FaArrowRight style={{ fontSize: '1rem', color: 'var(--primary-color)' }} />\n </span>\n </>\n )}\n </div>\n );\n } else if (rowData.type === 'object') {\n return (\n <div\n className=\"flex align-items-center gap-2 w-full\"\n style={{ height: '100%' }}\n data-pr-tooltip=\"Click to navigate to object properties\"\n data-pr-position=\"top\"\n >\n <span>Object</span>\n <div style={{ flex: 1 }} />\n <span style={{ display: 'flex', alignItems: 'center' }}>\n <faIcons.FaArrowRight style={{ fontSize: '1rem', color: 'var(--primary-color)' }} />\n </span>\n </div>\n );\n }\n return displayValue;\n }\n\n return (\n <div className=\"flex align-items-center gap-2 w-full\" style={{ minHeight: '2.5rem' }}>\n <Dropdown\n value={currentValue}\n options={allTypeOptions}\n onChange={(e) => handleTypeChange(e.value, rowData.name || '')}\n className=\"flex-1\"\n />\n {rowData.type === 'array' && rowData.items && (\n <>\n <span style={{ whiteSpace: 'nowrap', display: 'flex', alignItems: 'center' }}>of</span>\n <Dropdown\n value={rowData.items.type || 'string'}\n options={allTypeOptions}\n onChange={(e) => handleTypeChange(e.value, rowData.name || '', true)}\n className=\"flex-1\"\n />\n </>\n )}\n <div style={{ marginLeft: 'auto', display: 'flex', alignItems: 'center', gap: '0.5rem' }}>\n {rowData.type === 'array' && rowData.items?.type === 'object' && rowData.name && (\n <Button\n icon={<faIcons.FaArrowRight />}\n className=\"p-button-text p-button-sm\"\n onClick={() => onNavigateToArrayItems(rowData.name!)}\n tooltip=\"Navigate to item definition\"\n tooltipOptions={{ position: 'top' }}\n />\n )}\n {rowData.type === 'object' && rowData.name && (\n <Button\n icon={<faIcons.FaArrowRight />}\n className=\"p-button-text p-button-sm\"\n onClick={() => onNavigateToProperty(rowData.name!)}\n tooltip=\"Navigate to object properties\"\n tooltipOptions={{ position: 'top' }}\n />\n )}\n {rowData.name && (\n <Button\n icon={<faIcons.FaTrash />}\n className=\"p-button-text p-button-danger p-button-sm\"\n onClick={() => onRemoveProperty(rowData.name!)}\n tooltip=\"Delete property\"\n tooltipOptions={{ position: 'top' }}\n />\n )}\n </div>\n </div>\n );\n};\n"],"names":["_jsxs","_jsx","_Fragment"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './SchemaEditor';
2
+ export * from '../types/JsonSchema';
3
+ export * from '../types/TypeFormat';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../SchemaEditor/index.ts"],"names":[],"mappings":"AAGA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { SchemaEditor } from './SchemaEditor.js';
2
+ export { DEFAULT_TYPE_FORMATS } from '../types/TypeFormat.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1,8 +1,9 @@
1
- import React from 'react';
2
- declare const _default: {
3
- title: string;
4
- component: React.ComponentType<Record<string, never>> | undefined;
5
- };
6
- export default _default;
7
- export declare const Default: () => import("react/jsx-runtime").JSX.Element;
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { EventsView } from './EventsView';
3
+ declare const meta: Meta<typeof EventsView>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof EventsView>;
6
+ export declare const Default: Story;
7
+ export declare const SingleEvent: Story;
8
+ export declare const EmptyEvents: Story;
8
9
  //# sourceMappingURL=EventsView.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EventsView.stories.d.ts","sourceRoot":"","sources":["../../../TimeMachine/EventsView.stories.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;;;;;AAI1B,wBAAyE;AAEzE,eAAO,MAAM,OAAO,+CAA4E,CAAC"}
1
+ {"version":3,"file":"EventsView.stories.d.ts","sourceRoot":"","sources":["../../../TimeMachine/EventsView.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,UAAU,CAMjC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,UAAU,CAAC,CAAC;AAwDzC,eAAO,MAAM,OAAO,EAAE,KASrB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KASzB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KASzB,CAAC"}
@@ -1,6 +1,82 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import * as Comp from './EventsView';
3
- const Component = Comp.default || Object.values(Comp)[0];
4
- export default { title: 'TimeMachine/EventsView', component: Component };
5
- export const Default = () => (Component ? _jsx(Component, {}) : _jsx("div", { children: "Unable to render component" }));
2
+ import { EventsView } from './EventsView';
3
+ const meta = {
4
+ title: 'TimeMachine/EventsView',
5
+ component: EventsView,
6
+ parameters: {
7
+ layout: 'fullscreen',
8
+ },
9
+ };
10
+ export default meta;
11
+ const sampleEvents = [
12
+ {
13
+ sequenceNumber: 1,
14
+ type: 'UserRegistered',
15
+ occurred: new Date('2024-02-10T09:00:00'),
16
+ content: {
17
+ userId: 'user-001',
18
+ email: 'john.doe@example.com',
19
+ username: 'john.doe',
20
+ role: 'user'
21
+ }
22
+ },
23
+ {
24
+ sequenceNumber: 2,
25
+ type: 'ProfileUpdated',
26
+ occurred: new Date('2024-02-10T10:15:00'),
27
+ content: {
28
+ userId: 'user-001',
29
+ firstName: 'John',
30
+ lastName: 'Doe',
31
+ bio: 'Software developer'
32
+ }
33
+ },
34
+ {
35
+ sequenceNumber: 3,
36
+ type: 'RoleChanged',
37
+ occurred: new Date('2024-02-10T11:30:00'),
38
+ content: {
39
+ userId: 'user-001',
40
+ oldRole: 'user',
41
+ newRole: 'admin'
42
+ }
43
+ },
44
+ {
45
+ sequenceNumber: 4,
46
+ type: 'PasswordChanged',
47
+ occurred: new Date('2024-02-10T12:45:00'),
48
+ content: {
49
+ userId: 'user-001',
50
+ timestamp: new Date('2024-02-10T12:45:00')
51
+ }
52
+ },
53
+ {
54
+ sequenceNumber: 5,
55
+ type: 'EmailVerified',
56
+ occurred: new Date('2024-02-10T13:00:00'),
57
+ content: {
58
+ userId: 'user-001',
59
+ email: 'john.doe@example.com',
60
+ verifiedAt: new Date('2024-02-10T13:00:00')
61
+ }
62
+ }
63
+ ];
64
+ export const Default = {
65
+ args: {
66
+ events: sampleEvents,
67
+ },
68
+ render: (args) => (_jsx("div", { style: { height: '600px', background: '#1a1a1a' }, children: _jsx(EventsView, { ...args }) }))
69
+ };
70
+ export const SingleEvent = {
71
+ args: {
72
+ events: [sampleEvents[0]],
73
+ },
74
+ render: (args) => (_jsx("div", { style: { height: '600px', background: '#1a1a1a' }, children: _jsx(EventsView, { ...args }) }))
75
+ };
76
+ export const EmptyEvents = {
77
+ args: {
78
+ events: [],
79
+ },
80
+ render: (args) => (_jsx("div", { style: { height: '600px', background: '#1a1a1a' }, children: _jsx(EventsView, { ...args }) }))
81
+ };
6
82
  //# sourceMappingURL=EventsView.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EventsView.stories.js","sourceRoot":"","sources":["../../../TimeMachine/EventsView.stories.tsx"],"names":[],"mappings":";AAIA,OAAO,KAAK,IAAI,MAAM,cAAc,CAAC;AACrC,MAAM,SAAS,GAA4D,IAAgC,CAAC,OAA4E,IAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAuE,CAAC;AAE1R,eAAe,EAAE,KAAK,EAAE,wBAAwB,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAEzE,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAC,SAAS,KAAG,CAAC,CAAC,CAAC,uDAAqC,CAAC,CAAC"}
1
+ {"version":3,"file":"EventsView.stories.js","sourceRoot":"","sources":["../../../TimeMachine/EventsView.stories.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,MAAM,IAAI,GAA4B;IAClC,KAAK,EAAE,wBAAwB;IAC/B,SAAS,EAAE,UAAU;IACrB,UAAU,EAAE;QACR,MAAM,EAAE,YAAY;KACvB;CACJ,CAAC;AAEF,eAAe,IAAI,CAAC;AAGpB,MAAM,YAAY,GAAY;IAC1B;QACI,cAAc,EAAE,CAAC;QACjB,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,IAAI,IAAI,CAAC,qBAAqB,CAAC;QACzC,OAAO,EAAE;YACL,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,sBAAsB;YAC7B,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,MAAM;SACf;KACJ;IACD;QACI,cAAc,EAAE,CAAC;QACjB,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,IAAI,IAAI,CAAC,qBAAqB,CAAC;QACzC,OAAO,EAAE;YACL,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,MAAM;YACjB,QAAQ,EAAE,KAAK;YACf,GAAG,EAAE,oBAAoB;SAC5B;KACJ;IACD;QACI,cAAc,EAAE,CAAC;QACjB,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,IAAI,IAAI,CAAC,qBAAqB,CAAC;QACzC,OAAO,EAAE;YACL,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,MAAM;YACf,OAAO,EAAE,OAAO;SACnB;KACJ;IACD;QACI,cAAc,EAAE,CAAC;QACjB,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,IAAI,IAAI,CAAC,qBAAqB,CAAC;QACzC,OAAO,EAAE;YACL,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,IAAI,IAAI,CAAC,qBAAqB,CAAC;SAC7C;KACJ;IACD;QACI,cAAc,EAAE,CAAC;QACjB,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,IAAI,IAAI,CAAC,qBAAqB,CAAC;QACzC,OAAO,EAAE;YACL,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,sBAAsB;YAC7B,UAAU,EAAE,IAAI,IAAI,CAAC,qBAAqB,CAAC;SAC9C;KACJ;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAU;IAC1B,IAAI,EAAE;QACF,MAAM,EAAE,YAAY;KACvB;IACD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CACd,cAAK,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAClD,KAAC,UAAU,OAAK,IAAI,GAAI,GACtB,CACT;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAU;IAC9B,IAAI,EAAE;QACF,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;KAC5B;IACD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CACd,cAAK,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAClD,KAAC,UAAU,OAAK,IAAI,GAAI,GACtB,CACT;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAU;IAC9B,IAAI,EAAE;QACF,MAAM,EAAE,EAAE;KACb;IACD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CACd,cAAK,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAClD,KAAC,UAAU,OAAK,IAAI,GAAI,GACtB,CACT;CACJ,CAAC"}
@@ -1,8 +1,10 @@
1
- import React from 'react';
2
- declare const _default: {
3
- title: string;
4
- component: React.ComponentType<Record<string, never>> | undefined;
5
- };
6
- export default _default;
7
- export declare const Default: () => import("react/jsx-runtime").JSX.Element;
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { Properties } from './Properties';
3
+ declare const meta: Meta<typeof Properties>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Properties>;
6
+ export declare const Default: Story;
7
+ export declare const LeftAligned: Story;
8
+ export declare const RightAligned: Story;
9
+ export declare const WithNullValues: Story;
8
10
  //# sourceMappingURL=Properties.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Properties.stories.d.ts","sourceRoot":"","sources":["../../../TimeMachine/Properties.stories.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;;;;;AAI1B,wBAAyE;AAEzE,eAAO,MAAM,OAAO,+CAA4E,CAAC"}
1
+ {"version":3,"file":"Properties.stories.d.ts","sourceRoot":"","sources":["../../../TimeMachine/Properties.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,UAAU,CAGjC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,UAAU,CAAC,CAAC;AAczC,eAAO,MAAM,OAAO,EAAE,KASrB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAUzB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAU1B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAe5B,CAAC"}