@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":"SceneRadioButtonField.js","sources":["../../../../forms/fields/SceneRadioButtonField.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 { numberProperty, stringProperty } from '../../properties';\nimport { CommandFormField } from './CommandFormField';\n\nconst RadioButtonField = lazy(async () => ({ default: (await import('@cratis/components/CommandForm')).RadioButtonField }));\n\n/**\n * The `Cratis.Components:radioButtonField` component - `RadioButtonField` from\n * `@cratis/components/CommandForm`.\n *\n * One button of a mutually exclusive set, for a screen that needs the choices placed individually rather\n * than as a block. `buttonValue` is the value this particular button writes to the bound property, and\n * the whole set is tied together by every button naming the same `property`.\n *\n * `buttonValue` is read as a string first and a number second, since a choice is usually a string but a\n * numeric code is common enough that forcing it through as `'1'` would bind the wrong value.\n */\nexport function SceneRadioButtonField({ element }: RegisteredComponentProps) {\n const buttonValue = stringProperty(element.properties, 'buttonValue') ?? numberProperty(element.properties, 'buttonValue') ?? '';\n\n return (\n <CommandFormField element={element}>\n {binding => (\n <RadioButtonField\n {...binding}\n buttonValue={buttonValue}\n label={stringProperty(element.properties, 'label')}\n className={stringProperty(element.properties, 'className')}\n />\n )}\n </CommandFormField>\n );\n}\n"],"names":["RadioButtonField","lazy","default","SceneRadioButtonField","element","buttonValue","stringProperty","properties","numberProperty","_jsx","CommandFormField","binding","label","className"],"mappings":";;;;;;;AAQA,MAAMA,gBAAAA,iBAAmBC,UAAAA,CAAK,WAAa;AAAEC,QAAAA,OAAAA,EAAS,CAAC,MAAM,OAAO,gCAAA,CAAgC,EAAGF;KAAiB,CAAA,CAAA;AAExH;;;;;;;;;;AAUC,IACM,SAASG,qBAAAA,CAAsB,EAAEC,OAAO,EAA4B,EAAA;IACvE,MAAMC,WAAAA,GAAcC,yBAAAA,CAAeF,OAAAA,CAAQG,UAAU,EAAE,kBAAkBC,yBAAAA,CAAeJ,OAAAA,CAAQG,UAAU,EAAE,aAAA,CAAA,IAAkB,EAAA;AAE9H,IAAA,qBACIE,cAAA,CAACC,iCAAAA,EAAAA;QAAiBN,OAAAA,EAASA,OAAAA;AACtBO,QAAAA,QAAAA,EAAAA,CAAAA,wBACGF,cAAA,CAACT,gBAAAA,EAAAA;AACI,gBAAA,GAAGW,OAAO;gBACXN,WAAAA,EAAaA,WAAAA;gBACbO,KAAAA,EAAON,yBAAAA,CAAeF,OAAAA,CAAQG,UAAU,EAAE,OAAA,CAAA;gBAC1CM,SAAAA,EAAWP,yBAAAA,CAAeF,OAAAA,CAAQG,UAAU,EAAE,WAAA;;;AAKlE;;;;"}
@@ -0,0 +1,36 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var react = require('react');
5
+ var properties = require('../../properties.js');
6
+ var CommandFormField = require('./CommandFormField.js');
7
+
8
+ const RadioGroupField = /*#__PURE__*/ react.lazy(async ()=>({
9
+ default: (await import('@cratis/components/CommandForm')).RadioGroupField
10
+ }));
11
+ /** Whether the group's buttons stack or sit in a row. */ const layouts = [
12
+ 'horizontal',
13
+ 'vertical'
14
+ ];
15
+ /**
16
+ * The `Cratis.Components:radioGroupField` component - `RadioGroupField` from
17
+ * `@cratis/components/CommandForm`.
18
+ *
19
+ * A whole mutually exclusive choice from one options list, which is what a screen almost always wants.
20
+ * Use `radioButtonField` only when the individual buttons have to be placed apart from one another.
21
+ */ function SceneRadioGroupField({ element }) {
22
+ return /*#__PURE__*/ jsxRuntime.jsx(CommandFormField.CommandFormField, {
23
+ element: element,
24
+ children: (binding)=>/*#__PURE__*/ jsxRuntime.jsx(RadioGroupField, {
25
+ ...binding,
26
+ options: properties.objectArrayProperty(element.properties, 'options') ?? [],
27
+ optionLabel: properties.stringProperty(element.properties, 'optionLabel') ?? 'label',
28
+ optionValue: properties.stringProperty(element.properties, 'optionValue') ?? 'value',
29
+ layout: properties.unionProperty(element.properties, 'layout', layouts),
30
+ className: properties.stringProperty(element.properties, 'className')
31
+ })
32
+ });
33
+ }
34
+
35
+ exports.SceneRadioGroupField = SceneRadioGroupField;
36
+ //# sourceMappingURL=SceneRadioGroupField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneRadioGroupField.js","sources":["../../../../forms/fields/SceneRadioGroupField.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 { objectArrayProperty, stringProperty, unionProperty } from '../../properties';\nimport { CommandFormField } from './CommandFormField';\n\nconst RadioGroupField = lazy(async () => ({ default: (await import('@cratis/components/CommandForm')).RadioGroupField }));\n\n/** Whether the group's buttons stack or sit in a row. */\nconst layouts = ['horizontal', 'vertical'] as const;\n\n/**\n * The `Cratis.Components:radioGroupField` component - `RadioGroupField` from\n * `@cratis/components/CommandForm`.\n *\n * A whole mutually exclusive choice from one options list, which is what a screen almost always wants.\n * Use `radioButtonField` only when the individual buttons have to be placed apart from one another.\n */\nexport function SceneRadioGroupField({ element }: RegisteredComponentProps) {\n return (\n <CommandFormField element={element}>\n {binding => (\n <RadioGroupField\n {...binding}\n options={objectArrayProperty(element.properties, 'options') ?? []}\n optionLabel={stringProperty(element.properties, 'optionLabel') ?? 'label'}\n optionValue={stringProperty(element.properties, 'optionValue') ?? 'value'}\n layout={unionProperty(element.properties, 'layout', layouts)}\n className={stringProperty(element.properties, 'className')}\n />\n )}\n </CommandFormField>\n );\n}\n"],"names":["RadioGroupField","lazy","default","layouts","SceneRadioGroupField","element","_jsx","CommandFormField","binding","options","objectArrayProperty","properties","optionLabel","stringProperty","optionValue","layout","unionProperty","className"],"mappings":";;;;;;;AAQA,MAAMA,eAAAA,iBAAkBC,UAAAA,CAAK,WAAa;AAAEC,QAAAA,OAAAA,EAAS,CAAC,MAAM,OAAO,gCAAA,CAAgC,EAAGF;KAAgB,CAAA,CAAA;AAEtH,0DACA,MAAMG,OAAAA,GAAU;AAAC,IAAA,YAAA;AAAc,IAAA;AAAW,CAAA;AAE1C;;;;;;AAMC,IACM,SAASC,oBAAAA,CAAqB,EAAEC,OAAO,EAA4B,EAAA;AACtE,IAAA,qBACIC,cAAA,CAACC,iCAAAA,EAAAA;QAAiBF,OAAAA,EAASA,OAAAA;AACtBG,QAAAA,QAAAA,EAAAA,CAAAA,wBACGF,cAAA,CAACN,eAAAA,EAAAA;AACI,gBAAA,GAAGQ,OAAO;AACXC,gBAAAA,OAAAA,EAASC,8BAAAA,CAAoBL,OAAAA,CAAQM,UAAU,EAAE,cAAc,EAAE;AACjEC,gBAAAA,WAAAA,EAAaC,yBAAAA,CAAeR,OAAAA,CAAQM,UAAU,EAAE,aAAA,CAAA,IAAkB,OAAA;AAClEG,gBAAAA,WAAAA,EAAaD,yBAAAA,CAAeR,OAAAA,CAAQM,UAAU,EAAE,aAAA,CAAA,IAAkB,OAAA;AAClEI,gBAAAA,MAAAA,EAAQC,wBAAAA,CAAcX,OAAAA,CAAQM,UAAU,EAAE,QAAA,EAAUR,OAAAA,CAAAA;gBACpDc,SAAAA,EAAWJ,yBAAAA,CAAeR,OAAAA,CAAQM,UAAU,EAAE,WAAA;;;AAKlE;;;;"}
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var react = require('react');
5
+ var properties = require('../../properties.js');
6
+ var CommandFormField = require('./CommandFormField.js');
7
+
8
+ const SliderField = /*#__PURE__*/ react.lazy(async ()=>({
9
+ default: (await import('@cratis/components/CommandForm')).SliderField
10
+ }));
11
+ /**
12
+ * The `Cratis.Components:sliderField` component - `SliderField` from `@cratis/components/CommandForm`.
13
+ *
14
+ * A numeric field where the range itself is the point - a percentage, a threshold, a weighting. Prefer
15
+ * `numberField` whenever the exact value matters more than its position in a range; a slider trades
16
+ * precision for a sense of scale, and that is only ever a deliberate choice.
17
+ */ function SceneSliderField({ element }) {
18
+ return /*#__PURE__*/ jsxRuntime.jsx(CommandFormField.CommandFormField, {
19
+ element: element,
20
+ children: (binding)=>/*#__PURE__*/ jsxRuntime.jsx(SliderField, {
21
+ ...binding,
22
+ min: properties.numberProperty(element.properties, 'min'),
23
+ max: properties.numberProperty(element.properties, 'max'),
24
+ step: properties.numberProperty(element.properties, 'step'),
25
+ className: properties.stringProperty(element.properties, 'className')
26
+ })
27
+ });
28
+ }
29
+
30
+ exports.SceneSliderField = SceneSliderField;
31
+ //# sourceMappingURL=SceneSliderField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneSliderField.js","sources":["../../../../forms/fields/SceneSliderField.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 { numberProperty, stringProperty } from '../../properties';\nimport { CommandFormField } from './CommandFormField';\n\nconst SliderField = lazy(async () => ({ default: (await import('@cratis/components/CommandForm')).SliderField }));\n\n/**\n * The `Cratis.Components:sliderField` component - `SliderField` from `@cratis/components/CommandForm`.\n *\n * A numeric field where the range itself is the point - a percentage, a threshold, a weighting. Prefer\n * `numberField` whenever the exact value matters more than its position in a range; a slider trades\n * precision for a sense of scale, and that is only ever a deliberate choice.\n */\nexport function SceneSliderField({ element }: RegisteredComponentProps) {\n return (\n <CommandFormField element={element}>\n {binding => (\n <SliderField\n {...binding}\n min={numberProperty(element.properties, 'min')}\n max={numberProperty(element.properties, 'max')}\n step={numberProperty(element.properties, 'step')}\n className={stringProperty(element.properties, 'className')}\n />\n )}\n </CommandFormField>\n );\n}\n"],"names":["SliderField","lazy","default","SceneSliderField","element","_jsx","CommandFormField","binding","min","numberProperty","properties","max","step","className","stringProperty"],"mappings":";;;;;;;AAQA,MAAMA,WAAAA,iBAAcC,UAAAA,CAAK,WAAa;AAAEC,QAAAA,OAAAA,EAAS,CAAC,MAAM,OAAO,gCAAA,CAAgC,EAAGF;KAAY,CAAA,CAAA;AAE9G;;;;;;AAMC,IACM,SAASG,gBAAAA,CAAiB,EAAEC,OAAO,EAA4B,EAAA;AAClE,IAAA,qBACIC,cAAA,CAACC,iCAAAA,EAAAA;QAAiBF,OAAAA,EAASA,OAAAA;AACtBG,QAAAA,QAAAA,EAAAA,CAAAA,wBACGF,cAAA,CAACL,WAAAA,EAAAA;AACI,gBAAA,GAAGO,OAAO;gBACXC,GAAAA,EAAKC,yBAAAA,CAAeL,OAAAA,CAAQM,UAAU,EAAE,KAAA,CAAA;gBACxCC,GAAAA,EAAKF,yBAAAA,CAAeL,OAAAA,CAAQM,UAAU,EAAE,KAAA,CAAA;gBACxCE,IAAAA,EAAMH,yBAAAA,CAAeL,OAAAA,CAAQM,UAAU,EAAE,MAAA,CAAA;gBACzCG,SAAAA,EAAWC,yBAAAA,CAAeV,OAAAA,CAAQM,UAAU,EAAE,WAAA;;;AAKlE;;;;"}
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var react = require('react');
5
+ var properties = require('../../properties.js');
6
+ var CommandFormField = require('./CommandFormField.js');
7
+
8
+ const TextAreaField = /*#__PURE__*/ react.lazy(async ()=>({
9
+ default: (await import('@cratis/components/CommandForm')).TextAreaField
10
+ }));
11
+ /**
12
+ * The `Cratis.Components:textAreaField` component - `TextAreaField` from `@cratis/components/CommandForm`.
13
+ *
14
+ * The multi-line counterpart to `inputTextField`. A separate name rather than a `multiline` flag on that
15
+ * one, because the two wrap different PrimeReact inputs and take different sizing props - collapsing
16
+ * them would mean a `rows` property that is meaningless half the time.
17
+ */ function SceneTextAreaField({ element }) {
18
+ return /*#__PURE__*/ jsxRuntime.jsx(CommandFormField.CommandFormField, {
19
+ element: element,
20
+ children: (binding)=>/*#__PURE__*/ jsxRuntime.jsx(TextAreaField, {
21
+ ...binding,
22
+ placeholder: properties.stringProperty(element.properties, 'placeholder'),
23
+ rows: properties.numberProperty(element.properties, 'rows'),
24
+ cols: properties.numberProperty(element.properties, 'cols'),
25
+ className: properties.stringProperty(element.properties, 'className')
26
+ })
27
+ });
28
+ }
29
+
30
+ exports.SceneTextAreaField = SceneTextAreaField;
31
+ //# sourceMappingURL=SceneTextAreaField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneTextAreaField.js","sources":["../../../../forms/fields/SceneTextAreaField.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 { numberProperty, stringProperty } from '../../properties';\nimport { CommandFormField } from './CommandFormField';\n\nconst TextAreaField = lazy(async () => ({ default: (await import('@cratis/components/CommandForm')).TextAreaField }));\n\n/**\n * The `Cratis.Components:textAreaField` component - `TextAreaField` from `@cratis/components/CommandForm`.\n *\n * The multi-line counterpart to `inputTextField`. A separate name rather than a `multiline` flag on that\n * one, because the two wrap different PrimeReact inputs and take different sizing props - collapsing\n * them would mean a `rows` property that is meaningless half the time.\n */\nexport function SceneTextAreaField({ element }: RegisteredComponentProps) {\n return (\n <CommandFormField element={element}>\n {binding => (\n <TextAreaField\n {...binding}\n placeholder={stringProperty(element.properties, 'placeholder')}\n rows={numberProperty(element.properties, 'rows')}\n cols={numberProperty(element.properties, 'cols')}\n className={stringProperty(element.properties, 'className')}\n />\n )}\n </CommandFormField>\n );\n}\n"],"names":["TextAreaField","lazy","default","SceneTextAreaField","element","_jsx","CommandFormField","binding","placeholder","stringProperty","properties","rows","numberProperty","cols","className"],"mappings":";;;;;;;AAQA,MAAMA,aAAAA,iBAAgBC,UAAAA,CAAK,WAAa;AAAEC,QAAAA,OAAAA,EAAS,CAAC,MAAM,OAAO,gCAAA,CAAgC,EAAGF;KAAc,CAAA,CAAA;AAElH;;;;;;AAMC,IACM,SAASG,kBAAAA,CAAmB,EAAEC,OAAO,EAA4B,EAAA;AACpE,IAAA,qBACIC,cAAA,CAACC,iCAAAA,EAAAA;QAAiBF,OAAAA,EAASA,OAAAA;AACtBG,QAAAA,QAAAA,EAAAA,CAAAA,wBACGF,cAAA,CAACL,aAAAA,EAAAA;AACI,gBAAA,GAAGO,OAAO;gBACXC,WAAAA,EAAaC,yBAAAA,CAAeL,OAAAA,CAAQM,UAAU,EAAE,aAAA,CAAA;gBAChDC,IAAAA,EAAMC,yBAAAA,CAAeR,OAAAA,CAAQM,UAAU,EAAE,MAAA,CAAA;gBACzCG,IAAAA,EAAMD,yBAAAA,CAAeR,OAAAA,CAAQM,UAAU,EAAE,MAAA,CAAA;gBACzCI,SAAAA,EAAWL,yBAAAA,CAAeL,OAAAA,CAAQM,UAAU,EAAE,WAAA;;;AAKlE;;;;"}
@@ -0,0 +1,27 @@
1
+ 'use strict';
2
+
3
+ var properties = require('../../properties.js');
4
+
5
+ // Copyright (c) Cratis. All rights reserved.
6
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
7
+ /**
8
+ * Turns an element's `property` name into the {@link FieldBinding} a `@cratis/components` field takes,
9
+ * or `undefined` when the screen never named a property.
10
+ *
11
+ * `undefined` rather than a default accessor, because a field bound to nothing is not a field with an
12
+ * empty value - it is a field that would silently never read or write anything, and the screen author
13
+ * needs to see that. The caller renders a placeholder instead.
14
+ *
15
+ * The label falls back to the property name, so a field is legible before anyone has written a `title`.
16
+ */ function resolveFieldBinding(element) {
17
+ const property = properties.stringProperty(element.properties, 'property');
18
+ if (property === undefined) return undefined;
19
+ return {
20
+ value: (instance)=>instance[property],
21
+ title: properties.stringProperty(element.properties, 'title') ?? property,
22
+ description: properties.stringProperty(element.properties, 'description')
23
+ };
24
+ }
25
+
26
+ exports.resolveFieldBinding = resolveFieldBinding;
27
+ //# sourceMappingURL=resolveFieldBinding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveFieldBinding.js","sources":["../../../../forms/fields/resolveFieldBinding.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 { ExternalComponent } from '@cratis/scene.model';\nimport { stringProperty } from '../../properties';\nimport { FieldBinding } from './FieldBinding';\n\n/**\n * Turns an element's `property` name into the {@link FieldBinding} a `@cratis/components` field takes,\n * or `undefined` when the screen never named a property.\n *\n * `undefined` rather than a default accessor, because a field bound to nothing is not a field with an\n * empty value - it is a field that would silently never read or write anything, and the screen author\n * needs to see that. The caller renders a placeholder instead.\n *\n * The label falls back to the property name, so a field is legible before anyone has written a `title`.\n */\nexport function resolveFieldBinding(element: ExternalComponent): FieldBinding | undefined {\n const property = stringProperty(element.properties, 'property');\n if (property === undefined) return undefined;\n\n return {\n value: (instance: Record<string, unknown>) => instance[property],\n title: stringProperty(element.properties, 'title') ?? property,\n description: stringProperty(element.properties, 'description'),\n };\n}\n"],"names":["resolveFieldBinding","element","property","stringProperty","properties","undefined","value","instance","title","description"],"mappings":";;;;AAAA;AACA;AAMA;;;;;;;;;IAUO,SAASA,mBAAAA,CAAoBC,OAA0B,EAAA;AAC1D,IAAA,MAAMC,QAAAA,GAAWC,yBAAAA,CAAeF,OAAAA,CAAQG,UAAU,EAAE,UAAA,CAAA;IACpD,IAAIF,QAAAA,KAAaG,WAAW,OAAOA,SAAAA;IAEnC,OAAO;AACHC,QAAAA,KAAAA,EAAO,CAACC,QAAAA,GAAsCA,QAAQ,CAACL,QAAAA,CAAS;AAChEM,QAAAA,KAAAA,EAAOL,yBAAAA,CAAeF,OAAAA,CAAQG,UAAU,EAAE,OAAA,CAAA,IAAYF,QAAAA;QACtDO,WAAAA,EAAaN,yBAAAA,CAAeF,OAAAA,CAAQG,UAAU,EAAE,aAAA;AACpD,KAAA;AACJ;;;;"}
@@ -0,0 +1,123 @@
1
+ 'use strict';
2
+
3
+ var properties = require('./properties.js');
4
+ var BindingKind = require('./bindings/BindingKind.js');
5
+ var bindingRegistry = require('./bindings/bindingRegistry.js');
6
+ var resolveElementBinding = require('./bindings/resolveElementBinding.js');
7
+ var Placeholder = require('./bindings/Placeholder.js');
8
+ var MissingBinding = require('./bindings/MissingBinding.js');
9
+ var ArcRuntimeBoundary = require('./bindings/ArcRuntimeBoundary.js');
10
+ var ScenePage = require('./pages/ScenePage.js');
11
+ var SceneDataPage = require('./pages/SceneDataPage.js');
12
+ var SceneFormElement = require('./pages/SceneFormElement.js');
13
+ var SceneDataTable = require('./data/SceneDataTable.js');
14
+ var SceneObservableDataTable = require('./data/SceneObservableDataTable.js');
15
+ var SceneCommandForm = require('./forms/SceneCommandForm.js');
16
+ var resolveFieldBinding = require('./forms/fields/resolveFieldBinding.js');
17
+ var CommandFormField = require('./forms/fields/CommandFormField.js');
18
+ var SceneInputTextField = require('./forms/fields/SceneInputTextField.js');
19
+ var SceneNumberField = require('./forms/fields/SceneNumberField.js');
20
+ var SceneCheckboxField = require('./forms/fields/SceneCheckboxField.js');
21
+ var SceneTextAreaField = require('./forms/fields/SceneTextAreaField.js');
22
+ var SceneDropdownField = require('./forms/fields/SceneDropdownField.js');
23
+ var SceneSliderField = require('./forms/fields/SceneSliderField.js');
24
+ var SceneCalendarField = require('./forms/fields/SceneCalendarField.js');
25
+ var SceneColorPickerField = require('./forms/fields/SceneColorPickerField.js');
26
+ var SceneMultiSelectField = require('./forms/fields/SceneMultiSelectField.js');
27
+ var SceneChipsField = require('./forms/fields/SceneChipsField.js');
28
+ var SceneRadioButtonField = require('./forms/fields/SceneRadioButtonField.js');
29
+ var SceneRadioGroupField = require('./forms/fields/SceneRadioGroupField.js');
30
+ var SceneDialog = require('./dialogs/SceneDialog.js');
31
+ var SceneConfirmationDialog = require('./dialogs/SceneConfirmationDialog.js');
32
+ var SceneBusyIndicatorDialog = require('./dialogs/SceneBusyIndicatorDialog.js');
33
+ var SceneCommandDialog = require('./dialogs/SceneCommandDialog.js');
34
+ var SceneStepperCommandDialog = require('./dialogs/SceneStepperCommandDialog.js');
35
+ var SceneIcon = require('./common/SceneIcon.js');
36
+ var SceneTooltip = require('./common/SceneTooltip.js');
37
+ var SceneErrorBoundary = require('./common/SceneErrorBoundary.js');
38
+ var SceneDropdown = require('./common/SceneDropdown.js');
39
+ var useEditableCopy = require('./editors/useEditableCopy.js');
40
+ var timeMachineVersions = require('./editors/timeMachineVersions.js');
41
+ var filterDefinitions = require('./editors/filterDefinitions.js');
42
+ var SceneObjectContentEditor = require('./editors/SceneObjectContentEditor.js');
43
+ var SceneObjectNavigationalBar = require('./editors/SceneObjectNavigationalBar.js');
44
+ var SceneSchemaEditor = require('./editors/SceneSchemaEditor.js');
45
+ var SceneTimeMachine = require('./editors/SceneTimeMachine.js');
46
+ var SceneFilterPanel = require('./editors/SceneFilterPanel.js');
47
+ var SceneToolbar = require('./toolbar/SceneToolbar.js');
48
+ var SceneToolbarButton = require('./toolbar/SceneToolbarButton.js');
49
+ var SceneToolbarGroup = require('./toolbar/SceneToolbarGroup.js');
50
+ var SceneToolbarSeparator = require('./toolbar/SceneToolbarSeparator.js');
51
+ var cratisComponents = require('./cratisComponents.js');
52
+ var cratisComponentsPackage = require('./cratisComponentsPackage.js');
53
+
54
+
55
+
56
+ exports.arrayProperty = properties.arrayProperty;
57
+ exports.booleanProperty = properties.booleanProperty;
58
+ exports.numberProperty = properties.numberProperty;
59
+ exports.objectArrayProperty = properties.objectArrayProperty;
60
+ exports.objectProperty = properties.objectProperty;
61
+ exports.stringArrayProperty = properties.stringArrayProperty;
62
+ exports.stringProperty = properties.stringProperty;
63
+ exports.unionProperty = properties.unionProperty;
64
+ exports.BindingKind = BindingKind.BindingKind;
65
+ exports.clearBindings = bindingRegistry.clearBindings;
66
+ exports.registerCommand = bindingRegistry.registerCommand;
67
+ exports.registerCommands = bindingRegistry.registerCommands;
68
+ exports.registerQueries = bindingRegistry.registerQueries;
69
+ exports.registerQuery = bindingRegistry.registerQuery;
70
+ exports.registeredCommandNames = bindingRegistry.registeredCommandNames;
71
+ exports.registeredQueryNames = bindingRegistry.registeredQueryNames;
72
+ exports.resolveCommand = bindingRegistry.resolveCommand;
73
+ exports.resolveQuery = bindingRegistry.resolveQuery;
74
+ exports.resolveElementBinding = resolveElementBinding.resolveElementBinding;
75
+ exports.Placeholder = Placeholder.Placeholder;
76
+ exports.MissingBinding = MissingBinding.MissingBinding;
77
+ exports.ArcRuntimeBoundary = ArcRuntimeBoundary.ArcRuntimeBoundary;
78
+ exports.ScenePage = ScenePage.ScenePage;
79
+ exports.SceneDataPage = SceneDataPage.SceneDataPage;
80
+ exports.SceneFormElement = SceneFormElement.SceneFormElement;
81
+ exports.SceneDataTable = SceneDataTable.SceneDataTable;
82
+ exports.SceneObservableDataTable = SceneObservableDataTable.SceneObservableDataTable;
83
+ exports.SceneCommandForm = SceneCommandForm.SceneCommandForm;
84
+ exports.resolveFieldBinding = resolveFieldBinding.resolveFieldBinding;
85
+ exports.CommandFormField = CommandFormField.CommandFormField;
86
+ exports.SceneInputTextField = SceneInputTextField.SceneInputTextField;
87
+ exports.SceneNumberField = SceneNumberField.SceneNumberField;
88
+ exports.SceneCheckboxField = SceneCheckboxField.SceneCheckboxField;
89
+ exports.SceneTextAreaField = SceneTextAreaField.SceneTextAreaField;
90
+ exports.SceneDropdownField = SceneDropdownField.SceneDropdownField;
91
+ exports.SceneSliderField = SceneSliderField.SceneSliderField;
92
+ exports.SceneCalendarField = SceneCalendarField.SceneCalendarField;
93
+ exports.SceneColorPickerField = SceneColorPickerField.SceneColorPickerField;
94
+ exports.SceneMultiSelectField = SceneMultiSelectField.SceneMultiSelectField;
95
+ exports.SceneChipsField = SceneChipsField.SceneChipsField;
96
+ exports.SceneRadioButtonField = SceneRadioButtonField.SceneRadioButtonField;
97
+ exports.SceneRadioGroupField = SceneRadioGroupField.SceneRadioGroupField;
98
+ exports.SceneDialog = SceneDialog.SceneDialog;
99
+ exports.SceneConfirmationDialog = SceneConfirmationDialog.SceneConfirmationDialog;
100
+ exports.SceneBusyIndicatorDialog = SceneBusyIndicatorDialog.SceneBusyIndicatorDialog;
101
+ exports.SceneCommandDialog = SceneCommandDialog.SceneCommandDialog;
102
+ exports.SceneStepperCommandDialog = SceneStepperCommandDialog.SceneStepperCommandDialog;
103
+ exports.SceneIcon = SceneIcon.SceneIcon;
104
+ exports.SceneTooltip = SceneTooltip.SceneTooltip;
105
+ exports.SceneErrorBoundary = SceneErrorBoundary.SceneErrorBoundary;
106
+ exports.SceneDropdown = SceneDropdown.SceneDropdown;
107
+ exports.useEditableCopy = useEditableCopy.useEditableCopy;
108
+ exports.timeMachineVersions = timeMachineVersions.timeMachineVersions;
109
+ exports.filterDefinitions = filterDefinitions.filterDefinitions;
110
+ exports.SceneObjectContentEditor = SceneObjectContentEditor.SceneObjectContentEditor;
111
+ exports.SceneObjectNavigationalBar = SceneObjectNavigationalBar.SceneObjectNavigationalBar;
112
+ exports.SceneSchemaEditor = SceneSchemaEditor.SceneSchemaEditor;
113
+ exports.SceneTimeMachine = SceneTimeMachine.SceneTimeMachine;
114
+ exports.SceneFilterPanel = SceneFilterPanel.SceneFilterPanel;
115
+ exports.SceneToolbar = SceneToolbar.SceneToolbar;
116
+ exports.SceneToolbarButton = SceneToolbarButton.SceneToolbarButton;
117
+ exports.SceneToolbarGroup = SceneToolbarGroup.SceneToolbarGroup;
118
+ exports.SceneToolbarSeparator = SceneToolbarSeparator.SceneToolbarSeparator;
119
+ exports.cratisComponents = cratisComponents.cratisComponents;
120
+ exports.cratisComponentsPackageName = cratisComponents.cratisComponentsPackageName;
121
+ exports.cratisComponentsPackage = cratisComponentsPackage.cratisComponentsPackage;
122
+ exports.cratisComponentsPackageManifest = cratisComponentsPackage.cratisComponentsPackageManifest;
123
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -0,0 +1,45 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var react = require('react');
5
+ var BindingKind = require('../bindings/BindingKind.js');
6
+ var resolveElementBinding = require('../bindings/resolveElementBinding.js');
7
+ var MissingBinding = require('../bindings/MissingBinding.js');
8
+ var ArcRuntimeBoundary = require('../bindings/ArcRuntimeBoundary.js');
9
+ var properties = require('../properties.js');
10
+
11
+ const DataPage = /*#__PURE__*/ react.lazy(async ()=>({
12
+ default: (await import('@cratis/components/DataPage')).DataPage
13
+ }));
14
+ /**
15
+ * The `Cratis.Components:dataPage` component - `DataPage` from `@cratis/components/DataPage`.
16
+ *
17
+ * The library's whole list-screen composite in one name: title bar, menubar, filterable table and
18
+ * optional details pane, all driven from a single query. It is the single highest-leverage thing this
19
+ * package exposes, because reproducing it out of `table` and `toolbar` in a screen would be pages of
20
+ * modeling for a worse result.
21
+ *
22
+ * The `query` property names an Arc query proxy; the columns and menu items come from the `content`
23
+ * slot as `DataPage.Columns` / `DataPage.MenuItems` children.
24
+ */ function SceneDataPage({ element, slots }) {
25
+ const { name, target } = resolveElementBinding.resolveElementBinding(element, BindingKind.BindingKind.Query);
26
+ if (!target) return /*#__PURE__*/ jsxRuntime.jsx(MissingBinding.MissingBinding, {
27
+ element: element,
28
+ kind: BindingKind.BindingKind.Query,
29
+ name: name
30
+ });
31
+ return /*#__PURE__*/ jsxRuntime.jsx(ArcRuntimeBoundary.ArcRuntimeBoundary, {
32
+ children: /*#__PURE__*/ jsxRuntime.jsx(DataPage, {
33
+ title: properties.stringProperty(element.properties, 'title') ?? '',
34
+ query: target,
35
+ emptyMessage: properties.stringProperty(element.properties, 'emptyMessage') ?? '',
36
+ dataKey: properties.stringProperty(element.properties, 'dataKey'),
37
+ globalFilterFields: properties.stringArrayProperty(element.properties, 'globalFilterFields'),
38
+ clientFiltering: properties.booleanProperty(element.properties, 'clientFiltering'),
39
+ children: slots.content
40
+ })
41
+ });
42
+ }
43
+
44
+ exports.SceneDataPage = SceneDataPage;
45
+ //# sourceMappingURL=SceneDataPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneDataPage.js","sources":["../../../pages/SceneDataPage.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, stringArrayProperty, stringProperty } from '../properties';\n\nconst DataPage = lazy(async () => ({ default: (await import('@cratis/components/DataPage')).DataPage }));\n\n/**\n * The `Cratis.Components:dataPage` component - `DataPage` from `@cratis/components/DataPage`.\n *\n * The library's whole list-screen composite in one name: title bar, menubar, filterable table and\n * optional details pane, all driven from a single query. It is the single highest-leverage thing this\n * package exposes, because reproducing it out of `table` and `toolbar` in a screen would be pages of\n * modeling for a worse result.\n *\n * The `query` property names an Arc query proxy; the columns and menu items come from the `content`\n * slot as `DataPage.Columns` / `DataPage.MenuItems` children.\n */\nexport function SceneDataPage({ element, slots }: RegisteredComponentProps) {\n const { name, target } = resolveElementBinding(element, BindingKind.Query);\n if (!target) return <MissingBinding element={element} kind={BindingKind.Query} name={name} />;\n\n return (\n <ArcRuntimeBoundary>\n <DataPage\n title={stringProperty(element.properties, 'title') ?? ''}\n query={target}\n emptyMessage={stringProperty(element.properties, 'emptyMessage') ?? ''}\n dataKey={stringProperty(element.properties, 'dataKey')}\n globalFilterFields={stringArrayProperty(element.properties, 'globalFilterFields')}\n clientFiltering={booleanProperty(element.properties, 'clientFiltering')}\n >\n {slots.content}\n </DataPage>\n </ArcRuntimeBoundary>\n );\n}\n"],"names":["DataPage","lazy","default","SceneDataPage","element","slots","name","target","resolveElementBinding","BindingKind","Query","_jsx","MissingBinding","kind","ArcRuntimeBoundary","title","stringProperty","properties","query","emptyMessage","dataKey","globalFilterFields","stringArrayProperty","clientFiltering","booleanProperty","content"],"mappings":";;;;;;;;;;AAQA,MAAMA,QAAAA,iBAAWC,UAAAA,CAAK,WAAa;AAAEC,QAAAA,OAAAA,EAAS,CAAC,MAAM,OAAO,6BAAA,CAA6B,EAAGF;KAAS,CAAA,CAAA;AAErG;;;;;;;;;;AAUC,IACM,SAASG,aAAAA,CAAc,EAAEC,OAAO,EAAEC,KAAK,EAA4B,EAAA;IACtE,MAAM,EAAEC,IAAI,EAAEC,MAAM,EAAE,GAAGC,2CAAAA,CAAsBJ,OAAAA,EAASK,uBAAAA,CAAYC,KAAK,CAAA;IACzE,IAAI,CAACH,MAAAA,EAAQ,qBAAOI,cAAA,CAACC,6BAAAA,EAAAA;QAAeR,OAAAA,EAASA,OAAAA;AAASS,QAAAA,IAAAA,EAAMJ,wBAAYC,KAAK;QAAEJ,IAAAA,EAAMA;;AAErF,IAAA,qBACIK,cAAA,CAACG,qCAAAA,EAAAA;AACG,QAAA,QAAA,gBAAAH,cAAA,CAACX,QAAAA,EAAAA;AACGe,YAAAA,KAAAA,EAAOC,yBAAAA,CAAeZ,OAAAA,CAAQa,UAAU,EAAE,OAAA,CAAA,IAAY,EAAA;YACtDC,KAAAA,EAAOX,MAAAA;AACPY,YAAAA,YAAAA,EAAcH,yBAAAA,CAAeZ,OAAAA,CAAQa,UAAU,EAAE,cAAA,CAAA,IAAmB,EAAA;YACpEG,OAAAA,EAASJ,yBAAAA,CAAeZ,OAAAA,CAAQa,UAAU,EAAE,SAAA,CAAA;YAC5CI,kBAAAA,EAAoBC,8BAAAA,CAAoBlB,OAAAA,CAAQa,UAAU,EAAE,oBAAA,CAAA;YAC5DM,eAAAA,EAAiBC,0BAAAA,CAAgBpB,OAAAA,CAAQa,UAAU,EAAE,iBAAA,CAAA;AAEpDZ,YAAAA,QAAAA,EAAAA,KAAAA,CAAMoB;;;AAIvB;;;;"}
@@ -0,0 +1,26 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var Common = require('@cratis/components/Common');
5
+ var properties = require('../properties.js');
6
+
7
+ /**
8
+ * The `Cratis.Components:formElement` component - `FormElement` from `@cratis/components/Common`.
9
+ *
10
+ * Pairs an input with a leading icon addon so a row of unrelated inputs still lines up. The icon can be
11
+ * given two ways, and both are worth supporting: the `icon` property for the common case of a PrimeIcons
12
+ * class name, and an `icon` slot for a screen that wants a real component there. The slot wins when both
13
+ * are present, since a slot is the more specific statement.
14
+ */ function SceneFormElement({ element, slots }) {
15
+ const icon = properties.stringProperty(element.properties, 'icon');
16
+ const iconContent = slots.icon?.length ? slots.icon : icon === undefined ? undefined : /*#__PURE__*/ jsxRuntime.jsx(Common.IconDisplay, {
17
+ icon: icon
18
+ });
19
+ return /*#__PURE__*/ jsxRuntime.jsx(Common.FormElement, {
20
+ icon: iconContent,
21
+ children: slots.content
22
+ });
23
+ }
24
+
25
+ exports.SceneFormElement = SceneFormElement;
26
+ //# sourceMappingURL=SceneFormElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneFormElement.js","sources":["../../../pages/SceneFormElement.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 { FormElement, IconDisplay } from '@cratis/components/Common';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { stringProperty } from '../properties';\n\n/**\n * The `Cratis.Components:formElement` component - `FormElement` from `@cratis/components/Common`.\n *\n * Pairs an input with a leading icon addon so a row of unrelated inputs still lines up. The icon can be\n * given two ways, and both are worth supporting: the `icon` property for the common case of a PrimeIcons\n * class name, and an `icon` slot for a screen that wants a real component there. The slot wins when both\n * are present, since a slot is the more specific statement.\n */\nexport function SceneFormElement({ element, slots }: RegisteredComponentProps) {\n const icon = stringProperty(element.properties, 'icon');\n const iconContent = slots.icon?.length ? slots.icon : icon === undefined ? undefined : <IconDisplay icon={icon} />;\n\n return <FormElement icon={iconContent}>{slots.content}</FormElement>;\n}\n"],"names":["SceneFormElement","element","slots","icon","stringProperty","properties","iconContent","length","undefined","_jsx","IconDisplay","FormElement","content"],"mappings":";;;;;;AAOA;;;;;;;AAOC,IACM,SAASA,gBAAAA,CAAiB,EAAEC,OAAO,EAAEC,KAAK,EAA4B,EAAA;AACzE,IAAA,MAAMC,IAAAA,GAAOC,yBAAAA,CAAeH,OAAAA,CAAQI,UAAU,EAAE,MAAA,CAAA;IAChD,MAAMC,WAAAA,GAAcJ,KAAAA,CAAMC,IAAI,EAAEI,MAAAA,GAASL,KAAAA,CAAMC,IAAI,GAAGA,IAAAA,KAASK,SAAAA,GAAYA,SAAAA,iBAAYC,cAAA,CAACC,kBAAAA,EAAAA;QAAYP,IAAAA,EAAMA;;AAE1G,IAAA,qBAAOM,cAAA,CAACE,kBAAAA,EAAAA;QAAYR,IAAAA,EAAMG,WAAAA;AAAcJ,QAAAA,QAAAA,EAAAA,KAAAA,CAAMU;;AAClD;;;;"}
@@ -0,0 +1,28 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var Common = require('@cratis/components/Common');
5
+ var properties = require('../properties.js');
6
+
7
+ /**
8
+ * The `Cratis.Components:page` component - `Page` from `@cratis/components/Common`.
9
+ *
10
+ * The library's page primitive rather than a plain `div`, because it is what every other component in
11
+ * the library is laid out inside: a full-height flex column whose optional `panel` chrome is drawn from
12
+ * the same `--cratis-*` tokens as the tables and dialogs it contains. A screen that wraps its content in
13
+ * this gets that consistency for free; one that wraps it in a `div` has to reinvent it and will drift.
14
+ *
15
+ * Imported statically - `Page` is one of the library's Arc-free components, so it costs a screen nothing
16
+ * to use it without an Arc runtime present.
17
+ */ function ScenePage({ element, slots }) {
18
+ return /*#__PURE__*/ jsxRuntime.jsx(Common.Page, {
19
+ "data-scene-id": element.id,
20
+ title: properties.stringProperty(element.properties, 'title') ?? '',
21
+ showTitle: properties.booleanProperty(element.properties, 'showTitle'),
22
+ panel: properties.booleanProperty(element.properties, 'panel'),
23
+ children: slots.content
24
+ });
25
+ }
26
+
27
+ exports.ScenePage = ScenePage;
28
+ //# sourceMappingURL=ScenePage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScenePage.js","sources":["../../../pages/ScenePage.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 { Page } from '@cratis/components/Common';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { booleanProperty, stringProperty } from '../properties';\n\n/**\n * The `Cratis.Components:page` component - `Page` from `@cratis/components/Common`.\n *\n * The library's page primitive rather than a plain `div`, because it is what every other component in\n * the library is laid out inside: a full-height flex column whose optional `panel` chrome is drawn from\n * the same `--cratis-*` tokens as the tables and dialogs it contains. A screen that wraps its content in\n * this gets that consistency for free; one that wraps it in a `div` has to reinvent it and will drift.\n *\n * Imported statically - `Page` is one of the library's Arc-free components, so it costs a screen nothing\n * to use it without an Arc runtime present.\n */\nexport function ScenePage({ element, slots }: RegisteredComponentProps) {\n return (\n <Page\n data-scene-id={element.id}\n title={stringProperty(element.properties, 'title') ?? ''}\n showTitle={booleanProperty(element.properties, 'showTitle')}\n panel={booleanProperty(element.properties, 'panel')}\n >\n {slots.content}\n </Page>\n );\n}\n"],"names":["ScenePage","element","slots","_jsx","Page","data-scene-id","id","title","stringProperty","properties","showTitle","booleanProperty","panel","content"],"mappings":";;;;;;AAOA;;;;;;;;;;AAUC,IACM,SAASA,SAAAA,CAAU,EAAEC,OAAO,EAAEC,KAAK,EAA4B,EAAA;AAClE,IAAA,qBACIC,cAAA,CAACC,WAAAA,EAAAA;AACGC,QAAAA,eAAAA,EAAeJ,QAAQK,EAAE;AACzBC,QAAAA,KAAAA,EAAOC,yBAAAA,CAAeP,OAAAA,CAAQQ,UAAU,EAAE,OAAA,CAAA,IAAY,EAAA;QACtDC,SAAAA,EAAWC,0BAAAA,CAAgBV,OAAAA,CAAQQ,UAAU,EAAE,WAAA,CAAA;QAC/CG,KAAAA,EAAOD,0BAAAA,CAAgBV,OAAAA,CAAQQ,UAAU,EAAE,OAAA,CAAA;AAE1CP,QAAAA,QAAAA,EAAAA,KAAAA,CAAMW;;AAGnB;;;;"}
@@ -0,0 +1,104 @@
1
+ 'use strict';
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
+ /**
6
+ * Narrow readers for an {@link ExternalComponent}'s `properties` bag.
7
+ *
8
+ * The bag is `Record<string, unknown>` because it survives a round trip through JSON - a `.play` screen
9
+ * is authored as text, compiled by Stage, and re-read by Studio, and none of those steps carry a
10
+ * TypeScript type with it. An adapter therefore has to narrow every value it reads, and the tempting
11
+ * shortcut (`element.properties.title as string`) is a lie the compiler will happily believe: a screen
12
+ * that writes `title: 42` then reaches the wrapped component as a number and fails somewhere far away.
13
+ *
14
+ * These helpers all answer the same way - the value when it really is of the asked-for type, `undefined`
15
+ * otherwise - so an adapter reads a property and applies its own default in one expression, and a
16
+ * mistyped property degrades to the default instead of corrupting the render.
17
+ */ /**
18
+ * Reads a string property, or `undefined` when it is absent or not a string.
19
+ */ function stringProperty(properties, name) {
20
+ const value = properties[name];
21
+ return typeof value === 'string' ? value : undefined;
22
+ }
23
+ /**
24
+ * Reads a boolean property, or `undefined` when it is absent or not a boolean.
25
+ *
26
+ * Deliberately not truthiness: a screen that sets `showTitle: 0` means something different from one that
27
+ * leaves it out, and only the second should fall back to the adapter's default.
28
+ */ function booleanProperty(properties, name) {
29
+ const value = properties[name];
30
+ return typeof value === 'boolean' ? value : undefined;
31
+ }
32
+ /**
33
+ * Reads a numeric property, or `undefined` when it is absent, not a number, or `NaN`.
34
+ *
35
+ * `NaN` is excluded because it is the one number that makes every downstream comparison silently false -
36
+ * a slider with `min: NaN` renders without complaint and behaves as if it had no minimum at all.
37
+ */ function numberProperty(properties, name) {
38
+ const value = properties[name];
39
+ return typeof value === 'number' && !Number.isNaN(value) ? value : undefined;
40
+ }
41
+ /**
42
+ * Reads an array property, or `undefined` when it is absent or not an array.
43
+ *
44
+ * The element type is deliberately left as `unknown` - narrowing the elements is the caller's job,
45
+ * through {@link stringArrayProperty} or its own mapping - so this helper never has to guess what a
46
+ * heterogeneous list was supposed to be.
47
+ */ function arrayProperty(properties, name) {
48
+ const value = properties[name];
49
+ return Array.isArray(value) ? value : undefined;
50
+ }
51
+ /**
52
+ * Reads an array property and keeps only its string elements, or `undefined` when the property is absent
53
+ * or not an array.
54
+ *
55
+ * Non-string elements are dropped rather than rejecting the whole list, because these lists are
56
+ * column names, filter fields and the like: one bad entry should cost that one entry, not the entire
57
+ * table's filtering.
58
+ */ function stringArrayProperty(properties, name) {
59
+ return arrayProperty(properties, name)?.filter((value)=>typeof value === 'string');
60
+ }
61
+ /**
62
+ * Reads an object property as a plain record, or `undefined` when it is absent, `null`, or an array.
63
+ *
64
+ * Arrays are excluded even though `typeof [] === 'object'`, because every caller here wants a keyed
65
+ * object - a JSON schema, a document being edited - and an array reaching one of those would be a
66
+ * different bug entirely.
67
+ */ function objectProperty(properties, name) {
68
+ const value = properties[name];
69
+ return typeof value === 'object' && value !== null && !Array.isArray(value) ? value : undefined;
70
+ }
71
+ /**
72
+ * Reads an array property and keeps only its plain-object elements, or `undefined` when the property is
73
+ * absent or not an array.
74
+ *
75
+ * This is what an authored `options` list arrives as - `[{ label: 'Draft', value: 'draft' }, ...]` - and
76
+ * the same forgiving rule as {@link stringArrayProperty} applies: one malformed entry costs that entry,
77
+ * not the whole dropdown.
78
+ */ function objectArrayProperty(properties, name) {
79
+ return arrayProperty(properties, name)?.filter((value)=>typeof value === 'object' && value !== null && !Array.isArray(value));
80
+ }
81
+ /**
82
+ * Reads a string property that has to be one of a fixed set of values, or `undefined` when it is absent
83
+ * or outside the set.
84
+ *
85
+ * Several of the wrapped `@cratis/components` props are string literal unions (`'horizontal' | 'vertical'`,
86
+ * `'top' | 'right' | 'bottom' | 'left'`). This is what turns an arbitrary authored string into one of
87
+ * them without an assertion: an unrecognized value falls back to the component's own default rather than
88
+ * being forced through as a value the component never expects to see.
89
+ *
90
+ * @param allowed The permitted values, most usefully written as a `const` tuple so `T` infers as the union.
91
+ */ function unionProperty(properties, name, allowed) {
92
+ const value = stringProperty(properties, name);
93
+ return value !== undefined && allowed.includes(value) ? value : undefined;
94
+ }
95
+
96
+ exports.arrayProperty = arrayProperty;
97
+ exports.booleanProperty = booleanProperty;
98
+ exports.numberProperty = numberProperty;
99
+ exports.objectArrayProperty = objectArrayProperty;
100
+ exports.objectProperty = objectProperty;
101
+ exports.stringArrayProperty = stringArrayProperty;
102
+ exports.stringProperty = stringProperty;
103
+ exports.unionProperty = unionProperty;
104
+ //# sourceMappingURL=properties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"properties.js","sources":["../../properties.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\n/**\n * Narrow readers for an {@link ExternalComponent}'s `properties` bag.\n *\n * The bag is `Record<string, unknown>` because it survives a round trip through JSON - a `.play` screen\n * is authored as text, compiled by Stage, and re-read by Studio, and none of those steps carry a\n * TypeScript type with it. An adapter therefore has to narrow every value it reads, and the tempting\n * shortcut (`element.properties.title as string`) is a lie the compiler will happily believe: a screen\n * that writes `title: 42` then reaches the wrapped component as a number and fails somewhere far away.\n *\n * These helpers all answer the same way - the value when it really is of the asked-for type, `undefined`\n * otherwise - so an adapter reads a property and applies its own default in one expression, and a\n * mistyped property degrades to the default instead of corrupting the render.\n */\n\n/**\n * Reads a string property, or `undefined` when it is absent or not a string.\n */\nexport function stringProperty(properties: Record<string, unknown>, name: string): string | undefined {\n const value = properties[name];\n return typeof value === 'string' ? value : undefined;\n}\n\n/**\n * Reads a boolean property, or `undefined` when it is absent or not a boolean.\n *\n * Deliberately not truthiness: a screen that sets `showTitle: 0` means something different from one that\n * leaves it out, and only the second should fall back to the adapter's default.\n */\nexport function booleanProperty(properties: Record<string, unknown>, name: string): boolean | undefined {\n const value = properties[name];\n return typeof value === 'boolean' ? value : undefined;\n}\n\n/**\n * Reads a numeric property, or `undefined` when it is absent, not a number, or `NaN`.\n *\n * `NaN` is excluded because it is the one number that makes every downstream comparison silently false -\n * a slider with `min: NaN` renders without complaint and behaves as if it had no minimum at all.\n */\nexport function numberProperty(properties: Record<string, unknown>, name: string): number | undefined {\n const value = properties[name];\n return typeof value === 'number' && !Number.isNaN(value) ? value : undefined;\n}\n\n/**\n * Reads an array property, or `undefined` when it is absent or not an array.\n *\n * The element type is deliberately left as `unknown` - narrowing the elements is the caller's job,\n * through {@link stringArrayProperty} or its own mapping - so this helper never has to guess what a\n * heterogeneous list was supposed to be.\n */\nexport function arrayProperty(properties: Record<string, unknown>, name: string): unknown[] | undefined {\n const value = properties[name];\n return Array.isArray(value) ? value : undefined;\n}\n\n/**\n * Reads an array property and keeps only its string elements, or `undefined` when the property is absent\n * or not an array.\n *\n * Non-string elements are dropped rather than rejecting the whole list, because these lists are\n * column names, filter fields and the like: one bad entry should cost that one entry, not the entire\n * table's filtering.\n */\nexport function stringArrayProperty(properties: Record<string, unknown>, name: string): string[] | undefined {\n return arrayProperty(properties, name)?.filter((value): value is string => typeof value === 'string');\n}\n\n/**\n * Reads an object property as a plain record, or `undefined` when it is absent, `null`, or an array.\n *\n * Arrays are excluded even though `typeof [] === 'object'`, because every caller here wants a keyed\n * object - a JSON schema, a document being edited - and an array reaching one of those would be a\n * different bug entirely.\n */\nexport function objectProperty(properties: Record<string, unknown>, name: string): Record<string, unknown> | undefined {\n const value = properties[name];\n return typeof value === 'object' && value !== null && !Array.isArray(value) ? (value as Record<string, unknown>) : undefined;\n}\n\n/**\n * Reads an array property and keeps only its plain-object elements, or `undefined` when the property is\n * absent or not an array.\n *\n * This is what an authored `options` list arrives as - `[{ label: 'Draft', value: 'draft' }, ...]` - and\n * the same forgiving rule as {@link stringArrayProperty} applies: one malformed entry costs that entry,\n * not the whole dropdown.\n */\nexport function objectArrayProperty(properties: Record<string, unknown>, name: string): Record<string, unknown>[] | undefined {\n return arrayProperty(properties, name)?.filter(\n (value): value is Record<string, unknown> => typeof value === 'object' && value !== null && !Array.isArray(value)\n );\n}\n\n/**\n * Reads a string property that has to be one of a fixed set of values, or `undefined` when it is absent\n * or outside the set.\n *\n * Several of the wrapped `@cratis/components` props are string literal unions (`'horizontal' | 'vertical'`,\n * `'top' | 'right' | 'bottom' | 'left'`). This is what turns an arbitrary authored string into one of\n * them without an assertion: an unrecognized value falls back to the component's own default rather than\n * being forced through as a value the component never expects to see.\n *\n * @param allowed The permitted values, most usefully written as a `const` tuple so `T` infers as the union.\n */\nexport function unionProperty<T extends string>(properties: Record<string, unknown>, name: string, allowed: readonly T[]): T | undefined {\n const value = stringProperty(properties, name);\n return value !== undefined && (allowed as readonly string[]).includes(value) ? (value as T) : undefined;\n}\n"],"names":["stringProperty","properties","name","value","undefined","booleanProperty","numberProperty","Number","isNaN","arrayProperty","Array","isArray","stringArrayProperty","filter","objectProperty","objectArrayProperty","unionProperty","allowed","includes"],"mappings":";;AAAA;AACA;AAEA;;;;;;;;;;;;;;AAgBC,IACM,SAASA,cAAAA,CAAeC,UAAmC,EAAEC,IAAY,EAAA;IAC5E,MAAMC,KAAAA,GAAQF,UAAU,CAACC,IAAAA,CAAK;IAC9B,OAAO,OAAOC,KAAAA,KAAU,QAAA,GAAWA,KAAAA,GAAQC,SAAAA;AAC/C;AAEA;;;;;AAKC,IACM,SAASC,eAAAA,CAAgBJ,UAAmC,EAAEC,IAAY,EAAA;IAC7E,MAAMC,KAAAA,GAAQF,UAAU,CAACC,IAAAA,CAAK;IAC9B,OAAO,OAAOC,KAAAA,KAAU,SAAA,GAAYA,KAAAA,GAAQC,SAAAA;AAChD;AAEA;;;;;AAKC,IACM,SAASE,cAAAA,CAAeL,UAAmC,EAAEC,IAAY,EAAA;IAC5E,MAAMC,KAAAA,GAAQF,UAAU,CAACC,IAAAA,CAAK;IAC9B,OAAO,OAAOC,UAAU,QAAA,IAAY,CAACI,OAAOC,KAAK,CAACL,SAASA,KAAAA,GAAQC,SAAAA;AACvE;AAEA;;;;;;AAMC,IACM,SAASK,aAAAA,CAAcR,UAAmC,EAAEC,IAAY,EAAA;IAC3E,MAAMC,KAAAA,GAAQF,UAAU,CAACC,IAAAA,CAAK;AAC9B,IAAA,OAAOQ,KAAAA,CAAMC,OAAO,CAACR,KAAAA,CAAAA,GAASA,KAAAA,GAAQC,SAAAA;AAC1C;AAEA;;;;;;;AAOC,IACM,SAASQ,mBAAAA,CAAoBX,UAAmC,EAAEC,IAAY,EAAA;AACjF,IAAA,OAAOO,cAAcR,UAAAA,EAAYC,IAAAA,CAAAA,EAAOW,OAAO,CAACV,KAAAA,GAA2B,OAAOA,KAAAA,KAAU,QAAA,CAAA;AAChG;AAEA;;;;;;AAMC,IACM,SAASW,cAAAA,CAAeb,UAAmC,EAAEC,IAAY,EAAA;IAC5E,MAAMC,KAAAA,GAAQF,UAAU,CAACC,IAAAA,CAAK;IAC9B,OAAO,OAAOC,KAAAA,KAAU,QAAA,IAAYA,KAAAA,KAAU,IAAA,IAAQ,CAACO,KAAAA,CAAMC,OAAO,CAACR,KAAAA,CAAAA,GAAUA,KAAAA,GAAoCC,SAAAA;AACvH;AAEA;;;;;;;AAOC,IACM,SAASW,mBAAAA,CAAoBd,UAAmC,EAAEC,IAAY,EAAA;AACjF,IAAA,OAAOO,aAAAA,CAAcR,UAAAA,EAAYC,IAAAA,CAAAA,EAAOW,MAAAA,CACpC,CAACV,KAAAA,GAA4C,OAAOA,KAAAA,KAAU,QAAA,IAAYA,KAAAA,KAAU,IAAA,IAAQ,CAACO,KAAAA,CAAMC,OAAO,CAACR,KAAAA,CAAAA,CAAAA;AAEnH;AAEA;;;;;;;;;;AAUC,IACM,SAASa,aAAAA,CAAgCf,UAAmC,EAAEC,IAAY,EAAEe,OAAqB,EAAA;IACpH,MAAMd,KAAAA,GAAQH,eAAeC,UAAAA,EAAYC,IAAAA,CAAAA;AACzC,IAAA,OAAOC,UAAUC,SAAAA,IAAca,QAA8BC,QAAQ,CAACf,SAAUA,KAAAA,GAAcC,SAAAA;AAClG;;;;;;;;;;;"}
@@ -0,0 +1,27 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var Toolbar = require('@cratis/components/Toolbar');
5
+ var properties = require('../properties.js');
6
+
7
+ /** Whether the toolbar runs down the side or across the top. */ const orientations = [
8
+ 'vertical',
9
+ 'horizontal'
10
+ ];
11
+ /**
12
+ * The `Cratis.Components:toolbar` component - `Toolbar` from `@cratis/components/Toolbar`.
13
+ *
14
+ * The container for a tool palette: it draws the rounded chrome and, more importantly, establishes the
15
+ * drag context every `toolbarButton` inside it reads. `draggable` therefore belongs here rather than on
16
+ * each button - it is a property of the palette, and setting it per button is how you end up with a
17
+ * palette that is half draggable.
18
+ */ function SceneToolbar({ element, slots }) {
19
+ return /*#__PURE__*/ jsxRuntime.jsx(Toolbar.Toolbar, {
20
+ orientation: properties.unionProperty(element.properties, 'orientation', orientations),
21
+ draggable: properties.booleanProperty(element.properties, 'draggable'),
22
+ children: slots.content
23
+ });
24
+ }
25
+
26
+ exports.SceneToolbar = SceneToolbar;
27
+ //# sourceMappingURL=SceneToolbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneToolbar.js","sources":["../../../toolbar/SceneToolbar.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 { Toolbar } from '@cratis/components/Toolbar';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { booleanProperty, unionProperty } from '../properties';\n\n/** Whether the toolbar runs down the side or across the top. */\nconst orientations = ['vertical', 'horizontal'] as const;\n\n/**\n * The `Cratis.Components:toolbar` component - `Toolbar` from `@cratis/components/Toolbar`.\n *\n * The container for a tool palette: it draws the rounded chrome and, more importantly, establishes the\n * drag context every `toolbarButton` inside it reads. `draggable` therefore belongs here rather than on\n * each button - it is a property of the palette, and setting it per button is how you end up with a\n * palette that is half draggable.\n */\nexport function SceneToolbar({ element, slots }: RegisteredComponentProps) {\n return (\n <Toolbar\n orientation={unionProperty(element.properties, 'orientation', orientations)}\n draggable={booleanProperty(element.properties, 'draggable')}\n >\n {slots.content}\n </Toolbar>\n );\n}\n"],"names":["orientations","SceneToolbar","element","slots","_jsx","Toolbar","orientation","unionProperty","properties","draggable","booleanProperty","content"],"mappings":";;;;;;AAOA,iEACA,MAAMA,YAAAA,GAAe;AAAC,IAAA,UAAA;AAAY,IAAA;AAAa,CAAA;AAE/C;;;;;;;AAOC,IACM,SAASC,YAAAA,CAAa,EAAEC,OAAO,EAAEC,KAAK,EAA4B,EAAA;AACrE,IAAA,qBACIC,cAAA,CAACC,eAAAA,EAAAA;AACGC,QAAAA,WAAAA,EAAaC,wBAAAA,CAAcL,OAAAA,CAAQM,UAAU,EAAE,aAAA,EAAeR,YAAAA,CAAAA;QAC9DS,SAAAA,EAAWC,0BAAAA,CAAgBR,OAAAA,CAAQM,UAAU,EAAE,WAAA,CAAA;AAE9CL,QAAAA,QAAAA,EAAAA,KAAAA,CAAMQ;;AAGnB;;;;"}
@@ -0,0 +1,32 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var Toolbar = require('@cratis/components/Toolbar');
5
+ var properties = require('../properties.js');
6
+
7
+ /** Which side of the button its tooltip appears on. */ const tooltipPositions = [
8
+ 'top',
9
+ 'right',
10
+ 'bottom',
11
+ 'left'
12
+ ];
13
+ /**
14
+ * The `Cratis.Components:toolbarButton` component - `ToolbarButton` from `@cratis/components/Toolbar`.
15
+ *
16
+ * `title` is required by the underlying component and is not decoration: it is both the tooltip text and
17
+ * the accessible name, so a toolbar of icon-only buttons is still usable by anyone who cannot see the
18
+ * icons. It defaults to the `text` property rather than to an empty string, so a button that has a
19
+ * visible label is never left nameless.
20
+ */ function SceneToolbarButton({ element }) {
21
+ const text = properties.stringProperty(element.properties, 'text');
22
+ return /*#__PURE__*/ jsxRuntime.jsx(Toolbar.ToolbarButton, {
23
+ icon: properties.stringProperty(element.properties, 'icon'),
24
+ text: text,
25
+ title: properties.stringProperty(element.properties, 'title') ?? text ?? '',
26
+ active: properties.booleanProperty(element.properties, 'active'),
27
+ tooltipPosition: properties.unionProperty(element.properties, 'tooltipPosition', tooltipPositions)
28
+ });
29
+ }
30
+
31
+ exports.SceneToolbarButton = SceneToolbarButton;
32
+ //# sourceMappingURL=SceneToolbarButton.js.map