@panphora/bevel 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (539) hide show
  1. package/LICENSE +16 -0
  2. package/README.md +226 -0
  3. package/bevel-fonts.css +16 -0
  4. package/bevel.css +3075 -0
  5. package/bevel.js +2126 -0
  6. package/dist/react/components/activity-feed.d.ts +89 -0
  7. package/dist/react/components/activity-feed.js +54 -0
  8. package/dist/react/components/alert-dialog.d.ts +14 -0
  9. package/dist/react/components/alert-dialog.js +19 -0
  10. package/dist/react/components/app-shell.d.ts +98 -0
  11. package/dist/react/components/app-shell.js +86 -0
  12. package/dist/react/components/app-toolbar.d.ts +19 -0
  13. package/dist/react/components/app-toolbar.js +22 -0
  14. package/dist/react/components/avatar-group.d.ts +67 -0
  15. package/dist/react/components/avatar-group.js +49 -0
  16. package/dist/react/components/badge-and-pill.d.ts +34 -0
  17. package/dist/react/components/badge-and-pill.js +12 -0
  18. package/dist/react/components/breadcrumbs.d.ts +56 -0
  19. package/dist/react/components/breadcrumbs.js +44 -0
  20. package/dist/react/components/bulk-bar.d.ts +22 -0
  21. package/dist/react/components/bulk-bar.js +59 -0
  22. package/dist/react/components/button.d.ts +15 -0
  23. package/dist/react/components/button.js +20 -0
  24. package/dist/react/components/callout-and-hint.d.ts +17 -0
  25. package/dist/react/components/callout-and-hint.js +8 -0
  26. package/dist/react/components/checkbox.d.ts +5 -0
  27. package/dist/react/components/checkbox.js +13 -0
  28. package/dist/react/components/chip.d.ts +149 -0
  29. package/dist/react/components/chip.js +29 -0
  30. package/dist/react/components/code-block.d.ts +50 -0
  31. package/dist/react/components/code-block.js +77 -0
  32. package/dist/react/components/code-editor.d.ts +122 -0
  33. package/dist/react/components/code-editor.js +695 -0
  34. package/dist/react/components/column-manager.d.ts +28 -0
  35. package/dist/react/components/column-manager.js +85 -0
  36. package/dist/react/components/combobox.d.ts +32 -0
  37. package/dist/react/components/combobox.js +37 -0
  38. package/dist/react/components/data-grid.d.ts +108 -0
  39. package/dist/react/components/data-grid.js +159 -0
  40. package/dist/react/components/data-table.d.ts +2 -0
  41. package/dist/react/components/data-table.js +6 -0
  42. package/dist/react/components/date.d.ts +23 -0
  43. package/dist/react/components/date.js +11 -0
  44. package/dist/react/components/details.d.ts +13 -0
  45. package/dist/react/components/details.js +20 -0
  46. package/dist/react/components/dialog.d.ts +74 -0
  47. package/dist/react/components/dialog.js +31 -0
  48. package/dist/react/components/diff-view.d.ts +73 -0
  49. package/dist/react/components/diff-view.js +68 -0
  50. package/dist/react/components/documents.d.ts +70 -0
  51. package/dist/react/components/documents.js +10 -0
  52. package/dist/react/components/drawer.d.ts +45 -0
  53. package/dist/react/components/drawer.js +35 -0
  54. package/dist/react/components/editable-grid-cells.d.ts +32 -0
  55. package/dist/react/components/editable-grid-cells.js +116 -0
  56. package/dist/react/components/eyebrow-kicker-lede-pull-quote.d.ts +39 -0
  57. package/dist/react/components/eyebrow-kicker-lede-pull-quote.js +12 -0
  58. package/dist/react/components/field.d.ts +32 -0
  59. package/dist/react/components/field.js +27 -0
  60. package/dist/react/components/file-tree.d.ts +75 -0
  61. package/dist/react/components/file-tree.js +247 -0
  62. package/dist/react/components/file.d.ts +43 -0
  63. package/dist/react/components/file.js +73 -0
  64. package/dist/react/components/files-table.d.ts +174 -0
  65. package/dist/react/components/files-table.js +237 -0
  66. package/dist/react/components/filter-builder.d.ts +37 -0
  67. package/dist/react/components/filter-builder.js +109 -0
  68. package/dist/react/components/form-error-summary.d.ts +16 -0
  69. package/dist/react/components/form-error-summary.js +49 -0
  70. package/dist/react/components/icon-button.d.ts +8 -0
  71. package/dist/react/components/icon-button.js +14 -0
  72. package/dist/react/components/icon.d.ts +7 -0
  73. package/dist/react/components/icon.js +15 -0
  74. package/dist/react/components/image.d.ts +72 -0
  75. package/dist/react/components/image.js +24 -0
  76. package/dist/react/components/inline-edit.d.ts +70 -0
  77. package/dist/react/components/inline-edit.js +149 -0
  78. package/dist/react/components/input.d.ts +29 -0
  79. package/dist/react/components/input.js +20 -0
  80. package/dist/react/components/kanban-board.d.ts +140 -0
  81. package/dist/react/components/kanban-board.js +374 -0
  82. package/dist/react/components/layout.d.ts +51 -0
  83. package/dist/react/components/layout.js +28 -0
  84. package/dist/react/components/list.d.ts +28 -0
  85. package/dist/react/components/list.js +6 -0
  86. package/dist/react/components/masthead-and-verdict.d.ts +60 -0
  87. package/dist/react/components/masthead-and-verdict.js +8 -0
  88. package/dist/react/components/menu.d.ts +26 -0
  89. package/dist/react/components/menu.js +31 -0
  90. package/dist/react/components/multi-select-picker.d.ts +49 -0
  91. package/dist/react/components/multi-select-picker.js +20 -0
  92. package/dist/react/components/note.d.ts +33 -0
  93. package/dist/react/components/note.js +8 -0
  94. package/dist/react/components/number-field.d.ts +16 -0
  95. package/dist/react/components/number-field.js +17 -0
  96. package/dist/react/components/pagination.d.ts +45 -0
  97. package/dist/react/components/pagination.js +87 -0
  98. package/dist/react/components/persistent-action-banner.d.ts +71 -0
  99. package/dist/react/components/persistent-action-banner.js +39 -0
  100. package/dist/react/components/popconfirm.d.ts +42 -0
  101. package/dist/react/components/popconfirm.js +59 -0
  102. package/dist/react/components/popover.d.ts +16 -0
  103. package/dist/react/components/popover.js +21 -0
  104. package/dist/react/components/progress-and-gauge.d.ts +44 -0
  105. package/dist/react/components/progress-and-gauge.js +19 -0
  106. package/dist/react/components/radio.d.ts +7 -0
  107. package/dist/react/components/radio.js +13 -0
  108. package/dist/react/components/rich-text-toolbar.d.ts +26 -0
  109. package/dist/react/components/rich-text-toolbar.js +64 -0
  110. package/dist/react/components/rows-and-card.d.ts +88 -0
  111. package/dist/react/components/rows-and-card.js +10 -0
  112. package/dist/react/components/save-status-indicator.d.ts +11 -0
  113. package/dist/react/components/save-status-indicator.js +33 -0
  114. package/dist/react/components/segmented-control.d.ts +21 -0
  115. package/dist/react/components/segmented-control.js +15 -0
  116. package/dist/react/components/select.d.ts +29 -0
  117. package/dist/react/components/select.js +29 -0
  118. package/dist/react/components/selectable-cards.d.ts +30 -0
  119. package/dist/react/components/selectable-cards.js +29 -0
  120. package/dist/react/components/settings-rows.d.ts +51 -0
  121. package/dist/react/components/settings-rows.js +8 -0
  122. package/dist/react/components/sidebar-nav.d.ts +77 -0
  123. package/dist/react/components/sidebar-nav.js +41 -0
  124. package/dist/react/components/skeleton-and-empty.d.ts +51 -0
  125. package/dist/react/components/skeleton-and-empty.js +14 -0
  126. package/dist/react/components/slider.d.ts +19 -0
  127. package/dist/react/components/slider.js +17 -0
  128. package/dist/react/components/small-charts.d.ts +60 -0
  129. package/dist/react/components/small-charts.js +76 -0
  130. package/dist/react/components/sortable.d.ts +30 -0
  131. package/dist/react/components/sortable.js +85 -0
  132. package/dist/react/components/split-button.d.ts +38 -0
  133. package/dist/react/components/split-button.js +43 -0
  134. package/dist/react/components/split-panes.d.ts +35 -0
  135. package/dist/react/components/split-panes.js +102 -0
  136. package/dist/react/components/stat-tiles.d.ts +54 -0
  137. package/dist/react/components/stat-tiles.js +8 -0
  138. package/dist/react/components/steps.d.ts +11 -0
  139. package/dist/react/components/steps.js +13 -0
  140. package/dist/react/components/switch.d.ts +6 -0
  141. package/dist/react/components/switch.js +13 -0
  142. package/dist/react/components/table.d.ts +61 -0
  143. package/dist/react/components/table.js +6 -0
  144. package/dist/react/components/tabs.d.ts +7 -0
  145. package/dist/react/components/tabs.js +13 -0
  146. package/dist/react/components/tags.d.ts +33 -0
  147. package/dist/react/components/tags.js +83 -0
  148. package/dist/react/components/textarea.d.ts +10 -0
  149. package/dist/react/components/textarea.js +6 -0
  150. package/dist/react/components/toast.d.ts +35 -0
  151. package/dist/react/components/toast.js +90 -0
  152. package/dist/react/components/tooltip-and-key.d.ts +20 -0
  153. package/dist/react/components/tooltip-and-key.js +20 -0
  154. package/dist/react/components/tree-view.d.ts +34 -0
  155. package/dist/react/components/tree-view.js +118 -0
  156. package/dist/react/components/upload-dropzone.d.ts +92 -0
  157. package/dist/react/components/upload-dropzone.js +116 -0
  158. package/dist/react/components/wizard-shell.d.ts +78 -0
  159. package/dist/react/components/wizard-shell.js +176 -0
  160. package/dist/react/fonts.css.d.ts +1 -0
  161. package/dist/react/index.d.ts +76 -0
  162. package/dist/react/index.js +77 -0
  163. package/dist/react/integrations/quickcrop.d.ts +58 -0
  164. package/dist/react/integrations/quickcrop.js +137 -0
  165. package/dist/react/integrations/richclay.d.ts +43 -0
  166. package/dist/react/integrations/richclay.js +129 -0
  167. package/dist/react/internal/classes.d.ts +3 -0
  168. package/dist/react/internal/classes.js +10 -0
  169. package/dist/react/internal/close-mark.d.ts +1 -0
  170. package/dist/react/internal/close-mark.js +10 -0
  171. package/dist/react/internal/controllable-state.d.ts +9 -0
  172. package/dist/react/internal/controllable-state.js +22 -0
  173. package/dist/react/internal/drop-effect.d.ts +28 -0
  174. package/dist/react/internal/drop-effect.js +8 -0
  175. package/dist/react/internal/form-reset.d.ts +2 -0
  176. package/dist/react/internal/form-reset.js +22 -0
  177. package/dist/react/internal/format.d.ts +1 -0
  178. package/dist/react/internal/format.js +14 -0
  179. package/dist/react/internal/link.d.ts +2 -0
  180. package/dist/react/internal/link.js +8 -0
  181. package/dist/react/internal/part.d.ts +20 -0
  182. package/dist/react/internal/part.js +47 -0
  183. package/dist/react/internal/pointer-session.d.ts +8 -0
  184. package/dist/react/internal/pointer-session.js +60 -0
  185. package/dist/react/internal/refs.d.ts +2 -0
  186. package/dist/react/internal/refs.js +22 -0
  187. package/dist/react/internal/rich-text.d.ts +28 -0
  188. package/dist/react/internal/rich-text.js +4 -0
  189. package/dist/react/internal/table-context.d.ts +39 -0
  190. package/dist/react/internal/table-context.js +12 -0
  191. package/dist/react/internal/use-object-url.d.ts +1 -0
  192. package/dist/react/internal/use-object-url.js +15 -0
  193. package/dist/react/layout.css +274 -0
  194. package/dist/react/layout.css.d.ts +1 -0
  195. package/dist/react/models/filter.d.ts +31 -0
  196. package/dist/react/models/filter.js +79 -0
  197. package/dist/react/models/kanban.d.ts +51 -0
  198. package/dist/react/models/kanban.js +35 -0
  199. package/dist/react/models/reorder.d.ts +9 -0
  200. package/dist/react/models/reorder.js +23 -0
  201. package/dist/react/models/table.d.ts +85 -0
  202. package/dist/react/models/table.js +144 -0
  203. package/dist/react/models/tree.d.ts +16 -0
  204. package/dist/react/models/tree.js +26 -0
  205. package/dist/react/provider.d.ts +18 -0
  206. package/dist/react/provider.js +31 -0
  207. package/dist/react/recipes/context-hypercms.d.ts +17 -0
  208. package/dist/react/recipes/context-hypercms.js +71 -0
  209. package/dist/react/recipes/context-quickcrop.d.ts +8 -0
  210. package/dist/react/recipes/context-quickcrop.js +49 -0
  211. package/dist/react/theme.css +8004 -0
  212. package/dist/react/theme.css.d.ts +1 -0
  213. package/examples/README.md +34 -0
  214. package/examples/components/activity-feed.html +28 -0
  215. package/examples/components/app-shell.html +12 -0
  216. package/examples/components/app-toolbar.html +38 -0
  217. package/examples/components/avatar-group.html +27 -0
  218. package/examples/components/breadcrumbs.html +26 -0
  219. package/examples/components/bulk-bar.html +22 -0
  220. package/examples/components/code-block.html +12 -0
  221. package/examples/components/code-editor.html +25 -0
  222. package/examples/components/column-manager.html +9 -0
  223. package/examples/components/combobox.html +13 -0
  224. package/examples/components/context-hypercms.css +41 -0
  225. package/examples/components/context-hypercms.html +40 -0
  226. package/examples/components/context-hypercms.js +62 -0
  227. package/examples/components/context-quickcrop.html +137 -0
  228. package/examples/components/diff-view.html +9 -0
  229. package/examples/components/drawer.html +11 -0
  230. package/examples/components/editable-grid-cells.html +9 -0
  231. package/examples/components/file-browser.html +53 -0
  232. package/examples/components/file-tree.html +34 -0
  233. package/examples/components/files-table.html +80 -0
  234. package/examples/components/filter-builder.html +11 -0
  235. package/examples/components/form-error-summary.html +11 -0
  236. package/examples/components/index.html +51 -0
  237. package/examples/components/inline-edit.html +42 -0
  238. package/examples/components/kanban-board.html +42 -0
  239. package/examples/components/manifest.json +3279 -0
  240. package/examples/components/modal.html +11 -0
  241. package/examples/components/multi-select-picker.html +13 -0
  242. package/examples/components/pagination.html +32 -0
  243. package/examples/components/persistent-action-banner.html +23 -0
  244. package/examples/components/popconfirm.html +13 -0
  245. package/examples/components/popover-menu.html +13 -0
  246. package/examples/components/reference/baseline/DECISIONS.md +85 -0
  247. package/examples/components/reference/baseline/README.md +58 -0
  248. package/examples/components/reference/baseline/bevel-fonts.css +16 -0
  249. package/examples/components/reference/baseline/bevel.css +1339 -0
  250. package/examples/components/reference/baseline/bevel.js +496 -0
  251. package/examples/components/reference/baseline/fonts/LICENSE-ibm-plex-mono.txt +93 -0
  252. package/examples/components/reference/baseline/fonts/LICENSE-ibm-plex-sans.txt +93 -0
  253. package/examples/components/reference/baseline/fonts/LICENSE-newsreader.txt +93 -0
  254. package/examples/components/reference/baseline/fonts/ibm-plex-mono-latin-400-normal.woff2 +0 -0
  255. package/examples/components/reference/baseline/fonts/ibm-plex-mono-latin-500-normal.woff2 +0 -0
  256. package/examples/components/reference/baseline/fonts/ibm-plex-mono-latin-600-normal.woff2 +0 -0
  257. package/examples/components/reference/baseline/fonts/ibm-plex-sans-latin-400-italic.woff2 +0 -0
  258. package/examples/components/reference/baseline/fonts/ibm-plex-sans-latin-400-normal.woff2 +0 -0
  259. package/examples/components/reference/baseline/fonts/ibm-plex-sans-latin-500-normal.woff2 +0 -0
  260. package/examples/components/reference/baseline/fonts/ibm-plex-sans-latin-600-normal.woff2 +0 -0
  261. package/examples/components/reference/baseline/fonts/newsreader-latin-opsz-italic.woff2 +0 -0
  262. package/examples/components/reference/baseline/fonts/newsreader-latin-opsz-normal.woff2 +0 -0
  263. package/examples/components/reference/fable/IMPROVEMENTS.md +106 -0
  264. package/examples/components/reference/fable/PARENT-REPAIRS.md +17 -0
  265. package/examples/components/reference/fable/__pycache__/build_repairs.cpython-311.pyc +0 -0
  266. package/examples/components/reference/fable/__pycache__/kanban.cpython-311.pyc +0 -0
  267. package/examples/components/reference/fable/as-authored/IMPROVEMENTS-completed.md +106 -0
  268. package/examples/components/reference/fable/as-authored/base-astra.css +17 -0
  269. package/examples/components/reference/fable/as-authored/base-parent.css +416 -0
  270. package/examples/components/reference/fable/as-authored/build.py +858 -0
  271. package/examples/components/reference/fable/as-authored/fable.css +823 -0
  272. package/examples/components/reference/fable/as-authored/kanban-completed.css +235 -0
  273. package/examples/components/reference/fable/as-authored/kanban-completed.html +53 -0
  274. package/examples/components/reference/fable/as-authored/kanban-completed.py +212 -0
  275. package/examples/components/reference/fable/as-authored/kanban.py +207 -0
  276. package/examples/components/reference/fable/base-astra.css +17 -0
  277. package/examples/components/reference/fable/base-parent.css +416 -0
  278. package/examples/components/reference/fable/build.py +858 -0
  279. package/examples/components/reference/fable/build_repairs.py +25 -0
  280. package/examples/components/reference/fable/components/activity-feed.html +3 -0
  281. package/examples/components/reference/fable/components/app-toolbar.html +3 -0
  282. package/examples/components/reference/fable/components/avatar-group.html +4 -0
  283. package/examples/components/reference/fable/components/breadcrumbs.html +3 -0
  284. package/examples/components/reference/fable/components/code-block.html +9 -0
  285. package/examples/components/reference/fable/components/column-manager.html +3 -0
  286. package/examples/components/reference/fable/components/combobox.html +6 -0
  287. package/examples/components/reference/fable/components/context-hypercms.html +3 -0
  288. package/examples/components/reference/fable/components/context-quickcrop.html +4 -0
  289. package/examples/components/reference/fable/components/diff-view.html +13 -0
  290. package/examples/components/reference/fable/components/drawer.html +3 -0
  291. package/examples/components/reference/fable/components/editable-grid-cells.html +3 -0
  292. package/examples/components/reference/fable/components/filter-builder.html +3 -0
  293. package/examples/components/reference/fable/components/form-error-summary.html +4 -0
  294. package/examples/components/reference/fable/components/inline-edit.html +3 -0
  295. package/examples/components/reference/fable/components/kanban-board.html +53 -0
  296. package/examples/components/reference/fable/components/modal.html +3 -0
  297. package/examples/components/reference/fable/components/multi-select-picker.html +5 -0
  298. package/examples/components/reference/fable/components/pagination.html +3 -0
  299. package/examples/components/reference/fable/components/persistent-action-banner.html +4 -0
  300. package/examples/components/reference/fable/components/popconfirm.html +5 -0
  301. package/examples/components/reference/fable/components/popover-menu.html +3 -0
  302. package/examples/components/reference/fable/components/rich-text-toolbar.html +3 -0
  303. package/examples/components/reference/fable/components/save-status-indicator.html +2 -0
  304. package/examples/components/reference/fable/components/selectable-cards.html +3 -0
  305. package/examples/components/reference/fable/components/settings-rows.html +3 -0
  306. package/examples/components/reference/fable/components/sidebar-nav.html +4 -0
  307. package/examples/components/reference/fable/components/small-charts.html +5 -0
  308. package/examples/components/reference/fable/components/split-button.html +4 -0
  309. package/examples/components/reference/fable/components/split-panes.html +8 -0
  310. package/examples/components/reference/fable/components/stat-tiles.html +3 -0
  311. package/examples/components/reference/fable/components/toast-stack.html +5 -0
  312. package/examples/components/reference/fable/components/tree-view.html +4 -0
  313. package/examples/components/reference/fable/components/upload-dropzone.html +6 -0
  314. package/examples/components/reference/fable/components/wizard-shell.html +3 -0
  315. package/examples/components/reference/fable/coverage.json +414 -0
  316. package/examples/components/reference/fable/fable.css +823 -0
  317. package/examples/components/reference/fable/index.html +5 -0
  318. package/examples/components/reference/fable/kanban.css +237 -0
  319. package/examples/components/reference/fable/kanban.py +212 -0
  320. package/examples/components/reference/fable/parent-repairs.css +9 -0
  321. package/examples/components/reference/fixtures/data.json +102 -0
  322. package/examples/components/reference/fixtures/host.js +47 -0
  323. package/examples/components/reference/fixtures/static-host.js +39 -0
  324. package/examples/components/reference/fixtures/workspace.jpg +0 -0
  325. package/examples/components/reference/parent/CHANGES.md +179 -0
  326. package/examples/components/reference/parent/__pycache__/kanban.cpython-311.pyc +0 -0
  327. package/examples/components/reference/parent/base-astra.css +17 -0
  328. package/examples/components/reference/parent/base-parent.css +416 -0
  329. package/examples/components/reference/parent/build.py +148 -0
  330. package/examples/components/reference/parent/components/activity-feed.html +2 -0
  331. package/examples/components/reference/parent/components/app-toolbar.html +2 -0
  332. package/examples/components/reference/parent/components/avatar-group.html +4 -0
  333. package/examples/components/reference/parent/components/breadcrumbs.html +2 -0
  334. package/examples/components/reference/parent/components/code-block.html +8 -0
  335. package/examples/components/reference/parent/components/column-manager.html +2 -0
  336. package/examples/components/reference/parent/components/combobox.html +6 -0
  337. package/examples/components/reference/parent/components/context-hypercms.html +2 -0
  338. package/examples/components/reference/parent/components/context-quickcrop.html +4 -0
  339. package/examples/components/reference/parent/components/diff-view.html +4 -0
  340. package/examples/components/reference/parent/components/drawer.html +2 -0
  341. package/examples/components/reference/parent/components/editable-grid-cells.html +2 -0
  342. package/examples/components/reference/parent/components/filter-builder.html +2 -0
  343. package/examples/components/reference/parent/components/form-error-summary.html +2 -0
  344. package/examples/components/reference/parent/components/inline-edit.html +2 -0
  345. package/examples/components/reference/parent/components/kanban-board.html +84 -0
  346. package/examples/components/reference/parent/components/modal.html +2 -0
  347. package/examples/components/reference/parent/components/multi-select-picker.html +5 -0
  348. package/examples/components/reference/parent/components/pagination.html +2 -0
  349. package/examples/components/reference/parent/components/persistent-action-banner.html +4 -0
  350. package/examples/components/reference/parent/components/popconfirm.html +5 -0
  351. package/examples/components/reference/parent/components/popover-menu.html +2 -0
  352. package/examples/components/reference/parent/components/rich-text-toolbar.html +2 -0
  353. package/examples/components/reference/parent/components/save-status-indicator.html +2 -0
  354. package/examples/components/reference/parent/components/selectable-cards.html +2 -0
  355. package/examples/components/reference/parent/components/settings-rows.html +2 -0
  356. package/examples/components/reference/parent/components/sidebar-nav.html +4 -0
  357. package/examples/components/reference/parent/components/small-charts.html +2 -0
  358. package/examples/components/reference/parent/components/split-button.html +5 -0
  359. package/examples/components/reference/parent/components/split-panes.html +8 -0
  360. package/examples/components/reference/parent/components/stat-tiles.html +2 -0
  361. package/examples/components/reference/parent/components/toast-stack.html +5 -0
  362. package/examples/components/reference/parent/components/tree-view.html +4 -0
  363. package/examples/components/reference/parent/components/upload-dropzone.html +6 -0
  364. package/examples/components/reference/parent/components/wizard-shell.html +2 -0
  365. package/examples/components/reference/parent/coverage.json +414 -0
  366. package/examples/components/reference/parent/index.html +1 -0
  367. package/examples/components/reference/parent/kanban.css +114 -0
  368. package/examples/components/reference/parent/kanban.py +55 -0
  369. package/examples/components/reference/parent/refinement.css +53 -0
  370. package/examples/components/reference/selected/build.py +70 -0
  371. package/examples/components/reference/selected/components/activity-feed.html +3 -0
  372. package/examples/components/reference/selected/components/app-toolbar.html +3 -0
  373. package/examples/components/reference/selected/components/avatar-group.html +4 -0
  374. package/examples/components/reference/selected/components/breadcrumbs.html +3 -0
  375. package/examples/components/reference/selected/components/code-block.html +9 -0
  376. package/examples/components/reference/selected/components/column-manager.html +3 -0
  377. package/examples/components/reference/selected/components/combobox.html +6 -0
  378. package/examples/components/reference/selected/components/context-hypercms.html +3 -0
  379. package/examples/components/reference/selected/components/context-quickcrop.html +4 -0
  380. package/examples/components/reference/selected/components/diff-view.html +13 -0
  381. package/examples/components/reference/selected/components/drawer.html +3 -0
  382. package/examples/components/reference/selected/components/editable-grid-cells.html +3 -0
  383. package/examples/components/reference/selected/components/filter-builder.html +3 -0
  384. package/examples/components/reference/selected/components/form-error-summary.html +4 -0
  385. package/examples/components/reference/selected/components/inline-edit.html +3 -0
  386. package/examples/components/reference/selected/components/kanban-board.html +53 -0
  387. package/examples/components/reference/selected/components/modal.html +2 -0
  388. package/examples/components/reference/selected/components/multi-select-picker.html +5 -0
  389. package/examples/components/reference/selected/components/pagination.html +3 -0
  390. package/examples/components/reference/selected/components/persistent-action-banner.html +4 -0
  391. package/examples/components/reference/selected/components/popconfirm.html +5 -0
  392. package/examples/components/reference/selected/components/popover-menu.html +3 -0
  393. package/examples/components/reference/selected/components/rich-text-toolbar.html +3 -0
  394. package/examples/components/reference/selected/components/save-status-indicator.html +2 -0
  395. package/examples/components/reference/selected/components/selectable-cards.html +3 -0
  396. package/examples/components/reference/selected/components/settings-rows.html +3 -0
  397. package/examples/components/reference/selected/components/sidebar-nav.html +4 -0
  398. package/examples/components/reference/selected/components/small-charts.html +5 -0
  399. package/examples/components/reference/selected/components/split-button.html +4 -0
  400. package/examples/components/reference/selected/components/split-panes.html +8 -0
  401. package/examples/components/reference/selected/components/stat-tiles.html +3 -0
  402. package/examples/components/reference/selected/components/toast-stack.html +5 -0
  403. package/examples/components/reference/selected/components/tree-view.html +4 -0
  404. package/examples/components/reference/selected/components/upload-dropzone.html +6 -0
  405. package/examples/components/reference/selected/components/wizard-shell.html +3 -0
  406. package/examples/components/reference/selected/corrections.css +11 -0
  407. package/examples/components/reference/selected/coverage.json +413 -0
  408. package/examples/components/reference/selected/gallery-build.mjs +49 -0
  409. package/examples/components/reference/selected/gallery-spec.json +12 -0
  410. package/examples/components/reference/selected/index.html +1 -0
  411. package/examples/components/reference/selected/kanban-comparison.json +6 -0
  412. package/examples/components/reference/selected/manifest.json +476 -0
  413. package/examples/components/reference/sha256.json +142 -0
  414. package/examples/components/reference/sources/diagonal-close.svg +1 -0
  415. package/examples/components/reference/sources/hyperclay/public-assets/css/hyperclay-app-source.css +614 -0
  416. package/examples/components/reference/sources/hyperclay/public-assets/js/app.js +94 -0
  417. package/examples/components/reference/sources/hyperclayjs/src/ui/theModal.js +897 -0
  418. package/examples/components/reference/sources/hypercms/scripts/build-theme.js +203 -0
  419. package/examples/components/reference/sources/hypercms/src/anchor.js +24 -0
  420. package/examples/components/reference/sources/hypercms/src/apply-loop.js +167 -0
  421. package/examples/components/reference/sources/hypercms/src/diagnostics.js +44 -0
  422. package/examples/components/reference/sources/hypercms/src/enhance.js +173 -0
  423. package/examples/components/reference/sources/hypercms/src/events.js +955 -0
  424. package/examples/components/reference/sources/hypercms/src/form-builder.js +518 -0
  425. package/examples/components/reference/sources/hypercms/src/form-rules.js +208 -0
  426. package/examples/components/reference/sources/hypercms/src/hooks.js +100 -0
  427. package/examples/components/reference/sources/hypercms/src/hypercms-bundle.js +10 -0
  428. package/examples/components/reference/sources/hypercms/src/hypercms.js +347 -0
  429. package/examples/components/reference/sources/hypercms/src/morph.js +10 -0
  430. package/examples/components/reference/sources/hypercms/src/path.js +61 -0
  431. package/examples/components/reference/sources/hypercms/src/place.js +131 -0
  432. package/examples/components/reference/sources/hypercms/src/platform.js +131 -0
  433. package/examples/components/reference/sources/hypercms/src/refresh.js +87 -0
  434. package/examples/components/reference/sources/hypercms/src/richclay-bridge.js +140 -0
  435. package/examples/components/reference/sources/hypercms/src/row-identity.js +111 -0
  436. package/examples/components/reference/sources/hypercms/src/scaffold.js +10 -0
  437. package/examples/components/reference/sources/hypercms/src/session.js +303 -0
  438. package/examples/components/reference/sources/hypercms/src/shell.js +248 -0
  439. package/examples/components/reference/sources/hypercms/src/styles.css +298 -0
  440. package/examples/components/reference/sources/hypercms/src/targets.js +144 -0
  441. package/examples/components/reference/sources/hypercms/src/templates.js +656 -0
  442. package/examples/components/reference/sources/hypercms/src/theme/pixel-quiet.overrides.css +761 -0
  443. package/examples/components/reference/sources/hypercms/src/theme.generated.css +1772 -0
  444. package/examples/components/reference/sources/hypercms/src/toggle.js +666 -0
  445. package/examples/components/reference/sources/hypercms/src/unresolved.js +211 -0
  446. package/examples/components/reference/sources/hypercms/src/vendor/mirk.vendor.js +212 -0
  447. package/examples/components/reference/sources/hypercms/src/views/inline-layer.js +421 -0
  448. package/examples/components/reference/sources/hypercms/src/views/inline.js +1072 -0
  449. package/examples/components/reference/sources/hypercms/src/views/sidebar.js +97 -0
  450. package/examples/components/reference/sources/modal-reference.html +301 -0
  451. package/examples/components/reference/sources/quickcrop/quickcrop.css +124 -0
  452. package/examples/components/reference/sources/quickcrop/quickcrop.js +400 -0
  453. package/examples/components/reference/sources/richclay/richclay.css +416 -0
  454. package/examples/components/reference/sources/richclay/richclay.js +2962 -0
  455. package/examples/components/reference/sources/richclay/src/a11y.js +67 -0
  456. package/examples/components/reference/sources/richclay/src/browser-global.js +7 -0
  457. package/examples/components/reference/sources/richclay/src/buttons.js +254 -0
  458. package/examples/components/reference/sources/richclay/src/hyperclay.js +470 -0
  459. package/examples/components/reference/sources/richclay/src/normalize.js +380 -0
  460. package/examples/components/reference/sources/richclay/src/richclay.js +1356 -0
  461. package/examples/components/reference/sources/richclay/src/sanitize.js +189 -0
  462. package/examples/components/reference/sources/richclay/src/styles.js +23 -0
  463. package/examples/components/reference/sources/richclay/src/toolbar-float.js +175 -0
  464. package/examples/components/reference/sources/richclay/src/toolbar.js +394 -0
  465. package/examples/components/reference/sources/richclay/src/vendor-bundle.js +15 -0
  466. package/examples/components/reference/sources/richclay/vendor/DOMPURIFY-LICENSE +202 -0
  467. package/examples/components/reference/sources/richclay/vendor/DOMPURIFY-LICENSE-MPL +373 -0
  468. package/examples/components/reference/sources/richclay/vendor/SQUIRE-LICENSE +21 -0
  469. package/examples/components/reference/sources/richclay/vendor/purify.es.mjs +2249 -0
  470. package/examples/components/reference/sources/richclay/vendor/purify.min.js +3 -0
  471. package/examples/components/reference/sources/richclay/vendor/squire.js +22 -0
  472. package/examples/components/reference/sources/richclay/vendor/squire.mjs +22 -0
  473. package/examples/components/reference/sources/richclay/vendor/squire.provenance.json +19 -0
  474. package/examples/components/rich-text-toolbar.html +43 -0
  475. package/examples/components/save-status-indicator.html +11 -0
  476. package/examples/components/selectable-cards.html +9 -0
  477. package/examples/components/settings-rows.html +10 -0
  478. package/examples/components/sidebar-nav.html +9 -0
  479. package/examples/components/small-charts.html +21 -0
  480. package/examples/components/split-button.html +13 -0
  481. package/examples/components/split-panes-editor.html +6 -0
  482. package/examples/components/split-panes.html +9 -0
  483. package/examples/components/stat-tiles.html +23 -0
  484. package/examples/components/toast-stack.html +21 -0
  485. package/examples/components/tree-view.html +9 -0
  486. package/examples/components/upload-dropzone.html +88 -0
  487. package/examples/components/wizard-shell.html +50 -0
  488. package/examples/datastar/index.html +38 -0
  489. package/examples/datastar/server.mjs +31 -0
  490. package/examples/fixtures/field-guide.pdf +14 -0
  491. package/examples/fixtures/workspace.jpg +0 -0
  492. package/examples/setup-peers.mjs +35 -0
  493. package/fonts/LICENSE-ibm-plex-mono.txt +93 -0
  494. package/fonts/LICENSE-ibm-plex-sans.txt +93 -0
  495. package/fonts/LICENSE-newsreader.txt +93 -0
  496. package/fonts/ibm-plex-mono-latin-400-normal.woff2 +0 -0
  497. package/fonts/ibm-plex-mono-latin-500-normal.woff2 +0 -0
  498. package/fonts/ibm-plex-mono-latin-600-normal.woff2 +0 -0
  499. package/fonts/ibm-plex-sans-latin-400-italic.woff2 +0 -0
  500. package/fonts/ibm-plex-sans-latin-400-normal.woff2 +0 -0
  501. package/fonts/ibm-plex-sans-latin-500-normal.woff2 +0 -0
  502. package/fonts/ibm-plex-sans-latin-600-normal.woff2 +0 -0
  503. package/fonts/newsreader-latin-opsz-italic.woff2 +0 -0
  504. package/fonts/newsreader-latin-opsz-normal.woff2 +0 -0
  505. package/icons/LICENSE +21 -0
  506. package/icons/house.json +71 -0
  507. package/icons/icons.d.ts +17 -0
  508. package/icons/icons.js +648 -0
  509. package/icons/icons.svg +126 -0
  510. package/icons/marks/build-tray.source.mjs +45 -0
  511. package/icons/marks/hyperclay-local.svg +11 -0
  512. package/icons/phosphor.json +53 -0
  513. package/icons/round.json +8 -0
  514. package/integrations/datastar.js +202 -0
  515. package/integrations/quickcrop.css +26 -0
  516. package/integrations/quickcrop.js +56 -0
  517. package/integrations/richclay.css +100 -0
  518. package/integrations/richclay.js +131 -0
  519. package/package.json +630 -0
  520. package/react/README.md +244 -0
  521. package/src/README.md +83 -0
  522. package/vendor/datastar/datastar-1.0.3.js +10 -0
  523. package/vendor/datastar/provenance.json +6 -0
  524. package/vendor/floating-ui/LICENSE-core +20 -0
  525. package/vendor/floating-ui/LICENSE-dom +20 -0
  526. package/vendor/floating-ui/floating-ui.core.umd.min.js +1 -0
  527. package/vendor/floating-ui/floating-ui.dom.umd.min.js +1 -0
  528. package/vendor/floating-ui/provenance.json +17 -0
  529. package/vendor/richclay/LICENSE +16 -0
  530. package/vendor/richclay/THIRD-PARTY-NOTICES.md +45 -0
  531. package/vendor/richclay/provenance.json +17 -0
  532. package/vendor/richclay/richclay.css +404 -0
  533. package/vendor/richclay/richclay.js +2940 -0
  534. package/vendor/richclay/vendor/DOMPURIFY-LICENSE +202 -0
  535. package/vendor/richclay/vendor/DOMPURIFY-LICENSE-MPL +373 -0
  536. package/vendor/richclay/vendor/SQUIRE-LICENSE +21 -0
  537. package/vendor/richclay/vendor/purify.min.js +3 -0
  538. package/vendor/richclay/vendor/squire.js +22 -0
  539. package/vendor/richclay/vendor/squire.provenance.json +30 -0
@@ -0,0 +1,3 @@
1
+ /*! @license DOMPurify 3.4.11 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.11/LICENSE */
2
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).DOMPurify=t()}(this,function(){"use strict";function e(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function t(t,n){return function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,r,i,a,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t);else for(;!(c=(o=i.call(n)).done)&&(l.push(o.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw r}}return l}}(t,n)||function(t,n){if(t){if("string"==typeof t)return e(t,n);var o={}.toString.call(t).slice(8,-1);return"Object"===o&&t.constructor&&(o=t.constructor.name),"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?e(t,n):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}const n=Object.entries,o=Object.setPrototypeOf,r=Object.isFrozen,i=Object.getPrototypeOf,a=Object.getOwnPropertyDescriptor;let l=Object.freeze,c=Object.seal,s=Object.create,u="undefined"!=typeof Reflect&&Reflect,f=u.apply,p=u.construct;l||(l=function(e){return e}),c||(c=function(e){return e}),f||(f=function(e,t){for(var n=arguments.length,o=new Array(n>2?n-2:0),r=2;r<n;r++)o[r-2]=arguments[r];return e.apply(t,o)}),p||(p=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];return new e(...n)});const m=L(Array.prototype.forEach),d=L(Array.prototype.lastIndexOf),h=L(Array.prototype.pop),g=L(Array.prototype.push),y=L(Array.prototype.splice),T=Array.isArray,b=L(String.prototype.toLowerCase),S=L(String.prototype.toString),E=L(String.prototype.match),A=L(String.prototype.replace),N=L(String.prototype.indexOf),_=L(String.prototype.trim),w=L(Number.prototype.toString),O=L(Boolean.prototype.toString),v="undefined"==typeof BigInt?null:L(BigInt.prototype.toString),D="undefined"==typeof Symbol?null:L(Symbol.prototype.toString),R=L(Object.prototype.hasOwnProperty),C=L(Object.prototype.toString),I=L(RegExp.prototype.test),k=(x=TypeError,function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return p(x,t)});var x;function L(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var n=arguments.length,o=new Array(n>1?n-1:0),r=1;r<n;r++)o[r-1]=arguments[r];return f(e,t,o)}}function M(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:b;if(o&&o(e,null),!T(t))return e;let i=t.length;for(;i--;){let o=t[i];if("string"==typeof o){const e=n(o);e!==o&&(r(t)||(t[i]=e),o=e)}e[o]=!0}return e}function z(e){for(let t=0;t<e.length;t++){R(e,t)||(e[t]=null)}return e}function P(e){const o=s(null);for(const i of n(e)){var r=t(i,2);const n=r[0],a=r[1];R(e,n)&&(T(a)?o[n]=z(a):a&&"object"==typeof a&&a.constructor===Object?o[n]=P(a):o[n]=a)}return o}function U(e,t){for(;null!==e;){const n=a(e,t);if(n){if(n.get)return L(n.get);if("function"==typeof n.value)return L(n.value)}e=i(e)}return function(){return null}}const F=l(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),H=l(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),j=l(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),B=l(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),G=l(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),W=l(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),Y=l(["#text"]),q=l(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","command","commandfor","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns"]),X=l(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),$=l(["accent","accentunder","align","bevelled","close","columnalign","columnlines","columnspacing","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lquote","lspace","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),K=l(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),V=c(/{{[\w\W]*|^[\w\W]*}}/g),Z=c(/<%[\w\W]*|^[\w\W]*%>/g),J=c(/\${[\w\W]*/g),Q=c(/^data-[\-\w.\u00B7-\uFFFF]+$/),ee=c(/^aria-[\-\w]+$/),te=c(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),ne=c(/^(?:\w+script|data):/i),oe=c(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),re=c(/^html$/i),ie=c(/^[a-z][.\w]*(-[.\w]+)+$/i),ae=c(/<[/\w!]/g),le=c(/<[/\w]/g),ce=c(/<\/no(script|embed|frames)/i),se=c(/\/>/i),ue=1,fe=3,pe=7,me=8,de=9,he=11,ge=function(){return"undefined"==typeof window?null:window},ye=function(e,t,n,o){return R(e,t)&&T(e[t])?M(o.base?P(o.base):{},e[t],o.transform):n};var Te=function e(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ge();const o=t=>e(t);if(o.version="3.4.11",o.removed=[],!t||!t.document||t.document.nodeType!==de||!t.Element)return o.isSupported=!1,o;let r=t.document;const i=r,a=i.currentScript;t.DocumentFragment;const u=t.HTMLTemplateElement,f=t.Node,p=t.Element,x=t.NodeFilter,L=t.NamedNodeMap;void 0===L&&(t.NamedNodeMap||t.MozNamedAttrMap),t.HTMLFormElement;const z=t.DOMParser,Te=t.trustedTypes,be=p.prototype,Se=U(be,"cloneNode"),Ee=U(be,"remove"),Ae=U(be,"nextSibling"),Ne=U(be,"childNodes"),_e=U(be,"parentNode"),we=U(be,"shadowRoot"),Oe=U(be,"attributes"),ve=f&&f.prototype?U(f.prototype,"nodeType"):null,De=f&&f.prototype?U(f.prototype,"nodeName"):null;if("function"==typeof u){const e=r.createElement("template");e.content&&e.content.ownerDocument&&(r=e.content.ownerDocument)}let Re,Ce,Ie="",ke=!1,xe=0;const Le=function(){if(xe>0)throw k('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},Me=function(e){Le(),xe++;try{return Re.createHTML(e)}finally{xe--}},ze=function(){return ke||(Ce=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let n=null;const o="data-tt-policy-suffix";t&&t.hasAttribute(o)&&(n=t.getAttribute(o));const r="dompurify"+(n?"#"+n:"");try{return e.createPolicy(r,{createHTML:e=>e,createScriptURL:e=>e})}catch(e){return console.warn("TrustedTypes policy "+r+" could not be created."),null}}(Te,a),ke=!0),Ce},Pe=r,Ue=Pe.implementation,Fe=Pe.createNodeIterator,He=Pe.createDocumentFragment,je=Pe.getElementsByTagName,Be=i.importNode;let Ge={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]};o.isSupported="function"==typeof n&&"function"==typeof _e&&Ue&&void 0!==Ue.createHTMLDocument;const We=V,Ye=Z,qe=J,Xe=Q,$e=ee,Ke=ne,Ve=oe,Ze=ie;let Je=te,Qe=null;const et=M({},[...F,...H,...j,...G,...Y]);let tt=null;const nt=M({},[...q,...X,...$,...K]);let ot=Object.seal(s(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),rt=null,it=null;const at=Object.seal(s(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let lt=!0,ct=!0,st=!1,ut=!0,ft=!1,pt=!0,mt=!1,dt=!1,ht=null,gt=null,yt=!1,Tt=!1,bt=!1,St=!1,Et=!0,At=!1;const Nt="user-content-";let _t=!0,wt=!1,Ot={},vt=null;const Dt=M({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]);let Rt=null;const Ct=M({},["audio","video","img","source","image","track"]);let It=null;const kt=M({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),xt="http://www.w3.org/1998/Math/MathML",Lt="http://www.w3.org/2000/svg",Mt="http://www.w3.org/1999/xhtml";let zt=Mt,Pt=!1,Ut=null;const Ft=M({},[xt,Lt,Mt],S),Ht=l(["mi","mo","mn","ms","mtext"]);let jt=M({},Ht);const Bt=l(["annotation-xml"]);let Gt=M({},Bt);const Wt=M({},["title","style","font","a","script"]);let Yt=null;const qt=["application/xhtml+xml","text/html"];let Xt=null,$t=null;const Kt=r.createElement("form"),Vt=function(e){return e instanceof RegExp||e instanceof Function},Zt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if($t&&$t===e)return;e&&"object"==typeof e||(e={}),e=P(e),Yt=-1===qt.indexOf(e.PARSER_MEDIA_TYPE)?"text/html":e.PARSER_MEDIA_TYPE,Xt="application/xhtml+xml"===Yt?S:b,Qe=ye(e,"ALLOWED_TAGS",et,{transform:Xt}),tt=ye(e,"ALLOWED_ATTR",nt,{transform:Xt}),Ut=ye(e,"ALLOWED_NAMESPACES",Ft,{transform:S}),It=ye(e,"ADD_URI_SAFE_ATTR",kt,{transform:Xt,base:kt}),Rt=ye(e,"ADD_DATA_URI_TAGS",Ct,{transform:Xt,base:Ct}),vt=ye(e,"FORBID_CONTENTS",Dt,{transform:Xt}),rt=ye(e,"FORBID_TAGS",P({}),{transform:Xt}),it=ye(e,"FORBID_ATTR",P({}),{transform:Xt}),Ot=!!R(e,"USE_PROFILES")&&(e.USE_PROFILES&&"object"==typeof e.USE_PROFILES?P(e.USE_PROFILES):e.USE_PROFILES),lt=!1!==e.ALLOW_ARIA_ATTR,ct=!1!==e.ALLOW_DATA_ATTR,st=e.ALLOW_UNKNOWN_PROTOCOLS||!1,ut=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,ft=e.SAFE_FOR_TEMPLATES||!1,pt=!1!==e.SAFE_FOR_XML,mt=e.WHOLE_DOCUMENT||!1,Tt=e.RETURN_DOM||!1,bt=e.RETURN_DOM_FRAGMENT||!1,St=e.RETURN_TRUSTED_TYPE||!1,yt=e.FORCE_BODY||!1,Et=!1!==e.SANITIZE_DOM,At=e.SANITIZE_NAMED_PROPS||!1,_t=!1!==e.KEEP_CONTENT,wt=e.IN_PLACE||!1,Je=function(e){try{return I(e,""),!0}catch(e){return!1}}(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:te,zt="string"==typeof e.NAMESPACE?e.NAMESPACE:Mt,jt=R(e,"MATHML_TEXT_INTEGRATION_POINTS")&&e.MATHML_TEXT_INTEGRATION_POINTS&&"object"==typeof e.MATHML_TEXT_INTEGRATION_POINTS?P(e.MATHML_TEXT_INTEGRATION_POINTS):M({},Ht),Gt=R(e,"HTML_INTEGRATION_POINTS")&&e.HTML_INTEGRATION_POINTS&&"object"==typeof e.HTML_INTEGRATION_POINTS?P(e.HTML_INTEGRATION_POINTS):M({},Bt);const t=R(e,"CUSTOM_ELEMENT_HANDLING")&&e.CUSTOM_ELEMENT_HANDLING&&"object"==typeof e.CUSTOM_ELEMENT_HANDLING?P(e.CUSTOM_ELEMENT_HANDLING):s(null);if(ot=s(null),R(t,"tagNameCheck")&&Vt(t.tagNameCheck)&&(ot.tagNameCheck=t.tagNameCheck),R(t,"attributeNameCheck")&&Vt(t.attributeNameCheck)&&(ot.attributeNameCheck=t.attributeNameCheck),R(t,"allowCustomizedBuiltInElements")&&"boolean"==typeof t.allowCustomizedBuiltInElements&&(ot.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),c(ot),ft&&(ct=!1),bt&&(Tt=!0),Ot&&(Qe=M({},Y),tt=s(null),!0===Ot.html&&(M(Qe,F),M(tt,q)),!0===Ot.svg&&(M(Qe,H),M(tt,X),M(tt,K)),!0===Ot.svgFilters&&(M(Qe,j),M(tt,X),M(tt,K)),!0===Ot.mathMl&&(M(Qe,G),M(tt,$),M(tt,K))),at.tagCheck=null,at.attributeCheck=null,R(e,"ADD_TAGS")&&("function"==typeof e.ADD_TAGS?at.tagCheck=e.ADD_TAGS:T(e.ADD_TAGS)&&(Qe===et&&(Qe=P(Qe)),M(Qe,e.ADD_TAGS,Xt))),R(e,"ADD_ATTR")&&("function"==typeof e.ADD_ATTR?at.attributeCheck=e.ADD_ATTR:T(e.ADD_ATTR)&&(tt===nt&&(tt=P(tt)),M(tt,e.ADD_ATTR,Xt))),R(e,"ADD_URI_SAFE_ATTR")&&T(e.ADD_URI_SAFE_ATTR)&&M(It,e.ADD_URI_SAFE_ATTR,Xt),R(e,"FORBID_CONTENTS")&&T(e.FORBID_CONTENTS)&&(vt===Dt&&(vt=P(vt)),M(vt,e.FORBID_CONTENTS,Xt)),R(e,"ADD_FORBID_CONTENTS")&&T(e.ADD_FORBID_CONTENTS)&&(vt===Dt&&(vt=P(vt)),M(vt,e.ADD_FORBID_CONTENTS,Xt)),_t&&(Qe["#text"]=!0),mt&&M(Qe,["html","head","body"]),Qe.table&&(M(Qe,["tbody"]),delete rt.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw k('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw k('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');const t=Re;Re=e.TRUSTED_TYPES_POLICY;try{Ie=Me("")}catch(e){throw Re=t,e}}else null===e.TRUSTED_TYPES_POLICY?(Re=void 0,Ie=""):(void 0===Re&&(Re=ze()),Re&&"string"==typeof Ie&&(Ie=Me("")));l&&l(e),$t=e},Jt=M({},[...H,...j,...B]),Qt=M({},[...G,...W]),en=function(e){let t=_e(e);t&&t.tagName||(t={namespaceURI:zt,tagName:"template"});const n=b(e.tagName),o=b(t.tagName);return!!Ut[e.namespaceURI]&&(e.namespaceURI===Lt?function(e,t,n){return t.namespaceURI===Mt?"svg"===e:t.namespaceURI===xt?"svg"===e&&("annotation-xml"===n||jt[n]):Boolean(Jt[e])}(n,t,o):e.namespaceURI===xt?function(e,t,n){return t.namespaceURI===Mt?"math"===e:t.namespaceURI===Lt?"math"===e&&Gt[n]:Boolean(Qt[e])}(n,t,o):e.namespaceURI===Mt?function(e,t,n){return!(t.namespaceURI===Lt&&!Gt[n])&&!(t.namespaceURI===xt&&!jt[n])&&!Qt[e]&&(Wt[e]||!Jt[e])}(n,t,o):!("application/xhtml+xml"!==Yt||!Ut[e.namespaceURI]))},tn=function(e){g(o.removed,{element:e});try{_e(e).removeChild(e)}catch(t){if(Ee(e),!_e(e))throw k("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},nn=function(e){const t=Ne(e);if(t){const e=[];m(t,t=>{g(e,t)}),m(e,e=>{try{Ee(e)}catch(e){}})}const n=Oe(e);if(n)for(let t=n.length-1;t>=0;--t){const o=n[t],r=o&&o.name;if("string"==typeof r)try{e.removeAttribute(r)}catch(e){}}},on=function(e,t){try{g(o.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){g(o.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e)if(Tt||bt)try{tn(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},rn=function(e){const t=Oe(e);if(t)for(let n=t.length-1;n>=0;--n){const o=t[n],r=o&&o.name;if("string"==typeof r&&!tt[Xt(r)])try{e.removeAttribute(r)}catch(e){}}},an=function(e){let t=null,n=null;if(yt)e="<remove></remove>"+e;else{const t=E(e,/^[\r\n\t ]+/);n=t&&t[0]}"application/xhtml+xml"===Yt&&zt===Mt&&(e='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+e+"</body></html>");const o=Re?Me(e):e;if(zt===Mt)try{t=(new z).parseFromString(o,Yt)}catch(e){}if(!t||!t.documentElement){t=Ue.createDocument(zt,"template",null);try{t.documentElement.innerHTML=Pt?Ie:o}catch(e){}}const i=t.body||t.documentElement;return e&&n&&i.insertBefore(r.createTextNode(n),i.childNodes[0]||null),zt===Mt?je.call(t,mt?"html":"body")[0]:mt?t.documentElement:i},ln=function(e){return Fe.call(e.ownerDocument||e,e,x.SHOW_ELEMENT|x.SHOW_COMMENT|x.SHOW_TEXT|x.SHOW_PROCESSING_INSTRUCTION|x.SHOW_CDATA_SECTION,null)},cn=function(e){return e=A(e,We," "),e=A(e,Ye," "),e=A(e,qe," ")},sn=function(e){var t;e.normalize();const n=Fe.call(e.ownerDocument||e,e,x.SHOW_TEXT|x.SHOW_COMMENT|x.SHOW_CDATA_SECTION|x.SHOW_PROCESSING_INSTRUCTION,null);let o=n.nextNode();for(;o;)o.data=cn(o.data),o=n.nextNode();const r=null===(t=e.querySelectorAll)||void 0===t?void 0:t.call(e,"template");r&&m(r,e=>{fn(e.content)&&sn(e.content)})},un=function(e){const t=De?De(e):null;return"string"==typeof t&&("form"===Xt(t)&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||e.attributes!==Oe(e)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes||e.nodeType!==ve(e)||e.childNodes!==Ne(e)))},fn=function(e){if(!ve||"object"!=typeof e||null===e)return!1;try{return ve(e)===he}catch(e){return!1}},pn=function(e){if(!ve||"object"!=typeof e||null===e)return!1;try{return"number"==typeof ve(e)}catch(e){return!1}};function mn(e,t,n){0!==e.length&&m(e,e=>{e.call(o,t,n,$t)})}const dn=function(e){if(mn(Ge.beforeSanitizeElements,e,null),un(e))return tn(e),!0;const t=Xt(De?De(e):e.nodeName);if(mn(Ge.uponSanitizeElement,e,{tagName:t,allowedTags:Qe}),function(e,t){return!!(pt&&e.hasChildNodes()&&!pn(e.firstElementChild)&&I(ae,e.textContent)&&I(ae,e.innerHTML))||!(!pt||e.namespaceURI!==Mt||"style"!==t||!pn(e.firstElementChild))||e.nodeType===pe||!(!pt||e.nodeType!==me||!I(le,e.data))}(e,t))return tn(e),!0;if(rt[t]||!(at.tagCheck instanceof Function&&at.tagCheck(t))&&!Qe[t])return function(e,t){if(!rt[t]&&yn(t)){if(ot.tagNameCheck instanceof RegExp&&I(ot.tagNameCheck,t))return!1;if(ot.tagNameCheck instanceof Function&&ot.tagNameCheck(t))return!1}if(_t&&!vt[t]){const t=_e(e),n=Ne(e);if(n&&t)for(let o=n.length-1;o>=0;--o){const r=wt?n[o]:Se(n[o],!0);t.insertBefore(r,Ae(e))}}return tn(e),!0}(e,t);if((ve?ve(e):e.nodeType)===ue&&!en(e))return tn(e),!0;if(("noscript"===t||"noembed"===t||"noframes"===t)&&I(ce,e.innerHTML))return tn(e),!0;if(ft&&e.nodeType===fe){const t=cn(e.textContent);e.textContent!==t&&(g(o.removed,{element:e.cloneNode()}),e.textContent=t)}return mn(Ge.afterSanitizeElements,e,null),!1},hn=function(e,t,n){if(it[t])return!1;if(Et&&("id"===t||"name"===t)&&(n in r||n in Kt))return!1;const o=tt[t]||at.attributeCheck instanceof Function&&at.attributeCheck(t,e);if(ct&&I(Xe,t));else if(lt&&I($e,t));else if(o)if(It[t]);else if(I(Je,A(n,Ve,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==N(n,"data:")||!Rt[e]){if(st&&!I(Ke,A(n,Ve,"")));else if(n)return!1}else;else if(!(yn(e)&&(ot.tagNameCheck instanceof RegExp&&I(ot.tagNameCheck,e)||ot.tagNameCheck instanceof Function&&ot.tagNameCheck(e))&&(ot.attributeNameCheck instanceof RegExp&&I(ot.attributeNameCheck,t)||ot.attributeNameCheck instanceof Function&&ot.attributeNameCheck(t,e))||"is"===t&&ot.allowCustomizedBuiltInElements&&(ot.tagNameCheck instanceof RegExp&&I(ot.tagNameCheck,n)||ot.tagNameCheck instanceof Function&&ot.tagNameCheck(n))))return!1;return!0},gn=M({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),yn=function(e){return!gn[b(e)]&&I(Ze,e)},Tn=function(e,t,n,o){if(Re&&"object"==typeof Te&&"function"==typeof Te.getAttributeType&&!n)switch(Te.getAttributeType(e,t)){case"TrustedHTML":return Me(o);case"TrustedScriptURL":return function(e){Le(),xe++;try{return Re.createScriptURL(e)}finally{xe--}}(o)}return o},bn=function(e,t,n,r){try{n?e.setAttributeNS(n,t,r):e.setAttribute(t,r),un(e)?tn(e):h(o.removed)}catch(n){on(t,e)}},Sn=function(e){mn(Ge.beforeSanitizeAttributes,e,null);const t=e.attributes;if(!t||un(e))return;const n={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:tt,forceKeepAttr:void 0};let o=t.length;const r=Xt(e.nodeName);for(;o--;){const i=t[o],a=i.name,l=i.namespaceURI,c=i.value,s=Xt(a),u=c;let f="value"===a?u:_(u);n.attrName=s,n.attrValue=f,n.keepAttr=!0,n.forceKeepAttr=void 0,mn(Ge.uponSanitizeAttribute,e,n),f=n.attrValue,!At||"id"!==s&&"name"!==s||0===N(f,Nt)||(on(a,e),f=Nt+f),pt&&I(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,f)?on(a,e):"attributename"===s&&E(f,"href")?on(a,e):n.forceKeepAttr||(n.keepAttr&&(ut||!I(se,f))?(ft&&(f=cn(f)),hn(r,s,f)?(f=Tn(r,s,l,f),f!==u&&bn(e,a,l,f)):on(a,e)):on(a,e))}mn(Ge.afterSanitizeAttributes,e,null)},En=function(e){let t=null;const n=ln(e);for(mn(Ge.beforeSanitizeShadowDOM,e,null);t=n.nextNode();){mn(Ge.uponSanitizeShadowNode,t,null),dn(t),Sn(t),fn(t.content)&&En(t.content);if((ve?ve(t):t.nodeType)===ue){const e=we(t);fn(e)&&(An(e),En(e))}}mn(Ge.afterSanitizeShadowDOM,e,null)},An=function(e){const t=[{node:e,shadow:null}];for(;t.length>0;){const e=t.pop();if(e.shadow){En(e.shadow);continue}const n=e.node,o=(ve?ve(n):n.nodeType)===ue,r=Ne(n);if(r)for(let e=r.length-1;e>=0;--e)t.push({node:r[e],shadow:null});if(o){const e=De?De(n):null;if("string"==typeof e&&"template"===Xt(e)){const e=n.content;fn(e)&&t.push({node:e,shadow:null})}}if(o){const e=we(n);fn(e)&&t.push({node:null,shadow:e},{node:e,shadow:null})}}};return o.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null,r=null,a=null,l=null;if(Pt=!e,Pt&&(e="\x3c!--\x3e"),"string"!=typeof e&&!pn(e)&&"string"!=typeof(e=function(e){switch(typeof e){case"string":return e;case"number":return w(e);case"boolean":return O(e);case"bigint":return v?v(e):"0";case"symbol":return D?D(e):"Symbol()";case"undefined":default:return C(e);case"function":case"object":{if(null===e)return C(e);const t=e,n=U(t,"toString");if("function"==typeof n){const e=n(t);return"string"==typeof e?e:C(e)}return C(e)}}}(e)))throw k("dirty is not a string, aborting");if(!o.isSupported)return e;dt?(Qe=ht,tt=gt):Zt(t),(Ge.uponSanitizeElement.length>0||Ge.uponSanitizeAttribute.length>0)&&(Qe=P(Qe)),Ge.uponSanitizeAttribute.length>0&&(tt=P(tt)),o.removed=[];const c=wt&&"string"!=typeof e&&pn(e);if(c){const t=De?De(e):e.nodeName;if("string"==typeof t){const e=Xt(t);if(!Qe[e]||rt[e])throw k("root node is forbidden and cannot be sanitized in-place")}if(un(e))throw k("root node is clobbered and cannot be sanitized in-place");try{An(e)}catch(t){throw nn(e),t}}else if(pn(e))n=an("\x3c!----\x3e"),r=n.ownerDocument.importNode(e,!0),r.nodeType===ue&&"BODY"===r.nodeName||"HTML"===r.nodeName?n=r:n.appendChild(r),An(r);else{if(!Tt&&!ft&&!mt&&-1===e.indexOf("<"))return Re&&St?Me(e):e;if(n=an(e),!n)return Tt?null:St?Ie:""}n&&yt&&tn(n.firstChild);const s=ln(c?e:n);try{for(;a=s.nextNode();)dn(a),Sn(a),fn(a.content)&&En(a.content)}catch(t){throw c&&nn(e),t}if(c)return m(o.removed,e=>{e.element&&function(e){const t=[e];for(;t.length>0;){const e=t.pop();(ve?ve(e):e.nodeType)===ue&&rn(e);const n=Ne(e);if(n)for(let e=n.length-1;e>=0;--e)t.push(n[e])}}(e.element)}),ft&&sn(e),e;if(Tt){if(ft&&sn(n),bt)for(l=He.call(n.ownerDocument);n.firstChild;)l.appendChild(n.firstChild);else l=n;return(tt.shadowroot||tt.shadowrootmode)&&(l=Be.call(i,l,!0)),l}let u=mt?n.outerHTML:n.innerHTML;return mt&&Qe["!doctype"]&&n.ownerDocument&&n.ownerDocument.doctype&&n.ownerDocument.doctype.name&&I(re,n.ownerDocument.doctype.name)&&(u="<!DOCTYPE "+n.ownerDocument.doctype.name+">\n"+u),ft&&(u=cn(u)),Re&&St?Me(u):u},o.setConfig=function(){Zt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),dt=!0,ht=Qe,gt=tt},o.clearConfig=function(){$t=null,dt=!1,ht=null,gt=null,Re=Ce,Ie=""},o.isValidAttribute=function(e,t,n){$t||Zt({});const o=Xt(e),r=Xt(t);return hn(o,r,n)},o.addHook=function(e,t){"function"==typeof t&&R(Ge,e)&&g(Ge[e],t)},o.removeHook=function(e,t){if(R(Ge,e)){if(void 0!==t){const n=d(Ge[e],t);return-1===n?void 0:y(Ge[e],n,1)[0]}return h(Ge[e])}},o.removeHooks=function(e){R(Ge,e)&&(Ge[e]=[])},o.removeAllHooks=function(){Ge={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},o}();return Te});
3
+ //# sourceMappingURL=purify.min.js.map
@@ -0,0 +1,22 @@
1
+ "use strict";(()=>{var ft=()=>!0,T=class{constructor(t,e,n){this.root=t,this.currentNode=t,this.nodeType=e,this.filter=n||ft}isAcceptableNode(t){let e=t.nodeType;return!!((e===Node.ELEMENT_NODE?1:e===Node.TEXT_NODE?4:0)&this.nodeType)&&this.filter(t)}nextNode(){let t=this.root,e=this.currentNode,n;for(;;){for(n=e.firstChild;!n&&e&&e!==t;)n=e.nextSibling,n||(e=e.parentNode);if(!n)return null;if(this.isAcceptableNode(n))return this.currentNode=n,n;e=n}}previousNode(){let t=this.root,e=this.currentNode,n;for(;;){if(e===t)return null;if(n=e.previousSibling,n)for(;e=n.lastChild;)n=e;else n=e.parentNode;if(!n)return null;if(this.isAcceptableNode(n))return this.currentNode=n,n;e=n}}previousPONode(){let t=this.root,e=this.currentNode,n;for(;;){for(n=e.lastChild;!n&&e&&e!==t;)n=e.previousSibling,n||(e=e.parentNode);if(!n)return null;if(this.isAcceptableNode(n))return this.currentNode=n,n;e=n}}};var ee=navigator.userAgent,fe=/Mac OS X/.test(ee),ue=/Windows NT/.test(ee),be=/iP(?:ad|hone|od)/.test(ee)||fe&&!!navigator.maxTouchPoints,Mt=/Android/.test(ee),qe=/Gecko\//.test(ee),re=/Edge\//.test(ee),ut=!re&&/WebKit\//.test(ee),y=fe||be?"Meta-":"Ctrl-",oe=ut,Ue="onbeforeinput"in document&&"inputType"in new InputEvent("input"),B=/[^ \t\r\n\u200B]/;var gt=/^(?:#text|A(?:BBR|CRONYM)?|B(?:R|D[IO])?|C(?:ITE|ODE)|D(?:ATA|EL|FN)|EM|FONT|HR|I(?:FRAME|MG|NPUT|NS)?|KBD|Q|R(?:P|T|UBY)|S(?:AMP|MALL|PAN|TR(?:IKE|ONG)|U[BP])?|TIME|U|VAR|WBR)$/,Nt=new Set(["BR","HR","IFRAME","IMG","INPUT"]),St=0,Le=1,We=2,ze=3,he=new WeakMap,me=()=>{he=new WeakMap},H=i=>Nt.has(i.nodeName),ke=i=>{switch(i.nodeType){case 8:case 3:return Le;case 1:case 11:if(he.has(i))return he.get(i);break;default:return St}let t;return Array.from(i.childNodes).every(g)?gt.test(i.nodeName)?t=Le:t=We:t=ze,he.set(i,t),t},g=i=>ke(i)===Le,q=i=>ke(i)===We,X=i=>ke(i)===ze;var m=(i,t,e)=>{let n=document.createElement(i);if(t instanceof Array&&(e=t,t=null),t)for(let o in t){let s=t[o];s!==void 0&&n.setAttribute(o,s)}return e&&e.forEach(o=>n.appendChild(o)),n},ye=(i,t)=>H(i)||i.nodeType!==t.nodeType||i.nodeName!==t.nodeName?!1:i instanceof HTMLElement&&t instanceof HTMLElement?i.nodeName!=="A"&&i.className===t.className&&i.style.cssText===t.style.cssText:!0,pe=(i,t,e)=>{if(i.nodeName!==t)return!1;for(let n in e)if(!("getAttribute"in i)||i.getAttribute(n)!==e[n])return!1;return!0},N=(i,t,e,n)=>{for(;i&&i!==t;){if(pe(i,e,n))return i;i=i.parentNode}return null},ge=(i,t)=>{let e=i.childNodes;for(;t&&i instanceof Element;)i=e[t-1],e=i.childNodes,t=e.length;return i},Oe=(i,t)=>{let e=i;if(e instanceof Element){let n=e.childNodes;if(t<n.length)e=n[t];else{for(;e&&!e.nextSibling;)e=e.parentNode;e&&(e=e.nextSibling)}}return e},R=i=>i instanceof Element||i instanceof DocumentFragment?i.childNodes.length:i instanceof CharacterData?i.length:0,E=i=>{let t=document.createDocumentFragment(),e=i.firstChild;for(;e;)t.appendChild(e),e=i.firstChild;return t},S=i=>{let t=i.parentNode;return t&&t.removeChild(i),i},k=(i,t)=>{let e=i.parentNode;e&&e.replaceChild(t,i)};var Et=i=>i instanceof Element?i.nodeName==="BR":B.test(i.data),te=(i,t)=>{let e=i.parentNode;for(;g(e);)e=e.parentNode;let n=new T(e,5,Et);return n.currentNode=i,!!n.nextNode()||t&&!n.previousNode()},le=(i,t)=>{let e=new T(i,4),n,o;for(;n=e.nextNode();)for(;(o=n.data.indexOf("\u200B"))>-1&&(!t||n.parentNode!==t);)if(n.length===1){let s=n,r=s.parentNode;for(;r&&(r.removeChild(s),e.currentNode=r,!(!g(r)||R(r)));)s=r,r=s.parentNode;break}else n.deleteData(o,1)};var Tt=0,_t=1,Ct=2,vt=3,z=(i,t,e)=>{let n=document.createRange();if(n.selectNode(t),e){let o=i.compareBoundaryPoints(vt,n)>-1,s=i.compareBoundaryPoints(_t,n)<1;return!o&&!s}else{let o=i.compareBoundaryPoints(Tt,n)<1,s=i.compareBoundaryPoints(Ct,n)>-1;return o&&s}},_=i=>{let{startContainer:t,startOffset:e,endContainer:n,endOffset:o}=i;for(;!(t instanceof Text);){let s=t.childNodes[e];if(!s||H(s)){if(e&&(s=t.childNodes[e-1],s instanceof Text)){let r=s,l;for(;!r.length&&(l=r.previousSibling)&&l instanceof Text;)r.remove(),r=l;t=r,e=r.data.length}break}t=s,e=0}if(o)for(;!(n instanceof Text);){let s=n.childNodes[o-1];if(!s||H(s)){if(s&&s.nodeName==="BR"&&!te(s,!1)){o-=1;continue}break}n=s,o=R(n)}else for(;!(n instanceof Text);){let s=n.firstChild;if(!s||H(s))break;n=s}i.setStart(t,e),i.setEnd(n,o)},K=(i,t,e,n)=>{let o=i.startContainer,s=i.startOffset,r=i.endContainer,l=i.endOffset,a;for(t||(t=i.commonAncestorContainer),e||(e=t);!s&&o!==t&&o!==n;)a=o.parentNode,s=Array.from(a.childNodes).indexOf(o),o=a;for(;!(r===e||r===n||(r.nodeType!==3&&r.childNodes[l]&&r.childNodes[l].nodeName==="BR"&&!te(r.childNodes[l],!1)&&(l+=1),l!==R(r)));)a=r.parentNode,l=Array.from(a.childNodes).indexOf(r)+1,r=a;i.setStart(o,s),i.setEnd(r,l)},Be=(i,t,e)=>{let n=N(i.endContainer,e,t);if(n&&(n=n.parentNode)){let o=i.cloneRange();K(o,n,n,e),o.endContainer===n&&(i.setStart(o.endContainer,o.endOffset),i.setEnd(o.endContainer,o.endOffset))}return i};var x=i=>{let t=null;if(i instanceof Text)return i;if(g(i)){let e=i.firstChild;if(oe)for(;e&&e instanceof Text&&!e.data;)i.removeChild(e),e=i.firstChild;e||(oe?t=document.createTextNode("\u200B"):t=document.createTextNode(""))}else if((i instanceof Element||i instanceof DocumentFragment)&&!i.querySelector("BR")&&!B.test(i.textContent||"")){t=m("BR");let e=i,n;for(;(n=e.lastElementChild)&&!g(n);)e=n;i=e,i instanceof HTMLElement&&i.contentEditable==="true"&&(i=m("DIV"),e.appendChild(i))}if(t)try{i.appendChild(t)}catch(e){}return i},D=(i,t)=>{let e=null;return/^(?:TABLE|TBODY|TR|TH|TD|P)/.test(i.nodeName)||(Array.from(i.childNodes).forEach(n=>{let o=n.nodeName==="BR";!o&&g(n)?(e||(e=m("DIV")),e.appendChild(n)):(o||e)&&(e||(e=m("DIV")),x(e),o?i.replaceChild(e,n):i.insertBefore(e,n),e=null),X(n)&&D(n,t)}),e&&i.appendChild(x(e))),i},I=(i,t,e,n)=>{if(!e.contains(i))throw new Error("split: stopNode does not contain node");if(i instanceof Text&&i!==e){if(typeof t!="number")throw new Error("Offset must be a number to split text node!");if(!i.parentNode)throw new Error("Cannot split text node with no parent!");return I(i.parentNode,i.splitText(t),e,n)}let o=typeof t=="number"?t<i.childNodes.length?i.childNodes[t]:null:t,s=i.parentNode;if(!s||i===e||!(i instanceof Element))return o;let r=i.cloneNode(!1);for(;o;){let l=o.nextSibling;r.appendChild(o),o=l}return i instanceof HTMLOListElement&&N(i,n,"BLOCKQUOTE")&&(r.start=(+i.start||1)+i.childNodes.length-1),x(i),x(r),s.insertBefore(r,i.nextSibling),I(s,r,e,n)},Ke=(i,t)=>{let e=i.childNodes,n=e.length,o=[];for(;n--;){let s=e[n],r=n?e[n-1]:null;if(r&&g(s)&&ye(s,r))t.startContainer===s&&(t.startContainer=r,t.startOffset+=R(r)),t.endContainer===s&&(t.endContainer=r,t.endOffset+=R(r)),t.startContainer===i&&(t.startOffset>n?t.startOffset-=1:t.startOffset===n&&(t.startContainer=r,t.startOffset=R(r))),t.endContainer===i&&(t.endOffset>n?t.endOffset-=1:t.endOffset===n&&(t.endContainer=r,t.endOffset=R(r))),S(s),s instanceof Text?r.appendData(s.data):o.push(E(s));else if(s instanceof Element){let l;for(;l=o.pop();)s.appendChild(l);Ke(s,t)}}},ne=(i,t)=>{let e=i instanceof Text?i.parentNode:i;if(e instanceof Element){let n={startContainer:t.startContainer,startOffset:t.startOffset,endContainer:t.endContainer,endOffset:t.endOffset};Ke(e,n),t.setStart(n.startContainer,n.startOffset),t.setEnd(n.endContainer,n.endOffset)}},V=(i,t,e,n)=>{let o=t,s,r;for(;(s=o.parentNode)&&s!==n&&s instanceof Element&&s.childNodes.length===1;)o=s;S(o),r=i.childNodes.length;let l=i.lastChild;l&&l.nodeName==="BR"&&(i.removeChild(l),r-=1),i.appendChild(E(t)),e.setStart(i,r),e.collapse(!0),ne(i,e)},P=(i,t)=>{let e=i.previousSibling,n=i.firstChild,o=i.nodeName==="LI";if(!(o&&(!n||!/^[OU]L$/.test(n.nodeName)))){if(e&&ye(e,i)){if(!X(e))if(o){let r=m("DIV");r.appendChild(E(e)),e.appendChild(r)}else return;S(i);let s=!X(i);e.appendChild(E(i)),s&&D(e,t),n&&P(n,t)}else if(o){let s=m("DIV");i.insertBefore(s,n),x(s)}}};var $e={"font-weight":{regexp:/^bold|^700/i,replace(){return m("B")}},"font-style":{regexp:/^italic/i,replace(){return m("I")}},"font-family":{regexp:B,replace(i,t){let e=m("SPAN",{class:i.fontFamily});return e.style.fontFamily=t,e}},"font-size":{regexp:B,replace(i,t){let e=m("SPAN",{class:i.fontSize});return e.style.fontSize=t,e}},"text-decoration":{regexp:/^underline/i,replace(){return m("U")}}},xt=(i,t,e)=>{let n=i.style,o,s;for(let r in $e){let l=$e[r],a=n.getPropertyValue(r);if(a&&l.regexp.test(a)){let d=l.replace(e.classNames,a);if(d.nodeName===i.nodeName&&d.className===i.className)continue;s||(s=d),o&&o.appendChild(d),o=d,i.style.removeProperty(r)}}return s&&o&&(o.appendChild(E(i)),i.style.cssText?i.appendChild(s):k(i,s)),o||i},Ne=i=>(t,e)=>{let n=m(i),o=t.attributes;for(let s=0,r=o.length;s<r;s+=1){let l=o[s];n.setAttribute(l.name,l.value)}return e.replaceChild(n,t),n.appendChild(E(t)),n},bt={1:"10",2:"13",3:"16",4:"18",5:"24",6:"32",7:"48"},Lt={STRONG:Ne("B"),EM:Ne("I"),INS:Ne("U"),STRIKE:Ne("S"),SPAN:xt,FONT:(i,t,e)=>{let n=i,o=n.face,s=n.size,r=n.color,l=e.classNames,a,d,c,f,u;return o&&(a=m("SPAN",{class:l.fontFamily}),a.style.fontFamily=o,u=a,f=a),s&&(d=m("SPAN",{class:l.fontSize}),d.style.fontSize=bt[s]+"px",u||(u=d),f&&f.appendChild(d),f=d),r&&/^#?([\dA-F]{3}){1,2}$/i.test(r)&&(r.charAt(0)!=="#"&&(r="#"+r),c=m("SPAN",{class:l.color}),c.style.color=r,u||(u=c),f&&f.appendChild(c),f=c),(!u||!f)&&(u=f=m("SPAN")),t.replaceChild(u,n),f.appendChild(E(n)),f},TT:(i,t,e)=>{let n=m("SPAN",{class:e.classNames.fontFamily,style:'font-family:menlo,consolas,"courier new",monospace'});return t.replaceChild(n,i),n.appendChild(E(i)),n}},Rt=/^(?:A(?:DDRESS|RTICLE|SIDE|UDIO)|BLOCKQUOTE|CAPTION|D(?:[DLT]|IV)|F(?:IGURE|IGCAPTION|OOTER)|H[1-6]|HEADER|L(?:ABEL|EGEND|I)|O(?:L|UTPUT)|P(?:RE)?|SECTION|T(?:ABLE|BODY|D|FOOT|H|HEAD|R)|COL(?:GROUP)?|UL)$/,kt=/^(?:HEAD|META|STYLE)/,Se=(i,t,e)=>{let n=i.childNodes,o=i;for(;g(o);)o=o.parentNode;let s=new T(o,5);for(let r=0,l=n.length;r<l;r+=1){let a=n[r],d=a.nodeName,c=Lt[d];if(a instanceof HTMLElement){let f=a.childNodes.length;if(c)a=c(a,i,t);else if(kt.test(d)){i.removeChild(a),r-=1,l-=1;continue}else if(!Rt.test(d)&&!g(a)){r-=1,l+=f-1,i.replaceChild(E(a),a);continue}f&&Se(a,t,e||d==="PRE")}else{if(a instanceof Text){let f=a.data,u=!B.test(f.charAt(0)),p=!B.test(f.charAt(f.length-1));if(e||!u&&!p)continue;if(u){s.currentNode=a;let h;for(;(h=s.previousPONode())&&!(h.nodeName==="IMG"||h instanceof Text&&B.test(h.data));)if(!g(h)){h=null;break}f=f.replace(/^[ \t\r\n]+/g,h?" ":"")}if(p){s.currentNode=a;let h;for(;(h=s.nextNode())&&!(h.nodeName==="IMG"||h instanceof Text&&B.test(h.data));)if(!g(h)){h=null;break}f=f.replace(/[ \t\r\n]+$/g,h?" ":"")}if(f){a.data=f;continue}}i.removeChild(a),r-=1,l-=1}}return i},Ee=i=>{let t=i.childNodes,e=t.length;for(;e--;){let n=t[e];n instanceof Element&&!H(n)?(Ee(n),g(n)&&!n.firstChild&&i.removeChild(n)):n instanceof Text&&!n.data&&i.removeChild(n)}},ae=(i,t,e)=>{let n=i.querySelectorAll("BR"),o=[],s=n.length;for(let r=0;r<s;r+=1)o[r]=te(n[r],e);for(;s--;){let r=n[s],l=r.parentNode;l&&(o[s]?g(l)||D(l,t):S(r))}},De=i=>i.split("&").join("&amp;").split("<").join("&lt;").split(">").join("&gt;").split('"').join("&quot;");var ce=(i,t)=>{let e=new T(t,1,q);return e.currentNode=i,e},W=(i,t)=>{let e=ce(i,t).previousNode();return e!==t?e:null},M=(i,t)=>{let e=ce(i,t).nextNode();return e!==t?e:null},de=i=>!i.textContent&&!i.querySelector("IMG");var v=(i,t)=>{let e=i.startContainer,n;if(g(e))n=W(e,t);else if(e!==t&&e instanceof HTMLElement&&q(e))n=e;else{let o=ge(e,i.startOffset);n=M(o,t)}return n&&z(i,n,!0)?n:null},$=(i,t)=>{let e=i.endContainer,n;if(g(e))n=W(e,t);else if(e!==t&&e instanceof HTMLElement&&q(e))n=e;else{let o=Oe(e,i.endOffset);if(!o||!t.contains(o)){o=t;let s;for(;s=o.lastChild;)o=s}n=W(o,t)}return n&&z(i,n,!0)?n:null},Ge=i=>i instanceof Text?B.test(i.data):i.nodeName==="IMG",j=(i,t)=>{let e=i.startContainer,n=i.startOffset,o;if(e instanceof Text){let l=e.data;for(let a=n;a>0;a-=1)if(l.charAt(a-1)!=="\u200B")return!1;o=e}else if(o=Oe(e,n),o&&!t.contains(o)&&(o=null),!o&&(o=ge(e,n),o instanceof Text&&o.length))return!1;let s=v(i,t);if(!s)return!1;let r=new T(s,5,Ge);return r.currentNode=o,!r.previousNode()},G=(i,t)=>{let e=i.endContainer,n=i.endOffset,o;if(e instanceof Text){let l=e.data,a=l.length;for(let d=n;d<a;d+=1)if(l.charAt(d)!=="\u200B")return!1;o=e}else o=ge(e,n);let s=$(i,t);if(!s)return!1;let r=new T(s,5,Ge);return r.currentNode=o,!r.nextNode()},we=(i,t)=>{let e=v(i,t),n=$(i,t),o;e&&n&&(o=e.parentNode,i.setStart(o,Array.from(o.childNodes).indexOf(e)),o=n.parentNode,i.setEnd(o,Array.from(o.childNodes).indexOf(n)+1))};function Q(i,t,e,n){let o=document.createRange();return o.setStart(i,t),e&&typeof n=="number"?o.setEnd(e,n):o.setEnd(i,t),o}var Z=(i,t)=>{let{startContainer:e,startOffset:n,endContainer:o,endOffset:s}=i,r;if(e instanceof Text){let a=e.parentNode;if(r=a.childNodes,n===e.length)n=Array.from(r).indexOf(e)+1,i.collapsed&&(o=a,s=n);else{if(n){let d=e.splitText(n);o===e?(s-=n,o=d):o===a&&(s+=1),e=d}n=Array.from(r).indexOf(e)}e=a}else r=e.childNodes;let l=r.length;n===l?e.appendChild(t):e.insertBefore(t,r[n]),e===o&&(s+=r.length-l),i.setStart(e,n),i.setEnd(o,s)},Ae=(i,t,e)=>{let n=document.createDocumentFragment();if(i.collapsed)return n;t||(t=i.commonAncestorContainer),t instanceof Text&&(t=t.parentNode);let o=i.startContainer,s=i.startOffset,r=I(i.endContainer,i.endOffset,t,e),l=0,a=I(o,s,t,e);for(;a&&a!==r;){let d=a.nextSibling;n.appendChild(a),a=d}return a=r&&r.previousSibling,a&&a instanceof Text&&r instanceof Text&&(l=a.length,a.appendData(r.data),S(r),r=a),i.setStart(o,s),r?i.setEnd(r,l):i.setEnd(t,t.childNodes.length),x(t),n},Ze=(i,t,e)=>{i.currentNode=e;let n;for(;n=i[t]();){if(n instanceof Text||H(n))return n;if(!g(n))return null}return null},F=(i,t)=>{let e=v(i,t),n=$(i,t),o=e!==n;e&&n&&(_(i),K(i,e,n,t));let s=Ae(i,null,t);_(i),o&&(n=$(i,t),e&&n&&e!==n&&V(e,n,i,t)),e&&x(e);let r=t.firstChild;(!r||r.nodeName==="BR")&&(x(t),t.firstChild&&i.selectNodeContents(t.firstChild)),i.collapse(!0);let l=i.startContainer,a=i.startOffset,d=new T(t,5),c=l,f=a;(!(c instanceof Text)||f===c.data.length)&&(c=Ze(d,"nextNode",c),f=0);let u=l,p=a-1;(!(u instanceof Text)||p===-1)&&(u=Ze(d,"previousPONode",c||(l instanceof Text?l:l.childNodes[a]||l)),u instanceof Text&&(p=u.data.length));let h=null,C=0;return c instanceof Text&&c.data.charAt(f)===" "&&j(i,t)?(h=c,C=f):u instanceof Text&&u.data.charAt(p)===" "&&(c instanceof Text&&c.data.charAt(f)===" "||G(i,t))&&(h=u,C=p),h&&h.replaceData(C,1,"\xA0"),i.setStart(l,a),i.collapse(!0),s},Xe=(i,t,e)=>{let n=t.firstChild&&g(t.firstChild),o;for(D(t,e),o=t;o=M(o,e);)x(o);i.collapsed||F(i,e),_(i),i.collapse(!1);let s=N(i.endContainer,e,"BLOCKQUOTE")||e,r=v(i,e),l=null,a=M(t,t),d=!n&&!!r&&de(r);if(r&&a&&!d&&!N(a,t,"PRE")&&!N(a,t,"TABLE")){K(i,r,r,e),i.collapse(!0);let c=i.endContainer,f=i.endOffset;if(ae(r,e,!1),g(c)){let u=I(c,f,W(c,e)||e,e);c=u.parentNode,f=Array.from(c.childNodes).indexOf(u)}if(f!==R(c))for(l=document.createDocumentFragment();o=c.childNodes[f];)l.appendChild(o);V(c,a,i,e),c===e?i.setEnd(e,R(e)):(f=Array.from(c.parentNode.childNodes).indexOf(c)+1,c=c.parentNode,i.setEnd(c,f))}if(R(t)){d&&r&&(i.setEndBefore(r),i.collapse(!1),S(r)),s.contains(i.endContainer)||(e.contains(i.endContainer)||(i.setEnd(e,R(e)),i.collapse(!1)),s=N(i.endContainer,e,"BLOCKQUOTE")||e),K(i,s,s,e);let c=I(i.endContainer,i.endOffset,s,e),f=c?c.previousSibling:s.lastChild;s.insertBefore(t,c),c?i.setEndBefore(c):i.setEnd(s,R(s)),r=$(i,e),_(i);let u=i.endContainer,p=i.endOffset;c&&X(c)&&P(c,e),c=f&&f.nextSibling,c&&X(c)&&P(c,e),i.setEnd(u,p)}if(l&&r){let c=i.cloneRange();x(l),V(r,l,c,e),i.setEnd(c.endContainer,c.endOffset)}_(i)};var Te=i=>{if(i.collapsed)return"";let t=i.startContainer,e=i.endContainer,n=new T(i.commonAncestorContainer,5,a=>z(i,a,!0));n.currentNode=t;let o=t,s="",r=!1,l;for((!(o instanceof Element)&&!(o instanceof Text)||!n.filter(o))&&(o=n.nextNode());o;)o instanceof Text?(l=o.data,l&&/\S/.test(l)&&(o===e&&(l=l.slice(0,i.endOffset)),o===t&&(l=l.slice(i.startOffset)),s+=l,r=!0)):(o.nodeName==="BR"||r&&!g(o))&&(s+=`
2
+ `,r=!1),o=n.nextNode();return s=s.replace(/ /g," "),s};var Ie=Array.prototype.indexOf,je=(i,t,e,n,o)=>{let s=o?"":Te(i),r=v(i,t),l=$(i,t),a=i.commonAncestorContainer,d=t;r===l&&(r!=null&&r.contains(a))&&(d=r);let c;for(e?(c=F(i,t),a.isConnected||(a=i.commonAncestorContainer)):c=i.cloneContents(),a instanceof Text&&(a=a.parentNode);a&&a!==d;){let u=a.cloneNode(!1);u.appendChild(c),c=u,a=a.parentNode}let f;if(c.childNodes.length===1&&c.childNodes[0]instanceof Text)s=c.childNodes[0].data.replace(/ /g," "),f=void 0;else{let u=m("DIV");u.appendChild(c),f=u.innerHTML,n&&(f=n(f))}return o&&f!==void 0&&(s=o(f)),s===f&&(f=void 0),ue&&(s=s.replace(/\r?\n/g,`\r
3
+ `)),f&&(f="<!-- squire -->"+f),[s,f]},Qe=(i,t,e,n,o,s,r)=>{let l=i.clipboardData;if(re||!l)return!1;let[a,d]=je(t,e,n,o,s);return i.preventDefault(),!r&&d&&l.setData("text/html",d),l.setData("text/plain",a),!0},Ye=function(i){let t=this.getSelection(),e=this._root;if(t.collapsed){i.preventDefault();return}this.saveUndoState(t),Qe(i,t,e,!0,this._config.willCutCopy,this._config.toPlainText,!1)||setTimeout(()=>{try{this._ensureBottomLine()}catch(o){this._config.didError(o)}},0),this.setSelection(t)},Ve=function(i){Qe(i,this.getSelection(),this._root,!1,this._config.willCutCopy,this._config.toPlainText,!1)},Me=function(i){this._isShiftDown=i.shiftKey},Je=function(i){let t=i.clipboardData,e=t==null?void 0:t.items,n=this._isShiftDown,o=!1,s=!1,r=null,l=null;if(e){let L=e.length;for(;L--;){let O=e[L],w=O.type;w==="text/html"?l=O:w==="text/plain"||w==="text/uri-list"?r=O:w==="text/rtf"?o=!0:/^image\/.*/.test(w)&&(s=!0)}if(s&&!(o&&l)&&!r){i.preventDefault(),this.fireEvent("pasteImage",{clipboardData:t});return}if(!re){i.preventDefault(),l&&(!n||!r)?l.getAsString(O=>{this.insertHTML(O,!0)}):r&&r.getAsString(O=>{let w=this.getSelection();if(!w.collapsed&&B.test(w.toString())){let J=this.linkRegExp.exec(O);if(!!J&&J[0].length===O.length){let dt=J[1]?/^(?:ht|f)tps?:/i.test(J[1])?J[1]:"http://"+J[1]:"mailto:"+J[0];this.makeLink(dt);return}}this.insertPlainText(O,!0)});return}}let a=t==null?void 0:t.types;if(!re&&a&&(Ie.call(a,"text/html")>-1||!qe&&Ie.call(a,"text/plain")>-1&&Ie.call(a,"text/rtf")<0)){i.preventDefault();let L;!n&&(L=t.getData("text/html"))?this.insertHTML(L,!0):((L=t.getData("text/plain"))||(L=t.getData("text/uri-list")))&&this.insertPlainText(L,!0);return}let d=document.body,c=this.getSelection(),f=c.startContainer,u=c.startOffset,p=c.endContainer,h=c.endOffset,C=m("DIV",{contenteditable:"true",style:"position:fixed; overflow:hidden; top:0; right:100%; width:1px; height:1px;"});d.appendChild(C),c.selectNodeContents(C),this.setSelection(c),setTimeout(()=>{try{let L="",O=C,w;for(;C=O;)O=C.nextSibling,S(C),w=C.firstChild,w&&w===C.lastChild&&w instanceof HTMLDivElement&&(C=w),L+=C.innerHTML;this.setSelection(Q(f,u,p,h)),L&&this.insertHTML(L,!0)}catch(L){this._config.didError(L)}},0)},et=function(){let i=this.getSelection();i&&!i.collapsed&&this._root.contains(i.commonAncestorContainer)?this._dragRange=i.cloneRange():this._dragRange=null},tt=function(){this._dragRange=null},Ot=(i,t,e)=>{let n=null,o=document;if(o.caretPositionFromPoint){let s=o.caretPositionFromPoint(i,t);s&&(n=document.createRange(),n.setStart(s.offsetNode,s.offset),n.collapse(!0))}else o.caretRangeFromPoint&&(n=o.caretRangeFromPoint(i,t));return n&&!e.contains(n.commonAncestorContainer)?null:n},Bt=(i,t)=>i.compareBoundaryPoints(Range.START_TO_START,t)>=0&&i.compareBoundaryPoints(Range.END_TO_END,t)<=0,nt=function(i){let t=i.dataTransfer;if(!t)return;let e=t.types,n=!1,o=!1;for(let c=0,f=e.length;c<f;c+=1)switch(e[c]){case"text/plain":n=!0;break;case"text/html":o=!0;break}if(!n&&!o)return;i.preventDefault();let s=this._root,r=Ot(i.clientX,i.clientY,s),l=this._dragRange;if(this._dragRange=null,!r)return;let a,d;if(l){if(Bt(r,l))return;this._recordUndoState(l,this._isInUndoState);let c=document.createComment("");r.insertNode(c),this._getRangeAndRemoveBookmark(l),[a,d]=je(l,s,t.dropEffect!=="copy",this._config.willCutCopy,this._config.toPlainText),c.replaceWith(m("INPUT",{id:this.startSelectionId,type:"hidden"}),m("INPUT",{id:this.endSelectionId,type:"hidden"})),this._getRangeAndRemoveBookmark(r),me()}else this.saveUndoState(r),o?d=t.getData("text/html"):a=t.getData("text/plain");this.setSelection(r),d!==void 0?this.insertHTML(d,!0):a!==void 0&&this.insertPlainText(a,!0)};var He=(i,t,e)=>{t.preventDefault(),i.splitBlock(t.shiftKey,e)};var ie=(i,t)=>{try{t||(t=i.getSelection());let e=t.startContainer;e instanceof Text&&(e=e.parentNode);let n=e;for(;n!==i._root&&g(n)&&(!n.textContent||n.textContent==="\u200B");)e=n,n=e.parentNode;e!==n&&(t.setStart(n,Array.from(n.childNodes).indexOf(e)),t.collapse(!0),n.removeChild(e),q(n)||(n=W(n,i._root)||i._root),x(n),_(t)),e===i._root&&(e=e.firstChild)&&e.nodeName==="BR"&&S(e),i._ensureBottomLine(),i.setSelection(t),i._updatePath(t,!0)}catch(e){i._config.didError(e)}},_e=(i,t)=>{let e;for(;(e=i.parentNode)&&!(e===t||e.isContentEditable);)i=e;S(i)},Ce=(i,t,e)=>{if(N(t,i._root,"A"))return;let n=t.data||"",o=Math.max(n.lastIndexOf(" ",e-1),n.lastIndexOf("\xA0",e-1))+1,s=n.slice(o,e),r=i.linkRegExp.exec(s);if(r){let l=i.getSelection();i._docWasChanged(),i._recordUndoState(l),i._getRangeAndRemoveBookmark(l);let a=o+r.index,d=a+r[0].length,c=l.startContainer===t,f=l.startOffset-d;a&&(t=t.splitText(a));let u=i._config.tagAttributes.a,p=m("A",Object.assign({href:r[1]?/^(?:ht|f)tps?:/i.test(r[1])?r[1]:"http://"+r[1]:"mailto:"+r[0]},u));p.textContent=n.slice(a,d),t.parentNode.insertBefore(p,t),t.data=n.slice(d),c&&(l.setStart(t,f),l.setEnd(t,f)),i.setSelection(l)}};var it=(i,t,e)=>{let n=i._root;if(i._removeZWS(),i.saveUndoState(e),!e.collapsed)t.preventDefault(),F(e,n),ie(i,e);else if(j(e,n)){t.preventDefault();let o=v(e,n);if(!o)return;let s=o;D(s.parentNode,n);let r=W(s,n);if(r){if(!r.isContentEditable){_e(r,n);return}for(V(r,s,e,n),s=r.parentNode;s!==n&&!s.nextSibling;)s=s.parentNode;s!==n&&(s=s.nextSibling)&&P(s,n),i.setSelection(e)}else if(s){if(N(s,n,"UL")||N(s,n,"OL")){i.decreaseListLevel(e);return}else if(N(s,n,"BLOCKQUOTE")){i.removeQuote(e);return}i.setSelection(e),i._updatePath(e,!0)}}else{_(e);let o=e.startContainer,s=e.startOffset,r=o.parentNode;o instanceof Text&&r instanceof HTMLAnchorElement&&s&&r.href.includes(o.data)?(o.deleteData(s-1,1),i.setSelection(e),i.removeLink(),t.preventDefault()):(i.setSelection(e),setTimeout(()=>{ie(i)},0))}};var ot=(i,t,e)=>{let n=i._root,o,s,r,l,a,d;if(i._removeZWS(),i.saveUndoState(e),!e.collapsed)t.preventDefault(),F(e,n),ie(i,e);else if(G(e,n)){if(t.preventDefault(),o=v(e,n),!o)return;if(D(o.parentNode,n),s=M(o,n),s){if(!s.isContentEditable){_e(s,n);return}for(V(o,s,e,n),s=o.parentNode;s!==n&&!s.nextSibling;)s=s.parentNode;s!==n&&(s=s.nextSibling)&&P(s,n),i.setSelection(e),i._updatePath(e,!0)}}else{if(r=e.cloneRange(),K(e,n,n,n),l=e.endContainer,a=e.endOffset,l instanceof Element&&(d=l.childNodes[a],d&&d.nodeName==="IMG")){t.preventDefault(),S(d),_(e),ie(i,e);return}i.setSelection(r),setTimeout(()=>{ie(i)},0)}};var st=(i,t,e)=>{let n=i._root;if(i._removeZWS(),e.collapsed&&j(e,n)){let o=v(e,n),s;for(;s=o.parentNode;){if(s.nodeName==="UL"||s.nodeName==="OL"){t.preventDefault(),i.increaseListLevel(e);break}o=s}}},rt=(i,t,e)=>{let n=i._root;if(i._removeZWS(),e.collapsed&&j(e,n)){let o=e.startContainer;(N(o,n,"UL")||N(o,n,"OL"))&&(t.preventDefault(),i.decreaseListLevel(e))}};var lt=(i,t,e)=>{var s;let n,o=i._root;if(i._recordUndoState(e),i._getRangeAndRemoveBookmark(e),!e.collapsed)F(e,o),i._ensureBottomLine(),i.setSelection(e),i._updatePath(e,!0);else if(G(e,o)){let r=v(e,o);if(r&&r.nodeName!=="PRE"){let l=(s=r.textContent)==null?void 0:s.trimEnd().replace("\u200B","");if(l==="*"||l==="1."){t.preventDefault(),i.insertPlainText(" ",!1),i._docWasChanged(),i.saveUndoState(e);let a=new T(r,4),d;for(;d=a.nextNode();)S(d);l==="*"?i.makeUnorderedList():i.makeOrderedList();return}}}if(n=e.endContainer,e.endOffset===R(n))do if(n.nodeName==="A"){e.setStartAfter(n);break}while(!n.nextSibling&&(n=n.parentNode)&&n!==o);if(i._config.addLinks){let r=e.cloneRange();_(r);let l=r.startContainer,a=r.startOffset;setTimeout(()=>{Ce(i,l,a)},0)}i.setSelection(e)};var at=function(i){if(i.defaultPrevented||i.isComposing)return;let t=i.key,e="",n=i.code;/^Digit\d$/.test(n)&&(t=n.slice(-1)),t!=="Backspace"&&t!=="Delete"&&(i.altKey&&(e+="Alt-"),i.ctrlKey&&(e+="Ctrl-"),i.metaKey&&(e+="Meta-"),i.shiftKey&&(e+="Shift-")),ue&&i.shiftKey&&t==="Delete"&&(e+="Shift-"),t=e+t;let o=this.getSelection(),s=this._keyHandlers[t];s?s(this,i,o):!o.collapsed&&!i.ctrlKey&&!i.metaKey&&t.length===1&&(this.saveUndoState(o),F(o,this._root),this._ensureBottomLine(),this.setSelection(o),this._updatePath(o,!0))},b={Backspace:it,Delete:ot,Tab:st,"Shift-Tab":rt," ":lt,ArrowLeft(i){i._removeZWS()},ArrowRight(i,t,e){i._removeZWS();let n=i.getRoot();if(G(e,n)){_(e);let o=e.endContainer;do if(o.nodeName==="CODE"){let s=o.nextSibling;if(!(s instanceof Text)||s.length===0){let r=document.createTextNode("\xA0");o.parentNode.insertBefore(r,s),s=r}e.setStart(s,1),i.setSelection(e),t.preventDefault();break}while(!o.nextSibling&&(o=o.parentNode)&&o!==n)}}};Ue||(b.Enter=He,b["Shift-Enter"]=He);!fe&&!be&&(b.PageUp=i=>{i.moveCursorToStart()},b.PageDown=i=>{i.moveCursorToEnd()});var se=(i,t)=>(t=t||null,(e,n)=>{n.preventDefault();let o=e.getSelection();e.hasFormat(i,null,o)?e.changeFormat(null,{tag:i},o):e.changeFormat({tag:i},t,o)});b[y+"b"]=se("B");b[y+"i"]=se("I");b[y+"u"]=se("U");b[y+"Shift-7"]=se("S");b[y+"Shift-5"]=se("SUB",{tag:"SUP"});b[y+"Shift-6"]=se("SUP",{tag:"SUB"});b[y+"Shift-8"]=(i,t)=>{t.preventDefault();let e=i.getPath();/(?:^|>)UL/.test(e)?i.removeList():i.makeUnorderedList()};b[y+"Shift-9"]=(i,t)=>{t.preventDefault();let e=i.getPath();/(?:^|>)OL/.test(e)?i.removeList():i.makeOrderedList()};b[y+"["]=(i,t)=>{t.preventDefault();let e=i.getPath();/(?:^|>)BLOCKQUOTE/.test(e)||!/(?:^|>)[OU]L/.test(e)?i.decreaseQuoteLevel():i.decreaseListLevel()};b[y+"]"]=(i,t)=>{t.preventDefault();let e=i.getPath();/(?:^|>)BLOCKQUOTE/.test(e)||!/(?:^|>)[OU]L/.test(e)?i.increaseQuoteLevel():i.increaseListLevel()};b[y+"d"]=(i,t)=>{t.preventDefault(),i.toggleCode()};b[y+"z"]=(i,t)=>{t.preventDefault(),i.undo()};b[y+"y"]=b[y+"Shift-z"]=b[y+"Shift-Z"]=(i,t)=>{t.preventDefault(),i.redo()};var Pe=8,ct=40,Fe=1200,Dt=[{pos:"nw",cursor:"nwse-resize"},{pos:"n",cursor:"ns-resize"},{pos:"ne",cursor:"nesw-resize"},{pos:"e",cursor:"ew-resize"},{pos:"se",cursor:"nwse-resize"},{pos:"s",cursor:"ns-resize"},{pos:"sw",cursor:"nesw-resize"},{pos:"w",cursor:"ew-resize"}],wt={ArrowUp:(i,t,e)=>{let n=v(t,e);if(n){let o=W(n,e);o&&(t.selectNodeContents(o),t.collapse(!1),i.setSelection(t).focus())}},ArrowDown:(i,t,e)=>{let n=v(t,e);if(n){let o=M(n,e);o&&(t.selectNodeContents(o),t.collapse(!0),i.setSelection(t).focus())}},Delete:(i,t)=>{i.replaceWithBlankLine(t)},Backspace:(i,t)=>{i.replaceWithBlankLine(t)}},ve=class{constructor(t,e){this._currentImage=null;this._resizeContainer=null;this._handles=null;this._currentHandle=null;this._startX=0;this._startY=0;this._startWidth=0;this._startHeight=0;this._maxWidth=Fe;this._originalRatio=1;this._editor=e,this._root=t,document.addEventListener("click",this),e.addEventListener("drop",this)}destroy(){this._deselectImage(),this._editor.removeEventListener("drop",this),document.removeEventListener("click",this)}handleEvent(t){switch(t.type){case"click":this._onClick(t);break;case"pointerdown":this._onPointerDown(t);break;case"pointermove":this._onPointerMove(t);break;case"pointercancel":case"pointerup":this._onPointerUp(t);break;case"keydown":this._onKeyDown(t);break;case"drop":this._deselectImage();break}}_onClick(t){let e=t.target;e.nodeName==="IMG"&&this._root.contains(e)?(t.stopPropagation(),this._selectImage(e)):this._currentImage&&this._handles&&!this._handles.some(n=>n.element===e)&&this._deselectImage()}_deselectImage(){this._currentImage&&(document.removeEventListener("keydown",this,!0),this._currentHandle&&this._onPointerUp({preventDefault(){},target:this._currentHandle.element}),this._handles&&this._handles.forEach(({element:t})=>t.removeEventListener("pointerdown",this)),this._resizeContainer&&this._resizeContainer.remove(),this._currentImage.removeAttribute("tabindex"),this._handles=null,this._resizeContainer=null,this._currentImage=null)}_selectImage(t){if(this._currentImage===t)return;this._deselectImage(),this._root.blur();let e=Dt.map(({pos:s,cursor:r})=>{let l=Pe/2,a="";switch(s){case"nw":a=`left: -${l}px; top: -${l}px;`;break;case"n":a=`left: calc(50% - ${l}px); top: -${l}px;`;break;case"ne":a=`right: -${l}px; top: -${l}px;`;break;case"e":a=`right: -${l}px; top: calc(50% - ${l}px);`;break;case"se":a=`right: -${l}px; bottom: -${l}px;`;break;case"s":a=`left: calc(50% - ${l}px); bottom: -${l}px;`;break;case"sw":a=`left: -${l}px; bottom: -${l}px;`;break;case"w":a=`left: -${l}px; top: calc(50% - ${l}px);`;break}let d=m("div",{class:`squire-resize-handle squire-resize-handle-${s}`,style:`
4
+ position: absolute;
5
+ width: ${Pe}px;
6
+ height: ${Pe}px;
7
+ background: #0067b9;
8
+ border: 1px solid #fff;
9
+ cursor: ${r};
10
+ pointer-events: auto;
11
+ touch-action: none;
12
+ box-shadow: 0 1px 3px rgba(0,0,0,0.3);
13
+ ${a}
14
+ `});return d.addEventListener("pointerdown",this),{element:d,cursor:r,position:s}}),n=m("div",{class:"squire-image-resize-container",style:"position: absolute; pointer-events: none; z-index: 1000;"},e.map(s=>s.element));this._currentImage=t,this._resizeContainer=n,this._handles=e,this._root.appendChild(this._resizeContainer);let o=t.naturalWidth;this._originalRatio=o/t.naturalHeight,this._maxWidth=Math.min(o*2,t.parentElement?t.parentElement.offsetWidth:Fe,Fe),this._positionResizeContainer(),t.tabIndex=-1,t.focus(),document.addEventListener("keydown",this,!0)}_positionResizeContainer(){let t=this._resizeContainer,e=this._root,n=this._currentImage;if(!t||!n)return;let o=e.getBoundingClientRect(),s=n.getBoundingClientRect(),r=s.top-o.top+e.scrollTop,l=s.left-o.left+e.scrollLeft,a=s.width,d=s.height;t.style.top=r+"px",t.style.left=l+"px",t.style.width=a+"px",t.style.height=d+"px"}_onPointerDown(t){if(this._currentHandle||!this._handles)return;let e=t.target,n=this._handles.find(r=>r.element===e)||null;if(!n)return;let o=this._currentImage;if(!o)return;t.preventDefault(),t.stopPropagation(),e.addEventListener("pointermove",this),e.addEventListener("pointerup",this),e.addEventListener("pointercancel",this),e.setPointerCapture(t.pointerId),this._currentHandle=n,this._startX=t.clientX,this._startY=t.clientY;let s=getComputedStyle(o);this._startWidth=parseFloat(s.width),this._startHeight=parseFloat(s.height),document.body.style.cursor=n.cursor}_onPointerMove(t){t.preventDefault();let e=this._currentHandle,n=this._currentImage;if(!e||!n)return;let o=t.clientX-this._startX,s=t.clientY-this._startY,r=this._maxWidth,l=this._originalRatio,a=this._startWidth,d=this._startHeight;switch(e.position){case"sw":case"nw":case"w":a-=2*o;break;case"se":case"ne":case"e":a+=2*o;break;case"n":d-=s,a=d*l;break;case"s":d+=s,a=d*l;break}a<ct?a=ct:a>r&&(a=r);let c=n.style;c.width=a+"px",c.height="auto",this._positionResizeContainer()}_onPointerUp(t){t.preventDefault();let e=t.target;e&&(e.removeEventListener("pointermove",this),e.removeEventListener("pointerup",this),e.removeEventListener("pointercancel",this)),this._currentHandle=null,document.body.style.cursor=""}_onKeyDown(t){t.preventDefault(),t.stopPropagation();let e=wt[t.key];if(!e)return;let n=this._currentImage;if(!n)return;let o=this._editor,s=this._root;this._deselectImage();let r=o.getSelection();r.selectNode(n),e(o,r,s)}};var xe=class{constructor(t,e){this.customEvents=new Set(["pathChange","select","input","pasteImage","undoStateChange"]);this.startSelectionId="squire-selection-start";this.endSelectionId="squire-selection-end";this.linkRegExp=/\b(?:((?:(?:ht|f)tps?:\/\/|www\d{0,3}[.]|[a-z0-9][a-z0-9.\-]*[.][a-z]{2,}\/)(?:[^\s()<>]+|\([^\s()<>]+\))+(?:[^\s?&`!()\[\]{};:'".,<>«»“”‘’]|\([^\s()<>]+\)))|([\w\-.%+]+@(?:[\w\-]+\.)+[a-z]{2,}\b(?:[?][^&?\s]+=[^\s?&`!()\[\]{};:'".,<>«»“”‘’]+(?:&[^&?\s]+=[^\s?&`!()\[\]{};:'".,<>«»“”‘’]+)*)?))/i;this.tagAfterSplit={DT:"DD",DD:"DT",LI:"LI",PRE:"PRE"};this._root=t,this._config=this._makeConfig(e),this._isFocused=!1,this._lastSelection=Q(t,0),this._willRestoreSelection=!1,this._mayHaveZWS=!1,this._lastAnchorNode=null,this._lastFocusNode=null,this._path="",this._events=new Map,this._undoIndex=-1,this._undoStack=[],this._undoStackLength=0,this._isInUndoState=!1,this._ignoreChange=!1,this._ignoreAllChanges=!1,this.addEventListener("selectionchange",this._updatePathOnEvent),this.addEventListener("blur",this._enableRestoreSelection),this.addEventListener("mousedown",this._disableRestoreSelection),this.addEventListener("touchstart",this._disableRestoreSelection),this.addEventListener("focus",this._restoreSelection),this.addEventListener("blur",this._removeZWS),this._isShiftDown=!1,this.addEventListener("cut",Ye),this.addEventListener("copy",Ve),this.addEventListener("paste",Je),this._dragRange=null,this.addEventListener("dragstart",et),this.addEventListener("dragend",tt),this.addEventListener("drop",nt),this.addEventListener("keydown",Me),this.addEventListener("keyup",Me),this.addEventListener("keydown",at),this._keyHandlers=Object.create(b);let n=new MutationObserver(()=>this._docWasChanged());n.observe(t,{childList:!0,attributes:!0,characterData:!0,subtree:!0}),this._mutation=n,t.setAttribute("contenteditable","true"),this.addEventListener("beforeinput",this._beforeInput),this._imageResizer=new ve(t,this),this.setHTML("")}destroy(){this._events.forEach((t,e)=>{this.removeEventListener(e)}),this._mutation.disconnect(),this._imageResizer.destroy(),this._undoIndex=-1,this._undoStack=[],this._undoStackLength=0}_makeConfig(t){let e={blockTag:"DIV",blockAttributes:null,tagAttributes:{},classNames:{color:"color",fontFamily:"font",fontSize:"size",highlight:"highlight"},undo:{documentSizeThreshold:-1,undoLimit:-1},addLinks:!0,willCutCopy:null,toPlainText:null,sanitizeToDOMFragment:n=>{let o=DOMPurify.sanitize(n,{ALLOW_UNKNOWN_PROTOCOLS:!0,WHOLE_DOCUMENT:!1,RETURN_DOM:!0,RETURN_DOM_FRAGMENT:!0,FORCE_BODY:!1});return o?document.importNode(o,!0):document.createDocumentFragment()},didError:n=>console.log(n)};return t&&(Object.assign(e,t),e.blockTag=e.blockTag.toUpperCase()),e}setKeyHandler(t,e){return this._keyHandlers[t]=e,this}_beforeInput(t){switch(t.inputType){case"insertLineBreak":t.preventDefault(),this.splitBlock(!0);break;case"insertParagraph":t.preventDefault(),this.splitBlock(!1);break;case"insertOrderedList":t.preventDefault(),this.makeOrderedList();break;case"insertUnoderedList":t.preventDefault(),this.makeUnorderedList();break;case"historyUndo":t.preventDefault(),this.undo();break;case"historyRedo":t.preventDefault(),this.redo();break;case"formatBold":t.preventDefault(),this.bold();break;case"formatItalic":t.preventDefault(),this.italic();break;case"formatUnderline":t.preventDefault(),this.underline();break;case"formatStrikeThrough":t.preventDefault(),this.strikethrough();break;case"formatSuperscript":t.preventDefault(),this.superscript();break;case"formatSubscript":t.preventDefault(),this.subscript();break;case"formatJustifyFull":case"formatJustifyCenter":case"formatJustifyRight":case"formatJustifyLeft":{t.preventDefault();let e=t.inputType.slice(13).toLowerCase();e==="full"&&(e="justify"),this.setTextAlignment(e);break}case"formatRemove":t.preventDefault(),this.removeAllFormatting();break;case"formatSetBlockTextDirection":{t.preventDefault();let e=t.data;e==="null"&&(e=null),this.setTextDirection(e);break}case"formatBackColor":t.preventDefault(),this.setHighlightColor(t.data);break;case"formatFontColor":t.preventDefault(),this.setTextColor(t.data);break;case"formatFontName":t.preventDefault(),this.setFontFace(t.data);break}}handleEvent(t){this.fireEvent(t.type,t)}fireEvent(t,e){let n=this._events.get(t);if(/^(?:focus|blur)/.test(t)){let o=this._root===document.activeElement;if(t==="focus"){if(!o||this._isFocused)return this;this._isFocused=!0}else{if(o||!this._isFocused)return this;this._isFocused=!1}}if(n){let o=e instanceof Event?e:new CustomEvent(t,{detail:e});n=n.slice();for(let s of n)try{"handleEvent"in s?s.handleEvent(o):s.call(this,o)}catch(r){this._config.didError(r)}}return this}addEventListener(t,e){let n=this._events.get(t),o=this._root;return n||(n=[],this._events.set(t,n),this.customEvents.has(t)||(t==="selectionchange"&&(o=document),o.addEventListener(t,this,!0))),n.push(e),this}removeEventListener(t,e){let n=this._events.get(t),o=this._root;if(n){if(e){let s=n.length;for(;s--;)n[s]===e&&n.splice(s,1)}else n.length=0;n.length||(this._events.delete(t),this.customEvents.has(t)||(t==="selectionchange"&&(o=document),o.removeEventListener(t,this,!0)))}return this}focus(){return this._root.focus({preventScroll:!0}),this}blur(){return this._root.blur(),this}_enableRestoreSelection(){this._willRestoreSelection=!0}_disableRestoreSelection(){this._willRestoreSelection=!1}_restoreSelection(){this._willRestoreSelection&&this.setSelection(this._lastSelection)}_removeZWS(){this._mayHaveZWS&&(le(this._root),this._mayHaveZWS=!1)}_saveRangeToBookmark(t){let e=m("INPUT",{id:this.startSelectionId,type:"hidden"}),n=m("INPUT",{id:this.endSelectionId,type:"hidden"}),o;Z(t,e),t.collapse(!1),Z(t,n),e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_PRECEDING&&(e.id=this.endSelectionId,n.id=this.startSelectionId,o=e,e=n,n=o),t.setStartAfter(e),t.setEndBefore(n)}_getRangeAndRemoveBookmark(t){let e=this._root,n=e.querySelectorAll("#"+this.startSelectionId),o=e.querySelectorAll("#"+this.endSelectionId),s=n[0],r=o[0];if(s&&r&&s.compareDocumentPosition(r)&Node.DOCUMENT_POSITION_FOLLOWING){let l=s.parentNode,a=r.parentNode,d=Array.from(l.childNodes).indexOf(s),c=Array.from(a.childNodes).indexOf(r);l===a&&(c-=1),s.remove(),r.remove(),t||(t=document.createRange()),t.setStart(l,d),t.setEnd(a,c),ne(l,t),l!==a&&ne(a,t),t.collapsed&&(l=t.startContainer,l instanceof Text&&(a=l.childNodes[t.startOffset],(!a||!(a instanceof Text))&&(a=l.childNodes[t.startOffset-1]),a&&a instanceof Text&&(t.setStart(a,0),t.collapse(!0))))}for(let l=0;l<n.length;l+=1)n[l].remove();for(let l=0;l<o.length;l+=1)o[l].remove();return t||null}getSelection(){let t=window.getSelection(),e=this._root,n=null;if(this._isFocused&&t&&t.rangeCount){n=t.getRangeAt(0).cloneRange();let o=n.startContainer,s=n.endContainer;o&&H(o)&&n.setStartBefore(o),s&&H(s)&&n.setEndBefore(s)}return n&&e.contains(n.commonAncestorContainer)?this._lastSelection=n:(n=this._lastSelection,document.contains(n.commonAncestorContainer)||(n=null)),n||(n=Q(e.firstElementChild||e,0)),n}setSelection(t){if(this._lastSelection=t,!this._isFocused)this._enableRestoreSelection();else{let e=window.getSelection();e&&("setBaseAndExtent"in Selection.prototype?e.setBaseAndExtent(t.startContainer,t.startOffset,t.endContainer,t.endOffset):(e.removeAllRanges(),e.addRange(t)))}return this}_moveCursorTo(t){let e=this._root,n=Q(e,t?0:e.childNodes.length);return _(n),this.setSelection(n),this}moveCursorToStart(){return this._moveCursorTo(!0)}moveCursorToEnd(){return this._moveCursorTo(!1)}getCursorPosition(){let t=this.getSelection(),e=t.getBoundingClientRect();if(e&&!e.top){this._ignoreChange=!0;let n=m("SPAN");n.textContent="\u200B",Z(t,n),e=n.getBoundingClientRect();let o=n.parentNode;o.removeChild(n),ne(o,t)}return e}getPath(){return this._path}_updatePathOnEvent(){this._isFocused&&this._updatePath(this.getSelection())}_updatePath(t,e){let n=t.startContainer,o=t.endContainer,s;(e||n!==this._lastAnchorNode||o!==this._lastFocusNode)&&(this._lastAnchorNode=n,this._lastFocusNode=o,s=n&&o?n===o?this._getPath(o):"(selection)":"",(this._path!==s||n!==o)&&(this._path=s,this.fireEvent("pathChange",{path:s}))),this.fireEvent(t.collapsed?"cursor":"select",{range:t})}_getPath(t){let e=this._root,n=this._config,o="";if(t&&t!==e){let s=t.parentNode;if(o=s?this._getPath(s):"",t instanceof HTMLElement){let r=t.id,l=t.classList,a=Array.from(l).sort(),d=t.dir,c=n.classNames;o+=(o?">":"")+t.nodeName,r&&(o+="#"+r),a.length&&(o+=".",o+=a.join(".")),d&&(o+="[dir="+d+"]"),l.contains(c.highlight)&&(o+="[backgroundColor="+t.style.backgroundColor.replace(/ /g,"")+"]"),l.contains(c.color)&&(o+="[color="+t.style.color.replace(/ /g,"")+"]"),l.contains(c.fontFamily)&&(o+="[fontFamily="+t.style.fontFamily.replace(/ /g,"")+"]"),l.contains(c.fontSize)&&(o+="[fontSize="+t.style.fontSize+"]")}}return o}modifyDocument(t){let e=this._mutation;return e&&(e.takeRecords().length&&this._docWasChanged(),e.disconnect()),this._ignoreAllChanges=!0,t(),this._ignoreAllChanges=!1,e&&(e.observe(this._root,{childList:!0,attributes:!0,characterData:!0,subtree:!0}),this._ignoreChange=!1),this}_docWasChanged(){if(me(),this._mayHaveZWS=!0,!this._ignoreAllChanges){if(this._ignoreChange){this._ignoreChange=!1;return}this._isInUndoState&&(this._isInUndoState=!1,this.fireEvent("undoStateChange",{canUndo:!0,canRedo:!1})),this.fireEvent("input")}}_recordUndoState(t,e){let n=this._isInUndoState;if(!n||e){let o=this._undoIndex+1,s=this._undoStack,r=this._config.undo,l=r.documentSizeThreshold,a=r.undoLimit;if(o<this._undoStackLength&&(s.length=this._undoStackLength=o),t&&this._saveRangeToBookmark(t),n)return this;let d=this._getRawHTML();e&&(o-=1),l>-1&&d.length*2>l&&a>-1&&o>a&&(s.splice(0,o-a),o=a,this._undoStackLength=a),s[o]=d,this._undoIndex=o,this._undoStackLength+=1,this._isInUndoState=!0}return this}saveUndoState(t){let e=!1;return t||(t=this.getSelection(),e=!0),this._recordUndoState(t,this._isInUndoState),this._getRangeAndRemoveBookmark(t),e&&this.setSelection(t),this}undo(){if(this._undoIndex!==0||!this._isInUndoState){this._recordUndoState(this.getSelection(),!1),this._undoIndex-=1,this._setRawHTML(this._undoStack[this._undoIndex]);let t=this._getRangeAndRemoveBookmark();t&&this.setSelection(t),this._isInUndoState=!0,this.fireEvent("undoStateChange",{canUndo:this._undoIndex!==0,canRedo:!0}),this.fireEvent("input")}return this.focus()}redo(){let t=this._undoIndex,e=this._undoStackLength;if(t+1<e&&this._isInUndoState){this._undoIndex+=1,this._setRawHTML(this._undoStack[this._undoIndex]);let n=this._getRangeAndRemoveBookmark();n&&this.setSelection(n),this.fireEvent("undoStateChange",{canUndo:!0,canRedo:t+2<e}),this.fireEvent("input")}return this.focus()}getRoot(){return this._root}_getRawHTML(){return this._root.innerHTML}_setRawHTML(t){let e=this._root;e.innerHTML=t;let n=e,o=n.firstChild;if(!o||o.nodeName==="BR"){let s=this.createDefaultBlock();o?n.replaceChild(s,o):n.appendChild(s)}else for(;n=M(n,e);)x(n);return this._ignoreChange=!0,this}getHTML(t){let e,n="";return this.modifyDocument(()=>{t&&(e=this.getSelection(),this._saveRangeToBookmark(e));let o=this._root.querySelector(".squire-image-resize-container");o&&o.remove(),n=this._getRawHTML().replace(/\u200B/g,""),o&&this._root.appendChild(o),t&&this._getRangeAndRemoveBookmark(e)}),n}setHTML(t){let e=this._config.sanitizeToDOMFragment(t,this),n=this._root;Se(e,this._config),ae(e,n,!1),D(e,n);let o=e,s=o.firstChild;if(!s||s.nodeName==="BR"){let l=this.createDefaultBlock();s?o.replaceChild(l,s):o.appendChild(l)}else for(;o=M(o,n);)x(o);for(this._ignoreChange=!0;s=n.lastChild;)n.removeChild(s);n.appendChild(e),this._undoIndex=-1,this._undoStack.length=0,this._undoStackLength=0,this._isInUndoState=!1;let r=this._getRangeAndRemoveBookmark()||Q(n.firstElementChild||n,0);return this.saveUndoState(r),this.setSelection(r),this._updatePath(r,!0),this}insertHTML(t,e){let n=this._config,o=n.sanitizeToDOMFragment(t,this),s=this.getSelection();this.saveUndoState(s);try{let r=this._root;n.addLinks&&this.addDetectedLinks(o,o),Se(o,this._config),ae(o,r,!1),Ee(o),o.normalize();let l=o;for(;l=M(l,o);)x(l);let a=!0;if(e){let d=new CustomEvent("willPaste",{cancelable:!0,detail:{html:t,fragment:o}});this.fireEvent("willPaste",d),o=d.detail.fragment,a=!d.defaultPrevented}a&&(Xe(s,o,r),s.collapse(!1),Be(s,"A",r),this._ensureBottomLine()),this.setSelection(s),this._updatePath(s,!0),e&&this.focus()}catch(r){this._config.didError(r)}return this}insertElement(t,e){if(e||(e=this.getSelection()),e.collapse(!0),g(t))Z(e,t),e.setStartAfter(t);else{let n=this._root,o=v(e,n),s=o||n,r=null;for(;s!==n&&!s.nextSibling;)s=s.parentNode;if(s!==n){let a=s.parentNode;r=I(a,s.nextSibling,n,n)}o&&de(o)&&S(o),n.insertBefore(t,r);let l=this.createDefaultBlock();n.insertBefore(l,r),e.setStart(l,0),e.setEnd(l,0),_(e)}return this.focus(),this.setSelection(e),this._updatePath(e),this}insertImage(t,e){let n=m("IMG",Object.assign({src:t},e));return this.insertElement(n),n}insertPlainText(t,e){let n=this.getSelection();if(n.collapsed&&N(n.startContainer,this._root,"PRE")){let c=n.startContainer,f=n.startOffset,u;if(!c||!(c instanceof Text)){let h=document.createTextNode("");c.insertBefore(h,c.childNodes[f]),u=h,f=0}else u=c;let p=!0;if(e){let h=new CustomEvent("willPaste",{cancelable:!0,detail:{text:t}});this.fireEvent("willPaste",h),t=h.detail.text,p=!h.defaultPrevented}return p&&(this.saveUndoState(n),u.insertData(f,t),n.setStart(u,f+t.length),n.collapse(!0)),this.setSelection(n),this}let o=t.split(`
15
+ `),s=this._config,r=s.blockTag,l=s.blockAttributes,a="</"+r+">",d="<"+r;for(let c in l)d+=" "+c+'="'+De(l[c])+'"';d+=">";for(let c=0,f=o.length;c<f;c+=1){let u=o[c];u=De(u).replace(/ (?=(?: |$))/g,"&nbsp;"),c&&(u=d+(u||"<BR>")+a),o[c]=u}return this.insertHTML(o.join(""),e)}getSelectedText(t){return Te(t||this.getSelection())}getFontInfo(t){let e={color:void 0,backgroundColor:void 0,fontFamily:void 0,fontSize:void 0};t||(t=this.getSelection()),_(t);let n=0,o=t.commonAncestorContainer;if(t.collapsed||o instanceof Text)for(o instanceof Text&&(o=o.parentNode);n<4&&o;){let s=o.style;if(s){let r=s.color;!e.color&&r&&(e.color=r,n+=1);let l=s.backgroundColor;!e.backgroundColor&&l&&(e.backgroundColor=l,n+=1);let a=s.fontFamily;!e.fontFamily&&a&&(e.fontFamily=a,n+=1);let d=s.fontSize;!e.fontSize&&d&&(e.fontSize=d,n+=1)}o=o.parentNode}return e}hasFormat(t,e,n){t=t.toUpperCase(),e||(e={}),n||(n=this.getSelection()),!n.collapsed&&n.startContainer instanceof Text&&n.startOffset===n.startContainer.length&&n.startContainer.nextSibling&&n.setStartBefore(n.startContainer.nextSibling),!n.collapsed&&n.endContainer instanceof Text&&n.endOffset===0&&n.endContainer.previousSibling&&n.setEndAfter(n.endContainer.previousSibling);let o=this._root,s=n.commonAncestorContainer;if(N(s,o,t,e))return!0;if(s instanceof Text)return!1;let r=new T(s,4,d=>z(n,d,!0)),l=!1,a;for(;a=r.nextNode();){if(!N(a,o,t,e))return!1;l=!0}return l}changeFormat(t,e,n,o){return n||(n=this.getSelection()),this.saveUndoState(n),e&&(n=this._removeFormat(e.tag.toUpperCase(),e.attributes||{},n,o)),t&&(n=this._addFormat(t.tag.toUpperCase(),t.attributes||{},n)),this.setSelection(n),this._updatePath(n,!0),this.focus()}_addFormat(t,e,n){let o=this._root;if(n.collapsed){let s=x(m(t,e));Z(n,s);let r=s.firstChild||s,l=r instanceof Text?r.length:0;n.setStart(r,l),n.collapse(!0);let a=s;for(;g(a);)a=a.parentNode;le(a,s)}else{let s=new T(n.commonAncestorContainer,5,c=>(c instanceof Text||c.nodeName==="BR"||c.nodeName==="IMG")&&z(n,c,!0)),{startContainer:r,startOffset:l,endContainer:a,endOffset:d}=n;if(s.currentNode=r,!(r instanceof Element)&&!(r instanceof Text)||!s.filter(r)){let c=s.nextNode();if(!c)return n;r=c,l=0}do{let c=s.currentNode;if(!N(c,o,t,e)){c===a&&c.length>d&&c.splitText(d),c===r&&l&&(c=c.splitText(l),a===r?(a=c,d-=l):a===r.parentNode&&(d+=1),r=c,l=0);let u=m(t,e);k(c,u),u.appendChild(c)}}while(s.nextNode());n=Q(r,l,a,d)}return n}_removeFormat(t,e,n,o){this._saveRangeToBookmark(n);let s;n.collapsed&&(oe?s=document.createTextNode("\u200B"):s=document.createTextNode(""),Z(n,s));let r=n.commonAncestorContainer;for(;r!==this._root&&g(r);)r=r.parentNode;let l=n.startContainer,a=n.startOffset,d=n.endContainer,c=n.endOffset,f=[],u=(h,C)=>{if(z(n,h,!1))return;let L,O;if(!z(n,h,!0)){!(h instanceof HTMLInputElement)&&(!(h instanceof Text)||h.data)&&f.push([C,h]);return}if(h instanceof Text)h===d&&c!==h.length&&f.push([C,h.splitText(c)]),h===l&&a&&(h.splitText(a),f.push([C,h]));else for(L=h.firstChild;L;L=O)O=L.nextSibling,u(L,C)},p=Array.from(r.getElementsByTagName(t)).filter(h=>z(n,h,!0)&&pe(h,t,e));if(o||p.forEach(h=>{u(h,h)}),f.forEach(([h,C])=>{h=h.cloneNode(!1),k(C,h),h.appendChild(C)}),p.forEach(h=>{k(h,E(h))}),oe&&s){s=s.parentNode;let h=s;for(;h&&g(h);)h=h.parentNode;h&&le(h,s)}return this._getRangeAndRemoveBookmark(n),s&&n.collapse(!1),ne(r,n),n}bold(){return this.changeFormat({tag:"B"})}removeBold(){return this.changeFormat(null,{tag:"B"})}italic(){return this.changeFormat({tag:"I"})}removeItalic(){return this.changeFormat(null,{tag:"I"})}underline(){return this.changeFormat({tag:"U"})}removeUnderline(){return this.changeFormat(null,{tag:"U"})}strikethrough(){return this.changeFormat({tag:"S"})}removeStrikethrough(){return this.changeFormat(null,{tag:"S"})}subscript(){return this.changeFormat({tag:"SUB"},{tag:"SUP"})}removeSubscript(){return this.changeFormat(null,{tag:"SUB"})}superscript(){return this.changeFormat({tag:"SUP"},{tag:"SUB"})}removeSuperscript(){return this.changeFormat(null,{tag:"SUP"})}makeLink(t,e){let n=this.getSelection();if(n.collapsed){let o=t.indexOf(":")+1;if(o)for(;t[o]==="/";)o+=1;Z(n,document.createTextNode(t.slice(o)))}return e=Object.assign({href:t},this._config.tagAttributes.a,e),this.changeFormat({tag:"A",attributes:e},{tag:"A"},n)}removeLink(){return this.changeFormat(null,{tag:"A"},this.getSelection(),!0)}addDetectedLinks(t,e){let n=new T(t,4,l=>!N(l,e||this._root,"A")),o=this.linkRegExp,s=this._config.tagAttributes.a,r;for(;r=n.nextNode();){let l=r.parentNode,a=r.data,d;for(;d=o.exec(a);){let c=d.index,f=c+d[0].length;c&&l.insertBefore(document.createTextNode(a.slice(0,c)),r);let u=m("A",Object.assign({href:d[1]?/^(?:ht|f)tps?:/i.test(d[1])?d[1]:"http://"+d[1]:"mailto:"+d[0]},s));u.textContent=a.slice(c,f),l.insertBefore(u,r),r.data=a=a.slice(f)}}return this}setFontFace(t){let e=this._config.classNames.fontFamily;return this.changeFormat(t?{tag:"SPAN",attributes:{class:e,style:"font-family: "+t+", sans-serif;"}}:null,{tag:"SPAN",attributes:{class:e}})}setFontSize(t){let e=this._config.classNames.fontSize;return this.changeFormat(t?{tag:"SPAN",attributes:{class:e,style:"font-size: "+(typeof t=="number"?t+"px":t)}}:null,{tag:"SPAN",attributes:{class:e}})}setTextColor(t){let e=this._config.classNames.color;return this.changeFormat(t?{tag:"SPAN",attributes:{class:e,style:"color:"+t}}:null,{tag:"SPAN",attributes:{class:e}})}setHighlightColor(t){let e=this._config.classNames.highlight;return this.changeFormat(t?{tag:"SPAN",attributes:{class:e,style:"background-color:"+t}}:null,{tag:"SPAN",attributes:{class:e}})}_ensureBottomLine(){let t=this._root,e=t.lastElementChild;(!e||e.nodeName!==this._config.blockTag||!q(e))&&t.appendChild(this.createDefaultBlock())}createDefaultBlock(t){let e=this._config;return x(m(e.blockTag,e.blockAttributes,t))}splitBlock(t,e){e||(e=this.getSelection());let n=this._root,o,s,r,l;if(this._recordUndoState(e),this._removeZWS(),this._getRangeAndRemoveBookmark(e),e.collapsed||F(e,n),this._config.addLinks){_(e);let u=e.startContainer,p=e.startOffset;setTimeout(()=>{Ce(this,u,p)},0)}if(o=v(e,n),o&&(s=N(o,n,"PRE"))){_(e),r=e.startContainer;let u=e.startOffset;return r instanceof Text||(r=document.createTextNode(""),s.insertBefore(r,s.firstChild),u=0),!t&&r instanceof Text&&(r.data.charAt(u-1)===`
16
+ `||j(e,n))&&(r.data.charAt(u)===`
17
+ `||G(e,n))?(r.deleteData(u&&u-1,u?2:1),l=I(r,u&&u-1,n,n),r=l.previousSibling,r.textContent||S(r),r=this.createDefaultBlock(),l.parentNode.insertBefore(r,l),l.textContent||S(l),e.setStart(r,0)):(r.insertData(u,`
18
+ `),r.nextSibling||s.appendChild(m("BR")),r.length===u+1?e.setStartAfter(r):e.setStart(r,u+1)),e.collapse(!0),this.setSelection(e),this._updatePath(e,!0),this._docWasChanged(),this}if(!o||t||/^T[HD]$/.test(o.nodeName))return Be(e,"A",n),Z(e,m("BR")),e.collapse(!1),this.setSelection(e),this._updatePath(e,!0),this;if((s=N(o,n,"LI"))&&(o=s),de(o)){if(N(o,n,"UL")||N(o,n,"OL"))return this.decreaseListLevel(e),this;if(N(o,n,"BLOCKQUOTE"))return this.replaceWithBlankLine(e),this}r=e.startContainer;let a=e.startOffset,d=this.tagAfterSplit[o.nodeName];l=I(r,a,o.parentNode,this._root);let c=this._config,f=null;for(d||(d=c.blockTag,f=c.blockAttributes),pe(l,d,f)||(o=m(d,f),l.dir&&(o.dir=l.dir),k(l,o),o.appendChild(E(l)),l=o),le(o),Ee(o),x(o);l instanceof Element;){let u=l.firstChild,p;if(l.nodeName==="A"&&(!l.textContent||l.textContent==="\u200B")){u=document.createTextNode(""),k(l,u),l=u;break}for(;u&&u instanceof Text&&!u.data&&(p=u.nextSibling,!(!p||p.nodeName==="BR"));)S(u),u=p;if(!u||u.nodeName==="BR"||u instanceof Text)break;l=u}return e=Q(l,0),this.setSelection(e),this._updatePath(e,!0),this}forEachBlock(t,e,n){n||(n=this.getSelection()),e&&this.saveUndoState(n);let o=this._root,s=v(n,o),r=$(n,o);if(s&&r)do if(t(s)||s===r)break;while(s=M(s,o));return e&&(this.setSelection(n),this._updatePath(n,!0)),this}modifyBlocks(t,e){e||(e=this.getSelection()),this._recordUndoState(e,this._isInUndoState);let n=this._root;we(e,n),K(e,n,n,n);let o=Ae(e,n,n);if(!e.collapsed){let s=e.endContainer;if(s===n)e.collapse(!1);else{for(;s.parentNode!==n;)s=s.parentNode;e.setStartBefore(s),e.collapse(!0)}}return Z(e,t.call(this,o)),e.endOffset<e.endContainer.childNodes.length&&P(e.endContainer.childNodes[e.endOffset],n),P(e.startContainer.childNodes[e.startOffset],n),this._getRangeAndRemoveBookmark(e),this.setSelection(e),this._updatePath(e,!0),this}setTextAlignment(t){return this.forEachBlock(e=>{let n=e.className.split(/\s+/).filter(o=>!!o&&!/^align/.test(o)).join(" ");t?(e.className=n+" align-"+t,e.style.textAlign=t):(e.className=n,e.style.textAlign="")},!0),this.focus()}setTextDirection(t){return this.forEachBlock(e=>{t?e.dir=t:e.removeAttribute("dir")},!0),this.focus()}_getListSelection(t,e){let n=t.commonAncestorContainer,o=t.startContainer,s=t.endContainer;for(;n&&n!==e&&!/^[OU]L$/.test(n.nodeName);)n=n.parentNode;if(!n||n===e)return null;for(o===n&&(o=o.childNodes[t.startOffset]),s===n&&(s=s.childNodes[t.endOffset]);o&&o.parentNode!==n;)o=o.parentNode;for(;s&&s.parentNode!==n;)s=s.parentNode;return[n,o,s]}increaseListLevel(t){t||(t=this.getSelection());let e=this._root,n=this._getListSelection(t,e);if(!n)return this.focus();let[o,s,r]=n;if(!s||s===o.firstChild)return this.focus();this._recordUndoState(t,this._isInUndoState);let l=o.nodeName,a=s.previousSibling,d,c;a.nodeName!==l&&(d=this._config.tagAttributes[l.toLowerCase()],a=m(l,d),o.insertBefore(a,s));do c=s===r?null:s.nextSibling,a.appendChild(s);while(s=c);return c=a.nextSibling,c&&P(c,e),this._getRangeAndRemoveBookmark(t),this.setSelection(t),this._updatePath(t,!0),this.focus()}decreaseListLevel(t){t||(t=this.getSelection());let e=this._root,n=this._getListSelection(t,e);if(!n)return this.focus();let[o,s,r]=n;s||(s=o.firstChild),r||(r=o.lastChild),this._recordUndoState(t,this._isInUndoState);let l,a=null;if(s){let d=o.parentNode;if(a=r.nextSibling?I(o,r.nextSibling,d,e):o.nextSibling,d!==e&&d.nodeName==="LI"){for(d=d.parentNode;a;)l=a.nextSibling,r.appendChild(a),a=l;a=o.parentNode.nextSibling}let c=!/^[OU]L$/.test(d.nodeName);do l=s===r?null:s.nextSibling,o.removeChild(s),c&&s.nodeName==="LI"&&(s=this.createDefaultBlock([E(s)])),d.insertBefore(s,a);while(s=l)}return o.firstChild||S(o),a&&P(a,e),this._getRangeAndRemoveBookmark(t),this.setSelection(t),this._updatePath(t,!0),this.focus()}_makeList(t,e){let n=ce(t,this._root),o=this._config.tagAttributes,s=o[e.toLowerCase()],r=o.li,l;for(;l=n.nextNode();)if(l.parentNode instanceof HTMLLIElement&&(l=l.parentNode,n.currentNode=l.lastChild),l instanceof HTMLLIElement){l=l.parentNode;let a=l.nodeName;a!==e&&/^[OU]L$/.test(a)&&k(l,m(e,s,[E(l)]))}else{let a=m("LI",r);l.dir&&(a.dir=l.dir);let d=l.previousSibling;d&&d.nodeName===e?(d.appendChild(a),S(l)):k(l,m(e,s,[a])),a.appendChild(E(l)),n.currentNode=a}return t}makeUnorderedList(){return this.modifyBlocks(t=>this._makeList(t,"UL")),this.focus()}makeOrderedList(){return this.modifyBlocks(t=>this._makeList(t,"OL")),this.focus()}removeList(){return this.modifyBlocks(t=>{let e=t.querySelectorAll("UL, OL"),n=t.querySelectorAll("LI"),o=this._root;for(let s=0,r=e.length;s<r;s+=1){let l=e[s],a=E(l);D(a,o),k(l,a)}for(let s=0,r=n.length;s<r;s+=1){let l=n[s];q(l)?k(l,this.createDefaultBlock([E(l)])):(D(l,o),k(l,E(l)))}return t}),this.focus()}increaseQuoteLevel(t){return this.modifyBlocks(e=>m("BLOCKQUOTE",this._config.tagAttributes.blockquote,[e]),t),this.focus()}decreaseQuoteLevel(t){return this.modifyBlocks(e=>(Array.from(e.querySelectorAll("blockquote")).filter(n=>!N(n.parentNode,e,"BLOCKQUOTE")).forEach(n=>{k(n,E(n))}),e),t),this.focus()}removeQuote(t){return this.modifyBlocks(e=>(Array.from(e.querySelectorAll("blockquote")).forEach(n=>{k(n,E(n))}),e),t),this.focus()}replaceWithBlankLine(t){return this.modifyBlocks(()=>this.createDefaultBlock([m("INPUT",{id:this.startSelectionId,type:"hidden"}),m("INPUT",{id:this.endSelectionId,type:"hidden"})]),t),this.focus()}code(){let t=this.getSelection();return t.collapsed||X(t.commonAncestorContainer)?(this.modifyBlocks(e=>{let n=this._root,o=document.createDocumentFragment(),s=ce(e,n),r;for(;r=s.nextNode();){let a=r.querySelectorAll("BR"),d=[],c=a.length;for(let f=0;f<c;f+=1)d[f]=te(a[f],!1);for(;c--;){let f=a[c];d[c]?k(f,document.createTextNode(`
19
+ `)):S(f)}for(a=r.querySelectorAll("CODE"),c=a.length;c--;)k(a[c],E(a[c]));o.childNodes.length&&o.appendChild(document.createTextNode(`
20
+ `)),o.appendChild(E(r))}let l=new T(o,4);for(;r=l.nextNode();)r.data=r.data.replace(/ /g," ");return o.normalize(),x(m("PRE",this._config.tagAttributes.pre,[o]))},t),this.focus()):this.changeFormat({tag:"CODE",attributes:this._config.tagAttributes.code},null,t),this}removeCode(){let t=this.getSelection(),e=t.commonAncestorContainer;return N(e,this._root,"PRE")?(this.modifyBlocks(o=>{let s=this._root,r=o.querySelectorAll("PRE"),l=r.length;for(;l--;){let a=r[l],d=new T(a,4),c;for(;c=d.nextNode();){let f=c.data;f=f.replace(/ (?= )/g,"\xA0");let u=document.createDocumentFragment(),p;for(;(p=f.indexOf(`
21
+ `))>-1;)u.appendChild(document.createTextNode(f.slice(0,p))),u.appendChild(m("BR")),f=f.slice(p+1);c.parentNode.insertBefore(u,c),c.data=f}D(a,s),k(a,E(a))}return o},t),this.focus()):this.changeFormat(null,{tag:"CODE"},t),this}toggleCode(){return this.hasFormat("PRE")||this.hasFormat("CODE")?this.removeCode():this.code(),this}_removeFormatting(t,e){for(let n=t.firstChild,o;n;n=o){if(o=n.nextSibling,g(n)){if(n instanceof Text||n.nodeName==="BR"||n.nodeName==="IMG"){e.appendChild(n);continue}}else if(q(n)){e.appendChild(this.createDefaultBlock([this._removeFormatting(n,document.createDocumentFragment())]));continue}this._removeFormatting(n,e)}return e}removeAllFormatting(t){if(t||(t=this.getSelection()),t.collapsed)return this.focus();let e=this._root,n=t.commonAncestorContainer;for(;n&&n!==e&&!q(n);)n=n.parentNode;if(n||(we(t,e),n=e),n instanceof Text)return this.focus();this.saveUndoState(t),K(t,n,n,e);let o=t.startContainer,s=t.startOffset,r=t.endContainer,l=t.endOffset,a=document.createDocumentFragment(),d=document.createDocumentFragment(),c=I(r,l,n,e),f=I(o,s,n,e),u;for(;f!==c;)u=f.nextSibling,a.appendChild(f),f=u;if(this._removeFormatting(a,d),d.normalize(),f=d.firstChild,u=d.lastChild,f){n.insertBefore(d,c);let p=Array.from(n.childNodes);s=p.indexOf(f),l=u?p.indexOf(u)+1:0}else c&&(s=Array.from(n.childNodes).indexOf(c),l=s);return t.setStart(n,s),t.setEnd(n,l),ne(n,t),_(t),this.setSelection(t),this._updatePath(t,!0),this.focus()}};window.Squire=xe;})();
22
+ //# sourceMappingURL=squire.js.map
@@ -0,0 +1,22 @@
1
+ var ft=()=>!0,T=class{constructor(t,e,n){this.root=t,this.currentNode=t,this.nodeType=e,this.filter=n||ft}isAcceptableNode(t){let e=t.nodeType;return!!((e===Node.ELEMENT_NODE?1:e===Node.TEXT_NODE?4:0)&this.nodeType)&&this.filter(t)}nextNode(){let t=this.root,e=this.currentNode,n;for(;;){for(n=e.firstChild;!n&&e&&e!==t;)n=e.nextSibling,n||(e=e.parentNode);if(!n)return null;if(this.isAcceptableNode(n))return this.currentNode=n,n;e=n}}previousNode(){let t=this.root,e=this.currentNode,n;for(;;){if(e===t)return null;if(n=e.previousSibling,n)for(;e=n.lastChild;)n=e;else n=e.parentNode;if(!n)return null;if(this.isAcceptableNode(n))return this.currentNode=n,n;e=n}}previousPONode(){let t=this.root,e=this.currentNode,n;for(;;){for(n=e.lastChild;!n&&e&&e!==t;)n=e.previousSibling,n||(e=e.parentNode);if(!n)return null;if(this.isAcceptableNode(n))return this.currentNode=n,n;e=n}}};var ee=navigator.userAgent,fe=/Mac OS X/.test(ee),ue=/Windows NT/.test(ee),be=/iP(?:ad|hone|od)/.test(ee)||fe&&!!navigator.maxTouchPoints,Mt=/Android/.test(ee),qe=/Gecko\//.test(ee),re=/Edge\//.test(ee),ut=!re&&/WebKit\//.test(ee),y=fe||be?"Meta-":"Ctrl-",oe=ut,Ue="onbeforeinput"in document&&"inputType"in new InputEvent("input"),B=/[^ \t\r\n\u200B]/;var gt=/^(?:#text|A(?:BBR|CRONYM)?|B(?:R|D[IO])?|C(?:ITE|ODE)|D(?:ATA|EL|FN)|EM|FONT|HR|I(?:FRAME|MG|NPUT|NS)?|KBD|Q|R(?:P|T|UBY)|S(?:AMP|MALL|PAN|TR(?:IKE|ONG)|U[BP])?|TIME|U|VAR|WBR)$/,Nt=new Set(["BR","HR","IFRAME","IMG","INPUT"]),St=0,Le=1,We=2,ze=3,he=new WeakMap,me=()=>{he=new WeakMap},H=i=>Nt.has(i.nodeName),ke=i=>{switch(i.nodeType){case 8:case 3:return Le;case 1:case 11:if(he.has(i))return he.get(i);break;default:return St}let t;return Array.from(i.childNodes).every(g)?gt.test(i.nodeName)?t=Le:t=We:t=ze,he.set(i,t),t},g=i=>ke(i)===Le,q=i=>ke(i)===We,X=i=>ke(i)===ze;var m=(i,t,e)=>{let n=document.createElement(i);if(t instanceof Array&&(e=t,t=null),t)for(let o in t){let s=t[o];s!==void 0&&n.setAttribute(o,s)}return e&&e.forEach(o=>n.appendChild(o)),n},ye=(i,t)=>H(i)||i.nodeType!==t.nodeType||i.nodeName!==t.nodeName?!1:i instanceof HTMLElement&&t instanceof HTMLElement?i.nodeName!=="A"&&i.className===t.className&&i.style.cssText===t.style.cssText:!0,pe=(i,t,e)=>{if(i.nodeName!==t)return!1;for(let n in e)if(!("getAttribute"in i)||i.getAttribute(n)!==e[n])return!1;return!0},N=(i,t,e,n)=>{for(;i&&i!==t;){if(pe(i,e,n))return i;i=i.parentNode}return null},ge=(i,t)=>{let e=i.childNodes;for(;t&&i instanceof Element;)i=e[t-1],e=i.childNodes,t=e.length;return i},Oe=(i,t)=>{let e=i;if(e instanceof Element){let n=e.childNodes;if(t<n.length)e=n[t];else{for(;e&&!e.nextSibling;)e=e.parentNode;e&&(e=e.nextSibling)}}return e},R=i=>i instanceof Element||i instanceof DocumentFragment?i.childNodes.length:i instanceof CharacterData?i.length:0,E=i=>{let t=document.createDocumentFragment(),e=i.firstChild;for(;e;)t.appendChild(e),e=i.firstChild;return t},S=i=>{let t=i.parentNode;return t&&t.removeChild(i),i},k=(i,t)=>{let e=i.parentNode;e&&e.replaceChild(t,i)};var Et=i=>i instanceof Element?i.nodeName==="BR":B.test(i.data),te=(i,t)=>{let e=i.parentNode;for(;g(e);)e=e.parentNode;let n=new T(e,5,Et);return n.currentNode=i,!!n.nextNode()||t&&!n.previousNode()},le=(i,t)=>{let e=new T(i,4),n,o;for(;n=e.nextNode();)for(;(o=n.data.indexOf("\u200B"))>-1&&(!t||n.parentNode!==t);)if(n.length===1){let s=n,r=s.parentNode;for(;r&&(r.removeChild(s),e.currentNode=r,!(!g(r)||R(r)));)s=r,r=s.parentNode;break}else n.deleteData(o,1)};var Tt=0,_t=1,Ct=2,vt=3,z=(i,t,e)=>{let n=document.createRange();if(n.selectNode(t),e){let o=i.compareBoundaryPoints(vt,n)>-1,s=i.compareBoundaryPoints(_t,n)<1;return!o&&!s}else{let o=i.compareBoundaryPoints(Tt,n)<1,s=i.compareBoundaryPoints(Ct,n)>-1;return o&&s}},_=i=>{let{startContainer:t,startOffset:e,endContainer:n,endOffset:o}=i;for(;!(t instanceof Text);){let s=t.childNodes[e];if(!s||H(s)){if(e&&(s=t.childNodes[e-1],s instanceof Text)){let r=s,l;for(;!r.length&&(l=r.previousSibling)&&l instanceof Text;)r.remove(),r=l;t=r,e=r.data.length}break}t=s,e=0}if(o)for(;!(n instanceof Text);){let s=n.childNodes[o-1];if(!s||H(s)){if(s&&s.nodeName==="BR"&&!te(s,!1)){o-=1;continue}break}n=s,o=R(n)}else for(;!(n instanceof Text);){let s=n.firstChild;if(!s||H(s))break;n=s}i.setStart(t,e),i.setEnd(n,o)},K=(i,t,e,n)=>{let o=i.startContainer,s=i.startOffset,r=i.endContainer,l=i.endOffset,a;for(t||(t=i.commonAncestorContainer),e||(e=t);!s&&o!==t&&o!==n;)a=o.parentNode,s=Array.from(a.childNodes).indexOf(o),o=a;for(;!(r===e||r===n||(r.nodeType!==3&&r.childNodes[l]&&r.childNodes[l].nodeName==="BR"&&!te(r.childNodes[l],!1)&&(l+=1),l!==R(r)));)a=r.parentNode,l=Array.from(a.childNodes).indexOf(r)+1,r=a;i.setStart(o,s),i.setEnd(r,l)},Be=(i,t,e)=>{let n=N(i.endContainer,e,t);if(n&&(n=n.parentNode)){let o=i.cloneRange();K(o,n,n,e),o.endContainer===n&&(i.setStart(o.endContainer,o.endOffset),i.setEnd(o.endContainer,o.endOffset))}return i};var x=i=>{let t=null;if(i instanceof Text)return i;if(g(i)){let e=i.firstChild;if(oe)for(;e&&e instanceof Text&&!e.data;)i.removeChild(e),e=i.firstChild;e||(oe?t=document.createTextNode("\u200B"):t=document.createTextNode(""))}else if((i instanceof Element||i instanceof DocumentFragment)&&!i.querySelector("BR")&&!B.test(i.textContent||"")){t=m("BR");let e=i,n;for(;(n=e.lastElementChild)&&!g(n);)e=n;i=e,i instanceof HTMLElement&&i.contentEditable==="true"&&(i=m("DIV"),e.appendChild(i))}if(t)try{i.appendChild(t)}catch{}return i},D=(i,t)=>{let e=null;return/^(?:TABLE|TBODY|TR|TH|TD|P)/.test(i.nodeName)||(Array.from(i.childNodes).forEach(n=>{let o=n.nodeName==="BR";!o&&g(n)?(e||(e=m("DIV")),e.appendChild(n)):(o||e)&&(e||(e=m("DIV")),x(e),o?i.replaceChild(e,n):i.insertBefore(e,n),e=null),X(n)&&D(n,t)}),e&&i.appendChild(x(e))),i},I=(i,t,e,n)=>{if(!e.contains(i))throw new Error("split: stopNode does not contain node");if(i instanceof Text&&i!==e){if(typeof t!="number")throw new Error("Offset must be a number to split text node!");if(!i.parentNode)throw new Error("Cannot split text node with no parent!");return I(i.parentNode,i.splitText(t),e,n)}let o=typeof t=="number"?t<i.childNodes.length?i.childNodes[t]:null:t,s=i.parentNode;if(!s||i===e||!(i instanceof Element))return o;let r=i.cloneNode(!1);for(;o;){let l=o.nextSibling;r.appendChild(o),o=l}return i instanceof HTMLOListElement&&N(i,n,"BLOCKQUOTE")&&(r.start=(+i.start||1)+i.childNodes.length-1),x(i),x(r),s.insertBefore(r,i.nextSibling),I(s,r,e,n)},Ke=(i,t)=>{let e=i.childNodes,n=e.length,o=[];for(;n--;){let s=e[n],r=n?e[n-1]:null;if(r&&g(s)&&ye(s,r))t.startContainer===s&&(t.startContainer=r,t.startOffset+=R(r)),t.endContainer===s&&(t.endContainer=r,t.endOffset+=R(r)),t.startContainer===i&&(t.startOffset>n?t.startOffset-=1:t.startOffset===n&&(t.startContainer=r,t.startOffset=R(r))),t.endContainer===i&&(t.endOffset>n?t.endOffset-=1:t.endOffset===n&&(t.endContainer=r,t.endOffset=R(r))),S(s),s instanceof Text?r.appendData(s.data):o.push(E(s));else if(s instanceof Element){let l;for(;l=o.pop();)s.appendChild(l);Ke(s,t)}}},ne=(i,t)=>{let e=i instanceof Text?i.parentNode:i;if(e instanceof Element){let n={startContainer:t.startContainer,startOffset:t.startOffset,endContainer:t.endContainer,endOffset:t.endOffset};Ke(e,n),t.setStart(n.startContainer,n.startOffset),t.setEnd(n.endContainer,n.endOffset)}},V=(i,t,e,n)=>{let o=t,s,r;for(;(s=o.parentNode)&&s!==n&&s instanceof Element&&s.childNodes.length===1;)o=s;S(o),r=i.childNodes.length;let l=i.lastChild;l&&l.nodeName==="BR"&&(i.removeChild(l),r-=1),i.appendChild(E(t)),e.setStart(i,r),e.collapse(!0),ne(i,e)},P=(i,t)=>{let e=i.previousSibling,n=i.firstChild,o=i.nodeName==="LI";if(!(o&&(!n||!/^[OU]L$/.test(n.nodeName)))){if(e&&ye(e,i)){if(!X(e))if(o){let r=m("DIV");r.appendChild(E(e)),e.appendChild(r)}else return;S(i);let s=!X(i);e.appendChild(E(i)),s&&D(e,t),n&&P(n,t)}else if(o){let s=m("DIV");i.insertBefore(s,n),x(s)}}};var $e={"font-weight":{regexp:/^bold|^700/i,replace(){return m("B")}},"font-style":{regexp:/^italic/i,replace(){return m("I")}},"font-family":{regexp:B,replace(i,t){let e=m("SPAN",{class:i.fontFamily});return e.style.fontFamily=t,e}},"font-size":{regexp:B,replace(i,t){let e=m("SPAN",{class:i.fontSize});return e.style.fontSize=t,e}},"text-decoration":{regexp:/^underline/i,replace(){return m("U")}}},xt=(i,t,e)=>{let n=i.style,o,s;for(let r in $e){let l=$e[r],a=n.getPropertyValue(r);if(a&&l.regexp.test(a)){let d=l.replace(e.classNames,a);if(d.nodeName===i.nodeName&&d.className===i.className)continue;s||(s=d),o&&o.appendChild(d),o=d,i.style.removeProperty(r)}}return s&&o&&(o.appendChild(E(i)),i.style.cssText?i.appendChild(s):k(i,s)),o||i},Ne=i=>(t,e)=>{let n=m(i),o=t.attributes;for(let s=0,r=o.length;s<r;s+=1){let l=o[s];n.setAttribute(l.name,l.value)}return e.replaceChild(n,t),n.appendChild(E(t)),n},bt={1:"10",2:"13",3:"16",4:"18",5:"24",6:"32",7:"48"},Lt={STRONG:Ne("B"),EM:Ne("I"),INS:Ne("U"),STRIKE:Ne("S"),SPAN:xt,FONT:(i,t,e)=>{let n=i,o=n.face,s=n.size,r=n.color,l=e.classNames,a,d,c,f,u;return o&&(a=m("SPAN",{class:l.fontFamily}),a.style.fontFamily=o,u=a,f=a),s&&(d=m("SPAN",{class:l.fontSize}),d.style.fontSize=bt[s]+"px",u||(u=d),f&&f.appendChild(d),f=d),r&&/^#?([\dA-F]{3}){1,2}$/i.test(r)&&(r.charAt(0)!=="#"&&(r="#"+r),c=m("SPAN",{class:l.color}),c.style.color=r,u||(u=c),f&&f.appendChild(c),f=c),(!u||!f)&&(u=f=m("SPAN")),t.replaceChild(u,n),f.appendChild(E(n)),f},TT:(i,t,e)=>{let n=m("SPAN",{class:e.classNames.fontFamily,style:'font-family:menlo,consolas,"courier new",monospace'});return t.replaceChild(n,i),n.appendChild(E(i)),n}},Rt=/^(?:A(?:DDRESS|RTICLE|SIDE|UDIO)|BLOCKQUOTE|CAPTION|D(?:[DLT]|IV)|F(?:IGURE|IGCAPTION|OOTER)|H[1-6]|HEADER|L(?:ABEL|EGEND|I)|O(?:L|UTPUT)|P(?:RE)?|SECTION|T(?:ABLE|BODY|D|FOOT|H|HEAD|R)|COL(?:GROUP)?|UL)$/,kt=/^(?:HEAD|META|STYLE)/,Se=(i,t,e)=>{let n=i.childNodes,o=i;for(;g(o);)o=o.parentNode;let s=new T(o,5);for(let r=0,l=n.length;r<l;r+=1){let a=n[r],d=a.nodeName,c=Lt[d];if(a instanceof HTMLElement){let f=a.childNodes.length;if(c)a=c(a,i,t);else if(kt.test(d)){i.removeChild(a),r-=1,l-=1;continue}else if(!Rt.test(d)&&!g(a)){r-=1,l+=f-1,i.replaceChild(E(a),a);continue}f&&Se(a,t,e||d==="PRE")}else{if(a instanceof Text){let f=a.data,u=!B.test(f.charAt(0)),p=!B.test(f.charAt(f.length-1));if(e||!u&&!p)continue;if(u){s.currentNode=a;let h;for(;(h=s.previousPONode())&&!(h.nodeName==="IMG"||h instanceof Text&&B.test(h.data));)if(!g(h)){h=null;break}f=f.replace(/^[ \t\r\n]+/g,h?" ":"")}if(p){s.currentNode=a;let h;for(;(h=s.nextNode())&&!(h.nodeName==="IMG"||h instanceof Text&&B.test(h.data));)if(!g(h)){h=null;break}f=f.replace(/[ \t\r\n]+$/g,h?" ":"")}if(f){a.data=f;continue}}i.removeChild(a),r-=1,l-=1}}return i},Ee=i=>{let t=i.childNodes,e=t.length;for(;e--;){let n=t[e];n instanceof Element&&!H(n)?(Ee(n),g(n)&&!n.firstChild&&i.removeChild(n)):n instanceof Text&&!n.data&&i.removeChild(n)}},ae=(i,t,e)=>{let n=i.querySelectorAll("BR"),o=[],s=n.length;for(let r=0;r<s;r+=1)o[r]=te(n[r],e);for(;s--;){let r=n[s],l=r.parentNode;l&&(o[s]?g(l)||D(l,t):S(r))}},De=i=>i.split("&").join("&amp;").split("<").join("&lt;").split(">").join("&gt;").split('"').join("&quot;");var ce=(i,t)=>{let e=new T(t,1,q);return e.currentNode=i,e},W=(i,t)=>{let e=ce(i,t).previousNode();return e!==t?e:null},M=(i,t)=>{let e=ce(i,t).nextNode();return e!==t?e:null},de=i=>!i.textContent&&!i.querySelector("IMG");var v=(i,t)=>{let e=i.startContainer,n;if(g(e))n=W(e,t);else if(e!==t&&e instanceof HTMLElement&&q(e))n=e;else{let o=ge(e,i.startOffset);n=M(o,t)}return n&&z(i,n,!0)?n:null},$=(i,t)=>{let e=i.endContainer,n;if(g(e))n=W(e,t);else if(e!==t&&e instanceof HTMLElement&&q(e))n=e;else{let o=Oe(e,i.endOffset);if(!o||!t.contains(o)){o=t;let s;for(;s=o.lastChild;)o=s}n=W(o,t)}return n&&z(i,n,!0)?n:null},Ge=i=>i instanceof Text?B.test(i.data):i.nodeName==="IMG",j=(i,t)=>{let e=i.startContainer,n=i.startOffset,o;if(e instanceof Text){let l=e.data;for(let a=n;a>0;a-=1)if(l.charAt(a-1)!=="\u200B")return!1;o=e}else if(o=Oe(e,n),o&&!t.contains(o)&&(o=null),!o&&(o=ge(e,n),o instanceof Text&&o.length))return!1;let s=v(i,t);if(!s)return!1;let r=new T(s,5,Ge);return r.currentNode=o,!r.previousNode()},G=(i,t)=>{let e=i.endContainer,n=i.endOffset,o;if(e instanceof Text){let l=e.data,a=l.length;for(let d=n;d<a;d+=1)if(l.charAt(d)!=="\u200B")return!1;o=e}else o=ge(e,n);let s=$(i,t);if(!s)return!1;let r=new T(s,5,Ge);return r.currentNode=o,!r.nextNode()},Ae=(i,t)=>{let e=v(i,t),n=$(i,t),o;e&&n&&(o=e.parentNode,i.setStart(o,Array.from(o.childNodes).indexOf(e)),o=n.parentNode,i.setEnd(o,Array.from(o.childNodes).indexOf(n)+1))};function Q(i,t,e,n){let o=document.createRange();return o.setStart(i,t),e&&typeof n=="number"?o.setEnd(e,n):o.setEnd(i,t),o}var Z=(i,t)=>{let{startContainer:e,startOffset:n,endContainer:o,endOffset:s}=i,r;if(e instanceof Text){let a=e.parentNode;if(r=a.childNodes,n===e.length)n=Array.from(r).indexOf(e)+1,i.collapsed&&(o=a,s=n);else{if(n){let d=e.splitText(n);o===e?(s-=n,o=d):o===a&&(s+=1),e=d}n=Array.from(r).indexOf(e)}e=a}else r=e.childNodes;let l=r.length;n===l?e.appendChild(t):e.insertBefore(t,r[n]),e===o&&(s+=r.length-l),i.setStart(e,n),i.setEnd(o,s)},we=(i,t,e)=>{let n=document.createDocumentFragment();if(i.collapsed)return n;t||(t=i.commonAncestorContainer),t instanceof Text&&(t=t.parentNode);let o=i.startContainer,s=i.startOffset,r=I(i.endContainer,i.endOffset,t,e),l=0,a=I(o,s,t,e);for(;a&&a!==r;){let d=a.nextSibling;n.appendChild(a),a=d}return a=r&&r.previousSibling,a&&a instanceof Text&&r instanceof Text&&(l=a.length,a.appendData(r.data),S(r),r=a),i.setStart(o,s),r?i.setEnd(r,l):i.setEnd(t,t.childNodes.length),x(t),n},Ze=(i,t,e)=>{i.currentNode=e;let n;for(;n=i[t]();){if(n instanceof Text||H(n))return n;if(!g(n))return null}return null},F=(i,t)=>{let e=v(i,t),n=$(i,t),o=e!==n;e&&n&&(_(i),K(i,e,n,t));let s=we(i,null,t);_(i),o&&(n=$(i,t),e&&n&&e!==n&&V(e,n,i,t)),e&&x(e);let r=t.firstChild;(!r||r.nodeName==="BR")&&(x(t),t.firstChild&&i.selectNodeContents(t.firstChild)),i.collapse(!0);let l=i.startContainer,a=i.startOffset,d=new T(t,5),c=l,f=a;(!(c instanceof Text)||f===c.data.length)&&(c=Ze(d,"nextNode",c),f=0);let u=l,p=a-1;(!(u instanceof Text)||p===-1)&&(u=Ze(d,"previousPONode",c||(l instanceof Text?l:l.childNodes[a]||l)),u instanceof Text&&(p=u.data.length));let h=null,C=0;return c instanceof Text&&c.data.charAt(f)===" "&&j(i,t)?(h=c,C=f):u instanceof Text&&u.data.charAt(p)===" "&&(c instanceof Text&&c.data.charAt(f)===" "||G(i,t))&&(h=u,C=p),h&&h.replaceData(C,1,"\xA0"),i.setStart(l,a),i.collapse(!0),s},Xe=(i,t,e)=>{let n=t.firstChild&&g(t.firstChild),o;for(D(t,e),o=t;o=M(o,e);)x(o);i.collapsed||F(i,e),_(i),i.collapse(!1);let s=N(i.endContainer,e,"BLOCKQUOTE")||e,r=v(i,e),l=null,a=M(t,t),d=!n&&!!r&&de(r);if(r&&a&&!d&&!N(a,t,"PRE")&&!N(a,t,"TABLE")){K(i,r,r,e),i.collapse(!0);let c=i.endContainer,f=i.endOffset;if(ae(r,e,!1),g(c)){let u=I(c,f,W(c,e)||e,e);c=u.parentNode,f=Array.from(c.childNodes).indexOf(u)}if(f!==R(c))for(l=document.createDocumentFragment();o=c.childNodes[f];)l.appendChild(o);V(c,a,i,e),c===e?i.setEnd(e,R(e)):(f=Array.from(c.parentNode.childNodes).indexOf(c)+1,c=c.parentNode,i.setEnd(c,f))}if(R(t)){d&&r&&(i.setEndBefore(r),i.collapse(!1),S(r)),s.contains(i.endContainer)||(e.contains(i.endContainer)||(i.setEnd(e,R(e)),i.collapse(!1)),s=N(i.endContainer,e,"BLOCKQUOTE")||e),K(i,s,s,e);let c=I(i.endContainer,i.endOffset,s,e),f=c?c.previousSibling:s.lastChild;s.insertBefore(t,c),c?i.setEndBefore(c):i.setEnd(s,R(s)),r=$(i,e),_(i);let u=i.endContainer,p=i.endOffset;c&&X(c)&&P(c,e),c=f&&f.nextSibling,c&&X(c)&&P(c,e),i.setEnd(u,p)}if(l&&r){let c=i.cloneRange();x(l),V(r,l,c,e),i.setEnd(c.endContainer,c.endOffset)}_(i)};var Te=i=>{if(i.collapsed)return"";let t=i.startContainer,e=i.endContainer,n=new T(i.commonAncestorContainer,5,a=>z(i,a,!0));n.currentNode=t;let o=t,s="",r=!1,l;for((!(o instanceof Element)&&!(o instanceof Text)||!n.filter(o))&&(o=n.nextNode());o;)o instanceof Text?(l=o.data,l&&/\S/.test(l)&&(o===e&&(l=l.slice(0,i.endOffset)),o===t&&(l=l.slice(i.startOffset)),s+=l,r=!0)):(o.nodeName==="BR"||r&&!g(o))&&(s+=`
2
+ `,r=!1),o=n.nextNode();return s=s.replace(/ /g," "),s};var Ie=Array.prototype.indexOf,je=(i,t,e,n,o)=>{let s=o?"":Te(i),r=v(i,t),l=$(i,t),a=i.commonAncestorContainer,d=t;r===l&&r?.contains(a)&&(d=r);let c;for(e?(c=F(i,t),a.isConnected||(a=i.commonAncestorContainer)):c=i.cloneContents(),a instanceof Text&&(a=a.parentNode);a&&a!==d;){let u=a.cloneNode(!1);u.appendChild(c),c=u,a=a.parentNode}let f;if(c.childNodes.length===1&&c.childNodes[0]instanceof Text)s=c.childNodes[0].data.replace(/ /g," "),f=void 0;else{let u=m("DIV");u.appendChild(c),f=u.innerHTML,n&&(f=n(f))}return o&&f!==void 0&&(s=o(f)),s===f&&(f=void 0),ue&&(s=s.replace(/\r?\n/g,`\r
3
+ `)),f&&(f="<!-- squire -->"+f),[s,f]},Qe=(i,t,e,n,o,s,r)=>{let l=i.clipboardData;if(re||!l)return!1;let[a,d]=je(t,e,n,o,s);return i.preventDefault(),!r&&d&&l.setData("text/html",d),l.setData("text/plain",a),!0},Ye=function(i){let t=this.getSelection(),e=this._root;if(t.collapsed){i.preventDefault();return}this.saveUndoState(t),Qe(i,t,e,!0,this._config.willCutCopy,this._config.toPlainText,!1)||setTimeout(()=>{try{this._ensureBottomLine()}catch(o){this._config.didError(o)}},0),this.setSelection(t)},Ve=function(i){Qe(i,this.getSelection(),this._root,!1,this._config.willCutCopy,this._config.toPlainText,!1)},Me=function(i){this._isShiftDown=i.shiftKey},Je=function(i){let t=i.clipboardData,e=t?.items,n=this._isShiftDown,o=!1,s=!1,r=null,l=null;if(e){let L=e.length;for(;L--;){let O=e[L],A=O.type;A==="text/html"?l=O:A==="text/plain"||A==="text/uri-list"?r=O:A==="text/rtf"?o=!0:/^image\/.*/.test(A)&&(s=!0)}if(s&&!(o&&l)&&!r){i.preventDefault(),this.fireEvent("pasteImage",{clipboardData:t});return}if(!re){i.preventDefault(),l&&(!n||!r)?l.getAsString(O=>{this.insertHTML(O,!0)}):r&&r.getAsString(O=>{let A=this.getSelection();if(!A.collapsed&&B.test(A.toString())){let J=this.linkRegExp.exec(O);if(!!J&&J[0].length===O.length){let dt=J[1]?/^(?:ht|f)tps?:/i.test(J[1])?J[1]:"http://"+J[1]:"mailto:"+J[0];this.makeLink(dt);return}}this.insertPlainText(O,!0)});return}}let a=t?.types;if(!re&&a&&(Ie.call(a,"text/html")>-1||!qe&&Ie.call(a,"text/plain")>-1&&Ie.call(a,"text/rtf")<0)){i.preventDefault();let L;!n&&(L=t.getData("text/html"))?this.insertHTML(L,!0):((L=t.getData("text/plain"))||(L=t.getData("text/uri-list")))&&this.insertPlainText(L,!0);return}let d=document.body,c=this.getSelection(),f=c.startContainer,u=c.startOffset,p=c.endContainer,h=c.endOffset,C=m("DIV",{contenteditable:"true",style:"position:fixed; overflow:hidden; top:0; right:100%; width:1px; height:1px;"});d.appendChild(C),c.selectNodeContents(C),this.setSelection(c),setTimeout(()=>{try{let L="",O=C,A;for(;C=O;)O=C.nextSibling,S(C),A=C.firstChild,A&&A===C.lastChild&&A instanceof HTMLDivElement&&(C=A),L+=C.innerHTML;this.setSelection(Q(f,u,p,h)),L&&this.insertHTML(L,!0)}catch(L){this._config.didError(L)}},0)},et=function(){let i=this.getSelection();i&&!i.collapsed&&this._root.contains(i.commonAncestorContainer)?this._dragRange=i.cloneRange():this._dragRange=null},tt=function(){this._dragRange=null},Ot=(i,t,e)=>{let n=null,o=document;if(o.caretPositionFromPoint){let s=o.caretPositionFromPoint(i,t);s&&(n=document.createRange(),n.setStart(s.offsetNode,s.offset),n.collapse(!0))}else o.caretRangeFromPoint&&(n=o.caretRangeFromPoint(i,t));return n&&!e.contains(n.commonAncestorContainer)?null:n},Bt=(i,t)=>i.compareBoundaryPoints(Range.START_TO_START,t)>=0&&i.compareBoundaryPoints(Range.END_TO_END,t)<=0,nt=function(i){let t=i.dataTransfer;if(!t)return;let e=t.types,n=!1,o=!1;for(let c=0,f=e.length;c<f;c+=1)switch(e[c]){case"text/plain":n=!0;break;case"text/html":o=!0;break}if(!n&&!o)return;i.preventDefault();let s=this._root,r=Ot(i.clientX,i.clientY,s),l=this._dragRange;if(this._dragRange=null,!r)return;let a,d;if(l){if(Bt(r,l))return;this._recordUndoState(l,this._isInUndoState);let c=document.createComment("");r.insertNode(c),this._getRangeAndRemoveBookmark(l),[a,d]=je(l,s,t.dropEffect!=="copy",this._config.willCutCopy,this._config.toPlainText),c.replaceWith(m("INPUT",{id:this.startSelectionId,type:"hidden"}),m("INPUT",{id:this.endSelectionId,type:"hidden"})),this._getRangeAndRemoveBookmark(r),me()}else this.saveUndoState(r),o?d=t.getData("text/html"):a=t.getData("text/plain");this.setSelection(r),d!==void 0?this.insertHTML(d,!0):a!==void 0&&this.insertPlainText(a,!0)};var He=(i,t,e)=>{t.preventDefault(),i.splitBlock(t.shiftKey,e)};var ie=(i,t)=>{try{t||(t=i.getSelection());let e=t.startContainer;e instanceof Text&&(e=e.parentNode);let n=e;for(;n!==i._root&&g(n)&&(!n.textContent||n.textContent==="\u200B");)e=n,n=e.parentNode;e!==n&&(t.setStart(n,Array.from(n.childNodes).indexOf(e)),t.collapse(!0),n.removeChild(e),q(n)||(n=W(n,i._root)||i._root),x(n),_(t)),e===i._root&&(e=e.firstChild)&&e.nodeName==="BR"&&S(e),i._ensureBottomLine(),i.setSelection(t),i._updatePath(t,!0)}catch(e){i._config.didError(e)}},_e=(i,t)=>{let e;for(;(e=i.parentNode)&&!(e===t||e.isContentEditable);)i=e;S(i)},Ce=(i,t,e)=>{if(N(t,i._root,"A"))return;let n=t.data||"",o=Math.max(n.lastIndexOf(" ",e-1),n.lastIndexOf("\xA0",e-1))+1,s=n.slice(o,e),r=i.linkRegExp.exec(s);if(r){let l=i.getSelection();i._docWasChanged(),i._recordUndoState(l),i._getRangeAndRemoveBookmark(l);let a=o+r.index,d=a+r[0].length,c=l.startContainer===t,f=l.startOffset-d;a&&(t=t.splitText(a));let u=i._config.tagAttributes.a,p=m("A",Object.assign({href:r[1]?/^(?:ht|f)tps?:/i.test(r[1])?r[1]:"http://"+r[1]:"mailto:"+r[0]},u));p.textContent=n.slice(a,d),t.parentNode.insertBefore(p,t),t.data=n.slice(d),c&&(l.setStart(t,f),l.setEnd(t,f)),i.setSelection(l)}};var it=(i,t,e)=>{let n=i._root;if(i._removeZWS(),i.saveUndoState(e),!e.collapsed)t.preventDefault(),F(e,n),ie(i,e);else if(j(e,n)){t.preventDefault();let o=v(e,n);if(!o)return;let s=o;D(s.parentNode,n);let r=W(s,n);if(r){if(!r.isContentEditable){_e(r,n);return}for(V(r,s,e,n),s=r.parentNode;s!==n&&!s.nextSibling;)s=s.parentNode;s!==n&&(s=s.nextSibling)&&P(s,n),i.setSelection(e)}else if(s){if(N(s,n,"UL")||N(s,n,"OL")){i.decreaseListLevel(e);return}else if(N(s,n,"BLOCKQUOTE")){i.removeQuote(e);return}i.setSelection(e),i._updatePath(e,!0)}}else{_(e);let o=e.startContainer,s=e.startOffset,r=o.parentNode;o instanceof Text&&r instanceof HTMLAnchorElement&&s&&r.href.includes(o.data)?(o.deleteData(s-1,1),i.setSelection(e),i.removeLink(),t.preventDefault()):(i.setSelection(e),setTimeout(()=>{ie(i)},0))}};var ot=(i,t,e)=>{let n=i._root,o,s,r,l,a,d;if(i._removeZWS(),i.saveUndoState(e),!e.collapsed)t.preventDefault(),F(e,n),ie(i,e);else if(G(e,n)){if(t.preventDefault(),o=v(e,n),!o)return;if(D(o.parentNode,n),s=M(o,n),s){if(!s.isContentEditable){_e(s,n);return}for(V(o,s,e,n),s=o.parentNode;s!==n&&!s.nextSibling;)s=s.parentNode;s!==n&&(s=s.nextSibling)&&P(s,n),i.setSelection(e),i._updatePath(e,!0)}}else{if(r=e.cloneRange(),K(e,n,n,n),l=e.endContainer,a=e.endOffset,l instanceof Element&&(d=l.childNodes[a],d&&d.nodeName==="IMG")){t.preventDefault(),S(d),_(e),ie(i,e);return}i.setSelection(r),setTimeout(()=>{ie(i)},0)}};var st=(i,t,e)=>{let n=i._root;if(i._removeZWS(),e.collapsed&&j(e,n)){let o=v(e,n),s;for(;s=o.parentNode;){if(s.nodeName==="UL"||s.nodeName==="OL"){t.preventDefault(),i.increaseListLevel(e);break}o=s}}},rt=(i,t,e)=>{let n=i._root;if(i._removeZWS(),e.collapsed&&j(e,n)){let o=e.startContainer;(N(o,n,"UL")||N(o,n,"OL"))&&(t.preventDefault(),i.decreaseListLevel(e))}};var lt=(i,t,e)=>{let n,o=i._root;if(i._recordUndoState(e),i._getRangeAndRemoveBookmark(e),!e.collapsed)F(e,o),i._ensureBottomLine(),i.setSelection(e),i._updatePath(e,!0);else if(G(e,o)){let s=v(e,o);if(s&&s.nodeName!=="PRE"){let r=s.textContent?.trimEnd().replace("\u200B","");if(r==="*"||r==="1."){t.preventDefault(),i.insertPlainText(" ",!1),i._docWasChanged(),i.saveUndoState(e);let l=new T(s,4),a;for(;a=l.nextNode();)S(a);r==="*"?i.makeUnorderedList():i.makeOrderedList();return}}}if(n=e.endContainer,e.endOffset===R(n))do if(n.nodeName==="A"){e.setStartAfter(n);break}while(!n.nextSibling&&(n=n.parentNode)&&n!==o);if(i._config.addLinks){let s=e.cloneRange();_(s);let r=s.startContainer,l=s.startOffset;setTimeout(()=>{Ce(i,r,l)},0)}i.setSelection(e)};var at=function(i){if(i.defaultPrevented||i.isComposing)return;let t=i.key,e="",n=i.code;/^Digit\d$/.test(n)&&(t=n.slice(-1)),t!=="Backspace"&&t!=="Delete"&&(i.altKey&&(e+="Alt-"),i.ctrlKey&&(e+="Ctrl-"),i.metaKey&&(e+="Meta-"),i.shiftKey&&(e+="Shift-")),ue&&i.shiftKey&&t==="Delete"&&(e+="Shift-"),t=e+t;let o=this.getSelection(),s=this._keyHandlers[t];s?s(this,i,o):!o.collapsed&&!i.ctrlKey&&!i.metaKey&&t.length===1&&(this.saveUndoState(o),F(o,this._root),this._ensureBottomLine(),this.setSelection(o),this._updatePath(o,!0))},b={Backspace:it,Delete:ot,Tab:st,"Shift-Tab":rt," ":lt,ArrowLeft(i){i._removeZWS()},ArrowRight(i,t,e){i._removeZWS();let n=i.getRoot();if(G(e,n)){_(e);let o=e.endContainer;do if(o.nodeName==="CODE"){let s=o.nextSibling;if(!(s instanceof Text)||s.length===0){let r=document.createTextNode("\xA0");o.parentNode.insertBefore(r,s),s=r}e.setStart(s,1),i.setSelection(e),t.preventDefault();break}while(!o.nextSibling&&(o=o.parentNode)&&o!==n)}}};Ue||(b.Enter=He,b["Shift-Enter"]=He);!fe&&!be&&(b.PageUp=i=>{i.moveCursorToStart()},b.PageDown=i=>{i.moveCursorToEnd()});var se=(i,t)=>(t=t||null,(e,n)=>{n.preventDefault();let o=e.getSelection();e.hasFormat(i,null,o)?e.changeFormat(null,{tag:i},o):e.changeFormat({tag:i},t,o)});b[y+"b"]=se("B");b[y+"i"]=se("I");b[y+"u"]=se("U");b[y+"Shift-7"]=se("S");b[y+"Shift-5"]=se("SUB",{tag:"SUP"});b[y+"Shift-6"]=se("SUP",{tag:"SUB"});b[y+"Shift-8"]=(i,t)=>{t.preventDefault();let e=i.getPath();/(?:^|>)UL/.test(e)?i.removeList():i.makeUnorderedList()};b[y+"Shift-9"]=(i,t)=>{t.preventDefault();let e=i.getPath();/(?:^|>)OL/.test(e)?i.removeList():i.makeOrderedList()};b[y+"["]=(i,t)=>{t.preventDefault();let e=i.getPath();/(?:^|>)BLOCKQUOTE/.test(e)||!/(?:^|>)[OU]L/.test(e)?i.decreaseQuoteLevel():i.decreaseListLevel()};b[y+"]"]=(i,t)=>{t.preventDefault();let e=i.getPath();/(?:^|>)BLOCKQUOTE/.test(e)||!/(?:^|>)[OU]L/.test(e)?i.increaseQuoteLevel():i.increaseListLevel()};b[y+"d"]=(i,t)=>{t.preventDefault(),i.toggleCode()};b[y+"z"]=(i,t)=>{t.preventDefault(),i.undo()};b[y+"y"]=b[y+"Shift-z"]=b[y+"Shift-Z"]=(i,t)=>{t.preventDefault(),i.redo()};var Pe=8,ct=40,Fe=1200,Dt=[{pos:"nw",cursor:"nwse-resize"},{pos:"n",cursor:"ns-resize"},{pos:"ne",cursor:"nesw-resize"},{pos:"e",cursor:"ew-resize"},{pos:"se",cursor:"nwse-resize"},{pos:"s",cursor:"ns-resize"},{pos:"sw",cursor:"nesw-resize"},{pos:"w",cursor:"ew-resize"}],At={ArrowUp:(i,t,e)=>{let n=v(t,e);if(n){let o=W(n,e);o&&(t.selectNodeContents(o),t.collapse(!1),i.setSelection(t).focus())}},ArrowDown:(i,t,e)=>{let n=v(t,e);if(n){let o=M(n,e);o&&(t.selectNodeContents(o),t.collapse(!0),i.setSelection(t).focus())}},Delete:(i,t)=>{i.replaceWithBlankLine(t)},Backspace:(i,t)=>{i.replaceWithBlankLine(t)}},ve=class{constructor(t,e){this._currentImage=null;this._resizeContainer=null;this._handles=null;this._currentHandle=null;this._startX=0;this._startY=0;this._startWidth=0;this._startHeight=0;this._maxWidth=Fe;this._originalRatio=1;this._editor=e,this._root=t,document.addEventListener("click",this),e.addEventListener("drop",this)}destroy(){this._deselectImage(),this._editor.removeEventListener("drop",this),document.removeEventListener("click",this)}handleEvent(t){switch(t.type){case"click":this._onClick(t);break;case"pointerdown":this._onPointerDown(t);break;case"pointermove":this._onPointerMove(t);break;case"pointercancel":case"pointerup":this._onPointerUp(t);break;case"keydown":this._onKeyDown(t);break;case"drop":this._deselectImage();break}}_onClick(t){let e=t.target;e.nodeName==="IMG"&&this._root.contains(e)?(t.stopPropagation(),this._selectImage(e)):this._currentImage&&this._handles&&!this._handles.some(n=>n.element===e)&&this._deselectImage()}_deselectImage(){this._currentImage&&(document.removeEventListener("keydown",this,!0),this._currentHandle&&this._onPointerUp({preventDefault(){},target:this._currentHandle.element}),this._handles&&this._handles.forEach(({element:t})=>t.removeEventListener("pointerdown",this)),this._resizeContainer&&this._resizeContainer.remove(),this._currentImage.removeAttribute("tabindex"),this._handles=null,this._resizeContainer=null,this._currentImage=null)}_selectImage(t){if(this._currentImage===t)return;this._deselectImage(),this._root.blur();let e=Dt.map(({pos:s,cursor:r})=>{let l=Pe/2,a="";switch(s){case"nw":a=`left: -${l}px; top: -${l}px;`;break;case"n":a=`left: calc(50% - ${l}px); top: -${l}px;`;break;case"ne":a=`right: -${l}px; top: -${l}px;`;break;case"e":a=`right: -${l}px; top: calc(50% - ${l}px);`;break;case"se":a=`right: -${l}px; bottom: -${l}px;`;break;case"s":a=`left: calc(50% - ${l}px); bottom: -${l}px;`;break;case"sw":a=`left: -${l}px; bottom: -${l}px;`;break;case"w":a=`left: -${l}px; top: calc(50% - ${l}px);`;break}let d=m("div",{class:`squire-resize-handle squire-resize-handle-${s}`,style:`
4
+ position: absolute;
5
+ width: ${Pe}px;
6
+ height: ${Pe}px;
7
+ background: #0067b9;
8
+ border: 1px solid #fff;
9
+ cursor: ${r};
10
+ pointer-events: auto;
11
+ touch-action: none;
12
+ box-shadow: 0 1px 3px rgba(0,0,0,0.3);
13
+ ${a}
14
+ `});return d.addEventListener("pointerdown",this),{element:d,cursor:r,position:s}}),n=m("div",{class:"squire-image-resize-container",style:"position: absolute; pointer-events: none; z-index: 1000;"},e.map(s=>s.element));this._currentImage=t,this._resizeContainer=n,this._handles=e,this._root.appendChild(this._resizeContainer);let o=t.naturalWidth;this._originalRatio=o/t.naturalHeight,this._maxWidth=Math.min(o*2,t.parentElement?t.parentElement.offsetWidth:Fe,Fe),this._positionResizeContainer(),t.tabIndex=-1,t.focus(),document.addEventListener("keydown",this,!0)}_positionResizeContainer(){let t=this._resizeContainer,e=this._root,n=this._currentImage;if(!t||!n)return;let o=e.getBoundingClientRect(),s=n.getBoundingClientRect(),r=s.top-o.top+e.scrollTop,l=s.left-o.left+e.scrollLeft,a=s.width,d=s.height;t.style.top=r+"px",t.style.left=l+"px",t.style.width=a+"px",t.style.height=d+"px"}_onPointerDown(t){if(this._currentHandle||!this._handles)return;let e=t.target,n=this._handles.find(r=>r.element===e)||null;if(!n)return;let o=this._currentImage;if(!o)return;t.preventDefault(),t.stopPropagation(),e.addEventListener("pointermove",this),e.addEventListener("pointerup",this),e.addEventListener("pointercancel",this),e.setPointerCapture(t.pointerId),this._currentHandle=n,this._startX=t.clientX,this._startY=t.clientY;let s=getComputedStyle(o);this._startWidth=parseFloat(s.width),this._startHeight=parseFloat(s.height),document.body.style.cursor=n.cursor}_onPointerMove(t){t.preventDefault();let e=this._currentHandle,n=this._currentImage;if(!e||!n)return;let o=t.clientX-this._startX,s=t.clientY-this._startY,r=this._maxWidth,l=this._originalRatio,a=this._startWidth,d=this._startHeight;switch(e.position){case"sw":case"nw":case"w":a-=2*o;break;case"se":case"ne":case"e":a+=2*o;break;case"n":d-=s,a=d*l;break;case"s":d+=s,a=d*l;break}a<ct?a=ct:a>r&&(a=r);let c=n.style;c.width=a+"px",c.height="auto",this._positionResizeContainer()}_onPointerUp(t){t.preventDefault();let e=t.target;e&&(e.removeEventListener("pointermove",this),e.removeEventListener("pointerup",this),e.removeEventListener("pointercancel",this)),this._currentHandle=null,document.body.style.cursor=""}_onKeyDown(t){t.preventDefault(),t.stopPropagation();let e=At[t.key];if(!e)return;let n=this._currentImage;if(!n)return;let o=this._editor,s=this._root;this._deselectImage();let r=o.getSelection();r.selectNode(n),e(o,r,s)}};var xe=class{constructor(t,e){this.customEvents=new Set(["pathChange","select","input","pasteImage","undoStateChange"]);this.startSelectionId="squire-selection-start";this.endSelectionId="squire-selection-end";this.linkRegExp=/\b(?:((?:(?:ht|f)tps?:\/\/|www\d{0,3}[.]|[a-z0-9][a-z0-9.\-]*[.][a-z]{2,}\/)(?:[^\s()<>]+|\([^\s()<>]+\))+(?:[^\s?&`!()\[\]{};:'".,<>«»“”‘’]|\([^\s()<>]+\)))|([\w\-.%+]+@(?:[\w\-]+\.)+[a-z]{2,}\b(?:[?][^&?\s]+=[^\s?&`!()\[\]{};:'".,<>«»“”‘’]+(?:&[^&?\s]+=[^\s?&`!()\[\]{};:'".,<>«»“”‘’]+)*)?))/i;this.tagAfterSplit={DT:"DD",DD:"DT",LI:"LI",PRE:"PRE"};this._root=t,this._config=this._makeConfig(e),this._isFocused=!1,this._lastSelection=Q(t,0),this._willRestoreSelection=!1,this._mayHaveZWS=!1,this._lastAnchorNode=null,this._lastFocusNode=null,this._path="",this._events=new Map,this._undoIndex=-1,this._undoStack=[],this._undoStackLength=0,this._isInUndoState=!1,this._ignoreChange=!1,this._ignoreAllChanges=!1,this.addEventListener("selectionchange",this._updatePathOnEvent),this.addEventListener("blur",this._enableRestoreSelection),this.addEventListener("mousedown",this._disableRestoreSelection),this.addEventListener("touchstart",this._disableRestoreSelection),this.addEventListener("focus",this._restoreSelection),this.addEventListener("blur",this._removeZWS),this._isShiftDown=!1,this.addEventListener("cut",Ye),this.addEventListener("copy",Ve),this.addEventListener("paste",Je),this._dragRange=null,this.addEventListener("dragstart",et),this.addEventListener("dragend",tt),this.addEventListener("drop",nt),this.addEventListener("keydown",Me),this.addEventListener("keyup",Me),this.addEventListener("keydown",at),this._keyHandlers=Object.create(b);let n=new MutationObserver(()=>this._docWasChanged());n.observe(t,{childList:!0,attributes:!0,characterData:!0,subtree:!0}),this._mutation=n,t.setAttribute("contenteditable","true"),this.addEventListener("beforeinput",this._beforeInput),this._imageResizer=new ve(t,this),this.setHTML("")}destroy(){this._events.forEach((t,e)=>{this.removeEventListener(e)}),this._mutation.disconnect(),this._imageResizer.destroy(),this._undoIndex=-1,this._undoStack=[],this._undoStackLength=0}_makeConfig(t){let e={blockTag:"DIV",blockAttributes:null,tagAttributes:{},classNames:{color:"color",fontFamily:"font",fontSize:"size",highlight:"highlight"},undo:{documentSizeThreshold:-1,undoLimit:-1},addLinks:!0,willCutCopy:null,toPlainText:null,sanitizeToDOMFragment:n=>{let o=DOMPurify.sanitize(n,{ALLOW_UNKNOWN_PROTOCOLS:!0,WHOLE_DOCUMENT:!1,RETURN_DOM:!0,RETURN_DOM_FRAGMENT:!0,FORCE_BODY:!1});return o?document.importNode(o,!0):document.createDocumentFragment()},didError:n=>console.log(n)};return t&&(Object.assign(e,t),e.blockTag=e.blockTag.toUpperCase()),e}setKeyHandler(t,e){return this._keyHandlers[t]=e,this}_beforeInput(t){switch(t.inputType){case"insertLineBreak":t.preventDefault(),this.splitBlock(!0);break;case"insertParagraph":t.preventDefault(),this.splitBlock(!1);break;case"insertOrderedList":t.preventDefault(),this.makeOrderedList();break;case"insertUnoderedList":t.preventDefault(),this.makeUnorderedList();break;case"historyUndo":t.preventDefault(),this.undo();break;case"historyRedo":t.preventDefault(),this.redo();break;case"formatBold":t.preventDefault(),this.bold();break;case"formatItalic":t.preventDefault(),this.italic();break;case"formatUnderline":t.preventDefault(),this.underline();break;case"formatStrikeThrough":t.preventDefault(),this.strikethrough();break;case"formatSuperscript":t.preventDefault(),this.superscript();break;case"formatSubscript":t.preventDefault(),this.subscript();break;case"formatJustifyFull":case"formatJustifyCenter":case"formatJustifyRight":case"formatJustifyLeft":{t.preventDefault();let e=t.inputType.slice(13).toLowerCase();e==="full"&&(e="justify"),this.setTextAlignment(e);break}case"formatRemove":t.preventDefault(),this.removeAllFormatting();break;case"formatSetBlockTextDirection":{t.preventDefault();let e=t.data;e==="null"&&(e=null),this.setTextDirection(e);break}case"formatBackColor":t.preventDefault(),this.setHighlightColor(t.data);break;case"formatFontColor":t.preventDefault(),this.setTextColor(t.data);break;case"formatFontName":t.preventDefault(),this.setFontFace(t.data);break}}handleEvent(t){this.fireEvent(t.type,t)}fireEvent(t,e){let n=this._events.get(t);if(/^(?:focus|blur)/.test(t)){let o=this._root===document.activeElement;if(t==="focus"){if(!o||this._isFocused)return this;this._isFocused=!0}else{if(o||!this._isFocused)return this;this._isFocused=!1}}if(n){let o=e instanceof Event?e:new CustomEvent(t,{detail:e});n=n.slice();for(let s of n)try{"handleEvent"in s?s.handleEvent(o):s.call(this,o)}catch(r){this._config.didError(r)}}return this}addEventListener(t,e){let n=this._events.get(t),o=this._root;return n||(n=[],this._events.set(t,n),this.customEvents.has(t)||(t==="selectionchange"&&(o=document),o.addEventListener(t,this,!0))),n.push(e),this}removeEventListener(t,e){let n=this._events.get(t),o=this._root;if(n){if(e){let s=n.length;for(;s--;)n[s]===e&&n.splice(s,1)}else n.length=0;n.length||(this._events.delete(t),this.customEvents.has(t)||(t==="selectionchange"&&(o=document),o.removeEventListener(t,this,!0)))}return this}focus(){return this._root.focus({preventScroll:!0}),this}blur(){return this._root.blur(),this}_enableRestoreSelection(){this._willRestoreSelection=!0}_disableRestoreSelection(){this._willRestoreSelection=!1}_restoreSelection(){this._willRestoreSelection&&this.setSelection(this._lastSelection)}_removeZWS(){this._mayHaveZWS&&(le(this._root),this._mayHaveZWS=!1)}_saveRangeToBookmark(t){let e=m("INPUT",{id:this.startSelectionId,type:"hidden"}),n=m("INPUT",{id:this.endSelectionId,type:"hidden"}),o;Z(t,e),t.collapse(!1),Z(t,n),e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_PRECEDING&&(e.id=this.endSelectionId,n.id=this.startSelectionId,o=e,e=n,n=o),t.setStartAfter(e),t.setEndBefore(n)}_getRangeAndRemoveBookmark(t){let e=this._root,n=e.querySelectorAll("#"+this.startSelectionId),o=e.querySelectorAll("#"+this.endSelectionId),s=n[0],r=o[0];if(s&&r&&s.compareDocumentPosition(r)&Node.DOCUMENT_POSITION_FOLLOWING){let l=s.parentNode,a=r.parentNode,d=Array.from(l.childNodes).indexOf(s),c=Array.from(a.childNodes).indexOf(r);l===a&&(c-=1),s.remove(),r.remove(),t||(t=document.createRange()),t.setStart(l,d),t.setEnd(a,c),ne(l,t),l!==a&&ne(a,t),t.collapsed&&(l=t.startContainer,l instanceof Text&&(a=l.childNodes[t.startOffset],(!a||!(a instanceof Text))&&(a=l.childNodes[t.startOffset-1]),a&&a instanceof Text&&(t.setStart(a,0),t.collapse(!0))))}for(let l=0;l<n.length;l+=1)n[l].remove();for(let l=0;l<o.length;l+=1)o[l].remove();return t||null}getSelection(){let t=window.getSelection(),e=this._root,n=null;if(this._isFocused&&t&&t.rangeCount){n=t.getRangeAt(0).cloneRange();let o=n.startContainer,s=n.endContainer;o&&H(o)&&n.setStartBefore(o),s&&H(s)&&n.setEndBefore(s)}return n&&e.contains(n.commonAncestorContainer)?this._lastSelection=n:(n=this._lastSelection,document.contains(n.commonAncestorContainer)||(n=null)),n||(n=Q(e.firstElementChild||e,0)),n}setSelection(t){if(this._lastSelection=t,!this._isFocused)this._enableRestoreSelection();else{let e=window.getSelection();e&&("setBaseAndExtent"in Selection.prototype?e.setBaseAndExtent(t.startContainer,t.startOffset,t.endContainer,t.endOffset):(e.removeAllRanges(),e.addRange(t)))}return this}_moveCursorTo(t){let e=this._root,n=Q(e,t?0:e.childNodes.length);return _(n),this.setSelection(n),this}moveCursorToStart(){return this._moveCursorTo(!0)}moveCursorToEnd(){return this._moveCursorTo(!1)}getCursorPosition(){let t=this.getSelection(),e=t.getBoundingClientRect();if(e&&!e.top){this._ignoreChange=!0;let n=m("SPAN");n.textContent="\u200B",Z(t,n),e=n.getBoundingClientRect();let o=n.parentNode;o.removeChild(n),ne(o,t)}return e}getPath(){return this._path}_updatePathOnEvent(){this._isFocused&&this._updatePath(this.getSelection())}_updatePath(t,e){let n=t.startContainer,o=t.endContainer,s;(e||n!==this._lastAnchorNode||o!==this._lastFocusNode)&&(this._lastAnchorNode=n,this._lastFocusNode=o,s=n&&o?n===o?this._getPath(o):"(selection)":"",(this._path!==s||n!==o)&&(this._path=s,this.fireEvent("pathChange",{path:s}))),this.fireEvent(t.collapsed?"cursor":"select",{range:t})}_getPath(t){let e=this._root,n=this._config,o="";if(t&&t!==e){let s=t.parentNode;if(o=s?this._getPath(s):"",t instanceof HTMLElement){let r=t.id,l=t.classList,a=Array.from(l).sort(),d=t.dir,c=n.classNames;o+=(o?">":"")+t.nodeName,r&&(o+="#"+r),a.length&&(o+=".",o+=a.join(".")),d&&(o+="[dir="+d+"]"),l.contains(c.highlight)&&(o+="[backgroundColor="+t.style.backgroundColor.replace(/ /g,"")+"]"),l.contains(c.color)&&(o+="[color="+t.style.color.replace(/ /g,"")+"]"),l.contains(c.fontFamily)&&(o+="[fontFamily="+t.style.fontFamily.replace(/ /g,"")+"]"),l.contains(c.fontSize)&&(o+="[fontSize="+t.style.fontSize+"]")}}return o}modifyDocument(t){let e=this._mutation;return e&&(e.takeRecords().length&&this._docWasChanged(),e.disconnect()),this._ignoreAllChanges=!0,t(),this._ignoreAllChanges=!1,e&&(e.observe(this._root,{childList:!0,attributes:!0,characterData:!0,subtree:!0}),this._ignoreChange=!1),this}_docWasChanged(){if(me(),this._mayHaveZWS=!0,!this._ignoreAllChanges){if(this._ignoreChange){this._ignoreChange=!1;return}this._isInUndoState&&(this._isInUndoState=!1,this.fireEvent("undoStateChange",{canUndo:!0,canRedo:!1})),this.fireEvent("input")}}_recordUndoState(t,e){let n=this._isInUndoState;if(!n||e){let o=this._undoIndex+1,s=this._undoStack,r=this._config.undo,l=r.documentSizeThreshold,a=r.undoLimit;if(o<this._undoStackLength&&(s.length=this._undoStackLength=o),t&&this._saveRangeToBookmark(t),n)return this;let d=this._getRawHTML();e&&(o-=1),l>-1&&d.length*2>l&&a>-1&&o>a&&(s.splice(0,o-a),o=a,this._undoStackLength=a),s[o]=d,this._undoIndex=o,this._undoStackLength+=1,this._isInUndoState=!0}return this}saveUndoState(t){let e=!1;return t||(t=this.getSelection(),e=!0),this._recordUndoState(t,this._isInUndoState),this._getRangeAndRemoveBookmark(t),e&&this.setSelection(t),this}undo(){if(this._undoIndex!==0||!this._isInUndoState){this._recordUndoState(this.getSelection(),!1),this._undoIndex-=1,this._setRawHTML(this._undoStack[this._undoIndex]);let t=this._getRangeAndRemoveBookmark();t&&this.setSelection(t),this._isInUndoState=!0,this.fireEvent("undoStateChange",{canUndo:this._undoIndex!==0,canRedo:!0}),this.fireEvent("input")}return this.focus()}redo(){let t=this._undoIndex,e=this._undoStackLength;if(t+1<e&&this._isInUndoState){this._undoIndex+=1,this._setRawHTML(this._undoStack[this._undoIndex]);let n=this._getRangeAndRemoveBookmark();n&&this.setSelection(n),this.fireEvent("undoStateChange",{canUndo:!0,canRedo:t+2<e}),this.fireEvent("input")}return this.focus()}getRoot(){return this._root}_getRawHTML(){return this._root.innerHTML}_setRawHTML(t){let e=this._root;e.innerHTML=t;let n=e,o=n.firstChild;if(!o||o.nodeName==="BR"){let s=this.createDefaultBlock();o?n.replaceChild(s,o):n.appendChild(s)}else for(;n=M(n,e);)x(n);return this._ignoreChange=!0,this}getHTML(t){let e,n="";return this.modifyDocument(()=>{t&&(e=this.getSelection(),this._saveRangeToBookmark(e));let o=this._root.querySelector(".squire-image-resize-container");o&&o.remove(),n=this._getRawHTML().replace(/\u200B/g,""),o&&this._root.appendChild(o),t&&this._getRangeAndRemoveBookmark(e)}),n}setHTML(t){let e=this._config.sanitizeToDOMFragment(t,this),n=this._root;Se(e,this._config),ae(e,n,!1),D(e,n);let o=e,s=o.firstChild;if(!s||s.nodeName==="BR"){let l=this.createDefaultBlock();s?o.replaceChild(l,s):o.appendChild(l)}else for(;o=M(o,n);)x(o);for(this._ignoreChange=!0;s=n.lastChild;)n.removeChild(s);n.appendChild(e),this._undoIndex=-1,this._undoStack.length=0,this._undoStackLength=0,this._isInUndoState=!1;let r=this._getRangeAndRemoveBookmark()||Q(n.firstElementChild||n,0);return this.saveUndoState(r),this.setSelection(r),this._updatePath(r,!0),this}insertHTML(t,e){let n=this._config,o=n.sanitizeToDOMFragment(t,this),s=this.getSelection();this.saveUndoState(s);try{let r=this._root;n.addLinks&&this.addDetectedLinks(o,o),Se(o,this._config),ae(o,r,!1),Ee(o),o.normalize();let l=o;for(;l=M(l,o);)x(l);let a=!0;if(e){let d=new CustomEvent("willPaste",{cancelable:!0,detail:{html:t,fragment:o}});this.fireEvent("willPaste",d),o=d.detail.fragment,a=!d.defaultPrevented}a&&(Xe(s,o,r),s.collapse(!1),Be(s,"A",r),this._ensureBottomLine()),this.setSelection(s),this._updatePath(s,!0),e&&this.focus()}catch(r){this._config.didError(r)}return this}insertElement(t,e){if(e||(e=this.getSelection()),e.collapse(!0),g(t))Z(e,t),e.setStartAfter(t);else{let n=this._root,o=v(e,n),s=o||n,r=null;for(;s!==n&&!s.nextSibling;)s=s.parentNode;if(s!==n){let a=s.parentNode;r=I(a,s.nextSibling,n,n)}o&&de(o)&&S(o),n.insertBefore(t,r);let l=this.createDefaultBlock();n.insertBefore(l,r),e.setStart(l,0),e.setEnd(l,0),_(e)}return this.focus(),this.setSelection(e),this._updatePath(e),this}insertImage(t,e){let n=m("IMG",Object.assign({src:t},e));return this.insertElement(n),n}insertPlainText(t,e){let n=this.getSelection();if(n.collapsed&&N(n.startContainer,this._root,"PRE")){let c=n.startContainer,f=n.startOffset,u;if(!c||!(c instanceof Text)){let h=document.createTextNode("");c.insertBefore(h,c.childNodes[f]),u=h,f=0}else u=c;let p=!0;if(e){let h=new CustomEvent("willPaste",{cancelable:!0,detail:{text:t}});this.fireEvent("willPaste",h),t=h.detail.text,p=!h.defaultPrevented}return p&&(this.saveUndoState(n),u.insertData(f,t),n.setStart(u,f+t.length),n.collapse(!0)),this.setSelection(n),this}let o=t.split(`
15
+ `),s=this._config,r=s.blockTag,l=s.blockAttributes,a="</"+r+">",d="<"+r;for(let c in l)d+=" "+c+'="'+De(l[c])+'"';d+=">";for(let c=0,f=o.length;c<f;c+=1){let u=o[c];u=De(u).replace(/ (?=(?: |$))/g,"&nbsp;"),c&&(u=d+(u||"<BR>")+a),o[c]=u}return this.insertHTML(o.join(""),e)}getSelectedText(t){return Te(t||this.getSelection())}getFontInfo(t){let e={color:void 0,backgroundColor:void 0,fontFamily:void 0,fontSize:void 0};t||(t=this.getSelection()),_(t);let n=0,o=t.commonAncestorContainer;if(t.collapsed||o instanceof Text)for(o instanceof Text&&(o=o.parentNode);n<4&&o;){let s=o.style;if(s){let r=s.color;!e.color&&r&&(e.color=r,n+=1);let l=s.backgroundColor;!e.backgroundColor&&l&&(e.backgroundColor=l,n+=1);let a=s.fontFamily;!e.fontFamily&&a&&(e.fontFamily=a,n+=1);let d=s.fontSize;!e.fontSize&&d&&(e.fontSize=d,n+=1)}o=o.parentNode}return e}hasFormat(t,e,n){t=t.toUpperCase(),e||(e={}),n||(n=this.getSelection()),!n.collapsed&&n.startContainer instanceof Text&&n.startOffset===n.startContainer.length&&n.startContainer.nextSibling&&n.setStartBefore(n.startContainer.nextSibling),!n.collapsed&&n.endContainer instanceof Text&&n.endOffset===0&&n.endContainer.previousSibling&&n.setEndAfter(n.endContainer.previousSibling);let o=this._root,s=n.commonAncestorContainer;if(N(s,o,t,e))return!0;if(s instanceof Text)return!1;let r=new T(s,4,d=>z(n,d,!0)),l=!1,a;for(;a=r.nextNode();){if(!N(a,o,t,e))return!1;l=!0}return l}changeFormat(t,e,n,o){return n||(n=this.getSelection()),this.saveUndoState(n),e&&(n=this._removeFormat(e.tag.toUpperCase(),e.attributes||{},n,o)),t&&(n=this._addFormat(t.tag.toUpperCase(),t.attributes||{},n)),this.setSelection(n),this._updatePath(n,!0),this.focus()}_addFormat(t,e,n){let o=this._root;if(n.collapsed){let s=x(m(t,e));Z(n,s);let r=s.firstChild||s,l=r instanceof Text?r.length:0;n.setStart(r,l),n.collapse(!0);let a=s;for(;g(a);)a=a.parentNode;le(a,s)}else{let s=new T(n.commonAncestorContainer,5,c=>(c instanceof Text||c.nodeName==="BR"||c.nodeName==="IMG")&&z(n,c,!0)),{startContainer:r,startOffset:l,endContainer:a,endOffset:d}=n;if(s.currentNode=r,!(r instanceof Element)&&!(r instanceof Text)||!s.filter(r)){let c=s.nextNode();if(!c)return n;r=c,l=0}do{let c=s.currentNode;if(!N(c,o,t,e)){c===a&&c.length>d&&c.splitText(d),c===r&&l&&(c=c.splitText(l),a===r?(a=c,d-=l):a===r.parentNode&&(d+=1),r=c,l=0);let u=m(t,e);k(c,u),u.appendChild(c)}}while(s.nextNode());n=Q(r,l,a,d)}return n}_removeFormat(t,e,n,o){this._saveRangeToBookmark(n);let s;n.collapsed&&(oe?s=document.createTextNode("\u200B"):s=document.createTextNode(""),Z(n,s));let r=n.commonAncestorContainer;for(;r!==this._root&&g(r);)r=r.parentNode;let l=n.startContainer,a=n.startOffset,d=n.endContainer,c=n.endOffset,f=[],u=(h,C)=>{if(z(n,h,!1))return;let L,O;if(!z(n,h,!0)){!(h instanceof HTMLInputElement)&&(!(h instanceof Text)||h.data)&&f.push([C,h]);return}if(h instanceof Text)h===d&&c!==h.length&&f.push([C,h.splitText(c)]),h===l&&a&&(h.splitText(a),f.push([C,h]));else for(L=h.firstChild;L;L=O)O=L.nextSibling,u(L,C)},p=Array.from(r.getElementsByTagName(t)).filter(h=>z(n,h,!0)&&pe(h,t,e));if(o||p.forEach(h=>{u(h,h)}),f.forEach(([h,C])=>{h=h.cloneNode(!1),k(C,h),h.appendChild(C)}),p.forEach(h=>{k(h,E(h))}),oe&&s){s=s.parentNode;let h=s;for(;h&&g(h);)h=h.parentNode;h&&le(h,s)}return this._getRangeAndRemoveBookmark(n),s&&n.collapse(!1),ne(r,n),n}bold(){return this.changeFormat({tag:"B"})}removeBold(){return this.changeFormat(null,{tag:"B"})}italic(){return this.changeFormat({tag:"I"})}removeItalic(){return this.changeFormat(null,{tag:"I"})}underline(){return this.changeFormat({tag:"U"})}removeUnderline(){return this.changeFormat(null,{tag:"U"})}strikethrough(){return this.changeFormat({tag:"S"})}removeStrikethrough(){return this.changeFormat(null,{tag:"S"})}subscript(){return this.changeFormat({tag:"SUB"},{tag:"SUP"})}removeSubscript(){return this.changeFormat(null,{tag:"SUB"})}superscript(){return this.changeFormat({tag:"SUP"},{tag:"SUB"})}removeSuperscript(){return this.changeFormat(null,{tag:"SUP"})}makeLink(t,e){let n=this.getSelection();if(n.collapsed){let o=t.indexOf(":")+1;if(o)for(;t[o]==="/";)o+=1;Z(n,document.createTextNode(t.slice(o)))}return e=Object.assign({href:t},this._config.tagAttributes.a,e),this.changeFormat({tag:"A",attributes:e},{tag:"A"},n)}removeLink(){return this.changeFormat(null,{tag:"A"},this.getSelection(),!0)}addDetectedLinks(t,e){let n=new T(t,4,l=>!N(l,e||this._root,"A")),o=this.linkRegExp,s=this._config.tagAttributes.a,r;for(;r=n.nextNode();){let l=r.parentNode,a=r.data,d;for(;d=o.exec(a);){let c=d.index,f=c+d[0].length;c&&l.insertBefore(document.createTextNode(a.slice(0,c)),r);let u=m("A",Object.assign({href:d[1]?/^(?:ht|f)tps?:/i.test(d[1])?d[1]:"http://"+d[1]:"mailto:"+d[0]},s));u.textContent=a.slice(c,f),l.insertBefore(u,r),r.data=a=a.slice(f)}}return this}setFontFace(t){let e=this._config.classNames.fontFamily;return this.changeFormat(t?{tag:"SPAN",attributes:{class:e,style:"font-family: "+t+", sans-serif;"}}:null,{tag:"SPAN",attributes:{class:e}})}setFontSize(t){let e=this._config.classNames.fontSize;return this.changeFormat(t?{tag:"SPAN",attributes:{class:e,style:"font-size: "+(typeof t=="number"?t+"px":t)}}:null,{tag:"SPAN",attributes:{class:e}})}setTextColor(t){let e=this._config.classNames.color;return this.changeFormat(t?{tag:"SPAN",attributes:{class:e,style:"color:"+t}}:null,{tag:"SPAN",attributes:{class:e}})}setHighlightColor(t){let e=this._config.classNames.highlight;return this.changeFormat(t?{tag:"SPAN",attributes:{class:e,style:"background-color:"+t}}:null,{tag:"SPAN",attributes:{class:e}})}_ensureBottomLine(){let t=this._root,e=t.lastElementChild;(!e||e.nodeName!==this._config.blockTag||!q(e))&&t.appendChild(this.createDefaultBlock())}createDefaultBlock(t){let e=this._config;return x(m(e.blockTag,e.blockAttributes,t))}splitBlock(t,e){e||(e=this.getSelection());let n=this._root,o,s,r,l;if(this._recordUndoState(e),this._removeZWS(),this._getRangeAndRemoveBookmark(e),e.collapsed||F(e,n),this._config.addLinks){_(e);let u=e.startContainer,p=e.startOffset;setTimeout(()=>{Ce(this,u,p)},0)}if(o=v(e,n),o&&(s=N(o,n,"PRE"))){_(e),r=e.startContainer;let u=e.startOffset;return r instanceof Text||(r=document.createTextNode(""),s.insertBefore(r,s.firstChild),u=0),!t&&r instanceof Text&&(r.data.charAt(u-1)===`
16
+ `||j(e,n))&&(r.data.charAt(u)===`
17
+ `||G(e,n))?(r.deleteData(u&&u-1,u?2:1),l=I(r,u&&u-1,n,n),r=l.previousSibling,r.textContent||S(r),r=this.createDefaultBlock(),l.parentNode.insertBefore(r,l),l.textContent||S(l),e.setStart(r,0)):(r.insertData(u,`
18
+ `),r.nextSibling||s.appendChild(m("BR")),r.length===u+1?e.setStartAfter(r):e.setStart(r,u+1)),e.collapse(!0),this.setSelection(e),this._updatePath(e,!0),this._docWasChanged(),this}if(!o||t||/^T[HD]$/.test(o.nodeName))return Be(e,"A",n),Z(e,m("BR")),e.collapse(!1),this.setSelection(e),this._updatePath(e,!0),this;if((s=N(o,n,"LI"))&&(o=s),de(o)){if(N(o,n,"UL")||N(o,n,"OL"))return this.decreaseListLevel(e),this;if(N(o,n,"BLOCKQUOTE"))return this.replaceWithBlankLine(e),this}r=e.startContainer;let a=e.startOffset,d=this.tagAfterSplit[o.nodeName];l=I(r,a,o.parentNode,this._root);let c=this._config,f=null;for(d||(d=c.blockTag,f=c.blockAttributes),pe(l,d,f)||(o=m(d,f),l.dir&&(o.dir=l.dir),k(l,o),o.appendChild(E(l)),l=o),le(o),Ee(o),x(o);l instanceof Element;){let u=l.firstChild,p;if(l.nodeName==="A"&&(!l.textContent||l.textContent==="\u200B")){u=document.createTextNode(""),k(l,u),l=u;break}for(;u&&u instanceof Text&&!u.data&&(p=u.nextSibling,!(!p||p.nodeName==="BR"));)S(u),u=p;if(!u||u.nodeName==="BR"||u instanceof Text)break;l=u}return e=Q(l,0),this.setSelection(e),this._updatePath(e,!0),this}forEachBlock(t,e,n){n||(n=this.getSelection()),e&&this.saveUndoState(n);let o=this._root,s=v(n,o),r=$(n,o);if(s&&r)do if(t(s)||s===r)break;while(s=M(s,o));return e&&(this.setSelection(n),this._updatePath(n,!0)),this}modifyBlocks(t,e){e||(e=this.getSelection()),this._recordUndoState(e,this._isInUndoState);let n=this._root;Ae(e,n),K(e,n,n,n);let o=we(e,n,n);if(!e.collapsed){let s=e.endContainer;if(s===n)e.collapse(!1);else{for(;s.parentNode!==n;)s=s.parentNode;e.setStartBefore(s),e.collapse(!0)}}return Z(e,t.call(this,o)),e.endOffset<e.endContainer.childNodes.length&&P(e.endContainer.childNodes[e.endOffset],n),P(e.startContainer.childNodes[e.startOffset],n),this._getRangeAndRemoveBookmark(e),this.setSelection(e),this._updatePath(e,!0),this}setTextAlignment(t){return this.forEachBlock(e=>{let n=e.className.split(/\s+/).filter(o=>!!o&&!/^align/.test(o)).join(" ");t?(e.className=n+" align-"+t,e.style.textAlign=t):(e.className=n,e.style.textAlign="")},!0),this.focus()}setTextDirection(t){return this.forEachBlock(e=>{t?e.dir=t:e.removeAttribute("dir")},!0),this.focus()}_getListSelection(t,e){let n=t.commonAncestorContainer,o=t.startContainer,s=t.endContainer;for(;n&&n!==e&&!/^[OU]L$/.test(n.nodeName);)n=n.parentNode;if(!n||n===e)return null;for(o===n&&(o=o.childNodes[t.startOffset]),s===n&&(s=s.childNodes[t.endOffset]);o&&o.parentNode!==n;)o=o.parentNode;for(;s&&s.parentNode!==n;)s=s.parentNode;return[n,o,s]}increaseListLevel(t){t||(t=this.getSelection());let e=this._root,n=this._getListSelection(t,e);if(!n)return this.focus();let[o,s,r]=n;if(!s||s===o.firstChild)return this.focus();this._recordUndoState(t,this._isInUndoState);let l=o.nodeName,a=s.previousSibling,d,c;a.nodeName!==l&&(d=this._config.tagAttributes[l.toLowerCase()],a=m(l,d),o.insertBefore(a,s));do c=s===r?null:s.nextSibling,a.appendChild(s);while(s=c);return c=a.nextSibling,c&&P(c,e),this._getRangeAndRemoveBookmark(t),this.setSelection(t),this._updatePath(t,!0),this.focus()}decreaseListLevel(t){t||(t=this.getSelection());let e=this._root,n=this._getListSelection(t,e);if(!n)return this.focus();let[o,s,r]=n;s||(s=o.firstChild),r||(r=o.lastChild),this._recordUndoState(t,this._isInUndoState);let l,a=null;if(s){let d=o.parentNode;if(a=r.nextSibling?I(o,r.nextSibling,d,e):o.nextSibling,d!==e&&d.nodeName==="LI"){for(d=d.parentNode;a;)l=a.nextSibling,r.appendChild(a),a=l;a=o.parentNode.nextSibling}let c=!/^[OU]L$/.test(d.nodeName);do l=s===r?null:s.nextSibling,o.removeChild(s),c&&s.nodeName==="LI"&&(s=this.createDefaultBlock([E(s)])),d.insertBefore(s,a);while(s=l)}return o.firstChild||S(o),a&&P(a,e),this._getRangeAndRemoveBookmark(t),this.setSelection(t),this._updatePath(t,!0),this.focus()}_makeList(t,e){let n=ce(t,this._root),o=this._config.tagAttributes,s=o[e.toLowerCase()],r=o.li,l;for(;l=n.nextNode();)if(l.parentNode instanceof HTMLLIElement&&(l=l.parentNode,n.currentNode=l.lastChild),l instanceof HTMLLIElement){l=l.parentNode;let a=l.nodeName;a!==e&&/^[OU]L$/.test(a)&&k(l,m(e,s,[E(l)]))}else{let a=m("LI",r);l.dir&&(a.dir=l.dir);let d=l.previousSibling;d&&d.nodeName===e?(d.appendChild(a),S(l)):k(l,m(e,s,[a])),a.appendChild(E(l)),n.currentNode=a}return t}makeUnorderedList(){return this.modifyBlocks(t=>this._makeList(t,"UL")),this.focus()}makeOrderedList(){return this.modifyBlocks(t=>this._makeList(t,"OL")),this.focus()}removeList(){return this.modifyBlocks(t=>{let e=t.querySelectorAll("UL, OL"),n=t.querySelectorAll("LI"),o=this._root;for(let s=0,r=e.length;s<r;s+=1){let l=e[s],a=E(l);D(a,o),k(l,a)}for(let s=0,r=n.length;s<r;s+=1){let l=n[s];q(l)?k(l,this.createDefaultBlock([E(l)])):(D(l,o),k(l,E(l)))}return t}),this.focus()}increaseQuoteLevel(t){return this.modifyBlocks(e=>m("BLOCKQUOTE",this._config.tagAttributes.blockquote,[e]),t),this.focus()}decreaseQuoteLevel(t){return this.modifyBlocks(e=>(Array.from(e.querySelectorAll("blockquote")).filter(n=>!N(n.parentNode,e,"BLOCKQUOTE")).forEach(n=>{k(n,E(n))}),e),t),this.focus()}removeQuote(t){return this.modifyBlocks(e=>(Array.from(e.querySelectorAll("blockquote")).forEach(n=>{k(n,E(n))}),e),t),this.focus()}replaceWithBlankLine(t){return this.modifyBlocks(()=>this.createDefaultBlock([m("INPUT",{id:this.startSelectionId,type:"hidden"}),m("INPUT",{id:this.endSelectionId,type:"hidden"})]),t),this.focus()}code(){let t=this.getSelection();return t.collapsed||X(t.commonAncestorContainer)?(this.modifyBlocks(e=>{let n=this._root,o=document.createDocumentFragment(),s=ce(e,n),r;for(;r=s.nextNode();){let a=r.querySelectorAll("BR"),d=[],c=a.length;for(let f=0;f<c;f+=1)d[f]=te(a[f],!1);for(;c--;){let f=a[c];d[c]?k(f,document.createTextNode(`
19
+ `)):S(f)}for(a=r.querySelectorAll("CODE"),c=a.length;c--;)k(a[c],E(a[c]));o.childNodes.length&&o.appendChild(document.createTextNode(`
20
+ `)),o.appendChild(E(r))}let l=new T(o,4);for(;r=l.nextNode();)r.data=r.data.replace(/ /g," ");return o.normalize(),x(m("PRE",this._config.tagAttributes.pre,[o]))},t),this.focus()):this.changeFormat({tag:"CODE",attributes:this._config.tagAttributes.code},null,t),this}removeCode(){let t=this.getSelection(),e=t.commonAncestorContainer;return N(e,this._root,"PRE")?(this.modifyBlocks(o=>{let s=this._root,r=o.querySelectorAll("PRE"),l=r.length;for(;l--;){let a=r[l],d=new T(a,4),c;for(;c=d.nextNode();){let f=c.data;f=f.replace(/ (?= )/g,"\xA0");let u=document.createDocumentFragment(),p;for(;(p=f.indexOf(`
21
+ `))>-1;)u.appendChild(document.createTextNode(f.slice(0,p))),u.appendChild(m("BR")),f=f.slice(p+1);c.parentNode.insertBefore(u,c),c.data=f}D(a,s),k(a,E(a))}return o},t),this.focus()):this.changeFormat(null,{tag:"CODE"},t),this}toggleCode(){return this.hasFormat("PRE")||this.hasFormat("CODE")?this.removeCode():this.code(),this}_removeFormatting(t,e){for(let n=t.firstChild,o;n;n=o){if(o=n.nextSibling,g(n)){if(n instanceof Text||n.nodeName==="BR"||n.nodeName==="IMG"){e.appendChild(n);continue}}else if(q(n)){e.appendChild(this.createDefaultBlock([this._removeFormatting(n,document.createDocumentFragment())]));continue}this._removeFormatting(n,e)}return e}removeAllFormatting(t){if(t||(t=this.getSelection()),t.collapsed)return this.focus();let e=this._root,n=t.commonAncestorContainer;for(;n&&n!==e&&!q(n);)n=n.parentNode;if(n||(Ae(t,e),n=e),n instanceof Text)return this.focus();this.saveUndoState(t),K(t,n,n,e);let o=t.startContainer,s=t.startOffset,r=t.endContainer,l=t.endOffset,a=document.createDocumentFragment(),d=document.createDocumentFragment(),c=I(r,l,n,e),f=I(o,s,n,e),u;for(;f!==c;)u=f.nextSibling,a.appendChild(f),f=u;if(this._removeFormatting(a,d),d.normalize(),f=d.firstChild,u=d.lastChild,f){n.insertBefore(d,c);let p=Array.from(n.childNodes);s=p.indexOf(f),l=u?p.indexOf(u)+1:0}else c&&(s=Array.from(n.childNodes).indexOf(c),l=s);return t.setStart(n,s),t.setEnd(n,l),ne(n,t),_(t),this.setSelection(t),this._updatePath(t,!0),this.focus()}};var Ji=xe;export{Ji as default};
22
+ //# sourceMappingURL=squire.mjs.map
@@ -0,0 +1,19 @@
1
+ {
2
+ "package": "squire-rte",
3
+ "version": "2.4.8",
4
+ "patches": [
5
+ "removeAllFormatting-root-guard",
6
+ "removeFormat-root-guard",
7
+ "removeEmptyInlines-root-guard"
8
+ ],
9
+ "files": {
10
+ "squire.js": {
11
+ "upstream": "75c1665d33ec8c1a08dbb5cadae8381acfded4677da44d70cf88a59e4082af20",
12
+ "vendored": "7325380c9c18ba05296c4158cd45fa6bac2761ab0b4702bc0e9e46c7e9614220"
13
+ },
14
+ "squire.mjs": {
15
+ "upstream": "3132eacfad97dfaa120fa02f46d65d7f8d15e52b7fbe04387d763f20eba90ef2",
16
+ "vendored": "21c23197dae2ad0bba1e1297cd92cbd536e43048d4001a3647270b1723386d8a"
17
+ }
18
+ }
19
+ }
@@ -0,0 +1,43 @@
1
+ <!doctype html>
2
+ <html lang="en" data-theme="light">
3
+ <head>
4
+ <meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
5
+ <title>Rich text toolbar · Bevel</title>
6
+ <link rel="stylesheet" href="../../bevel-fonts.css"><link rel="stylesheet" href="../../bevel.css"><link rel="stylesheet" href="../../integrations/richclay.css">
7
+ </head>
8
+ <body>
9
+
10
+ <main class="bevel-example bevel-reference-example">
11
+ <header class="bevel-example__header"><div><div class="bevel-eyebrow">Northstar Studio / Field notes</div><h1>The words come first.</h1><p>Richclay formatting, in the Bevel material.</p></div></header>
12
+ <section class="bevel-richtext" data-bevel-editor-mode="toolbar">
13
+ <article id="richtext-document" data-bevel-richtext aria-label="Document body"><h2>A place for good work</h2><p><strong>Keep the useful things close.</strong> Field notes brings the documents, decisions and small details of a project into one place.</p><blockquote>Less searching. More making.</blockquote><p><a href="#field-guide">Read the field guide</a></p></article>
14
+ </section>
15
+ <p role="group" aria-label="Editor presentation"><button class="bevel-button bevel-button--small" type="button" data-editor-mode="view">View</button> <button class="bevel-button bevel-button--small" type="button" data-editor-mode="toolbar">Edit</button> <button class="bevel-button bevel-button--small" type="button" data-editor-mode="floating">Floating toolbar</button></p>
16
+ <p class="bevel-hint">Formatting edits the document locally. Your application owns saving. Use the link control to edit a URL or choose Remove link in the link form.</p>
17
+ </main>
18
+
19
+
20
+
21
+
22
+ <script src="../peers/richclay/vendor/squire.js"></script>
23
+ <script src="../peers/richclay/vendor/purify.min.js"></script>
24
+ <script src="../peers/richclay/richclay.js"></script>
25
+ <script src="../../bevel.js"></script>
26
+ <script src="../../integrations/richclay.js"></script>
27
+ <script>((host, { standalone = true, assetRoot = "../../", ready } = {}) => {
28
+
29
+ const scope = host.querySelector(".bevel-richtext");
30
+ RichClay.stripFromClone(scope);
31
+ const setMode = mode => {
32
+ Bevel.richtext.unmount(scope);
33
+ scope.dataset.bevelEditorMode = mode;
34
+ for (const button of host.querySelectorAll("[data-editor-mode]")) button.setAttribute("aria-pressed", String(button.dataset.editorMode === mode));
35
+ if (mode !== "view") [window.documentEditor] = Bevel.richtext.mount(scope, { hyperclay: false, inline: mode === "floating", toolbar: mode === "floating" ? ["bold", "italic", "underline", "strikethrough", "link"] : ["blockMenu", "bold", "italic", "underline", "strikethrough", "link", "unorderedList", "undo", "redo"] });
36
+ else window.documentEditor = null;
37
+ };
38
+ for (const button of host.querySelectorAll("[data-editor-mode]")) button.addEventListener("click", () => setMode(button.dataset.editorMode));
39
+ setMode(scope.dataset.bevelEditorMode || "toolbar");
40
+
41
+ })(document.body, {standalone:true,assetRoot:"../../",ready:callback => { if (document.readyState === "loading") document.addEventListener("DOMContentLoaded", callback, {once:true}); else callback(); }});</script>
42
+ </body>
43
+ </html>
@@ -0,0 +1,11 @@
1
+ <!doctype html>
2
+ <html data-theme="light" lang="en">
3
+ <head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="stylesheet" href="../../bevel-fonts.css"><link rel="stylesheet" href="../../bevel.css"><title>Save-status indicator · Bevel</title></head>
4
+ <body>
5
+ <main class="bevel-saved-page"><header><span class="bevel-overlay__eyebrow">NORTHSTAR STUDIO / FIELD NOTES</span><span class="bevel-badge">Draft</span></header><article><span class="bevel-overlay__eyebrow">FIELD NOTE / 001</span><h1>A place for good work.</h1><p>Keep the useful things close. Field notes brings the documents, decisions and small details of a project into one place.</p><p>A little room to think. A clear place to begin.</p><button class="bevel-button bevel-button--small" id="save" type="button">Save note</button></article></main>
6
+ <script src="../../bevel.js"></script>
7
+ <script>((host, { standalone = true, assetRoot = "../../", ready } = {}) => {
8
+ host.querySelector("#save").addEventListener("click",()=>setTimeout(()=>Bevel.saved({duration:1600}),80));
9
+ })(document.body, {standalone:true,assetRoot:"../../",ready:callback => { if (document.readyState === "loading") document.addEventListener("DOMContentLoaded", callback, {once:true}); else callback(); }});</script>
10
+ </body>
11
+ </html>
@@ -0,0 +1,9 @@
1
+ <!doctype html>
2
+ <html data-theme="light" lang="en">
3
+ <head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="stylesheet" href="../../bevel-fonts.css"><link rel="stylesheet" href="../../bevel.css"><title>Selectable cards · Bevel</title></head>
4
+ <body>
5
+ <main class="bevel-anchor-example"><header class="bevel-anchor-example__header"><div class="bevel-overlay__eyebrow">Northstar Studio / Field notes</div><h1>Who belongs here?</h1><p>One clear choice.</p></header><form id="access-form"><div class="bevel-choice-cards"><label class="bevel-choice-card bevel-radio"><input class="bevel-sr-only" type="radio" name="access" value="private" required checked><span class="bevel-radio__ring"></span><span class="bevel-choice-card__copy"><strong>Private project</strong><p>Only people you invite can see this project.</p><span class="bevel-badge bevel-badge--accent">Recommended</span></span></label><label class="bevel-choice-card bevel-radio"><input class="bevel-sr-only" type="radio" name="access" value="workspace"><span class="bevel-radio__ring"></span><span class="bevel-choice-card__copy"><strong>Workspace project</strong><p>Everyone at Northstar Studio can find and read it.</p><span class="bevel-badge">4 people</span></span></label><label class="bevel-choice-card bevel-radio"><input class="bevel-sr-only" type="radio" name="access" value="public" disabled><span class="bevel-radio__ring"></span><span class="bevel-choice-card__copy"><strong>Public project</strong><p>A link anyone can open. Unavailable in this workspace.</p><span class="bevel-badge"><svg aria-hidden="true" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="square" stroke-linejoin="miter"><path d="M6 11h12v10H6ZM8 11V7a4 4 0 0 1 8 0v4"/></svg>Unavailable</span></span></label></div><div class="bevel-edge-cases" hidden><button class="bevel-button" type="reset">Reset</button></div></form><form id="same-name-form" hidden><label><input type="radio" name="access" value="other" checked>Independent group</label></form><fieldset id="disabled-cards" disabled hidden><label><input type="checkbox" name="review" value="design">Design review</label></fieldset></main>
6
+ <script src="../../bevel.js"></script>
7
+
8
+ </body>
9
+ </html>
@@ -0,0 +1,10 @@
1
+ <!doctype html>
2
+ <html data-theme="light" lang="en">
3
+ <head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="stylesheet" href="../../bevel-fonts.css"><link rel="stylesheet" href="../../bevel.css"><title>Settings rows · Bevel</title></head>
4
+ <body>
5
+ <!-- React adds bevel-settings__label and bevel-settings__description to the corresponding parts. --><main class="bevel-anchor-example"><header class="bevel-anchor-example__header"><div class="bevel-overlay__eyebrow">Northstar Studio / Field notes</div><h1>Make it feel like your space.</h1><p>Workspace preferences for Northstar Studio.</p></header><form id="settings-form"><section class="bevel-settings"><div class="bevel-settings__row"><div class="bevel-settings__copy"><label for="weekly"><strong>Weekly digest</strong></label><p id="weekly-help">A quiet recap of the work, delivered every Monday.</p></div><label class="bevel-toggle bevel-toggle--small bevel-settings__control"><input id="weekly" class="bevel-sr-only" role="switch" type="checkbox" name="weekly" value="yes" aria-describedby="weekly-help" checked><span class="bevel-toggle__track"><span class="bevel-toggle__thumb"></span></span><span>Enabled</span></label></div><div class="bevel-settings__row"><div class="bevel-settings__copy"><label for="access"><strong>Default project access</strong></label><p id="access-help">Set who can discover new projects in this workspace.</p></div><label class="bevel-select bevel-settings__control"><select id="access" class="bevel-select__field" name="access" aria-describedby="access-help"><option value="invite" selected>Invite only</option><option value="workspace">Workspace</option></select></label></div><div class="bevel-settings__row"><div class="bevel-settings__copy"><strong>Export workspace</strong><p id="export-help">Take your documents and project history with you.</p></div><button class="bevel-button bevel-settings__control" type="button" data-bevel-action="export" aria-describedby="export-help"><span class="bevel-button__label">Export…</span></button></div></section><div class="bevel-edge-cases" hidden><button class="bevel-button" type="reset">Reset</button></div></form><fieldset disabled hidden><input name="disabled-setting" value="ignored"></fieldset><input hidden readonly value="readonly proof"></main>
6
+
7
+ <script src="../../bevel.js"></script>
8
+
9
+ </body>
10
+ </html>
@@ -0,0 +1,9 @@
1
+ <!doctype html>
2
+ <html class="light" lang="en">
3
+ <head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Sidebar navigation · Bevel</title><link rel="stylesheet" href="../../bevel-fonts.css"><link rel="stylesheet" href="../../bevel.css"></head>
4
+ <body>
5
+ <main class="bevel-example bevel-navigation-example"><header class="bevel-example__header"><div class="bevel-eyebrow">Navigation / 13</div><h1>A steady place to return</h1><p>The workspace frame holds the familiar things.</p></header><button class="bevel-button bevel-sidebar-mobile-trigger" data-bevel-open="mobile-nav" type="button">Open navigation</button><div class="bevel-app-shell"><nav class="bevel-sidebar" aria-label="Workspace"><div class="bevel-sidebar__brand"><svg aria-hidden="true" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="square" stroke-linejoin="miter"><path d="M3 3h7v7H3ZM14 3h7v7h-7ZM3 14h7v7H3ZM14 14h7v7h-7Z"/></svg><strong class="bevel-sidebar__label">Northstar</strong><button class="bevel-sidebar__collapse" data-bevel-sidebar-toggle type="button"><svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="square" stroke-linejoin="miter"><path d="M20 12H4m6-6-6 6 6 6"/></svg></button></div><div class="bevel-sidebar__links"><div class="bevel-sidebar__section">Workspace</div><a class="bevel-sidebar__link" href="#overview" aria-label="Overview"><svg aria-hidden="true" height="18" width="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="square" stroke-linejoin="miter"><path d="M3 3h7v7H3ZM14 3h7v7h-7ZM3 14h7v7H3ZM14 14h7v7h-7Z"/></svg><span class="bevel-sidebar__label">Overview</span></a><a class="bevel-sidebar__link" href="#documents" aria-current="page" aria-label="Documents"><svg aria-hidden="true" height="18" width="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="square" stroke-linejoin="miter"><path d="M5 3h9l5 5v13H5ZM14 3v6h5"/></svg><span class="bevel-sidebar__label">Documents</span><small class="bevel-sidebar__count">12</small></a><a class="bevel-sidebar__link" href="#activity" aria-label="Activity"><svg aria-hidden="true" height="18" width="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="square" stroke-linejoin="miter"><path d="M12 7v5l3 2M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0"/></svg><span class="bevel-sidebar__label">Activity</span><small class="bevel-sidebar__count">3</small></a><a class="bevel-sidebar__link" href="#settings" aria-label="Settings"><svg aria-hidden="true" height="18" width="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="square" stroke-linejoin="miter"><path d="M12 9a3 3 0 1 1 0 6 3 3 0 0 1 0-6M10 3h4l1.5 3 3.5-.5 2 4-2 2.5 2 2.5-2 4-3.5-.5-1.5 3h-4l-1.5-3-3.5.5-2-4 2-2.5-2-2.5 2-4 3.5.5Z"/></svg><span class="bevel-sidebar__label">Settings</span></a></div><footer class="bevel-sidebar__identity"><span class="bevel-sidebar__avatar" aria-label="Jules Park">JP</span><span class="bevel-sidebar__identity-copy"><strong>Jules Park</strong><small>Owner</small></span><button class="bevel-sidebar__account" aria-label="Account menu" data-bevel-action="account" data-bevel-key="jules" type="button"><svg aria-hidden="true" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.85" stroke-linecap="square" stroke-linejoin="miter"><path d="m5 9 7 7 7-7"/></svg></button></footer></nav><section class="bevel-app-content" id="documents"><div class="bevel-eyebrow">Your workspace</div><h2>Documents</h2><p>Keep the useful things close.</p><a class="bevel-document-row" href="#field-notes"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="square" stroke-linejoin="miter"><path d="M5 3h9l5 5v13H5ZM14 3v6h5"/></svg><div><strong>Field notes</strong><p>12 pages · edited today</p></div><svg aria-hidden="true" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.85" stroke-linecap="square" stroke-linejoin="miter"><path d="m9 5 7 7-7 7"/></svg></a><a class="bevel-document-row" href="#project-brief"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="square" stroke-linejoin="miter"><path d="M5 3h9l5 5v13H5ZM14 3v6h5"/></svg><div><strong>Project brief</strong><p>4 pages · edited today</p></div><svg aria-hidden="true" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.85" stroke-linecap="square" stroke-linejoin="miter"><path d="m9 5 7 7-7 7"/></svg></a><a class="bevel-document-row" href="#shared-references"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="square" stroke-linejoin="miter"><path d="M5 3h9l5 5v13H5ZM14 3v6h5"/></svg><div><strong>Shared references</strong><p>8 pages · edited today</p></div><svg aria-hidden="true" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.85" stroke-linecap="square" stroke-linejoin="miter"><path d="m9 5 7 7-7 7"/></svg></a></section></div><dialog class="bevel-drawer" id="mobile-nav" aria-labelledby="mobile-nav-title"><div class="bevel-drawer__inner"><header class="bevel-drawer__header"><button class="bevel-overlay__close" data-bevel-close type="button" aria-label="Close navigation"><svg aria-hidden="true" focusable="false" viewBox="0 0 256 256" fill="currentColor"><path d="M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z"/></svg></button><h2 id="mobile-nav-title" class="bevel-drawer__heading">Northstar</h2></header><nav aria-label="Mobile workspace"><a class="bevel-sidebar__link" href="#overview">Overview</a><a class="bevel-sidebar__link" href="#documents" aria-current="page">Documents</a><a class="bevel-sidebar__link" href="#activity">Activity</a><a class="bevel-sidebar__link" href="#settings">Settings</a></nav></div></dialog></main>
6
+ <script src="../../bevel.js"></script>
7
+
8
+ </body>
9
+ </html>