rimecms 0.26.7 → 0.26.9

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 (280) hide show
  1. package/dist/adapter-sqlite/where.js +7 -1
  2. package/dist/core/areas/api/get.server.js +6 -2
  3. package/dist/core/collections/nested/hooks/index.server.js +3 -1
  4. package/dist/core/collections/upload/upload.d.ts +8 -8
  5. package/dist/core/collections/upload/util/path.js +2 -1
  6. package/dist/core/config/types.d.ts +1 -1
  7. package/dist/core/dev/generate/sanitize/index.js +707 -707
  8. package/dist/core/errors/handler.server.js +3 -3
  9. package/dist/core/fields/util.js +2 -1
  10. package/dist/core/i18n/en/common.js +60 -60
  11. package/dist/core/i18n/en/errors.js +13 -12
  12. package/dist/core/i18n/en/fields.js +11 -11
  13. package/dist/core/i18n/en/mail.js +2 -2
  14. package/dist/core/i18n/fr/common.js +64 -64
  15. package/dist/core/i18n/fr/errors.js +11 -11
  16. package/dist/core/i18n/fr/fields.js +11 -11
  17. package/dist/core/i18n/fr/mail.js +2 -2
  18. package/dist/core/logger/index.server.js +136 -136
  19. package/dist/core/operations/hooks/before-upsert/validate-fields.server.js +5 -5
  20. package/dist/core/plugins/cache/HeaderButton.svelte +11 -11
  21. package/dist/fields/blocks/component/AddBlockButton.svelte +161 -161
  22. package/dist/fields/blocks/component/Block.svelte +157 -157
  23. package/dist/fields/blocks/component/BlockActions.svelte +36 -36
  24. package/dist/fields/blocks/component/Blocks.svelte +154 -154
  25. package/dist/fields/blocks/component/Cell.svelte +12 -12
  26. package/dist/fields/blocks/component/ToggleBlockButton.svelte +11 -11
  27. package/dist/fields/checkbox/component/Checkbox.svelte +51 -51
  28. package/dist/fields/combobox/component/ComboBox.svelte +88 -88
  29. package/dist/fields/combobox/component/combobox.css +24 -24
  30. package/dist/fields/date/component/Cell.svelte +5 -5
  31. package/dist/fields/date/component/Date.svelte +92 -92
  32. package/dist/fields/email/component/Email.svelte +58 -58
  33. package/dist/fields/group/component/Group.svelte +131 -131
  34. package/dist/fields/link/component/Cell.svelte +9 -9
  35. package/dist/fields/link/component/Link.svelte +269 -269
  36. package/dist/fields/link/component/RessourceInput.svelte +183 -183
  37. package/dist/fields/number/component/Number.svelte +118 -118
  38. package/dist/fields/number/component/number.css +52 -52
  39. package/dist/fields/radio/component/Radio.svelte +56 -53
  40. package/dist/fields/relation/component/Cell.svelte +51 -51
  41. package/dist/fields/relation/component/Relation.svelte +226 -226
  42. package/dist/fields/relation/component/default/Default.svelte +218 -218
  43. package/dist/fields/relation/component/upload/Browse.svelte +227 -227
  44. package/dist/fields/relation/component/upload/Upload.svelte +112 -112
  45. package/dist/fields/relation/component/upload/upload.css +72 -72
  46. package/dist/fields/rich-text/component/Cell.svelte +5 -5
  47. package/dist/fields/rich-text/component/RichText.svelte +95 -95
  48. package/dist/fields/rich-text/component/bubble-menu/bubble-menu.css +15 -15
  49. package/dist/fields/rich-text/component/bubble-menu/bubble-menu.svelte +148 -148
  50. package/dist/fields/rich-text/component/bubble-menu/icon-button/icon-button.css +10 -10
  51. package/dist/fields/rich-text/component/bubble-menu/icon-button/icon-button.svelte +23 -17
  52. package/dist/fields/rich-text/component/bubble-menu/node-selector/node-selector.css +37 -37
  53. package/dist/fields/rich-text/component/bubble-menu/node-selector/node-selector.svelte +93 -89
  54. package/dist/fields/rich-text/component/drag-handle/drag-handle.css +12 -12
  55. package/dist/fields/rich-text/component/drag-handle/drag-handle.svelte +27 -27
  56. package/dist/fields/rich-text/component/styles/rich-text.css +142 -142
  57. package/dist/fields/rich-text/component/suggestion/suggestion.svelte +79 -79
  58. package/dist/fields/rich-text/core/extensions/current-node/current-node.css +3 -3
  59. package/dist/fields/rich-text/core/extensions/drag-handle/drag-handle.js +10 -7
  60. package/dist/fields/rich-text/core/extensions/drag-handle/helpers/cloneElement.js +4 -1
  61. package/dist/fields/rich-text/core/extensions/drag-handle/helpers/dragHandler.js +4 -4
  62. package/dist/fields/rich-text/core/extensions/drag-handle/helpers/findNextElementFromCursor.js +4 -4
  63. package/dist/fields/rich-text/core/extensions/drag-handle/helpers/getInnerCoords.js +1 -1
  64. package/dist/fields/rich-text/core/features/fields/fields.css +16 -16
  65. package/dist/fields/rich-text/core/features/fields/fields.svelte +50 -50
  66. package/dist/fields/rich-text/core/features/hr/hr.css +15 -15
  67. package/dist/fields/rich-text/core/features/link/component/link-selector.css +2 -2
  68. package/dist/fields/rich-text/core/features/link/component/link-selector.svelte +266 -266
  69. package/dist/fields/rich-text/core/features/resource/resource.svelte +134 -134
  70. package/dist/fields/rich-text/core/features/upload/upload.svelte +230 -230
  71. package/dist/fields/rich-text/core/render-rich-text.svelte +162 -162
  72. package/dist/fields/rich-text/core/svelte/node-view-wrapper.svelte +25 -18
  73. package/dist/fields/rich-text/util.js +2 -1
  74. package/dist/fields/select/component/Select.svelte +194 -194
  75. package/dist/fields/separator/component/Separator.svelte +5 -5
  76. package/dist/fields/slug/component/Cell.svelte +4 -4
  77. package/dist/fields/slug/component/Slug.svelte +99 -99
  78. package/dist/fields/tabs/component/Tabs.svelte +96 -96
  79. package/dist/fields/text/component/Text.svelte +54 -54
  80. package/dist/fields/textarea/component/TextArea.svelte +51 -51
  81. package/dist/fields/time/component/Time.svelte +44 -44
  82. package/dist/fields/toggle/component/Cell.svelte +10 -10
  83. package/dist/fields/toggle/component/Toggle.svelte +36 -36
  84. package/dist/fields/tree/component/AddItemButton.svelte +35 -29
  85. package/dist/fields/tree/component/Cell.svelte +12 -12
  86. package/dist/fields/tree/component/ToggleBlockButton.svelte +11 -11
  87. package/dist/fields/tree/component/Tree.svelte +150 -150
  88. package/dist/fields/tree/component/TreeBlock.svelte +174 -174
  89. package/dist/fields/tree/component/TreeBlockActions.svelte +13 -13
  90. package/dist/fields/tree/index.js +3 -2
  91. package/dist/live.d.ts +2 -2
  92. package/dist/live.js +2 -2
  93. package/dist/panel/components/Root.svelte +70 -70
  94. package/dist/panel/components/fields/Error.svelte +35 -35
  95. package/dist/panel/components/fields/FieldsPreview.svelte +71 -71
  96. package/dist/panel/components/fields/FieldsPreviewTrigger.svelte +11 -11
  97. package/dist/panel/components/fields/Hint.svelte +12 -12
  98. package/dist/panel/components/fields/Label.svelte +31 -26
  99. package/dist/panel/components/fields/LabelFor.svelte +26 -26
  100. package/dist/panel/components/fields/RenderFields.svelte +102 -102
  101. package/dist/panel/components/sections/auth/AuthForm.svelte +102 -102
  102. package/dist/panel/components/sections/collection/Empty.svelte +18 -18
  103. package/dist/panel/components/sections/collection/StatusDot.svelte +13 -13
  104. package/dist/panel/components/sections/collection/bulk-upload/BulkUploadDialog.svelte +30 -28
  105. package/dist/panel/components/sections/collection/bulk-upload/DropZone.svelte +176 -169
  106. package/dist/panel/components/sections/collection/folder/Folder.svelte +38 -38
  107. package/dist/panel/components/sections/collection/folder/FolderEdit.svelte +57 -57
  108. package/dist/panel/components/sections/collection/folder/FolderWithActions.svelte +223 -223
  109. package/dist/panel/components/sections/collection/grid/CollectionGrid.svelte +102 -102
  110. package/dist/panel/components/sections/collection/grid/create-directory-dialog/CreateDirectoryDialog.svelte +50 -50
  111. package/dist/panel/components/sections/collection/grid/grid-item/GridItem.svelte +56 -56
  112. package/dist/panel/components/sections/collection/header/ButtonCreate.svelte +29 -29
  113. package/dist/panel/components/sections/collection/header/DisplayMode.svelte +59 -59
  114. package/dist/panel/components/sections/collection/header/Header.svelte +11 -11
  115. package/dist/panel/components/sections/collection/header/SearchInput.svelte +41 -41
  116. package/dist/panel/components/sections/collection/header/SelectUI.svelte +51 -51
  117. package/dist/panel/components/sections/collection/header/Separator.svelte +4 -4
  118. package/dist/panel/components/sections/collection/list/CollectionList.svelte +46 -46
  119. package/dist/panel/components/sections/collection/list/header/Header.svelte +56 -56
  120. package/dist/panel/components/sections/collection/list/row/Row.svelte +115 -115
  121. package/dist/panel/components/sections/collection/tree/CollectionTree.svelte +139 -139
  122. package/dist/panel/components/sections/collection/tree/CollectionTreeNode.svelte +56 -56
  123. package/dist/panel/components/sections/collection/upload-thumb-cell/UploadThumbCell.svelte +64 -64
  124. package/dist/panel/components/sections/document/AuthAPIKeyDialog.svelte +66 -66
  125. package/dist/panel/components/sections/document/AuthFooter.svelte +81 -81
  126. package/dist/panel/components/sections/document/ButtonSave.svelte +34 -27
  127. package/dist/panel/components/sections/document/ButtonStatus.svelte +79 -79
  128. package/dist/panel/components/sections/document/CurrentlyEdited.svelte +36 -36
  129. package/dist/panel/components/sections/document/Document.svelte +223 -223
  130. package/dist/panel/components/sections/document/FloatingUI.svelte +69 -69
  131. package/dist/panel/components/sections/document/Header.svelte +105 -105
  132. package/dist/panel/components/sections/document/Settings.svelte +167 -167
  133. package/dist/panel/components/sections/document/Versions.svelte +89 -89
  134. package/dist/panel/components/sections/document/upload-header/UploadHeader.svelte +205 -205
  135. package/dist/panel/components/sections/document/upload-header/drop-zone/DropZone.svelte +141 -141
  136. package/dist/panel/components/sections/live/Consumer.svelte +14 -14
  137. package/dist/panel/components/sections/live/Provider.svelte +10 -10
  138. package/dist/panel/components/sections/live/SidePanel.svelte +56 -56
  139. package/dist/panel/components/sections/live/side-panel.css +10 -8
  140. package/dist/panel/components/sections/page-layout/Page.svelte +23 -23
  141. package/dist/panel/components/sections/unauthorized/Unauthorized.svelte +22 -22
  142. package/dist/panel/components/ui/breadcrumb/BreadCrumb.svelte +40 -40
  143. package/dist/panel/components/ui/button/button.svelte +226 -226
  144. package/dist/panel/components/ui/calendar/calendar-cell.svelte +6 -2
  145. package/dist/panel/components/ui/calendar/calendar-day.svelte +6 -2
  146. package/dist/panel/components/ui/calendar/calendar-grid-body.svelte +6 -2
  147. package/dist/panel/components/ui/calendar/calendar-grid-head.svelte +6 -2
  148. package/dist/panel/components/ui/calendar/calendar-grid-row.svelte +6 -2
  149. package/dist/panel/components/ui/calendar/calendar-grid.svelte +6 -2
  150. package/dist/panel/components/ui/calendar/calendar-head-cell.svelte +6 -2
  151. package/dist/panel/components/ui/calendar/calendar-header.svelte +6 -2
  152. package/dist/panel/components/ui/calendar/calendar-heading.svelte +6 -2
  153. package/dist/panel/components/ui/calendar/calendar-months.svelte +21 -16
  154. package/dist/panel/components/ui/calendar/calendar-next-button.svelte +13 -8
  155. package/dist/panel/components/ui/calendar/calendar-prev-button.svelte +13 -8
  156. package/dist/panel/components/ui/calendar/calendar.css +88 -88
  157. package/dist/panel/components/ui/calendar/calendar.svelte +50 -50
  158. package/dist/panel/components/ui/card/card-content.svelte +17 -12
  159. package/dist/panel/components/ui/card/card-description.svelte +14 -9
  160. package/dist/panel/components/ui/card/card-footer.svelte +17 -12
  161. package/dist/panel/components/ui/card/card-header.svelte +15 -10
  162. package/dist/panel/components/ui/card/card-title.svelte +25 -19
  163. package/dist/panel/components/ui/card/card.svelte +19 -14
  164. package/dist/panel/components/ui/card-document/card-document.svelte +73 -73
  165. package/dist/panel/components/ui/card-resource/card-resource.svelte +108 -108
  166. package/dist/panel/components/ui/checkbox/checkbox.css +28 -28
  167. package/dist/panel/components/ui/checkbox/checkbox.svelte +13 -13
  168. package/dist/panel/components/ui/command/command-dialog.css +24 -24
  169. package/dist/panel/components/ui/command/command-dialog.svelte +28 -18
  170. package/dist/panel/components/ui/command/command-empty.css +2 -2
  171. package/dist/panel/components/ui/command/command-empty.svelte +7 -3
  172. package/dist/panel/components/ui/command/command-group.css +20 -20
  173. package/dist/panel/components/ui/command/command-group.svelte +17 -17
  174. package/dist/panel/components/ui/command/command-input-select.svelte +50 -45
  175. package/dist/panel/components/ui/command/command-input.svelte +57 -57
  176. package/dist/panel/components/ui/command/command-item.css +18 -18
  177. package/dist/panel/components/ui/command/command-item.svelte +7 -3
  178. package/dist/panel/components/ui/command/command-list.css +4 -4
  179. package/dist/panel/components/ui/command/command-list.svelte +7 -3
  180. package/dist/panel/components/ui/command/command-separator.css +4 -4
  181. package/dist/panel/components/ui/command/command-separator.svelte +7 -3
  182. package/dist/panel/components/ui/command/command.css +5 -5
  183. package/dist/panel/components/ui/command/command.svelte +8 -8
  184. package/dist/panel/components/ui/context-menu/ContextMenu.svelte +10 -5
  185. package/dist/panel/components/ui/context-menu/ContextMenu.svelte.d.ts +2 -2
  186. package/dist/panel/components/ui/context-menu/ContextMenuItem.svelte +8 -8
  187. package/dist/panel/components/ui/context-menu/context-menu-item.css +20 -20
  188. package/dist/panel/components/ui/context-menu/context-menu.css +12 -12
  189. package/dist/panel/components/ui/dialog/dialog-content.css +45 -45
  190. package/dist/panel/components/ui/dialog/dialog-content.svelte +33 -33
  191. package/dist/panel/components/ui/dialog/dialog-description.css +2 -2
  192. package/dist/panel/components/ui/dialog/dialog-description.svelte +7 -3
  193. package/dist/panel/components/ui/dialog/dialog-footer.svelte +20 -20
  194. package/dist/panel/components/ui/dialog/dialog-header.svelte +22 -22
  195. package/dist/panel/components/ui/dialog/dialog-overlay.css +6 -6
  196. package/dist/panel/components/ui/dialog/dialog-overlay.svelte +7 -3
  197. package/dist/panel/components/ui/dialog/dialog-title.css +3 -3
  198. package/dist/panel/components/ui/dialog/dialog-title.svelte +7 -3
  199. package/dist/panel/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +55 -55
  200. package/dist/panel/components/ui/dropdown-menu/dropdown-menu-content.css +8 -8
  201. package/dist/panel/components/ui/dropdown-menu/dropdown-menu-content.svelte +14 -9
  202. package/dist/panel/components/ui/dropdown-menu/dropdown-menu-group-heading.css +5 -5
  203. package/dist/panel/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +10 -10
  204. package/dist/panel/components/ui/dropdown-menu/dropdown-menu-item.css +19 -19
  205. package/dist/panel/components/ui/dropdown-menu/dropdown-menu-item.svelte +9 -9
  206. package/dist/panel/components/ui/dropdown-menu/dropdown-menu-radio-item.css +17 -17
  207. package/dist/panel/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +17 -17
  208. package/dist/panel/components/ui/dropdown-menu/dropdown-menu-separator.css +3 -3
  209. package/dist/panel/components/ui/dropdown-menu/dropdown-menu-separator.svelte +12 -4
  210. package/dist/panel/components/ui/dropdown-menu/dropdown-menu-trigger.svelte +6 -2
  211. package/dist/panel/components/ui/input/input.svelte +93 -93
  212. package/dist/panel/components/ui/label/label.css +7 -7
  213. package/dist/panel/components/ui/label/label.svelte +8 -8
  214. package/dist/panel/components/ui/language-switcher/LanguageSwitcher.svelte +48 -48
  215. package/dist/panel/components/ui/nav/Nav.svelte +151 -151
  216. package/dist/panel/components/ui/nav/NavGroup.svelte +85 -85
  217. package/dist/panel/components/ui/nav/NavItem.svelte +42 -42
  218. package/dist/panel/components/ui/nav/NavItemButton.svelte +39 -38
  219. package/dist/panel/components/ui/nav/NavItemButtonCaret.svelte +8 -8
  220. package/dist/panel/components/ui/nav/UserButton.svelte +90 -90
  221. package/dist/panel/components/ui/page-header/PageHeader.svelte +80 -80
  222. package/dist/panel/components/ui/pane/pane-resizer.svelte +12 -12
  223. package/dist/panel/components/ui/popover/popover-content.css +7 -7
  224. package/dist/panel/components/ui/popover/popover-content.svelte +16 -10
  225. package/dist/panel/components/ui/radio-group/radio-group-item.svelte +8 -7
  226. package/dist/panel/components/ui/radio-group/radio-group.css +23 -23
  227. package/dist/panel/components/ui/radio-group/radio-group.svelte +8 -8
  228. package/dist/panel/components/ui/radio-row-group/radio-row-group-item.svelte +9 -9
  229. package/dist/panel/components/ui/radio-row-group/radio-row-group.css +27 -27
  230. package/dist/panel/components/ui/radio-row-group/radio-row-group.svelte +14 -9
  231. package/dist/panel/components/ui/scroll-area/scroll-area-scrollbar.svelte +14 -14
  232. package/dist/panel/components/ui/scroll-area/scroll-area.css +21 -21
  233. package/dist/panel/components/ui/scroll-area/scroll-area.svelte +26 -26
  234. package/dist/panel/components/ui/separator/separator.svelte +25 -25
  235. package/dist/panel/components/ui/sheet/sheet-content.svelte +33 -33
  236. package/dist/panel/components/ui/sheet/sheet-description.svelte +6 -2
  237. package/dist/panel/components/ui/sheet/sheet-footer.svelte +10 -5
  238. package/dist/panel/components/ui/sheet/sheet-header.svelte +10 -5
  239. package/dist/panel/components/ui/sheet/sheet-overlay.svelte +7 -3
  240. package/dist/panel/components/ui/sheet/sheet-title.svelte +6 -2
  241. package/dist/panel/components/ui/sheet/sheet.css +81 -81
  242. package/dist/panel/components/ui/sheet/sheet.svelte +5 -5
  243. package/dist/panel/components/ui/sonner/sonner.css +12 -12
  244. package/dist/panel/components/ui/sonner/sonner.svelte +15 -15
  245. package/dist/panel/components/ui/spin-loader/SpinLoader.svelte +2 -2
  246. package/dist/panel/components/ui/spin-loader/spin-loader.css +10 -10
  247. package/dist/panel/components/ui/switch/switch.css +36 -36
  248. package/dist/panel/components/ui/switch/switch.svelte +9 -9
  249. package/dist/panel/components/ui/tabs/tabs-content.svelte +6 -2
  250. package/dist/panel/components/ui/tabs/tabs-list.svelte +2 -2
  251. package/dist/panel/components/ui/tabs/tabs-trigger.svelte +6 -2
  252. package/dist/panel/components/ui/tabs/tabs.css +47 -49
  253. package/dist/panel/components/ui/tabs/tabs.svelte +5 -5
  254. package/dist/panel/components/ui/tag/tag.svelte +49 -45
  255. package/dist/panel/components/ui/tooltip/tooltip-content.svelte +31 -31
  256. package/dist/panel/pages/area/Area.svelte +17 -17
  257. package/dist/panel/pages/area/AreaVersionsDoc.svelte +19 -19
  258. package/dist/panel/pages/area/load.server.js +10 -2
  259. package/dist/panel/pages/auth/forgot-password/ForgotPassword.svelte +46 -46
  260. package/dist/panel/pages/auth/reset-password/ResetPassword.svelte +54 -54
  261. package/dist/panel/pages/auth/sign-in/SignIn.svelte +41 -41
  262. package/dist/panel/pages/collection/Collection.svelte +121 -121
  263. package/dist/panel/pages/collection/load.server.js +8 -2
  264. package/dist/panel/pages/collection-document/CollectionDocVersions.svelte +26 -26
  265. package/dist/panel/pages/collection-document/CollectionDocument.svelte +20 -20
  266. package/dist/panel/pages/collection-document/actions.server.js +3 -1
  267. package/dist/panel/pages/collection-document/load.server.js +4 -1
  268. package/dist/panel/pages/dashboard/Dashboard.svelte +109 -109
  269. package/dist/panel/pages/index.actions.server.js +1 -1
  270. package/dist/panel/pages/index.load.server.js +1 -1
  271. package/dist/panel/pages/live/Live.svelte +199 -192
  272. package/dist/panel/style/font.css +32 -32
  273. package/dist/panel/style/index.css +81 -81
  274. package/dist/panel/style/palette.css +27 -28
  275. package/dist/panel/style/radius.css +8 -8
  276. package/dist/panel/style/shadow.css +8 -8
  277. package/dist/panel/style/size.css +41 -41
  278. package/dist/panel/style/util.css +1 -1
  279. package/dist/util/cases.d.ts +1 -1
  280. package/package.json +233 -233
@@ -1,96 +1,96 @@
1
1
  <script lang="ts">
2
- import { t__ } from '../../../../core/i18n/index.js';
3
- import * as Command from '../../../../panel/components/ui/command/index.js';
4
- import { capitalize } from '../../../../util/string.js';
5
- import type { Editor } from '@tiptap/core';
6
- import { onDestroy, onMount } from 'svelte';
7
- import type { RichTextFeature } from '../../core/types.js';
2
+ import { t__ } from '../../../../core/i18n/index.js';
3
+ import * as Command from '../../../../panel/components/ui/command/index.js';
4
+ import { capitalize } from '../../../../util/string.js';
5
+ import type { Editor } from '@tiptap/core';
6
+ import { onDestroy, onMount } from 'svelte';
7
+ import type { RichTextFeature } from '../../core/types.js';
8
8
 
9
- type Props = {
10
- editor: Editor;
11
- features: RichTextFeature[];
12
- };
9
+ type Props = {
10
+ editor: Editor;
11
+ features: RichTextFeature[];
12
+ };
13
13
 
14
- let { editor, features = [] }: Props = $props();
14
+ let { editor, features = [] }: Props = $props();
15
15
 
16
- let isOpen = $state(false);
16
+ let isOpen = $state(false);
17
17
 
18
- const augmentFeatureName = (feature: RichTextFeature): RichTextFeature & { name?: string } => ({
19
- ...feature,
20
- name: feature.extension?.name
21
- });
18
+ const augmentFeatureName = (feature: RichTextFeature): RichTextFeature & { name?: string } => ({
19
+ ...feature,
20
+ name: feature.extension?.name
21
+ });
22
22
 
23
- // Get all items with suggestion commands
24
- const markItems = $derived(
25
- features
26
- .map(augmentFeatureName)
27
- .flatMap((feature) => feature.marks?.map((m) => ({ ...m, name: m.label })) || [])
28
- .filter((mark) => mark.suggestion && mark.suggestion.command)
29
- );
23
+ // Get all items with suggestion commands
24
+ const markItems = $derived(
25
+ features
26
+ .map(augmentFeatureName)
27
+ .flatMap((feature) => feature.marks?.map((m) => ({ ...m, name: m.label })) || [])
28
+ .filter((mark) => mark.suggestion && mark.suggestion.command)
29
+ );
30
30
 
31
- const nodeItems = $derived(
32
- features
33
- .map(augmentFeatureName)
34
- .flatMap((feature) => feature.nodes?.map((m) => ({ ...m, name: m.label })) || [])
35
- .filter((node) => node.suggestion && node.suggestion.command)
36
- );
31
+ const nodeItems = $derived(
32
+ features
33
+ .map(augmentFeatureName)
34
+ .flatMap((feature) => feature.nodes?.map((m) => ({ ...m, name: m.label })) || [])
35
+ .filter((node) => node.suggestion && node.suggestion.command)
36
+ );
37
37
 
38
- // Combine all suggestion items
39
- const allSuggestionItems = $derived([...markItems, ...nodeItems]);
38
+ // Combine all suggestion items
39
+ const allSuggestionItems = $derived([...markItems, ...nodeItems]);
40
40
 
41
- // Cmd+K handling
42
- const onFocus = () => {
43
- document.addEventListener('keydown', handleKeyDown);
44
- };
45
- const onBlur = () => {
46
- document.removeEventListener('keydown', handleKeyDown);
47
- };
48
- const handleKeyDown = (event: KeyboardEvent) => {
49
- if (event.code === 'KeyK' && event.metaKey) {
50
- isOpen = true;
51
- }
52
- };
41
+ // Cmd+K handling
42
+ const onFocus = () => {
43
+ document.addEventListener('keydown', handleKeyDown);
44
+ };
45
+ const onBlur = () => {
46
+ document.removeEventListener('keydown', handleKeyDown);
47
+ };
48
+ const handleKeyDown = (event: KeyboardEvent) => {
49
+ if (event.code === 'KeyK' && event.metaKey) {
50
+ isOpen = true;
51
+ }
52
+ };
53
53
 
54
- onMount(() => {
55
- editor.on('focus', onFocus);
56
- editor.on('blur', onBlur);
57
- });
54
+ onMount(() => {
55
+ editor.on('focus', onFocus);
56
+ editor.on('blur', onBlur);
57
+ });
58
58
 
59
- onDestroy(() => {
60
- editor.off('focus', onFocus);
61
- editor.off('blur', onBlur);
62
- });
59
+ onDestroy(() => {
60
+ editor.off('focus', onFocus);
61
+ editor.off('blur', onBlur);
62
+ });
63
63
  </script>
64
64
 
65
65
  <Command.Dialog bind:open={isOpen}>
66
- <Command.Input placeholder={t__('common.search')} />
66
+ <Command.Input placeholder={t__('common.search')} />
67
67
 
68
- <Command.List>
69
- <Command.Empty>No results found.</Command.Empty>
68
+ <Command.List>
69
+ <Command.Empty>No results found.</Command.Empty>
70
70
 
71
- {#each allSuggestionItems as item, index (index)}
72
- {@const ItemIcon = item.icon}
73
- <Command.Item
74
- value={item.name}
75
- onSelect={() => {
76
- if (item.suggestion && item.suggestion.command) {
77
- item.suggestion.command({
78
- editor,
79
- range: { from: editor.state.selection.from, to: editor.state.selection.to }
80
- });
81
- }
82
- isOpen = false;
83
- }}
84
- >
85
- <div>
86
- <ItemIcon size={17} />
87
- </div>
88
- <div>
89
- <p>
90
- {item.label || capitalize(item.name || '')}
91
- </p>
92
- </div>
93
- </Command.Item>
94
- {/each}
95
- </Command.List>
71
+ {#each allSuggestionItems as item, index (index)}
72
+ {@const ItemIcon = item.icon}
73
+ <Command.Item
74
+ value={item.name}
75
+ onSelect={() => {
76
+ if (item.suggestion && item.suggestion.command) {
77
+ item.suggestion.command({
78
+ editor,
79
+ range: { from: editor.state.selection.from, to: editor.state.selection.to }
80
+ });
81
+ }
82
+ isOpen = false;
83
+ }}
84
+ >
85
+ <div>
86
+ <ItemIcon size={17} />
87
+ </div>
88
+ <div>
89
+ <p>
90
+ {item.label || capitalize(item.name || '')}
91
+ </p>
92
+ </div>
93
+ </Command.Item>
94
+ {/each}
95
+ </Command.List>
96
96
  </Command.Dialog>
@@ -1,6 +1,6 @@
1
1
  .ProseMirror-focused > *:has([data-current]),
2
2
  .ProseMirror-focused > *[data-current] {
3
- border-color: transparent;
4
- position: relative;
5
- z-index: 10;
3
+ border-color: transparent;
4
+ position: relative;
5
+ z-index: 10;
6
6
  }
@@ -2,7 +2,7 @@ import { Extension } from '@tiptap/core';
2
2
  import { DragHandlePlugin } from './drag-handle-plugin.js';
3
3
  export const defaultComputePositionConfig = {
4
4
  placement: 'left-start',
5
- strategy: 'absolute',
5
+ strategy: 'absolute'
6
6
  };
7
7
  export const DragHandle = Extension.create({
8
8
  name: 'dragHandle',
@@ -17,7 +17,7 @@ export const DragHandle = Extension.create({
17
17
  locked: false,
18
18
  onNodeChange: () => {
19
19
  return null;
20
- },
20
+ }
21
21
  };
22
22
  },
23
23
  addCommands() {
@@ -33,19 +33,22 @@ export const DragHandle = Extension.create({
33
33
  toggleDragHandle: () => ({ editor }) => {
34
34
  this.options.locked = !this.options.locked;
35
35
  return editor.commands.setMeta('lockDragHandle', this.options.locked);
36
- },
36
+ }
37
37
  };
38
38
  },
39
39
  addProseMirrorPlugins() {
40
40
  const element = this.options.render();
41
41
  return [
42
42
  DragHandlePlugin({
43
- computePositionConfig: { ...defaultComputePositionConfig, ...this.options.computePositionConfig },
43
+ computePositionConfig: {
44
+ ...defaultComputePositionConfig,
45
+ ...this.options.computePositionConfig
46
+ },
44
47
  getReferencedVirtualElement: this.options.getReferencedVirtualElement,
45
48
  element,
46
49
  editor: this.editor,
47
- onNodeChange: this.options.onNodeChange,
48
- }).plugin,
50
+ onNodeChange: this.options.onNodeChange
51
+ }).plugin
49
52
  ];
50
- },
53
+ }
51
54
  });
@@ -9,7 +9,10 @@ function getCSSText(element) {
9
9
  export function cloneElement(node) {
10
10
  const clonedNode = node.cloneNode(true);
11
11
  const sourceElements = [node, ...Array.from(node.getElementsByTagName('*'))];
12
- const targetElements = [clonedNode, ...Array.from(clonedNode.getElementsByTagName('*'))];
12
+ const targetElements = [
13
+ clonedNode,
14
+ ...Array.from(clonedNode.getElementsByTagName('*'))
15
+ ];
13
16
  sourceElements.forEach((sourceElement, index) => {
14
17
  targetElements[index].style.cssText = getCSSText(sourceElement);
15
18
  });
@@ -9,7 +9,7 @@ function getDragHandleRanges(event, editor) {
9
9
  editor,
10
10
  x: event.clientX,
11
11
  y: event.clientY,
12
- direction: 'right',
12
+ direction: 'right'
13
13
  });
14
14
  if (!result.resultNode || result.pos === null) {
15
15
  return [];
@@ -38,8 +38,8 @@ export function dragHandler(event, editor) {
38
38
  const { empty, $from, $to } = view.state.selection;
39
39
  const dragHandleRanges = getDragHandleRanges(event, editor);
40
40
  const selectionRanges = getSelectionRanges($from, $to, 0);
41
- const isDragHandleWithinSelection = selectionRanges.some(range => {
42
- return dragHandleRanges.find(dragHandleRange => {
41
+ const isDragHandleWithinSelection = selectionRanges.some((range) => {
42
+ return dragHandleRanges.find((dragHandleRange) => {
43
43
  return dragHandleRange.$from === range.$from && dragHandleRange.$to === range.$to;
44
44
  });
45
45
  });
@@ -53,7 +53,7 @@ export function dragHandler(event, editor) {
53
53
  const to = ranges[ranges.length - 1].$to.pos;
54
54
  const selection = NodeRangeSelection.create(view.state.doc, from, to);
55
55
  const slice = selection.content();
56
- ranges.forEach(range => {
56
+ ranges.forEach((range) => {
57
57
  const element = view.nodeDOM(range.$from.pos);
58
58
  const clonedElement = cloneElement(element);
59
59
  wrapper.append(clonedElement);
@@ -4,16 +4,16 @@ export const findElementNextToCoords = (options) => {
4
4
  top: y - bandHeight,
5
5
  bottom: y + bandHeight,
6
6
  left: direction === 'right' ? x : 0,
7
- right: direction === 'right' ? window.innerWidth - x : x,
7
+ right: direction === 'right' ? window.innerWidth - x : x
8
8
  };
9
9
  const root = editor.view.dom;
10
10
  // Get potential candidates from prosemirror child elements and filter
11
11
  // by removing decorations and non prosemirror-elements
12
12
  const candidates = [...root.querySelectorAll('*')]
13
- .filter(candidate => {
13
+ .filter((candidate) => {
14
14
  return editor.view.posAtDOM(candidate, 0) >= 0;
15
15
  })
16
- .filter(candidate => {
16
+ .filter((candidate) => {
17
17
  const candidateRect = candidate.getBoundingClientRect();
18
18
  return !(candidateRect.bottom < rect.top ||
19
19
  candidateRect.top > rect.bottom ||
@@ -35,7 +35,7 @@ export const findElementNextToCoords = (options) => {
35
35
  return {
36
36
  resultElement: finalCandidate,
37
37
  resultNode: $pos.nodeAfter,
38
- pos: candidatePos,
38
+ pos: candidatePos
39
39
  };
40
40
  }
41
41
  }
@@ -8,7 +8,7 @@ export function getInnerCoords(view, x, y) {
8
8
  const bounds = view.dom.getBoundingClientRect();
9
9
  const coords = {
10
10
  left: minMax(x, bounds.left + paddingLeft + borderLeft, bounds.right - paddingRight - borderRight),
11
- top: y,
11
+ top: y
12
12
  };
13
13
  return coords;
14
14
  }
@@ -1,28 +1,28 @@
1
1
  .rz-rich-text-sheet {
2
- padding: var(--rz-size-8);
2
+ padding: var(--rz-size-8);
3
3
  }
4
4
 
5
5
  .ProseMirror-focused .ProseMirror-selectednode .rz-fields-preview__trigger {
6
- box-shadow:
7
- 0 0 0 var(--rz-ring-offset, 0px) hsl(var(--rz-ring-offset-bg, var(--rz-gray-6)) / 1),
8
- 0 0 0 calc(var(--rz-ring-offset, 0px) + 1px) hsl(var(--rz-color-spot) / var(--rz-ring-opacity, 1));
6
+ box-shadow:
7
+ 0 0 0 var(--rz-ring-offset, 0px) hsl(var(--rz-ring-offset-bg, var(--rz-gray-6)) / 1),
8
+ 0 0 0 calc(var(--rz-ring-offset, 0px) + 1px) hsl(var(--rz-color-spot) / var(--rz-ring-opacity, 1));
9
9
  }
10
10
 
11
11
  .rz-rich-text-sheet {
12
- gap: var(--rz-size-6);
13
- display: flex;
14
- flex-direction: column;
12
+ gap: var(--rz-size-6);
13
+ display: flex;
14
+ flex-direction: column;
15
15
  }
16
16
 
17
17
  .rz-rich-text-fields-preview {
18
- font-size: var(--rz-text-sm);
19
- max-width: 420px;
20
- border-radius: var(--rz-radius-lg);
18
+ font-size: var(--rz-text-sm);
19
+ max-width: 420px;
20
+ border-radius: var(--rz-radius-lg);
21
21
 
22
- .rz-render-fields-preview__row:first-child .rz-render-fields-preview__name {
23
- border-top-left-radius: var(--rz-radius-lg);
24
- }
25
- .rz-render-fields-preview__row:last-child .rz-render-fields-preview__name {
26
- border-bottom-left-radius: var(--rz-radius-lg);
27
- }
22
+ .rz-render-fields-preview__row:first-child .rz-render-fields-preview__name {
23
+ border-top-left-radius: var(--rz-radius-lg);
24
+ }
25
+ .rz-render-fields-preview__row:last-child .rz-render-fields-preview__name {
26
+ border-bottom-left-radius: var(--rz-radius-lg);
27
+ }
28
28
  }
@@ -1,64 +1,64 @@
1
1
  <script lang="ts">
2
- import { page } from '$app/state';
3
- import { FieldBuilder, FormFieldBuilder } from '../../../../../core/fields/builders';
4
- import FieldsPreview from '../../../../../panel/components/fields/FieldsPreview.svelte';
5
- import FieldsPreviewTrigger from '../../../../../panel/components/fields/FieldsPreviewTrigger.svelte';
6
- import * as Sheet from '../../../../../panel/components/ui/sheet/index.js';
7
- import { setFormContext } from '../../../../../panel/context/form.svelte';
8
- import { setLocaleContext } from '../../../../../panel/context/locale.svelte';
9
- import type { NodeViewProps } from '@tiptap/core';
10
- import { onMount } from 'svelte';
11
- import NodeViewWrapper from '../../svelte/node-view-wrapper.svelte';
12
- import './fields.css';
2
+ import { page } from '$app/state';
3
+ import { FieldBuilder, FormFieldBuilder } from '../../../../../core/fields/builders';
4
+ import FieldsPreview from '../../../../../panel/components/fields/FieldsPreview.svelte';
5
+ import FieldsPreviewTrigger from '../../../../../panel/components/fields/FieldsPreviewTrigger.svelte';
6
+ import * as Sheet from '../../../../../panel/components/ui/sheet/index.js';
7
+ import { setFormContext } from '../../../../../panel/context/form.svelte';
8
+ import { setLocaleContext } from '../../../../../panel/context/locale.svelte';
9
+ import type { NodeViewProps } from '@tiptap/core';
10
+ import { onMount } from 'svelte';
11
+ import NodeViewWrapper from '../../svelte/node-view-wrapper.svelte';
12
+ import './fields.css';
13
13
 
14
- type Props = Omit<NodeViewProps, 'extension'> & {
15
- extension: {
16
- options: {
17
- fields: FieldBuilder[];
18
- };
19
- };
20
- };
14
+ type Props = Omit<NodeViewProps, 'extension'> & {
15
+ extension: {
16
+ options: {
17
+ fields: FieldBuilder[];
18
+ };
19
+ };
20
+ };
21
21
 
22
- let { node, extension, updateAttributes }: Props = $props();
23
- let isSheetOpen = $state(false);
22
+ let { node, extension, updateAttributes }: Props = $props();
23
+ let isSheetOpen = $state(false);
24
24
 
25
- setLocaleContext(page.data.locale || 'en');
26
- // svelte-ignore state_referenced_locally
27
- const form = setFormContext(node.attrs.json || {}, 'fields');
25
+ setLocaleContext(page.data.locale || 'en');
26
+ // svelte-ignore state_referenced_locally
27
+ const form = setFormContext(node.attrs.json || {}, 'fields');
28
28
 
29
- onMount(() => {
30
- if (!node.attrs.json) {
31
- isSheetOpen = true;
32
- }
33
- });
29
+ onMount(() => {
30
+ if (!node.attrs.json) {
31
+ isSheetOpen = true;
32
+ }
33
+ });
34
34
 
35
- $effect(() => {
36
- if (form.values) {
37
- updateAttributes({
38
- json: form.values
39
- });
40
- }
41
- });
35
+ $effect(() => {
36
+ if (form.values) {
37
+ updateAttributes({
38
+ json: form.values
39
+ });
40
+ }
41
+ });
42
42
 
43
- const previewFields = $derived.by(() => {
44
- return extension.options.fields.filter((field) => field instanceof FormFieldBuilder);
45
- });
43
+ const previewFields = $derived.by(() => {
44
+ return extension.options.fields.filter((field) => field instanceof FormFieldBuilder);
45
+ });
46
46
  </script>
47
47
 
48
48
  <NodeViewWrapper>
49
- <FieldsPreviewTrigger class="rz-rich-text-fields-preview" onclick={() => (isSheetOpen = true)}>
50
- <FieldsPreview
51
- fields={previewFields}
52
- getField={(field) => form.useField(field.name, field.raw)}
53
- />
54
- </FieldsPreviewTrigger>
49
+ <FieldsPreviewTrigger class="rz-rich-text-fields-preview" onclick={() => (isSheetOpen = true)}>
50
+ <FieldsPreview
51
+ fields={previewFields}
52
+ getField={(field) => form.useField(field.name, field.raw)}
53
+ />
54
+ </FieldsPreviewTrigger>
55
55
  </NodeViewWrapper>
56
56
 
57
57
  <Sheet.Root bind:open={isSheetOpen}>
58
- <Sheet.Content side="right" class="rz-rich-text-sheet">
59
- {#each previewFields || [] as field, index (index)}
60
- {@const FieldComponent = field.component}
61
- <FieldComponent path={field.raw.name} config={field.raw} {form} />
62
- {/each}
63
- </Sheet.Content>
58
+ <Sheet.Content side="right" class="rz-rich-text-sheet">
59
+ {#each previewFields || [] as field, index (index)}
60
+ {@const FieldComponent = field.component}
61
+ <FieldComponent path={field.raw.name} config={field.raw} {form} />
62
+ {/each}
63
+ </Sheet.Content>
64
64
  </Sheet.Root>
@@ -1,19 +1,19 @@
1
1
  .ProseMirror > hr:not(.ProseMirror-gapcursor) {
2
- margin-top: 0;
3
- margin-bottom: 0;
4
- padding-top: 0;
5
- background-color: hsl(var(--rz-input-bg));
6
- padding-bottom: 0;
7
- /*border-top-color: none;*/
8
- border-left-color: none;
9
- cursor: pointer;
10
- min-height: var(--rz-size-6);
2
+ margin-top: 0;
3
+ margin-bottom: 0;
4
+ padding-top: 0;
5
+ background-color: hsl(var(--rz-input-bg));
6
+ padding-bottom: 0;
7
+ /*border-top-color: none;*/
8
+ border-left-color: none;
9
+ cursor: pointer;
10
+ min-height: var(--rz-size-6);
11
11
 
12
- box-shadow:
13
- inset 0 0 0px calc(var(--rz-size-3) - 1px) hsl(var(--rz-color-bg)),
14
- 0 2px 0px 0 hsl(var(--rz-color-bg));
12
+ box-shadow:
13
+ inset 0 0 0px calc(var(--rz-size-3) - 1px) hsl(var(--rz-color-bg)),
14
+ 0 2px 0px 0 hsl(var(--rz-color-bg));
15
15
 
16
- &.ProseMirror-selectednode {
17
- background-color: hsl(var(--rz-color-spot));
18
- }
16
+ &.ProseMirror-selectednode {
17
+ background-color: hsl(var(--rz-color-spot));
18
+ }
19
19
  }
@@ -1,4 +1,4 @@
1
1
  .rz-rich-text__editor a {
2
- text-decoration: underline;
3
- text-underline-offset: 3px;
2
+ text-decoration: underline;
3
+ text-underline-offset: 3px;
4
4
  }