@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,138 @@
1
+ import { safeLinkUrl, safeImageUrl } from './safeUrls.js';
2
+
3
+ // Copyright (c) Cratis. All rights reserved.
4
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
5
+ /** Elements that are kept. Every other element is unwrapped: its children stay, the element does not. */ const keptTags = new Set([
6
+ 'p',
7
+ 'div',
8
+ 'span',
9
+ 'br',
10
+ 'hr',
11
+ 'strong',
12
+ 'b',
13
+ 'em',
14
+ 'i',
15
+ 'u',
16
+ 's',
17
+ 'strike',
18
+ 'del',
19
+ 'sub',
20
+ 'sup',
21
+ 'code',
22
+ 'pre',
23
+ 'blockquote',
24
+ 'h1',
25
+ 'h2',
26
+ 'h3',
27
+ 'h4',
28
+ 'h5',
29
+ 'h6',
30
+ 'ul',
31
+ 'ol',
32
+ 'li',
33
+ 'a',
34
+ 'img'
35
+ ]);
36
+ /** Elements whose content is never text to show - script, style, embedded documents and form controls. */ const discardedWithContent = new Set([
37
+ 'script',
38
+ 'style',
39
+ 'template',
40
+ 'noscript',
41
+ 'iframe',
42
+ 'frame',
43
+ 'frameset',
44
+ 'object',
45
+ 'embed',
46
+ 'applet',
47
+ 'svg',
48
+ 'math',
49
+ 'audio',
50
+ 'video',
51
+ 'canvas',
52
+ 'textarea',
53
+ 'select',
54
+ 'option',
55
+ 'button',
56
+ 'input',
57
+ 'form',
58
+ 'head',
59
+ 'title',
60
+ 'meta',
61
+ 'link',
62
+ 'base'
63
+ ]);
64
+ /** Quill's own formatting classes. They name CSS rules, so a fixed vocabulary is safe and anything else is not kept. */ const formattingClass = /^ql-(align-(center|right|justify)|indent-[1-8]|size-(small|large|huge)|font-(serif|monospace)|direction-rtl)$/;
65
+ const listKinds = new Set([
66
+ 'bullet',
67
+ 'ordered',
68
+ 'checked',
69
+ 'unchecked'
70
+ ]);
71
+ /** Deeper than any real document nests. Anything below is flattened to its text. */ const maximumDepth = 64;
72
+ /**
73
+ * Reduces authored HTML to the part that is safe to render.
74
+ *
75
+ * It parses with `DOMParser`, which builds an inert document: nothing in it loads, runs or paints while it is
76
+ * walked. The walk then keeps only elements from an allowlist and, on those, only the attributes listed
77
+ * here - a validated `href` or image `src`, Quill's formatting classes and list kind. Event handlers,
78
+ * `style`, `srcdoc`, unknown elements' attributes and every URL that is not allowed are dropped, and script,
79
+ * style, SVG, frames and form controls are removed together with their content.
80
+ *
81
+ * The result is plain data. Render it with `renderSafeNodes` or serialize it with `serializeSafeNodes`; the
82
+ * authored string itself is never put into the document.
83
+ *
84
+ * @param html The authored HTML.
85
+ * @returns The safe nodes.
86
+ * @throws When there is no `DOMParser`. Use `htmlToPlainText` where there is no DOM.
87
+ */ function sanitizeHtml(html) {
88
+ if (typeof DOMParser === 'undefined') throw new Error('Sanitizing HTML needs a DOM. Use htmlToPlainText where there is none.');
89
+ return sanitizeChildren(new DOMParser().parseFromString(html, 'text/html').body, 0);
90
+ }
91
+ function sanitizeChildren(parent, depth) {
92
+ const nodes = [];
93
+ for (const child of Array.from(parent.childNodes)){
94
+ if (child.nodeType === Node.TEXT_NODE) {
95
+ if (child.textContent !== null && child.textContent !== '') nodes.push(child.textContent);
96
+ } else if (child.nodeType === Node.ELEMENT_NODE) {
97
+ nodes.push(...sanitizeElement(child, depth));
98
+ }
99
+ }
100
+ return nodes;
101
+ }
102
+ function sanitizeElement(element, depth) {
103
+ const tag = element.tagName.toLowerCase();
104
+ if (discardedWithContent.has(tag)) return [];
105
+ if (depth >= maximumDepth) return [
106
+ element.textContent ?? ''
107
+ ];
108
+ const children = sanitizeChildren(element, depth + 1);
109
+ if (!keptTags.has(tag)) return children;
110
+ const attributes = keptAttributes(tag, element);
111
+ if (tag === 'img' && attributes.src === undefined) return [];
112
+ if (tag === 'a' && attributes.href === undefined) return children;
113
+ return [
114
+ {
115
+ tag,
116
+ attributes,
117
+ children
118
+ }
119
+ ];
120
+ }
121
+ function keptAttributes(tag, element) {
122
+ const attributes = {};
123
+ const href = tag === 'a' ? safeLinkUrl(element.getAttribute('href') ?? '') : undefined;
124
+ if (href !== undefined) attributes.href = href;
125
+ const source = tag === 'img' ? safeImageUrl(element.getAttribute('src') ?? '') : undefined;
126
+ if (source !== undefined) {
127
+ attributes.src = source;
128
+ attributes.alt = element.getAttribute('alt') ?? '';
129
+ }
130
+ const classes = (element.getAttribute('class') ?? '').split(/\s+/).filter((name)=>formattingClass.test(name));
131
+ if (classes.length > 0) attributes.class = classes.join(' ');
132
+ const listKind = element.getAttribute('data-list');
133
+ if (tag === 'li' && listKind !== null && listKinds.has(listKind)) attributes['data-list'] = listKind;
134
+ return attributes;
135
+ }
136
+
137
+ export { sanitizeHtml };
138
+ //# sourceMappingURL=sanitizeHtml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitizeHtml.js","sources":["../../../editor/sanitizeHtml.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 { SafeElement } from './SafeElement';\nimport { SafeNode } from './SafeNode';\nimport { safeImageUrl, safeLinkUrl } from './safeUrls';\n\n/** Elements that are kept. Every other element is unwrapped: its children stay, the element does not. */\nconst keptTags = new Set([\n 'p', 'div', 'span', 'br', 'hr', 'strong', 'b', 'em', 'i', 'u', 's', 'strike', 'del', 'sub', 'sup', 'code', 'pre', 'blockquote',\n 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'li', 'a', 'img',\n]);\n\n/** Elements whose content is never text to show - script, style, embedded documents and form controls. */\nconst discardedWithContent = new Set([\n 'script', 'style', 'template', 'noscript', 'iframe', 'frame', 'frameset', 'object', 'embed', 'applet', 'svg', 'math',\n 'audio', 'video', 'canvas', 'textarea', 'select', 'option', 'button', 'input', 'form', 'head', 'title', 'meta', 'link', 'base',\n]);\n\n/** Quill's own formatting classes. They name CSS rules, so a fixed vocabulary is safe and anything else is not kept. */\nconst formattingClass = /^ql-(align-(center|right|justify)|indent-[1-8]|size-(small|large|huge)|font-(serif|monospace)|direction-rtl)$/;\n\nconst listKinds = new Set(['bullet', 'ordered', 'checked', 'unchecked']);\n\n/** Deeper than any real document nests. Anything below is flattened to its text. */\nconst maximumDepth = 64;\n\n/**\n * Reduces authored HTML to the part that is safe to render.\n *\n * It parses with `DOMParser`, which builds an inert document: nothing in it loads, runs or paints while it is\n * walked. The walk then keeps only elements from an allowlist and, on those, only the attributes listed\n * here - a validated `href` or image `src`, Quill's formatting classes and list kind. Event handlers,\n * `style`, `srcdoc`, unknown elements' attributes and every URL that is not allowed are dropped, and script,\n * style, SVG, frames and form controls are removed together with their content.\n *\n * The result is plain data. Render it with `renderSafeNodes` or serialize it with `serializeSafeNodes`; the\n * authored string itself is never put into the document.\n *\n * @param html The authored HTML.\n * @returns The safe nodes.\n * @throws When there is no `DOMParser`. Use `htmlToPlainText` where there is no DOM.\n */\nexport function sanitizeHtml(html: string): SafeNode[] {\n if (typeof DOMParser === 'undefined') throw new Error('Sanitizing HTML needs a DOM. Use htmlToPlainText where there is none.');\n return sanitizeChildren(new DOMParser().parseFromString(html, 'text/html').body, 0);\n}\n\nfunction sanitizeChildren(parent: Node, depth: number): SafeNode[] {\n const nodes: SafeNode[] = [];\n for (const child of Array.from(parent.childNodes)) {\n if (child.nodeType === Node.TEXT_NODE) {\n if (child.textContent !== null && child.textContent !== '') nodes.push(child.textContent);\n } else if (child.nodeType === Node.ELEMENT_NODE) {\n nodes.push(...sanitizeElement(child as Element, depth));\n }\n }\n return nodes;\n}\n\nfunction sanitizeElement(element: Element, depth: number): SafeNode[] {\n const tag = element.tagName.toLowerCase();\n if (discardedWithContent.has(tag)) return [];\n if (depth >= maximumDepth) return [element.textContent ?? ''];\n\n const children = sanitizeChildren(element, depth + 1);\n if (!keptTags.has(tag)) return children;\n\n const attributes = keptAttributes(tag, element);\n if (tag === 'img' && attributes.src === undefined) return [];\n if (tag === 'a' && attributes.href === undefined) return children;\n return [{ tag, attributes, children } satisfies SafeElement];\n}\n\nfunction keptAttributes(tag: string, element: Element): Record<string, string> {\n const attributes: Record<string, string> = {};\n\n const href = tag === 'a' ? safeLinkUrl(element.getAttribute('href') ?? '') : undefined;\n if (href !== undefined) attributes.href = href;\n\n const source = tag === 'img' ? safeImageUrl(element.getAttribute('src') ?? '') : undefined;\n if (source !== undefined) {\n attributes.src = source;\n attributes.alt = element.getAttribute('alt') ?? '';\n }\n\n const classes = (element.getAttribute('class') ?? '').split(/\\s+/).filter(name => formattingClass.test(name));\n if (classes.length > 0) attributes.class = classes.join(' ');\n\n const listKind = element.getAttribute('data-list');\n if (tag === 'li' && listKind !== null && listKinds.has(listKind)) attributes['data-list'] = listKind;\n\n return attributes;\n}\n"],"names":["keptTags","Set","discardedWithContent","formattingClass","listKinds","maximumDepth","sanitizeHtml","html","DOMParser","Error","sanitizeChildren","parseFromString","body","parent","depth","nodes","child","Array","from","childNodes","nodeType","Node","TEXT_NODE","textContent","push","ELEMENT_NODE","sanitizeElement","element","tag","tagName","toLowerCase","has","children","attributes","keptAttributes","src","undefined","href","safeLinkUrl","getAttribute","source","safeImageUrl","alt","classes","split","filter","name","test","length","class","join","listKind"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { SafeNode } from './SafeNode';
2
+ export declare function serializeSafeNodes(nodes: SafeNode[]): string;
3
+ //# sourceMappingURL=serializeSafeNodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializeSafeNodes.d.ts","sourceRoot":"","sources":["../../../editor/serializeSafeNodes.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAgBtC,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAM5D"}
@@ -0,0 +1,31 @@
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
+ const voidTags = new Set([
4
+ 'br',
5
+ 'hr',
6
+ 'img'
7
+ ]);
8
+ const escapes = {
9
+ '&': '&amp;',
10
+ '<': '&lt;',
11
+ '>': '&gt;',
12
+ '"': '&quot;'
13
+ };
14
+ const escape = (text)=>text.replace(/[&<>"]/g, (character)=>escapes[character]);
15
+ /**
16
+ * Writes safe nodes back out as an HTML string, for an editor that reads HTML.
17
+ *
18
+ * Text and attribute values are escaped, and only tags and attributes the allowlist produced are written, so
19
+ * the string can contain nothing the allowlist did not already accept.
20
+ *
21
+ * @param nodes The nodes `sanitizeHtml` returned.
22
+ */ function serializeSafeNodes(nodes) {
23
+ return nodes.map((node)=>{
24
+ if (typeof node === 'string') return escape(node);
25
+ const attributes = Object.entries(node.attributes).map(([name, value])=>` ${name}="${escape(value)}"`).join('');
26
+ return voidTags.has(node.tag) ? `<${node.tag}${attributes}>` : `<${node.tag}${attributes}>${serializeSafeNodes(node.children)}</${node.tag}>`;
27
+ }).join('');
28
+ }
29
+
30
+ export { serializeSafeNodes };
31
+ //# sourceMappingURL=serializeSafeNodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializeSafeNodes.js","sources":["../../../editor/serializeSafeNodes.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 { SafeNode } from './SafeNode';\n\nconst voidTags = new Set(['br', 'hr', 'img']);\n\nconst escapes: Record<string, string> = { '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' };\n\nconst escape = (text: string) => text.replace(/[&<>\"]/g, character => escapes[character]);\n\n/**\n * Writes safe nodes back out as an HTML string, for an editor that reads HTML.\n *\n * Text and attribute values are escaped, and only tags and attributes the allowlist produced are written, so\n * the string can contain nothing the allowlist did not already accept.\n *\n * @param nodes The nodes `sanitizeHtml` returned.\n */\nexport function serializeSafeNodes(nodes: SafeNode[]): string {\n return nodes.map(node => {\n if (typeof node === 'string') return escape(node);\n const attributes = Object.entries(node.attributes).map(([name, value]) => ` ${name}=\"${escape(value)}\"`).join('');\n return voidTags.has(node.tag) ? `<${node.tag}${attributes}>` : `<${node.tag}${attributes}>${serializeSafeNodes(node.children)}</${node.tag}>`;\n }).join('');\n}\n"],"names":["voidTags","Set","escapes","escape","text","replace","character","serializeSafeNodes","nodes","map","node","attributes","Object","entries","name","value","join","has","tag","children"],"mappings":"AAAA;AACA;AAIA,MAAMA,QAAAA,GAAW,IAAIC,GAAAA,CAAI;AAAC,IAAA,IAAA;AAAM,IAAA,IAAA;AAAM,IAAA;AAAM,CAAA,CAAA;AAE5C,MAAMC,OAAAA,GAAkC;IAAE,GAAA,EAAK,OAAA;IAAS,GAAA,EAAK,MAAA;IAAQ,GAAA,EAAK,MAAA;IAAQ,GAAA,EAAK;AAAS,CAAA;AAEhG,MAAMC,MAAAA,GAAS,CAACC,IAAAA,GAAiBA,IAAAA,CAAKC,OAAO,CAAC,SAAA,EAAWC,CAAAA,SAAAA,GAAaJ,OAAO,CAACI,SAAAA,CAAU,CAAA;AAExF;;;;;;;IAQO,SAASC,kBAAAA,CAAmBC,KAAiB,EAAA;IAChD,OAAOA,KAAAA,CAAMC,GAAG,CAACC,CAAAA,IAAAA,GAAAA;AACb,QAAA,IAAI,OAAOA,IAAAA,KAAS,QAAA,EAAU,OAAOP,MAAAA,CAAOO,IAAAA,CAAAA;QAC5C,MAAMC,UAAAA,GAAaC,MAAAA,CAAOC,OAAO,CAACH,IAAAA,CAAKC,UAAU,CAAA,CAAEF,GAAG,CAAC,CAAC,CAACK,IAAAA,EAAMC,KAAAA,CAAM,GAAK,CAAC,CAAC,EAAED,IAAAA,CAAK,EAAE,EAAEX,MAAAA,CAAOY,KAAAA,CAAAA,CAAO,CAAC,CAAC,CAAA,CAAEC,IAAI,CAAC,EAAA,CAAA;AAC9G,QAAA,OAAOhB,QAAAA,CAASiB,GAAG,CAACP,IAAAA,CAAKQ,GAAG,CAAA,GAAI,CAAC,CAAC,EAAER,KAAKQ,GAAG,CAAA,EAAGP,UAAAA,CAAW,CAAC,CAAC,GAAG,CAAC,CAAC,EAAED,KAAKQ,GAAG,CAAA,EAAGP,UAAAA,CAAW,CAAC,EAAEJ,kBAAAA,CAAmBG,IAAAA,CAAKS,QAAQ,CAAA,CAAE,EAAE,EAAET,IAAAA,CAAKQ,GAAG,CAAC,CAAC,CAAC;AACjJ,IAAA,CAAA,CAAA,CAAGF,IAAI,CAAC,EAAA,CAAA;AACZ;;"}
@@ -0,0 +1,2 @@
1
+ export declare const toolbarLayout: (string | Record<string, unknown>)[][];
2
+ //# sourceMappingURL=toolbarLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolbarLayout.d.ts","sourceRoot":"","sources":["../../../editor/toolbarLayout.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,EAK/D,CAAC"}
@@ -0,0 +1,33 @@
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
+ /** The formats the toolbar offers. Content in other formats is still shown, but cannot be produced here. */ const toolbarLayout = [
4
+ [
5
+ 'bold',
6
+ 'italic',
7
+ 'underline'
8
+ ],
9
+ [
10
+ {
11
+ header: [
12
+ 1,
13
+ 2,
14
+ 3,
15
+ false
16
+ ]
17
+ }
18
+ ],
19
+ [
20
+ {
21
+ list: 'ordered'
22
+ },
23
+ {
24
+ list: 'bullet'
25
+ }
26
+ ],
27
+ [
28
+ 'link'
29
+ ]
30
+ ];
31
+
32
+ export { toolbarLayout };
33
+ //# sourceMappingURL=toolbarLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolbarLayout.js","sources":["../../../editor/toolbarLayout.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/** The formats the toolbar offers. Content in other formats is still shown, but cannot be produced here. */\nexport const toolbarLayout: (string | Record<string, unknown>)[][] = [\n ['bold', 'italic', 'underline'],\n [{ header: [1, 2, 3, false] }],\n [{ list: 'ordered' }, { list: 'bullet' }],\n ['link'],\n];\n"],"names":["toolbarLayout","header","list"],"mappings":"AAAA;AACA;AAEA,6GACO,MAAMA,aAAAA,GAAwD;AACjE,IAAA;AAAC,QAAA,MAAA;AAAQ,QAAA,QAAA;AAAU,QAAA;AAAY,KAAA;AAC/B,IAAA;AAAC,QAAA;YAAEC,MAAAA,EAAQ;AAAC,gBAAA,CAAA;AAAG,gBAAA,CAAA;AAAG,gBAAA,CAAA;AAAG,gBAAA;AAAM;AAAC;AAAE,KAAA;AAC9B,IAAA;AAAC,QAAA;YAAEC,IAAAA,EAAM;AAAU,SAAA;AAAG,QAAA;YAAEA,IAAAA,EAAM;AAAS;AAAE,KAAA;AACzC,IAAA;AAAC,QAAA;AAAO;;;"}
@@ -0,0 +1,4 @@
1
+ import { QuillEditorOptions } from './QuillEditorOptions';
2
+ import { QuillEditorState } from './QuillEditorState';
3
+ export declare function useQuillEditor(options: QuillEditorOptions): QuillEditorState;
4
+ //# sourceMappingURL=useQuillEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useQuillEditor.d.ts","sourceRoot":"","sources":["../../../editor/useQuillEditor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAwBtD,wBAAgB,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,gBAAgB,CAmF5E"}
@@ -0,0 +1,135 @@
1
+ import { useState, useRef, useEffect } from 'react';
2
+ import { applyHtml } from './applyHtml.js';
3
+ import { characterCount } from './characterCount.js';
4
+ import { toolbarLayout } from './toolbarLayout.js';
5
+
6
+ // Copyright (c) Cratis. All rights reserved.
7
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
8
+ const idle = {
9
+ ready: false,
10
+ failure: undefined,
11
+ characters: 0
12
+ };
13
+ /**
14
+ * Builds and owns a Quill editor inside an element React leaves alone.
15
+ *
16
+ * The editor is constructed once per loader and toolbar setting, in a container this hook creates and
17
+ * removes itself. React renders the host with no children, so a re-render can never wipe what Quill built -
18
+ * the failure of rendering the authored HTML as the host's children and then letting Quill take it over.
19
+ *
20
+ * Everything else is applied to the live editor without rebuilding it:
21
+ * - a changed `html` replaces the content silently, and only when the authored value really changed, so a
22
+ * user's edit survives an unrelated property change;
23
+ * - `editable`, the placeholder and the accessible name update in place;
24
+ * - the `text-change` listener is removed, and the toolbar and surface with the container, when the editor
25
+ * is rebuilt or the control unmounts.
26
+ *
27
+ * Only a user edit calls `onUserChange`.
28
+ */ function useQuillEditor(options) {
29
+ const { loader, host, html, showHeader, editable, placeholder, ariaLabel } = options;
30
+ const [state, setState] = useState(idle);
31
+ const quillReference = useRef(undefined);
32
+ const appliedHtml = useRef(html);
33
+ const latest = useRef(options);
34
+ latest.current = options;
35
+ useEffect(()=>{
36
+ const container = host.current;
37
+ if (loader === undefined || container === null) return undefined;
38
+ let disposed = false;
39
+ let dispose;
40
+ loader().then((loaded)=>{
41
+ if (disposed) return;
42
+ const Quill = typeof loaded === 'function' ? loaded : loaded.default;
43
+ const surface = container.ownerDocument.createElement('div');
44
+ container.appendChild(surface);
45
+ const quill = new Quill(surface, {
46
+ theme: 'snow',
47
+ modules: {
48
+ toolbar: showHeader ? toolbarLayout : false
49
+ },
50
+ placeholder: latest.current.placeholder,
51
+ readOnly: !latest.current.editable
52
+ });
53
+ applyHtml(quill, latest.current.html);
54
+ appliedHtml.current = latest.current.html;
55
+ const changed = (_delta, _previous, source)=>{
56
+ if (source === 'silent') return;
57
+ setState((current)=>({
58
+ ...current,
59
+ characters: characterCount(quill)
60
+ }));
61
+ if (source === 'user') latest.current.onUserChange();
62
+ };
63
+ quill.on('text-change', changed);
64
+ quillReference.current = quill;
65
+ dispose = ()=>{
66
+ quill.off('text-change', changed);
67
+ quillReference.current = undefined;
68
+ container.replaceChildren();
69
+ };
70
+ setState({
71
+ ready: true,
72
+ failure: undefined,
73
+ characters: characterCount(quill)
74
+ });
75
+ }).catch((error)=>{
76
+ if (!disposed) setState({
77
+ ...idle,
78
+ failure: error instanceof Error ? error.message : String(error)
79
+ });
80
+ });
81
+ return ()=>{
82
+ disposed = true;
83
+ dispose?.();
84
+ setState(idle);
85
+ };
86
+ }, [
87
+ loader,
88
+ host,
89
+ showHeader
90
+ ]);
91
+ useEffect(()=>{
92
+ const quill = quillReference.current;
93
+ if (!state.ready || quill === undefined || html === appliedHtml.current) return;
94
+ appliedHtml.current = html;
95
+ applyHtml(quill, html);
96
+ setState((current)=>({
97
+ ...current,
98
+ characters: characterCount(quill)
99
+ }));
100
+ }, [
101
+ html,
102
+ state.ready
103
+ ]);
104
+ useEffect(()=>{
105
+ const quill = quillReference.current;
106
+ if (!state.ready || quill === undefined) return;
107
+ quill.enable(editable);
108
+ quill.root.setAttribute('aria-readonly', String(!editable));
109
+ const toolbar = quill.getModule('toolbar');
110
+ toolbar?.container?.querySelectorAll('button, select').forEach((control)=>{
111
+ if (editable) control.removeAttribute('disabled');
112
+ else control.setAttribute('disabled', '');
113
+ });
114
+ }, [
115
+ editable,
116
+ state.ready
117
+ ]);
118
+ useEffect(()=>{
119
+ const quill = quillReference.current;
120
+ if (!state.ready || quill === undefined) return;
121
+ quill.root.setAttribute('role', 'textbox');
122
+ quill.root.setAttribute('aria-multiline', 'true');
123
+ quill.root.setAttribute('aria-label', ariaLabel);
124
+ if (placeholder === undefined) quill.root.removeAttribute('data-placeholder');
125
+ else quill.root.setAttribute('data-placeholder', placeholder);
126
+ }, [
127
+ ariaLabel,
128
+ placeholder,
129
+ state.ready
130
+ ]);
131
+ return state;
132
+ }
133
+
134
+ export { useQuillEditor };
135
+ //# sourceMappingURL=useQuillEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useQuillEditor.js","sources":["../../../editor/useQuillEditor.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 { useEffect, useRef, useState } from 'react';\nimport { QuillConstructor } from './QuillConstructor';\nimport { QuillEditorOptions } from './QuillEditorOptions';\nimport { QuillEditorState } from './QuillEditorState';\nimport { QuillInstance } from './QuillInstance';\nimport { applyHtml } from './applyHtml';\nimport { characterCount } from './characterCount';\nimport { toolbarLayout } from './toolbarLayout';\n\nconst idle: QuillEditorState = { ready: false, failure: undefined, characters: 0 };\n\n/**\n * Builds and owns a Quill editor inside an element React leaves alone.\n *\n * The editor is constructed once per loader and toolbar setting, in a container this hook creates and\n * removes itself. React renders the host with no children, so a re-render can never wipe what Quill built -\n * the failure of rendering the authored HTML as the host's children and then letting Quill take it over.\n *\n * Everything else is applied to the live editor without rebuilding it:\n * - a changed `html` replaces the content silently, and only when the authored value really changed, so a\n * user's edit survives an unrelated property change;\n * - `editable`, the placeholder and the accessible name update in place;\n * - the `text-change` listener is removed, and the toolbar and surface with the container, when the editor\n * is rebuilt or the control unmounts.\n *\n * Only a user edit calls `onUserChange`.\n */\nexport function useQuillEditor(options: QuillEditorOptions): QuillEditorState {\n const { loader, host, html, showHeader, editable, placeholder, ariaLabel } = options;\n const [state, setState] = useState<QuillEditorState>(idle);\n const quillReference = useRef<QuillInstance | undefined>(undefined);\n const appliedHtml = useRef(html);\n const latest = useRef(options);\n latest.current = options;\n\n useEffect(() => {\n const container = host.current;\n if (loader === undefined || container === null) return undefined;\n\n let disposed = false;\n let dispose: (() => void) | undefined;\n\n loader().then(loaded => {\n if (disposed) return;\n const Quill: QuillConstructor = typeof loaded === 'function' ? loaded : loaded.default;\n const surface = container.ownerDocument.createElement('div');\n container.appendChild(surface);\n const quill = new Quill(surface, {\n theme: 'snow',\n modules: { toolbar: showHeader ? toolbarLayout : false },\n placeholder: latest.current.placeholder,\n readOnly: !latest.current.editable,\n });\n\n applyHtml(quill, latest.current.html);\n appliedHtml.current = latest.current.html;\n const changed = (_delta: unknown, _previous: unknown, source: string) => {\n if (source === 'silent') return;\n setState(current => ({ ...current, characters: characterCount(quill) }));\n if (source === 'user') latest.current.onUserChange();\n };\n\n quill.on('text-change', changed);\n quillReference.current = quill;\n dispose = () => {\n quill.off('text-change', changed);\n quillReference.current = undefined;\n container.replaceChildren();\n };\n setState({ ready: true, failure: undefined, characters: characterCount(quill) });\n }).catch((error: unknown) => {\n if (!disposed) setState({ ...idle, failure: error instanceof Error ? error.message : String(error) });\n });\n\n return () => {\n disposed = true;\n dispose?.();\n setState(idle);\n };\n }, [loader, host, showHeader]);\n\n useEffect(() => {\n const quill = quillReference.current;\n if (!state.ready || quill === undefined || html === appliedHtml.current) return;\n appliedHtml.current = html;\n applyHtml(quill, html);\n setState(current => ({ ...current, characters: characterCount(quill) }));\n }, [html, state.ready]);\n\n useEffect(() => {\n const quill = quillReference.current;\n if (!state.ready || quill === undefined) return;\n quill.enable(editable);\n quill.root.setAttribute('aria-readonly', String(!editable));\n const toolbar = quill.getModule('toolbar') as { container?: HTMLElement } | undefined;\n toolbar?.container?.querySelectorAll('button, select').forEach(control => {\n if (editable) control.removeAttribute('disabled'); else control.setAttribute('disabled', '');\n });\n }, [editable, state.ready]);\n\n useEffect(() => {\n const quill = quillReference.current;\n if (!state.ready || quill === undefined) return;\n quill.root.setAttribute('role', 'textbox');\n quill.root.setAttribute('aria-multiline', 'true');\n quill.root.setAttribute('aria-label', ariaLabel);\n if (placeholder === undefined) quill.root.removeAttribute('data-placeholder'); else quill.root.setAttribute('data-placeholder', placeholder);\n }, [ariaLabel, placeholder, state.ready]);\n\n return state;\n}\n"],"names":["idle","ready","failure","undefined","characters","useQuillEditor","options","loader","host","html","showHeader","editable","placeholder","ariaLabel","state","setState","useState","quillReference","useRef","appliedHtml","latest","current","useEffect","container","disposed","dispose","then","loaded","Quill","default","surface","ownerDocument","createElement","appendChild","quill","theme","modules","toolbar","toolbarLayout","readOnly","applyHtml","changed","_delta","_previous","source","characterCount","onUserChange","on","off","replaceChildren","catch","error","Error","message","String","enable","root","setAttribute","getModule","querySelectorAll","forEach","control","removeAttribute"],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ import { SceneElementView } from '@cratis/scene.react';
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof SceneElementView;
6
+ tags: string[];
7
+ parameters: {
8
+ layout: string;
9
+ docs: {
10
+ description: {
11
+ component: string;
12
+ };
13
+ };
14
+ };
15
+ };
16
+ export default meta;
17
+ type Story = StoryObj<typeof meta>;
18
+ export declare const Gallery: Story;
19
+ //# sourceMappingURL=FileGallery.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileGallery.stories.d.ts","sourceRoot":"","sources":["../../../file/FileGallery.stories.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAIvD,QAAA,MAAM,IAAI;;;;;QAKF,MAAM;QACN,IAAI;YAAI,WAAW;gBAAI,SAAS;;;;CAEC,CAAC;eAE3B,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAGnC,eAAO,MAAM,OAAO,EAAE,KAQrB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { SceneElementView } from '@cratis/scene.react';
2
+ import { primeReactComponents } from '../primeReactComponents';
3
+ import { sceneComponent, sceneGallery } from '../storyElements';
4
+ const meta = {
5
+ title: 'PrimeReact/File',
6
+ component: SceneElementView,
7
+ tags: ['autodocs'],
8
+ parameters: {
9
+ layout: 'padded',
10
+ docs: { description: { component: 'File-upload controls through the Scene registry. A host supplies an upload handler or server URL when it wants files sent.' } },
11
+ },
12
+ };
13
+ export default meta;
14
+ export const Gallery = {
15
+ args: {
16
+ element: sceneGallery('gallery', [
17
+ sceneComponent('fileUpload', 'fileUpload', { mode: 'advanced', accept: 'image/*', multiple: true }),
18
+ ]),
19
+ registry: primeReactComponents,
20
+ resolveBinding: () => undefined,
21
+ },
22
+ };
23
+ //# sourceMappingURL=FileGallery.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileGallery.stories.js","sourceRoot":"","sources":["../../../file/FileGallery.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhE,MAAM,IAAI,GAAG;IACT,KAAK,EAAE,iBAAiB;IACxB,SAAS,EAAE,gBAAgB;IAC3B,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,UAAU,EAAE;QACR,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,4HAA4H,EAAE,EAAE;KACrK;CACoC,CAAC;AAE1C,eAAe,IAAI,CAAC;AAKpB,MAAM,CAAC,MAAM,OAAO,GAAU;IAC1B,IAAI,EAAE;QACF,OAAO,EAAE,YAAY,CAAC,SAAS,EAAE;YAC7B,cAAc,CAAC,YAAY,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;SACtG,CAAC;QACF,QAAQ,EAAE,oBAAoB;QAC9B,cAAc,EAAE,GAAG,EAAE,CAAC,SAAS;KAClC;CACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { FileUploadHandler } from './FileUploadHandler';
2
+ export interface FileUploadContextValue {
3
+ handler: FileUploadHandler | undefined;
4
+ allowedOrigins: readonly string[];
5
+ }
6
+ export declare const FileUploadContext: import("react").Context<FileUploadContextValue>;
7
+ //# sourceMappingURL=FileUploadContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUploadContext.d.ts","sourceRoot":"","sources":["../../../file/FileUploadContext.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,MAAM,WAAW,sBAAsB;IAEnC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAGvC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAGD,eAAO,MAAM,iBAAiB,iDAAoF,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { createContext } from 'react';
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
+ /** Without a provider an upload goes only to the page's own origin and the control makes the request itself. */ const FileUploadContext = createContext({
6
+ handler: undefined,
7
+ allowedOrigins: []
8
+ });
9
+
10
+ export { FileUploadContext };
11
+ //# sourceMappingURL=FileUploadContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUploadContext.js","sources":["../../../file/FileUploadContext.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 { createContext } from 'react';\nimport { FileUploadHandler } from './FileUploadHandler';\n\n/** What a host provides to the file uploads inside it. */\nexport interface FileUploadContextValue {\n /** The host-owned upload effect, when it owns the effect. */\n handler: FileUploadHandler | undefined;\n\n /** The origins, besides the page's own, an upload may be sent to. */\n allowedOrigins: readonly string[];\n}\n\n/** Without a provider an upload goes only to the page's own origin and the control makes the request itself. */\nexport const FileUploadContext = createContext<FileUploadContextValue>({ handler: undefined, allowedOrigins: [] });\n"],"names":["FileUploadContext","createContext","handler","undefined","allowedOrigins"],"mappings":";;AAAA;AACA;AAcA,iHACO,MAAMA,iBAAAA,GAAoBC,aAAAA,CAAsC;IAAEC,OAAAA,EAASC,SAAAA;AAAWC,IAAAA,cAAAA,EAAgB;AAAG,CAAA;;"}
@@ -0,0 +1,4 @@
1
+ export interface FileUploadHandler {
2
+ (files: File[], serverUrl?: string): Promise<void>;
3
+ }
4
+ //# sourceMappingURL=FileUploadHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUploadHandler.d.ts","sourceRoot":"","sources":["../../../file/FileUploadHandler.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAS9B,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=FileUploadHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUploadHandler.js","sourceRoot":"","sources":["../../../file/FileUploadHandler.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { ReactNode } from 'react';
2
+ import { FileUploadHandler } from './FileUploadHandler';
3
+ export interface FileUploadHandlerProviderProps {
4
+ handler?: FileUploadHandler;
5
+ allowedOrigins?: readonly string[];
6
+ children: ReactNode;
7
+ }
8
+ export declare function FileUploadHandlerProvider({ handler, allowedOrigins, children }: FileUploadHandlerProviderProps): import("react").JSX.Element;
9
+ //# sourceMappingURL=FileUploadHandlerProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUploadHandlerProvider.d.ts","sourceRoot":"","sources":["../../../file/FileUploadHandlerProvider.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAW,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,WAAW,8BAA8B;IAK3C,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAO5B,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAGnC,QAAQ,EAAE,SAAS,CAAC;CACvB;AAMD,wBAAgB,yBAAyB,CAAC,EAAE,OAAO,EAAE,cAAmB,EAAE,QAAQ,EAAE,EAAE,8BAA8B,+BAGnH"}
@@ -0,0 +1,23 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useMemo } from 'react';
3
+ import { FileUploadContext } from './FileUploadContext.js';
4
+
5
+ /**
6
+ * Makes a host's upload effect and origin policy available without coupling the Scene package to that host's
7
+ * server client.
8
+ */ function FileUploadHandlerProvider({ handler, allowedOrigins = [], children }) {
9
+ const value = useMemo(()=>({
10
+ handler,
11
+ allowedOrigins
12
+ }), [
13
+ handler,
14
+ allowedOrigins
15
+ ]);
16
+ return /*#__PURE__*/ jsx(FileUploadContext.Provider, {
17
+ value: value,
18
+ children: children
19
+ });
20
+ }
21
+
22
+ export { FileUploadHandlerProvider };
23
+ //# sourceMappingURL=FileUploadHandlerProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUploadHandlerProvider.js","sources":["../../../file/FileUploadHandlerProvider.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 { ReactNode, useMemo } from 'react';\nimport { FileUploadContext } from './FileUploadContext';\nimport { FileUploadHandler } from './FileUploadHandler';\n\nexport interface FileUploadHandlerProviderProps {\n /**\n * The host-owned upload effect available to the enclosed Scene surface. When omitted the control posts the\n * files itself, to the authored address, under the origin policy.\n */\n handler?: FileUploadHandler;\n\n /**\n * Origins besides the page's own that an authored upload address may name, for example\n * `['https://files.example.com']`. An address on any other origin is refused before anything is sent - to\n * the handler as well. Cookies are never sent to these origins.\n */\n allowedOrigins?: readonly string[];\n\n /** The surface whose file uploads the host configures. */\n children: ReactNode;\n}\n\n/**\n * Makes a host's upload effect and origin policy available without coupling the Scene package to that host's\n * server client.\n */\nexport function FileUploadHandlerProvider({ handler, allowedOrigins = [], children }: FileUploadHandlerProviderProps) {\n const value = useMemo(() => ({ handler, allowedOrigins }), [handler, allowedOrigins]);\n return <FileUploadContext.Provider value={value}>{children}</FileUploadContext.Provider>;\n}\n"],"names":["FileUploadHandlerProvider","handler","allowedOrigins","children","value","useMemo","_jsx","FileUploadContext","Provider"],"mappings":";;;;AAyBA;;;IAIO,SAASA,yBAAAA,CAA0B,EAAEC,OAAO,EAAEC,cAAAA,GAAiB,EAAE,EAAEC,QAAQ,EAAkC,EAAA;IAChH,MAAMC,KAAAA,GAAQC,OAAAA,CAAQ,KAAO;AAAEJ,YAAAA,OAAAA;AAASC,YAAAA;AAAe,SAAA,CAAA,EAAI;AAACD,QAAAA,OAAAA;AAASC,QAAAA;AAAe,KAAA,CAAA;IACpF,qBAAOI,GAAA,CAACC,kBAAkBC,QAAQ,EAAA;QAACJ,KAAAA,EAAOA,KAAAA;AAAQD,QAAAA,QAAAA,EAAAA;;AACtD;;"}
@@ -0,0 +1,6 @@
1
+ export declare enum FileUploadMode {
2
+ Advanced = "advanced",
3
+ Basic = "basic",
4
+ Auto = "auto"
5
+ }
6
+ //# sourceMappingURL=FileUploadMode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUploadMode.d.ts","sourceRoot":"","sources":["../../../file/FileUploadMode.ts"],"names":[],"mappings":"AAIA,oBAAY,cAAc;IACtB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,IAAI,SAAS;CAChB"}
@@ -0,0 +1,11 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ /** The canonical operating modes for a file upload control. */ var FileUploadMode = /*#__PURE__*/ function(FileUploadMode) {
4
+ FileUploadMode["Advanced"] = "advanced";
5
+ FileUploadMode["Basic"] = "basic";
6
+ FileUploadMode["Auto"] = "auto";
7
+ return FileUploadMode;
8
+ }({});
9
+
10
+ export { FileUploadMode };
11
+ //# sourceMappingURL=FileUploadMode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUploadMode.js","sources":["../../../file/FileUploadMode.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/** The canonical operating modes for a file upload control. */\nexport enum FileUploadMode {\n Advanced = 'advanced',\n Basic = 'basic',\n Auto = 'auto',\n}\n"],"names":["FileUploadMode"],"mappings":"AAAA;AACA;AAEA,gEACO,IAAKA,cAAAA,iBAAAA,SAAAA,cAAAA,EAAAA;;;;AAAAA,IAAAA,OAAAA,cAAAA;AAIX,CAAA,CAAA,EAAA;;"}
@@ -0,0 +1,3 @@
1
+ import { RegisteredComponentProps } from '@cratis/scene.react';
2
+ export declare function PrimeFileUpload({ element, interactions }: RegisteredComponentProps): import("react").JSX.Element;
3
+ //# sourceMappingURL=PrimeFileUpload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrimeFileUpload.d.ts","sourceRoot":"","sources":["../../../file/PrimeFileUpload.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AA8B/D,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,wBAAwB,+BA6FlF"}