@elytracms/studio 0.0.1

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 (558) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +3 -0
  3. package/convex/assets.ts +107 -0
  4. package/convex/auth.config.ts +15 -0
  5. package/convex/auth.ts +50 -0
  6. package/convex/cliTokens.ts +63 -0
  7. package/convex/cms.ts +174 -0
  8. package/convex/content.ts +316 -0
  9. package/convex/delivery.ts +266 -0
  10. package/convex/functions.ts +35 -0
  11. package/convex/graphs.ts +51 -0
  12. package/convex/guard.ts +67 -0
  13. package/convex/http.ts +30 -0
  14. package/convex/members.ts +83 -0
  15. package/convex/publishing.ts +102 -0
  16. package/convex/references.ts +168 -0
  17. package/convex/schema.ts +173 -0
  18. package/convex/sync.ts +322 -0
  19. package/convex/tsconfig.json +12 -0
  20. package/convex/users.ts +23 -0
  21. package/convex/webhooks.ts +85 -0
  22. package/dist/components/assets/asset-library.d.ts +14 -0
  23. package/dist/components/assets/asset-library.js +191 -0
  24. package/dist/components/assets/asset-library.js.map +1 -0
  25. package/dist/components/assets/asset-metadata.d.ts +34 -0
  26. package/dist/components/assets/asset-metadata.js +40 -0
  27. package/dist/components/assets/asset-metadata.js.map +1 -0
  28. package/dist/components/assets/asset-search.d.ts +7 -0
  29. package/dist/components/assets/asset-search.js +12 -0
  30. package/dist/components/assets/asset-search.js.map +1 -0
  31. package/dist/components/assets/asset-selection.d.ts +17 -0
  32. package/dist/components/assets/asset-selection.js +33 -0
  33. package/dist/components/assets/asset-selection.js.map +1 -0
  34. package/dist/components/assets/assets-store.d.ts +51 -0
  35. package/dist/components/assets/assets-store.js +153 -0
  36. package/dist/components/assets/assets-store.js.map +1 -0
  37. package/dist/components/auth-context.d.ts +38 -0
  38. package/dist/components/auth-context.js +88 -0
  39. package/dist/components/auth-context.js.map +1 -0
  40. package/dist/components/backend-gate.d.ts +19 -0
  41. package/dist/components/backend-gate.js +63 -0
  42. package/dist/components/backend-gate.js.map +1 -0
  43. package/dist/components/breadcrumb-context.d.ts +39 -0
  44. package/dist/components/breadcrumb-context.js +38 -0
  45. package/dist/components/breadcrumb-context.js.map +1 -0
  46. package/dist/components/builder/blocks-model.d.ts +80 -0
  47. package/dist/components/builder/blocks-model.js +181 -0
  48. package/dist/components/builder/blocks-model.js.map +1 -0
  49. package/dist/components/builder/blocks-panel.d.ts +44 -0
  50. package/dist/components/builder/blocks-panel.js +147 -0
  51. package/dist/components/builder/blocks-panel.js.map +1 -0
  52. package/dist/components/builder/builder-store.d.ts +69 -0
  53. package/dist/components/builder/builder-store.js +294 -0
  54. package/dist/components/builder/builder-store.js.map +1 -0
  55. package/dist/components/builder/canvas-stylesheet.d.ts +4 -0
  56. package/dist/components/builder/canvas-stylesheet.js +24 -0
  57. package/dist/components/builder/canvas-stylesheet.js.map +1 -0
  58. package/dist/components/builder/canvas.d.ts +8 -0
  59. package/dist/components/builder/canvas.js +723 -0
  60. package/dist/components/builder/canvas.js.map +1 -0
  61. package/dist/components/builder/clipboard-actions.d.ts +93 -0
  62. package/dist/components/builder/clipboard-actions.js +246 -0
  63. package/dist/components/builder/clipboard-actions.js.map +1 -0
  64. package/dist/components/builder/composition-field-editor.d.ts +11 -0
  65. package/dist/components/builder/composition-field-editor.js +150 -0
  66. package/dist/components/builder/composition-field-editor.js.map +1 -0
  67. package/dist/components/builder/composition-scope.d.ts +16 -0
  68. package/dist/components/builder/composition-scope.js +7 -0
  69. package/dist/components/builder/composition-scope.js.map +1 -0
  70. package/dist/components/builder/drag-session.d.ts +41 -0
  71. package/dist/components/builder/drag-session.js +51 -0
  72. package/dist/components/builder/drag-session.js.map +1 -0
  73. package/dist/components/builder/fixture-thumbnail.d.ts +18 -0
  74. package/dist/components/builder/fixture-thumbnail.js +97 -0
  75. package/dist/components/builder/fixture-thumbnail.js.map +1 -0
  76. package/dist/components/builder/inline-edit.d.ts +142 -0
  77. package/dist/components/builder/inline-edit.js +136 -0
  78. package/dist/components/builder/inline-edit.js.map +1 -0
  79. package/dist/components/builder/insert-context.d.ts +14 -0
  80. package/dist/components/builder/insert-context.js +65 -0
  81. package/dist/components/builder/insert-context.js.map +1 -0
  82. package/dist/components/builder/insert-menu.d.ts +9 -0
  83. package/dist/components/builder/insert-menu.js +9 -0
  84. package/dist/components/builder/insert-menu.js.map +1 -0
  85. package/dist/components/builder/layout-inspector.d.ts +14 -0
  86. package/dist/components/builder/layout-inspector.js +84 -0
  87. package/dist/components/builder/layout-inspector.js.map +1 -0
  88. package/dist/components/builder/node-factory.d.ts +17 -0
  89. package/dist/components/builder/node-factory.js +90 -0
  90. package/dist/components/builder/node-factory.js.map +1 -0
  91. package/dist/components/builder/page-tree.d.ts +3 -0
  92. package/dist/components/builder/page-tree.js +207 -0
  93. package/dist/components/builder/page-tree.js.map +1 -0
  94. package/dist/components/builder/property-inspector.d.ts +1 -0
  95. package/dist/components/builder/property-inspector.js +233 -0
  96. package/dist/components/builder/property-inspector.js.map +1 -0
  97. package/dist/components/builder/rich-text-toolbar.d.ts +4 -0
  98. package/dist/components/builder/rich-text-toolbar.js +104 -0
  99. package/dist/components/builder/rich-text-toolbar.js.map +1 -0
  100. package/dist/components/builder/spacing-handles.d.ts +22 -0
  101. package/dist/components/builder/spacing-handles.js +213 -0
  102. package/dist/components/builder/spacing-handles.js.map +1 -0
  103. package/dist/components/cms/asset-picker.d.ts +12 -0
  104. package/dist/components/cms/asset-picker.js +60 -0
  105. package/dist/components/cms/asset-picker.js.map +1 -0
  106. package/dist/components/cms/bulk-actions.d.ts +60 -0
  107. package/dist/components/cms/bulk-actions.js +95 -0
  108. package/dist/components/cms/bulk-actions.js.map +1 -0
  109. package/dist/components/cms/bulk-bar.d.ts +23 -0
  110. package/dist/components/cms/bulk-bar.js +26 -0
  111. package/dist/components/cms/bulk-bar.js.map +1 -0
  112. package/dist/components/cms/cell-edit.d.ts +91 -0
  113. package/dist/components/cms/cell-edit.js +144 -0
  114. package/dist/components/cms/cell-edit.js.map +1 -0
  115. package/dist/components/cms/cell.d.ts +29 -0
  116. package/dist/components/cms/cell.js +127 -0
  117. package/dist/components/cms/cell.js.map +1 -0
  118. package/dist/components/cms/cms-index.d.ts +8 -0
  119. package/dist/components/cms/cms-index.js +23 -0
  120. package/dist/components/cms/cms-index.js.map +1 -0
  121. package/dist/components/cms/cms-store.d.ts +188 -0
  122. package/dist/components/cms/cms-store.js +702 -0
  123. package/dist/components/cms/cms-store.js.map +1 -0
  124. package/dist/components/cms/collection-table.d.ts +6 -0
  125. package/dist/components/cms/collection-table.js +250 -0
  126. package/dist/components/cms/collection-table.js.map +1 -0
  127. package/dist/components/cms/collections-sidebar.d.ts +9 -0
  128. package/dist/components/cms/collections-sidebar.js +25 -0
  129. package/dist/components/cms/collections-sidebar.js.map +1 -0
  130. package/dist/components/cms/detail-editor.d.ts +7 -0
  131. package/dist/components/cms/detail-editor.js +386 -0
  132. package/dist/components/cms/detail-editor.js.map +1 -0
  133. package/dist/components/cms/doc-state.d.ts +13 -0
  134. package/dist/components/cms/doc-state.js +18 -0
  135. package/dist/components/cms/doc-state.js.map +1 -0
  136. package/dist/components/cms/document-editor-context.d.ts +48 -0
  137. package/dist/components/cms/document-editor-context.js +23 -0
  138. package/dist/components/cms/document-editor-context.js.map +1 -0
  139. package/dist/components/cms/editable-cell.d.ts +22 -0
  140. package/dist/components/cms/editable-cell.js +176 -0
  141. package/dist/components/cms/editable-cell.js.map +1 -0
  142. package/dist/components/cms/field-control.d.ts +8 -0
  143. package/dist/components/cms/field-control.js +149 -0
  144. package/dist/components/cms/field-control.js.map +1 -0
  145. package/dist/components/cms/filter-builder.d.ts +12 -0
  146. package/dist/components/cms/filter-builder.js +84 -0
  147. package/dist/components/cms/filter-builder.js.map +1 -0
  148. package/dist/components/cms/import-export.d.ts +6 -0
  149. package/dist/components/cms/import-export.js +33 -0
  150. package/dist/components/cms/import-export.js.map +1 -0
  151. package/dist/components/cms/new-page-dialog.d.ts +22 -0
  152. package/dist/components/cms/new-page-dialog.js +42 -0
  153. package/dist/components/cms/new-page-dialog.js.map +1 -0
  154. package/dist/components/cms/reference-confirm.d.ts +25 -0
  155. package/dist/components/cms/reference-confirm.js +124 -0
  156. package/dist/components/cms/reference-confirm.js.map +1 -0
  157. package/dist/components/cms/relation-picker.d.ts +16 -0
  158. package/dist/components/cms/relation-picker.js +47 -0
  159. package/dist/components/cms/relation-picker.js.map +1 -0
  160. package/dist/components/cms/use-cell-edit.d.ts +33 -0
  161. package/dist/components/cms/use-cell-edit.js +125 -0
  162. package/dist/components/cms/use-cell-edit.js.map +1 -0
  163. package/dist/components/cms/versions-model.d.ts +15 -0
  164. package/dist/components/cms/versions-model.js +23 -0
  165. package/dist/components/cms/versions-model.js.map +1 -0
  166. package/dist/components/cms/versions-pane.d.ts +14 -0
  167. package/dist/components/cms/versions-pane.js +86 -0
  168. package/dist/components/cms/versions-pane.js.map +1 -0
  169. package/dist/components/cms/view-bar.d.ts +11 -0
  170. package/dist/components/cms/view-bar.js +80 -0
  171. package/dist/components/cms/view-bar.js.map +1 -0
  172. package/dist/components/collab/collab-context.d.ts +34 -0
  173. package/dist/components/collab/collab-context.js +52 -0
  174. package/dist/components/collab/collab-context.js.map +1 -0
  175. package/dist/components/collab/collab-seed.d.ts +27 -0
  176. package/dist/components/collab/collab-seed.js +42 -0
  177. package/dist/components/collab/collab-seed.js.map +1 -0
  178. package/dist/components/components/component-detail.d.ts +9 -0
  179. package/dist/components/components/component-detail.js +30 -0
  180. package/dist/components/components/component-detail.js.map +1 -0
  181. package/dist/components/components/component-status.d.ts +10 -0
  182. package/dist/components/components/component-status.js +30 -0
  183. package/dist/components/components/component-status.js.map +1 -0
  184. package/dist/components/components/components-index.d.ts +8 -0
  185. package/dist/components/components/components-index.js +42 -0
  186. package/dist/components/components/components-index.js.map +1 -0
  187. package/dist/components/components/field-inspector.d.ts +9 -0
  188. package/dist/components/components/field-inspector.js +38 -0
  189. package/dist/components/components/field-inspector.js.map +1 -0
  190. package/dist/components/components/fixture-runner.d.ts +10 -0
  191. package/dist/components/components/fixture-runner.js +24 -0
  192. package/dist/components/components/fixture-runner.js.map +1 -0
  193. package/dist/components/components/registry-browser.d.ts +4 -0
  194. package/dist/components/components/registry-browser.js +64 -0
  195. package/dist/components/components/registry-browser.js.map +1 -0
  196. package/dist/components/current-user-menu.d.ts +13 -0
  197. package/dist/components/current-user-menu.js +31 -0
  198. package/dist/components/current-user-menu.js.map +1 -0
  199. package/dist/components/dev-login-badge.d.ts +9 -0
  200. package/dist/components/dev-login-badge.js +18 -0
  201. package/dist/components/dev-login-badge.js.map +1 -0
  202. package/dist/components/extensions/extensions-view.d.ts +7 -0
  203. package/dist/components/extensions/extensions-view.js +126 -0
  204. package/dist/components/extensions/extensions-view.js.map +1 -0
  205. package/dist/components/guards.d.ts +27 -0
  206. package/dist/components/guards.js +46 -0
  207. package/dist/components/guards.js.map +1 -0
  208. package/dist/components/inspector/inspector-sidebar.d.ts +26 -0
  209. package/dist/components/inspector/inspector-sidebar.js +17 -0
  210. package/dist/components/inspector/inspector-sidebar.js.map +1 -0
  211. package/dist/components/operation-error.d.ts +17 -0
  212. package/dist/components/operation-error.js +54 -0
  213. package/dist/components/operation-error.js.map +1 -0
  214. package/dist/components/playground-badge.d.ts +10 -0
  215. package/dist/components/playground-badge.js +19 -0
  216. package/dist/components/playground-badge.js.map +1 -0
  217. package/dist/components/project-list.d.ts +15 -0
  218. package/dist/components/project-list.js +52 -0
  219. package/dist/components/project-list.js.map +1 -0
  220. package/dist/components/project-session.d.ts +46 -0
  221. package/dist/components/project-session.js +107 -0
  222. package/dist/components/project-session.js.map +1 -0
  223. package/dist/components/project-switcher.d.ts +11 -0
  224. package/dist/components/project-switcher.js +44 -0
  225. package/dist/components/project-switcher.js.map +1 -0
  226. package/dist/components/references/builder-deep-link.d.ts +12 -0
  227. package/dist/components/references/builder-deep-link.js +53 -0
  228. package/dist/components/references/builder-deep-link.js.map +1 -0
  229. package/dist/components/references/references-panel.d.ts +17 -0
  230. package/dist/components/references/references-panel.js +66 -0
  231. package/dist/components/references/references-panel.js.map +1 -0
  232. package/dist/components/routes/redirect-chain.d.ts +9 -0
  233. package/dist/components/routes/redirect-chain.js +16 -0
  234. package/dist/components/routes/redirect-chain.js.map +1 -0
  235. package/dist/components/routes/redirect-manager.d.ts +13 -0
  236. package/dist/components/routes/redirect-manager.js +24 -0
  237. package/dist/components/routes/redirect-manager.js.map +1 -0
  238. package/dist/components/routes/route-list.d.ts +35 -0
  239. package/dist/components/routes/route-list.js +69 -0
  240. package/dist/components/routes/route-list.js.map +1 -0
  241. package/dist/components/routes/routes-shell.d.ts +14 -0
  242. package/dist/components/routes/routes-shell.js +68 -0
  243. package/dist/components/routes/routes-shell.js.map +1 -0
  244. package/dist/components/section-nav.d.ts +17 -0
  245. package/dist/components/section-nav.js +33 -0
  246. package/dist/components/section-nav.js.map +1 -0
  247. package/dist/components/section-state.d.ts +24 -0
  248. package/dist/components/section-state.js +78 -0
  249. package/dist/components/section-state.js.map +1 -0
  250. package/dist/components/section-surface.d.ts +31 -0
  251. package/dist/components/section-surface.js +46 -0
  252. package/dist/components/section-surface.js.map +1 -0
  253. package/dist/components/sections.d.ts +38 -0
  254. package/dist/components/sections.js +72 -0
  255. package/dist/components/sections.js.map +1 -0
  256. package/dist/components/settings-form.d.ts +10 -0
  257. package/dist/components/settings-form.js +17 -0
  258. package/dist/components/settings-form.js.map +1 -0
  259. package/dist/components/studio-context.d.ts +22 -0
  260. package/dist/components/studio-context.js +48 -0
  261. package/dist/components/studio-context.js.map +1 -0
  262. package/dist/components/studio-project-screen.d.ts +19 -0
  263. package/dist/components/studio-project-screen.js +195 -0
  264. package/dist/components/studio-project-screen.js.map +1 -0
  265. package/dist/components/studio-shell.d.ts +18 -0
  266. package/dist/components/studio-shell.js +64 -0
  267. package/dist/components/studio-shell.js.map +1 -0
  268. package/dist/components/theme-context.d.ts +17 -0
  269. package/dist/components/theme-context.js +26 -0
  270. package/dist/components/theme-context.js.map +1 -0
  271. package/dist/components/workspace-gate.d.ts +12 -0
  272. package/dist/components/workspace-gate.js +27 -0
  273. package/dist/components/workspace-gate.js.map +1 -0
  274. package/dist/components/workspace-projects.d.ts +13 -0
  275. package/dist/components/workspace-projects.js +18 -0
  276. package/dist/components/workspace-projects.js.map +1 -0
  277. package/dist/lib/assets/delete-asset.d.ts +34 -0
  278. package/dist/lib/assets/delete-asset.js +34 -0
  279. package/dist/lib/assets/delete-asset.js.map +1 -0
  280. package/dist/lib/assets/image-dimensions.d.ts +18 -0
  281. package/dist/lib/assets/image-dimensions.js +26 -0
  282. package/dist/lib/assets/image-dimensions.js.map +1 -0
  283. package/dist/lib/assets/index.d.ts +9 -0
  284. package/dist/lib/assets/index.js +10 -0
  285. package/dist/lib/assets/index.js.map +1 -0
  286. package/dist/lib/assets/upload-state.d.ts +53 -0
  287. package/dist/lib/assets/upload-state.js +59 -0
  288. package/dist/lib/assets/upload-state.js.map +1 -0
  289. package/dist/lib/assets/upload.d.ts +56 -0
  290. package/dist/lib/assets/upload.js +125 -0
  291. package/dist/lib/assets/upload.js.map +1 -0
  292. package/dist/lib/auth/auth-adapter.d.ts +57 -0
  293. package/dist/lib/auth/auth-adapter.js +13 -0
  294. package/dist/lib/auth/auth-adapter.js.map +1 -0
  295. package/dist/lib/auth/convex-auth-adapter.d.ts +39 -0
  296. package/dist/lib/auth/convex-auth-adapter.js +171 -0
  297. package/dist/lib/auth/convex-auth-adapter.js.map +1 -0
  298. package/dist/lib/auth/dev-auto-login-adapter.d.ts +25 -0
  299. package/dist/lib/auth/dev-auto-login-adapter.js +40 -0
  300. package/dist/lib/auth/dev-auto-login-adapter.js.map +1 -0
  301. package/dist/lib/auth/index.d.ts +28 -0
  302. package/dist/lib/auth/index.js +61 -0
  303. package/dist/lib/auth/index.js.map +1 -0
  304. package/dist/lib/auth/local-auth-adapter.d.ts +57 -0
  305. package/dist/lib/auth/local-auth-adapter.js +78 -0
  306. package/dist/lib/auth/local-auth-adapter.js.map +1 -0
  307. package/dist/lib/auth/route-guard.d.ts +33 -0
  308. package/dist/lib/auth/route-guard.js +51 -0
  309. package/dist/lib/auth/route-guard.js.map +1 -0
  310. package/dist/lib/auth-errors.d.ts +42 -0
  311. package/dist/lib/auth-errors.js +74 -0
  312. package/dist/lib/auth-errors.js.map +1 -0
  313. package/dist/lib/bindings/section-bindings.d.ts +24 -0
  314. package/dist/lib/bindings/section-bindings.js +9 -0
  315. package/dist/lib/bindings/section-bindings.js.map +1 -0
  316. package/dist/lib/clipboard/index.d.ts +7 -0
  317. package/dist/lib/clipboard/index.js +8 -0
  318. package/dist/lib/clipboard/index.js.map +1 -0
  319. package/dist/lib/clipboard/os-clipboard.d.ts +46 -0
  320. package/dist/lib/clipboard/os-clipboard.js +105 -0
  321. package/dist/lib/clipboard/os-clipboard.js.map +1 -0
  322. package/dist/lib/clipboard/paste-issues.d.ts +34 -0
  323. package/dist/lib/clipboard/paste-issues.js +67 -0
  324. package/dist/lib/clipboard/paste-issues.js.map +1 -0
  325. package/dist/lib/clipboard/paste-target.d.ts +20 -0
  326. package/dist/lib/clipboard/paste-target.js +28 -0
  327. package/dist/lib/clipboard/paste-target.js.map +1 -0
  328. package/dist/lib/cms/published-documents.d.ts +30 -0
  329. package/dist/lib/cms/published-documents.js +75 -0
  330. package/dist/lib/cms/published-documents.js.map +1 -0
  331. package/dist/lib/cms-views/index.d.ts +9 -0
  332. package/dist/lib/cms-views/index.js +10 -0
  333. package/dist/lib/cms-views/index.js.map +1 -0
  334. package/dist/lib/cms-views/selection.d.ts +29 -0
  335. package/dist/lib/cms-views/selection.js +46 -0
  336. package/dist/lib/cms-views/selection.js.map +1 -0
  337. package/dist/lib/cms-views/view-model.d.ts +192 -0
  338. package/dist/lib/cms-views/view-model.js +353 -0
  339. package/dist/lib/cms-views/view-model.js.map +1 -0
  340. package/dist/lib/cms-views/views-store.d.ts +70 -0
  341. package/dist/lib/cms-views/views-store.js +129 -0
  342. package/dist/lib/cms-views/views-store.js.map +1 -0
  343. package/dist/lib/data/collection-content.d.ts +105 -0
  344. package/dist/lib/data/collection-content.js +196 -0
  345. package/dist/lib/data/collection-content.js.map +1 -0
  346. package/dist/lib/data/data-store.d.ts +97 -0
  347. package/dist/lib/data/data-store.js +205 -0
  348. package/dist/lib/data/data-store.js.map +1 -0
  349. package/dist/lib/data/index.d.ts +4 -0
  350. package/dist/lib/data/index.js +8 -0
  351. package/dist/lib/data/index.js.map +1 -0
  352. package/dist/lib/data/providers.d.ts +143 -0
  353. package/dist/lib/data/providers.js +255 -0
  354. package/dist/lib/data/providers.js.map +1 -0
  355. package/dist/lib/data/sample-capture.d.ts +30 -0
  356. package/dist/lib/data/sample-capture.js +70 -0
  357. package/dist/lib/data/sample-capture.js.map +1 -0
  358. package/dist/lib/data/sources-store.d.ts +42 -0
  359. package/dist/lib/data/sources-store.js +120 -0
  360. package/dist/lib/data/sources-store.js.map +1 -0
  361. package/dist/lib/dnd/drop-rules.d.ts +219 -0
  362. package/dist/lib/dnd/drop-rules.js +257 -0
  363. package/dist/lib/dnd/drop-rules.js.map +1 -0
  364. package/dist/lib/dnd/gap-drag.d.ts +66 -0
  365. package/dist/lib/dnd/gap-drag.js +95 -0
  366. package/dist/lib/dnd/gap-drag.js.map +1 -0
  367. package/dist/lib/locale/binding-fallback.d.ts +28 -0
  368. package/dist/lib/locale/binding-fallback.js +66 -0
  369. package/dist/lib/locale/binding-fallback.js.map +1 -0
  370. package/dist/lib/locale/fallback.d.ts +43 -0
  371. package/dist/lib/locale/fallback.js +52 -0
  372. package/dist/lib/locale/fallback.js.map +1 -0
  373. package/dist/lib/locale/index.d.ts +6 -0
  374. package/dist/lib/locale/index.js +7 -0
  375. package/dist/lib/locale/index.js.map +1 -0
  376. package/dist/lib/locale/locale-store.d.ts +40 -0
  377. package/dist/lib/locale/locale-store.js +61 -0
  378. package/dist/lib/locale/locale-store.js.map +1 -0
  379. package/dist/lib/locale/locale-switcher.d.ts +10 -0
  380. package/dist/lib/locale/locale-switcher.js +24 -0
  381. package/dist/lib/locale/locale-switcher.js.map +1 -0
  382. package/dist/lib/locale/route-variant.d.ts +14 -0
  383. package/dist/lib/locale/route-variant.js +11 -0
  384. package/dist/lib/locale/route-variant.js.map +1 -0
  385. package/dist/lib/locale/use-studio-locale.d.ts +10 -0
  386. package/dist/lib/locale/use-studio-locale.js +8 -0
  387. package/dist/lib/locale/use-studio-locale.js.map +1 -0
  388. package/dist/lib/operations/asset-repository.d.ts +15 -0
  389. package/dist/lib/operations/asset-repository.js +56 -0
  390. package/dist/lib/operations/asset-repository.js.map +1 -0
  391. package/dist/lib/operations/cms-persistence.d.ts +35 -0
  392. package/dist/lib/operations/cms-persistence.js +75 -0
  393. package/dist/lib/operations/cms-persistence.js.map +1 -0
  394. package/dist/lib/operations/graph-commands.d.ts +140 -0
  395. package/dist/lib/operations/graph-commands.js +86 -0
  396. package/dist/lib/operations/graph-commands.js.map +1 -0
  397. package/dist/lib/operations/graph-persistence.d.ts +27 -0
  398. package/dist/lib/operations/graph-persistence.js +35 -0
  399. package/dist/lib/operations/graph-persistence.js.map +1 -0
  400. package/dist/lib/operations/index.d.ts +13 -0
  401. package/dist/lib/operations/index.js +14 -0
  402. package/dist/lib/operations/index.js.map +1 -0
  403. package/dist/lib/operations/operations-package.d.ts +6 -0
  404. package/dist/lib/operations/operations-package.js +7 -0
  405. package/dist/lib/operations/operations-package.js.map +1 -0
  406. package/dist/lib/operations/persist-queue.d.ts +16 -0
  407. package/dist/lib/operations/persist-queue.js +18 -0
  408. package/dist/lib/operations/persist-queue.js.map +1 -0
  409. package/dist/lib/operations/session-hydration.d.ts +84 -0
  410. package/dist/lib/operations/session-hydration.js +112 -0
  411. package/dist/lib/operations/session-hydration.js.map +1 -0
  412. package/dist/lib/operations/studio-operations.d.ts +59 -0
  413. package/dist/lib/operations/studio-operations.js +92 -0
  414. package/dist/lib/operations/studio-operations.js.map +1 -0
  415. package/dist/lib/persistence/backend-mode.d.ts +69 -0
  416. package/dist/lib/persistence/backend-mode.js +120 -0
  417. package/dist/lib/persistence/backend-mode.js.map +1 -0
  418. package/dist/lib/persistence/convex-adapter.d.ts +34 -0
  419. package/dist/lib/persistence/convex-adapter.js +681 -0
  420. package/dist/lib/persistence/convex-adapter.js.map +1 -0
  421. package/dist/lib/persistence/convex-blob-storage.d.ts +57 -0
  422. package/dist/lib/persistence/convex-blob-storage.js +97 -0
  423. package/dist/lib/persistence/convex-blob-storage.js.map +1 -0
  424. package/dist/lib/persistence/convex-client.d.ts +19 -0
  425. package/dist/lib/persistence/convex-client.js +40 -0
  426. package/dist/lib/persistence/convex-client.js.map +1 -0
  427. package/dist/lib/persistence/index.d.ts +30 -0
  428. package/dist/lib/persistence/index.js +60 -0
  429. package/dist/lib/persistence/index.js.map +1 -0
  430. package/dist/lib/persona/labels.d.ts +23 -0
  431. package/dist/lib/persona/labels.js +122 -0
  432. package/dist/lib/persona/labels.js.map +1 -0
  433. package/dist/lib/rail.d.ts +11 -0
  434. package/dist/lib/rail.js +26 -0
  435. package/dist/lib/rail.js.map +1 -0
  436. package/dist/lib/references/impact.d.ts +64 -0
  437. package/dist/lib/references/impact.js +62 -0
  438. package/dist/lib/references/impact.js.map +1 -0
  439. package/dist/lib/references/index.d.ts +7 -0
  440. package/dist/lib/references/index.js +8 -0
  441. package/dist/lib/references/index.js.map +1 -0
  442. package/dist/lib/references/reference-model.d.ts +125 -0
  443. package/dist/lib/references/reference-model.js +242 -0
  444. package/dist/lib/references/reference-model.js.map +1 -0
  445. package/dist/lib/references/references-store.d.ts +65 -0
  446. package/dist/lib/references/references-store.js +221 -0
  447. package/dist/lib/references/references-store.js.map +1 -0
  448. package/dist/lib/registry/index.d.ts +65 -0
  449. package/dist/lib/registry/index.js +114 -0
  450. package/dist/lib/registry/index.js.map +1 -0
  451. package/dist/lib/registry/preview.d.ts +15 -0
  452. package/dist/lib/registry/preview.js +110 -0
  453. package/dist/lib/registry/preview.js.map +1 -0
  454. package/dist/lib/registry/project-components.d.ts +16 -0
  455. package/dist/lib/registry/project-components.js +152 -0
  456. package/dist/lib/registry/project-components.js.map +1 -0
  457. package/dist/lib/routing/index.d.ts +10 -0
  458. package/dist/lib/routing/index.js +11 -0
  459. package/dist/lib/routing/index.js.map +1 -0
  460. package/dist/lib/routing/routing-analysis.d.ts +26 -0
  461. package/dist/lib/routing/routing-analysis.js +37 -0
  462. package/dist/lib/routing/routing-analysis.js.map +1 -0
  463. package/dist/lib/routing/routing-store.d.ts +50 -0
  464. package/dist/lib/routing/routing-store.js +72 -0
  465. package/dist/lib/routing/routing-store.js.map +1 -0
  466. package/dist/lib/starters/kit-session.d.ts +5 -0
  467. package/dist/lib/starters/kit-session.js +17 -0
  468. package/dist/lib/starters/kit-session.js.map +1 -0
  469. package/dist/lib/theme.d.ts +21 -0
  470. package/dist/lib/theme.js +32 -0
  471. package/dist/lib/theme.js.map +1 -0
  472. package/dist/lib/utils.d.ts +11 -0
  473. package/dist/lib/utils.js +28 -0
  474. package/dist/lib/utils.js.map +1 -0
  475. package/dist/lib/webhooks/config.d.ts +15 -0
  476. package/dist/lib/webhooks/config.js +64 -0
  477. package/dist/lib/webhooks/config.js.map +1 -0
  478. package/dist/lib/webhooks/dispatcher.d.ts +67 -0
  479. package/dist/lib/webhooks/dispatcher.js +61 -0
  480. package/dist/lib/webhooks/dispatcher.js.map +1 -0
  481. package/dist/lib/webhooks/index.d.ts +11 -0
  482. package/dist/lib/webhooks/index.js +10 -0
  483. package/dist/lib/webhooks/index.js.map +1 -0
  484. package/dist/lib/webhooks/signing.d.ts +15 -0
  485. package/dist/lib/webhooks/signing.js +24 -0
  486. package/dist/lib/webhooks/signing.js.map +1 -0
  487. package/dist/lib/webhooks/tags.d.ts +25 -0
  488. package/dist/lib/webhooks/tags.js +173 -0
  489. package/dist/lib/webhooks/tags.js.map +1 -0
  490. package/dist/lib/working-graph.d.ts +82 -0
  491. package/dist/lib/working-graph.js +113 -0
  492. package/dist/lib/working-graph.js.map +1 -0
  493. package/dist/lib/workspace/index.d.ts +109 -0
  494. package/dist/lib/workspace/index.js +206 -0
  495. package/dist/lib/workspace/index.js.map +1 -0
  496. package/dist/lib/workspace/switcher-source.d.ts +39 -0
  497. package/dist/lib/workspace/switcher-source.js +23 -0
  498. package/dist/lib/workspace/switcher-source.js.map +1 -0
  499. package/dist/lib/workspace/workspace-source.d.ts +47 -0
  500. package/dist/lib/workspace/workspace-source.js +67 -0
  501. package/dist/lib/workspace/workspace-source.js.map +1 -0
  502. package/dist/router/index.d.ts +32 -0
  503. package/dist/router/index.js +32 -0
  504. package/dist/router/index.js.map +1 -0
  505. package/dist/router/match.d.ts +75 -0
  506. package/dist/router/match.js +87 -0
  507. package/dist/router/match.js.map +1 -0
  508. package/dist/router/search.d.ts +22 -0
  509. package/dist/router/search.js +16 -0
  510. package/dist/router/search.js.map +1 -0
  511. package/dist/ui/avatar.d.ts +17 -0
  512. package/dist/ui/avatar.js +38 -0
  513. package/dist/ui/avatar.js.map +1 -0
  514. package/dist/ui/badge.d.ts +9 -0
  515. package/dist/ui/badge.js +23 -0
  516. package/dist/ui/badge.js.map +1 -0
  517. package/dist/ui/button.d.ts +11 -0
  518. package/dist/ui/button.js +30 -0
  519. package/dist/ui/button.js.map +1 -0
  520. package/dist/ui/card.d.ts +11 -0
  521. package/dist/ui/card.js +23 -0
  522. package/dist/ui/card.js.map +1 -0
  523. package/dist/ui/dialog.d.ts +12 -0
  524. package/dist/ui/dialog.js +27 -0
  525. package/dist/ui/dialog.js.map +1 -0
  526. package/dist/ui/dropdown-menu.d.ts +15 -0
  527. package/dist/ui/dropdown-menu.js +24 -0
  528. package/dist/ui/dropdown-menu.js.map +1 -0
  529. package/dist/ui/field.d.ts +15 -0
  530. package/dist/ui/field.js +14 -0
  531. package/dist/ui/field.js.map +1 -0
  532. package/dist/ui/index.d.ts +14 -0
  533. package/dist/ui/index.js +15 -0
  534. package/dist/ui/index.js.map +1 -0
  535. package/dist/ui/input.d.ts +3 -0
  536. package/dist/ui/input.js +7 -0
  537. package/dist/ui/input.js.map +1 -0
  538. package/dist/ui/inspector.d.ts +18 -0
  539. package/dist/ui/inspector.js +14 -0
  540. package/dist/ui/inspector.js.map +1 -0
  541. package/dist/ui/layout.d.ts +45 -0
  542. package/dist/ui/layout.js +48 -0
  543. package/dist/ui/layout.js.map +1 -0
  544. package/dist/ui/panel.d.ts +12 -0
  545. package/dist/ui/panel.js +20 -0
  546. package/dist/ui/panel.js.map +1 -0
  547. package/dist/ui/separator.d.ts +6 -0
  548. package/dist/ui/separator.js +7 -0
  549. package/dist/ui/separator.js.map +1 -0
  550. package/dist/ui/toolbar.d.ts +9 -0
  551. package/dist/ui/toolbar.js +16 -0
  552. package/dist/ui/toolbar.js.map +1 -0
  553. package/dist/ui/typography.d.ts +50 -0
  554. package/dist/ui/typography.js +43 -0
  555. package/dist/ui/typography.js.map +1 -0
  556. package/package.json +149 -0
  557. package/src/styles/studio.css +101 -0
  558. package/src/styles/tokens.css +63 -0
@@ -0,0 +1,18 @@
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
+ export interface InspectorSectionProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
3
+ title?: ReactNode;
4
+ /** Optional trailing content in the section header (e.g. an action button). */
5
+ action?: ReactNode;
6
+ }
7
+ /**
8
+ * Named inspector section — the building block of the property inspector (brief §8.2).
9
+ * Use instead of ad-hoc labelled div groups.
10
+ */
11
+ export declare function InspectorSection({ title, action, className, children, ...props }: InspectorSectionProps): import("react").JSX.Element;
12
+ export interface InspectorRowProps extends HTMLAttributes<HTMLDivElement> {
13
+ label: ReactNode;
14
+ htmlFor?: string;
15
+ hint?: ReactNode;
16
+ }
17
+ /** A label/control row inside an InspectorSection. */
18
+ export declare function InspectorRow({ label, htmlFor, hint, className, children, ...props }: InspectorRowProps): import("react").JSX.Element;
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from '../lib/utils';
3
+ /**
4
+ * Named inspector section — the building block of the property inspector (brief §8.2).
5
+ * Use instead of ad-hoc labelled div groups.
6
+ */
7
+ export function InspectorSection({ title, action, className, children, ...props }) {
8
+ return (_jsxs("div", { className: cn('border-b border-border last:border-b-0', className), ...props, children: [title != null && (_jsxs("div", { className: "flex items-center justify-between px-3 pt-3 pb-1.5", children: [_jsx("span", { className: "text-[0.7rem] font-semibold uppercase tracking-[0.12em] text-muted-foreground", children: title }), action] })), _jsx("div", { className: "flex flex-col gap-1 px-3 pb-3 pt-1", children: children })] }));
9
+ }
10
+ /** A label/control row inside an InspectorSection. */
11
+ export function InspectorRow({ label, htmlFor, hint, className, children, ...props }) {
12
+ return (_jsxs("div", { className: cn('grid grid-cols-[88px_1fr] items-center gap-2 py-1', className), ...props, children: [_jsx("label", { htmlFor: htmlFor, className: "truncate text-xs text-muted-foreground", title: typeof label === 'string' ? label : undefined, children: label }), _jsxs("div", { className: "min-w-0", children: [children, hint != null && _jsx("p", { className: "mt-1 text-[0.7rem] text-muted-foreground/70", children: hint })] })] }));
13
+ }
14
+ //# sourceMappingURL=inspector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspector.js","sourceRoot":"","sources":["../../src/ui/inspector.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAA;AAQjC;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAyB;IACtG,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,wCAAwC,EAAE,SAAS,CAAC,KAAM,KAAK,aAC/E,KAAK,IAAI,IAAI,IAAI,CAChB,eAAK,SAAS,EAAC,oDAAoD,aACjE,eAAM,SAAS,EAAC,+EAA+E,YAC5F,KAAK,GACD,EACN,MAAM,IACH,CACP,EACD,cAAK,SAAS,EAAC,oCAAoC,YAAE,QAAQ,GAAO,IAChE,CACP,CAAA;AACH,CAAC;AAQD,sDAAsD;AACtD,MAAM,UAAU,YAAY,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAqB;IACrG,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,mDAAmD,EAAE,SAAS,CAAC,KAAM,KAAK,aAC3F,gBAAO,OAAO,EAAE,OAAO,EAAE,SAAS,EAAC,wCAAwC,EAAC,KAAK,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,YAC7H,KAAK,GACA,EACR,eAAK,SAAS,EAAC,SAAS,aACrB,QAAQ,EACR,IAAI,IAAI,IAAI,IAAI,YAAG,SAAS,EAAC,6CAA6C,YAAE,IAAI,GAAK,IAClF,IACF,CACP,CAAA;AACH,CAAC"}
@@ -0,0 +1,45 @@
1
+ import type { HTMLAttributes } from 'react';
2
+ declare const GAP: {
3
+ readonly none: "gap-0";
4
+ readonly px: "gap-px";
5
+ readonly '1': "gap-1";
6
+ readonly '2': "gap-2";
7
+ readonly '3': "gap-3";
8
+ readonly '4': "gap-4";
9
+ readonly '6': "gap-6";
10
+ readonly '8': "gap-8";
11
+ };
12
+ declare const ALIGN: {
13
+ readonly start: "items-start";
14
+ readonly center: "items-center";
15
+ readonly end: "items-end";
16
+ readonly stretch: "items-stretch";
17
+ readonly baseline: "items-baseline";
18
+ };
19
+ declare const JUSTIFY: {
20
+ readonly start: "justify-start";
21
+ readonly center: "justify-center";
22
+ readonly end: "justify-end";
23
+ readonly between: "justify-between";
24
+ readonly around: "justify-around";
25
+ };
26
+ interface FlexProps extends HTMLAttributes<HTMLDivElement> {
27
+ gap?: keyof typeof GAP;
28
+ align?: keyof typeof ALIGN;
29
+ justify?: keyof typeof JUSTIFY;
30
+ wrap?: boolean;
31
+ }
32
+ /** Vertical stack — named layout primitive instead of an anonymous flex-col div. */
33
+ export declare function Stack({ gap, align, justify, wrap, className, ...props }: FlexProps): import("react").JSX.Element;
34
+ /** Horizontal row — named layout primitive instead of an anonymous flex-row div. */
35
+ export declare function Row({ gap, align, justify, wrap, className, ...props }: FlexProps): import("react").JSX.Element;
36
+ interface GridProps extends HTMLAttributes<HTMLDivElement> {
37
+ cols?: number;
38
+ gap?: keyof typeof GAP;
39
+ minItemWidth?: string;
40
+ }
41
+ /** Grid — named layout primitive. Pass `minItemWidth` for an auto-fit responsive grid. */
42
+ export declare function Grid({ cols, gap, minItemWidth, className, style, ...props }: GridProps): import("react").JSX.Element;
43
+ /** A flexible spacer that pushes siblings apart inside a Row/Stack. */
44
+ export declare function Spacer({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
45
+ export {};
@@ -0,0 +1,48 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from '../lib/utils';
3
+ const GAP = {
4
+ none: 'gap-0',
5
+ px: 'gap-px',
6
+ '1': 'gap-1',
7
+ '2': 'gap-2',
8
+ '3': 'gap-3',
9
+ '4': 'gap-4',
10
+ '6': 'gap-6',
11
+ '8': 'gap-8',
12
+ };
13
+ const ALIGN = {
14
+ start: 'items-start',
15
+ center: 'items-center',
16
+ end: 'items-end',
17
+ stretch: 'items-stretch',
18
+ baseline: 'items-baseline',
19
+ };
20
+ const JUSTIFY = {
21
+ start: 'justify-start',
22
+ center: 'justify-center',
23
+ end: 'justify-end',
24
+ between: 'justify-between',
25
+ around: 'justify-around',
26
+ };
27
+ /** Vertical stack — named layout primitive instead of an anonymous flex-col div. */
28
+ export function Stack({ gap = '3', align, justify, wrap, className, ...props }) {
29
+ return (_jsx("div", { className: cn('flex flex-col', GAP[gap], align && ALIGN[align], justify && JUSTIFY[justify], wrap && 'flex-wrap', className), ...props }));
30
+ }
31
+ /** Horizontal row — named layout primitive instead of an anonymous flex-row div. */
32
+ export function Row({ gap = '2', align = 'center', justify, wrap, className, ...props }) {
33
+ return (_jsx("div", { className: cn('flex flex-row', GAP[gap], ALIGN[align], justify && JUSTIFY[justify], wrap && 'flex-wrap', className), ...props }));
34
+ }
35
+ /** Grid — named layout primitive. Pass `minItemWidth` for an auto-fit responsive grid. */
36
+ export function Grid({ cols, gap = '4', minItemWidth, className, style, ...props }) {
37
+ const autoFit = minItemWidth
38
+ ? { gridTemplateColumns: `repeat(auto-fill, minmax(${minItemWidth}, 1fr))` }
39
+ : cols
40
+ ? { gridTemplateColumns: `repeat(${cols}, minmax(0, 1fr))` }
41
+ : undefined;
42
+ return _jsx("div", { className: cn('grid', GAP[gap], className), style: { ...autoFit, ...style }, ...props });
43
+ }
44
+ /** A flexible spacer that pushes siblings apart inside a Row/Stack. */
45
+ export function Spacer({ className, ...props }) {
46
+ return _jsx("div", { className: cn('flex-1', className), "aria-hidden": true, ...props });
47
+ }
48
+ //# sourceMappingURL=layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/ui/layout.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAA;AAEjC,MAAM,GAAG,GAAG;IACV,IAAI,EAAE,OAAO;IACb,EAAE,EAAE,QAAQ;IACZ,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,OAAO;CACJ,CAAA;AAEV,MAAM,KAAK,GAAG;IACZ,KAAK,EAAE,aAAa;IACpB,MAAM,EAAE,cAAc;IACtB,GAAG,EAAE,WAAW;IAChB,OAAO,EAAE,eAAe;IACxB,QAAQ,EAAE,gBAAgB;CAClB,CAAA;AAEV,MAAM,OAAO,GAAG;IACd,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,gBAAgB;IACxB,GAAG,EAAE,aAAa;IAClB,OAAO,EAAE,iBAAiB;IAC1B,MAAM,EAAE,gBAAgB;CAChB,CAAA;AASV,oFAAoF;AACpF,MAAM,UAAU,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAAa;IACvF,OAAO,CACL,cACE,SAAS,EAAE,EAAE,CACX,eAAe,EACf,GAAG,CAAC,GAAG,CAAC,EACR,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,EACrB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAC3B,IAAI,IAAI,WAAW,EACnB,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,KAAK,GAAG,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAAa;IAChG,OAAO,CACL,cACE,SAAS,EAAE,EAAE,CACX,eAAe,EACf,GAAG,CAAC,GAAG,CAAC,EACR,KAAK,CAAC,KAAK,CAAC,EACZ,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAC3B,IAAI,IAAI,WAAW,EACnB,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAQD,0FAA0F;AAC1F,MAAM,UAAU,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAa;IAC3F,MAAM,OAAO,GAAG,YAAY;QAC1B,CAAC,CAAC,EAAE,mBAAmB,EAAE,4BAA4B,YAAY,SAAS,EAAE;QAC5E,CAAC,CAAC,IAAI;YACJ,CAAC,CAAC,EAAE,mBAAmB,EAAE,UAAU,IAAI,mBAAmB,EAAE;YAC5D,CAAC,CAAC,SAAS,CAAA;IACf,OAAO,cAAK,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,EAAE,KAAM,KAAK,GAAI,CAAA;AACxG,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAkC;IAC5E,OAAO,cAAK,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,0BAAkB,KAAK,GAAI,CAAA;AAC3E,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { HTMLAttributes } from 'react';
2
+ /**
3
+ * Panel — the primary surface primitive for Studio regions (sidebars, inspector,
4
+ * canvas chrome). Use instead of stray bordered divs.
5
+ */
6
+ export declare function Panel({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
7
+ export interface PanelHeaderProps extends HTMLAttributes<HTMLDivElement> {
8
+ sticky?: boolean;
9
+ }
10
+ export declare function PanelHeader({ sticky, className, ...props }: PanelHeaderProps): import("react").JSX.Element;
11
+ export declare function PanelBody({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
12
+ export declare function PanelFooter({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from '../lib/utils';
3
+ import { Row } from './layout';
4
+ /**
5
+ * Panel — the primary surface primitive for Studio regions (sidebars, inspector,
6
+ * canvas chrome). Use instead of stray bordered divs.
7
+ */
8
+ export function Panel({ className, ...props }) {
9
+ return (_jsx("section", { className: cn('flex flex-col overflow-hidden rounded-lg border border-border bg-panel', className), ...props }));
10
+ }
11
+ export function PanelHeader({ sticky, className, ...props }) {
12
+ return (_jsx(Row, { gap: "2", className: cn('h-11 shrink-0 px-3 hairline-b', sticky && 'sticky top-0 z-10 bg-panel/95 backdrop-blur', className), ...props }));
13
+ }
14
+ export function PanelBody({ className, ...props }) {
15
+ return _jsx("div", { className: cn('min-h-0 flex-1 overflow-auto p-3', className), ...props });
16
+ }
17
+ export function PanelFooter({ className, ...props }) {
18
+ return _jsx(Row, { gap: "2", className: cn('h-11 shrink-0 px-3 hairline-t', className), ...props });
19
+ }
20
+ //# sourceMappingURL=panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panel.js","sourceRoot":"","sources":["../../src/ui/panel.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAA;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAE9B;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAkC;IAC3E,OAAO,CACL,kBACE,SAAS,EAAE,EAAE,CAAC,wEAAwE,EAAE,SAAS,CAAC,KAC9F,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAMD,MAAM,UAAU,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,EAAoB;IAC3E,OAAO,CACL,KAAC,GAAG,IACF,GAAG,EAAC,GAAG,EACP,SAAS,EAAE,EAAE,CACX,+BAA+B,EAC/B,MAAM,IAAI,6CAA6C,EACvD,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAkC;IAC/E,OAAO,cAAK,SAAS,EAAE,EAAE,CAAC,kCAAkC,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAAA;AACzF,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAkC;IACjF,OAAO,KAAC,GAAG,IAAC,GAAG,EAAC,GAAG,EAAC,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAAA;AAC9F,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { HTMLAttributes } from 'react';
2
+ export interface SeparatorProps extends HTMLAttributes<HTMLDivElement> {
3
+ orientation?: 'horizontal' | 'vertical';
4
+ }
5
+ /** Named separator primitive. */
6
+ export declare function Separator({ orientation, className, ...props }: SeparatorProps): import("react").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from '../lib/utils';
3
+ /** Named separator primitive. */
4
+ export function Separator({ orientation = 'horizontal', className, ...props }) {
5
+ return (_jsx("div", { role: "separator", "aria-orientation": orientation, className: cn('shrink-0 bg-border', orientation === 'horizontal' ? 'h-px w-full' : 'h-full w-px', className), ...props }));
6
+ }
7
+ //# sourceMappingURL=separator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"separator.js","sourceRoot":"","sources":["../../src/ui/separator.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAA;AAMjC,iCAAiC;AACjC,MAAM,UAAU,SAAS,CAAC,EAAE,WAAW,GAAG,YAAY,EAAE,SAAS,EAAE,GAAG,KAAK,EAAkB;IAC3F,OAAO,CACL,cACE,IAAI,EAAC,WAAW,sBACE,WAAW,EAC7B,SAAS,EAAE,EAAE,CACX,oBAAoB,EACpB,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,EAC5D,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { HTMLAttributes } from 'react';
2
+ /** Named toolbar primitive — a horizontal control strip for Studio surfaces. */
3
+ export declare function Toolbar({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
4
+ /** A logical cluster of controls within a Toolbar. */
5
+ export declare function ToolbarGroup({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
6
+ /** Vertical divider between toolbar groups. */
7
+ export declare function ToolbarSeparator({ className }: {
8
+ className?: string;
9
+ }): import("react").JSX.Element;
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from '../lib/utils';
3
+ import { Separator } from './separator';
4
+ /** Named toolbar primitive — a horizontal control strip for Studio surfaces. */
5
+ export function Toolbar({ className, ...props }) {
6
+ return (_jsx("div", { role: "toolbar", className: cn('flex h-11 shrink-0 items-center gap-1 border border-border bg-panel px-2 rounded-md', className), ...props }));
7
+ }
8
+ /** A logical cluster of controls within a Toolbar. */
9
+ export function ToolbarGroup({ className, ...props }) {
10
+ return _jsx("div", { className: cn('flex items-center gap-0.5', className), ...props });
11
+ }
12
+ /** Vertical divider between toolbar groups. */
13
+ export function ToolbarSeparator({ className }) {
14
+ return _jsx(Separator, { orientation: "vertical", className: cn('mx-1 h-5', className) });
15
+ }
16
+ //# sourceMappingURL=toolbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolbar.js","sourceRoot":"","sources":["../../src/ui/toolbar.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,gFAAgF;AAChF,MAAM,UAAU,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAkC;IAC7E,OAAO,CACL,cACE,IAAI,EAAC,SAAS,EACd,SAAS,EAAE,EAAE,CACX,qFAAqF,EACrF,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAkC;IAClF,OAAO,cAAK,SAAS,EAAE,EAAE,CAAC,2BAA2B,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAAA;AAClF,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,gBAAgB,CAAC,EAAE,SAAS,EAA0B;IACpE,OAAO,KAAC,SAAS,IAAC,WAAW,EAAC,UAAU,EAAC,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,GAAI,CAAA;AACnF,CAAC"}
@@ -0,0 +1,50 @@
1
+ import type { HTMLAttributes } from 'react';
2
+ declare const HEADING_SIZE: {
3
+ readonly display: "text-3xl md:text-4xl font-semibold tracking-tight";
4
+ readonly h1: "text-2xl font-semibold tracking-tight";
5
+ readonly h2: "text-xl font-semibold tracking-tight";
6
+ readonly h3: "text-base font-semibold tracking-tight";
7
+ readonly h4: "text-sm font-semibold tracking-tight";
8
+ readonly eyebrow: "text-[0.7rem] font-semibold uppercase tracking-[0.14em] text-muted-foreground";
9
+ };
10
+ type HeadingSize = keyof typeof HEADING_SIZE;
11
+ export interface HeadingProps extends HTMLAttributes<HTMLHeadingElement> {
12
+ level?: 1 | 2 | 3 | 4 | 5 | 6;
13
+ size?: HeadingSize;
14
+ }
15
+ /** Named heading primitive — use instead of raw h1/h2/h3 (see AGENTS.md). */
16
+ export declare function Heading({ level, size, className, ...props }: HeadingProps): import("react").JSX.Element;
17
+ declare const TEXT_SIZE: {
18
+ readonly xs: "text-xs";
19
+ readonly sm: "text-sm";
20
+ readonly base: "text-sm md:text-[0.95rem]";
21
+ readonly lg: "text-base";
22
+ };
23
+ declare const TEXT_TONE: {
24
+ readonly default: "text-foreground";
25
+ readonly muted: "text-muted-foreground";
26
+ readonly subtle: "text-muted-foreground/70";
27
+ };
28
+ declare const TEXT_WEIGHT: {
29
+ readonly normal: "font-normal";
30
+ readonly medium: "font-medium";
31
+ readonly semibold: "font-semibold";
32
+ };
33
+ export interface TextProps extends HTMLAttributes<HTMLElement> {
34
+ as?: 'p' | 'span' | 'div';
35
+ size?: keyof typeof TEXT_SIZE;
36
+ tone?: keyof typeof TEXT_TONE;
37
+ weight?: keyof typeof TEXT_WEIGHT;
38
+ mono?: boolean;
39
+ }
40
+ /** Named text primitive — use instead of anonymous text markup. */
41
+ export declare function Text({ as: Tag, size, tone, weight, mono, className, ...props }: TextProps): import("react").JSX.Element;
42
+ export interface CodeProps extends HTMLAttributes<HTMLElement> {
43
+ tone?: 'default' | 'primary' | 'muted';
44
+ }
45
+ /**
46
+ * The signature primitive: an inline monospace chip for technical tokens —
47
+ * component ids, path tokens, issue codes. Reinforces the code-first identity.
48
+ */
49
+ export declare function Code({ tone, className, ...props }: CodeProps): import("react").JSX.Element;
50
+ export {};
@@ -0,0 +1,43 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from '../lib/utils';
3
+ const HEADING_SIZE = {
4
+ display: 'text-3xl md:text-4xl font-semibold tracking-tight',
5
+ h1: 'text-2xl font-semibold tracking-tight',
6
+ h2: 'text-xl font-semibold tracking-tight',
7
+ h3: 'text-base font-semibold tracking-tight',
8
+ h4: 'text-sm font-semibold tracking-tight',
9
+ eyebrow: 'text-[0.7rem] font-semibold uppercase tracking-[0.14em] text-muted-foreground',
10
+ };
11
+ const DEFAULT_SIZE_FOR_LEVEL = {
12
+ 1: 'h1',
13
+ 2: 'h2',
14
+ 3: 'h3',
15
+ 4: 'h4',
16
+ 5: 'h4',
17
+ 6: 'h4',
18
+ };
19
+ /** Named heading primitive — use instead of raw h1/h2/h3 (see AGENTS.md). */
20
+ export function Heading({ level = 2, size, className, ...props }) {
21
+ const Tag = `h${level}`;
22
+ const resolved = size ?? DEFAULT_SIZE_FOR_LEVEL[level] ?? 'h2';
23
+ return _jsx(Tag, { className: cn('text-foreground', HEADING_SIZE[resolved], className), ...props });
24
+ }
25
+ const TEXT_SIZE = { xs: 'text-xs', sm: 'text-sm', base: 'text-sm md:text-[0.95rem]', lg: 'text-base' };
26
+ const TEXT_TONE = {
27
+ default: 'text-foreground',
28
+ muted: 'text-muted-foreground',
29
+ subtle: 'text-muted-foreground/70',
30
+ };
31
+ const TEXT_WEIGHT = { normal: 'font-normal', medium: 'font-medium', semibold: 'font-semibold' };
32
+ /** Named text primitive — use instead of anonymous text markup. */
33
+ export function Text({ as: Tag = 'p', size = 'sm', tone = 'default', weight = 'normal', mono = false, className, ...props }) {
34
+ return (_jsx(Tag, { className: cn(TEXT_SIZE[size], TEXT_TONE[tone], TEXT_WEIGHT[weight], mono && 'font-mono', 'leading-relaxed', className), ...props }));
35
+ }
36
+ /**
37
+ * The signature primitive: an inline monospace chip for technical tokens —
38
+ * component ids, path tokens, issue codes. Reinforces the code-first identity.
39
+ */
40
+ export function Code({ tone = 'default', className, ...props }) {
41
+ return (_jsx("code", { className: cn('inline-flex items-center rounded-sm border px-1.5 py-0.5 font-mono text-[0.8em] leading-none', tone === 'default' && 'border-border bg-muted text-foreground/90', tone === 'primary' && 'border-primary/30 bg-primary/10 text-primary', tone === 'muted' && 'border-transparent bg-muted/60 text-muted-foreground', className), ...props }));
42
+ }
43
+ //# sourceMappingURL=typography.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typography.js","sourceRoot":"","sources":["../../src/ui/typography.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAA;AAEjC,MAAM,YAAY,GAAG;IACnB,OAAO,EAAE,mDAAmD;IAC5D,EAAE,EAAE,uCAAuC;IAC3C,EAAE,EAAE,sCAAsC;IAC1C,EAAE,EAAE,wCAAwC;IAC5C,EAAE,EAAE,sCAAsC;IAC1C,OAAO,EAAE,+EAA+E;CAChF,CAAA;AASV,MAAM,sBAAsB,GAAgC;IAC1D,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;CACR,CAAA;AAED,6EAA6E;AAC7E,MAAM,UAAU,OAAO,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAAgB;IAC5E,MAAM,GAAG,GAAG,IAAI,KAAK,EAAU,CAAA;IAC/B,MAAM,QAAQ,GAAG,IAAI,IAAI,sBAAsB,CAAC,KAAK,CAAC,IAAI,IAAI,CAAA;IAC9D,OAAO,KAAC,GAAG,IAAC,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAAA;AAChG,CAAC;AAED,MAAM,SAAS,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,2BAA2B,EAAE,EAAE,EAAE,WAAW,EAAW,CAAA;AAC/G,MAAM,SAAS,GAAG;IAChB,OAAO,EAAE,iBAAiB;IAC1B,KAAK,EAAE,uBAAuB;IAC9B,MAAM,EAAE,0BAA0B;CAC1B,CAAA;AACV,MAAM,WAAW,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAW,CAAA;AAUxG,mEAAmE;AACnE,MAAM,UAAU,IAAI,CAAC,EACnB,EAAE,EAAE,GAAG,GAAG,GAAG,EACb,IAAI,GAAG,IAAI,EACX,IAAI,GAAG,SAAS,EAChB,MAAM,GAAG,QAAQ,EACjB,IAAI,GAAG,KAAK,EACZ,SAAS,EACT,GAAG,KAAK,EACE;IACV,OAAO,CACL,KAAC,GAAG,IACF,SAAS,EAAE,EAAE,CACX,SAAS,CAAC,IAAI,CAAC,EACf,SAAS,CAAC,IAAI,CAAC,EACf,WAAW,CAAC,MAAM,CAAC,EACnB,IAAI,IAAI,WAAW,EACnB,iBAAiB,EACjB,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAMD;;;GAGG;AACH,MAAM,UAAU,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,EAAa;IACvE,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,8FAA8F,EAC9F,IAAI,KAAK,SAAS,IAAI,2CAA2C,EACjE,IAAI,KAAK,SAAS,IAAI,8CAA8C,EACpE,IAAI,KAAK,OAAO,IAAI,sDAAsD,EAC1E,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC"}
package/package.json ADDED
@@ -0,0 +1,149 @@
1
+ {
2
+ "name": "@elytracms/studio",
3
+ "author": "finaldream <hi@finaldream.de>",
4
+ "version": "0.0.1",
5
+ "private": false,
6
+ "description": "The Elytra studio engine (UI + lib + routes + data-only Convex schema) as an importable package. Extraction staged in EXTRACTION.md (EC-223); Stages 1-2 = UI primitives + router-free lib leaves.",
7
+ "license": "MIT",
8
+ "type": "module",
9
+ "exports": {
10
+ "./styles.css": "./src/styles/studio.css",
11
+ "./ui": {
12
+ "types": "./dist/ui/index.d.ts",
13
+ "default": "./dist/ui/index.js"
14
+ },
15
+ "./router": {
16
+ "types": "./dist/router/index.d.ts",
17
+ "default": "./dist/router/index.js"
18
+ },
19
+ "./router/*": {
20
+ "types": "./dist/router/*.d.ts",
21
+ "default": "./dist/router/*.js"
22
+ },
23
+ "./components/builder/canvas-stylesheet": {
24
+ "types": "./dist/components/builder/canvas-stylesheet.d.ts",
25
+ "default": "./dist/components/builder/canvas-stylesheet.js"
26
+ },
27
+ "./components/sections": {
28
+ "types": "./dist/components/sections.d.ts",
29
+ "default": "./dist/components/sections.js"
30
+ },
31
+ "./components/*": {
32
+ "types": "./dist/components/*.d.ts",
33
+ "default": "./dist/components/*.js"
34
+ },
35
+ "./lib/assets": {
36
+ "types": "./dist/lib/assets/index.d.ts",
37
+ "default": "./dist/lib/assets/index.js"
38
+ },
39
+ "./lib/clipboard": {
40
+ "types": "./dist/lib/clipboard/index.d.ts",
41
+ "default": "./dist/lib/clipboard/index.js"
42
+ },
43
+ "./lib/routing": {
44
+ "types": "./dist/lib/routing/index.d.ts",
45
+ "default": "./dist/lib/routing/index.js"
46
+ },
47
+ "./lib/workspace": {
48
+ "types": "./dist/lib/workspace/index.d.ts",
49
+ "default": "./dist/lib/workspace/index.js"
50
+ },
51
+ "./lib/registry": {
52
+ "types": "./dist/lib/registry/index.d.ts",
53
+ "default": "./dist/lib/registry/index.js"
54
+ },
55
+ "./lib/webhooks": {
56
+ "types": "./dist/lib/webhooks/index.d.ts",
57
+ "default": "./dist/lib/webhooks/index.js"
58
+ },
59
+ "./lib/persistence": {
60
+ "types": "./dist/lib/persistence/index.d.ts",
61
+ "default": "./dist/lib/persistence/index.js"
62
+ },
63
+ "./lib/operations": {
64
+ "types": "./dist/lib/operations/index.d.ts",
65
+ "default": "./dist/lib/operations/index.js"
66
+ },
67
+ "./lib/cms-views": {
68
+ "types": "./dist/lib/cms-views/index.d.ts",
69
+ "default": "./dist/lib/cms-views/index.js"
70
+ },
71
+ "./lib/references": {
72
+ "types": "./dist/lib/references/index.d.ts",
73
+ "default": "./dist/lib/references/index.js"
74
+ },
75
+ "./lib/data": {
76
+ "types": "./dist/lib/data/index.d.ts",
77
+ "default": "./dist/lib/data/index.js"
78
+ },
79
+ "./lib/locale": {
80
+ "types": "./dist/lib/locale/index.d.ts",
81
+ "default": "./dist/lib/locale/index.js"
82
+ },
83
+ "./lib/auth": {
84
+ "types": "./dist/lib/auth/index.d.ts",
85
+ "default": "./dist/lib/auth/index.js"
86
+ },
87
+ "./lib/*": {
88
+ "types": "./dist/lib/*.d.ts",
89
+ "default": "./dist/lib/*.js"
90
+ },
91
+ "./convex/*": "./convex/*.ts"
92
+ },
93
+ "files": [
94
+ "dist",
95
+ "convex",
96
+ "src/styles"
97
+ ],
98
+ "publishConfig": {
99
+ "access": "public"
100
+ },
101
+ "dependencies": {
102
+ "@auth/core": "^0.37.4",
103
+ "@convex-dev/auth": "^0.0.94",
104
+ "@fontsource-variable/hanken-grotesk": "^5.2.8",
105
+ "@fontsource-variable/jetbrains-mono": "^5.2.8",
106
+ "@radix-ui/react-dialog": "^1.1.16",
107
+ "@radix-ui/react-dropdown-menu": "^2.1.16",
108
+ "@radix-ui/react-slot": "^1.2.5",
109
+ "class-variance-authority": "^0.7.1",
110
+ "clsx": "^2.1.1",
111
+ "convex": "^1.40.0",
112
+ "lucide-react": "^1.17.0",
113
+ "tailwind-merge": "^3.6.0",
114
+ "zod": "^4.0.0",
115
+ "@elytracms/clipboard": "0.0.1",
116
+ "@elytracms/collaboration": "0.0.1",
117
+ "@elytracms/component-registry": "0.0.1",
118
+ "@elytracms/cms-core": "0.0.1",
119
+ "@elytracms/data-binding": "0.0.1",
120
+ "@elytracms/content": "0.0.1",
121
+ "@elytracms/operations": "0.0.1",
122
+ "@elytracms/rich-text": "0.0.1",
123
+ "@elytracms/project-graph": "0.0.1",
124
+ "@elytracms/runtime-renderer": "0.0.1",
125
+ "@elytracms/starter-kits": "0.0.1",
126
+ "@elytracms/plugins": "0.0.1",
127
+ "@elytracms/studio-core": "0.0.1",
128
+ "@elytracms/persistence": "0.0.1"
129
+ },
130
+ "peerDependencies": {
131
+ "@tanstack/react-router": "^1.170.0",
132
+ "react": "^19.0.0",
133
+ "react-dom": "^19.0.0",
134
+ "tailwindcss": "^4.3.0"
135
+ },
136
+ "devDependencies": {
137
+ "@tanstack/react-router": "^1.170.0",
138
+ "@types/react": "^19.0.0",
139
+ "@types/react-dom": "^19.0.0",
140
+ "react": "^19.0.0",
141
+ "react-dom": "^19.0.0",
142
+ "typescript": "^5.7.0"
143
+ },
144
+ "scripts": {
145
+ "build": "tsc -p tsconfig.build.json",
146
+ "typecheck": "tsc --noEmit && tsc -p convex/tsconfig.json --noEmit",
147
+ "lint": "eslint src"
148
+ }
149
+ }
@@ -0,0 +1,101 @@
1
+ @import 'tailwindcss';
2
+ /*
3
+ * EC-223 Stage 6: the studio ships its OWN stylesheet — a consumer imports this one
4
+ * file (`@elytracms/studio/styles.css`) and gets the whole design system. The studio's
5
+ * components resolve through a node_modules symlink, which Tailwind v4 auto-detection
6
+ * skips, so scan the package source explicitly (relative to this file) or its utility
7
+ * classes get purged. The consuming app's own files are auto-detected by Tailwind (the
8
+ * build root), so they need no entry here.
9
+ */
10
+ @source '../**/*.{ts,tsx}';
11
+ @import '@fontsource-variable/hanken-grotesk';
12
+ @import '@fontsource-variable/jetbrains-mono';
13
+ /*
14
+ * Design-token CSS variables (`:root` + `.dark`) are GENERATED from the canonical
15
+ * @elytracms/design-tokens package. Edit tokens there and run `pnpm gen:tokens`.
16
+ * Cool-slate neutrals + a confident cobalt accent; monospace carries every technical
17
+ * token (component ids, path tokens, issue codes) to reinforce the code-first identity.
18
+ */
19
+ @import './tokens.css';
20
+
21
+ /* Dark mode driven by a `.dark` class on <html>. */
22
+ @custom-variant dark (&:where(.dark, .dark *));
23
+
24
+ @theme inline {
25
+ --color-background: var(--background);
26
+ --color-foreground: var(--foreground);
27
+ --color-card: var(--card);
28
+ --color-card-foreground: var(--card-foreground);
29
+ --color-panel: var(--panel);
30
+ --color-panel-foreground: var(--panel-foreground);
31
+ --color-popover: var(--popover);
32
+ --color-popover-foreground: var(--popover-foreground);
33
+ --color-muted: var(--muted);
34
+ --color-muted-foreground: var(--muted-foreground);
35
+ --color-border: var(--border);
36
+ --color-input: var(--input);
37
+ --color-ring: var(--ring);
38
+ --color-primary: var(--primary);
39
+ --color-primary-foreground: var(--primary-foreground);
40
+ --color-secondary: var(--secondary);
41
+ --color-secondary-foreground: var(--secondary-foreground);
42
+ --color-accent: var(--accent);
43
+ --color-accent-foreground: var(--accent-foreground);
44
+ --color-success: var(--success);
45
+ --color-success-foreground: var(--success-foreground);
46
+ --color-warning: var(--warning);
47
+ --color-warning-foreground: var(--warning-foreground);
48
+ --color-destructive: var(--destructive);
49
+ --color-destructive-foreground: var(--destructive-foreground);
50
+ --color-info: var(--info);
51
+ --color-info-foreground: var(--info-foreground);
52
+
53
+ --font-sans: 'Hanken Grotesk Variable', ui-sans-serif, system-ui, sans-serif;
54
+ --font-mono: 'JetBrains Mono Variable', ui-monospace, 'SF Mono', monospace;
55
+
56
+ --radius-sm: calc(var(--radius) - 4px);
57
+ --radius-md: calc(var(--radius) - 2px);
58
+ --radius-lg: var(--radius);
59
+ --radius-xl: calc(var(--radius) + 4px);
60
+ }
61
+
62
+ @layer base {
63
+ * {
64
+ border-color: var(--color-border);
65
+ }
66
+ html {
67
+ font-family: var(--font-sans);
68
+ -webkit-text-size-adjust: 100%;
69
+ font-feature-settings: 'cv01', 'cv03', 'ss01';
70
+ text-rendering: optimizeLegibility;
71
+ -webkit-font-smoothing: antialiased;
72
+ }
73
+ body {
74
+ background-color: var(--color-background);
75
+ color: var(--color-foreground);
76
+ margin: 0;
77
+ }
78
+ ::selection {
79
+ background-color: color-mix(in oklch, var(--color-primary) 28%, transparent);
80
+ }
81
+ /* Refined focus rings everywhere. */
82
+ :focus-visible {
83
+ outline: 2px solid var(--color-ring);
84
+ outline-offset: 2px;
85
+ }
86
+ }
87
+
88
+ /* The canvas dot-grid — the signature backdrop for editing surfaces. */
89
+ @utility canvas-grid {
90
+ background-image: radial-gradient(var(--grid-line) 1px, transparent 1px);
91
+ background-size: 16px 16px;
92
+ background-position: -1px -1px;
93
+ }
94
+
95
+ /* Subtle hairline emphasis used by panels/toolbars. */
96
+ @utility hairline-b {
97
+ box-shadow: inset 0 -1px 0 0 var(--color-border);
98
+ }
99
+ @utility hairline-t {
100
+ box-shadow: inset 0 1px 0 0 var(--color-border);
101
+ }
@@ -0,0 +1,63 @@
1
+ /* GENERATED from @elytracms/design-tokens — do not edit by hand. Run `pnpm gen:tokens`. */
2
+ :root {
3
+ --background: oklch(0.985 0.002 250);
4
+ --foreground: oklch(0.21 0.02 264);
5
+ --card: oklch(1 0 0);
6
+ --card-foreground: var(--foreground);
7
+ --panel: oklch(0.974 0.003 255);
8
+ --panel-foreground: var(--foreground);
9
+ --popover: oklch(1 0 0);
10
+ --popover-foreground: var(--foreground);
11
+ --muted: oklch(0.955 0.004 255);
12
+ --muted-foreground: oklch(0.5 0.018 260);
13
+ --border: oklch(0.908 0.005 260);
14
+ --input: oklch(0.908 0.005 260);
15
+ --ring: oklch(0.55 0.17 256);
16
+ --primary: oklch(0.55 0.17 256);
17
+ --primary-foreground: oklch(0.99 0.005 250);
18
+ --secondary: oklch(0.955 0.004 255);
19
+ --secondary-foreground: oklch(0.3 0.02 264);
20
+ --accent: oklch(0.95 0.022 256);
21
+ --accent-foreground: oklch(0.36 0.07 256);
22
+ --success: oklch(0.58 0.13 150);
23
+ --success-foreground: oklch(0.99 0.01 150);
24
+ --warning: oklch(0.68 0.14 70);
25
+ --warning-foreground: oklch(0.24 0.04 70);
26
+ --destructive: oklch(0.57 0.2 27);
27
+ --destructive-foreground: oklch(0.99 0.01 27);
28
+ --info: oklch(0.56 0.12 248);
29
+ --info-foreground: oklch(0.99 0.01 248);
30
+ --grid-line: oklch(0.8 0.01 260 / 0.5);
31
+ --radius: 0.5rem;
32
+ }
33
+
34
+ .dark {
35
+ --background: oklch(0.176 0.012 264);
36
+ --foreground: oklch(0.95 0.005 250);
37
+ --card: oklch(0.205 0.013 264);
38
+ --card-foreground: var(--foreground);
39
+ --panel: oklch(0.196 0.013 264);
40
+ --panel-foreground: var(--foreground);
41
+ --popover: oklch(0.214 0.013 264);
42
+ --popover-foreground: var(--foreground);
43
+ --muted: oklch(0.256 0.013 264);
44
+ --muted-foreground: oklch(0.66 0.02 258);
45
+ --border: oklch(0.278 0.013 264);
46
+ --input: oklch(0.3 0.013 264);
47
+ --ring: oklch(0.66 0.16 256);
48
+ --primary: oklch(0.66 0.16 256);
49
+ --primary-foreground: oklch(0.16 0.02 264);
50
+ --secondary: oklch(0.256 0.013 264);
51
+ --secondary-foreground: oklch(0.92 0.005 250);
52
+ --accent: oklch(0.288 0.03 256);
53
+ --accent-foreground: oklch(0.88 0.03 256);
54
+ --success: oklch(0.7 0.14 150);
55
+ --success-foreground: oklch(0.16 0.03 150);
56
+ --warning: oklch(0.79 0.14 75);
57
+ --warning-foreground: oklch(0.2 0.04 75);
58
+ --destructive: oklch(0.67 0.18 25);
59
+ --destructive-foreground: oklch(0.16 0.03 25);
60
+ --info: oklch(0.7 0.13 245);
61
+ --info-foreground: oklch(0.16 0.03 245);
62
+ --grid-line: oklch(0.5 0.012 264 / 0.32);
63
+ }