@ecsplico/editor 1.0.0 → 2.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 (363) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +7 -7
  3. package/dist/adapters/anchors.d.ts +80 -0
  4. package/dist/adapters/anchors.js +270 -0
  5. package/dist/adapters/anchors.js.map +1 -0
  6. package/dist/adapters/comments/client.d.ts +64 -0
  7. package/dist/adapters/comments/client.js +536 -0
  8. package/dist/adapters/comments/client.js.map +1 -0
  9. package/dist/adapters/comments/drizzle.d.ts +430 -0
  10. package/dist/adapters/comments/drizzle.js +236 -0
  11. package/dist/adapters/comments/drizzle.js.map +1 -0
  12. package/dist/adapters/comments/errors.d.ts +9 -0
  13. package/dist/adapters/comments/errors.js +19 -0
  14. package/dist/adapters/comments/errors.js.map +1 -0
  15. package/dist/adapters/comments/json.d.ts +19 -0
  16. package/dist/adapters/comments/json.js +94 -0
  17. package/dist/adapters/comments/json.js.map +1 -0
  18. package/dist/adapters/comments/record.js +78 -0
  19. package/dist/adapters/comments/record.js.map +1 -0
  20. package/dist/adapters/comments/server.d.ts +23 -0
  21. package/dist/adapters/comments/server.js +102 -0
  22. package/dist/adapters/comments/server.js.map +1 -0
  23. package/dist/adapters/comments/types.d.ts +109 -0
  24. package/dist/adapters/documents.js +108 -0
  25. package/dist/adapters/documents.js.map +1 -0
  26. package/dist/adapters/drizzle.d.ts +293 -0
  27. package/dist/adapters/drizzle.js +157 -0
  28. package/dist/adapters/drizzle.js.map +1 -0
  29. package/dist/adapters/files.js +30 -0
  30. package/dist/adapters/files.js.map +1 -0
  31. package/dist/adapters/forge.d.ts +58 -0
  32. package/dist/adapters/forge.js +91 -0
  33. package/dist/adapters/forge.js.map +1 -0
  34. package/dist/adapters/index.d.ts +13 -0
  35. package/dist/adapters/index.js +0 -0
  36. package/dist/adapters/json.d.ts +24 -0
  37. package/dist/adapters/json.js +128 -0
  38. package/dist/adapters/json.js.map +1 -0
  39. package/dist/adapters/nitro.d.ts +61 -0
  40. package/dist/adapters/nitro.js +212 -0
  41. package/dist/adapters/nitro.js.map +1 -0
  42. package/dist/adapters/routes.js +16 -0
  43. package/dist/adapters/routes.js.map +1 -0
  44. package/dist/adapters/shared.d.ts +37 -0
  45. package/dist/adapters/shared.js +32 -0
  46. package/dist/adapters/shared.js.map +1 -0
  47. package/dist/adapters/vue.d.ts +67 -0
  48. package/dist/adapters/vue.js +187 -0
  49. package/dist/adapters/vue.js.map +1 -0
  50. package/dist/code/CodeSurface.vue.d.ts +3 -3
  51. package/dist/core/doc-anchors.d.ts +5 -0
  52. package/dist/core/doc-anchors.js +4 -3
  53. package/dist/core/doc-anchors.js.map +1 -1
  54. package/dist/core/editor-ui.js +57 -1
  55. package/dist/core/editor-ui.js.map +1 -1
  56. package/dist/core/notify.d.ts +1 -1
  57. package/dist/core/notify.js.map +1 -1
  58. package/dist/core/surface-session.js +139 -0
  59. package/dist/core/surface-session.js.map +1 -0
  60. package/dist/document/DocumentSurface.d.ts +1 -1
  61. package/dist/document/DocumentSurface.vue.d.ts +3 -3
  62. package/dist/features/ai/agent-op-review.d.ts +2 -2
  63. package/dist/features/ai/agent-op-review.js.map +1 -1
  64. package/dist/features/ai/agent-ops.d.ts +1 -1
  65. package/dist/features/ai/agent-ops.js +9 -6
  66. package/dist/features/ai/agent-ops.js.map +1 -1
  67. package/dist/features/ai/ai-apply.d.ts +1 -1
  68. package/dist/features/ai/ai-review.js +10 -1
  69. package/dist/features/ai/ai-review.js.map +1 -1
  70. package/dist/features/ai/components/AiSelectionMenu.js +78 -252
  71. package/dist/features/ai/components/AiSelectionMenu.js.map +1 -1
  72. package/dist/features/ai/components/AiSelectionMenu.vue.d.ts +2 -1
  73. package/dist/features/ai/components/AiSidebar.js +2 -2
  74. package/dist/features/ai/components/DocumentChatAnswer.js +1 -1
  75. package/dist/features/ai/components/DocumentChatOps.js +1 -0
  76. package/dist/features/ai/components/DocumentChatOps.js.map +1 -1
  77. package/dist/features/ai/components/ModelQuickSwitch.js +1 -1
  78. package/dist/features/ai/components/SettingsAiTab.js +1 -1
  79. package/dist/features/ai/components/SettingsModelProfiles.js +1 -1
  80. package/dist/features/ai/document-chat.d.ts +3 -2
  81. package/dist/features/ai/document-chat.js +16 -19
  82. package/dist/features/ai/document-chat.js.map +1 -1
  83. package/dist/features/ai/index.d.ts +5 -3
  84. package/dist/features/ai/index.js +4 -2
  85. package/dist/features/ai/protocol/agent-ops.d.ts +22 -17
  86. package/dist/features/ai/protocol/agent-ops.js +65 -39
  87. package/dist/features/ai/protocol/agent-ops.js.map +1 -1
  88. package/dist/features/ai/protocol/block-lines.d.ts +89 -0
  89. package/dist/features/ai/protocol/block-lines.js +177 -0
  90. package/dist/features/ai/protocol/block-lines.js.map +1 -0
  91. package/dist/features/ai/protocol/chat.js +10 -10
  92. package/dist/features/ai/protocol/chat.js.map +1 -1
  93. package/dist/features/ai/protocol/index.d.ts +3 -2
  94. package/dist/features/ai/protocol/index.js +3 -2
  95. package/dist/features/ai/react/AiSelectionMenu.d.ts +3 -2
  96. package/dist/features/ai/react/AiSelectionMenu.js +64 -255
  97. package/dist/features/ai/react/AiSelectionMenu.js.map +1 -1
  98. package/dist/features/ai/react/AiSidebar.js +2 -2
  99. package/dist/features/ai/react/DocumentChatAnswer.js +1 -1
  100. package/dist/features/ai/react/DocumentChatOps.js +1 -0
  101. package/dist/features/ai/react/DocumentChatOps.js.map +1 -1
  102. package/dist/features/ai/react/ModelQuickSwitch.js +1 -1
  103. package/dist/features/ai/react/SettingsAiTab.js +1 -1
  104. package/dist/features/ai/react/SettingsModelProfiles.js +1 -1
  105. package/dist/features/ai/react/use-ai-selection-flow.js +34 -0
  106. package/dist/features/ai/react/use-ai-selection-flow.js.map +1 -0
  107. package/dist/features/ai/selection-flow.d.ts +133 -0
  108. package/dist/features/ai/selection-flow.js +283 -0
  109. package/dist/features/ai/selection-flow.js.map +1 -0
  110. package/dist/features/ai/use-ai-assistant.d.ts +1 -1
  111. package/dist/features/ai/use-document-chat.d.ts +1 -1
  112. package/dist/features/authors/components/AuthorColorsPanel.js +1 -1
  113. package/dist/features/authors/feature.js +1 -1
  114. package/dist/features/authors/index.js +1 -1
  115. package/dist/features/authors/react/AuthorColorsPanel.js +1 -1
  116. package/dist/features/comments/components/CommentBubble.js +1 -1
  117. package/dist/features/comments/components/CommentComposer.js +1 -1
  118. package/dist/features/comments/components/CommentThreadView.js +5 -2
  119. package/dist/features/comments/components/CommentThreadView.js.map +1 -1
  120. package/dist/features/comments/components/CommentsMargin.js +108 -230
  121. package/dist/features/comments/components/CommentsMargin.js.map +1 -1
  122. package/dist/features/comments/components/CommentsOverlay.js +1 -1
  123. package/dist/features/comments/feature.js +1 -1
  124. package/dist/features/comments/index.d.ts +4 -2
  125. package/dist/features/comments/index.js +4 -2
  126. package/dist/features/comments/margin-controller.d.ts +44 -0
  127. package/dist/features/comments/margin-controller.js +132 -0
  128. package/dist/features/comments/margin-controller.js.map +1 -0
  129. package/dist/features/comments/margin-layout.d.ts +55 -0
  130. package/dist/features/comments/margin-layout.js +79 -0
  131. package/dist/features/comments/margin-layout.js.map +1 -0
  132. package/dist/features/comments/model.d.ts +8 -0
  133. package/dist/features/comments/model.js +60 -34
  134. package/dist/features/comments/model.js.map +1 -1
  135. package/dist/features/comments/react/CommentBubble.js +1 -1
  136. package/dist/features/comments/react/CommentComposer.js +1 -1
  137. package/dist/features/comments/react/CommentThreadView.js +2 -2
  138. package/dist/features/comments/react/CommentThreadView.js.map +1 -1
  139. package/dist/features/comments/react/CommentsMargin.d.ts +0 -5
  140. package/dist/features/comments/react/CommentsMargin.js +85 -251
  141. package/dist/features/comments/react/CommentsMargin.js.map +1 -1
  142. package/dist/features/comments/react/CommentsOverlay.js +1 -1
  143. package/dist/features/comments/react/use-comments.js +1 -1
  144. package/dist/features/comments/react/use-margin-layout.js +45 -0
  145. package/dist/features/comments/react/use-margin-layout.js.map +1 -0
  146. package/dist/features/comments/react.d.ts +1 -1
  147. package/dist/features/comments/schema.d.ts +23 -0
  148. package/dist/features/comments/schema.js.map +1 -1
  149. package/dist/features/comments/snapshot-equality.js +40 -0
  150. package/dist/features/comments/snapshot-equality.js.map +1 -0
  151. package/dist/features/comments/thread-anchor.js +33 -0
  152. package/dist/features/comments/thread-anchor.js.map +1 -0
  153. package/dist/features/comments/use-comments.d.ts +3 -1
  154. package/dist/features/comments/use-comments.js +1 -0
  155. package/dist/features/comments/use-comments.js.map +1 -1
  156. package/dist/features/comments/use-margin-layout.js +29 -0
  157. package/dist/features/comments/use-margin-layout.js.map +1 -0
  158. package/dist/features/comments/vue.d.ts +1 -1
  159. package/dist/features/composites/accepted-children.d.ts +21 -0
  160. package/dist/features/composites/accepted-children.js +126 -0
  161. package/dist/features/composites/accepted-children.js.map +1 -0
  162. package/dist/features/composites/components/CompositeDetails.js +1 -1
  163. package/dist/features/composites/components/CompositeInspector.js +38 -164
  164. package/dist/features/composites/components/CompositeInspector.js.map +1 -1
  165. package/dist/features/composites/feature.d.ts +2 -1
  166. package/dist/features/composites/feature.js +8 -2
  167. package/dist/features/composites/feature.js.map +1 -1
  168. package/dist/features/composites/index.d.ts +5 -3
  169. package/dist/features/composites/index.js +8 -6
  170. package/dist/features/composites/inspector-model.d.ts +97 -0
  171. package/dist/features/composites/inspector-model.js +255 -0
  172. package/dist/features/composites/inspector-model.js.map +1 -0
  173. package/dist/features/composites/kinds.d.ts +11 -0
  174. package/dist/features/composites/kinds.js +17 -2
  175. package/dist/features/composites/kinds.js.map +1 -1
  176. package/dist/features/composites/outline.d.ts +18 -5
  177. package/dist/features/composites/outline.js +44 -12
  178. package/dist/features/composites/outline.js.map +1 -1
  179. package/dist/features/composites/react/CompositeDetails.js +1 -1
  180. package/dist/features/composites/react/CompositeInspector.d.ts +1 -1
  181. package/dist/features/composites/react/CompositeInspector.js +21 -180
  182. package/dist/features/composites/react/CompositeInspector.js.map +1 -1
  183. package/dist/features/composites/react/CompositeStatusMenu.d.ts +1 -1
  184. package/dist/features/composites/react/CompositeView.js +1 -1
  185. package/dist/features/composites/react/use-composite-inspector.js +29 -0
  186. package/dist/features/composites/react/use-composite-inspector.js.map +1 -0
  187. package/dist/features/composites/schema.d.ts +2 -2
  188. package/dist/features/composites/schema.js +2 -2
  189. package/dist/features/composites/schema.js.map +1 -1
  190. package/dist/features/composites/use-composite-anchors.d.ts +1 -1
  191. package/dist/features/composites/use-composite-inspector.js +41 -0
  192. package/dist/features/composites/use-composite-inspector.js.map +1 -0
  193. package/dist/features/composites/use-composite-rows.d.ts +1 -1
  194. package/dist/features/media/index.d.ts +1 -1
  195. package/dist/features/media/vue.d.ts +1 -1
  196. package/dist/features/mentions/index.d.ts +3 -3
  197. package/dist/features/mentions/index.js +3 -3
  198. package/dist/features/mentions/schema.d.ts +1 -1
  199. package/dist/features/mentions/schema.js +1 -1
  200. package/dist/features/themes/index.d.ts +1 -1
  201. package/dist/features/themes/index.js +1 -1
  202. package/dist/features/transcript/feature.js +1 -1
  203. package/dist/features/transcript/index.js +2 -2
  204. package/dist/i18n/de/ai.js +2 -0
  205. package/dist/i18n/de/ai.js.map +1 -1
  206. package/dist/i18n/de/common.js +1 -2
  207. package/dist/i18n/de/common.js.map +1 -1
  208. package/dist/i18n/de/composites.js +8 -1
  209. package/dist/i18n/de/composites.js.map +1 -1
  210. package/dist/i18n/de/tree.js +14 -1
  211. package/dist/i18n/de/tree.js.map +1 -1
  212. package/dist/i18n/de.d.ts +22 -1
  213. package/dist/i18n/en/ai.js +2 -0
  214. package/dist/i18n/en/ai.js.map +1 -1
  215. package/dist/i18n/en/common.js +1 -2
  216. package/dist/i18n/en/common.js.map +1 -1
  217. package/dist/i18n/en/composites.js +8 -1
  218. package/dist/i18n/en/composites.js.map +1 -1
  219. package/dist/i18n/en/tree.js +14 -1
  220. package/dist/i18n/en/tree.js.map +1 -1
  221. package/dist/integrations/composite-ai/composite-fill.js +2 -2
  222. package/dist/integrations/composite-ai/composite-summary.js +2 -2
  223. package/dist/integrations/composite-ai/index.js +2 -2
  224. package/dist/integrations/transcript-ai/transcript-cleanup.js +1 -1
  225. package/dist/markdown/MarkdownSurface.d.ts +1 -1
  226. package/dist/markdown/MarkdownSurface.js +2 -2
  227. package/dist/markdown/MarkdownSurface.vue.d.ts +7 -7
  228. package/dist/markdown/index.d.ts +2 -2
  229. package/dist/nuxt/module.d.ts +0 -6
  230. package/dist/nuxt/module.js +3 -5
  231. package/dist/nuxt/module.js.map +1 -1
  232. package/dist/nuxt/runtime/install-context.d.ts +2 -3
  233. package/dist/nuxt/runtime/install-context.js +2 -3
  234. package/dist/nuxt/runtime/install-context.js.map +1 -1
  235. package/dist/nuxt/runtime/plugins/editor-context-nuxt-ui.client.ts +1 -1
  236. package/dist/nuxt/runtime/server/routes/collab/[id].js +1 -1
  237. package/dist/react/EditorSurface.d.ts +1 -1
  238. package/dist/react/EditorSurface.js +43 -149
  239. package/dist/react/EditorSurface.js.map +1 -1
  240. package/dist/react/EditorToolbar.js +3 -40
  241. package/dist/react/EditorToolbar.js.map +1 -1
  242. package/dist/react/styles/ui-vars.css +2 -2
  243. package/dist/schema/advanced.js +2 -2
  244. package/dist/server/adapter.d.ts +2 -2
  245. package/dist/server/collab.js +1 -1
  246. package/dist/server/handlers/ai.d.ts +4 -2
  247. package/dist/server/handlers/ai.js +11 -9
  248. package/dist/server/handlers/ai.js.map +1 -1
  249. package/dist/server/handlers/context.d.ts +1 -1
  250. package/dist/server/handlers/editor.d.ts +1 -1
  251. package/dist/server/handlers/editor.js +2 -2
  252. package/dist/server/host.d.ts +1 -1
  253. package/dist/server/index.d.ts +2 -2
  254. package/dist/settings/index.d.ts +1 -1
  255. package/dist/styles/ai.css +1 -1
  256. package/dist/styles/authors.css +1 -1
  257. package/dist/styles/block-ui.css +1 -1
  258. package/dist/styles/collab.css +1 -1
  259. package/dist/styles/comments.css +1 -1
  260. package/dist/styles/core.css +2 -2
  261. package/dist/styles/media.css +1 -1
  262. package/dist/styles/mentions.css +1 -1
  263. package/dist/styles/themes.css +1 -1
  264. package/dist/styles/tokens.css +1 -1
  265. package/dist/styles/transcript.css +1 -1
  266. package/dist/tree/DocumentTree.js +159 -387
  267. package/dist/tree/DocumentTree.js.map +1 -1
  268. package/dist/tree/drop-rules.js +37 -0
  269. package/dist/tree/drop-rules.js.map +1 -0
  270. package/dist/tree/react/DocumentTree.d.ts +2 -2
  271. package/dist/tree/react/DocumentTree.js +135 -397
  272. package/dist/tree/react/DocumentTree.js.map +1 -1
  273. package/dist/tree/react/use-tree-model.js +129 -0
  274. package/dist/tree/react/use-tree-model.js.map +1 -0
  275. package/dist/tree/react.js +1 -1
  276. package/dist/tree/tree-host.js +100 -0
  277. package/dist/tree/tree-host.js.map +1 -0
  278. package/dist/tree/tree-items.js +22 -43
  279. package/dist/tree/tree-items.js.map +1 -1
  280. package/dist/tree/tree-model.js +580 -0
  281. package/dist/tree/tree-model.js.map +1 -0
  282. package/dist/tree/tree-rows.js +77 -0
  283. package/dist/tree/tree-rows.js.map +1 -0
  284. package/dist/tree/use-tree-model.js +94 -0
  285. package/dist/tree/use-tree-model.js.map +1 -0
  286. package/dist/tree/vue.js +1 -1
  287. package/dist/vue/AdvancedEditor.vue.d.ts +4 -4
  288. package/dist/vue/SimpleEditor.vue.d.ts +2 -2
  289. package/dist/vue/components/EditorSurface.js +27 -87
  290. package/dist/vue/components/EditorSurface.js.map +1 -1
  291. package/dist/vue/components/EditorSurface.vue.d.ts +4 -4
  292. package/dist/vue/components/EditorToolbar.js +7 -44
  293. package/dist/vue/components/EditorToolbar.js.map +1 -1
  294. package/dist/vue/context.d.ts +4 -4
  295. package/dist/vue/context.js +3 -2
  296. package/dist/vue/context.js.map +1 -1
  297. package/dist/vue/kit/types.d.ts +1 -1
  298. package/dist/vue/kit/use-ui-kit.d.ts +2 -2
  299. package/dist/vue/kit/use-ui-kit.js +3 -3
  300. package/dist/vue/kit/use-ui-kit.js.map +1 -1
  301. package/dist/vue/use-editor-ui.d.ts +1 -1
  302. package/dist/vue/use-notifier.d.ts +1 -1
  303. package/docs/integration.md +98 -5
  304. package/docs/llms.md +10 -2
  305. package/docs/usage.md +10 -5
  306. package/package.json +70 -23
  307. package/dist/nuxt/runtime/plugins/editor-context-primevue.client.ts +0 -8
  308. package/dist/vue/kit/primevue/Alert.js +0 -49
  309. package/dist/vue/kit/primevue/Alert.js.map +0 -1
  310. package/dist/vue/kit/primevue/Avatar.js +0 -54
  311. package/dist/vue/kit/primevue/Avatar.js.map +0 -1
  312. package/dist/vue/kit/primevue/Badge.js +0 -41
  313. package/dist/vue/kit/primevue/Badge.js.map +0 -1
  314. package/dist/vue/kit/primevue/Button.js +0 -112
  315. package/dist/vue/kit/primevue/Button.js.map +0 -1
  316. package/dist/vue/kit/primevue/Chip.js +0 -38
  317. package/dist/vue/kit/primevue/Chip.js.map +0 -1
  318. package/dist/vue/kit/primevue/DropdownMenu.js +0 -98
  319. package/dist/vue/kit/primevue/DropdownMenu.js.map +0 -1
  320. package/dist/vue/kit/primevue/FieldGroup.js +0 -22
  321. package/dist/vue/kit/primevue/FieldGroup.js.map +0 -1
  322. package/dist/vue/kit/primevue/FormField.js +0 -56
  323. package/dist/vue/kit/primevue/FormField.js.map +0 -1
  324. package/dist/vue/kit/primevue/Icon.js +0 -23
  325. package/dist/vue/kit/primevue/Icon.js.map +0 -1
  326. package/dist/vue/kit/primevue/Input.js +0 -96
  327. package/dist/vue/kit/primevue/Input.js.map +0 -1
  328. package/dist/vue/kit/primevue/InputMenu.js +0 -122
  329. package/dist/vue/kit/primevue/InputMenu.js.map +0 -1
  330. package/dist/vue/kit/primevue/Modal.js +0 -59
  331. package/dist/vue/kit/primevue/Modal.js.map +0 -1
  332. package/dist/vue/kit/primevue/Popover.js +0 -135
  333. package/dist/vue/kit/primevue/Popover.js.map +0 -1
  334. package/dist/vue/kit/primevue/RadioGroup.js +0 -58
  335. package/dist/vue/kit/primevue/RadioGroup.js.map +0 -1
  336. package/dist/vue/kit/primevue/Select.js +0 -68
  337. package/dist/vue/kit/primevue/Select.js.map +0 -1
  338. package/dist/vue/kit/primevue/SelectMenu.js +0 -94
  339. package/dist/vue/kit/primevue/SelectMenu.js.map +0 -1
  340. package/dist/vue/kit/primevue/Separator.js +0 -16
  341. package/dist/vue/kit/primevue/Separator.js.map +0 -1
  342. package/dist/vue/kit/primevue/Switch.js +0 -46
  343. package/dist/vue/kit/primevue/Switch.js.map +0 -1
  344. package/dist/vue/kit/primevue/Table.js +0 -54
  345. package/dist/vue/kit/primevue/Table.js.map +0 -1
  346. package/dist/vue/kit/primevue/Tabs.js +0 -49
  347. package/dist/vue/kit/primevue/Tabs.js.map +0 -1
  348. package/dist/vue/kit/primevue/Textarea.js +0 -55
  349. package/dist/vue/kit/primevue/Textarea.js.map +0 -1
  350. package/dist/vue/kit/primevue/Tooltip.js +0 -43
  351. package/dist/vue/kit/primevue/Tooltip.js.map +0 -1
  352. package/dist/vue/kit/primevue/Tree.js +0 -75
  353. package/dist/vue/kit/primevue/Tree.js.map +0 -1
  354. package/dist/vue/kit/primevue/select-options.js +0 -55
  355. package/dist/vue/kit/primevue/select-options.js.map +0 -1
  356. package/dist/vue/kit/primevue/shared.js +0 -49
  357. package/dist/vue/kit/primevue/shared.js.map +0 -1
  358. package/dist/vue/kit/primevue/trigger.js +0 -25
  359. package/dist/vue/kit/primevue/trigger.js.map +0 -1
  360. package/dist/vue/kit/primevue.css +0 -86
  361. package/dist/vue/kit/primevue.d.ts +0 -33
  362. package/dist/vue/kit/primevue.js +0 -96
  363. package/dist/vue/kit/primevue.js.map +0 -1
package/package.json CHANGED
@@ -1,20 +1,21 @@
1
1
  {
2
2
  "name": "@ecsplico/editor",
3
- "version": "1.0.0",
3
+ "version": "2.1.0",
4
4
  "type": "module",
5
- "description": "Vue and React editor library on TipTap v3 (Vue UI kits: Nuxt UI and PrimeVue; React: shadcn/ui): framework-free features with Vue and React bindings, simple and advanced presets, tree-shakeable entries. Built ESM with type declarations.",
5
+ "description": "Vue and React editor library on TipTap v3 (Vue: Nuxt UI; React: shadcn/ui): framework-free features with Vue and React bindings, simple and advanced presets, tree-shakeable entries. Built ESM with type declarations.",
6
6
  "license": "MIT",
7
7
  "repository": {
8
8
  "type": "git",
9
- "url": "git+https://github.com/skaile-ai/editor.git",
9
+ "url": "git+https://github.com/skaile-ai/skaile-editor.git",
10
10
  "directory": "packages/editor"
11
11
  },
12
- "homepage": "https://github.com/skaile-ai/editor/tree/main/packages/editor#readme",
13
- "bugs": "https://github.com/skaile-ai/editor/issues",
12
+ "homepage": "https://github.com/skaile-ai/skaile-editor/tree/main/packages/editor#readme",
13
+ "bugs": "https://github.com/skaile-ai/skaile-editor/issues",
14
14
  "files": [
15
15
  "dist",
16
16
  "docs",
17
- "README.md"
17
+ "README.md",
18
+ "CHANGELOG.md"
18
19
  ],
19
20
  "publishConfig": {
20
21
  "access": "public"
@@ -61,11 +62,6 @@
61
62
  "types": "./dist/vue/kit/nuxt-ui.d.ts",
62
63
  "import": "./dist/vue/kit/nuxt-ui.js"
63
64
  },
64
- "./vue/kit/primevue": {
65
- "skaile-source": "./src/vue/kit/primevue.ts",
66
- "types": "./dist/vue/kit/primevue.d.ts",
67
- "import": "./dist/vue/kit/primevue.js"
68
- },
69
65
  "./vue/simple": {
70
66
  "skaile-source": "./src/vue/simple.ts",
71
67
  "types": "./dist/vue/simple.d.ts",
@@ -299,6 +295,56 @@
299
295
  "types": "./dist/features/comments/schema.d.ts",
300
296
  "import": "./dist/features/comments/schema.js"
301
297
  },
298
+ "./adapters": {
299
+ "skaile-source": "./src/adapters/index.ts",
300
+ "types": "./dist/adapters/index.d.ts",
301
+ "import": "./dist/adapters/index.js"
302
+ },
303
+ "./adapters/json": {
304
+ "skaile-source": "./src/adapters/json.ts",
305
+ "types": "./dist/adapters/json.d.ts",
306
+ "import": "./dist/adapters/json.js"
307
+ },
308
+ "./adapters/drizzle": {
309
+ "skaile-source": "./src/adapters/drizzle.ts",
310
+ "types": "./dist/adapters/drizzle.d.ts",
311
+ "import": "./dist/adapters/drizzle.js"
312
+ },
313
+ "./adapters/forge": {
314
+ "skaile-source": "./src/adapters/forge.ts",
315
+ "types": "./dist/adapters/forge.d.ts",
316
+ "import": "./dist/adapters/forge.js"
317
+ },
318
+ "./adapters/vue": {
319
+ "skaile-source": "./src/adapters/vue.ts",
320
+ "types": "./dist/adapters/vue.d.ts",
321
+ "import": "./dist/adapters/vue.js"
322
+ },
323
+ "./anchors": {
324
+ "skaile-source": "./src/adapters/anchors.ts",
325
+ "types": "./dist/adapters/anchors.d.ts",
326
+ "import": "./dist/adapters/anchors.js"
327
+ },
328
+ "./comments/server": {
329
+ "skaile-source": "./src/adapters/comments/server.ts",
330
+ "types": "./dist/adapters/comments/server.d.ts",
331
+ "import": "./dist/adapters/comments/server.js"
332
+ },
333
+ "./comments/json": {
334
+ "skaile-source": "./src/adapters/comments/json.ts",
335
+ "types": "./dist/adapters/comments/json.d.ts",
336
+ "import": "./dist/adapters/comments/json.js"
337
+ },
338
+ "./comments/drizzle": {
339
+ "skaile-source": "./src/adapters/comments/drizzle.ts",
340
+ "types": "./dist/adapters/comments/drizzle.d.ts",
341
+ "import": "./dist/adapters/comments/drizzle.js"
342
+ },
343
+ "./comments/client": {
344
+ "skaile-source": "./src/adapters/comments/client.ts",
345
+ "types": "./dist/adapters/comments/client.d.ts",
346
+ "import": "./dist/adapters/comments/client.js"
347
+ },
302
348
  "./transcript": {
303
349
  "skaile-source": "./src/features/transcript/index.ts",
304
350
  "types": "./dist/features/transcript/index.d.ts",
@@ -424,6 +470,11 @@
424
470
  "types": "./dist/server/node.d.ts",
425
471
  "import": "./dist/server/node.js"
426
472
  },
473
+ "./server/nitro": {
474
+ "skaile-source": "./src/adapters/nitro.ts",
475
+ "types": "./dist/adapters/nitro.d.ts",
476
+ "import": "./dist/adapters/nitro.js"
477
+ },
427
478
  "./nuxt": {
428
479
  "skaile-source": "./src/nuxt/module.ts",
429
480
  "types": "./dist/nuxt/module.d.ts",
@@ -484,10 +535,6 @@
484
535
  "./vue/kit/nuxt-ui.css": {
485
536
  "skaile-source": "./src/vue/kit/nuxt-ui.css",
486
537
  "default": "./dist/vue/kit/nuxt-ui.css"
487
- },
488
- "./vue/kit/primevue.css": {
489
- "skaile-source": "./src/vue/kit/primevue.css",
490
- "default": "./dist/vue/kit/primevue.css"
491
538
  }
492
539
  },
493
540
  "peerDependencies": {
@@ -505,10 +552,10 @@
505
552
  "@tiptap/pm": "^3.31.3",
506
553
  "@tiptap/react": "^3.31.3",
507
554
  "@tiptap/vue-3": "^3.31.3",
555
+ "drizzle-orm": "^0.45.0",
508
556
  "h3": "^1.15.0",
509
557
  "nitropack": "^2.13.0",
510
558
  "nuxt": "^4.5.2",
511
- "primevue": "^5.0.2",
512
559
  "react": "^19.3.0",
513
560
  "react-dom": "^19.3.0",
514
561
  "vue": "^3.5.42",
@@ -560,22 +607,22 @@
560
607
  "@iconify/react": "^6.0.2",
561
608
  "@iconify/vue": "^5.0.3",
562
609
  "@lezer/highlight": "^1.2.1",
563
- "@primeuix/themes": "^3.0.1",
564
- "@tailwindcss/vite": "4.3.3",
565
610
  "@tiptap/react": "3.31.3",
566
611
  "@types/react": "^19.3.0",
567
612
  "@types/react-dom": "^19.3.0",
613
+ "@types/ws": "^8.18.2",
568
614
  "@vitejs/plugin-react": "^6.1.2",
569
615
  "@vitejs/plugin-vue": "^6.0.9",
616
+ "drizzle-orm": "^0.45.4",
570
617
  "h3": "^1.15.11",
571
618
  "nitropack": "^2.13.4",
572
- "primevue": "^5.0.2",
573
619
  "react": "^19.3.0",
574
620
  "react-dom": "^19.3.0",
575
621
  "tailwindcss": "^4.3.3",
576
622
  "tsdown": "^0.23.1",
577
623
  "unplugin-vue": "^8.0.0",
578
- "vite": "^8.3.1"
624
+ "vite": "^8.3.1",
625
+ "ws": "^8.18.3"
579
626
  },
580
627
  "peerDependenciesMeta": {
581
628
  "@iconify/react": {
@@ -593,6 +640,9 @@
593
640
  "@tiptap/vue-3": {
594
641
  "optional": true
595
642
  },
643
+ "drizzle-orm": {
644
+ "optional": true
645
+ },
596
646
  "h3": {
597
647
  "optional": true
598
648
  },
@@ -602,9 +652,6 @@
602
652
  "nuxt": {
603
653
  "optional": true
604
654
  },
605
- "primevue": {
606
- "optional": true
607
- },
608
655
  "react": {
609
656
  "optional": true
610
657
  },
@@ -1,8 +0,0 @@
1
- import { primeVueKit } from '../../../vue/kit/primevue'
2
- import { installEditorContext } from '../install-context'
3
- import { defineNuxtPlugin } from '#app'
4
-
5
- // Registered by the module for `kit: 'primevue'`; see `install-context.ts`.
6
- export default defineNuxtPlugin((nuxtApp) => {
7
- installEditorContext(nuxtApp, primeVueKit())
8
- })
@@ -1,49 +0,0 @@
1
- import { severityOf } from "./shared.js";
2
- import _sfc_main$1 from "./Icon.js";
3
- import { createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createVNode, defineComponent, openBlock, renderSlot, toDisplayString, unref, withCtx } from "vue";
4
- import PMessage from "primevue/message";
5
- //#region src/vue/kit/primevue/Alert.vue
6
- const _hoisted_1 = { class: "flex min-w-0 flex-col gap-0.5" };
7
- const _hoisted_2 = {
8
- key: 0,
9
- class: "font-medium"
10
- };
11
- const _hoisted_3 = {
12
- key: 1,
13
- class: "text-sm"
14
- };
15
- const _sfc_main = /*@__PURE__*/ defineComponent({
16
- __name: "Alert",
17
- props: {
18
- title: {},
19
- description: {},
20
- icon: {},
21
- color: {},
22
- variant: {}
23
- },
24
- setup(__props) {
25
- return (_ctx, _cache) => {
26
- return openBlock(), createBlock(unref(PMessage), {
27
- severity: unref(severityOf)(__props.color) ?? "info",
28
- variant: __props.variant === "outline" || __props.variant === "subtle" ? "outlined" : void 0,
29
- closable: false,
30
- role: "alert"
31
- }, createSlots({
32
- default: withCtx(() => [createElementVNode("div", _hoisted_1, [
33
- __props.title ? (openBlock(), createElementBlock("span", _hoisted_2, toDisplayString(__props.title), 1)) : createCommentVNode("v-if", true),
34
- __props.description ? (openBlock(), createElementBlock("span", _hoisted_3, toDisplayString(__props.description), 1)) : createCommentVNode("v-if", true),
35
- renderSlot(_ctx.$slots, "default")
36
- ])]),
37
- _: 2
38
- }, [__props.icon ? {
39
- name: "icon",
40
- fn: withCtx(() => [createVNode(_sfc_main$1, { name: __props.icon }, null, 8, ["name"])]),
41
- key: "0"
42
- } : void 0]), 1032, ["severity", "variant"]);
43
- };
44
- }
45
- });
46
- //#endregion
47
- export { _sfc_main as default };
48
-
49
- //# sourceMappingURL=Alert.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Alert.js","names":["_openBlock","_createBlock","_unref","_createSlots","_withCtx","_createElementVNode","_createElementBlock","_toDisplayString","_createCommentVNode","_renderSlot","_createVNode","Icon"],"sources":["../../../../src/vue/kit/primevue/Alert.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport PMessage from 'primevue/message'\nimport type { AlertProps } from '../types'\nimport Icon from './Icon.vue'\nimport { severityOf } from './shared'\n\ndefineProps<AlertProps>()\n</script>\n\n<template>\n <PMessage :severity=\"severityOf(color) ?? 'info'\" :variant=\"variant === 'outline' || variant === 'subtle' ? 'outlined' : undefined\" :closable=\"false\" role=\"alert\">\n <template v-if=\"icon\" #icon>\n <Icon :name=\"icon\" />\n </template>\n <div class=\"flex min-w-0 flex-col gap-0.5\">\n <span v-if=\"title\" class=\"font-medium\">{{ title }}</span>\n <span v-if=\"description\" class=\"text-sm\">{{ description }}</span>\n <slot />\n </div>\n </PMessage>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;GAUE,OAAAA,UAAA,GAAAC,YASWC,MAAA,QAAA,GAAA;IATA,UAAUA,MAAA,UAAA,CAAU,CAAC,QAAA,KAAK,KAAA;IAAc,SAAS,QAAA,YAAO,aAAkB,QAAA,YAAO,WAAA,aAA6B,KAAA;IAAY,UAAU;IAAO,MAAK;;IAIzJ,SAAAE,cAIM,CAJNC,mBAIM,OAJN,YAIM;KAHQ,QAAA,SAAZL,UAAA,GAAAM,mBAAyD,QAAzD,YAAyDC,gBAAf,QAAA,KAAK,GAAA,CAAA,KAAAC,mBAAA,QAAA,IAAA;KACnC,QAAA,eAAZR,UAAA,GAAAM,mBAAiE,QAAjE,YAAiEC,gBAArB,QAAA,WAAW,GAAA,CAAA,KAAAC,mBAAA,QAAA,IAAA;KACvDC,WAAQ,KAAA,QAAA,SAAA;;;GANM,GAAA,CAAA,QAAA,OAAA;IAAO,MAAA;IACrB,IAAAL,cAAqB,CAArBM,YAAqBC,aAAA,EAAd,MAAM,QAAA,KAAI,GAAA,MAAA,GAAA,CAAA,MAAA,CAAA,CAAA,CAAA"}
@@ -1,54 +0,0 @@
1
- import { computed, createBlock, defineComponent, normalizeStyle, openBlock, unref } from "vue";
2
- import PAvatar from "primevue/avatar";
3
- //#region src/vue/kit/primevue/Avatar.vue
4
- const _sfc_main = /*@__PURE__*/ defineComponent({
5
- __name: "Avatar",
6
- props: {
7
- src: {},
8
- alt: {},
9
- text: {},
10
- size: {}
11
- },
12
- setup(__props) {
13
- const props = __props;
14
- const SIZES = {
15
- "3xs": 1,
16
- "2xs": 1.25,
17
- "xs": 1.5,
18
- "sm": 1.75,
19
- "md": 2,
20
- "lg": 2.25,
21
- "xl": 2.5,
22
- "2xl": 3,
23
- "3xl": 3.5
24
- };
25
- const style = computed(() => {
26
- const rem = SIZES[props.size ?? "md"];
27
- return {
28
- width: `${rem}rem`,
29
- height: `${rem}rem`,
30
- fontSize: `${rem * .4}rem`
31
- };
32
- });
33
- return (_ctx, _cache) => {
34
- return openBlock(), createBlock(unref(PAvatar), {
35
- image: __props.src,
36
- label: __props.src ? void 0 : __props.text,
37
- shape: "circle",
38
- style: normalizeStyle(style.value),
39
- "aria-label": __props.alt,
40
- title: __props.alt
41
- }, null, 8, [
42
- "image",
43
- "label",
44
- "style",
45
- "aria-label",
46
- "title"
47
- ]);
48
- };
49
- }
50
- });
51
- //#endregion
52
- export { _sfc_main as default };
53
-
54
- //# sourceMappingURL=Avatar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Avatar.js","names":["_openBlock","_createBlock","_unref","_normalizeStyle"],"sources":["../../../../src/vue/kit/primevue/Avatar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport PAvatar from 'primevue/avatar'\nimport { computed } from 'vue'\nimport type { AvatarProps, KitSize } from '../types'\n\nconst props = defineProps<AvatarProps>()\n\nconst SIZES: Record<KitSize, number> = { '3xs': 1, '2xs': 1.25, 'xs': 1.5, 'sm': 1.75, 'md': 2, 'lg': 2.25, 'xl': 2.5, '2xl': 3, '3xl': 3.5 }\nconst style = computed(() => {\n const rem = SIZES[props.size ?? 'md']\n return { width: `${rem}rem`, height: `${rem}rem`, fontSize: `${rem * 0.4}rem` }\n})\n</script>\n\n<template>\n <PAvatar :image=\"src\" :label=\"src ? undefined : text\" shape=\"circle\" :style=\"style\" :aria-label=\"alt\" :title=\"alt\" />\n</template>\n"],"mappings":";;;;;;;;;;;;EAKA,MAAM,QAAQ;EAEd,MAAM,QAAiC;GAAE,OAAO;GAAG,OAAO;GAAM,MAAM;GAAK,MAAM;GAAM,MAAM;GAAG,MAAM;GAAM,MAAM;GAAK,OAAO;GAAG,OAAO;EAAI;EAC5I,MAAM,QAAQ,eAAe;GAC3B,MAAM,MAAM,MAAM,MAAM,QAAQ;GAChC,OAAO;IAAE,OAAO,GAAG,IAAI;IAAM,QAAQ,GAAG,IAAI;IAAM,UAAU,GAAG,MAAM,GAAI;GAAK;EAChF,CAAC;;GAIC,OAAAA,UAAA,GAAAC,YAAqHC,MAAA,OAAA,GAAA;IAA3G,OAAO,QAAA;IAAM,OAAO,QAAA,MAAM,KAAA,IAAY,QAAA;IAAM,OAAM;IAAU,OAAKC,eAAE,MAAA,KAAK;IAAG,cAAY,QAAA;IAAM,OAAO,QAAA"}
@@ -1,41 +0,0 @@
1
- import { severityOf } from "./shared.js";
2
- import _sfc_main$1 from "./Icon.js";
3
- import { createBlock, createCommentVNode, createTextVNode, defineComponent, normalizeClass, openBlock, renderSlot, toDisplayString, unref, withCtx } from "vue";
4
- import PTag from "primevue/tag";
5
- //#region src/vue/kit/primevue/Badge.vue
6
- const _sfc_main = /*@__PURE__*/ defineComponent({
7
- __name: "Badge",
8
- props: {
9
- label: {},
10
- icon: {},
11
- color: {},
12
- variant: {},
13
- size: {}
14
- },
15
- setup(__props) {
16
- return (_ctx, _cache) => {
17
- return openBlock(), createBlock(unref(PTag), {
18
- severity: unref(severityOf)(__props.color),
19
- class: normalizeClass([
20
- __props.variant && __props.variant !== "solid" && "sk-tinted",
21
- __props.variant === "outline" && "sk-outline",
22
- __props.size && [
23
- "3xs",
24
- "2xs",
25
- "xs"
26
- ].includes(__props.size) && "sk-dense"
27
- ])
28
- }, {
29
- default: withCtx(() => [__props.icon ? (openBlock(), createBlock(_sfc_main$1, {
30
- key: 0,
31
- name: __props.icon
32
- }, null, 8, ["name"])) : createCommentVNode("v-if", true), renderSlot(_ctx.$slots, "default", {}, () => [createTextVNode(toDisplayString(__props.label), 1)])]),
33
- _: 3
34
- }, 8, ["severity", "class"]);
35
- };
36
- }
37
- });
38
- //#endregion
39
- export { _sfc_main as default };
40
-
41
- //# sourceMappingURL=Badge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Badge.js","names":["_openBlock","_createBlock","_unref","_normalizeClass","_withCtx","Icon","_createCommentVNode","_renderSlot","_createTextVNode","_toDisplayString"],"sources":["../../../../src/vue/kit/primevue/Badge.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport PTag from 'primevue/tag'\nimport type { BadgeProps } from '../types'\nimport Icon from './Icon.vue'\nimport { severityOf } from './shared'\n\ndefineProps<BadgeProps>()\n</script>\n\n<template>\n <PTag\n :severity=\"severityOf(color)\"\n :class=\"[variant && variant !== 'solid' && 'sk-tinted', variant === 'outline' && 'sk-outline', size && ['3xs', '2xs', 'xs'].includes(size) && 'sk-dense']\"\n >\n <Icon v-if=\"icon\" :name=\"icon\" />\n <slot>{{ label }}</slot>\n </PTag>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;GAUE,OAAAA,UAAA,GAAAC,YAMOC,MAAA,IAAA,GAAA;IALJ,UAAUA,MAAA,UAAA,CAAU,CAAC,QAAA,KAAK;IAC1B,OAAKC,eAAA;KAAG,QAAA,WAAW,QAAA,YAAO,WAAA;KAA6B,QAAA,YAAO,aAAA;KAAgC,QAAA,QAAI;MAAA;MAAA;MAAA;KAAA,CAAA,CAAyB,SAAS,QAAA,IAAI,KAAA;IAAA,CAAA;;IAEzI,SAAAC,cAAiC,CAArB,QAAA,QAAZJ,UAAA,GAAAC,YAAiCI,aAAA;;KAAd,MAAM,QAAA;IACzB,GAAA,MAAA,GAAA,CAAA,MAAA,CAAA,KAAAC,mBAAA,QAAA,IAAA,GAAAC,WAAwB,KAAA,QAAA,WAAA,CAAA,SAAA,CAAfC,gBAAAC,gBAAA,QAAA,KAAK,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA"}
@@ -1,112 +0,0 @@
1
- import { severityOf, sizeOf } from "./shared.js";
2
- import _sfc_main$1 from "./Icon.js";
3
- import { computed, createBlock, createCommentVNode, createElementBlock, defineComponent, mergeProps, openBlock, ref, renderSlot, toDisplayString, unref, useAttrs, useSlots, withCtx } from "vue";
4
- import PButton from "primevue/button";
5
- //#region src/vue/kit/primevue/Button.vue
6
- const _hoisted_1 = {
7
- key: 1,
8
- class: "p-button-label"
9
- };
10
- const _sfc_main = /*@__PURE__*/ defineComponent({
11
- inheritAttrs: false,
12
- __name: "Button",
13
- props: {
14
- label: {},
15
- icon: {},
16
- trailingIcon: {},
17
- color: {},
18
- variant: {},
19
- size: {},
20
- active: { type: Boolean },
21
- activeColor: {},
22
- activeVariant: {},
23
- disabled: { type: Boolean },
24
- loading: { type: Boolean },
25
- loadingAuto: { type: Boolean },
26
- href: {},
27
- target: {},
28
- type: {}
29
- },
30
- setup(__props) {
31
- const props = __props;
32
- const attrs = useAttrs();
33
- const slots = useSlots();
34
- const rest = computed(() => {
35
- const { onClick: _onClick, ...others } = attrs;
36
- return others;
37
- });
38
- const color = computed(() => props.active ? props.activeColor ?? props.color : props.color);
39
- const variant = computed(() => props.active ? props.activeVariant ?? props.variant : props.variant);
40
- const iconOnly = computed(() => !props.label && !slots.default && !!(props.icon || props.trailingIcon));
41
- /** `solid` is Prime's filled button, `outline`/`subtle` its outlined one, `soft`/`ghost` its text one (the tint comes from `sk-soft`). */
42
- const primeVariant = computed(() => {
43
- switch (variant.value) {
44
- case "outline":
45
- case "subtle": return "outlined";
46
- case "soft":
47
- case "ghost": return "text";
48
- case "link": return "link";
49
- default: return;
50
- }
51
- });
52
- const pending = ref(false);
53
- /** Runs the host's click handlers; with `loadingAuto` the button shows its loading state while one of them is a pending promise. */
54
- function onClick(event) {
55
- const results = [].concat(attrs.onClick ?? []).map((handler) => handler(event));
56
- if (!props.loadingAuto) return;
57
- const promises = results.filter((result) => result instanceof Promise);
58
- if (!promises.length) return;
59
- pending.value = true;
60
- Promise.allSettled(promises).finally(() => {
61
- pending.value = false;
62
- });
63
- }
64
- return (_ctx, _cache) => {
65
- return openBlock(), createBlock(unref(PButton), mergeProps(rest.value, {
66
- as: __props.href ? "a" : "button",
67
- href: __props.href,
68
- target: __props.target,
69
- type: __props.href ? void 0 : __props.type ?? "button",
70
- severity: unref(severityOf)(color.value),
71
- variant: primeVariant.value,
72
- size: unref(sizeOf)(__props.size),
73
- disabled: __props.disabled || __props.loading || pending.value,
74
- loading: __props.loading || pending.value,
75
- class: [
76
- iconOnly.value && "sk-icon-only",
77
- (variant.value === "soft" || variant.value === "subtle") && "sk-tinted",
78
- __props.active && "sk-active"
79
- ],
80
- onClick
81
- }), {
82
- default: withCtx(() => [renderSlot(_ctx.$slots, "default", {}, () => [
83
- __props.icon && !__props.loading && !pending.value ? (openBlock(), createBlock(_sfc_main$1, {
84
- key: 0,
85
- name: __props.icon
86
- }, null, 8, ["name"])) : createCommentVNode("v-if", true),
87
- __props.label ? (openBlock(), createElementBlock("span", _hoisted_1, toDisplayString(__props.label), 1)) : createCommentVNode("v-if", true),
88
- __props.trailingIcon ? (openBlock(), createBlock(_sfc_main$1, {
89
- key: 2,
90
- name: __props.trailingIcon
91
- }, null, 8, ["name"])) : createCommentVNode("v-if", true)
92
- ])]),
93
- _: 3
94
- }, 16, [
95
- "as",
96
- "href",
97
- "target",
98
- "type",
99
- "severity",
100
- "variant",
101
- "size",
102
- "disabled",
103
- "loading",
104
- "class"
105
- ]);
106
- };
107
- }
108
- });
109
- //#endregion
110
- export { _sfc_main as default };
111
-
112
- //# sourceMappingURL=Button.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Button.js","names":["_openBlock","_createBlock","_unref","_mergeProps","_withCtx","_renderSlot","Icon","_createCommentVNode","_createElementBlock","_toDisplayString"],"sources":["../../../../src/vue/kit/primevue/Button.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport PButton from 'primevue/button'\nimport { computed, ref, useAttrs, useSlots } from 'vue'\nimport type { ButtonProps } from '../types'\nimport Icon from './Icon.vue'\nimport { severityOf, sizeOf } from './shared'\n\ndefineOptions({ inheritAttrs: false })\nconst props = defineProps<ButtonProps>()\nconst attrs = useAttrs()\nconst slots = useSlots()\n\nconst rest = computed(() => {\n const { onClick: _onClick, ...others } = attrs\n return others\n})\n\nconst color = computed(() => (props.active ? props.activeColor ?? props.color : props.color))\nconst variant = computed(() => (props.active ? props.activeVariant ?? props.variant : props.variant))\nconst iconOnly = computed(() => !props.label && !slots.default && !!(props.icon || props.trailingIcon))\n\n/** `solid` is Prime's filled button, `outline`/`subtle` its outlined one, `soft`/`ghost` its text one (the tint comes from `sk-soft`). */\nconst primeVariant = computed(() => {\n switch (variant.value) {\n case 'outline': case 'subtle': return 'outlined'\n case 'soft': case 'ghost': return 'text'\n case 'link': return 'link'\n default: return undefined\n }\n})\n\nconst pending = ref(false)\n/** Runs the host's click handlers; with `loadingAuto` the button shows its loading state while one of them is a pending promise. */\nfunction onClick(event: MouseEvent) {\n const handlers = ([] as unknown[]).concat(attrs.onClick ?? []) as ((event: MouseEvent) => unknown)[]\n const results = handlers.map(handler => handler(event))\n if (!props.loadingAuto) return\n const promises = results.filter((result): result is Promise<unknown> => result instanceof Promise)\n if (!promises.length) return\n pending.value = true\n void Promise.allSettled(promises).finally(() => { pending.value = false })\n}\n</script>\n\n<template>\n <PButton\n v-bind=\"rest\"\n :as=\"href ? 'a' : 'button'\"\n :href=\"href\"\n :target=\"target\"\n :type=\"href ? undefined : (type ?? 'button')\"\n :severity=\"severityOf(color)\"\n :variant=\"primeVariant\"\n :size=\"sizeOf(size)\"\n :disabled=\"disabled || loading || pending\"\n :loading=\"loading || pending\"\n :class=\"[\n iconOnly && 'sk-icon-only',\n (variant === 'soft' || variant === 'subtle') && 'sk-tinted',\n active && 'sk-active',\n ]\"\n @click=\"onClick\"\n >\n <slot>\n <Icon v-if=\"icon && !loading && !pending\" :name=\"icon\" />\n <span v-if=\"label\" class=\"p-button-label\">{{ label }}</span>\n <Icon v-if=\"trailingIcon\" :name=\"trailingIcon\" />\n </slot>\n </PButton>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQA,MAAM,QAAQ;EACd,MAAM,QAAQ,SAAS;EACvB,MAAM,QAAQ,SAAS;EAEvB,MAAM,OAAO,eAAe;GAC1B,MAAM,EAAE,SAAS,UAAU,GAAG,WAAW;GACzC,OAAO;EACT,CAAC;EAED,MAAM,QAAQ,eAAgB,MAAM,SAAS,MAAM,eAAe,MAAM,QAAQ,MAAM,KAAM;EAC5F,MAAM,UAAU,eAAgB,MAAM,SAAS,MAAM,iBAAiB,MAAM,UAAU,MAAM,OAAQ;EACpG,MAAM,WAAW,eAAe,CAAC,MAAM,SAAS,CAAC,MAAM,WAAW,CAAC,EAAE,MAAM,QAAQ,MAAM,aAAa;;EAGtG,MAAM,eAAe,eAAe;GAClC,QAAQ,QAAQ,OAAhB;IACE,KAAK;IAAW,KAAK,UAAU,OAAO;IACtC,KAAK;IAAQ,KAAK,SAAS,OAAO;IAClC,KAAK,QAAQ,OAAO;IACpB,SAAS;GACX;EACF,CAAC;EAED,MAAM,UAAU,IAAI,KAAK;;EAEzB,SAAS,QAAQ,OAAmB;GAElC,MAAM,UADY,CAAC,CAAC,CAAe,OAAO,MAAM,WAAW,CAAC,CAC5C,CAAA,CAAS,KAAI,YAAW,QAAQ,KAAK,CAAC;GACtD,IAAI,CAAC,MAAM,aAAa;GACxB,MAAM,WAAW,QAAQ,QAAQ,WAAuC,kBAAkB,OAAO;GACjG,IAAI,CAAC,SAAS,QAAQ;GACtB,QAAQ,QAAQ;GAChB,QAAa,WAAW,QAAQ,CAAC,CAAC,cAAc;IAAE,QAAQ,QAAQ;GAAM,CAAC;EAC3E;;GAIE,OAAAA,UAAA,GAAAC,YAuBUC,MAAA,OAAA,GAvBVC,WACU,KAsBA,OAtBI;IACX,IAAI,QAAA,OAAI,MAAA;IACR,MAAM,QAAA;IACN,QAAQ,QAAA;IACR,MAAM,QAAA,OAAO,KAAA,IAAa,QAAA,QAAI;IAC9B,UAAUD,MAAA,UAAA,CAAU,CAAC,MAAA,KAAK;IAC1B,SAAS,aAAA;IACT,MAAMA,MAAA,MAAA,CAAM,CAAC,QAAA,IAAI;IACjB,UAAU,QAAA,YAAY,QAAA,WAAW,QAAA;IACjC,SAAS,QAAA,WAAW,QAAA;IACpB,OAAK;KAAU,SAAA,SAAQ;MAA2B,QAAA,UAAO,UAAe,QAAA,UAAO,aAAA;KAAqC,QAAA,UAAM;;IAKnH;;IAER,SAAAE,cAIO,CAJPC,WAIO,KAAA,QAAA,WAAA,CAAA,SAAA;KAHO,QAAA,QAAI,CAAK,QAAA,WAAO,CAAK,QAAA,SAAjCL,UAAA,GAAAC,YAAyDK,aAAA;;MAAd,MAAM,QAAA;;KACrC,QAAA,SAAZN,UAAA,GAAAQ,mBAA4D,QAA5D,YAA4DC,gBAAf,QAAA,KAAK,GAAA,CAAA,KAAAF,mBAAA,QAAA,IAAA;KACtC,QAAA,gBAAZP,UAAA,GAAAC,YAAiDK,aAAA;;MAAtB,MAAM,QAAA"}
@@ -1,38 +0,0 @@
1
- import { severityOf } from "./shared.js";
2
- import { createBlock, defineComponent, normalizeClass, openBlock, renderSlot, unref, withCtx } from "vue";
3
- import OverlayBadge from "primevue/overlaybadge";
4
- //#region src/vue/kit/primevue/Chip.vue
5
- const _sfc_main = /*@__PURE__*/ defineComponent({
6
- __name: "Chip",
7
- props: {
8
- show: { type: Boolean },
9
- text: {},
10
- color: {},
11
- size: {}
12
- },
13
- setup(__props) {
14
- return (_ctx, _cache) => {
15
- return __props.show !== false ? (openBlock(), createBlock(unref(OverlayBadge), {
16
- key: 0,
17
- value: __props.text,
18
- severity: unref(severityOf)(__props.color) ?? "danger",
19
- class: normalizeClass(__props.size && [
20
- "3xl",
21
- "2xl",
22
- "xl"
23
- ].includes(__props.size) ? "sk-chip-large" : void 0)
24
- }, {
25
- default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
26
- _: 3
27
- }, 8, [
28
- "value",
29
- "severity",
30
- "class"
31
- ])) : renderSlot(_ctx.$slots, "default", {}, void 0, void 0, 1);
32
- };
33
- }
34
- });
35
- //#endregion
36
- export { _sfc_main as default };
37
-
38
- //# sourceMappingURL=Chip.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Chip.js","names":["_openBlock","_createBlock","_unref","_normalizeClass","_withCtx","_renderSlot"],"sources":["../../../../src/vue/kit/primevue/Chip.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport OverlayBadge from 'primevue/overlaybadge'\nimport type { ChipProps } from '../types'\nimport { severityOf } from './shared'\n\ndefineProps<ChipProps>()\n</script>\n\n<template>\n <OverlayBadge v-if=\"show !== false\" :value=\"text\" :severity=\"severityOf(color) ?? 'danger'\" :class=\"size && ['3xl', '2xl', 'xl'].includes(size) ? 'sk-chip-large' : undefined\">\n <slot />\n </OverlayBadge>\n <slot v-else />\n</template>\n"],"mappings":";;;;;;;;;;;;;;GASsB,OAAA,QAAA,SAAI,SAAxBA,UAAA,GAAAC,YAEeC,MAAA,YAAA,GAAA;;IAFsB,OAAO,QAAA;IAAO,UAAUA,MAAA,UAAA,CAAU,CAAC,QAAA,KAAK,KAAA;IAAgB,OAAKC,eAAE,QAAA,QAAI;KAAA;KAAA;KAAA;IAAA,CAAA,CAAyB,SAAS,QAAA,IAAI,IAAA,kBAAsB,KAAA,CAAS;;IAC3K,SAAAC,cAAQ,CAARC,WAAQ,KAAA,QAAA,SAAA,CAAA,CAAA;;;;;;GAEV,CAAA,KAAAA,WAAe,KAAA,QAAA,WAAA,CAAA,GAAA,KAAA,GAAA,KAAA,GAAA,CAAA"}
@@ -1,98 +0,0 @@
1
- import { kbdText } from "./shared.js";
2
- import _sfc_main from "./Icon.js";
3
- import { decorate, triggerNodes } from "./trigger.js";
4
- import { defineComponent, h, ref } from "vue";
5
- import Menu from "primevue/menu";
6
- //#region src/vue/kit/primevue/DropdownMenu.ts
7
- /** A `DropdownItem` as a PrimeVue menu item; the row itself is drawn by the `item` slot below. */
8
- function modelOf(items) {
9
- const groups = Array.isArray(items[0]) ? items : [items];
10
- const model = [];
11
- groups.forEach((group, index) => {
12
- if (index > 0 && group.length) model.push({ separator: true });
13
- for (const item of group) {
14
- if (item.type === "separator") {
15
- model.push({ separator: true });
16
- continue;
17
- }
18
- model.push({
19
- label: item.label ?? "",
20
- disabled: item.type === "label" || item.disabled,
21
- data: item,
22
- command: ({ originalEvent }) => {
23
- if (item.type === "checkbox") item.onUpdateChecked?.(!item.checked);
24
- item.onSelect?.(originalEvent);
25
- }
26
- });
27
- }
28
- });
29
- return model;
30
- }
31
- /**
32
- * PrimeVue has no dropdown menu: the trigger is the default slot (marked `data-state="open|closed"`), the panel a popup
33
- * `Menu`. Limits: Prime opens below the trigger (`content.side/align/sideOffset` are ignored) and always closes on
34
- * activation (`preventDefault()` in `onSelect` does not keep it open).
35
- */
36
- var DropdownMenu_default = defineComponent({
37
- name: "KitDropdownMenu",
38
- inheritAttrs: false,
39
- props: {
40
- items: {
41
- type: Array,
42
- required: true
43
- },
44
- content: {
45
- type: Object,
46
- default: void 0
47
- },
48
- ui: {
49
- type: Object,
50
- default: void 0
51
- },
52
- open: {
53
- type: Boolean,
54
- default: void 0
55
- }
56
- },
57
- emits: ["update:open"],
58
- setup(props, { slots, emit }) {
59
- const menu = ref(null);
60
- const isOpen = ref(false);
61
- const set = (open) => {
62
- isOpen.value = open;
63
- emit("update:open", open);
64
- };
65
- return () => [decorate(triggerNodes(slots.default?.()), {
66
- "data-state": isOpen.value ? "open" : "closed",
67
- "aria-haspopup": "menu",
68
- "aria-expanded": isOpen.value,
69
- "onClick": (event) => menu.value?.toggle(event)
70
- }), h(Menu, {
71
- ref: menu,
72
- popup: true,
73
- model: modelOf(props.items),
74
- class: props.ui?.content,
75
- onShow: () => set(true),
76
- onHide: () => set(false)
77
- }, { item: ({ item, props: slot }) => {
78
- const entry = item.data;
79
- if (entry.type === "label") return h("div", { class: "sk-menu-label" }, entry.label);
80
- return h("a", {
81
- ...slot.action,
82
- class: [
83
- slot.action.class,
84
- "sk-menu-row",
85
- entry.color === "error" && "sk-menu-danger"
86
- ]
87
- }, [
88
- entry.icon ? h(_sfc_main, { name: entry.icon }) : entry.type === "checkbox" ? h("span", { class: "sk-menu-check" }, entry.checked ? [h(_sfc_main, { name: "i-lucide-check" })] : []) : null,
89
- h("span", { class: "sk-menu-text" }, [h("span", entry.label), entry.description ? h("span", { class: "sk-menu-description" }, entry.description) : null]),
90
- entry.kbds?.length ? h("span", { class: "sk-menu-kbds" }, kbdText(entry.kbds)) : null
91
- ]);
92
- } })];
93
- }
94
- });
95
- //#endregion
96
- export { DropdownMenu_default as default };
97
-
98
- //# sourceMappingURL=DropdownMenu.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DropdownMenu.js","names":["Icon"],"sources":["../../../../src/vue/kit/primevue/DropdownMenu.ts"],"sourcesContent":["import Menu from 'primevue/menu'\nimport type { MenuItem } from 'primevue/menuitem'\nimport { defineComponent, h, ref } from 'vue'\nimport type { PropType } from 'vue'\nimport type { DropdownItem, DropdownItems, KitOverlayContent, KitOverlayUi } from '../types'\nimport Icon from './Icon.vue'\nimport { kbdText } from './shared'\nimport { decorate, triggerNodes } from './trigger'\n\n/** A `DropdownItem` as a PrimeVue menu item; the row itself is drawn by the `item` slot below. */\nfunction modelOf(items: DropdownItems): MenuItem[] {\n const groups: DropdownItem[][] = Array.isArray(items[0]) ? (items as DropdownItem[][]) : [items as DropdownItem[]]\n const model: MenuItem[] = []\n groups.forEach((group, index) => {\n if (index > 0 && group.length) model.push({ separator: true })\n for (const item of group) {\n if (item.type === 'separator') {\n model.push({ separator: true })\n continue\n }\n model.push({\n label: item.label ?? '',\n disabled: item.type === 'label' || item.disabled,\n data: item,\n command: ({ originalEvent }) => {\n if (item.type === 'checkbox') item.onUpdateChecked?.(!item.checked)\n item.onSelect?.(originalEvent)\n },\n })\n }\n })\n return model\n}\n\n/**\n * PrimeVue has no dropdown menu: the trigger is the default slot (marked `data-state=\"open|closed\"`), the panel a popup\n * `Menu`. Limits: Prime opens below the trigger (`content.side/align/sideOffset` are ignored) and always closes on\n * activation (`preventDefault()` in `onSelect` does not keep it open).\n */\nexport default defineComponent({\n name: 'KitDropdownMenu',\n inheritAttrs: false,\n props: {\n items: { type: Array as PropType<DropdownItems>, required: true },\n content: { type: Object as PropType<KitOverlayContent>, default: undefined },\n ui: { type: Object as PropType<KitOverlayUi>, default: undefined },\n open: { type: Boolean, default: undefined },\n },\n emits: ['update:open'],\n setup(props, { slots, emit }) {\n const menu = ref<InstanceType<typeof Menu> | null>(null)\n const isOpen = ref(false)\n const set = (open: boolean) => {\n isOpen.value = open\n emit('update:open', open)\n }\n return () => [\n decorate(triggerNodes(slots.default?.()), {\n 'data-state': isOpen.value ? 'open' : 'closed',\n 'aria-haspopup': 'menu',\n 'aria-expanded': isOpen.value,\n 'onClick': (event: Event) => menu.value?.toggle(event),\n }),\n h(Menu, { ref: menu, popup: true, model: modelOf(props.items), class: props.ui?.content, onShow: () => set(true), onHide: () => set(false) }, {\n item: ({ item, props: slot }: { item: MenuItem, props: { action: Record<string, unknown> } }) => {\n const entry = item.data as DropdownItem\n if (entry.type === 'label') return h('div', { class: 'sk-menu-label' }, entry.label)\n return h('a', { ...slot.action, class: [slot.action.class, 'sk-menu-row', entry.color === 'error' && 'sk-menu-danger'] }, [\n entry.icon ? h(Icon, { name: entry.icon }) : entry.type === 'checkbox' ? h('span', { class: 'sk-menu-check' }, entry.checked ? [h(Icon, { name: 'i-lucide-check' })] : []) : null,\n h('span', { class: 'sk-menu-text' }, [h('span', entry.label), entry.description ? h('span', { class: 'sk-menu-description' }, entry.description) : null]),\n entry.kbds?.length ? h('span', { class: 'sk-menu-kbds' }, kbdText(entry.kbds)) : null,\n ])\n },\n }),\n ]\n },\n})\n"],"mappings":";;;;;;;AAUA,SAAS,QAAQ,OAAkC;CACjD,MAAM,SAA2B,MAAM,QAAQ,MAAM,EAAE,IAAK,QAA6B,CAAC,KAAuB;CACjH,MAAM,QAAoB,CAAC;CAC3B,OAAO,SAAS,OAAO,UAAU;EAC/B,IAAI,QAAQ,KAAK,MAAM,QAAQ,MAAM,KAAK,EAAE,WAAW,KAAK,CAAC;EAC7D,KAAK,MAAM,QAAQ,OAAO;GACxB,IAAI,KAAK,SAAS,aAAa;IAC7B,MAAM,KAAK,EAAE,WAAW,KAAK,CAAC;IAC9B;GACF;GACA,MAAM,KAAK;IACT,OAAO,KAAK,SAAS;IACrB,UAAU,KAAK,SAAS,WAAW,KAAK;IACxC,MAAM;IACN,UAAU,EAAE,oBAAoB;KAC9B,IAAI,KAAK,SAAS,YAAY,KAAK,kBAAkB,CAAC,KAAK,OAAO;KAClE,KAAK,WAAW,aAAa;IAC/B;GACF,CAAC;EACH;CACF,CAAC;CACD,OAAO;AACT;;;;;;AAOA,IAAA,uBAAe,gBAAgB;CAC7B,MAAM;CACN,cAAc;CACd,OAAO;EACL,OAAO;GAAE,MAAM;GAAkC,UAAU;EAAK;EAChE,SAAS;GAAE,MAAM;GAAuC,SAAS,KAAA;EAAU;EAC3E,IAAI;GAAE,MAAM;GAAkC,SAAS,KAAA;EAAU;EACjE,MAAM;GAAE,MAAM;GAAS,SAAS,KAAA;EAAU;CAC5C;CACA,OAAO,CAAC,aAAa;CACrB,MAAM,OAAO,EAAE,OAAO,QAAQ;EAC5B,MAAM,OAAO,IAAsC,IAAI;EACvD,MAAM,SAAS,IAAI,KAAK;EACxB,MAAM,OAAO,SAAkB;GAC7B,OAAO,QAAQ;GACf,KAAK,eAAe,IAAI;EAC1B;EACA,aAAa,CACX,SAAS,aAAa,MAAM,UAAU,CAAC,GAAG;GACxC,cAAc,OAAO,QAAQ,SAAS;GACtC,iBAAiB;GACjB,iBAAiB,OAAO;GACxB,YAAY,UAAiB,KAAK,OAAO,OAAO,KAAK;EACvD,CAAC,GACD,EAAE,MAAM;GAAE,KAAK;GAAM,OAAO;GAAM,OAAO,QAAQ,MAAM,KAAK;GAAG,OAAO,MAAM,IAAI;GAAS,cAAc,IAAI,IAAI;GAAG,cAAc,IAAI,KAAK;EAAE,GAAG,EAC5I,OAAO,EAAE,MAAM,OAAO,WAA2E;GAC/F,MAAM,QAAQ,KAAK;GACnB,IAAI,MAAM,SAAS,SAAS,OAAO,EAAE,OAAO,EAAE,OAAO,gBAAgB,GAAG,MAAM,KAAK;GACnF,OAAO,EAAE,KAAK;IAAE,GAAG,KAAK;IAAQ,OAAO;KAAC,KAAK,OAAO;KAAO;KAAe,MAAM,UAAU,WAAW;IAAgB;GAAE,GAAG;IACxH,MAAM,OAAO,EAAEA,WAAM,EAAE,MAAM,MAAM,KAAK,CAAC,IAAI,MAAM,SAAS,aAAa,EAAE,QAAQ,EAAE,OAAO,gBAAgB,GAAG,MAAM,UAAU,CAAC,EAAEA,WAAM,EAAE,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI;IAC7K,EAAE,QAAQ,EAAE,OAAO,eAAe,GAAG,CAAC,EAAE,QAAQ,MAAM,KAAK,GAAG,MAAM,cAAc,EAAE,QAAQ,EAAE,OAAO,sBAAsB,GAAG,MAAM,WAAW,IAAI,IAAI,CAAC;IACxJ,MAAM,MAAM,SAAS,EAAE,QAAQ,EAAE,OAAO,eAAe,GAAG,QAAQ,MAAM,IAAI,CAAC,IAAI;GACnF,CAAC;EACH,EACF,CAAC,CACH;CACF;AACF,CAAC"}
@@ -1,22 +0,0 @@
1
- import { createBlock, defineComponent, openBlock, renderSlot, unref, withCtx } from "vue";
2
- import InputGroup from "primevue/inputgroup";
3
- //#region src/vue/kit/primevue/FieldGroup.vue
4
- const _sfc_main = /*@__PURE__*/ defineComponent({
5
- __name: "FieldGroup",
6
- props: { size: {} },
7
- setup(__props) {
8
- return (_ctx, _cache) => {
9
- return openBlock(), createBlock(unref(InputGroup), {
10
- class: "sk-field-group",
11
- "data-size": __props.size
12
- }, {
13
- default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
14
- _: 3
15
- }, 8, ["data-size"]);
16
- };
17
- }
18
- });
19
- //#endregion
20
- export { _sfc_main as default };
21
-
22
- //# sourceMappingURL=FieldGroup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FieldGroup.js","names":["_openBlock","_createBlock","_unref","_withCtx","_renderSlot"],"sources":["../../../../src/vue/kit/primevue/FieldGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport InputGroup from 'primevue/inputgroup'\nimport type { FieldGroupProps } from '../types'\n\ndefineProps<FieldGroupProps>()\n</script>\n\n<template>\n <InputGroup class=\"sk-field-group\" :data-size=\"size\">\n <slot />\n </InputGroup>\n</template>\n"],"mappings":";;;;;;;;GAQE,OAAAA,UAAA,GAAAC,YAEaC,MAAA,UAAA,GAAA;IAFD,OAAM;IAAkB,aAAW,QAAA;;IAC7C,SAAAC,cAAQ,CAARC,WAAQ,KAAA,QAAA,SAAA,CAAA,CAAA"}