@cratis/scene.components 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (539) hide show
  1. package/.storybook/main.ts +55 -0
  2. package/.storybook/preview.tsx +36 -0
  3. package/CratisComponents.stories.tsx +235 -0
  4. package/README.md +192 -0
  5. package/bindings/ArcRuntimeBoundary.tsx +36 -0
  6. package/bindings/BindingKind.ts +18 -0
  7. package/bindings/BoundConstructor.ts +21 -0
  8. package/bindings/ElementBinding.ts +19 -0
  9. package/bindings/MissingBinding.tsx +34 -0
  10. package/bindings/Placeholder.tsx +42 -0
  11. package/bindings/bindingRegistry.ts +105 -0
  12. package/bindings/for_bindingRegistry/when_a_command_is_registered.ts +30 -0
  13. package/bindings/for_bindingRegistry/when_a_query_is_not_registered.ts +17 -0
  14. package/bindings/for_bindingRegistry/when_a_query_is_registered.ts +30 -0
  15. package/bindings/for_bindingRegistry/when_bindings_are_cleared.ts +29 -0
  16. package/bindings/for_resolveElementBinding/when_resolving_a_command_binding.ts +34 -0
  17. package/bindings/for_resolveElementBinding/when_resolving_a_query_binding.ts +45 -0
  18. package/bindings/index.ts +11 -0
  19. package/bindings/resolveElementBinding.ts +33 -0
  20. package/common/SceneDropdown.tsx +31 -0
  21. package/common/SceneErrorBoundary.tsx +17 -0
  22. package/common/SceneIcon.tsx +18 -0
  23. package/common/SceneTooltip.tsx +28 -0
  24. package/common/index.ts +7 -0
  25. package/cratisComponents.ts +91 -0
  26. package/cratisComponentsPackage.ts +101 -0
  27. package/data/SceneDataTable.tsx +41 -0
  28. package/data/SceneObservableDataTable.tsx +41 -0
  29. package/data/for_SceneDataTable/when_the_query_binding_is_missing.tsx +48 -0
  30. package/data/index.ts +5 -0
  31. package/dialogs/SceneBusyIndicatorDialog.tsx +29 -0
  32. package/dialogs/SceneCommandDialog.tsx +42 -0
  33. package/dialogs/SceneConfirmationDialog.tsx +23 -0
  34. package/dialogs/SceneDialog.tsx +41 -0
  35. package/dialogs/SceneStepperCommandDialog.tsx +50 -0
  36. package/dialogs/index.ts +8 -0
  37. package/dist/cjs/bindings/ArcRuntimeBoundary.js +37 -0
  38. package/dist/cjs/bindings/ArcRuntimeBoundary.js.map +1 -0
  39. package/dist/cjs/bindings/BindingKind.js +19 -0
  40. package/dist/cjs/bindings/BindingKind.js.map +1 -0
  41. package/dist/cjs/bindings/MissingBinding.js +24 -0
  42. package/dist/cjs/bindings/MissingBinding.js.map +1 -0
  43. package/dist/cjs/bindings/Placeholder.js +38 -0
  44. package/dist/cjs/bindings/Placeholder.js.map +1 -0
  45. package/dist/cjs/bindings/bindingRegistry.js +101 -0
  46. package/dist/cjs/bindings/bindingRegistry.js.map +1 -0
  47. package/dist/cjs/bindings/resolveElementBinding.js +34 -0
  48. package/dist/cjs/bindings/resolveElementBinding.js.map +1 -0
  49. package/dist/cjs/common/SceneDropdown.js +30 -0
  50. package/dist/cjs/common/SceneDropdown.js.map +1 -0
  51. package/dist/cjs/common/SceneErrorBoundary.js +20 -0
  52. package/dist/cjs/common/SceneErrorBoundary.js.map +1 -0
  53. package/dist/cjs/common/SceneIcon.js +22 -0
  54. package/dist/cjs/common/SceneIcon.js.map +1 -0
  55. package/dist/cjs/common/SceneTooltip.js +29 -0
  56. package/dist/cjs/common/SceneTooltip.js.map +1 -0
  57. package/dist/cjs/cratisComponents.js +106 -0
  58. package/dist/cjs/cratisComponents.js.map +1 -0
  59. package/dist/cjs/cratisComponentsPackage.js +105 -0
  60. package/dist/cjs/cratisComponentsPackage.js.map +1 -0
  61. package/dist/cjs/data/SceneDataTable.js +46 -0
  62. package/dist/cjs/data/SceneDataTable.js.map +1 -0
  63. package/dist/cjs/data/SceneObservableDataTable.js +44 -0
  64. package/dist/cjs/data/SceneObservableDataTable.js.map +1 -0
  65. package/dist/cjs/dialogs/SceneBusyIndicatorDialog.js +30 -0
  66. package/dist/cjs/dialogs/SceneBusyIndicatorDialog.js.map +1 -0
  67. package/dist/cjs/dialogs/SceneCommandDialog.js +47 -0
  68. package/dist/cjs/dialogs/SceneCommandDialog.js.map +1 -0
  69. package/dist/cjs/dialogs/SceneConfirmationDialog.js +25 -0
  70. package/dist/cjs/dialogs/SceneConfirmationDialog.js.map +1 -0
  71. package/dist/cjs/dialogs/SceneDialog.js +41 -0
  72. package/dist/cjs/dialogs/SceneDialog.js.map +1 -0
  73. package/dist/cjs/dialogs/SceneStepperCommandDialog.js +54 -0
  74. package/dist/cjs/dialogs/SceneStepperCommandDialog.js.map +1 -0
  75. package/dist/cjs/editors/SceneFilterPanel.js +57 -0
  76. package/dist/cjs/editors/SceneFilterPanel.js.map +1 -0
  77. package/dist/cjs/editors/SceneObjectContentEditor.js +37 -0
  78. package/dist/cjs/editors/SceneObjectContentEditor.js.map +1 -0
  79. package/dist/cjs/editors/SceneObjectNavigationalBar.js +34 -0
  80. package/dist/cjs/editors/SceneObjectNavigationalBar.js.map +1 -0
  81. package/dist/cjs/editors/SceneSchemaEditor.js +33 -0
  82. package/dist/cjs/editors/SceneSchemaEditor.js.map +1 -0
  83. package/dist/cjs/editors/SceneTimeMachine.js +32 -0
  84. package/dist/cjs/editors/SceneTimeMachine.js.map +1 -0
  85. package/dist/cjs/editors/filterDefinitions.js +59 -0
  86. package/dist/cjs/editors/filterDefinitions.js.map +1 -0
  87. package/dist/cjs/editors/timeMachineVersions.js +44 -0
  88. package/dist/cjs/editors/timeMachineVersions.js.map +1 -0
  89. package/dist/cjs/editors/useEditableCopy.js +39 -0
  90. package/dist/cjs/editors/useEditableCopy.js.map +1 -0
  91. package/dist/cjs/forms/SceneCommandForm.js +46 -0
  92. package/dist/cjs/forms/SceneCommandForm.js.map +1 -0
  93. package/dist/cjs/forms/fields/CommandFormField.js +31 -0
  94. package/dist/cjs/forms/fields/CommandFormField.js.map +1 -0
  95. package/dist/cjs/forms/fields/SceneCalendarField.js +41 -0
  96. package/dist/cjs/forms/fields/SceneCalendarField.js.map +1 -0
  97. package/dist/cjs/forms/fields/SceneCheckboxField.js +28 -0
  98. package/dist/cjs/forms/fields/SceneCheckboxField.js.map +1 -0
  99. package/dist/cjs/forms/fields/SceneChipsField.js +33 -0
  100. package/dist/cjs/forms/fields/SceneChipsField.js.map +1 -0
  101. package/dist/cjs/forms/fields/SceneColorPickerField.js +30 -0
  102. package/dist/cjs/forms/fields/SceneColorPickerField.js.map +1 -0
  103. package/dist/cjs/forms/fields/SceneDropdownField.js +35 -0
  104. package/dist/cjs/forms/fields/SceneDropdownField.js.map +1 -0
  105. package/dist/cjs/forms/fields/SceneInputTextField.js +45 -0
  106. package/dist/cjs/forms/fields/SceneInputTextField.js.map +1 -0
  107. package/dist/cjs/forms/fields/SceneMultiSelectField.js +40 -0
  108. package/dist/cjs/forms/fields/SceneMultiSelectField.js.map +1 -0
  109. package/dist/cjs/forms/fields/SceneNumberField.js +32 -0
  110. package/dist/cjs/forms/fields/SceneNumberField.js.map +1 -0
  111. package/dist/cjs/forms/fields/SceneRadioButtonField.js +35 -0
  112. package/dist/cjs/forms/fields/SceneRadioButtonField.js.map +1 -0
  113. package/dist/cjs/forms/fields/SceneRadioGroupField.js +36 -0
  114. package/dist/cjs/forms/fields/SceneRadioGroupField.js.map +1 -0
  115. package/dist/cjs/forms/fields/SceneSliderField.js +31 -0
  116. package/dist/cjs/forms/fields/SceneSliderField.js.map +1 -0
  117. package/dist/cjs/forms/fields/SceneTextAreaField.js +31 -0
  118. package/dist/cjs/forms/fields/SceneTextAreaField.js.map +1 -0
  119. package/dist/cjs/forms/fields/resolveFieldBinding.js +27 -0
  120. package/dist/cjs/forms/fields/resolveFieldBinding.js.map +1 -0
  121. package/dist/cjs/index.js +123 -0
  122. package/dist/cjs/index.js.map +1 -0
  123. package/dist/cjs/package.json +3 -0
  124. package/dist/cjs/pages/SceneDataPage.js +45 -0
  125. package/dist/cjs/pages/SceneDataPage.js.map +1 -0
  126. package/dist/cjs/pages/SceneFormElement.js +26 -0
  127. package/dist/cjs/pages/SceneFormElement.js.map +1 -0
  128. package/dist/cjs/pages/ScenePage.js +28 -0
  129. package/dist/cjs/pages/ScenePage.js.map +1 -0
  130. package/dist/cjs/properties.js +104 -0
  131. package/dist/cjs/properties.js.map +1 -0
  132. package/dist/cjs/toolbar/SceneToolbar.js +27 -0
  133. package/dist/cjs/toolbar/SceneToolbar.js.map +1 -0
  134. package/dist/cjs/toolbar/SceneToolbarButton.js +32 -0
  135. package/dist/cjs/toolbar/SceneToolbarButton.js.map +1 -0
  136. package/dist/cjs/toolbar/SceneToolbarGroup.js +27 -0
  137. package/dist/cjs/toolbar/SceneToolbarGroup.js.map +1 -0
  138. package/dist/cjs/toolbar/SceneToolbarSeparator.js +25 -0
  139. package/dist/cjs/toolbar/SceneToolbarSeparator.js.map +1 -0
  140. package/dist/esm/CratisComponents.stories.d.ts +29 -0
  141. package/dist/esm/CratisComponents.stories.d.ts.map +1 -0
  142. package/dist/esm/CratisComponents.stories.js +187 -0
  143. package/dist/esm/CratisComponents.stories.js.map +1 -0
  144. package/dist/esm/bindings/ArcRuntimeBoundary.d.ts +6 -0
  145. package/dist/esm/bindings/ArcRuntimeBoundary.d.ts.map +1 -0
  146. package/dist/esm/bindings/ArcRuntimeBoundary.js +35 -0
  147. package/dist/esm/bindings/ArcRuntimeBoundary.js.map +1 -0
  148. package/dist/esm/bindings/BindingKind.d.ts +5 -0
  149. package/dist/esm/bindings/BindingKind.d.ts.map +1 -0
  150. package/dist/esm/bindings/BindingKind.js +17 -0
  151. package/dist/esm/bindings/BindingKind.js.map +1 -0
  152. package/dist/esm/bindings/BoundConstructor.d.ts +2 -0
  153. package/dist/esm/bindings/BoundConstructor.d.ts.map +1 -0
  154. package/dist/esm/bindings/BoundConstructor.js +2 -0
  155. package/dist/esm/bindings/BoundConstructor.js.map +1 -0
  156. package/dist/esm/bindings/ElementBinding.d.ts +6 -0
  157. package/dist/esm/bindings/ElementBinding.d.ts.map +1 -0
  158. package/dist/esm/bindings/ElementBinding.js +2 -0
  159. package/dist/esm/bindings/ElementBinding.js.map +1 -0
  160. package/dist/esm/bindings/MissingBinding.d.ts +9 -0
  161. package/dist/esm/bindings/MissingBinding.d.ts.map +1 -0
  162. package/dist/esm/bindings/MissingBinding.js +22 -0
  163. package/dist/esm/bindings/MissingBinding.js.map +1 -0
  164. package/dist/esm/bindings/Placeholder.d.ts +7 -0
  165. package/dist/esm/bindings/Placeholder.d.ts.map +1 -0
  166. package/dist/esm/bindings/Placeholder.js +36 -0
  167. package/dist/esm/bindings/Placeholder.js.map +1 -0
  168. package/dist/esm/bindings/bindingRegistry.d.ts +11 -0
  169. package/dist/esm/bindings/bindingRegistry.d.ts.map +1 -0
  170. package/dist/esm/bindings/bindingRegistry.js +91 -0
  171. package/dist/esm/bindings/bindingRegistry.js.map +1 -0
  172. package/dist/esm/bindings/for_bindingRegistry/when_a_command_is_registered.d.ts +2 -0
  173. package/dist/esm/bindings/for_bindingRegistry/when_a_command_is_registered.d.ts.map +1 -0
  174. package/dist/esm/bindings/for_bindingRegistry/when_a_command_is_registered.js +25 -0
  175. package/dist/esm/bindings/for_bindingRegistry/when_a_command_is_registered.js.map +1 -0
  176. package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_not_registered.d.ts +2 -0
  177. package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_not_registered.d.ts.map +1 -0
  178. package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_not_registered.js +12 -0
  179. package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_not_registered.js.map +1 -0
  180. package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_registered.d.ts +2 -0
  181. package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_registered.d.ts.map +1 -0
  182. package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_registered.js +23 -0
  183. package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_registered.js.map +1 -0
  184. package/dist/esm/bindings/for_bindingRegistry/when_bindings_are_cleared.d.ts +2 -0
  185. package/dist/esm/bindings/for_bindingRegistry/when_bindings_are_cleared.d.ts.map +1 -0
  186. package/dist/esm/bindings/for_bindingRegistry/when_bindings_are_cleared.js +18 -0
  187. package/dist/esm/bindings/for_bindingRegistry/when_bindings_are_cleared.js.map +1 -0
  188. package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_command_binding.d.ts +2 -0
  189. package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_command_binding.d.ts.map +1 -0
  190. package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_command_binding.js +25 -0
  191. package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_command_binding.js.map +1 -0
  192. package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_query_binding.d.ts +2 -0
  193. package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_query_binding.d.ts.map +1 -0
  194. package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_query_binding.js +33 -0
  195. package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_query_binding.js.map +1 -0
  196. package/dist/esm/bindings/index.d.ts +9 -0
  197. package/dist/esm/bindings/index.d.ts.map +1 -0
  198. package/dist/esm/bindings/index.js +9 -0
  199. package/dist/esm/bindings/index.js.map +1 -0
  200. package/dist/esm/bindings/resolveElementBinding.d.ts +5 -0
  201. package/dist/esm/bindings/resolveElementBinding.d.ts.map +1 -0
  202. package/dist/esm/bindings/resolveElementBinding.js +32 -0
  203. package/dist/esm/bindings/resolveElementBinding.js.map +1 -0
  204. package/dist/esm/common/SceneDropdown.d.ts +3 -0
  205. package/dist/esm/common/SceneDropdown.d.ts.map +1 -0
  206. package/dist/esm/common/SceneDropdown.js +28 -0
  207. package/dist/esm/common/SceneDropdown.js.map +1 -0
  208. package/dist/esm/common/SceneErrorBoundary.d.ts +3 -0
  209. package/dist/esm/common/SceneErrorBoundary.d.ts.map +1 -0
  210. package/dist/esm/common/SceneErrorBoundary.js +18 -0
  211. package/dist/esm/common/SceneErrorBoundary.js.map +1 -0
  212. package/dist/esm/common/SceneIcon.d.ts +3 -0
  213. package/dist/esm/common/SceneIcon.d.ts.map +1 -0
  214. package/dist/esm/common/SceneIcon.js +20 -0
  215. package/dist/esm/common/SceneIcon.js.map +1 -0
  216. package/dist/esm/common/SceneTooltip.d.ts +3 -0
  217. package/dist/esm/common/SceneTooltip.d.ts.map +1 -0
  218. package/dist/esm/common/SceneTooltip.js +27 -0
  219. package/dist/esm/common/SceneTooltip.js.map +1 -0
  220. package/dist/esm/common/index.d.ts +5 -0
  221. package/dist/esm/common/index.d.ts.map +1 -0
  222. package/dist/esm/common/index.js +5 -0
  223. package/dist/esm/common/index.js.map +1 -0
  224. package/dist/esm/cratisComponents.d.ts +4 -0
  225. package/dist/esm/cratisComponents.d.ts.map +1 -0
  226. package/dist/esm/cratisComponents.js +103 -0
  227. package/dist/esm/cratisComponents.js.map +1 -0
  228. package/dist/esm/cratisComponentsPackage.d.ts +5 -0
  229. package/dist/esm/cratisComponentsPackage.d.ts.map +1 -0
  230. package/dist/esm/cratisComponentsPackage.js +102 -0
  231. package/dist/esm/cratisComponentsPackage.js.map +1 -0
  232. package/dist/esm/data/SceneDataTable.d.ts +3 -0
  233. package/dist/esm/data/SceneDataTable.d.ts.map +1 -0
  234. package/dist/esm/data/SceneDataTable.js +44 -0
  235. package/dist/esm/data/SceneDataTable.js.map +1 -0
  236. package/dist/esm/data/SceneObservableDataTable.d.ts +3 -0
  237. package/dist/esm/data/SceneObservableDataTable.d.ts.map +1 -0
  238. package/dist/esm/data/SceneObservableDataTable.js +42 -0
  239. package/dist/esm/data/SceneObservableDataTable.js.map +1 -0
  240. package/dist/esm/data/for_SceneDataTable/when_the_query_binding_is_missing.d.ts +2 -0
  241. package/dist/esm/data/for_SceneDataTable/when_the_query_binding_is_missing.d.ts.map +1 -0
  242. package/dist/esm/data/for_SceneDataTable/when_the_query_binding_is_missing.js +36 -0
  243. package/dist/esm/data/for_SceneDataTable/when_the_query_binding_is_missing.js.map +1 -0
  244. package/dist/esm/data/index.d.ts +3 -0
  245. package/dist/esm/data/index.d.ts.map +1 -0
  246. package/dist/esm/data/index.js +3 -0
  247. package/dist/esm/data/index.js.map +1 -0
  248. package/dist/esm/dialogs/SceneBusyIndicatorDialog.d.ts +3 -0
  249. package/dist/esm/dialogs/SceneBusyIndicatorDialog.d.ts.map +1 -0
  250. package/dist/esm/dialogs/SceneBusyIndicatorDialog.js +28 -0
  251. package/dist/esm/dialogs/SceneBusyIndicatorDialog.js.map +1 -0
  252. package/dist/esm/dialogs/SceneCommandDialog.d.ts +3 -0
  253. package/dist/esm/dialogs/SceneCommandDialog.d.ts.map +1 -0
  254. package/dist/esm/dialogs/SceneCommandDialog.js +45 -0
  255. package/dist/esm/dialogs/SceneCommandDialog.js.map +1 -0
  256. package/dist/esm/dialogs/SceneConfirmationDialog.d.ts +2 -0
  257. package/dist/esm/dialogs/SceneConfirmationDialog.d.ts.map +1 -0
  258. package/dist/esm/dialogs/SceneConfirmationDialog.js +23 -0
  259. package/dist/esm/dialogs/SceneConfirmationDialog.js.map +1 -0
  260. package/dist/esm/dialogs/SceneDialog.d.ts +3 -0
  261. package/dist/esm/dialogs/SceneDialog.d.ts.map +1 -0
  262. package/dist/esm/dialogs/SceneDialog.js +39 -0
  263. package/dist/esm/dialogs/SceneDialog.js.map +1 -0
  264. package/dist/esm/dialogs/SceneStepperCommandDialog.d.ts +3 -0
  265. package/dist/esm/dialogs/SceneStepperCommandDialog.d.ts.map +1 -0
  266. package/dist/esm/dialogs/SceneStepperCommandDialog.js +52 -0
  267. package/dist/esm/dialogs/SceneStepperCommandDialog.js.map +1 -0
  268. package/dist/esm/dialogs/index.d.ts +6 -0
  269. package/dist/esm/dialogs/index.d.ts.map +1 -0
  270. package/dist/esm/dialogs/index.js +6 -0
  271. package/dist/esm/dialogs/index.js.map +1 -0
  272. package/dist/esm/editors/SceneFilterPanel.d.ts +3 -0
  273. package/dist/esm/editors/SceneFilterPanel.d.ts.map +1 -0
  274. package/dist/esm/editors/SceneFilterPanel.js +55 -0
  275. package/dist/esm/editors/SceneFilterPanel.js.map +1 -0
  276. package/dist/esm/editors/SceneObjectContentEditor.d.ts +3 -0
  277. package/dist/esm/editors/SceneObjectContentEditor.d.ts.map +1 -0
  278. package/dist/esm/editors/SceneObjectContentEditor.js +35 -0
  279. package/dist/esm/editors/SceneObjectContentEditor.js.map +1 -0
  280. package/dist/esm/editors/SceneObjectNavigationalBar.d.ts +3 -0
  281. package/dist/esm/editors/SceneObjectNavigationalBar.d.ts.map +1 -0
  282. package/dist/esm/editors/SceneObjectNavigationalBar.js +32 -0
  283. package/dist/esm/editors/SceneObjectNavigationalBar.js.map +1 -0
  284. package/dist/esm/editors/SceneSchemaEditor.d.ts +3 -0
  285. package/dist/esm/editors/SceneSchemaEditor.d.ts.map +1 -0
  286. package/dist/esm/editors/SceneSchemaEditor.js +31 -0
  287. package/dist/esm/editors/SceneSchemaEditor.js.map +1 -0
  288. package/dist/esm/editors/SceneTimeMachine.d.ts +3 -0
  289. package/dist/esm/editors/SceneTimeMachine.d.ts.map +1 -0
  290. package/dist/esm/editors/SceneTimeMachine.js +30 -0
  291. package/dist/esm/editors/SceneTimeMachine.js.map +1 -0
  292. package/dist/esm/editors/filterDefinitions.d.ts +3 -0
  293. package/dist/esm/editors/filterDefinitions.d.ts.map +1 -0
  294. package/dist/esm/editors/filterDefinitions.js +57 -0
  295. package/dist/esm/editors/filterDefinitions.js.map +1 -0
  296. package/dist/esm/editors/for_SceneObjectNavigationalBar/when_navigating_back_up_the_trail.d.ts +2 -0
  297. package/dist/esm/editors/for_SceneObjectNavigationalBar/when_navigating_back_up_the_trail.d.ts.map +1 -0
  298. package/dist/esm/editors/for_SceneObjectNavigationalBar/when_navigating_back_up_the_trail.js +15 -0
  299. package/dist/esm/editors/for_SceneObjectNavigationalBar/when_navigating_back_up_the_trail.js.map +1 -0
  300. package/dist/esm/editors/for_filterDefinitions/when_reading_filter_definitions.d.ts +2 -0
  301. package/dist/esm/editors/for_filterDefinitions/when_reading_filter_definitions.d.ts.map +1 -0
  302. package/dist/esm/editors/for_filterDefinitions/when_reading_filter_definitions.js +39 -0
  303. package/dist/esm/editors/for_filterDefinitions/when_reading_filter_definitions.js.map +1 -0
  304. package/dist/esm/editors/for_timeMachineVersions/when_reading_versions.d.ts +2 -0
  305. package/dist/esm/editors/for_timeMachineVersions/when_reading_versions.d.ts.map +1 -0
  306. package/dist/esm/editors/for_timeMachineVersions/when_reading_versions.js +32 -0
  307. package/dist/esm/editors/for_timeMachineVersions/when_reading_versions.js.map +1 -0
  308. package/dist/esm/editors/index.d.ts +9 -0
  309. package/dist/esm/editors/index.d.ts.map +1 -0
  310. package/dist/esm/editors/index.js +9 -0
  311. package/dist/esm/editors/index.js.map +1 -0
  312. package/dist/esm/editors/timeMachineVersions.d.ts +3 -0
  313. package/dist/esm/editors/timeMachineVersions.d.ts.map +1 -0
  314. package/dist/esm/editors/timeMachineVersions.js +42 -0
  315. package/dist/esm/editors/timeMachineVersions.js.map +1 -0
  316. package/dist/esm/editors/useEditableCopy.d.ts +2 -0
  317. package/dist/esm/editors/useEditableCopy.d.ts.map +1 -0
  318. package/dist/esm/editors/useEditableCopy.js +37 -0
  319. package/dist/esm/editors/useEditableCopy.js.map +1 -0
  320. package/dist/esm/for_cratisComponents/when_rendering_a_screen_through_the_real_renderer.d.ts +2 -0
  321. package/dist/esm/for_cratisComponents/when_rendering_a_screen_through_the_real_renderer.d.ts.map +1 -0
  322. package/dist/esm/for_cratisComponents/when_rendering_a_screen_through_the_real_renderer.js +25 -0
  323. package/dist/esm/for_cratisComponents/when_rendering_a_screen_through_the_real_renderer.js.map +1 -0
  324. package/dist/esm/for_cratisComponentsPackage/when_a_profile_ranks_it_above_the_packages_it_layers_on.d.ts +2 -0
  325. package/dist/esm/for_cratisComponentsPackage/when_a_profile_ranks_it_above_the_packages_it_layers_on.d.ts.map +1 -0
  326. package/dist/esm/for_cratisComponentsPackage/when_a_profile_ranks_it_above_the_packages_it_layers_on.js +34 -0
  327. package/dist/esm/for_cratisComponentsPackage/when_a_profile_ranks_it_above_the_packages_it_layers_on.js.map +1 -0
  328. package/dist/esm/for_cratisComponentsPackage/when_resolving_its_dependencies.d.ts +2 -0
  329. package/dist/esm/for_cratisComponentsPackage/when_resolving_its_dependencies.d.ts.map +1 -0
  330. package/dist/esm/for_cratisComponentsPackage/when_resolving_its_dependencies.js +49 -0
  331. package/dist/esm/for_cratisComponentsPackage/when_resolving_its_dependencies.js.map +1 -0
  332. package/dist/esm/for_cratisComponentsPackage/when_validating_the_bundle.d.ts +2 -0
  333. package/dist/esm/for_cratisComponentsPackage/when_validating_the_bundle.d.ts.map +1 -0
  334. package/dist/esm/for_cratisComponentsPackage/when_validating_the_bundle.js +27 -0
  335. package/dist/esm/for_cratisComponentsPackage/when_validating_the_bundle.js.map +1 -0
  336. package/dist/esm/for_properties/when_a_property_has_the_wrong_type.d.ts +2 -0
  337. package/dist/esm/for_properties/when_a_property_has_the_wrong_type.d.ts.map +1 -0
  338. package/dist/esm/for_properties/when_a_property_has_the_wrong_type.js +24 -0
  339. package/dist/esm/for_properties/when_a_property_has_the_wrong_type.js.map +1 -0
  340. package/dist/esm/for_properties/when_a_property_is_missing.d.ts +2 -0
  341. package/dist/esm/for_properties/when_a_property_is_missing.d.ts.map +1 -0
  342. package/dist/esm/for_properties/when_a_property_is_missing.js +13 -0
  343. package/dist/esm/for_properties/when_a_property_is_missing.js.map +1 -0
  344. package/dist/esm/for_properties/when_a_property_is_present.d.ts +2 -0
  345. package/dist/esm/for_properties/when_a_property_is_present.d.ts.map +1 -0
  346. package/dist/esm/for_properties/when_a_property_is_present.js +21 -0
  347. package/dist/esm/for_properties/when_a_property_is_present.js.map +1 -0
  348. package/dist/esm/forms/SceneCommandForm.d.ts +3 -0
  349. package/dist/esm/forms/SceneCommandForm.d.ts.map +1 -0
  350. package/dist/esm/forms/SceneCommandForm.js +44 -0
  351. package/dist/esm/forms/SceneCommandForm.js.map +1 -0
  352. package/dist/esm/forms/fields/CommandFormField.d.ts +9 -0
  353. package/dist/esm/forms/fields/CommandFormField.d.ts.map +1 -0
  354. package/dist/esm/forms/fields/CommandFormField.js +29 -0
  355. package/dist/esm/forms/fields/CommandFormField.js.map +1 -0
  356. package/dist/esm/forms/fields/FieldBinding.d.ts +6 -0
  357. package/dist/esm/forms/fields/FieldBinding.d.ts.map +1 -0
  358. package/dist/esm/forms/fields/FieldBinding.js +2 -0
  359. package/dist/esm/forms/fields/FieldBinding.js.map +1 -0
  360. package/dist/esm/forms/fields/SceneCalendarField.d.ts +3 -0
  361. package/dist/esm/forms/fields/SceneCalendarField.d.ts.map +1 -0
  362. package/dist/esm/forms/fields/SceneCalendarField.js +39 -0
  363. package/dist/esm/forms/fields/SceneCalendarField.js.map +1 -0
  364. package/dist/esm/forms/fields/SceneCheckboxField.d.ts +3 -0
  365. package/dist/esm/forms/fields/SceneCheckboxField.d.ts.map +1 -0
  366. package/dist/esm/forms/fields/SceneCheckboxField.js +26 -0
  367. package/dist/esm/forms/fields/SceneCheckboxField.js.map +1 -0
  368. package/dist/esm/forms/fields/SceneChipsField.d.ts +3 -0
  369. package/dist/esm/forms/fields/SceneChipsField.d.ts.map +1 -0
  370. package/dist/esm/forms/fields/SceneChipsField.js +31 -0
  371. package/dist/esm/forms/fields/SceneChipsField.js.map +1 -0
  372. package/dist/esm/forms/fields/SceneColorPickerField.d.ts +3 -0
  373. package/dist/esm/forms/fields/SceneColorPickerField.d.ts.map +1 -0
  374. package/dist/esm/forms/fields/SceneColorPickerField.js +28 -0
  375. package/dist/esm/forms/fields/SceneColorPickerField.js.map +1 -0
  376. package/dist/esm/forms/fields/SceneDropdownField.d.ts +3 -0
  377. package/dist/esm/forms/fields/SceneDropdownField.d.ts.map +1 -0
  378. package/dist/esm/forms/fields/SceneDropdownField.js +33 -0
  379. package/dist/esm/forms/fields/SceneDropdownField.js.map +1 -0
  380. package/dist/esm/forms/fields/SceneInputTextField.d.ts +3 -0
  381. package/dist/esm/forms/fields/SceneInputTextField.d.ts.map +1 -0
  382. package/dist/esm/forms/fields/SceneInputTextField.js +43 -0
  383. package/dist/esm/forms/fields/SceneInputTextField.js.map +1 -0
  384. package/dist/esm/forms/fields/SceneMultiSelectField.d.ts +3 -0
  385. package/dist/esm/forms/fields/SceneMultiSelectField.d.ts.map +1 -0
  386. package/dist/esm/forms/fields/SceneMultiSelectField.js +38 -0
  387. package/dist/esm/forms/fields/SceneMultiSelectField.js.map +1 -0
  388. package/dist/esm/forms/fields/SceneNumberField.d.ts +3 -0
  389. package/dist/esm/forms/fields/SceneNumberField.d.ts.map +1 -0
  390. package/dist/esm/forms/fields/SceneNumberField.js +30 -0
  391. package/dist/esm/forms/fields/SceneNumberField.js.map +1 -0
  392. package/dist/esm/forms/fields/SceneRadioButtonField.d.ts +3 -0
  393. package/dist/esm/forms/fields/SceneRadioButtonField.d.ts.map +1 -0
  394. package/dist/esm/forms/fields/SceneRadioButtonField.js +33 -0
  395. package/dist/esm/forms/fields/SceneRadioButtonField.js.map +1 -0
  396. package/dist/esm/forms/fields/SceneRadioGroupField.d.ts +3 -0
  397. package/dist/esm/forms/fields/SceneRadioGroupField.d.ts.map +1 -0
  398. package/dist/esm/forms/fields/SceneRadioGroupField.js +34 -0
  399. package/dist/esm/forms/fields/SceneRadioGroupField.js.map +1 -0
  400. package/dist/esm/forms/fields/SceneSliderField.d.ts +3 -0
  401. package/dist/esm/forms/fields/SceneSliderField.d.ts.map +1 -0
  402. package/dist/esm/forms/fields/SceneSliderField.js +29 -0
  403. package/dist/esm/forms/fields/SceneSliderField.js.map +1 -0
  404. package/dist/esm/forms/fields/SceneTextAreaField.d.ts +3 -0
  405. package/dist/esm/forms/fields/SceneTextAreaField.d.ts.map +1 -0
  406. package/dist/esm/forms/fields/SceneTextAreaField.js +29 -0
  407. package/dist/esm/forms/fields/SceneTextAreaField.js.map +1 -0
  408. package/dist/esm/forms/fields/for_CommandFormField/when_the_field_names_no_property.d.ts +2 -0
  409. package/dist/esm/forms/fields/for_CommandFormField/when_the_field_names_no_property.d.ts.map +1 -0
  410. package/dist/esm/forms/fields/for_CommandFormField/when_the_field_names_no_property.js +12 -0
  411. package/dist/esm/forms/fields/for_CommandFormField/when_the_field_names_no_property.js.map +1 -0
  412. package/dist/esm/forms/fields/for_resolveFieldBinding/when_resolving_a_field_binding.d.ts +2 -0
  413. package/dist/esm/forms/fields/for_resolveFieldBinding/when_resolving_a_field_binding.d.ts.map +1 -0
  414. package/dist/esm/forms/fields/for_resolveFieldBinding/when_resolving_a_field_binding.js +24 -0
  415. package/dist/esm/forms/fields/for_resolveFieldBinding/when_resolving_a_field_binding.js.map +1 -0
  416. package/dist/esm/forms/fields/index.d.ts +16 -0
  417. package/dist/esm/forms/fields/index.d.ts.map +1 -0
  418. package/dist/esm/forms/fields/index.js +16 -0
  419. package/dist/esm/forms/fields/index.js.map +1 -0
  420. package/dist/esm/forms/fields/resolveFieldBinding.d.ts +4 -0
  421. package/dist/esm/forms/fields/resolveFieldBinding.d.ts.map +1 -0
  422. package/dist/esm/forms/fields/resolveFieldBinding.js +25 -0
  423. package/dist/esm/forms/fields/resolveFieldBinding.js.map +1 -0
  424. package/dist/esm/forms/index.d.ts +3 -0
  425. package/dist/esm/forms/index.d.ts.map +1 -0
  426. package/dist/esm/forms/index.js +3 -0
  427. package/dist/esm/forms/index.js.map +1 -0
  428. package/dist/esm/given.d.ts +3 -0
  429. package/dist/esm/given.d.ts.map +1 -0
  430. package/dist/esm/given.js +21 -0
  431. package/dist/esm/given.js.map +1 -0
  432. package/dist/esm/index.d.ts +12 -0
  433. package/dist/esm/index.d.ts.map +1 -0
  434. package/dist/esm/index.js +51 -0
  435. package/dist/esm/index.js.map +1 -0
  436. package/dist/esm/package.json +3 -0
  437. package/dist/esm/pages/SceneDataPage.d.ts +3 -0
  438. package/dist/esm/pages/SceneDataPage.d.ts.map +1 -0
  439. package/dist/esm/pages/SceneDataPage.js +43 -0
  440. package/dist/esm/pages/SceneDataPage.js.map +1 -0
  441. package/dist/esm/pages/SceneFormElement.d.ts +3 -0
  442. package/dist/esm/pages/SceneFormElement.d.ts.map +1 -0
  443. package/dist/esm/pages/SceneFormElement.js +24 -0
  444. package/dist/esm/pages/SceneFormElement.js.map +1 -0
  445. package/dist/esm/pages/ScenePage.d.ts +3 -0
  446. package/dist/esm/pages/ScenePage.d.ts.map +1 -0
  447. package/dist/esm/pages/ScenePage.js +26 -0
  448. package/dist/esm/pages/ScenePage.js.map +1 -0
  449. package/dist/esm/pages/for_ScenePage/when_rendering_a_page.d.ts +2 -0
  450. package/dist/esm/pages/for_ScenePage/when_rendering_a_page.d.ts.map +1 -0
  451. package/dist/esm/pages/for_ScenePage/when_rendering_a_page.js +31 -0
  452. package/dist/esm/pages/for_ScenePage/when_rendering_a_page.js.map +1 -0
  453. package/dist/esm/pages/index.d.ts +4 -0
  454. package/dist/esm/pages/index.d.ts.map +1 -0
  455. package/dist/esm/pages/index.js +4 -0
  456. package/dist/esm/pages/index.js.map +1 -0
  457. package/dist/esm/properties.d.ts +9 -0
  458. package/dist/esm/properties.d.ts.map +1 -0
  459. package/dist/esm/properties.js +95 -0
  460. package/dist/esm/properties.js.map +1 -0
  461. package/dist/esm/toolbar/SceneToolbar.d.ts +3 -0
  462. package/dist/esm/toolbar/SceneToolbar.d.ts.map +1 -0
  463. package/dist/esm/toolbar/SceneToolbar.js +25 -0
  464. package/dist/esm/toolbar/SceneToolbar.js.map +1 -0
  465. package/dist/esm/toolbar/SceneToolbarButton.d.ts +3 -0
  466. package/dist/esm/toolbar/SceneToolbarButton.d.ts.map +1 -0
  467. package/dist/esm/toolbar/SceneToolbarButton.js +30 -0
  468. package/dist/esm/toolbar/SceneToolbarButton.js.map +1 -0
  469. package/dist/esm/toolbar/SceneToolbarGroup.d.ts +3 -0
  470. package/dist/esm/toolbar/SceneToolbarGroup.d.ts.map +1 -0
  471. package/dist/esm/toolbar/SceneToolbarGroup.js +25 -0
  472. package/dist/esm/toolbar/SceneToolbarGroup.js.map +1 -0
  473. package/dist/esm/toolbar/SceneToolbarSeparator.d.ts +3 -0
  474. package/dist/esm/toolbar/SceneToolbarSeparator.d.ts.map +1 -0
  475. package/dist/esm/toolbar/SceneToolbarSeparator.js +23 -0
  476. package/dist/esm/toolbar/SceneToolbarSeparator.js.map +1 -0
  477. package/dist/esm/toolbar/index.d.ts +5 -0
  478. package/dist/esm/toolbar/index.d.ts.map +1 -0
  479. package/dist/esm/toolbar/index.js +5 -0
  480. package/dist/esm/toolbar/index.js.map +1 -0
  481. package/dist/esm/tsconfig.tsbuildinfo +1 -0
  482. package/editors/SceneFilterPanel.tsx +52 -0
  483. package/editors/SceneObjectContentEditor.tsx +36 -0
  484. package/editors/SceneObjectNavigationalBar.tsx +34 -0
  485. package/editors/SceneSchemaEditor.tsx +34 -0
  486. package/editors/SceneTimeMachine.tsx +32 -0
  487. package/editors/filterDefinitions.ts +59 -0
  488. package/editors/for_SceneObjectNavigationalBar/when_navigating_back_up_the_trail.tsx +18 -0
  489. package/editors/for_filterDefinitions/when_reading_filter_definitions.ts +49 -0
  490. package/editors/for_timeMachineVersions/when_reading_versions.ts +39 -0
  491. package/editors/index.ts +11 -0
  492. package/editors/timeMachineVersions.ts +44 -0
  493. package/editors/useEditableCopy.ts +32 -0
  494. package/for_cratisComponents/when_rendering_a_screen_through_the_real_renderer.tsx +37 -0
  495. package/for_cratisComponentsPackage/when_a_profile_ranks_it_above_the_packages_it_layers_on.ts +49 -0
  496. package/for_cratisComponentsPackage/when_resolving_its_dependencies.ts +68 -0
  497. package/for_cratisComponentsPackage/when_validating_the_bundle.ts +39 -0
  498. package/for_properties/when_a_property_has_the_wrong_type.ts +41 -0
  499. package/for_properties/when_a_property_is_missing.ts +26 -0
  500. package/for_properties/when_a_property_is_present.ts +36 -0
  501. package/forms/SceneCommandForm.tsx +45 -0
  502. package/forms/fields/CommandFormField.tsx +32 -0
  503. package/forms/fields/FieldBinding.ts +26 -0
  504. package/forms/fields/SceneCalendarField.tsx +41 -0
  505. package/forms/fields/SceneCheckboxField.tsx +29 -0
  506. package/forms/fields/SceneChipsField.tsx +34 -0
  507. package/forms/fields/SceneColorPickerField.tsx +31 -0
  508. package/forms/fields/SceneDropdownField.tsx +36 -0
  509. package/forms/fields/SceneInputTextField.tsx +37 -0
  510. package/forms/fields/SceneMultiSelectField.tsx +40 -0
  511. package/forms/fields/SceneNumberField.tsx +33 -0
  512. package/forms/fields/SceneRadioButtonField.tsx +37 -0
  513. package/forms/fields/SceneRadioGroupField.tsx +36 -0
  514. package/forms/fields/SceneSliderField.tsx +32 -0
  515. package/forms/fields/SceneTextAreaField.tsx +32 -0
  516. package/forms/fields/for_CommandFormField/when_the_field_names_no_property.tsx +16 -0
  517. package/forms/fields/for_resolveFieldBinding/when_resolving_a_field_binding.ts +34 -0
  518. package/forms/fields/index.ts +18 -0
  519. package/forms/fields/resolveFieldBinding.ts +27 -0
  520. package/forms/index.ts +5 -0
  521. package/given.ts +33 -0
  522. package/index.ts +14 -0
  523. package/package.json +68 -0
  524. package/pages/SceneDataPage.tsx +40 -0
  525. package/pages/SceneFormElement.tsx +21 -0
  526. package/pages/ScenePage.tsx +30 -0
  527. package/pages/for_ScenePage/when_rendering_a_page.tsx +39 -0
  528. package/pages/index.ts +6 -0
  529. package/properties.ts +112 -0
  530. package/storybook-static/assets/CommandDialog-B78_eDOU.css +1 -0
  531. package/storybook-static/assets/CratisComponents-qPooLvTv.css +1 -0
  532. package/storybook-static/assets/DataPage-CroWzXsC.css +1 -0
  533. package/storybook-static/assets/iframe-DQhZBFM5.css +1 -0
  534. package/theme/sceneTokenBridge.css +72 -0
  535. package/toolbar/SceneToolbar.tsx +28 -0
  536. package/toolbar/SceneToolbarButton.tsx +31 -0
  537. package/toolbar/SceneToolbarGroup.tsx +28 -0
  538. package/toolbar/SceneToolbarSeparator.tsx +21 -0
  539. package/toolbar/index.ts +7 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneConfirmationDialog.js","sources":["../../../dialogs/SceneConfirmationDialog.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 { lazy } from 'react';\nimport { ArcRuntimeBoundary } from '../bindings';\n\nconst ConfirmationDialog = lazy(async () => ({ default: (await import('@cratis/components/Dialogs')).ConfirmationDialog }));\n\n/**\n * The `Cratis.Components:confirmationDialog` component - `ConfirmationDialog` from\n * `@cratis/components/Dialogs`.\n *\n * Takes no properties by design: it is not a dialog a screen configures, it is the host that renders\n * whatever confirmation the running application has asked for through Arc's dialog service. A screen\n * places it once, near the root, and every `Are you sure?` in the application appears there.\n */\nexport function SceneConfirmationDialog() {\n return (\n <ArcRuntimeBoundary>\n <ConfirmationDialog />\n </ArcRuntimeBoundary>\n );\n}\n"],"names":["ConfirmationDialog","lazy","default","SceneConfirmationDialog","_jsx","ArcRuntimeBoundary"],"mappings":";;;;;AAMA,MAAMA,kBAAAA,iBAAqBC,IAAAA,CAAK,WAAa;AAAEC,QAAAA,OAAAA,EAAS,CAAC,MAAM,OAAO,4BAAA,CAA4B,EAAGF;KAAmB,CAAA,CAAA;AAExH;;;;;;;AAOC,IACM,SAASG,uBAAAA,GAAAA;AACZ,IAAA,qBACIC,GAAA,CAACC,kBAAAA,EAAAA;AACG,QAAA,QAAA,gBAAAD,GAAA,CAACJ,kBAAAA,EAAAA,EAAAA;;AAGb;;;;"}
@@ -0,0 +1,3 @@
1
+ import { RegisteredComponentProps } from '@cratis/scene.react';
2
+ export declare function SceneDialog({ element, slots }: RegisteredComponentProps): import("react").JSX.Element;
3
+ //# sourceMappingURL=SceneDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneDialog.d.ts","sourceRoot":"","sources":["../../../dialogs/SceneDialog.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAkB/D,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,wBAAwB,+BAkBvE"}
@@ -0,0 +1,39 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { lazy } from 'react';
3
+ import '../bindings/resolveElementBinding.js';
4
+ import { ArcRuntimeBoundary } from '../bindings/ArcRuntimeBoundary.js';
5
+ import { stringProperty, booleanProperty } from '../properties.js';
6
+
7
+ const Dialog = /*#__PURE__*/ lazy(async ()=>({
8
+ default: (await import('@cratis/components/Dialogs')).Dialog
9
+ }));
10
+ /**
11
+ * The `Cratis.Components:dialog` component, registered under the bare name `dialog` - `Dialog` from
12
+ * `@cratis/components/Dialogs`.
13
+ *
14
+ * Shadowing PrimeReact's `dialog` deliberately. PrimeReact's is a modal frame and nothing more; this one
15
+ * resolves its result through Arc's dialog context, so a screen's dialog participates in the same
16
+ * request/response protocol as the rest of the application - a caller awaits a `DialogResult` instead of
17
+ * threading `visible` state and callbacks by hand.
18
+ *
19
+ * `visible` defaults to `true` because a dialog placed on a screen is being placed to be seen; a host
20
+ * that controls visibility sets the property explicitly.
21
+ */ function SceneDialog({ element, slots }) {
22
+ return /*#__PURE__*/ jsx(ArcRuntimeBoundary, {
23
+ children: /*#__PURE__*/ jsx(Dialog, {
24
+ title: stringProperty(element.properties, 'title') ?? '',
25
+ visible: booleanProperty(element.properties, 'visible') ?? true,
26
+ width: stringProperty(element.properties, 'width'),
27
+ resizable: booleanProperty(element.properties, 'resizable'),
28
+ isValid: booleanProperty(element.properties, 'isValid'),
29
+ isBusy: booleanProperty(element.properties, 'isBusy'),
30
+ okLabel: stringProperty(element.properties, 'okLabel'),
31
+ cancelLabel: stringProperty(element.properties, 'cancelLabel'),
32
+ className: stringProperty(element.properties, 'className'),
33
+ children: slots.content
34
+ })
35
+ });
36
+ }
37
+
38
+ export { SceneDialog };
39
+ //# sourceMappingURL=SceneDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneDialog.js","sources":["../../../dialogs/SceneDialog.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 { lazy } from 'react';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { ArcRuntimeBoundary } from '../bindings';\nimport { booleanProperty, stringProperty } from '../properties';\n\nconst Dialog = lazy(async () => ({ default: (await import('@cratis/components/Dialogs')).Dialog }));\n\n/**\n * The `Cratis.Components:dialog` component, registered under the bare name `dialog` - `Dialog` from\n * `@cratis/components/Dialogs`.\n *\n * Shadowing PrimeReact's `dialog` deliberately. PrimeReact's is a modal frame and nothing more; this one\n * resolves its result through Arc's dialog context, so a screen's dialog participates in the same\n * request/response protocol as the rest of the application - a caller awaits a `DialogResult` instead of\n * threading `visible` state and callbacks by hand.\n *\n * `visible` defaults to `true` because a dialog placed on a screen is being placed to be seen; a host\n * that controls visibility sets the property explicitly.\n */\nexport function SceneDialog({ element, slots }: RegisteredComponentProps) {\n return (\n <ArcRuntimeBoundary>\n <Dialog\n title={stringProperty(element.properties, 'title') ?? ''}\n visible={booleanProperty(element.properties, 'visible') ?? true}\n width={stringProperty(element.properties, 'width')}\n resizable={booleanProperty(element.properties, 'resizable')}\n isValid={booleanProperty(element.properties, 'isValid')}\n isBusy={booleanProperty(element.properties, 'isBusy')}\n okLabel={stringProperty(element.properties, 'okLabel')}\n cancelLabel={stringProperty(element.properties, 'cancelLabel')}\n className={stringProperty(element.properties, 'className')}\n >\n {slots.content}\n </Dialog>\n </ArcRuntimeBoundary>\n );\n}\n"],"names":["Dialog","lazy","default","SceneDialog","element","slots","_jsx","ArcRuntimeBoundary","title","stringProperty","properties","visible","booleanProperty","width","resizable","isValid","isBusy","okLabel","cancelLabel","className","content"],"mappings":";;;;;;AAQA,MAAMA,MAAAA,iBAASC,IAAAA,CAAK,WAAa;AAAEC,QAAAA,OAAAA,EAAS,CAAC,MAAM,OAAO,4BAAA,CAA4B,EAAGF;KAAO,CAAA,CAAA;AAEhG;;;;;;;;;;;AAWC,IACM,SAASG,WAAAA,CAAY,EAAEC,OAAO,EAAEC,KAAK,EAA4B,EAAA;AACpE,IAAA,qBACIC,GAAA,CAACC,kBAAAA,EAAAA;AACG,QAAA,QAAA,gBAAAD,GAAA,CAACN,MAAAA,EAAAA;AACGQ,YAAAA,KAAAA,EAAOC,cAAAA,CAAeL,OAAAA,CAAQM,UAAU,EAAE,OAAA,CAAA,IAAY,EAAA;AACtDC,YAAAA,OAAAA,EAASC,eAAAA,CAAgBR,OAAAA,CAAQM,UAAU,EAAE,SAAA,CAAA,IAAc,IAAA;YAC3DG,KAAAA,EAAOJ,cAAAA,CAAeL,OAAAA,CAAQM,UAAU,EAAE,OAAA,CAAA;YAC1CI,SAAAA,EAAWF,eAAAA,CAAgBR,OAAAA,CAAQM,UAAU,EAAE,WAAA,CAAA;YAC/CK,OAAAA,EAASH,eAAAA,CAAgBR,OAAAA,CAAQM,UAAU,EAAE,SAAA,CAAA;YAC7CM,MAAAA,EAAQJ,eAAAA,CAAgBR,OAAAA,CAAQM,UAAU,EAAE,QAAA,CAAA;YAC5CO,OAAAA,EAASR,cAAAA,CAAeL,OAAAA,CAAQM,UAAU,EAAE,SAAA,CAAA;YAC5CQ,WAAAA,EAAaT,cAAAA,CAAeL,OAAAA,CAAQM,UAAU,EAAE,aAAA,CAAA;YAChDS,SAAAA,EAAWV,cAAAA,CAAeL,OAAAA,CAAQM,UAAU,EAAE,WAAA,CAAA;AAE7CL,YAAAA,QAAAA,EAAAA,KAAAA,CAAMe;;;AAIvB;;;;"}
@@ -0,0 +1,3 @@
1
+ import { RegisteredComponentProps } from '@cratis/scene.react';
2
+ export declare function SceneStepperCommandDialog({ element, slots }: RegisteredComponentProps): import("react").JSX.Element;
3
+ //# sourceMappingURL=SceneStepperCommandDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneStepperCommandDialog.d.ts","sourceRoot":"","sources":["../../../dialogs/SceneStepperCommandDialog.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAsB/D,wBAAgB,yBAAyB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,wBAAwB,+BAuBrF"}
@@ -0,0 +1,52 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { lazy } from 'react';
3
+ import { BindingKind } from '../bindings/BindingKind.js';
4
+ import { resolveElementBinding } from '../bindings/resolveElementBinding.js';
5
+ import { MissingBinding } from '../bindings/MissingBinding.js';
6
+ import { ArcRuntimeBoundary } from '../bindings/ArcRuntimeBoundary.js';
7
+ import { stringProperty, booleanProperty, unionProperty } from '../properties.js';
8
+
9
+ const StepperCommandDialog = /*#__PURE__*/ lazy(async ()=>({
10
+ default: (await import('@cratis/components/CommandDialog')).StepperCommandDialog
11
+ }));
12
+ /** Whether the step headers run across the top or down the side. */ const orientations = [
13
+ 'horizontal',
14
+ 'vertical'
15
+ ];
16
+ /**
17
+ * The `Cratis.Components:stepperCommandDialog` component - `StepperCommandDialog` from
18
+ * `@cratis/components/CommandDialog`.
19
+ *
20
+ * `commandDialog` split across steps, for a command with more fields than fit one screen. It stays a
21
+ * single command: the steps partition the *fields*, not the intent, and nothing is submitted until the
22
+ * last step - so a half-finished wizard leaves no trace, which is exactly what a command should do.
23
+ *
24
+ * `linear` decides whether a step can be skipped ahead of the one before it. The step panels go in the
25
+ * `content` slot.
26
+ */ function SceneStepperCommandDialog({ element, slots }) {
27
+ const { name, target } = resolveElementBinding(element, BindingKind.Command);
28
+ if (!target) return /*#__PURE__*/ jsx(MissingBinding, {
29
+ element: element,
30
+ kind: BindingKind.Command,
31
+ name: name
32
+ });
33
+ return /*#__PURE__*/ jsx(ArcRuntimeBoundary, {
34
+ children: /*#__PURE__*/ jsx(StepperCommandDialog, {
35
+ title: stringProperty(element.properties, 'title') ?? '',
36
+ command: target,
37
+ visible: booleanProperty(element.properties, 'visible') ?? true,
38
+ width: stringProperty(element.properties, 'width'),
39
+ linear: booleanProperty(element.properties, 'linear'),
40
+ orientation: unionProperty(element.properties, 'orientation', orientations),
41
+ okLabel: stringProperty(element.properties, 'okLabel'),
42
+ nextLabel: stringProperty(element.properties, 'nextLabel'),
43
+ previousLabel: stringProperty(element.properties, 'previousLabel'),
44
+ showCancel: booleanProperty(element.properties, 'showCancel'),
45
+ cancelLabel: stringProperty(element.properties, 'cancelLabel'),
46
+ children: slots.content
47
+ })
48
+ });
49
+ }
50
+
51
+ export { SceneStepperCommandDialog };
52
+ //# sourceMappingURL=SceneStepperCommandDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneStepperCommandDialog.js","sources":["../../../dialogs/SceneStepperCommandDialog.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 { lazy } from 'react';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { ArcRuntimeBoundary, BindingKind, MissingBinding, resolveElementBinding } from '../bindings';\nimport { booleanProperty, stringProperty, unionProperty } from '../properties';\n\nconst StepperCommandDialog = lazy(async () => ({\n default: (await import('@cratis/components/CommandDialog')).StepperCommandDialog,\n}));\n\n/** Whether the step headers run across the top or down the side. */\nconst orientations = ['horizontal', 'vertical'] as const;\n\n/**\n * The `Cratis.Components:stepperCommandDialog` component - `StepperCommandDialog` from\n * `@cratis/components/CommandDialog`.\n *\n * `commandDialog` split across steps, for a command with more fields than fit one screen. It stays a\n * single command: the steps partition the *fields*, not the intent, and nothing is submitted until the\n * last step - so a half-finished wizard leaves no trace, which is exactly what a command should do.\n *\n * `linear` decides whether a step can be skipped ahead of the one before it. The step panels go in the\n * `content` slot.\n */\nexport function SceneStepperCommandDialog({ element, slots }: RegisteredComponentProps) {\n const { name, target } = resolveElementBinding(element, BindingKind.Command);\n if (!target) return <MissingBinding element={element} kind={BindingKind.Command} name={name} />;\n\n return (\n <ArcRuntimeBoundary>\n <StepperCommandDialog\n title={stringProperty(element.properties, 'title') ?? ''}\n command={target}\n visible={booleanProperty(element.properties, 'visible') ?? true}\n width={stringProperty(element.properties, 'width')}\n linear={booleanProperty(element.properties, 'linear')}\n orientation={unionProperty(element.properties, 'orientation', orientations)}\n okLabel={stringProperty(element.properties, 'okLabel')}\n nextLabel={stringProperty(element.properties, 'nextLabel')}\n previousLabel={stringProperty(element.properties, 'previousLabel')}\n showCancel={booleanProperty(element.properties, 'showCancel')}\n cancelLabel={stringProperty(element.properties, 'cancelLabel')}\n >\n {slots.content}\n </StepperCommandDialog>\n </ArcRuntimeBoundary>\n );\n}\n"],"names":["StepperCommandDialog","lazy","default","orientations","SceneStepperCommandDialog","element","slots","name","target","resolveElementBinding","BindingKind","Command","_jsx","MissingBinding","kind","ArcRuntimeBoundary","title","stringProperty","properties","command","visible","booleanProperty","width","linear","orientation","unionProperty","okLabel","nextLabel","previousLabel","showCancel","cancelLabel","content"],"mappings":";;;;;;;;AAQA,MAAMA,oBAAAA,iBAAuBC,IAAAA,CAAK,WAAa;AAC3CC,QAAAA,OAAAA,EAAS,CAAC,MAAM,OAAO,kCAAA,CAAkC,EAAGF;KAChE,CAAA,CAAA;AAEA,qEACA,MAAMG,YAAAA,GAAe;AAAC,IAAA,YAAA;AAAc,IAAA;AAAW,CAAA;AAE/C;;;;;;;;;;AAUC,IACM,SAASC,yBAAAA,CAA0B,EAAEC,OAAO,EAAEC,KAAK,EAA4B,EAAA;IAClF,MAAM,EAAEC,IAAI,EAAEC,MAAM,EAAE,GAAGC,qBAAAA,CAAsBJ,OAAAA,EAASK,WAAAA,CAAYC,OAAO,CAAA;IAC3E,IAAI,CAACH,MAAAA,EAAQ,qBAAOI,GAAA,CAACC,cAAAA,EAAAA;QAAeR,OAAAA,EAASA,OAAAA;AAASS,QAAAA,IAAAA,EAAMJ,YAAYC,OAAO;QAAEJ,IAAAA,EAAMA;;AAEvF,IAAA,qBACIK,GAAA,CAACG,kBAAAA,EAAAA;AACG,QAAA,QAAA,gBAAAH,GAAA,CAACZ,oBAAAA,EAAAA;AACGgB,YAAAA,KAAAA,EAAOC,cAAAA,CAAeZ,OAAAA,CAAQa,UAAU,EAAE,OAAA,CAAA,IAAY,EAAA;YACtDC,OAAAA,EAASX,MAAAA;AACTY,YAAAA,OAAAA,EAASC,eAAAA,CAAgBhB,OAAAA,CAAQa,UAAU,EAAE,SAAA,CAAA,IAAc,IAAA;YAC3DI,KAAAA,EAAOL,cAAAA,CAAeZ,OAAAA,CAAQa,UAAU,EAAE,OAAA,CAAA;YAC1CK,MAAAA,EAAQF,eAAAA,CAAgBhB,OAAAA,CAAQa,UAAU,EAAE,QAAA,CAAA;AAC5CM,YAAAA,WAAAA,EAAaC,aAAAA,CAAcpB,OAAAA,CAAQa,UAAU,EAAE,aAAA,EAAef,YAAAA,CAAAA;YAC9DuB,OAAAA,EAAST,cAAAA,CAAeZ,OAAAA,CAAQa,UAAU,EAAE,SAAA,CAAA;YAC5CS,SAAAA,EAAWV,cAAAA,CAAeZ,OAAAA,CAAQa,UAAU,EAAE,WAAA,CAAA;YAC9CU,aAAAA,EAAeX,cAAAA,CAAeZ,OAAAA,CAAQa,UAAU,EAAE,eAAA,CAAA;YAClDW,UAAAA,EAAYR,eAAAA,CAAgBhB,OAAAA,CAAQa,UAAU,EAAE,YAAA,CAAA;YAChDY,WAAAA,EAAab,cAAAA,CAAeZ,OAAAA,CAAQa,UAAU,EAAE,aAAA,CAAA;AAE/CZ,YAAAA,QAAAA,EAAAA,KAAAA,CAAMyB;;;AAIvB;;;;"}
@@ -0,0 +1,6 @@
1
+ export * from './SceneDialog';
2
+ export * from './SceneConfirmationDialog';
3
+ export * from './SceneBusyIndicatorDialog';
4
+ export * from './SceneCommandDialog';
5
+ export * from './SceneStepperCommandDialog';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../dialogs/index.ts"],"names":[],"mappings":"AAGA,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from './SceneDialog';
2
+ export * from './SceneConfirmationDialog';
3
+ export * from './SceneBusyIndicatorDialog';
4
+ export * from './SceneCommandDialog';
5
+ export * from './SceneStepperCommandDialog';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../dialogs/index.ts"],"names":[],"mappings":"AAGA,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { RegisteredComponentProps } from '@cratis/scene.react';
2
+ export declare function SceneFilterPanel({ element, slots }: RegisteredComponentProps): import("react").JSX.Element;
3
+ //# sourceMappingURL=SceneFilterPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneFilterPanel.d.ts","sourceRoot":"","sources":["../../../editors/SceneFilterPanel.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAe/D,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,wBAAwB,+BA+B5E"}
@@ -0,0 +1,55 @@
1
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
+ import { useMemo, useRef, useState } from 'react';
3
+ import { useFilterState, FilterPanel } from '@cratis/components/Filter';
4
+ import { stringProperty } from '../properties.js';
5
+ import { filterDefinitions } from './filterDefinitions.js';
6
+
7
+ /**
8
+ * The `Cratis.Components:filterPanel` component - `FilterPanel` from `@cratis/components/Filter`.
9
+ *
10
+ * `FilterPanel` is a portal anchored to a button: it renders next to whatever opened it, which means it
11
+ * cannot be placed on a screen on its own. So this adapter is the whole control - the toggle button and
12
+ * the panel it anchors - and a screen places one element instead of having to model an anchor
13
+ * relationship the element tree has no way to express.
14
+ *
15
+ * Selection state comes from the library's own `useFilterState`, so the toggling, clearing and range
16
+ * behavior is the library's rather than a second implementation of it here.
17
+ */ function SceneFilterPanel({ element, slots }) {
18
+ const filters = useMemo(()=>filterDefinitions(element.properties), [
19
+ element.properties
20
+ ]);
21
+ const anchorRef = useRef(null);
22
+ const [isOpen, setIsOpen] = useState(false);
23
+ const state = useFilterState(filters);
24
+ return /*#__PURE__*/ jsxs(Fragment, {
25
+ children: [
26
+ /*#__PURE__*/ jsx("button", {
27
+ type: "button",
28
+ ref: anchorRef,
29
+ "data-scene-id": element.id,
30
+ onClick: ()=>setIsOpen((open)=>!open),
31
+ children: stringProperty(element.properties, 'label') ?? 'Filters'
32
+ }),
33
+ /*#__PURE__*/ jsx(FilterPanel, {
34
+ isOpen: isOpen,
35
+ filters: filters,
36
+ filterValues: state.filterValues,
37
+ rangeValues: state.rangeValues,
38
+ customValues: state.customValues,
39
+ searchPlaceholder: stringProperty(element.properties, 'searchPlaceholder'),
40
+ expandedFilterKey: state.expandedFilterKey,
41
+ anchorRef: anchorRef,
42
+ onClose: ()=>setIsOpen(false),
43
+ onFilterToggle: state.handleToggleFilter,
44
+ onFilterClear: state.handleClearFilter,
45
+ onRangeChange: state.handleRangeChange,
46
+ onExpandedFilterChange: state.setExpandedFilterKey,
47
+ onCustomValueChange: state.handleCustomValueChange,
48
+ children: slots.content
49
+ })
50
+ ]
51
+ });
52
+ }
53
+
54
+ export { SceneFilterPanel };
55
+ //# sourceMappingURL=SceneFilterPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneFilterPanel.js","sources":["../../../editors/SceneFilterPanel.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 { useMemo, useRef, useState } from 'react';\nimport { FilterPanel, useFilterState } from '@cratis/components/Filter';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { stringProperty } from '../properties';\nimport { filterDefinitions } from './filterDefinitions';\n\n/**\n * The `Cratis.Components:filterPanel` component - `FilterPanel` from `@cratis/components/Filter`.\n *\n * `FilterPanel` is a portal anchored to a button: it renders next to whatever opened it, which means it\n * cannot be placed on a screen on its own. So this adapter is the whole control - the toggle button and\n * the panel it anchors - and a screen places one element instead of having to model an anchor\n * relationship the element tree has no way to express.\n *\n * Selection state comes from the library's own `useFilterState`, so the toggling, clearing and range\n * behavior is the library's rather than a second implementation of it here.\n */\nexport function SceneFilterPanel({ element, slots }: RegisteredComponentProps) {\n const filters = useMemo(() => filterDefinitions(element.properties), [element.properties]);\n const anchorRef = useRef<HTMLButtonElement>(null);\n const [isOpen, setIsOpen] = useState(false);\n const state = useFilterState(filters);\n\n return (\n <>\n <button type='button' ref={anchorRef} data-scene-id={element.id} onClick={() => setIsOpen(open => !open)}>\n {stringProperty(element.properties, 'label') ?? 'Filters'}\n </button>\n <FilterPanel\n isOpen={isOpen}\n filters={filters}\n filterValues={state.filterValues}\n rangeValues={state.rangeValues}\n customValues={state.customValues}\n searchPlaceholder={stringProperty(element.properties, 'searchPlaceholder')}\n expandedFilterKey={state.expandedFilterKey}\n anchorRef={anchorRef}\n onClose={() => setIsOpen(false)}\n onFilterToggle={state.handleToggleFilter}\n onFilterClear={state.handleClearFilter}\n onRangeChange={state.handleRangeChange}\n onExpandedFilterChange={state.setExpandedFilterKey}\n onCustomValueChange={state.handleCustomValueChange}\n >\n {slots.content}\n </FilterPanel>\n </>\n );\n}\n"],"names":["SceneFilterPanel","element","slots","filters","useMemo","filterDefinitions","properties","anchorRef","useRef","isOpen","setIsOpen","useState","state","useFilterState","_jsxs","_Fragment","_jsx","button","type","ref","data-scene-id","id","onClick","open","stringProperty","FilterPanel","filterValues","rangeValues","customValues","searchPlaceholder","expandedFilterKey","onClose","onFilterToggle","handleToggleFilter","onFilterClear","handleClearFilter","onRangeChange","handleRangeChange","onExpandedFilterChange","setExpandedFilterKey","onCustomValueChange","handleCustomValueChange","content"],"mappings":";;;;;;AASA;;;;;;;;;;AAUC,IACM,SAASA,gBAAAA,CAAiB,EAAEC,OAAO,EAAEC,KAAK,EAA4B,EAAA;AACzE,IAAA,MAAMC,UAAUC,OAAAA,CAAQ,IAAMC,iBAAAA,CAAkBJ,OAAAA,CAAQK,UAAU,CAAA,EAAG;AAACL,QAAAA,OAAAA,CAAQK;AAAW,KAAA,CAAA;AACzF,IAAA,MAAMC,YAAYC,MAAAA,CAA0B,IAAA,CAAA;AAC5C,IAAA,MAAM,CAACC,MAAAA,EAAQC,SAAAA,CAAU,GAAGC,QAAAA,CAAS,KAAA,CAAA;AACrC,IAAA,MAAMC,QAAQC,cAAAA,CAAeV,OAAAA,CAAAA;IAE7B,qBACIW,IAAA,CAAAC,QAAA,EAAA;;0BACIC,GAAA,CAACC,QAAAA,EAAAA;gBAAOC,IAAAA,EAAK,QAAA;gBAASC,GAAAA,EAAKZ,SAAAA;AAAWa,gBAAAA,eAAAA,EAAenB,QAAQoB,EAAE;AAAEC,gBAAAA,OAAAA,EAAS,IAAMZ,SAAAA,CAAUa,CAAAA,IAAAA,GAAQ,CAACA,IAAAA,CAAAA;0BAC9FC,cAAAA,CAAevB,OAAAA,CAAQK,UAAU,EAAE,OAAA,CAAA,IAAY;;0BAEpDU,GAAA,CAACS,WAAAA,EAAAA;gBACGhB,MAAAA,EAAQA,MAAAA;gBACRN,OAAAA,EAASA,OAAAA;AACTuB,gBAAAA,YAAAA,EAAcd,MAAMc,YAAY;AAChCC,gBAAAA,WAAAA,EAAaf,MAAMe,WAAW;AAC9BC,gBAAAA,YAAAA,EAAchB,MAAMgB,YAAY;gBAChCC,iBAAAA,EAAmBL,cAAAA,CAAevB,OAAAA,CAAQK,UAAU,EAAE,mBAAA,CAAA;AACtDwB,gBAAAA,iBAAAA,EAAmBlB,MAAMkB,iBAAiB;gBAC1CvB,SAAAA,EAAWA,SAAAA;AACXwB,gBAAAA,OAAAA,EAAS,IAAMrB,SAAAA,CAAU,KAAA,CAAA;AACzBsB,gBAAAA,cAAAA,EAAgBpB,MAAMqB,kBAAkB;AACxCC,gBAAAA,aAAAA,EAAetB,MAAMuB,iBAAiB;AACtCC,gBAAAA,aAAAA,EAAexB,MAAMyB,iBAAiB;AACtCC,gBAAAA,sBAAAA,EAAwB1B,MAAM2B,oBAAoB;AAClDC,gBAAAA,mBAAAA,EAAqB5B,MAAM6B,uBAAuB;AAEjDvC,gBAAAA,QAAAA,EAAAA,KAAAA,CAAMwC;;;;AAIvB;;;;"}
@@ -0,0 +1,3 @@
1
+ import { RegisteredComponentProps } from '@cratis/scene.react';
2
+ export declare function SceneObjectContentEditor({ element }: RegisteredComponentProps): import("react").JSX.Element;
3
+ //# sourceMappingURL=SceneObjectContentEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneObjectContentEditor.d.ts","sourceRoot":"","sources":["../../../editors/SceneObjectContentEditor.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAe/D,wBAAgB,wBAAwB,CAAC,EAAE,OAAO,EAAE,EAAE,wBAAwB,+BAc7E"}
@@ -0,0 +1,35 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useMemo } from 'react';
3
+ import { ObjectContentEditor } from '@cratis/components/ObjectContentEditor';
4
+ import { objectProperty, stringProperty, booleanProperty } from '../properties.js';
5
+ import { useEditableCopy } from './useEditableCopy.js';
6
+
7
+ /**
8
+ * The `Cratis.Components:objectContentEditor` component - `ObjectContentEditor` from
9
+ * `@cratis/components/ObjectContentEditor`.
10
+ *
11
+ * Renders an arbitrary JSON document against its schema, so nested objects and arrays are navigable and
12
+ * each value is edited with a control that matches its declared type. That is what makes it worth
13
+ * exposing to a screen at all: the alternative is a textarea full of JSON, which is not an editor.
14
+ *
15
+ * `object` and `schema` come through the property bag as plain JSON, which is exactly what they are at
16
+ * runtime - the conversions state that, since the property bag is typed as unknown values by definition.
17
+ */ function SceneObjectContentEditor({ element }) {
18
+ const declared = useMemo(()=>objectProperty(element.properties, 'object') ?? {}, [
19
+ element.properties
20
+ ]);
21
+ const schema = useMemo(()=>objectProperty(element.properties, 'schema') ?? {}, [
22
+ element.properties
23
+ ]);
24
+ const [object, setObject] = useEditableCopy(declared);
25
+ return /*#__PURE__*/ jsx(ObjectContentEditor, {
26
+ object: object,
27
+ schema: schema,
28
+ editMode: booleanProperty(element.properties, 'editMode'),
29
+ onChange: setObject,
30
+ className: stringProperty(element.properties, 'className')
31
+ });
32
+ }
33
+
34
+ export { SceneObjectContentEditor };
35
+ //# sourceMappingURL=SceneObjectContentEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneObjectContentEditor.js","sources":["../../../editors/SceneObjectContentEditor.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 { useMemo } from 'react';\nimport { ObjectContentEditor } from '@cratis/components/ObjectContentEditor';\nimport { Json, JsonSchema } from '@cratis/components/types';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { booleanProperty, objectProperty, stringProperty } from '../properties';\nimport { useEditableCopy } from './useEditableCopy';\n\n/**\n * The `Cratis.Components:objectContentEditor` component - `ObjectContentEditor` from\n * `@cratis/components/ObjectContentEditor`.\n *\n * Renders an arbitrary JSON document against its schema, so nested objects and arrays are navigable and\n * each value is edited with a control that matches its declared type. That is what makes it worth\n * exposing to a screen at all: the alternative is a textarea full of JSON, which is not an editor.\n *\n * `object` and `schema` come through the property bag as plain JSON, which is exactly what they are at\n * runtime - the conversions state that, since the property bag is typed as unknown values by definition.\n */\nexport function SceneObjectContentEditor({ element }: RegisteredComponentProps) {\n const declared = useMemo(() => (objectProperty(element.properties, 'object') ?? {}) as unknown as Json, [element.properties]);\n const schema = useMemo(() => (objectProperty(element.properties, 'schema') ?? {}) as unknown as JsonSchema, [element.properties]);\n const [object, setObject] = useEditableCopy(declared);\n\n return (\n <ObjectContentEditor\n object={object}\n schema={schema}\n editMode={booleanProperty(element.properties, 'editMode')}\n onChange={setObject}\n className={stringProperty(element.properties, 'className')}\n />\n );\n}\n"],"names":["SceneObjectContentEditor","element","declared","useMemo","objectProperty","properties","schema","object","setObject","useEditableCopy","_jsx","ObjectContentEditor","editMode","booleanProperty","onChange","className","stringProperty"],"mappings":";;;;;;AAUA;;;;;;;;;;AAUC,IACM,SAASA,wBAAAA,CAAyB,EAAEC,OAAO,EAA4B,EAAA;IAC1E,MAAMC,QAAAA,GAAWC,QAAQ,IAAOC,cAAAA,CAAeH,QAAQI,UAAU,EAAE,QAAA,CAAA,IAAa,EAAC,EAAuB;AAACJ,QAAAA,OAAAA,CAAQI;AAAW,KAAA,CAAA;IAC5H,MAAMC,MAAAA,GAASH,QAAQ,IAAOC,cAAAA,CAAeH,QAAQI,UAAU,EAAE,QAAA,CAAA,IAAa,EAAC,EAA6B;AAACJ,QAAAA,OAAAA,CAAQI;AAAW,KAAA,CAAA;AAChI,IAAA,MAAM,CAACE,MAAAA,EAAQC,SAAAA,CAAU,GAAGC,eAAAA,CAAgBP,QAAAA,CAAAA;AAE5C,IAAA,qBACIQ,GAAA,CAACC,mBAAAA,EAAAA;QACGJ,MAAAA,EAAQA,MAAAA;QACRD,MAAAA,EAAQA,MAAAA;QACRM,QAAAA,EAAUC,eAAAA,CAAgBZ,OAAAA,CAAQI,UAAU,EAAE,UAAA,CAAA;QAC9CS,QAAAA,EAAUN,SAAAA;QACVO,SAAAA,EAAWC,cAAAA,CAAef,OAAAA,CAAQI,UAAU,EAAE,WAAA;;AAG1D;;;;"}
@@ -0,0 +1,3 @@
1
+ import { RegisteredComponentProps } from '@cratis/scene.react';
2
+ export declare function SceneObjectNavigationalBar({ element }: RegisteredComponentProps): import("react").JSX.Element;
3
+ //# sourceMappingURL=SceneObjectNavigationalBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneObjectNavigationalBar.d.ts","sourceRoot":"","sources":["../../../editors/SceneObjectNavigationalBar.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAiB/D,wBAAgB,0BAA0B,CAAC,EAAE,OAAO,EAAE,EAAE,wBAAwB,+BAW/E"}
@@ -0,0 +1,32 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useMemo } from 'react';
3
+ import { ObjectNavigationalBar } from '@cratis/components/ObjectNavigationalBar';
4
+ import { stringArrayProperty, stringProperty } from '../properties.js';
5
+ import { useEditableCopy } from './useEditableCopy.js';
6
+
7
+ /**
8
+ * The `Cratis.Components:objectNavigationalBar` component - `ObjectNavigationalBar` from
9
+ * `@cratis/components/ObjectNavigationalBar`.
10
+ *
11
+ * The breadcrumb trail that says where you are inside a nested document, and lets you climb back out.
12
+ * Clicking a crumb truncates the trail to it, which is behavior the component reports rather than
13
+ * performs - so this adapter holds the trail and applies the truncation, and the bar is a working
14
+ * breadcrumb on a screen instead of a row of inert labels.
15
+ *
16
+ * The reported index is how many segments to *keep*, not the position of the crumb clicked: the bar
17
+ * prepends a `Root` crumb at index 0, so clicking the first real segment reports 1. `slice(0, index)` is
18
+ * what that means, and it is also exactly what the back arrow asks for when it reports `length - 1`.
19
+ */ function SceneObjectNavigationalBar({ element }) {
20
+ const declared = useMemo(()=>stringArrayProperty(element.properties, 'navigationPath') ?? [], [
21
+ element.properties
22
+ ]);
23
+ const [navigationPath, setNavigationPath] = useEditableCopy(declared);
24
+ return /*#__PURE__*/ jsx(ObjectNavigationalBar, {
25
+ navigationPath: navigationPath,
26
+ onNavigate: (index)=>setNavigationPath(navigationPath.slice(0, index)),
27
+ className: stringProperty(element.properties, 'className')
28
+ });
29
+ }
30
+
31
+ export { SceneObjectNavigationalBar };
32
+ //# sourceMappingURL=SceneObjectNavigationalBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneObjectNavigationalBar.js","sources":["../../../editors/SceneObjectNavigationalBar.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 { useMemo } from 'react';\nimport { ObjectNavigationalBar } from '@cratis/components/ObjectNavigationalBar';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { stringArrayProperty, stringProperty } from '../properties';\nimport { useEditableCopy } from './useEditableCopy';\n\n/**\n * The `Cratis.Components:objectNavigationalBar` component - `ObjectNavigationalBar` from\n * `@cratis/components/ObjectNavigationalBar`.\n *\n * The breadcrumb trail that says where you are inside a nested document, and lets you climb back out.\n * Clicking a crumb truncates the trail to it, which is behavior the component reports rather than\n * performs - so this adapter holds the trail and applies the truncation, and the bar is a working\n * breadcrumb on a screen instead of a row of inert labels.\n *\n * The reported index is how many segments to *keep*, not the position of the crumb clicked: the bar\n * prepends a `Root` crumb at index 0, so clicking the first real segment reports 1. `slice(0, index)` is\n * what that means, and it is also exactly what the back arrow asks for when it reports `length - 1`.\n */\nexport function SceneObjectNavigationalBar({ element }: RegisteredComponentProps) {\n const declared = useMemo(() => stringArrayProperty(element.properties, 'navigationPath') ?? [], [element.properties]);\n const [navigationPath, setNavigationPath] = useEditableCopy(declared);\n\n return (\n <ObjectNavigationalBar\n navigationPath={navigationPath}\n onNavigate={index => setNavigationPath(navigationPath.slice(0, index))}\n className={stringProperty(element.properties, 'className')}\n />\n );\n}\n"],"names":["SceneObjectNavigationalBar","element","declared","useMemo","stringArrayProperty","properties","navigationPath","setNavigationPath","useEditableCopy","_jsx","ObjectNavigationalBar","onNavigate","index","slice","className","stringProperty"],"mappings":";;;;;;AASA;;;;;;;;;;;;AAYC,IACM,SAASA,0BAAAA,CAA2B,EAAEC,OAAO,EAA4B,EAAA;IAC5E,MAAMC,QAAAA,GAAWC,QAAQ,IAAMC,mBAAAA,CAAoBH,QAAQI,UAAU,EAAE,gBAAA,CAAA,IAAqB,EAAE,EAAE;AAACJ,QAAAA,OAAAA,CAAQI;AAAW,KAAA,CAAA;AACpH,IAAA,MAAM,CAACC,cAAAA,EAAgBC,iBAAAA,CAAkB,GAAGC,eAAAA,CAAgBN,QAAAA,CAAAA;AAE5D,IAAA,qBACIO,GAAA,CAACC,qBAAAA,EAAAA;QACGJ,cAAAA,EAAgBA,cAAAA;AAChBK,QAAAA,UAAAA,EAAYC,CAAAA,KAAAA,GAASL,iBAAAA,CAAkBD,cAAAA,CAAeO,KAAK,CAAC,CAAA,EAAGD,KAAAA,CAAAA,CAAAA;QAC/DE,SAAAA,EAAWC,cAAAA,CAAed,OAAAA,CAAQI,UAAU,EAAE,WAAA;;AAG1D;;;;"}
@@ -0,0 +1,3 @@
1
+ import { RegisteredComponentProps } from '@cratis/scene.react';
2
+ export declare function SceneSchemaEditor({ element }: RegisteredComponentProps): import("react").JSX.Element;
3
+ //# sourceMappingURL=SceneSchemaEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneSchemaEditor.d.ts","sourceRoot":"","sources":["../../../editors/SceneSchemaEditor.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAY/D,wBAAgB,iBAAiB,CAAC,EAAE,OAAO,EAAE,EAAE,wBAAwB,+BAetE"}
@@ -0,0 +1,31 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useMemo } from 'react';
3
+ import { SchemaEditor } from '@cratis/components/SchemaEditor';
4
+ import { objectProperty, stringProperty, booleanProperty } from '../properties.js';
5
+ import { useEditableCopy } from './useEditableCopy.js';
6
+
7
+ /**
8
+ * The `Cratis.Components:schemaEditor` component - `SchemaEditor` from `@cratis/components/SchemaEditor`.
9
+ *
10
+ * Edits a JSON schema as a typed property tree rather than as text. In a Cratis application this is how
11
+ * an event type's shape is inspected and evolved, so `canEdit` and `canNotEditReason` are a pair worth
12
+ * setting together - a schema is often deliberately read-only, and saying *why* in the same place is
13
+ * what keeps that from looking like a bug.
14
+ */ function SceneSchemaEditor({ element }) {
15
+ const declared = useMemo(()=>objectProperty(element.properties, 'schema') ?? {}, [
16
+ element.properties
17
+ ]);
18
+ const [schema, setSchema] = useEditableCopy(declared);
19
+ return /*#__PURE__*/ jsx(SchemaEditor, {
20
+ schema: schema,
21
+ eventTypeName: stringProperty(element.properties, 'eventTypeName'),
22
+ canEdit: booleanProperty(element.properties, 'canEdit'),
23
+ canNotEditReason: stringProperty(element.properties, 'canNotEditReason'),
24
+ editMode: booleanProperty(element.properties, 'editMode'),
25
+ onChange: setSchema,
26
+ className: stringProperty(element.properties, 'className')
27
+ });
28
+ }
29
+
30
+ export { SceneSchemaEditor };
31
+ //# sourceMappingURL=SceneSchemaEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneSchemaEditor.js","sources":["../../../editors/SceneSchemaEditor.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 { useMemo } from 'react';\nimport { SchemaEditor } from '@cratis/components/SchemaEditor';\nimport { JsonSchema } from '@cratis/components/types';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { booleanProperty, objectProperty, stringProperty } from '../properties';\nimport { useEditableCopy } from './useEditableCopy';\n\n/**\n * The `Cratis.Components:schemaEditor` component - `SchemaEditor` from `@cratis/components/SchemaEditor`.\n *\n * Edits a JSON schema as a typed property tree rather than as text. In a Cratis application this is how\n * an event type's shape is inspected and evolved, so `canEdit` and `canNotEditReason` are a pair worth\n * setting together - a schema is often deliberately read-only, and saying *why* in the same place is\n * what keeps that from looking like a bug.\n */\nexport function SceneSchemaEditor({ element }: RegisteredComponentProps) {\n const declared = useMemo(() => (objectProperty(element.properties, 'schema') ?? {}) as unknown as JsonSchema, [element.properties]);\n const [schema, setSchema] = useEditableCopy(declared);\n\n return (\n <SchemaEditor\n schema={schema}\n eventTypeName={stringProperty(element.properties, 'eventTypeName')}\n canEdit={booleanProperty(element.properties, 'canEdit')}\n canNotEditReason={stringProperty(element.properties, 'canNotEditReason')}\n editMode={booleanProperty(element.properties, 'editMode')}\n onChange={setSchema}\n className={stringProperty(element.properties, 'className')}\n />\n );\n}\n"],"names":["SceneSchemaEditor","element","declared","useMemo","objectProperty","properties","schema","setSchema","useEditableCopy","_jsx","SchemaEditor","eventTypeName","stringProperty","canEdit","booleanProperty","canNotEditReason","editMode","onChange","className"],"mappings":";;;;;;AAUA;;;;;;;AAOC,IACM,SAASA,iBAAAA,CAAkB,EAAEC,OAAO,EAA4B,EAAA;IACnE,MAAMC,QAAAA,GAAWC,QAAQ,IAAOC,cAAAA,CAAeH,QAAQI,UAAU,EAAE,QAAA,CAAA,IAAa,EAAC,EAA6B;AAACJ,QAAAA,OAAAA,CAAQI;AAAW,KAAA,CAAA;AAClI,IAAA,MAAM,CAACC,MAAAA,EAAQC,SAAAA,CAAU,GAAGC,eAAAA,CAAgBN,QAAAA,CAAAA;AAE5C,IAAA,qBACIO,GAAA,CAACC,YAAAA,EAAAA;QACGJ,MAAAA,EAAQA,MAAAA;QACRK,aAAAA,EAAeC,cAAAA,CAAeX,OAAAA,CAAQI,UAAU,EAAE,eAAA,CAAA;QAClDQ,OAAAA,EAASC,eAAAA,CAAgBb,OAAAA,CAAQI,UAAU,EAAE,SAAA,CAAA;QAC7CU,gBAAAA,EAAkBH,cAAAA,CAAeX,OAAAA,CAAQI,UAAU,EAAE,kBAAA,CAAA;QACrDW,QAAAA,EAAUF,eAAAA,CAAgBb,OAAAA,CAAQI,UAAU,EAAE,UAAA,CAAA;QAC9CY,QAAAA,EAAUV,SAAAA;QACVW,SAAAA,EAAWN,cAAAA,CAAeX,OAAAA,CAAQI,UAAU,EAAE,WAAA;;AAG1D;;;;"}
@@ -0,0 +1,3 @@
1
+ import { RegisteredComponentProps } from '@cratis/scene.react';
2
+ export declare function SceneTimeMachine({ element }: RegisteredComponentProps): import("react").JSX.Element;
3
+ //# sourceMappingURL=SceneTimeMachine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneTimeMachine.d.ts","sourceRoot":"","sources":["../../../editors/SceneTimeMachine.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAa/D,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,EAAE,wBAAwB,+BAarE"}
@@ -0,0 +1,30 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useMemo } from 'react';
3
+ import { TimeMachine } from '@cratis/components/TimeMachine';
4
+ import { numberProperty } from '../properties.js';
5
+ import { timeMachineVersions } from './timeMachineVersions.js';
6
+ import { useEditableCopy } from './useEditableCopy.js';
7
+
8
+ /**
9
+ * The `Cratis.Components:timeMachine` component - `TimeMachine` from `@cratis/components/TimeMachine`.
10
+ *
11
+ * Scrubs through successive versions of something on a timeline - which in an event-sourced application
12
+ * is the most natural way to look at anything, since every read model *has* a history rather than only a
13
+ * current value. The selected version is held here so the timeline scrubs on a screen; a host that wants
14
+ * to drive the selection renders the component itself.
15
+ */ function SceneTimeMachine({ element }) {
16
+ const versions = useMemo(()=>timeMachineVersions(element.properties), [
17
+ element.properties
18
+ ]);
19
+ const declaredIndex = numberProperty(element.properties, 'currentVersionIndex') ?? 0;
20
+ const [currentVersionIndex, setCurrentVersionIndex] = useEditableCopy(declaredIndex);
21
+ return /*#__PURE__*/ jsx(TimeMachine, {
22
+ versions: versions,
23
+ currentVersionIndex: currentVersionIndex,
24
+ onVersionChange: setCurrentVersionIndex,
25
+ scrollSensitivity: numberProperty(element.properties, 'scrollSensitivity')
26
+ });
27
+ }
28
+
29
+ export { SceneTimeMachine };
30
+ //# sourceMappingURL=SceneTimeMachine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneTimeMachine.js","sources":["../../../editors/SceneTimeMachine.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 { useMemo } from 'react';\nimport { TimeMachine } from '@cratis/components/TimeMachine';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { numberProperty } from '../properties';\nimport { timeMachineVersions } from './timeMachineVersions';\nimport { useEditableCopy } from './useEditableCopy';\n\n/**\n * The `Cratis.Components:timeMachine` component - `TimeMachine` from `@cratis/components/TimeMachine`.\n *\n * Scrubs through successive versions of something on a timeline - which in an event-sourced application\n * is the most natural way to look at anything, since every read model *has* a history rather than only a\n * current value. The selected version is held here so the timeline scrubs on a screen; a host that wants\n * to drive the selection renders the component itself.\n */\nexport function SceneTimeMachine({ element }: RegisteredComponentProps) {\n const versions = useMemo(() => timeMachineVersions(element.properties), [element.properties]);\n const declaredIndex = numberProperty(element.properties, 'currentVersionIndex') ?? 0;\n const [currentVersionIndex, setCurrentVersionIndex] = useEditableCopy(declaredIndex);\n\n return (\n <TimeMachine\n versions={versions}\n currentVersionIndex={currentVersionIndex}\n onVersionChange={setCurrentVersionIndex}\n scrollSensitivity={numberProperty(element.properties, 'scrollSensitivity')}\n />\n );\n}\n"],"names":["SceneTimeMachine","element","versions","useMemo","timeMachineVersions","properties","declaredIndex","numberProperty","currentVersionIndex","setCurrentVersionIndex","useEditableCopy","_jsx","TimeMachine","onVersionChange","scrollSensitivity"],"mappings":";;;;;;;AAUA;;;;;;;AAOC,IACM,SAASA,gBAAAA,CAAiB,EAAEC,OAAO,EAA4B,EAAA;AAClE,IAAA,MAAMC,WAAWC,OAAAA,CAAQ,IAAMC,mBAAAA,CAAoBH,OAAAA,CAAQI,UAAU,CAAA,EAAG;AAACJ,QAAAA,OAAAA,CAAQI;AAAW,KAAA,CAAA;AAC5F,IAAA,MAAMC,aAAAA,GAAgBC,cAAAA,CAAeN,OAAAA,CAAQI,UAAU,EAAE,qBAAA,CAAA,IAA0B,CAAA;AACnF,IAAA,MAAM,CAACG,mBAAAA,EAAqBC,sBAAAA,CAAuB,GAAGC,eAAAA,CAAgBJ,aAAAA,CAAAA;AAEtE,IAAA,qBACIK,GAAA,CAACC,WAAAA,EAAAA;QACGV,QAAAA,EAAUA,QAAAA;QACVM,mBAAAA,EAAqBA,mBAAAA;QACrBK,eAAAA,EAAiBJ,sBAAAA;QACjBK,iBAAAA,EAAmBP,cAAAA,CAAeN,OAAAA,CAAQI,UAAU,EAAE,mBAAA;;AAGlE;;;;"}
@@ -0,0 +1,3 @@
1
+ import { FilterDefinition } from '@cratis/components/Filter';
2
+ export declare function filterDefinitions(properties: Record<string, unknown>): FilterDefinition[];
3
+ //# sourceMappingURL=filterDefinitions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterDefinitions.d.ts","sourceRoot":"","sources":["../../../editors/filterDefinitions.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAA6B,MAAM,2BAA2B,CAAC;AAaxF,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB,EAAE,CAqBzF"}
@@ -0,0 +1,57 @@
1
+ import { objectArrayProperty, stringProperty, numberProperty, booleanProperty, unionProperty } from '../properties.js';
2
+
3
+ // Copyright (c) Cratis. All rights reserved.
4
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
5
+ /** The value kinds a filter can be declared over. */ const filterTypes = [
6
+ 'string',
7
+ 'number',
8
+ 'date',
9
+ 'custom'
10
+ ];
11
+ /**
12
+ * Reads a `filters` property into the `FilterDefinition` list `FilterPanel` renders.
13
+ *
14
+ * A definition needs a `key` and a `label`; an entry without both is dropped, since a filter with no key
15
+ * has nothing to filter on and one with no label cannot be shown. Everything else is optional and falls
16
+ * through to the panel's own defaults.
17
+ */ function filterDefinitions(properties) {
18
+ const entries = objectArrayProperty(properties, 'filters') ?? [];
19
+ return entries.map((entry)=>{
20
+ const key = stringProperty(entry, 'key');
21
+ const label = stringProperty(entry, 'label');
22
+ if (key === undefined || label === undefined) return undefined;
23
+ return {
24
+ key,
25
+ label,
26
+ type: unionProperty(entry, 'type', filterTypes),
27
+ multi: booleanProperty(entry, 'multi'),
28
+ options: filterOptions(entry),
29
+ searchable: booleanProperty(entry, 'searchable'),
30
+ searchPlaceholder: stringProperty(entry, 'searchPlaceholder'),
31
+ buckets: numberProperty(entry, 'buckets')
32
+ };
33
+ }).filter((definition)=>definition !== undefined);
34
+ }
35
+ /**
36
+ * Reads one filter's selectable options. An option's `value` is what gets applied and its `key` is what
37
+ * the panel tracks selection by; `value` falls back to the key so the common case of a plain string
38
+ * choice needs only `key` and `label`.
39
+ */ function filterOptions(entry) {
40
+ const options = objectArrayProperty(entry, 'options');
41
+ if (options === undefined) return undefined;
42
+ return options.map((option)=>{
43
+ const key = stringProperty(option, 'key');
44
+ const label = stringProperty(option, 'label');
45
+ if (key === undefined || label === undefined) return undefined;
46
+ const value = stringProperty(option, 'value') ?? numberProperty(option, 'value') ?? booleanProperty(option, 'value') ?? key;
47
+ return {
48
+ key,
49
+ label,
50
+ value,
51
+ count: numberProperty(option, 'count')
52
+ };
53
+ }).filter((option)=>option !== undefined);
54
+ }
55
+
56
+ export { filterDefinitions };
57
+ //# sourceMappingURL=filterDefinitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterDefinitions.js","sources":["../../../editors/filterDefinitions.ts"],"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 { FilterDefinition, FilterOption, FilterValue } from '@cratis/components/Filter';\nimport { booleanProperty, numberProperty, objectArrayProperty, stringProperty, unionProperty } from '../properties';\n\n/** The value kinds a filter can be declared over. */\nconst filterTypes = ['string', 'number', 'date', 'custom'] as const;\n\n/**\n * Reads a `filters` property into the `FilterDefinition` list `FilterPanel` renders.\n *\n * A definition needs a `key` and a `label`; an entry without both is dropped, since a filter with no key\n * has nothing to filter on and one with no label cannot be shown. Everything else is optional and falls\n * through to the panel's own defaults.\n */\nexport function filterDefinitions(properties: Record<string, unknown>): FilterDefinition[] {\n const entries = objectArrayProperty(properties, 'filters') ?? [];\n\n return entries\n .map((entry): FilterDefinition | undefined => {\n const key = stringProperty(entry, 'key');\n const label = stringProperty(entry, 'label');\n if (key === undefined || label === undefined) return undefined;\n\n return {\n key,\n label,\n type: unionProperty(entry, 'type', filterTypes),\n multi: booleanProperty(entry, 'multi'),\n options: filterOptions(entry),\n searchable: booleanProperty(entry, 'searchable'),\n searchPlaceholder: stringProperty(entry, 'searchPlaceholder'),\n buckets: numberProperty(entry, 'buckets'),\n };\n })\n .filter((definition): definition is FilterDefinition => definition !== undefined);\n}\n\n/**\n * Reads one filter's selectable options. An option's `value` is what gets applied and its `key` is what\n * the panel tracks selection by; `value` falls back to the key so the common case of a plain string\n * choice needs only `key` and `label`.\n */\nfunction filterOptions(entry: Record<string, unknown>): FilterOption[] | undefined {\n const options = objectArrayProperty(entry, 'options');\n if (options === undefined) return undefined;\n\n return options\n .map((option): FilterOption | undefined => {\n const key = stringProperty(option, 'key');\n const label = stringProperty(option, 'label');\n if (key === undefined || label === undefined) return undefined;\n\n const value: FilterValue = stringProperty(option, 'value') ?? numberProperty(option, 'value') ?? booleanProperty(option, 'value') ?? key;\n return { key, label, value, count: numberProperty(option, 'count') };\n })\n .filter((option): option is FilterOption => option !== undefined);\n}\n"],"names":["filterTypes","filterDefinitions","properties","entries","objectArrayProperty","map","entry","key","stringProperty","label","undefined","type","unionProperty","multi","booleanProperty","options","filterOptions","searchable","searchPlaceholder","buckets","numberProperty","filter","definition","option","value","count"],"mappings":";;AAAA;AACA;AAKA,sDACA,MAAMA,WAAAA,GAAc;AAAC,IAAA,QAAA;AAAU,IAAA,QAAA;AAAU,IAAA,MAAA;AAAQ,IAAA;AAAS,CAAA;AAE1D;;;;;;IAOO,SAASC,iBAAAA,CAAkBC,UAAmC,EAAA;AACjE,IAAA,MAAMC,OAAAA,GAAUC,mBAAAA,CAAoBF,UAAAA,EAAY,SAAA,CAAA,IAAc,EAAE;IAEhE,OAAOC,OAAAA,CACFE,GAAG,CAAC,CAACC,KAAAA,GAAAA;QACF,MAAMC,GAAAA,GAAMC,eAAeF,KAAAA,EAAO,KAAA,CAAA;QAClC,MAAMG,KAAAA,GAAQD,eAAeF,KAAAA,EAAO,OAAA,CAAA;AACpC,QAAA,IAAIC,GAAAA,KAAQG,SAAAA,IAAaD,KAAAA,KAAUC,SAAAA,EAAW,OAAOA,SAAAA;QAErD,OAAO;AACHH,YAAAA,GAAAA;AACAE,YAAAA,KAAAA;YACAE,IAAAA,EAAMC,aAAAA,CAAcN,OAAO,MAAA,EAAQN,WAAAA,CAAAA;AACnCa,YAAAA,KAAAA,EAAOC,gBAAgBR,KAAAA,EAAO,OAAA,CAAA;AAC9BS,YAAAA,OAAAA,EAASC,aAAAA,CAAcV,KAAAA,CAAAA;AACvBW,YAAAA,UAAAA,EAAYH,gBAAgBR,KAAAA,EAAO,YAAA,CAAA;AACnCY,YAAAA,iBAAAA,EAAmBV,eAAeF,KAAAA,EAAO,mBAAA,CAAA;AACzCa,YAAAA,OAAAA,EAASC,eAAed,KAAAA,EAAO,SAAA;AACnC,SAAA;AACJ,IAAA,CAAA,CAAA,CACCe,MAAM,CAAC,CAACC,UAAAA,GAA+CA,UAAAA,KAAeZ,SAAAA,CAAAA;AAC/E;AAEA;;;;IAKA,SAASM,cAAcV,KAA8B,EAAA;IACjD,MAAMS,OAAAA,GAAUX,oBAAoBE,KAAAA,EAAO,SAAA,CAAA;IAC3C,IAAIS,OAAAA,KAAYL,WAAW,OAAOA,SAAAA;IAElC,OAAOK,OAAAA,CACFV,GAAG,CAAC,CAACkB,MAAAA,GAAAA;QACF,MAAMhB,GAAAA,GAAMC,eAAee,MAAAA,EAAQ,KAAA,CAAA;QACnC,MAAMd,KAAAA,GAAQD,eAAee,MAAAA,EAAQ,OAAA,CAAA;AACrC,QAAA,IAAIhB,GAAAA,KAAQG,SAAAA,IAAaD,KAAAA,KAAUC,SAAAA,EAAW,OAAOA,SAAAA;QAErD,MAAMc,KAAAA,GAAqBhB,eAAee,MAAAA,EAAQ,OAAA,CAAA,IAAYH,eAAeG,MAAAA,EAAQ,OAAA,CAAA,IAAYT,eAAAA,CAAgBS,MAAAA,EAAQ,OAAA,CAAA,IAAYhB,GAAAA;QACrI,OAAO;AAAEA,YAAAA,GAAAA;AAAKE,YAAAA,KAAAA;AAAOe,YAAAA,KAAAA;AAAOC,YAAAA,KAAAA,EAAOL,eAAeG,MAAAA,EAAQ,OAAA;AAAS,SAAA;AACvE,IAAA,CAAA,CAAA,CACCF,MAAM,CAAC,CAACE,MAAAA,GAAmCA,MAAAA,KAAWb,SAAAA,CAAAA;AAC/D;;;;"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=when_navigating_back_up_the_trail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"when_navigating_back_up_the_trail.d.ts","sourceRoot":"","sources":["../../../../editors/for_SceneObjectNavigationalBar/when_navigating_back_up_the_trail.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { fireEvent, render, screen } from '@testing-library/react';
3
+ import { externalComponent } from '../../given';
4
+ import { SceneObjectNavigationalBar } from '../SceneObjectNavigationalBar';
5
+ describe('when navigating back up the trail', () => {
6
+ beforeEach(() => {
7
+ const element = externalComponent('Cratis.Components:objectNavigationalBar', { navigationPath: ['shipping', 'address', 'street'] });
8
+ render(_jsx(SceneObjectNavigationalBar, { element: element, slots: {} }));
9
+ fireEvent.click(screen.getByText('address'));
10
+ });
11
+ it('should keep the crumb that was clicked', () => screen.getByText('address').textContent.should.equal('address'));
12
+ it('should keep everything above it', () => screen.getByText('shipping').textContent.should.equal('shipping'));
13
+ it('should drop everything below it', () => (screen.queryByText('street') === null).should.be.true);
14
+ });
15
+ //# sourceMappingURL=when_navigating_back_up_the_trail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"when_navigating_back_up_the_trail.js","sourceRoot":"","sources":["../../../../editors/for_SceneObjectNavigationalBar/when_navigating_back_up_the_trail.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAE3E,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;IAC/C,UAAU,CAAC,GAAG,EAAE;QACZ,MAAM,OAAO,GAAG,iBAAiB,CAAC,yCAAyC,EAAE,EAAE,cAAc,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QACpI,MAAM,CAAC,KAAC,0BAA0B,IAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,GAAI,CAAC,CAAC;QACpE,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,WAAY,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IACrH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,WAAY,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IAChH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AACxG,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=when_reading_filter_definitions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"when_reading_filter_definitions.d.ts","sourceRoot":"","sources":["../../../../editors/for_filterDefinitions/when_reading_filter_definitions.ts"],"names":[],"mappings":""}