@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,6 @@
1
+ export interface QuillEditorState {
2
+ ready: boolean;
3
+ failure: string | undefined;
4
+ characters: number;
5
+ }
6
+ //# sourceMappingURL=QuillEditorState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuillEditorState.d.ts","sourceRoot":"","sources":["../../../editor/QuillEditorState.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAE7B,KAAK,EAAE,OAAO,CAAC;IAGf,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAG5B,UAAU,EAAE,MAAM,CAAC;CACtB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=QuillEditorState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuillEditorState.js","sourceRoot":"","sources":["../../../editor/QuillEditorState.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ export interface QuillInstance {
2
+ root: HTMLElement;
3
+ clipboard: {
4
+ convert(content: {
5
+ html?: string;
6
+ text?: string;
7
+ }): unknown;
8
+ };
9
+ setContents(delta: unknown, source?: 'user' | 'api' | 'silent'): unknown;
10
+ enable(enabled?: boolean): void;
11
+ getText(): string;
12
+ getModule(name: string): unknown;
13
+ on(event: 'text-change', handler: (delta: unknown, previous: unknown, source: string) => void): unknown;
14
+ off(event: 'text-change', handler: (delta: unknown, previous: unknown, source: string) => void): unknown;
15
+ }
16
+ //# sourceMappingURL=QuillInstance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuillInstance.d.ts","sourceRoot":"","sources":["../../../editor/QuillInstance.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,aAAa;IAE1B,IAAI,EAAE,WAAW,CAAC;IAElB,SAAS,EAAE;QAEP,OAAO,CAAC,OAAO,EAAE;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC;KAC/D,CAAC;IAGF,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;IAEzE,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,OAAO,IAAI,MAAM,CAAC;IAClB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC;IACxG,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC;CAC5G"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=QuillInstance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuillInstance.js","sourceRoot":"","sources":["../../../editor/QuillInstance.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { QuillConstructor } from './QuillConstructor';
2
+ export type QuillLoader = () => Promise<QuillConstructor | {
3
+ default: QuillConstructor;
4
+ }>;
5
+ //# sourceMappingURL=QuillLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuillLoader.d.ts","sourceRoot":"","sources":["../../../editor/QuillLoader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAStD,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,gBAAgB,GAAG;IAAE,OAAO,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=QuillLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuillLoader.js","sourceRoot":"","sources":["../../../editor/QuillLoader.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { QuillLoader } from './QuillLoader';
2
+ export declare const QuillLoaderContext: import("react").Context<QuillLoader | undefined>;
3
+ //# sourceMappingURL=QuillLoaderContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuillLoaderContext.d.ts","sourceRoot":"","sources":["../../../editor/QuillLoaderContext.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,eAAO,MAAM,kBAAkB,kDAAoD,CAAC"}
@@ -0,0 +1,8 @@
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 there is no loader, and the editor shows its content read-only. */ const QuillLoaderContext = createContext(undefined);
6
+
7
+ export { QuillLoaderContext };
8
+ //# sourceMappingURL=QuillLoaderContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuillLoaderContext.js","sources":["../../../editor/QuillLoaderContext.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 { QuillLoader } from './QuillLoader';\n\n/** Without a provider there is no loader, and the editor shows its content read-only. */\nexport const QuillLoaderContext = createContext<QuillLoader | undefined>(undefined);\n"],"names":["QuillLoaderContext","createContext","undefined"],"mappings":";;AAAA;AACA;AAKA,0FACO,MAAMA,kBAAAA,GAAqBC,cAAuCC,SAAAA;;"}
@@ -0,0 +1,8 @@
1
+ import { ReactNode } from 'react';
2
+ import { QuillLoader } from './QuillLoader';
3
+ export interface QuillLoaderProviderProps {
4
+ loader: QuillLoader;
5
+ children: ReactNode;
6
+ }
7
+ export declare function QuillLoaderProvider({ loader, children }: QuillLoaderProviderProps): import("react").JSX.Element;
8
+ //# sourceMappingURL=QuillLoaderProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuillLoaderProvider.d.ts","sourceRoot":"","sources":["../../../editor/QuillLoaderProvider.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,MAAM,WAAW,wBAAwB;IAErC,MAAM,EAAE,WAAW,CAAC;IAGpB,QAAQ,EAAE,SAAS,CAAC;CACvB;AAQD,wBAAgB,mBAAmB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,wBAAwB,+BAEjF"}
@@ -0,0 +1,19 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { QuillLoaderContext } from './QuillLoaderContext.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
+ * Makes editable rich text available to the `editor` controls inside it.
8
+ *
9
+ * The loader must be a stable reference - define it at module level or memoize it - because the editor
10
+ * rebuilds when it changes.
11
+ */ function QuillLoaderProvider({ loader, children }) {
12
+ return /*#__PURE__*/ jsx(QuillLoaderContext.Provider, {
13
+ value: loader,
14
+ children: children
15
+ });
16
+ }
17
+
18
+ export { QuillLoaderProvider };
19
+ //# sourceMappingURL=QuillLoaderProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuillLoaderProvider.js","sources":["../../../editor/QuillLoaderProvider.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 } from 'react';\nimport { QuillLoader } from './QuillLoader';\nimport { QuillLoaderContext } from './QuillLoaderContext';\n\nexport interface QuillLoaderProviderProps {\n /** Loads Quill. `loadQuill` from `@cratis/scene.primereact/quill` is the ready-made one. */\n loader: QuillLoader;\n\n /** The surface whose editors the loader serves. */\n children: ReactNode;\n}\n\n/**\n * Makes editable rich text available to the `editor` controls inside it.\n *\n * The loader must be a stable reference - define it at module level or memoize it - because the editor\n * rebuilds when it changes.\n */\nexport function QuillLoaderProvider({ loader, children }: QuillLoaderProviderProps) {\n return <QuillLoaderContext.Provider value={loader}>{children}</QuillLoaderContext.Provider>;\n}\n"],"names":["QuillLoaderProvider","loader","children","_jsx","QuillLoaderContext","Provider","value"],"mappings":";;;AAAA;AACA;AAcA;;;;;AAKC,IACM,SAASA,mBAAAA,CAAoB,EAAEC,MAAM,EAAEC,QAAQ,EAA4B,EAAA;IAC9E,qBAAOC,GAAA,CAACC,mBAAmBC,QAAQ,EAAA;QAACC,KAAAA,EAAOL,MAAAA;AAASC,QAAAA,QAAAA,EAAAA;;AACxD;;"}
@@ -0,0 +1,9 @@
1
+ export interface QuillOptions {
2
+ theme: 'snow';
3
+ modules: {
4
+ toolbar: (string | Record<string, unknown>)[][] | false;
5
+ };
6
+ placeholder?: string;
7
+ readOnly: boolean;
8
+ }
9
+ //# sourceMappingURL=QuillOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuillOptions.d.ts","sourceRoot":"","sources":["../../../editor/QuillOptions.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QAAE,OAAO,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAA;KAAE,CAAC;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;CACrB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=QuillOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuillOptions.js","sourceRoot":"","sources":["../../../editor/QuillOptions.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { SafeNode } from './SafeNode';
2
+ export interface SafeElement {
3
+ tag: string;
4
+ attributes: Record<string, string>;
5
+ children: SafeNode[];
6
+ }
7
+ //# sourceMappingURL=SafeElement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SafeElement.d.ts","sourceRoot":"","sources":["../../../editor/SafeElement.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,MAAM,WAAW,WAAW;IAExB,GAAG,EAAE,MAAM,CAAC;IAGZ,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnC,QAAQ,EAAE,QAAQ,EAAE,CAAC;CACxB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SafeElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SafeElement.js","sourceRoot":"","sources":["../../../editor/SafeElement.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { SafeElement } from './SafeElement';
2
+ export type SafeNode = string | SafeElement;
3
+ //# sourceMappingURL=SafeNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SafeNode.d.ts","sourceRoot":"","sources":["../../../editor/SafeNode.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SafeNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SafeNode.js","sourceRoot":"","sources":["../../../editor/SafeNode.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { QuillInstance } from './QuillInstance';
2
+ export declare function applyHtml(quill: QuillInstance, html: string): void;
3
+ //# sourceMappingURL=applyHtml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyHtml.d.ts","sourceRoot":"","sources":["../../../editor/applyHtml.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAehD,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAElE"}
@@ -0,0 +1,23 @@
1
+ import { sanitizeHtml } from './sanitizeHtml.js';
2
+ import { serializeSafeNodes } from './serializeSafeNodes.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
+ * Puts authored HTML into a Quill editor, silently.
8
+ *
9
+ * The HTML first goes through the allowlist, and what is left is converted by Quill's clipboard into a Delta
10
+ * that `setContents` applies. The authored string is never assigned to `innerHTML`, so nothing in it can run;
11
+ * and because the change is `'silent'` it raises no `text-change`, so loading a document is not reported as
12
+ * the user editing it.
13
+ *
14
+ * @param quill The editor.
15
+ * @param html The authored HTML.
16
+ */ function applyHtml(quill, html) {
17
+ quill.setContents(quill.clipboard.convert({
18
+ html: serializeSafeNodes(sanitizeHtml(html))
19
+ }), 'silent');
20
+ }
21
+
22
+ export { applyHtml };
23
+ //# sourceMappingURL=applyHtml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyHtml.js","sources":["../../../editor/applyHtml.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 { QuillInstance } from './QuillInstance';\nimport { sanitizeHtml } from './sanitizeHtml';\nimport { serializeSafeNodes } from './serializeSafeNodes';\n\n/**\n * Puts authored HTML into a Quill editor, silently.\n *\n * The HTML first goes through the allowlist, and what is left is converted by Quill's clipboard into a Delta\n * that `setContents` applies. The authored string is never assigned to `innerHTML`, so nothing in it can run;\n * and because the change is `'silent'` it raises no `text-change`, so loading a document is not reported as\n * the user editing it.\n *\n * @param quill The editor.\n * @param html The authored HTML.\n */\nexport function applyHtml(quill: QuillInstance, html: string): void {\n quill.setContents(quill.clipboard.convert({ html: serializeSafeNodes(sanitizeHtml(html)) }), 'silent');\n}\n"],"names":["applyHtml","quill","html","setContents","clipboard","convert","serializeSafeNodes","sanitizeHtml"],"mappings":";;;AAAA;AACA;AAMA;;;;;;;;;;AAUC,IACM,SAASA,SAAAA,CAAUC,KAAoB,EAAEC,IAAY,EAAA;AACxDD,IAAAA,KAAAA,CAAME,WAAW,CAACF,KAAAA,CAAMG,SAAS,CAACC,OAAO,CAAC;AAAEH,QAAAA,IAAAA,EAAMI,mBAAmBC,YAAAA,CAAaL,IAAAA,CAAAA;KAAO,CAAA,EAAI,QAAA,CAAA;AACjG;;"}
@@ -0,0 +1,3 @@
1
+ import { QuillInstance } from './QuillInstance';
2
+ export declare function characterCount(quill: QuillInstance): number;
3
+ //# sourceMappingURL=characterCount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"characterCount.d.ts","sourceRoot":"","sources":["../../../editor/characterCount.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAE3D"}
@@ -0,0 +1,8 @@
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 number of characters of text in the editor, not counting the newline Quill always ends with. */ function characterCount(quill) {
4
+ return Math.max(quill.getText().length - 1, 0);
5
+ }
6
+
7
+ export { characterCount };
8
+ //# sourceMappingURL=characterCount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"characterCount.js","sources":["../../../editor/characterCount.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 { QuillInstance } from './QuillInstance';\n\n/** The number of characters of text in the editor, not counting the newline Quill always ends with. */\nexport function characterCount(quill: QuillInstance): number {\n return Math.max(quill.getText().length - 1, 0);\n}\n"],"names":["characterCount","quill","Math","max","getText","length"],"mappings":"AAAA;AACA;AAIA,wGACO,SAASA,cAAAA,CAAeC,KAAoB,EAAA;IAC/C,OAAOC,IAAAA,CAAKC,GAAG,CAACF,KAAAA,CAAMG,OAAO,EAAA,CAAGC,MAAM,GAAG,CAAA,EAAG,CAAA,CAAA;AAChD;;"}
@@ -0,0 +1,2 @@
1
+ export declare function htmlToPlainText(html: string): string;
2
+ //# sourceMappingURL=htmlToPlainText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"htmlToPlainText.d.ts","sourceRoot":"","sources":["../../../editor/htmlToPlainText.ts"],"names":[],"mappings":"AAsBA,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA2CpD"}
@@ -0,0 +1,99 @@
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
+ /** Elements dropped together with their content, as `sanitizeHtml` does. */ const discardedWithContent = new Set([
4
+ 'script',
5
+ 'style',
6
+ 'template',
7
+ 'noscript',
8
+ 'iframe',
9
+ 'object',
10
+ 'embed',
11
+ 'svg',
12
+ 'math',
13
+ 'textarea',
14
+ 'title',
15
+ 'head'
16
+ ]);
17
+ /** Elements after which a line break reads naturally. */ const breaking = new Set([
18
+ 'p',
19
+ 'div',
20
+ 'br',
21
+ 'hr',
22
+ 'li',
23
+ 'tr',
24
+ 'blockquote',
25
+ 'pre',
26
+ 'h1',
27
+ 'h2',
28
+ 'h3',
29
+ 'h4',
30
+ 'h5',
31
+ 'h6'
32
+ ]);
33
+ const namedEntities = {
34
+ amp: '&',
35
+ lt: '<',
36
+ gt: '>',
37
+ quot: '"',
38
+ apos: "'",
39
+ nbsp: ' '
40
+ };
41
+ /**
42
+ * Reads authored HTML as plain text, without a DOM.
43
+ *
44
+ * This is what server rendering shows, where there is no `DOMParser` to build safe markup with. The result
45
+ * is only ever rendered as text, which React escapes, so it cannot carry markup however the input is built.
46
+ * It scans once, left to right: tags are dropped, script, style and similar elements go with their content,
47
+ * and block elements become line breaks.
48
+ *
49
+ * @param html The authored HTML.
50
+ * @returns The text, with line breaks between blocks.
51
+ */ function htmlToPlainText(html) {
52
+ const lower = html.toLowerCase();
53
+ let text = '';
54
+ let position = 0;
55
+ while(position < html.length){
56
+ const open = html.indexOf('<', position);
57
+ if (open === -1) {
58
+ text += html.slice(position);
59
+ break;
60
+ }
61
+ text += html.slice(position, open);
62
+ if (!/[a-z/!?]/i.test(html[open + 1] ?? '')) {
63
+ text += '<';
64
+ position = open + 1;
65
+ continue;
66
+ }
67
+ if (lower.startsWith('<!--', open)) {
68
+ const close = html.indexOf('-->', open + 4);
69
+ position = close === -1 ? html.length : close + 3;
70
+ continue;
71
+ }
72
+ const close = html.indexOf('>', open);
73
+ if (close === -1) {
74
+ text += html.slice(open);
75
+ break;
76
+ }
77
+ const name = /^<\/?([a-z][a-z0-9]*)/.exec(lower.slice(open, close + 1))?.[1];
78
+ position = close + 1;
79
+ if (name === undefined) continue;
80
+ if (lower[open + 1] !== '/' && discardedWithContent.has(name)) {
81
+ const end = lower.indexOf(`</${name}`, position);
82
+ const endClose = end === -1 ? -1 : html.indexOf('>', end);
83
+ position = endClose === -1 ? html.length : endClose + 1;
84
+ } else if (breaking.has(name) && (lower[open + 1] === '/' || name === 'br' || name === 'hr')) {
85
+ text += '\n';
86
+ }
87
+ }
88
+ return decodeEntities(text).replace(/\n{3,}/g, '\n\n').trim();
89
+ }
90
+ function decodeEntities(text) {
91
+ return text.replace(/&(#x[0-9a-f]{1,6}|#[0-9]{1,7}|[a-z]+);/gi, (match, entity)=>{
92
+ if (entity[0] !== '#') return namedEntities[entity.toLowerCase()] ?? match;
93
+ const code = entity[1].toLowerCase() === 'x' ? parseInt(entity.slice(2), 16) : parseInt(entity.slice(1), 10);
94
+ return code > 0 && code <= 0x10ffff && !(code >= 0xd800 && code <= 0xdfff) ? String.fromCodePoint(code) : match;
95
+ });
96
+ }
97
+
98
+ export { htmlToPlainText };
99
+ //# sourceMappingURL=htmlToPlainText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"htmlToPlainText.js","sources":["../../../editor/htmlToPlainText.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/** Elements dropped together with their content, as `sanitizeHtml` does. */\nconst discardedWithContent = new Set(['script', 'style', 'template', 'noscript', 'iframe', 'object', 'embed', 'svg', 'math', 'textarea', 'title', 'head']);\n\n/** Elements after which a line break reads naturally. */\nconst breaking = new Set(['p', 'div', 'br', 'hr', 'li', 'tr', 'blockquote', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6']);\n\nconst namedEntities: Record<string, string> = { amp: '&', lt: '<', gt: '>', quot: '\"', apos: \"'\", nbsp: ' ' };\n\n/**\n * Reads authored HTML as plain text, without a DOM.\n *\n * This is what server rendering shows, where there is no `DOMParser` to build safe markup with. The result\n * is only ever rendered as text, which React escapes, so it cannot carry markup however the input is built.\n * It scans once, left to right: tags are dropped, script, style and similar elements go with their content,\n * and block elements become line breaks.\n *\n * @param html The authored HTML.\n * @returns The text, with line breaks between blocks.\n */\nexport function htmlToPlainText(html: string): string {\n const lower = html.toLowerCase();\n let text = '';\n let position = 0;\n while (position < html.length) {\n const open = html.indexOf('<', position);\n if (open === -1) {\n text += html.slice(position);\n break;\n }\n\n text += html.slice(position, open);\n if (!/[a-z/!?]/i.test(html[open + 1] ?? '')) {\n text += '<';\n position = open + 1;\n continue;\n }\n\n if (lower.startsWith('<!--', open)) {\n const close = html.indexOf('-->', open + 4);\n position = close === -1 ? html.length : close + 3;\n continue;\n }\n\n const close = html.indexOf('>', open);\n if (close === -1) {\n text += html.slice(open);\n break;\n }\n\n const name = /^<\\/?([a-z][a-z0-9]*)/.exec(lower.slice(open, close + 1))?.[1];\n position = close + 1;\n if (name === undefined) continue;\n if (lower[open + 1] !== '/' && discardedWithContent.has(name)) {\n const end = lower.indexOf(`</${name}`, position);\n const endClose = end === -1 ? -1 : html.indexOf('>', end);\n position = endClose === -1 ? html.length : endClose + 1;\n } else if (breaking.has(name) && (lower[open + 1] === '/' || name === 'br' || name === 'hr')) {\n text += '\\n';\n }\n }\n\n return decodeEntities(text).replace(/\\n{3,}/g, '\\n\\n').trim();\n}\n\nfunction decodeEntities(text: string): string {\n return text.replace(/&(#x[0-9a-f]{1,6}|#[0-9]{1,7}|[a-z]+);/gi, (match, entity: string) => {\n if (entity[0] !== '#') return namedEntities[entity.toLowerCase()] ?? match;\n const code = entity[1].toLowerCase() === 'x' ? parseInt(entity.slice(2), 16) : parseInt(entity.slice(1), 10);\n return code > 0 && code <= 0x10ffff && !(code >= 0xd800 && code <= 0xdfff) ? String.fromCodePoint(code) : match;\n });\n}\n"],"names":["discardedWithContent","Set","breaking","namedEntities","amp","lt","gt","quot","apos","nbsp","htmlToPlainText","html","lower","toLowerCase","text","position","length","open","indexOf","slice","test","startsWith","close","name","exec","undefined","has","end","endClose","decodeEntities","replace","trim","match","entity","code","parseInt","String","fromCodePoint"],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export * from './PrimeEditor';
2
+ export * from './QuillConstructor';
3
+ export * from './QuillInstance';
4
+ export * from './QuillLoader';
5
+ export * from './QuillLoaderProvider';
6
+ export * from './QuillOptions';
7
+ export * from './htmlToPlainText';
8
+ export * from './renderSafeNodes';
9
+ export * from './SafeElement';
10
+ export * from './SafeNode';
11
+ export * from './safeUrls';
12
+ export * from './sanitizeHtml';
13
+ export * from './serializeSafeNodes';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../editor/index.ts"],"names":[],"mappings":"AAGA,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,14 @@
1
+ export * from './PrimeEditor';
2
+ export * from './QuillConstructor';
3
+ export * from './QuillInstance';
4
+ export * from './QuillLoader';
5
+ export * from './QuillLoaderProvider';
6
+ export * from './QuillOptions';
7
+ export * from './htmlToPlainText';
8
+ export * from './renderSafeNodes';
9
+ export * from './SafeElement';
10
+ export * from './SafeNode';
11
+ export * from './safeUrls';
12
+ export * from './sanitizeHtml';
13
+ export * from './serializeSafeNodes';
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../editor/index.ts"],"names":[],"mappings":"AAGA,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { ReactNode } from 'react';
2
+ import { SafeNode } from './SafeNode';
3
+ export declare function renderSafeNodes(nodes: SafeNode[]): ReactNode[];
4
+ //# sourceMappingURL=renderSafeNodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderSafeNodes.d.ts","sourceRoot":"","sources":["../../../editor/renderSafeNodes.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAatC,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,CAQ9D"}
@@ -0,0 +1,33 @@
1
+ import { createElement } 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
+ const voidTags = new Set([
6
+ 'br',
7
+ 'hr',
8
+ 'img'
9
+ ]);
10
+ /**
11
+ * Renders safe nodes as React elements.
12
+ *
13
+ * Nothing is ever injected as markup: each node becomes an element created from the allowlisted tag name with
14
+ * the validated attributes, and text goes through React's escaping. Links are made `noopener noreferrer` and
15
+ * open in the same context.
16
+ *
17
+ * @param nodes The nodes `sanitizeHtml` returned.
18
+ */ function renderSafeNodes(nodes) {
19
+ return nodes.map((node, index)=>{
20
+ if (typeof node === 'string') return node;
21
+ const { class: className, ...attributes } = node.attributes;
22
+ const properties = {
23
+ key: String(index),
24
+ className,
25
+ ...attributes
26
+ };
27
+ if (node.tag === 'a') properties.rel = 'noopener noreferrer';
28
+ return /*#__PURE__*/ createElement(node.tag, properties, ...voidTags.has(node.tag) ? [] : renderSafeNodes(node.children));
29
+ });
30
+ }
31
+
32
+ export { renderSafeNodes };
33
+ //# sourceMappingURL=renderSafeNodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderSafeNodes.js","sources":["../../../editor/renderSafeNodes.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 { createElement, ReactNode } from 'react';\nimport { SafeNode } from './SafeNode';\n\nconst voidTags = new Set(['br', 'hr', 'img']);\n\n/**\n * Renders safe nodes as React elements.\n *\n * Nothing is ever injected as markup: each node becomes an element created from the allowlisted tag name with\n * the validated attributes, and text goes through React's escaping. Links are made `noopener noreferrer` and\n * open in the same context.\n *\n * @param nodes The nodes `sanitizeHtml` returned.\n */\nexport function renderSafeNodes(nodes: SafeNode[]): ReactNode[] {\n return nodes.map((node, index) => {\n if (typeof node === 'string') return node;\n const { class: className, ...attributes } = node.attributes;\n const properties: Record<string, string | undefined> = { key: String(index), className, ...attributes };\n if (node.tag === 'a') properties.rel = 'noopener noreferrer';\n return createElement(node.tag, properties, ...(voidTags.has(node.tag) ? [] : renderSafeNodes(node.children)));\n });\n}\n"],"names":["voidTags","Set","renderSafeNodes","nodes","map","node","index","class","className","attributes","properties","key","String","tag","rel","createElement","has","children"],"mappings":";;AAAA;AACA;AAKA,MAAMA,QAAAA,GAAW,IAAIC,GAAAA,CAAI;AAAC,IAAA,IAAA;AAAM,IAAA,IAAA;AAAM,IAAA;AAAM,CAAA,CAAA;AAE5C;;;;;;;;IASO,SAASC,eAAAA,CAAgBC,KAAiB,EAAA;AAC7C,IAAA,OAAOA,KAAAA,CAAMC,GAAG,CAAC,CAACC,IAAAA,EAAMC,KAAAA,GAAAA;QACpB,IAAI,OAAOD,IAAAA,KAAS,QAAA,EAAU,OAAOA,IAAAA;QACrC,MAAM,EAAEE,OAAOC,SAAS,EAAE,GAAGC,UAAAA,EAAY,GAAGJ,KAAKI,UAAU;AAC3D,QAAA,MAAMC,UAAAA,GAAiD;AAAEC,YAAAA,GAAAA,EAAKC,MAAAA,CAAON,KAAAA,CAAAA;AAAQE,YAAAA,SAAAA;AAAW,YAAA,GAAGC;AAAW,SAAA;AACtG,QAAA,IAAIJ,KAAKQ,GAAG,KAAK,GAAA,EAAKH,UAAAA,CAAWI,GAAG,GAAG,qBAAA;AACvC,QAAA,qBAAOC,aAAAA,CAAcV,IAAAA,CAAKQ,GAAG,EAAEH,eAAgBV,QAAAA,CAASgB,GAAG,CAACX,IAAAA,CAAKQ,GAAG,CAAA,GAAI,EAAE,GAAGX,eAAAA,CAAgBG,KAAKY,QAAQ,CAAA,CAAA;AAC9G,IAAA,CAAA,CAAA;AACJ;;"}
@@ -0,0 +1,3 @@
1
+ export declare function safeLinkUrl(value: string): string | undefined;
2
+ export declare function safeImageUrl(value: string): string | undefined;
3
+ //# sourceMappingURL=safeUrls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safeUrls.d.ts","sourceRoot":"","sources":["../../../editor/safeUrls.ts"],"names":[],"mappings":"AAqBA,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ7D;AAUD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG9D"}
@@ -0,0 +1,41 @@
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
+ /** Schemes a link may use. Anything else, `javascript:` and `data:` above all, is dropped. */ const linkProtocols = new Set([
4
+ 'http:',
5
+ 'https:',
6
+ 'mailto:',
7
+ 'tel:'
8
+ ]);
9
+ /** The only images that are kept: small raster data URLs. A remote image is a request made just by rendering. */ const rasterDataUrl = /^data:image\/(png|jpeg|gif|webp);base64,[a-z0-9+/]+={0,2}$/i;
10
+ /** Resolved against, to learn which scheme a browser would act on. It is never sent to. */ const placeholderOrigin = 'https://editor.invalid';
11
+ /**
12
+ * Returns a link target a browser may follow, or `undefined`.
13
+ *
14
+ * Browsers strip tabs and newlines from inside a scheme, so the address is judged by what `URL` resolves it to
15
+ * and not by its text: `java\tscript:` is a `javascript:` link. Relative links and fragments resolve against
16
+ * an http origin and are kept.
17
+ *
18
+ * @param value The authored `href`.
19
+ */ function safeLinkUrl(value) {
20
+ const trimmed = value.trim();
21
+ if (trimmed === '') return undefined;
22
+ try {
23
+ return linkProtocols.has(new URL(trimmed, placeholderOrigin).protocol) ? trimmed : undefined;
24
+ } catch {
25
+ return undefined;
26
+ }
27
+ }
28
+ /**
29
+ * Returns an image source that may be rendered, or `undefined`.
30
+ *
31
+ * Only base64 PNG, JPEG, GIF and WebP data URLs pass. SVG is refused because it can carry script, and an
32
+ * `http(s)` image is refused because rendering it would contact a server the author named.
33
+ *
34
+ * @param value The authored `src`.
35
+ */ function safeImageUrl(value) {
36
+ const trimmed = value.trim();
37
+ return rasterDataUrl.test(trimmed) ? trimmed : undefined;
38
+ }
39
+
40
+ export { safeImageUrl, safeLinkUrl };
41
+ //# sourceMappingURL=safeUrls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safeUrls.js","sources":["../../../editor/safeUrls.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/** Schemes a link may use. Anything else, `javascript:` and `data:` above all, is dropped. */\nconst linkProtocols = new Set(['http:', 'https:', 'mailto:', 'tel:']);\n\n/** The only images that are kept: small raster data URLs. A remote image is a request made just by rendering. */\nconst rasterDataUrl = /^data:image\\/(png|jpeg|gif|webp);base64,[a-z0-9+/]+={0,2}$/i;\n\n/** Resolved against, to learn which scheme a browser would act on. It is never sent to. */\nconst placeholderOrigin = 'https://editor.invalid';\n\n/**\n * Returns a link target a browser may follow, or `undefined`.\n *\n * Browsers strip tabs and newlines from inside a scheme, so the address is judged by what `URL` resolves it to\n * and not by its text: `java\\tscript:` is a `javascript:` link. Relative links and fragments resolve against\n * an http origin and are kept.\n *\n * @param value The authored `href`.\n */\nexport function safeLinkUrl(value: string): string | undefined {\n const trimmed = value.trim();\n if (trimmed === '') return undefined;\n try {\n return linkProtocols.has(new URL(trimmed, placeholderOrigin).protocol) ? trimmed : undefined;\n } catch {\n return undefined;\n }\n}\n\n/**\n * Returns an image source that may be rendered, or `undefined`.\n *\n * Only base64 PNG, JPEG, GIF and WebP data URLs pass. SVG is refused because it can carry script, and an\n * `http(s)` image is refused because rendering it would contact a server the author named.\n *\n * @param value The authored `src`.\n */\nexport function safeImageUrl(value: string): string | undefined {\n const trimmed = value.trim();\n return rasterDataUrl.test(trimmed) ? trimmed : undefined;\n}\n"],"names":["linkProtocols","Set","rasterDataUrl","placeholderOrigin","safeLinkUrl","value","trimmed","trim","undefined","has","URL","protocol","safeImageUrl","test"],"mappings":"AAAA;AACA;AAEA,+FACA,MAAMA,aAAAA,GAAgB,IAAIC,GAAAA,CAAI;AAAC,IAAA,OAAA;AAAS,IAAA,QAAA;AAAU,IAAA,SAAA;AAAW,IAAA;AAAO,CAAA,CAAA;AAEpE,kHACA,MAAMC,aAAAA,GAAgB,6DAAA;AAEtB,4FACA,MAAMC,iBAAAA,GAAoB,wBAAA;AAE1B;;;;;;;;IASO,SAASC,WAAAA,CAAYC,KAAa,EAAA;IACrC,MAAMC,OAAAA,GAAUD,MAAME,IAAI,EAAA;IAC1B,IAAID,OAAAA,KAAY,IAAI,OAAOE,SAAAA;IAC3B,IAAI;QACA,OAAOR,aAAAA,CAAcS,GAAG,CAAC,IAAIC,IAAIJ,OAAAA,EAASH,iBAAAA,CAAAA,CAAmBQ,QAAQ,CAAA,GAAIL,OAAAA,GAAUE,SAAAA;AACvF,IAAA,CAAA,CAAE,OAAM;QACJ,OAAOA,SAAAA;AACX,IAAA;AACJ;AAEA;;;;;;;IAQO,SAASI,YAAAA,CAAaP,KAAa,EAAA;IACtC,MAAMC,OAAAA,GAAUD,MAAME,IAAI,EAAA;AAC1B,IAAA,OAAOL,aAAAA,CAAcW,IAAI,CAACP,OAAAA,CAAAA,GAAWA,OAAAA,GAAUE,SAAAA;AACnD;;"}
@@ -0,0 +1,3 @@
1
+ import { SafeNode } from './SafeNode';
2
+ export declare function sanitizeHtml(html: string): SafeNode[];
3
+ //# sourceMappingURL=sanitizeHtml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitizeHtml.d.ts","sourceRoot":"","sources":["../../../editor/sanitizeHtml.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAuCtC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CAGrD"}