@cratis/scene.primereact 4.5.0 → 4.7.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 (513) hide show
  1. package/.storybook/preview.tsx +8 -1
  2. package/EnumerationResolution.ts +7 -0
  3. package/README.md +42 -10
  4. package/chart/ChartGallery.stories.tsx +63 -0
  5. package/chart/ChartType.ts +14 -0
  6. package/chart/ChartTypeResolution.ts +14 -0
  7. package/chart/PrimeChart.tsx +62 -0
  8. package/chart/chartHasData.ts +22 -0
  9. package/chart/chartTypeChoices.ts +32 -0
  10. package/chart/index.ts +7 -0
  11. package/chart/resolveChartType.ts +61 -0
  12. package/chart/useChart.ts +61 -0
  13. package/data/DataGallery.stories.tsx +6 -0
  14. package/data/DataScrollerRow.tsx +35 -0
  15. package/data/PrimeDataScroller.tsx +84 -0
  16. package/data/PrimeTreeTable.tsx +145 -0
  17. package/data/TreeTableCheckState.ts +9 -0
  18. package/data/TreeTableRow.ts +22 -0
  19. package/data/TreeTableRowView.tsx +86 -0
  20. package/data/TreeTableSelectionMode.ts +10 -0
  21. package/data/checkboxSelection.ts +92 -0
  22. package/data/index.ts +4 -0
  23. package/data/isSerializedLegacyElement.ts +30 -0
  24. package/data/readableValue.ts +32 -0
  25. package/data/selectionKeysOf.ts +40 -0
  26. package/data/treeTableRows.ts +32 -0
  27. package/data/useIncrementalLoad.ts +36 -0
  28. package/data/useLoadOnReach.ts +31 -0
  29. package/data/useTreeGridNavigation.ts +81 -0
  30. package/dist/cjs/chart/ChartType.js +18 -0
  31. package/dist/cjs/chart/ChartType.js.map +1 -0
  32. package/dist/cjs/chart/PrimeChart.js +92 -0
  33. package/dist/cjs/chart/PrimeChart.js.map +1 -0
  34. package/dist/cjs/chart/chartHasData.js +24 -0
  35. package/dist/cjs/chart/chartHasData.js.map +1 -0
  36. package/dist/cjs/chart/chartTypeChoices.js +43 -0
  37. package/dist/cjs/chart/chartTypeChoices.js.map +1 -0
  38. package/dist/cjs/chart/resolveChartType.js +69 -0
  39. package/dist/cjs/chart/resolveChartType.js.map +1 -0
  40. package/dist/cjs/chart/useChart.js +62 -0
  41. package/dist/cjs/chart/useChart.js.map +1 -0
  42. package/dist/cjs/data/DataScrollerRow.js +50 -0
  43. package/dist/cjs/data/DataScrollerRow.js.map +1 -0
  44. package/dist/cjs/data/PrimeDataScroller.js +120 -0
  45. package/dist/cjs/data/PrimeDataScroller.js.map +1 -0
  46. package/dist/cjs/data/PrimeTreeTable.js +217 -0
  47. package/dist/cjs/data/PrimeTreeTable.js.map +1 -0
  48. package/dist/cjs/data/TreeTableCheckState.js +13 -0
  49. package/dist/cjs/data/TreeTableCheckState.js.map +1 -0
  50. package/dist/cjs/data/TreeTableRowView.js +76 -0
  51. package/dist/cjs/data/TreeTableRowView.js.map +1 -0
  52. package/dist/cjs/data/TreeTableSelectionMode.js +14 -0
  53. package/dist/cjs/data/TreeTableSelectionMode.js.map +1 -0
  54. package/dist/cjs/data/checkboxSelection.js +88 -0
  55. package/dist/cjs/data/checkboxSelection.js.map +1 -0
  56. package/dist/cjs/data/isSerializedLegacyElement.js +30 -0
  57. package/dist/cjs/data/isSerializedLegacyElement.js.map +1 -0
  58. package/dist/cjs/data/readableValue.js +31 -0
  59. package/dist/cjs/data/readableValue.js.map +1 -0
  60. package/dist/cjs/data/selectionKeysOf.js +40 -0
  61. package/dist/cjs/data/selectionKeysOf.js.map +1 -0
  62. package/dist/cjs/data/treeTableRows.js +42 -0
  63. package/dist/cjs/data/treeTableRows.js.map +1 -0
  64. package/dist/cjs/data/useIncrementalLoad.js +46 -0
  65. package/dist/cjs/data/useIncrementalLoad.js.map +1 -0
  66. package/dist/cjs/data/useLoadOnReach.js +42 -0
  67. package/dist/cjs/data/useLoadOnReach.js.map +1 -0
  68. package/dist/cjs/data/useTreeGridNavigation.js +75 -0
  69. package/dist/cjs/data/useTreeGridNavigation.js.map +1 -0
  70. package/dist/cjs/editor/PrimeEditor.js +96 -0
  71. package/dist/cjs/editor/PrimeEditor.js.map +1 -0
  72. package/dist/cjs/editor/QuillLoaderContext.js +10 -0
  73. package/dist/cjs/editor/QuillLoaderContext.js.map +1 -0
  74. package/dist/cjs/editor/QuillLoaderProvider.js +21 -0
  75. package/dist/cjs/editor/QuillLoaderProvider.js.map +1 -0
  76. package/dist/cjs/editor/applyHtml.js +25 -0
  77. package/dist/cjs/editor/applyHtml.js.map +1 -0
  78. package/dist/cjs/editor/characterCount.js +10 -0
  79. package/dist/cjs/editor/characterCount.js.map +1 -0
  80. package/dist/cjs/editor/htmlToPlainText.js +101 -0
  81. package/dist/cjs/editor/htmlToPlainText.js.map +1 -0
  82. package/dist/cjs/editor/renderSafeNodes.js +35 -0
  83. package/dist/cjs/editor/renderSafeNodes.js.map +1 -0
  84. package/dist/cjs/editor/safeUrls.js +44 -0
  85. package/dist/cjs/editor/safeUrls.js.map +1 -0
  86. package/dist/cjs/editor/sanitizeHtml.js +140 -0
  87. package/dist/cjs/editor/sanitizeHtml.js.map +1 -0
  88. package/dist/cjs/editor/serializeSafeNodes.js +33 -0
  89. package/dist/cjs/editor/serializeSafeNodes.js.map +1 -0
  90. package/dist/cjs/editor/toolbarLayout.js +35 -0
  91. package/dist/cjs/editor/toolbarLayout.js.map +1 -0
  92. package/dist/cjs/editor/useQuillEditor.js +137 -0
  93. package/dist/cjs/editor/useQuillEditor.js.map +1 -0
  94. package/dist/cjs/file/FileUploadContext.js +13 -0
  95. package/dist/cjs/file/FileUploadContext.js.map +1 -0
  96. package/dist/cjs/file/FileUploadHandlerProvider.js +25 -0
  97. package/dist/cjs/file/FileUploadHandlerProvider.js.map +1 -0
  98. package/dist/cjs/file/FileUploadMode.js +13 -0
  99. package/dist/cjs/file/FileUploadMode.js.map +1 -0
  100. package/dist/cjs/file/PrimeFileUpload.js +161 -0
  101. package/dist/cjs/file/PrimeFileUpload.js.map +1 -0
  102. package/dist/cjs/file/postFiles.js +31 -0
  103. package/dist/cjs/file/postFiles.js.map +1 -0
  104. package/dist/cjs/file/resolveUploadTarget.js +68 -0
  105. package/dist/cjs/file/resolveUploadTarget.js.map +1 -0
  106. package/dist/cjs/file/useUploadSession.js +62 -0
  107. package/dist/cjs/file/useUploadSession.js.map +1 -0
  108. package/dist/cjs/form/MultiStateGlyph.js +59 -0
  109. package/dist/cjs/form/MultiStateGlyph.js.map +1 -0
  110. package/dist/cjs/form/PrimeMultiStateCheckbox.js +123 -0
  111. package/dist/cjs/form/PrimeMultiStateCheckbox.js.map +1 -0
  112. package/dist/cjs/form/multiStateOptions.js +77 -0
  113. package/dist/cjs/form/multiStateOptions.js.map +1 -0
  114. package/dist/cjs/form/multiStateStates.js +32 -0
  115. package/dist/cjs/form/multiStateStates.js.map +1 -0
  116. package/dist/cjs/form/useMultiStateSelection.js +51 -0
  117. package/dist/cjs/form/useMultiStateSelection.js.map +1 -0
  118. package/dist/cjs/index.js +44 -0
  119. package/dist/cjs/index.js.map +1 -1
  120. package/dist/cjs/legacyEnumerationChoices.js +39 -0
  121. package/dist/cjs/legacyEnumerationChoices.js.map +1 -0
  122. package/dist/cjs/loadQuill/index.js +22 -0
  123. package/dist/cjs/loadQuill/index.js.map +1 -0
  124. package/dist/cjs/primeReactComponents.js +15 -0
  125. package/dist/cjs/primeReactComponents.js.map +1 -1
  126. package/dist/cjs/primeReactDescriptors.js +400 -0
  127. package/dist/cjs/primeReactDescriptors.js.map +1 -0
  128. package/dist/cjs/primeReactPackage.js +8 -0
  129. package/dist/cjs/primeReactPackage.js.map +1 -1
  130. package/dist/cjs/properties.js +11 -0
  131. package/dist/cjs/properties.js.map +1 -1
  132. package/dist/cjs/resolveEnumeration.js +55 -0
  133. package/dist/cjs/resolveEnumeration.js.map +1 -0
  134. package/dist/cjs/structurallyEqual.js +27 -0
  135. package/dist/cjs/structurallyEqual.js.map +1 -0
  136. package/dist/cjs/treeNodes.js +42 -7
  137. package/dist/cjs/treeNodes.js.map +1 -1
  138. package/dist/cjs/useResettingState.js +47 -0
  139. package/dist/cjs/useResettingState.js.map +1 -0
  140. package/dist/cjs/useStructuralValue.js +20 -0
  141. package/dist/cjs/useStructuralValue.js.map +1 -0
  142. package/dist/esm/EnumerationResolution.d.ts +9 -0
  143. package/dist/esm/EnumerationResolution.d.ts.map +1 -0
  144. package/dist/esm/EnumerationResolution.js +2 -0
  145. package/dist/esm/EnumerationResolution.js.map +1 -0
  146. package/dist/esm/chart/ChartGallery.stories.d.ts +14 -0
  147. package/dist/esm/chart/ChartGallery.stories.d.ts.map +1 -0
  148. package/dist/esm/chart/ChartGallery.stories.js +47 -0
  149. package/dist/esm/chart/ChartGallery.stories.js.map +1 -0
  150. package/dist/esm/chart/ChartType.d.ts +11 -0
  151. package/dist/esm/chart/ChartType.d.ts.map +1 -0
  152. package/dist/esm/chart/ChartType.js +16 -0
  153. package/dist/esm/chart/ChartType.js.map +1 -0
  154. package/dist/esm/chart/ChartTypeResolution.d.ts +10 -0
  155. package/dist/esm/chart/ChartTypeResolution.d.ts.map +1 -0
  156. package/dist/esm/chart/ChartTypeResolution.js +2 -0
  157. package/dist/esm/chart/ChartTypeResolution.js.map +1 -0
  158. package/dist/esm/chart/PrimeChart.d.ts +3 -0
  159. package/dist/esm/chart/PrimeChart.d.ts.map +1 -0
  160. package/dist/esm/chart/PrimeChart.js +90 -0
  161. package/dist/esm/chart/PrimeChart.js.map +1 -0
  162. package/dist/esm/chart/chartHasData.d.ts +2 -0
  163. package/dist/esm/chart/chartHasData.d.ts.map +1 -0
  164. package/dist/esm/chart/chartHasData.js +22 -0
  165. package/dist/esm/chart/chartHasData.js.map +1 -0
  166. package/dist/esm/chart/chartTypeChoices.d.ts +3 -0
  167. package/dist/esm/chart/chartTypeChoices.d.ts.map +1 -0
  168. package/dist/esm/chart/chartTypeChoices.js +41 -0
  169. package/dist/esm/chart/chartTypeChoices.js.map +1 -0
  170. package/dist/esm/chart/index.d.ts +5 -0
  171. package/dist/esm/chart/index.d.ts.map +1 -0
  172. package/dist/esm/chart/index.js +5 -0
  173. package/dist/esm/chart/index.js.map +1 -0
  174. package/dist/esm/chart/resolveChartType.d.ts +6 -0
  175. package/dist/esm/chart/resolveChartType.d.ts.map +1 -0
  176. package/dist/esm/chart/resolveChartType.js +66 -0
  177. package/dist/esm/chart/resolveChartType.js.map +1 -0
  178. package/dist/esm/chart/useChart.d.ts +4 -0
  179. package/dist/esm/chart/useChart.d.ts.map +1 -0
  180. package/dist/esm/chart/useChart.js +60 -0
  181. package/dist/esm/chart/useChart.js.map +1 -0
  182. package/dist/esm/data/DataGallery.stories.d.ts.map +1 -1
  183. package/dist/esm/data/DataGallery.stories.js +6 -0
  184. package/dist/esm/data/DataGallery.stories.js.map +1 -1
  185. package/dist/esm/data/DataScrollerRow.d.ts +4 -0
  186. package/dist/esm/data/DataScrollerRow.d.ts.map +1 -0
  187. package/dist/esm/data/DataScrollerRow.js +48 -0
  188. package/dist/esm/data/DataScrollerRow.js.map +1 -0
  189. package/dist/esm/data/PrimeDataScroller.d.ts +3 -0
  190. package/dist/esm/data/PrimeDataScroller.d.ts.map +1 -0
  191. package/dist/esm/data/PrimeDataScroller.js +118 -0
  192. package/dist/esm/data/PrimeDataScroller.js.map +1 -0
  193. package/dist/esm/data/PrimeTreeTable.d.ts +3 -0
  194. package/dist/esm/data/PrimeTreeTable.d.ts.map +1 -0
  195. package/dist/esm/data/PrimeTreeTable.js +215 -0
  196. package/dist/esm/data/PrimeTreeTable.js.map +1 -0
  197. package/dist/esm/data/TreeTableCheckState.d.ts +6 -0
  198. package/dist/esm/data/TreeTableCheckState.d.ts.map +1 -0
  199. package/dist/esm/data/TreeTableCheckState.js +11 -0
  200. package/dist/esm/data/TreeTableCheckState.js.map +1 -0
  201. package/dist/esm/data/TreeTableRow.d.ts +10 -0
  202. package/dist/esm/data/TreeTableRow.d.ts.map +1 -0
  203. package/dist/esm/data/TreeTableRow.js +2 -0
  204. package/dist/esm/data/TreeTableRow.js.map +1 -0
  205. package/dist/esm/data/TreeTableRowView.d.ts +21 -0
  206. package/dist/esm/data/TreeTableRowView.d.ts.map +1 -0
  207. package/dist/esm/data/TreeTableRowView.js +74 -0
  208. package/dist/esm/data/TreeTableRowView.js.map +1 -0
  209. package/dist/esm/data/TreeTableSelectionMode.d.ts +7 -0
  210. package/dist/esm/data/TreeTableSelectionMode.d.ts.map +1 -0
  211. package/dist/esm/data/TreeTableSelectionMode.js +12 -0
  212. package/dist/esm/data/TreeTableSelectionMode.js.map +1 -0
  213. package/dist/esm/data/checkboxSelection.d.ts +9 -0
  214. package/dist/esm/data/checkboxSelection.d.ts.map +1 -0
  215. package/dist/esm/data/checkboxSelection.js +85 -0
  216. package/dist/esm/data/checkboxSelection.js.map +1 -0
  217. package/dist/esm/data/index.d.ts +4 -0
  218. package/dist/esm/data/index.d.ts.map +1 -1
  219. package/dist/esm/data/index.js +4 -0
  220. package/dist/esm/data/index.js.map +1 -1
  221. package/dist/esm/data/isSerializedLegacyElement.d.ts +3 -0
  222. package/dist/esm/data/isSerializedLegacyElement.d.ts.map +1 -0
  223. package/dist/esm/data/isSerializedLegacyElement.js +27 -0
  224. package/dist/esm/data/isSerializedLegacyElement.js.map +1 -0
  225. package/dist/esm/data/readableValue.d.ts +2 -0
  226. package/dist/esm/data/readableValue.d.ts.map +1 -0
  227. package/dist/esm/data/readableValue.js +29 -0
  228. package/dist/esm/data/readableValue.js.map +1 -0
  229. package/dist/esm/data/selectionKeysOf.d.ts +2 -0
  230. package/dist/esm/data/selectionKeysOf.d.ts.map +1 -0
  231. package/dist/esm/data/selectionKeysOf.js +38 -0
  232. package/dist/esm/data/selectionKeysOf.js.map +1 -0
  233. package/dist/esm/data/treeTableRows.d.ts +6 -0
  234. package/dist/esm/data/treeTableRows.d.ts.map +1 -0
  235. package/dist/esm/data/treeTableRows.js +38 -0
  236. package/dist/esm/data/treeTableRows.js.map +1 -0
  237. package/dist/esm/data/useIncrementalLoad.d.ts +6 -0
  238. package/dist/esm/data/useIncrementalLoad.d.ts.map +1 -0
  239. package/dist/esm/data/useIncrementalLoad.js +44 -0
  240. package/dist/esm/data/useIncrementalLoad.js.map +1 -0
  241. package/dist/esm/data/useLoadOnReach.d.ts +3 -0
  242. package/dist/esm/data/useLoadOnReach.d.ts.map +1 -0
  243. package/dist/esm/data/useLoadOnReach.js +40 -0
  244. package/dist/esm/data/useLoadOnReach.js.map +1 -0
  245. package/dist/esm/data/useTreeGridNavigation.d.ts +17 -0
  246. package/dist/esm/data/useTreeGridNavigation.d.ts.map +1 -0
  247. package/dist/esm/data/useTreeGridNavigation.js +73 -0
  248. package/dist/esm/data/useTreeGridNavigation.js.map +1 -0
  249. package/dist/esm/editor/PrimeEditor.d.ts +3 -0
  250. package/dist/esm/editor/PrimeEditor.d.ts.map +1 -0
  251. package/dist/esm/editor/PrimeEditor.js +94 -0
  252. package/dist/esm/editor/PrimeEditor.js.map +1 -0
  253. package/dist/esm/editor/QuillConstructor.d.ts +4 -0
  254. package/dist/esm/editor/QuillConstructor.d.ts.map +1 -0
  255. package/dist/esm/editor/QuillConstructor.js +2 -0
  256. package/dist/esm/editor/QuillConstructor.js.map +1 -0
  257. package/dist/esm/editor/QuillEditorOptions.d.ts +13 -0
  258. package/dist/esm/editor/QuillEditorOptions.d.ts.map +1 -0
  259. package/dist/esm/editor/QuillEditorOptions.js +2 -0
  260. package/dist/esm/editor/QuillEditorOptions.js.map +1 -0
  261. package/dist/esm/editor/QuillEditorState.d.ts +6 -0
  262. package/dist/esm/editor/QuillEditorState.d.ts.map +1 -0
  263. package/dist/esm/editor/QuillEditorState.js +2 -0
  264. package/dist/esm/editor/QuillEditorState.js.map +1 -0
  265. package/dist/esm/editor/QuillInstance.d.ts +16 -0
  266. package/dist/esm/editor/QuillInstance.d.ts.map +1 -0
  267. package/dist/esm/editor/QuillInstance.js +2 -0
  268. package/dist/esm/editor/QuillInstance.js.map +1 -0
  269. package/dist/esm/editor/QuillLoader.d.ts +5 -0
  270. package/dist/esm/editor/QuillLoader.d.ts.map +1 -0
  271. package/dist/esm/editor/QuillLoader.js +2 -0
  272. package/dist/esm/editor/QuillLoader.js.map +1 -0
  273. package/dist/esm/editor/QuillLoaderContext.d.ts +3 -0
  274. package/dist/esm/editor/QuillLoaderContext.d.ts.map +1 -0
  275. package/dist/esm/editor/QuillLoaderContext.js +8 -0
  276. package/dist/esm/editor/QuillLoaderContext.js.map +1 -0
  277. package/dist/esm/editor/QuillLoaderProvider.d.ts +8 -0
  278. package/dist/esm/editor/QuillLoaderProvider.d.ts.map +1 -0
  279. package/dist/esm/editor/QuillLoaderProvider.js +19 -0
  280. package/dist/esm/editor/QuillLoaderProvider.js.map +1 -0
  281. package/dist/esm/editor/QuillOptions.d.ts +9 -0
  282. package/dist/esm/editor/QuillOptions.d.ts.map +1 -0
  283. package/dist/esm/editor/QuillOptions.js +2 -0
  284. package/dist/esm/editor/QuillOptions.js.map +1 -0
  285. package/dist/esm/editor/SafeElement.d.ts +7 -0
  286. package/dist/esm/editor/SafeElement.d.ts.map +1 -0
  287. package/dist/esm/editor/SafeElement.js +2 -0
  288. package/dist/esm/editor/SafeElement.js.map +1 -0
  289. package/dist/esm/editor/SafeNode.d.ts +3 -0
  290. package/dist/esm/editor/SafeNode.d.ts.map +1 -0
  291. package/dist/esm/editor/SafeNode.js +2 -0
  292. package/dist/esm/editor/SafeNode.js.map +1 -0
  293. package/dist/esm/editor/applyHtml.d.ts +3 -0
  294. package/dist/esm/editor/applyHtml.d.ts.map +1 -0
  295. package/dist/esm/editor/applyHtml.js +23 -0
  296. package/dist/esm/editor/applyHtml.js.map +1 -0
  297. package/dist/esm/editor/characterCount.d.ts +3 -0
  298. package/dist/esm/editor/characterCount.d.ts.map +1 -0
  299. package/dist/esm/editor/characterCount.js +8 -0
  300. package/dist/esm/editor/characterCount.js.map +1 -0
  301. package/dist/esm/editor/htmlToPlainText.d.ts +2 -0
  302. package/dist/esm/editor/htmlToPlainText.d.ts.map +1 -0
  303. package/dist/esm/editor/htmlToPlainText.js +99 -0
  304. package/dist/esm/editor/htmlToPlainText.js.map +1 -0
  305. package/dist/esm/editor/index.d.ts +14 -0
  306. package/dist/esm/editor/index.d.ts.map +1 -0
  307. package/dist/esm/editor/index.js +14 -0
  308. package/dist/esm/editor/index.js.map +1 -0
  309. package/dist/esm/editor/renderSafeNodes.d.ts +4 -0
  310. package/dist/esm/editor/renderSafeNodes.d.ts.map +1 -0
  311. package/dist/esm/editor/renderSafeNodes.js +33 -0
  312. package/dist/esm/editor/renderSafeNodes.js.map +1 -0
  313. package/dist/esm/editor/safeUrls.d.ts +3 -0
  314. package/dist/esm/editor/safeUrls.d.ts.map +1 -0
  315. package/dist/esm/editor/safeUrls.js +41 -0
  316. package/dist/esm/editor/safeUrls.js.map +1 -0
  317. package/dist/esm/editor/sanitizeHtml.d.ts +3 -0
  318. package/dist/esm/editor/sanitizeHtml.d.ts.map +1 -0
  319. package/dist/esm/editor/sanitizeHtml.js +138 -0
  320. package/dist/esm/editor/sanitizeHtml.js.map +1 -0
  321. package/dist/esm/editor/serializeSafeNodes.d.ts +3 -0
  322. package/dist/esm/editor/serializeSafeNodes.d.ts.map +1 -0
  323. package/dist/esm/editor/serializeSafeNodes.js +31 -0
  324. package/dist/esm/editor/serializeSafeNodes.js.map +1 -0
  325. package/dist/esm/editor/toolbarLayout.d.ts +2 -0
  326. package/dist/esm/editor/toolbarLayout.d.ts.map +1 -0
  327. package/dist/esm/editor/toolbarLayout.js +33 -0
  328. package/dist/esm/editor/toolbarLayout.js.map +1 -0
  329. package/dist/esm/editor/useQuillEditor.d.ts +4 -0
  330. package/dist/esm/editor/useQuillEditor.d.ts.map +1 -0
  331. package/dist/esm/editor/useQuillEditor.js +135 -0
  332. package/dist/esm/editor/useQuillEditor.js.map +1 -0
  333. package/dist/esm/file/FileGallery.stories.d.ts +19 -0
  334. package/dist/esm/file/FileGallery.stories.d.ts.map +1 -0
  335. package/dist/esm/file/FileGallery.stories.js +23 -0
  336. package/dist/esm/file/FileGallery.stories.js.map +1 -0
  337. package/dist/esm/file/FileUploadContext.d.ts +7 -0
  338. package/dist/esm/file/FileUploadContext.d.ts.map +1 -0
  339. package/dist/esm/file/FileUploadContext.js +11 -0
  340. package/dist/esm/file/FileUploadContext.js.map +1 -0
  341. package/dist/esm/file/FileUploadHandler.d.ts +4 -0
  342. package/dist/esm/file/FileUploadHandler.d.ts.map +1 -0
  343. package/dist/esm/file/FileUploadHandler.js +2 -0
  344. package/dist/esm/file/FileUploadHandler.js.map +1 -0
  345. package/dist/esm/file/FileUploadHandlerProvider.d.ts +9 -0
  346. package/dist/esm/file/FileUploadHandlerProvider.d.ts.map +1 -0
  347. package/dist/esm/file/FileUploadHandlerProvider.js +23 -0
  348. package/dist/esm/file/FileUploadHandlerProvider.js.map +1 -0
  349. package/dist/esm/file/FileUploadMode.d.ts +6 -0
  350. package/dist/esm/file/FileUploadMode.d.ts.map +1 -0
  351. package/dist/esm/file/FileUploadMode.js +11 -0
  352. package/dist/esm/file/FileUploadMode.js.map +1 -0
  353. package/dist/esm/file/PrimeFileUpload.d.ts +3 -0
  354. package/dist/esm/file/PrimeFileUpload.d.ts.map +1 -0
  355. package/dist/esm/file/PrimeFileUpload.js +159 -0
  356. package/dist/esm/file/PrimeFileUpload.js.map +1 -0
  357. package/dist/esm/file/UploadStatus.d.ts +5 -0
  358. package/dist/esm/file/UploadStatus.d.ts.map +1 -0
  359. package/dist/esm/file/UploadStatus.js +2 -0
  360. package/dist/esm/file/UploadStatus.js.map +1 -0
  361. package/dist/esm/file/UploadTarget.d.ts +8 -0
  362. package/dist/esm/file/UploadTarget.d.ts.map +1 -0
  363. package/dist/esm/file/UploadTarget.js +2 -0
  364. package/dist/esm/file/UploadTarget.js.map +1 -0
  365. package/dist/esm/file/index.d.ts +7 -0
  366. package/dist/esm/file/index.d.ts.map +1 -0
  367. package/dist/esm/file/index.js +7 -0
  368. package/dist/esm/file/index.js.map +1 -0
  369. package/dist/esm/file/postFiles.d.ts +2 -0
  370. package/dist/esm/file/postFiles.d.ts.map +1 -0
  371. package/dist/esm/file/postFiles.js +29 -0
  372. package/dist/esm/file/postFiles.js.map +1 -0
  373. package/dist/esm/file/resolveUploadTarget.d.ts +3 -0
  374. package/dist/esm/file/resolveUploadTarget.d.ts.map +1 -0
  375. package/dist/esm/file/resolveUploadTarget.js +66 -0
  376. package/dist/esm/file/resolveUploadTarget.js.map +1 -0
  377. package/dist/esm/file/useUploadSession.d.ts +10 -0
  378. package/dist/esm/file/useUploadSession.d.ts.map +1 -0
  379. package/dist/esm/file/useUploadSession.js +60 -0
  380. package/dist/esm/file/useUploadSession.js.map +1 -0
  381. package/dist/esm/form/FormGallery.stories.d.ts.map +1 -1
  382. package/dist/esm/form/FormGallery.stories.js +9 -0
  383. package/dist/esm/form/FormGallery.stories.js.map +1 -1
  384. package/dist/esm/form/MultiStateGlyph.d.ts +8 -0
  385. package/dist/esm/form/MultiStateGlyph.d.ts.map +1 -0
  386. package/dist/esm/form/MultiStateGlyph.js +57 -0
  387. package/dist/esm/form/MultiStateGlyph.js.map +1 -0
  388. package/dist/esm/form/MultiStateOption.d.ts +7 -0
  389. package/dist/esm/form/MultiStateOption.d.ts.map +1 -0
  390. package/dist/esm/form/MultiStateOption.js +2 -0
  391. package/dist/esm/form/MultiStateOption.js.map +1 -0
  392. package/dist/esm/form/PrimeMultiStateCheckbox.d.ts +3 -0
  393. package/dist/esm/form/PrimeMultiStateCheckbox.d.ts.map +1 -0
  394. package/dist/esm/form/PrimeMultiStateCheckbox.js +121 -0
  395. package/dist/esm/form/PrimeMultiStateCheckbox.js.map +1 -0
  396. package/dist/esm/form/index.d.ts +1 -0
  397. package/dist/esm/form/index.d.ts.map +1 -1
  398. package/dist/esm/form/index.js +1 -0
  399. package/dist/esm/form/index.js.map +1 -1
  400. package/dist/esm/form/multiStateOptions.d.ts +4 -0
  401. package/dist/esm/form/multiStateOptions.d.ts.map +1 -0
  402. package/dist/esm/form/multiStateOptions.js +75 -0
  403. package/dist/esm/form/multiStateOptions.js.map +1 -0
  404. package/dist/esm/form/multiStateStates.d.ts +4 -0
  405. package/dist/esm/form/multiStateStates.d.ts.map +1 -0
  406. package/dist/esm/form/multiStateStates.js +30 -0
  407. package/dist/esm/form/multiStateStates.js.map +1 -0
  408. package/dist/esm/form/useMultiStateSelection.d.ts +6 -0
  409. package/dist/esm/form/useMultiStateSelection.d.ts.map +1 -0
  410. package/dist/esm/form/useMultiStateSelection.js +49 -0
  411. package/dist/esm/form/useMultiStateSelection.js.map +1 -0
  412. package/dist/esm/index.d.ts +4 -0
  413. package/dist/esm/index.d.ts.map +1 -1
  414. package/dist/esm/index.js +22 -2
  415. package/dist/esm/index.js.map +1 -1
  416. package/dist/esm/legacyEnumerationChoices.d.ts +3 -0
  417. package/dist/esm/legacyEnumerationChoices.d.ts.map +1 -0
  418. package/dist/esm/legacyEnumerationChoices.js +37 -0
  419. package/dist/esm/legacyEnumerationChoices.js.map +1 -0
  420. package/dist/esm/loadQuill/index.d.ts +3 -0
  421. package/dist/esm/loadQuill/index.d.ts.map +1 -0
  422. package/dist/esm/loadQuill/index.js +20 -0
  423. package/dist/esm/loadQuill/index.js.map +1 -0
  424. package/dist/esm/primeReactComponents.d.ts.map +1 -1
  425. package/dist/esm/primeReactComponents.js +15 -0
  426. package/dist/esm/primeReactComponents.js.map +1 -1
  427. package/dist/esm/primeReactDescriptors.d.ts +3 -0
  428. package/dist/esm/primeReactDescriptors.d.ts.map +1 -0
  429. package/dist/esm/primeReactDescriptors.js +398 -0
  430. package/dist/esm/primeReactDescriptors.js.map +1 -0
  431. package/dist/esm/primeReactPackage.d.ts.map +1 -1
  432. package/dist/esm/primeReactPackage.js +8 -0
  433. package/dist/esm/primeReactPackage.js.map +1 -1
  434. package/dist/esm/properties.d.ts +1 -0
  435. package/dist/esm/properties.d.ts.map +1 -1
  436. package/dist/esm/properties.js +11 -1
  437. package/dist/esm/properties.js.map +1 -1
  438. package/dist/esm/resolveEnumeration.d.ts +3 -0
  439. package/dist/esm/resolveEnumeration.d.ts.map +1 -0
  440. package/dist/esm/resolveEnumeration.js +53 -0
  441. package/dist/esm/resolveEnumeration.js.map +1 -0
  442. package/dist/esm/structurallyEqual.d.ts +2 -0
  443. package/dist/esm/structurallyEqual.d.ts.map +1 -0
  444. package/dist/esm/structurallyEqual.js +25 -0
  445. package/dist/esm/structurallyEqual.js.map +1 -0
  446. package/dist/esm/treeNodes.d.ts +2 -1
  447. package/dist/esm/treeNodes.d.ts.map +1 -1
  448. package/dist/esm/treeNodes.js +42 -8
  449. package/dist/esm/treeNodes.js.map +1 -1
  450. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  451. package/dist/esm/useResettingState.d.ts +3 -0
  452. package/dist/esm/useResettingState.d.ts.map +1 -0
  453. package/dist/esm/useResettingState.js +45 -0
  454. package/dist/esm/useResettingState.js.map +1 -0
  455. package/dist/esm/useStructuralValue.d.ts +2 -0
  456. package/dist/esm/useStructuralValue.d.ts.map +1 -0
  457. package/dist/esm/useStructuralValue.js +18 -0
  458. package/dist/esm/useStructuralValue.js.map +1 -0
  459. package/editor/PrimeEditor.tsx +83 -0
  460. package/editor/QuillConstructor.ts +8 -0
  461. package/editor/QuillEditorOptions.ts +29 -0
  462. package/editor/QuillEditorState.ts +14 -0
  463. package/editor/QuillInstance.ts +27 -0
  464. package/editor/QuillLoader.ts +13 -0
  465. package/editor/QuillLoaderContext.ts +8 -0
  466. package/editor/QuillLoaderProvider.tsx +24 -0
  467. package/editor/QuillOptions.ts +10 -0
  468. package/editor/SafeElement.ts +15 -0
  469. package/editor/SafeNode.ts +7 -0
  470. package/editor/applyHtml.ts +21 -0
  471. package/editor/characterCount.ts +9 -0
  472. package/editor/htmlToPlainText.ts +74 -0
  473. package/editor/index.ts +16 -0
  474. package/editor/renderSafeNodes.tsx +26 -0
  475. package/editor/safeUrls.ts +43 -0
  476. package/editor/sanitizeHtml.ts +94 -0
  477. package/editor/serializeSafeNodes.ts +26 -0
  478. package/editor/toolbarLayout.ts +10 -0
  479. package/editor/useQuillEditor.ts +114 -0
  480. package/file/FileGallery.stories.tsx +32 -0
  481. package/file/FileUploadContext.ts +17 -0
  482. package/file/FileUploadHandler.ts +15 -0
  483. package/file/FileUploadHandlerProvider.tsx +33 -0
  484. package/file/FileUploadMode.ts +9 -0
  485. package/file/PrimeFileUpload.tsx +129 -0
  486. package/file/UploadStatus.ts +9 -0
  487. package/file/UploadTarget.ts +12 -0
  488. package/file/index.ts +9 -0
  489. package/file/postFiles.ts +23 -0
  490. package/file/resolveUploadTarget.ts +61 -0
  491. package/file/useUploadSession.ts +67 -0
  492. package/form/FormGallery.stories.tsx +9 -0
  493. package/form/MultiStateGlyph.tsx +55 -0
  494. package/form/MultiStateOption.ts +17 -0
  495. package/form/PrimeMultiStateCheckbox.tsx +101 -0
  496. package/form/index.ts +1 -0
  497. package/form/multiStateOptions.ts +78 -0
  498. package/form/multiStateStates.ts +23 -0
  499. package/form/useMultiStateSelection.ts +48 -0
  500. package/index.ts +4 -0
  501. package/legacyEnumerationChoices.ts +35 -0
  502. package/loadQuill/index.ts +21 -0
  503. package/package.json +27 -7
  504. package/primeReactComponents.ts +12 -0
  505. package/primeReactDescriptors.ts +111 -0
  506. package/primeReactPackage.ts +5 -3
  507. package/primeReactTheme.css +69 -0
  508. package/properties.ts +14 -0
  509. package/resolveEnumeration.ts +50 -0
  510. package/structurallyEqual.ts +29 -0
  511. package/treeNodes.ts +44 -6
  512. package/useResettingState.ts +34 -0
  513. package/useStructuralValue.ts +17 -0
@@ -0,0 +1,7 @@
1
+ import { IconReference } from '@cratis/scene.model';
2
+ export interface MultiStateOption {
3
+ label: string;
4
+ value: unknown;
5
+ icon?: string | IconReference;
6
+ }
7
+ //# sourceMappingURL=MultiStateOption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiStateOption.d.ts","sourceRoot":"","sources":["../../../form/MultiStateOption.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AASpD,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;CACjC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=MultiStateOption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiStateOption.js","sourceRoot":"","sources":["../../../form/MultiStateOption.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { RegisteredComponentProps } from '@cratis/scene.react';
2
+ export declare function PrimeMultiStateCheckbox({ element, interactions }: RegisteredComponentProps): import("react").JSX.Element;
3
+ //# sourceMappingURL=PrimeMultiStateCheckbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrimeMultiStateCheckbox.d.ts","sourceRoot":"","sources":["../../../form/PrimeMultiStateCheckbox.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AA6B/D,wBAAgB,uBAAuB,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,wBAAwB,+BAqD1F"}
@@ -0,0 +1,121 @@
1
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
+ import { useId, useState } from 'react';
3
+ import { isIconReference } from '@cratis/scene.model';
4
+ import { booleanProperty, stringProperty } from '../properties.js';
5
+ import { MultiStateGlyph } from './MultiStateGlyph.js';
6
+ import { multiStateOptions } from './multiStateOptions.js';
7
+ import { multiStateStates } from './multiStateStates.js';
8
+ import { useMultiStateSelection } from './useMultiStateSelection.js';
9
+
10
+ const visuallyHidden = {
11
+ position: 'absolute',
12
+ width: 1,
13
+ height: 1,
14
+ margin: -1,
15
+ padding: 0,
16
+ overflow: 'hidden',
17
+ clip: 'rect(0 0 0 0)',
18
+ whiteSpace: 'nowrap',
19
+ border: 0
20
+ };
21
+ /**
22
+ * The `PrimeReact:multiStateCheckbox` component.
23
+ *
24
+ * PrimeReact 11 removed MultiStateCheckbox, so Scene renders its original behavior with a native button.
25
+ * It cycles through the authored states in order, including the optional empty (`null`) state, and keeps
26
+ * option values and icons exactly as the element carries them. Each click moves one step; the position is
27
+ * an index, so duplicated or `null` option values do not make later states unreachable.
28
+ *
29
+ * Accessibility: a state cycle is not a true/false choice, so the control does not claim `checkbox`
30
+ * semantics (every non-empty state would announce as "checked"). It is a button whose name is the authored
31
+ * `ariaLabel`, whose description is the current state, and whose state changes are announced through a
32
+ * polite live region. `readOnly` keeps the control focusable and unchanged; `disabled` removes it from the
33
+ * tab order.
34
+ *
35
+ * The control follows the document: a changed `value` or `options` restarts the cycle from the new value,
36
+ * so an inspector edit is reflected immediately. It does not report its own selection to behaviors -
37
+ * Scene's interaction handlers carry no value.
38
+ */ function PrimeMultiStateCheckbox({ element, interactions }) {
39
+ const stateId = useId();
40
+ const allowEmpty = booleanProperty(element, 'empty', true);
41
+ const emptyLabel = stringProperty(element, 'emptyLabel', 'No selection');
42
+ const emptyIcon = element.properties.emptyIcon;
43
+ const states = multiStateStates(multiStateOptions(element, emptyLabel), allowEmpty, emptyLabel, typeof emptyIcon === 'string' || isIconReference(emptyIcon) ? emptyIcon : undefined);
44
+ const authored = element.properties.value;
45
+ const { index, advance } = useMultiStateSelection(states, authored === undefined && allowEmpty ? null : authored);
46
+ const [focused, setFocused] = useState(false);
47
+ const selected = states[index];
48
+ const readOnly = booleanProperty(element, 'readOnly', false);
49
+ const disabled = !element.isEnabled || booleanProperty(element, 'disabled', false) || states.length === 0;
50
+ const ariaLabel = stringProperty(element, 'ariaLabel', element.name || 'Multi-state checkbox');
51
+ const stateText = selected?.label ?? stringProperty(element, 'placeholder', unmatchedText(states.length, authored, emptyLabel));
52
+ return /*#__PURE__*/ jsxs(Fragment, {
53
+ children: [
54
+ /*#__PURE__*/ jsxs("button", {
55
+ type: "button",
56
+ "data-scene-id": element.id,
57
+ "data-scene-component": "multiStateCheckbox",
58
+ "data-scene-state-index": index,
59
+ "aria-label": ariaLabel,
60
+ "aria-describedby": stateId,
61
+ "aria-disabled": readOnly ? true : undefined,
62
+ disabled: disabled,
63
+ style: {
64
+ display: 'inline-flex',
65
+ alignItems: 'center',
66
+ gap: '0.5rem',
67
+ padding: 0,
68
+ border: 0,
69
+ background: 'none',
70
+ font: 'inherit',
71
+ color: 'inherit',
72
+ cursor: disabled ? 'not-allowed' : readOnly ? 'default' : 'pointer',
73
+ opacity: disabled ? 0.6 : 1,
74
+ outline: focused ? 'var(--p-focus-ring-width, 2px) var(--p-focus-ring-style, solid) var(--p-focus-ring-color, currentColor)' : 'none',
75
+ outlineOffset: 'var(--p-focus-ring-offset, 2px)'
76
+ },
77
+ onFocus: (event)=>setFocused(isFocusVisible(event.currentTarget)),
78
+ onBlur: ()=>setFocused(false),
79
+ onClick: (event)=>{
80
+ if (!readOnly) advance();
81
+ interactions?.onClick?.(event);
82
+ if (readOnly) return;
83
+ interactions?.onChange?.();
84
+ interactions?.onSelect?.();
85
+ },
86
+ onDoubleClick: interactions?.onDoubleClick,
87
+ children: [
88
+ /*#__PURE__*/ jsx(MultiStateGlyph, {
89
+ state: selected,
90
+ isEmpty: selected === undefined || selected.value === null,
91
+ isInactive: disabled || readOnly
92
+ }),
93
+ /*#__PURE__*/ jsx("span", {
94
+ "aria-hidden": "true",
95
+ children: stateText
96
+ })
97
+ ]
98
+ }),
99
+ /*#__PURE__*/ jsx("span", {
100
+ id: stateId,
101
+ role: "status",
102
+ style: visuallyHidden,
103
+ children: stateText
104
+ })
105
+ ]
106
+ });
107
+ }
108
+ function unmatchedText(stateCount, authored, emptyLabel) {
109
+ if (stateCount === 0) return 'No states';
110
+ return authored === undefined ? emptyLabel : 'No matching state';
111
+ }
112
+ function isFocusVisible(target) {
113
+ try {
114
+ return target.matches(':focus-visible');
115
+ } catch {
116
+ return true;
117
+ }
118
+ }
119
+
120
+ export { PrimeMultiStateCheckbox };
121
+ //# sourceMappingURL=PrimeMultiStateCheckbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrimeMultiStateCheckbox.js","sources":["../../../form/PrimeMultiStateCheckbox.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 { CSSProperties, useId, useState } from 'react';\nimport { isIconReference } from '@cratis/scene.model';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { booleanProperty, stringProperty } from '../properties';\nimport { MultiStateGlyph } from './MultiStateGlyph';\nimport { multiStateOptions } from './multiStateOptions';\nimport { multiStateStates } from './multiStateStates';\nimport { useMultiStateSelection } from './useMultiStateSelection';\n\nconst visuallyHidden: CSSProperties = {\n position: 'absolute', width: 1, height: 1, margin: -1, padding: 0, overflow: 'hidden', clip: 'rect(0 0 0 0)', whiteSpace: 'nowrap', border: 0,\n};\n\n/**\n * The `PrimeReact:multiStateCheckbox` component.\n *\n * PrimeReact 11 removed MultiStateCheckbox, so Scene renders its original behavior with a native button.\n * It cycles through the authored states in order, including the optional empty (`null`) state, and keeps\n * option values and icons exactly as the element carries them. Each click moves one step; the position is\n * an index, so duplicated or `null` option values do not make later states unreachable.\n *\n * Accessibility: a state cycle is not a true/false choice, so the control does not claim `checkbox`\n * semantics (every non-empty state would announce as \"checked\"). It is a button whose name is the authored\n * `ariaLabel`, whose description is the current state, and whose state changes are announced through a\n * polite live region. `readOnly` keeps the control focusable and unchanged; `disabled` removes it from the\n * tab order.\n *\n * The control follows the document: a changed `value` or `options` restarts the cycle from the new value,\n * so an inspector edit is reflected immediately. It does not report its own selection to behaviors -\n * Scene's interaction handlers carry no value.\n */\nexport function PrimeMultiStateCheckbox({ element, interactions }: RegisteredComponentProps) {\n const stateId = useId();\n const allowEmpty = booleanProperty(element, 'empty', true);\n const emptyLabel = stringProperty(element, 'emptyLabel', 'No selection');\n const emptyIcon = element.properties.emptyIcon;\n const states = multiStateStates(\n multiStateOptions(element, emptyLabel),\n allowEmpty,\n emptyLabel,\n typeof emptyIcon === 'string' || isIconReference(emptyIcon) ? emptyIcon : undefined);\n const authored = element.properties.value;\n const { index, advance } = useMultiStateSelection(states, authored === undefined && allowEmpty ? null : authored);\n const [focused, setFocused] = useState(false);\n\n const selected = states[index];\n const readOnly = booleanProperty(element, 'readOnly', false);\n const disabled = !element.isEnabled || booleanProperty(element, 'disabled', false) || states.length === 0;\n const ariaLabel = stringProperty(element, 'ariaLabel', element.name || 'Multi-state checkbox');\n const stateText = selected?.label ?? stringProperty(element, 'placeholder', unmatchedText(states.length, authored, emptyLabel));\n\n return (\n <>\n <button\n type='button'\n data-scene-id={element.id}\n data-scene-component='multiStateCheckbox'\n data-scene-state-index={index}\n aria-label={ariaLabel}\n aria-describedby={stateId}\n aria-disabled={readOnly ? true : undefined}\n disabled={disabled}\n style={{\n display: 'inline-flex', alignItems: 'center', gap: '0.5rem', padding: 0, border: 0, background: 'none', font: 'inherit',\n color: 'inherit', cursor: disabled ? 'not-allowed' : readOnly ? 'default' : 'pointer', opacity: disabled ? 0.6 : 1,\n outline: focused ? 'var(--p-focus-ring-width, 2px) var(--p-focus-ring-style, solid) var(--p-focus-ring-color, currentColor)' : 'none',\n outlineOffset: 'var(--p-focus-ring-offset, 2px)',\n }}\n onFocus={(event) => setFocused(isFocusVisible(event.currentTarget))}\n onBlur={() => setFocused(false)}\n onClick={(event) => {\n if (!readOnly) advance();\n interactions?.onClick?.(event);\n if (readOnly) return;\n interactions?.onChange?.();\n interactions?.onSelect?.();\n }}\n onDoubleClick={interactions?.onDoubleClick}>\n <MultiStateGlyph state={selected} isEmpty={selected === undefined || selected.value === null} isInactive={disabled || readOnly} />\n <span aria-hidden='true'>{stateText}</span>\n </button>\n <span id={stateId} role='status' style={visuallyHidden}>{stateText}</span>\n </>\n );\n}\n\nfunction unmatchedText(stateCount: number, authored: unknown, emptyLabel: string): string {\n if (stateCount === 0) return 'No states';\n return authored === undefined ? emptyLabel : 'No matching state';\n}\n\nfunction isFocusVisible(target: HTMLElement): boolean {\n try {\n return target.matches(':focus-visible');\n } catch {\n return true;\n }\n}\n"],"names":["visuallyHidden","position","width","height","margin","padding","overflow","clip","whiteSpace","border","PrimeMultiStateCheckbox","element","interactions","stateId","useId","allowEmpty","booleanProperty","emptyLabel","stringProperty","emptyIcon","properties","states","multiStateStates","multiStateOptions","isIconReference","undefined","authored","value","index","advance","useMultiStateSelection","focused","setFocused","useState","selected","readOnly","disabled","isEnabled","length","ariaLabel","name","stateText","label","unmatchedText","_jsxs","_Fragment","button","type","data-scene-id","id","data-scene-component","data-scene-state-index","aria-label","aria-describedby","aria-disabled","style","display","alignItems","gap","background","font","color","cursor","opacity","outline","outlineOffset","onFocus","event","isFocusVisible","currentTarget","onBlur","onClick","onChange","onSelect","onDoubleClick","_jsx","MultiStateGlyph","state","isEmpty","isInactive","span","aria-hidden","role","stateCount","target","matches"],"mappings":"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"}
@@ -9,6 +9,7 @@ export * from './PrimeMultiSelect';
9
9
  export * from './PrimeListBox';
10
10
  export * from './PrimeSelectButton';
11
11
  export * from './PrimeCheckbox';
12
+ export * from './PrimeMultiStateCheckbox';
12
13
  export * from './PrimeRadioButton';
13
14
  export * from './PrimeToggleSwitch';
14
15
  export * from './PrimeSlider';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../form/index.ts"],"names":[],"mappings":"AAGA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../form/index.ts"],"names":[],"mappings":"AAGA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC"}
@@ -9,6 +9,7 @@ export * from './PrimeMultiSelect';
9
9
  export * from './PrimeListBox';
10
10
  export * from './PrimeSelectButton';
11
11
  export * from './PrimeCheckbox';
12
+ export * from './PrimeMultiStateCheckbox';
12
13
  export * from './PrimeRadioButton';
13
14
  export * from './PrimeToggleSwitch';
14
15
  export * from './PrimeSlider';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../form/index.ts"],"names":[],"mappings":"AAGA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../form/index.ts"],"names":[],"mappings":"AAGA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { SceneElement } from '@cratis/scene.model';
2
+ import { MultiStateOption } from './MultiStateOption';
3
+ export declare function multiStateOptions(element: SceneElement, emptyLabel: string): MultiStateOption[];
4
+ //# sourceMappingURL=multiStateOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiStateOptions.d.ts","sourceRoot":"","sources":["../../../form/multiStateOptions.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAmB,MAAM,qBAAqB,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAgBtD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAY/F"}
@@ -0,0 +1,75 @@
1
+ import { isIconReference } from '@cratis/scene.model';
2
+ import { stringProperty, arrayProperty } from '../properties.js';
3
+
4
+ // Copyright (c) Cratis. All rights reserved.
5
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
6
+ /**
7
+ * Reads multi-state options without reshaping their values, dropping any of them, or changing their order.
8
+ *
9
+ * This follows the original PrimeReact control. An option that is a record gives its value through
10
+ * `optionValue` (default, and when that field is absent: its `value` field, and the whole option when it has none) and its label through
11
+ * `optionLabel` (default: its `label` field). Any other option - a string, number, boolean, `null` or an
12
+ * array - is its own value. A label that is not text is shown as its JSON, so a numeric or boolean label,
13
+ * or an option with no label at all, still produces a state the user can reach. A `null` value with no
14
+ * label of its own is labeled with `emptyLabel`.
15
+ *
16
+ * A state's icon is, in order: the option's own `icon`, then the entry of the element's `icons` that is
17
+ * aligned with the option (an array) or keyed by its value (an object). Either may be a PrimeIcons class
18
+ * name, kept for legacy documents, or a qualified {@link IconReference}.
19
+ */ function multiStateOptions(element, emptyLabel) {
20
+ const labelPath = stringProperty(element, 'optionLabel');
21
+ const valuePath = stringProperty(element, 'optionValue');
22
+ const icons = element.properties.icons;
23
+ return arrayProperty(element, 'options').map((option, index)=>{
24
+ const record = isRecord(option) ? option : undefined;
25
+ const value = record === undefined ? option : valueOf(record, valuePath);
26
+ const label = record === undefined ? undefined : resolvePath(record, labelPath ?? 'label');
27
+ const icon = toIcon(record?.icon) ?? iconAt(icons, value, index);
28
+ return {
29
+ label: labelText(label, value, emptyLabel),
30
+ value,
31
+ ...icon === undefined ? {} : {
32
+ icon
33
+ }
34
+ };
35
+ });
36
+ }
37
+ function valueOf(record, valuePath) {
38
+ const authored = valuePath === undefined ? undefined : resolvePath(record, valuePath);
39
+ if (authored !== undefined) return authored;
40
+ return record.value !== undefined ? record.value : record;
41
+ }
42
+ function resolvePath(record, path) {
43
+ if (Object.hasOwn(record, path)) return record[path];
44
+ let current = record;
45
+ for (const segment of path.split('.')){
46
+ if (!isRecord(current) || !Object.hasOwn(current, segment)) return undefined;
47
+ current = current[segment];
48
+ }
49
+ return current;
50
+ }
51
+ function labelText(label, value, emptyLabel) {
52
+ if (typeof label === 'string' && label.length > 0) return label;
53
+ if (label !== undefined && label !== null && label !== '') return display(label);
54
+ return value === null ? emptyLabel : display(value);
55
+ }
56
+ function display(value) {
57
+ const text = typeof value === 'string' ? value : JSON.stringify(value) ?? String(value);
58
+ return text === '' ? '""' : text;
59
+ }
60
+ function toIcon(candidate) {
61
+ if (typeof candidate === 'string' && candidate.length > 0) return candidate;
62
+ return isIconReference(candidate) ? candidate : undefined;
63
+ }
64
+ function iconAt(icons, value, index) {
65
+ if (Array.isArray(icons)) return toIcon(icons[index]);
66
+ if (!isRecord(icons)) return undefined;
67
+ const isKey = value === null || typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';
68
+ return isKey ? toIcon(icons[String(value)]) : undefined;
69
+ }
70
+ function isRecord(value) {
71
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
72
+ }
73
+
74
+ export { multiStateOptions };
75
+ //# sourceMappingURL=multiStateOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiStateOptions.js","sources":["../../../form/multiStateOptions.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 { SceneElement, isIconReference } from '@cratis/scene.model';\nimport { arrayProperty, stringProperty } from '../properties';\nimport { MultiStateOption } from './MultiStateOption';\n\n/**\n * Reads multi-state options without reshaping their values, dropping any of them, or changing their order.\n *\n * This follows the original PrimeReact control. An option that is a record gives its value through\n * `optionValue` (default, and when that field is absent: its `value` field, and the whole option when it has none) and its label through\n * `optionLabel` (default: its `label` field). Any other option - a string, number, boolean, `null` or an\n * array - is its own value. A label that is not text is shown as its JSON, so a numeric or boolean label,\n * or an option with no label at all, still produces a state the user can reach. A `null` value with no\n * label of its own is labeled with `emptyLabel`.\n *\n * A state's icon is, in order: the option's own `icon`, then the entry of the element's `icons` that is\n * aligned with the option (an array) or keyed by its value (an object). Either may be a PrimeIcons class\n * name, kept for legacy documents, or a qualified {@link IconReference}.\n */\nexport function multiStateOptions(element: SceneElement, emptyLabel: string): MultiStateOption[] {\n const labelPath = stringProperty(element, 'optionLabel');\n const valuePath = stringProperty(element, 'optionValue');\n const icons = element.properties.icons;\n\n return arrayProperty(element, 'options').map((option, index) => {\n const record = isRecord(option) ? option : undefined;\n const value = record === undefined ? option : valueOf(record, valuePath);\n const label = record === undefined ? undefined : resolvePath(record, labelPath ?? 'label');\n const icon = toIcon(record?.icon) ?? iconAt(icons, value, index);\n return { label: labelText(label, value, emptyLabel), value, ...(icon === undefined ? {} : { icon }) };\n });\n}\n\nfunction valueOf(record: Record<string, unknown>, valuePath: string | undefined): unknown {\n const authored = valuePath === undefined ? undefined : resolvePath(record, valuePath);\n if (authored !== undefined) return authored;\n return record.value !== undefined ? record.value : record;\n}\n\nfunction resolvePath(record: Record<string, unknown>, path: string): unknown {\n if (Object.hasOwn(record, path)) return record[path];\n let current: unknown = record;\n for (const segment of path.split('.')) {\n if (!isRecord(current) || !Object.hasOwn(current, segment)) return undefined;\n current = current[segment];\n }\n return current;\n}\n\nfunction labelText(label: unknown, value: unknown, emptyLabel: string): string {\n if (typeof label === 'string' && label.length > 0) return label;\n if (label !== undefined && label !== null && label !== '') return display(label);\n return value === null ? emptyLabel : display(value);\n}\n\nfunction display(value: unknown): string {\n const text = typeof value === 'string' ? value : JSON.stringify(value) ?? String(value);\n return text === '' ? '\"\"' : text;\n}\n\nfunction toIcon(candidate: unknown): MultiStateOption['icon'] {\n if (typeof candidate === 'string' && candidate.length > 0) return candidate;\n return isIconReference(candidate) ? candidate : undefined;\n}\n\nfunction iconAt(icons: unknown, value: unknown, index: number): MultiStateOption['icon'] {\n if (Array.isArray(icons)) return toIcon(icons[index]);\n if (!isRecord(icons)) return undefined;\n\n const isKey = value === null || typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';\n return isKey ? toIcon(icons[String(value)]) : undefined;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n"],"names":["multiStateOptions","element","emptyLabel","labelPath","stringProperty","valuePath","icons","properties","arrayProperty","map","option","index","record","isRecord","undefined","value","valueOf","label","resolvePath","icon","toIcon","iconAt","labelText","authored","path","Object","hasOwn","current","segment","split","length","display","text","JSON","stringify","String","candidate","isIconReference","Array","isArray","isKey"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { IconReference } from '@cratis/scene.model';
2
+ import { MultiStateOption } from './MultiStateOption';
3
+ export declare function multiStateStates(options: MultiStateOption[], allowEmpty: boolean, emptyLabel: string, emptyIcon: string | IconReference | undefined): MultiStateOption[];
4
+ //# sourceMappingURL=multiStateStates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiStateStates.d.ts","sourceRoot":"","sources":["../../../form/multiStateStates.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAetD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,GAAG,gBAAgB,EAAE,CAGxK"}
@@ -0,0 +1,30 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ /**
4
+ * Builds the ordered states a multi-state checkbox cycles through.
5
+ *
6
+ * With the empty state allowed, a state whose value is `null` comes first - unless an authored option
7
+ * already has the value `null`, in which case that option *is* the empty state and keeps its authored
8
+ * position, label and icon. Adding a second `null` state would leave two states with one value, and a
9
+ * control that finds its place by value could then never move past the first of them.
10
+ *
11
+ * @param options The authored options, in order.
12
+ * @param allowEmpty Whether a `null` state is available.
13
+ * @param emptyLabel The label of the synthesized empty state.
14
+ * @param emptyIcon The icon of the synthesized empty state.
15
+ */ function multiStateStates(options, allowEmpty, emptyLabel, emptyIcon) {
16
+ if (!allowEmpty || options.some((option)=>option.value === null)) return options;
17
+ return [
18
+ {
19
+ label: emptyLabel,
20
+ value: null,
21
+ ...emptyIcon === undefined ? {} : {
22
+ icon: emptyIcon
23
+ }
24
+ },
25
+ ...options
26
+ ];
27
+ }
28
+
29
+ export { multiStateStates };
30
+ //# sourceMappingURL=multiStateStates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiStateStates.js","sources":["../../../form/multiStateStates.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 { IconReference } from '@cratis/scene.model';\nimport { MultiStateOption } from './MultiStateOption';\n\n/**\n * Builds the ordered states a multi-state checkbox cycles through.\n *\n * With the empty state allowed, a state whose value is `null` comes first - unless an authored option\n * already has the value `null`, in which case that option *is* the empty state and keeps its authored\n * position, label and icon. Adding a second `null` state would leave two states with one value, and a\n * control that finds its place by value could then never move past the first of them.\n *\n * @param options The authored options, in order.\n * @param allowEmpty Whether a `null` state is available.\n * @param emptyLabel The label of the synthesized empty state.\n * @param emptyIcon The icon of the synthesized empty state.\n */\nexport function multiStateStates(options: MultiStateOption[], allowEmpty: boolean, emptyLabel: string, emptyIcon: string | IconReference | undefined): MultiStateOption[] {\n if (!allowEmpty || options.some(option => option.value === null)) return options;\n return [{ label: emptyLabel, value: null, ...(emptyIcon === undefined ? {} : { icon: emptyIcon }) }, ...options];\n}\n"],"names":["multiStateStates","options","allowEmpty","emptyLabel","emptyIcon","some","option","value","label","undefined","icon"],"mappings":"AAAA;AACA;AAKA;;;;;;;;;;;;IAaO,SAASA,gBAAAA,CAAiBC,OAA2B,EAAEC,UAAmB,EAAEC,UAAkB,EAAEC,SAA6C,EAAA;IAChJ,IAAI,CAACF,UAAAA,IAAcD,OAAAA,CAAQI,IAAI,CAACC,CAAAA,MAAAA,GAAUA,MAAAA,CAAOC,KAAK,KAAK,IAAA,CAAA,EAAO,OAAON,OAAAA;IACzE,OAAO;AAAC,QAAA;YAAEO,KAAAA,EAAOL,UAAAA;YAAYI,KAAAA,EAAO,IAAA;YAAM,GAAIH,SAAAA,KAAcK,SAAAA,GAAY,EAAC,GAAI;gBAAEC,IAAAA,EAAMN;;AAAa,SAAA;AAAMH,QAAAA,GAAAA;AAAQ,KAAA;AACpH;;"}
@@ -0,0 +1,6 @@
1
+ import { MultiStateOption } from './MultiStateOption';
2
+ export declare function useMultiStateSelection(states: MultiStateOption[], value: unknown): {
3
+ index: number;
4
+ advance(): number;
5
+ };
6
+ //# sourceMappingURL=useMultiStateSelection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMultiStateSelection.d.ts","sourceRoot":"","sources":["../../../form/useMultiStateSelection.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAwBtD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,IAAI,MAAM,CAAA;CAAE,CAkBvH"}
@@ -0,0 +1,49 @@
1
+ import { useState } from 'react';
2
+ import { structurallyEqual } from '../structurallyEqual.js';
3
+
4
+ // Copyright (c) Cratis. All rights reserved.
5
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
6
+ /**
7
+ * The state a multi-state checkbox is in, as an index into its states.
8
+ *
9
+ * The position is tracked by index, not recovered by looking the current value up: several states can
10
+ * share a value (a duplicated option), and a lookup by value always finds the first of them, which would
11
+ * make every later state unreachable. The index follows the cycle; the value is only used to find the
12
+ * starting position.
13
+ *
14
+ * The control is driven by the document as well as by the user. When the authored `value` or the states
15
+ * change in content - an edit in the inspector, a hydrated document - the selection starts again from the
16
+ * new value. A document clone with equal content changes nothing, so the user's position survives it.
17
+ *
18
+ * @param states The states, in cycle order.
19
+ * @param value The authored current value.
20
+ * @returns The selected index (`-1` when the value matches no state) and a function that moves to the next.
21
+ */ function useMultiStateSelection(states, value) {
22
+ const values = states.map((state)=>state.value);
23
+ const start = ()=>({
24
+ source: value,
25
+ values,
26
+ index: values.findIndex((candidate)=>structurallyEqual(candidate, value))
27
+ });
28
+ const [selection, setSelection] = useState(start);
29
+ let current = selection;
30
+ if (!structurallyEqual(selection.source, value) || !structurallyEqual(selection.values, values)) {
31
+ current = start();
32
+ setSelection(current);
33
+ }
34
+ const advance = ()=>{
35
+ const index = states.length === 0 ? -1 : (current.index + 1) % states.length;
36
+ setSelection({
37
+ ...current,
38
+ index
39
+ });
40
+ return index;
41
+ };
42
+ return {
43
+ index: current.index,
44
+ advance
45
+ };
46
+ }
47
+
48
+ export { useMultiStateSelection };
49
+ //# sourceMappingURL=useMultiStateSelection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMultiStateSelection.js","sources":["../../../form/useMultiStateSelection.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 { useState } from 'react';\nimport { structurallyEqual } from '../structurallyEqual';\nimport { MultiStateOption } from './MultiStateOption';\n\ninterface Selection {\n source: unknown;\n values: unknown[];\n index: number;\n}\n\n/**\n * The state a multi-state checkbox is in, as an index into its states.\n *\n * The position is tracked by index, not recovered by looking the current value up: several states can\n * share a value (a duplicated option), and a lookup by value always finds the first of them, which would\n * make every later state unreachable. The index follows the cycle; the value is only used to find the\n * starting position.\n *\n * The control is driven by the document as well as by the user. When the authored `value` or the states\n * change in content - an edit in the inspector, a hydrated document - the selection starts again from the\n * new value. A document clone with equal content changes nothing, so the user's position survives it.\n *\n * @param states The states, in cycle order.\n * @param value The authored current value.\n * @returns The selected index (`-1` when the value matches no state) and a function that moves to the next.\n */\nexport function useMultiStateSelection(states: MultiStateOption[], value: unknown): { index: number; advance(): number } {\n const values = states.map(state => state.value);\n const start = (): Selection => ({ source: value, values, index: values.findIndex(candidate => structurallyEqual(candidate, value)) });\n const [selection, setSelection] = useState<Selection>(start);\n\n let current = selection;\n if (!structurallyEqual(selection.source, value) || !structurallyEqual(selection.values, values)) {\n current = start();\n setSelection(current);\n }\n\n const advance = () => {\n const index = states.length === 0 ? -1 : (current.index + 1) % states.length;\n setSelection({ ...current, index });\n return index;\n };\n\n return { index: current.index, advance };\n}\n"],"names":["useMultiStateSelection","states","value","values","map","state","start","source","index","findIndex","candidate","structurallyEqual","selection","setSelection","useState","current","advance","length"],"mappings":";;;AAAA;AACA;AAYA;;;;;;;;;;;;;;;AAeC,IACM,SAASA,sBAAAA,CAAuBC,MAA0B,EAAEC,KAAc,EAAA;AAC7E,IAAA,MAAMC,SAASF,MAAAA,CAAOG,GAAG,CAACC,CAAAA,KAAAA,GAASA,MAAMH,KAAK,CAAA;IAC9C,MAAMI,KAAAA,GAAQ,KAAkB;YAAEC,MAAAA,EAAQL,KAAAA;AAAOC,YAAAA,MAAAA;AAAQK,YAAAA,KAAAA,EAAOL,OAAOM,SAAS,CAACC,CAAAA,SAAAA,GAAaC,kBAAkBD,SAAAA,EAAWR,KAAAA,CAAAA;SAAQ,CAAA;AACnI,IAAA,MAAM,CAACU,SAAAA,EAAWC,YAAAA,CAAa,GAAGC,QAAAA,CAAoBR,KAAAA,CAAAA;AAEtD,IAAA,IAAIS,OAAAA,GAAUH,SAAAA;IACd,IAAI,CAACD,iBAAAA,CAAkBC,SAAAA,CAAUL,MAAM,EAAEL,KAAAA,CAAAA,IAAU,CAACS,iBAAAA,CAAkBC,SAAAA,CAAUT,MAAM,EAAEA,MAAAA,CAAAA,EAAS;QAC7FY,OAAAA,GAAUT,KAAAA,EAAAA;QACVO,YAAAA,CAAaE,OAAAA,CAAAA;AACjB,IAAA;AAEA,IAAA,MAAMC,OAAAA,GAAU,IAAA;AACZ,QAAA,MAAMR,KAAAA,GAAQP,MAAAA,CAAOgB,MAAM,KAAK,IAAI,EAAC,GAAI,CAACF,QAAQP,KAAK,GAAG,CAAA,IAAKP,OAAOgB,MAAM;QAC5EJ,YAAAA,CAAa;AAAE,YAAA,GAAGE,OAAO;AAAEP,YAAAA;AAAM,SAAA,CAAA;QACjC,OAAOA,KAAAA;AACX,IAAA,CAAA;IAEA,OAAO;AAAEA,QAAAA,KAAAA,EAAOO,QAAQP,KAAK;AAAEQ,QAAAA;AAAQ,KAAA;AAC3C;;"}
@@ -7,6 +7,9 @@ export * from './menuItems';
7
7
  export * from './treeNodes';
8
8
  export * from './button';
9
9
  export * from './form';
10
+ export * from './editor';
11
+ export * from './file';
12
+ export * from './chart';
10
13
  export * from './data';
11
14
  export * from './panel';
12
15
  export * from './overlay';
@@ -17,5 +20,6 @@ export * from './misc';
17
20
  export * from './screen';
18
21
  export * from './theme';
19
22
  export * from './primeReactComponents';
23
+ export * from './primeReactDescriptors';
20
24
  export * from './primeReactPackage';
21
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAGA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAGA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC"}
package/dist/esm/index.js CHANGED
@@ -1,6 +1,6 @@
1
- export { arrayProperty, booleanProperty, numberProperty, optionsProperty, recordArrayProperty, severityProperty, stringArrayProperty, stringProperty } from './properties.js';
1
+ export { arrayProperty, booleanProperty, numberProperty, optionsProperty, recordArrayProperty, recordProperty, severityProperty, stringArrayProperty, stringProperty } from './properties.js';
2
2
  export { menuItemsProperty, toMenuItems } from './menuItems.js';
3
- export { toTreeNodes, treeNodesProperty } from './treeNodes.js';
3
+ export { countUnreadableEntries, toTreeNodes, treeNodesProperty } from './treeNodes.js';
4
4
  export { PrimeButton } from './button/PrimeButton.js';
5
5
  export { PrimeSplitButton } from './button/PrimeSplitButton.js';
6
6
  export { PrimeSpeedDial } from './button/PrimeSpeedDial.js';
@@ -17,6 +17,7 @@ export { PrimeMultiSelect } from './form/PrimeMultiSelect.js';
17
17
  export { PrimeListBox } from './form/PrimeListBox.js';
18
18
  export { PrimeSelectButton } from './form/PrimeSelectButton.js';
19
19
  export { PrimeCheckbox } from './form/PrimeCheckbox.js';
20
+ export { PrimeMultiStateCheckbox } from './form/PrimeMultiStateCheckbox.js';
20
21
  export { PrimeRadioButton } from './form/PrimeRadioButton.js';
21
22
  export { PrimeToggleSwitch } from './form/PrimeToggleSwitch.js';
22
23
  export { PrimeSlider } from './form/PrimeSlider.js';
@@ -28,6 +29,20 @@ export { PrimeChips } from './form/PrimeChips.js';
28
29
  export { PrimeAutoComplete } from './form/PrimeAutoComplete.js';
29
30
  export { TreeSelect } from './form/TreeSelect.js';
30
31
  export { PrimeTreeSelect } from './form/PrimeTreeSelect.js';
32
+ export { PrimeEditor } from './editor/PrimeEditor.js';
33
+ export { QuillLoaderProvider } from './editor/QuillLoaderProvider.js';
34
+ export { htmlToPlainText } from './editor/htmlToPlainText.js';
35
+ export { renderSafeNodes } from './editor/renderSafeNodes.js';
36
+ export { safeImageUrl, safeLinkUrl } from './editor/safeUrls.js';
37
+ export { sanitizeHtml } from './editor/sanitizeHtml.js';
38
+ export { serializeSafeNodes } from './editor/serializeSafeNodes.js';
39
+ export { FileUploadHandlerProvider } from './file/FileUploadHandlerProvider.js';
40
+ export { FileUploadMode } from './file/FileUploadMode.js';
41
+ export { PrimeFileUpload } from './file/PrimeFileUpload.js';
42
+ export { resolveUploadTarget } from './file/resolveUploadTarget.js';
43
+ export { ChartType } from './chart/ChartType.js';
44
+ export { PrimeChart } from './chart/PrimeChart.js';
45
+ export { legacyChartTypes, resolveChartType } from './chart/resolveChartType.js';
31
46
  export { Column } from './data/Column.js';
32
47
  export { columnDefinitions } from './data/columnDefinitions.js';
33
48
  export { PrimeColumn } from './data/PrimeColumn.js';
@@ -39,6 +54,10 @@ export { PrimePaginator } from './data/PrimePaginator.js';
39
54
  export { PrimeOrderList } from './data/PrimeOrderList.js';
40
55
  export { PrimePickList } from './data/PrimePickList.js';
41
56
  export { PrimeOrganizationChart } from './data/PrimeOrganizationChart.js';
57
+ export { PrimeDataScroller } from './data/PrimeDataScroller.js';
58
+ export { PrimeTreeTable } from './data/PrimeTreeTable.js';
59
+ export { TreeTableSelectionMode } from './data/TreeTableSelectionMode.js';
60
+ export { readableValue } from './data/readableValue.js';
42
61
  export { PrimeCard } from './panel/PrimeCard.js';
43
62
  export { PrimePanel } from './panel/PrimePanel.js';
44
63
  export { PrimeFieldset } from './panel/PrimeFieldset.js';
@@ -107,5 +126,6 @@ export { primeReactTheme, primeReactThemeCompatibility, primeReactThemeLicense,
107
126
  export { primeReactThemePreset } from './theme/primeReactThemePreset.js';
108
127
  export { primeReactDarkModeClass, usePrimeReactTheme } from './theme/usePrimeReactTheme.js';
109
128
  export { primeReactComponents } from './primeReactComponents.js';
129
+ export { primeReactDescriptors } from './primeReactDescriptors.js';
110
130
  export { primeReactPackage, primeReactPackageManifest } from './primeReactPackage.js';
111
131
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,3 @@
1
+ import { PropertyChoice } from '@cratis/scene.model';
2
+ export declare function legacyEnumerationChoices<TMember extends string>(members: Record<string, TMember>, labels: Record<TMember, string>): PropertyChoice[];
3
+ //# sourceMappingURL=legacyEnumerationChoices.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacyEnumerationChoices.d.ts","sourceRoot":"","sources":["../../legacyEnumerationChoices.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAerD,wBAAgB,wBAAwB,CAAC,OAAO,SAAS,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,cAAc,EAAE,CAgBpJ"}
@@ -0,0 +1,37 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ /**
4
+ * The choices for an enumeration property: the stable values new documents use, then the ordinals migrated
5
+ * documents carry, then the Pascal case member names a serialized .NET enum produces. These are the same forms
6
+ * the renderer accepts, so a stored value the control draws is never flagged invalid by descriptor validation.
7
+ *
8
+ * A migrated control stores the original numeric value. Offering those ordinals keeps the stored value valid
9
+ * against the descriptor (so an inspector shows it as the current choice) without rewriting it behind the
10
+ * author's back. The position of a member in `members` is its ordinal.
11
+ *
12
+ * @param members The enum object.
13
+ * @param labels The label of each member, by canonical value.
14
+ * @returns The canonical choices, then one legacy choice per ordinal, then one per Pascal case member name.
15
+ */ function legacyEnumerationChoices(members, labels) {
16
+ const canonical = Object.values(members);
17
+ const names = Object.keys(members);
18
+ return [
19
+ ...canonical.map((member)=>({
20
+ value: member,
21
+ label: labels[member]
22
+ })),
23
+ ...canonical.map((member, ordinal)=>({
24
+ value: ordinal,
25
+ label: `${labels[member]} (legacy ${ordinal})`,
26
+ description: `The ordinal ${ordinal} of the original enum, as stored by migrated documents.`
27
+ })),
28
+ ...names.map((name)=>({
29
+ value: name,
30
+ label: `${labels[members[name]]} (legacy name ${name})`,
31
+ description: `The member name ${name} of the original enum, as a serialized enum stores it.`
32
+ }))
33
+ ];
34
+ }
35
+
36
+ export { legacyEnumerationChoices };
37
+ //# sourceMappingURL=legacyEnumerationChoices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacyEnumerationChoices.js","sources":["../../legacyEnumerationChoices.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 { PropertyChoice } from '@cratis/scene.model';\n\n/**\n * The choices for an enumeration property: the stable values new documents use, then the ordinals migrated\n * documents carry, then the Pascal case member names a serialized .NET enum produces. These are the same forms\n * the renderer accepts, so a stored value the control draws is never flagged invalid by descriptor validation.\n *\n * A migrated control stores the original numeric value. Offering those ordinals keeps the stored value valid\n * against the descriptor (so an inspector shows it as the current choice) without rewriting it behind the\n * author's back. The position of a member in `members` is its ordinal.\n *\n * @param members The enum object.\n * @param labels The label of each member, by canonical value.\n * @returns The canonical choices, then one legacy choice per ordinal, then one per Pascal case member name.\n */\nexport function legacyEnumerationChoices<TMember extends string>(members: Record<string, TMember>, labels: Record<TMember, string>): PropertyChoice[] {\n const canonical = Object.values(members);\n const names = Object.keys(members);\n return [\n ...canonical.map(member => ({ value: member, label: labels[member] })),\n ...canonical.map((member, ordinal) => ({\n value: ordinal,\n label: `${labels[member]} (legacy ${ordinal})`,\n description: `The ordinal ${ordinal} of the original enum, as stored by migrated documents.`,\n })),\n ...names.map(name => ({\n value: name,\n label: `${labels[members[name]]} (legacy name ${name})`,\n description: `The member name ${name} of the original enum, as a serialized enum stores it.`,\n })),\n ];\n}\n"],"names":["legacyEnumerationChoices","members","labels","canonical","Object","values","names","keys","map","member","value","label","ordinal","description","name"],"mappings":"AAAA;AACA;AAIA;;;;;;;;;;;;AAYC,IACM,SAASA,wBAAAA,CAAiDC,OAAgC,EAAEC,MAA+B,EAAA;IAC9H,MAAMC,SAAAA,GAAYC,MAAAA,CAAOC,MAAM,CAACJ,OAAAA,CAAAA;IAChC,MAAMK,KAAAA,GAAQF,MAAAA,CAAOG,IAAI,CAACN,OAAAA,CAAAA;IAC1B,OAAO;AACAE,QAAAA,GAAAA,SAAAA,CAAUK,GAAG,CAACC,CAAAA,MAAAA,IAAW;gBAAEC,KAAAA,EAAOD,MAAAA;gBAAQE,KAAAA,EAAOT,MAAM,CAACO,MAAAA;aAAQ,CAAA,CAAA;AAChEN,QAAAA,GAAAA,SAAAA,CAAUK,GAAG,CAAC,CAACC,MAAAA,EAAQG,WAAa;gBACnCF,KAAAA,EAAOE,OAAAA;gBACPD,KAAAA,EAAO,CAAA,EAAGT,MAAM,CAACO,MAAAA,CAAO,CAAC,SAAS,EAAEG,OAAAA,CAAQ,CAAC,CAAC;AAC9CC,gBAAAA,WAAAA,EAAa,CAAC,YAAY,EAAED,OAAAA,CAAQ,uDAAuD;aAC/F,CAAA,CAAA;AACGN,QAAAA,GAAAA,KAAAA,CAAME,GAAG,CAACM,CAAAA,IAAAA,IAAS;gBAClBJ,KAAAA,EAAOI,IAAAA;AACPH,gBAAAA,KAAAA,EAAO,CAAA,EAAGT,MAAM,CAACD,OAAO,CAACa,IAAAA,CAAK,CAAC,CAAC,cAAc,EAAEA,IAAAA,CAAK,CAAC,CAAC;AACvDD,gBAAAA,WAAAA,EAAa,CAAC,gBAAgB,EAAEC,IAAAA,CAAK,sDAAsD;aAC/F,CAAA;AACH,KAAA;AACL;;"}
@@ -0,0 +1,3 @@
1
+ import type { QuillLoader } from '../editor/QuillLoader';
2
+ export declare const loadQuill: QuillLoader;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../loadQuill/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAiBzD,eAAO,MAAM,SAAS,EAAE,WAAyE,CAAC"}
@@ -0,0 +1,20 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ /**
4
+ * The ready-made Quill loader: `() => import('quill')`.
5
+ *
6
+ * This entry point is the only place the package names `quill`, and it is separate from the package root on
7
+ * purpose. A host that renders editable rich text imports it, installs the `quill` peer dependency and
8
+ * Quill's stylesheet, and passes it to `QuillLoaderProvider`; every other host never resolves `quill`.
9
+ *
10
+ * ```tsx
11
+ * import 'quill/dist/quill.snow.css';
12
+ * import { QuillLoaderProvider } from '@cratis/scene.primereact';
13
+ * import { loadQuill } from '@cratis/scene.primereact/quill';
14
+ *
15
+ * <QuillLoaderProvider loader={loadQuill}>{screen}</QuillLoaderProvider>
16
+ * ```
17
+ */ const loadQuill = ()=>import('quill');
18
+
19
+ export { loadQuill };
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../loadQuill/index.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 type { QuillLoader } from '../editor/QuillLoader';\n\n/**\n * The ready-made Quill loader: `() => import('quill')`.\n *\n * This entry point is the only place the package names `quill`, and it is separate from the package root on\n * purpose. A host that renders editable rich text imports it, installs the `quill` peer dependency and\n * Quill's stylesheet, and passes it to `QuillLoaderProvider`; every other host never resolves `quill`.\n *\n * ```tsx\n * import 'quill/dist/quill.snow.css';\n * import { QuillLoaderProvider } from '@cratis/scene.primereact';\n * import { loadQuill } from '@cratis/scene.primereact/quill';\n *\n * <QuillLoaderProvider loader={loadQuill}>{screen}</QuillLoaderProvider>\n * ```\n */\nexport const loadQuill: QuillLoader = () => import('quill') as unknown as ReturnType<QuillLoader>;\n"],"names":["loadQuill"],"mappings":"AAAA;AACA;AAIA;;;;;;;;;;;;;;AAcC,IACM,MAAMA,SAAAA,GAAyB,IAAM,OAAO,OAAA;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"primeReactComponents.d.ts","sourceRoot":"","sources":["../../primeReactComponents.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAwB,MAAM,qBAAqB,CAAC;AA+F9E,eAAO,MAAM,oBAAoB,EAAE,iBA6FlC,CAAC"}
1
+ {"version":3,"file":"primeReactComponents.d.ts","sourceRoot":"","sources":["../../primeReactComponents.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAwB,MAAM,qBAAqB,CAAC;AAqG9E,eAAO,MAAM,oBAAoB,EAAE,iBAmGlC,CAAC"}