@elytracms/studio 0.0.51 → 0.0.53

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 (311) hide show
  1. package/convex/auth.ts +135 -62
  2. package/convex/invites.ts +77 -0
  3. package/dist/components/account/account-settings.js +4 -4
  4. package/dist/components/account/credential-panel.js +1 -1
  5. package/dist/components/account/self-account-view-source.js +3 -3
  6. package/dist/components/ai/ai-chat-panel-lazy.js +1 -1
  7. package/dist/components/ai/ai-chat-panel.js +4 -4
  8. package/dist/components/ai/ai-cms-panel.js +1 -1
  9. package/dist/components/ai/proposal-card.js +4 -4
  10. package/dist/components/ai/translate-document-action.js +1 -1
  11. package/dist/components/ai/translate-document-dialog.d.ts +1 -1
  12. package/dist/components/app-views/default-modules.d.ts +3 -3
  13. package/dist/components/app-views/default-modules.js +20 -20
  14. package/dist/components/app-views/sidebar.d.ts +1 -1
  15. package/dist/components/app-views/sidebar.js +2 -2
  16. package/dist/components/app-views/studio-config.d.ts +1 -1
  17. package/dist/components/assets/asset-detail.js +9 -9
  18. package/dist/components/assets/asset-grid.js +7 -7
  19. package/dist/components/assets/asset-thumb.d.ts +1 -1
  20. package/dist/components/assets/asset-thumb.js +2 -2
  21. package/dist/components/assets/assets-collection-view-source.js +3 -3
  22. package/dist/components/assets/assets-module.js +8 -8
  23. package/dist/components/assets/assets-store.d.ts +1 -1
  24. package/dist/components/assets/assets-store.js +1 -1
  25. package/dist/components/builder/blocks-model.js +1 -1
  26. package/dist/components/builder/blocks-panel.d.ts +1 -1
  27. package/dist/components/builder/blocks-panel.js +6 -6
  28. package/dist/components/builder/canvas.js +11 -11
  29. package/dist/components/builder/clipboard-actions.js +2 -2
  30. package/dist/components/builder/composition-field-editor-lazy.d.ts +1 -1
  31. package/dist/components/builder/composition-field-editor-lazy.js +1 -1
  32. package/dist/components/builder/composition-field-editor.d.ts +1 -1
  33. package/dist/components/builder/composition-field-editor.js +9 -9
  34. package/dist/components/builder/insert-context.d.ts +2 -2
  35. package/dist/components/builder/insert-context.js +2 -2
  36. package/dist/components/builder/insert-menu.d.ts +2 -2
  37. package/dist/components/builder/insert-menu.js +1 -1
  38. package/dist/components/builder/layout-inspector.js +1 -1
  39. package/dist/components/builder/page-tree.js +5 -5
  40. package/dist/components/builder/property-inspector.js +3 -3
  41. package/dist/components/builder/reuse-context.d.ts +1 -1
  42. package/dist/components/builder/reuse-context.js +3 -3
  43. package/dist/components/builder/spacing-handles.js +2 -2
  44. package/dist/components/cms/asset-picker.js +4 -4
  45. package/dist/components/cms/bulk-actions.js +1 -1
  46. package/dist/components/cms/bulk-bar.d.ts +1 -1
  47. package/dist/components/cms/bulk-bar.js +3 -3
  48. package/dist/components/cms/cell-edit.js +1 -1
  49. package/dist/components/cms/cell.js +2 -2
  50. package/dist/components/cms/cms-index.js +1 -1
  51. package/dist/components/cms/cms-store.d.ts +2 -2
  52. package/dist/components/cms/cms-store.js +6 -6
  53. package/dist/components/cms/collection-table.js +17 -17
  54. package/dist/components/cms/detail-editor.js +31 -31
  55. package/dist/components/cms/document-diff-view.js +4 -4
  56. package/dist/components/cms/editable-cell.d.ts +1 -1
  57. package/dist/components/cms/editable-cell.js +6 -6
  58. package/dist/components/cms/field-control.js +15 -15
  59. package/dist/components/cms/field-renderer.d.ts +2 -2
  60. package/dist/components/cms/filter-builder.js +3 -3
  61. package/dist/components/cms/import-export.js +1 -1
  62. package/dist/components/cms/issues-pane.js +1 -1
  63. package/dist/components/cms/prop-fields.js +3 -3
  64. package/dist/components/cms/reference-confirm.js +1 -1
  65. package/dist/components/cms/relation-picker.js +1 -1
  66. package/dist/components/cms/rich-text/block-commands.d.ts +1 -1
  67. package/dist/components/cms/rich-text/component-embed.js +2 -2
  68. package/dist/components/cms/rich-text/editor.js +8 -8
  69. package/dist/components/cms/rich-text/embed-inspector.d.ts +1 -1
  70. package/dist/components/cms/rich-text/embed-inspector.js +2 -2
  71. package/dist/components/cms/rich-text/embed-picker.js +1 -1
  72. package/dist/components/cms/rich-text/embed-props.js +1 -1
  73. package/dist/components/cms/rich-text/extensions.d.ts +1 -1
  74. package/dist/components/cms/rich-text/extensions.js +4 -4
  75. package/dist/components/cms/rich-text/index.d.ts +1 -1
  76. package/dist/components/cms/rich-text/index.js +1 -1
  77. package/dist/components/cms/rich-text/insert.d.ts +1 -1
  78. package/dist/components/cms/rich-text/lazy.d.ts +1 -1
  79. package/dist/components/cms/rich-text/lazy.js +1 -1
  80. package/dist/components/cms/rich-text/slash-command.js +1 -1
  81. package/dist/components/cms/rich-text/toolbar.d.ts +1 -1
  82. package/dist/components/cms/rich-text/toolbar.js +4 -4
  83. package/dist/components/cms/use-cell-edit.d.ts +1 -1
  84. package/dist/components/cms/use-cell-edit.js +2 -2
  85. package/dist/components/cms/use-compare-selection.d.ts +1 -1
  86. package/dist/components/cms/use-discard-controller.d.ts +1 -1
  87. package/dist/components/cms/use-discard-controller.js +2 -2
  88. package/dist/components/cms/use-document-versions.d.ts +1 -1
  89. package/dist/components/cms/use-document-versions.js +1 -1
  90. package/dist/components/cms/use-embed-inspector-host.d.ts +1 -1
  91. package/dist/components/cms/use-published-perspective.d.ts +2 -2
  92. package/dist/components/cms/use-published-perspective.js +2 -2
  93. package/dist/components/cms/use-restore-version.js +1 -1
  94. package/dist/components/cms/version-compare-lazy.js +1 -1
  95. package/dist/components/cms/version-compare.js +6 -6
  96. package/dist/components/cms/versions-model.d.ts +1 -1
  97. package/dist/components/cms/versions-pane.js +5 -5
  98. package/dist/components/cms/view-bar.js +2 -2
  99. package/dist/components/collab/collab-context.js +1 -1
  100. package/dist/components/collection-view/cms-collection-view-source.js +2 -2
  101. package/dist/components/components/component-preview.js +3 -3
  102. package/dist/components/components/components-index.js +2 -2
  103. package/dist/components/components/registry-browser.js +2 -2
  104. package/dist/components/components/transfer-dialog.js +5 -5
  105. package/dist/components/components/transfer.js +4 -4
  106. package/dist/components/current-user-menu.js +2 -2
  107. package/dist/components/delivery-health-banner.js +2 -2
  108. package/dist/components/operation-error.js +1 -1
  109. package/dist/components/project-list.js +5 -5
  110. package/dist/components/project-session.js +1 -1
  111. package/dist/components/project-switcher.js +3 -3
  112. package/dist/components/rail-store-status.js +1 -1
  113. package/dist/components/redirects/redirects-collection-view-source.js +3 -3
  114. package/dist/components/redirects/redirects-module.js +6 -6
  115. package/dist/components/section-nav.js +3 -3
  116. package/dist/components/section-surface.js +1 -1
  117. package/dist/components/studio-project-screen.js +7 -7
  118. package/dist/components/studio-shell.js +9 -9
  119. package/dist/components/use-hydration-phase.js +1 -1
  120. package/dist/components/users/users-collection-view-source.js +4 -4
  121. package/dist/components/users/users-module.js +9 -9
  122. package/dist/components/workspace-projects.js +1 -1
  123. package/dist/customization.d.ts +9 -9
  124. package/dist/customization.js +5 -5
  125. package/dist/lib/ai/anthropic-provider.d.ts +1 -1
  126. package/dist/lib/ai/apply-content.d.ts +1 -1
  127. package/dist/lib/ai/apply-content.js +3 -3
  128. package/dist/lib/ai/chat-state.d.ts +2 -2
  129. package/dist/lib/ai/config.d.ts +1 -1
  130. package/dist/lib/ai/create-flow.d.ts +2 -2
  131. package/dist/lib/ai/create-flow.js +3 -3
  132. package/dist/lib/ai/fake-provider.d.ts +1 -1
  133. package/dist/lib/ai/index.d.ts +15 -15
  134. package/dist/lib/ai/index.js +15 -15
  135. package/dist/lib/ai/knowledge.d.ts +1 -1
  136. package/dist/lib/ai/provenance.d.ts +1 -1
  137. package/dist/lib/ai/route-provider.d.ts +1 -1
  138. package/dist/lib/ai/route.d.ts +1 -1
  139. package/dist/lib/ai/shape.d.ts +1 -1
  140. package/dist/lib/ai/translate-document.d.ts +1 -1
  141. package/dist/lib/ai/translate-document.js +3 -3
  142. package/dist/lib/ai-panel.js +1 -1
  143. package/dist/lib/assets/index.d.ts +4 -4
  144. package/dist/lib/assets/index.js +4 -4
  145. package/dist/lib/assets/upload.d.ts +2 -2
  146. package/dist/lib/assets/upload.js +2 -2
  147. package/dist/lib/auth/convex-auth-adapter.d.ts +53 -2
  148. package/dist/lib/auth/convex-auth-adapter.js +149 -68
  149. package/dist/lib/auth/convex-auth-adapter.js.map +1 -1
  150. package/dist/lib/auth/dev-auto-login-adapter.d.ts +1 -1
  151. package/dist/lib/auth/index.d.ts +9 -9
  152. package/dist/lib/auth/index.js +10 -10
  153. package/dist/lib/auth/local-auth-adapter.d.ts +1 -1
  154. package/dist/lib/auth/route-guard.d.ts +1 -1
  155. package/dist/lib/auth-errors.d.ts +1 -1
  156. package/dist/lib/clipboard/index.d.ts +3 -3
  157. package/dist/lib/clipboard/index.js +3 -3
  158. package/dist/lib/cms/published-documents.d.ts +1 -1
  159. package/dist/lib/cms-views/index.d.ts +2 -2
  160. package/dist/lib/cms-views/index.js +2 -2
  161. package/dist/lib/collection-view/collection-view-source.d.ts +4 -4
  162. package/dist/lib/data/collection-content.js +1 -1
  163. package/dist/lib/data/data-store.js +6 -6
  164. package/dist/lib/data/index.d.ts +4 -4
  165. package/dist/lib/data/index.js +4 -4
  166. package/dist/lib/data/sample-capture.js +4 -4
  167. package/dist/lib/data/sources-store.d.ts +1 -1
  168. package/dist/lib/diff-view-preference.js +1 -1
  169. package/dist/lib/dnd/gap-drag.d.ts +1 -1
  170. package/dist/lib/i18n/i18n.d.ts +1 -1
  171. package/dist/lib/i18n/i18n.js +1 -1
  172. package/dist/lib/i18n/index.d.ts +4 -4
  173. package/dist/lib/i18n/index.js +3 -3
  174. package/dist/lib/i18n/messages.en.d.ts +1 -1
  175. package/dist/lib/i18n/messages.en.js +1 -1
  176. package/dist/lib/locale/binding-fallback.d.ts +1 -1
  177. package/dist/lib/locale/binding-fallback.js +2 -2
  178. package/dist/lib/locale/index.d.ts +6 -6
  179. package/dist/lib/locale/index.js +6 -6
  180. package/dist/lib/locale/locale-switcher.js +3 -3
  181. package/dist/lib/locale/use-studio-locale.js +1 -1
  182. package/dist/lib/operations/asset-repository.d.ts +1 -1
  183. package/dist/lib/operations/cms-persistence.d.ts +1 -1
  184. package/dist/lib/operations/cms-persistence.js +1 -1
  185. package/dist/lib/operations/index.d.ts +6 -6
  186. package/dist/lib/operations/index.js +6 -6
  187. package/dist/lib/operations/session-hydration.d.ts +1 -1
  188. package/dist/lib/operations/session-hydration.js +1 -1
  189. package/dist/lib/operations/studio-operations.d.ts +1 -1
  190. package/dist/lib/operations/studio-operations.js +3 -3
  191. package/dist/lib/persistence/convex-adapter.js +2 -2
  192. package/dist/lib/persistence/convex-blob-storage.d.ts +1 -1
  193. package/dist/lib/persistence/convex-blob-storage.js +1 -1
  194. package/dist/lib/persistence/deployment-readiness.d.ts +2 -2
  195. package/dist/lib/persistence/index.d.ts +6 -6
  196. package/dist/lib/persistence/index.js +7 -7
  197. package/dist/lib/persona/labels.js +1 -1
  198. package/dist/lib/query/index.d.ts +2 -2
  199. package/dist/lib/query/index.js +1 -1
  200. package/dist/lib/rail.js +1 -1
  201. package/dist/lib/references/impact.d.ts +1 -1
  202. package/dist/lib/references/impact.js +1 -1
  203. package/dist/lib/references/index.d.ts +3 -3
  204. package/dist/lib/references/index.js +3 -3
  205. package/dist/lib/references/references-store.d.ts +2 -2
  206. package/dist/lib/references/references-store.js +3 -3
  207. package/dist/lib/registry/index.js +2 -2
  208. package/dist/lib/theme.js +1 -1
  209. package/dist/lib/webhooks/config.d.ts +1 -1
  210. package/dist/lib/webhooks/config.js +2 -2
  211. package/dist/lib/webhooks/dispatcher.js +2 -2
  212. package/dist/lib/webhooks/index.d.ts +6 -6
  213. package/dist/lib/webhooks/index.js +4 -4
  214. package/dist/lib/workspace/index.d.ts +7 -7
  215. package/dist/lib/workspace/index.js +3 -3
  216. package/dist/lib/workspace/switcher-source.d.ts +1 -1
  217. package/dist/router/index.d.ts +1 -1
  218. package/dist/router/index.js +1 -1
  219. package/dist/ui/avatar.js +1 -1
  220. package/dist/ui/badge.js +1 -1
  221. package/dist/ui/button.js +1 -1
  222. package/dist/ui/card.js +1 -1
  223. package/dist/ui/collapsible-section.js +2 -2
  224. package/dist/ui/dialog.js +1 -1
  225. package/dist/ui/dropdown-menu.js +1 -1
  226. package/dist/ui/field.js +1 -1
  227. package/dist/ui/index.d.ts +19 -19
  228. package/dist/ui/index.js +19 -19
  229. package/dist/ui/input.js +1 -1
  230. package/dist/ui/inspector.js +1 -1
  231. package/dist/ui/layout.js +1 -1
  232. package/dist/ui/panel.js +2 -2
  233. package/dist/ui/popover.js +1 -1
  234. package/dist/ui/row-item.js +2 -2
  235. package/dist/ui/segmented-control.js +1 -1
  236. package/dist/ui/separator.js +1 -1
  237. package/dist/ui/toolbar.js +2 -2
  238. package/dist/ui/typography.js +1 -1
  239. package/package.json +3 -3
  240. package/dist/components/assets/asset-library.d.ts +0 -14
  241. package/dist/components/assets/asset-library.js +0 -202
  242. package/dist/components/assets/asset-library.js.map +0 -1
  243. package/dist/components/backend-gate.d.ts +0 -19
  244. package/dist/components/backend-gate.js +0 -64
  245. package/dist/components/backend-gate.js.map +0 -1
  246. package/dist/components/builder/composition-scope.d.ts +0 -16
  247. package/dist/components/builder/composition-scope.js +0 -7
  248. package/dist/components/builder/composition-scope.js.map +0 -1
  249. package/dist/components/cms/alias-selector.d.ts +0 -20
  250. package/dist/components/cms/alias-selector.js +0 -34
  251. package/dist/components/cms/alias-selector.js.map +0 -1
  252. package/dist/components/cms/collections-sidebar.d.ts +0 -18
  253. package/dist/components/cms/collections-sidebar.js +0 -36
  254. package/dist/components/cms/collections-sidebar.js.map +0 -1
  255. package/dist/components/cms/new-page-dialog.d.ts +0 -22
  256. package/dist/components/cms/new-page-dialog.js +0 -42
  257. package/dist/components/cms/new-page-dialog.js.map +0 -1
  258. package/dist/components/cms/rich-text/embed-control.d.ts +0 -17
  259. package/dist/components/cms/rich-text/embed-control.js +0 -62
  260. package/dist/components/cms/rich-text/embed-control.js.map +0 -1
  261. package/dist/components/cms/rich-text/image-control.d.ts +0 -16
  262. package/dist/components/cms/rich-text/image-control.js +0 -36
  263. package/dist/components/cms/rich-text/image-control.js.map +0 -1
  264. package/dist/components/components/fixture-runner.d.ts +0 -10
  265. package/dist/components/components/fixture-runner.js +0 -27
  266. package/dist/components/components/fixture-runner.js.map +0 -1
  267. package/dist/components/references/builder-deep-link.d.ts +0 -12
  268. package/dist/components/references/builder-deep-link.js +0 -53
  269. package/dist/components/references/builder-deep-link.js.map +0 -1
  270. package/dist/components/routes/redirect-chain.d.ts +0 -9
  271. package/dist/components/routes/redirect-chain.js +0 -16
  272. package/dist/components/routes/redirect-chain.js.map +0 -1
  273. package/dist/components/routes/redirect-manager.d.ts +0 -13
  274. package/dist/components/routes/redirect-manager.js +0 -24
  275. package/dist/components/routes/redirect-manager.js.map +0 -1
  276. package/dist/components/routes/route-list.d.ts +0 -35
  277. package/dist/components/routes/route-list.js +0 -69
  278. package/dist/components/routes/route-list.js.map +0 -1
  279. package/dist/components/routes/routes-shell.d.ts +0 -14
  280. package/dist/components/routes/routes-shell.js +0 -68
  281. package/dist/components/routes/routes-shell.js.map +0 -1
  282. package/dist/components/sections.d.ts +0 -37
  283. package/dist/components/sections.js +0 -62
  284. package/dist/components/sections.js.map +0 -1
  285. package/dist/components/users/user-search.d.ts +0 -8
  286. package/dist/components/users/user-search.js +0 -13
  287. package/dist/components/users/user-search.js.map +0 -1
  288. package/dist/components/workspace-gate.d.ts +0 -12
  289. package/dist/components/workspace-gate.js +0 -28
  290. package/dist/components/workspace-gate.js.map +0 -1
  291. package/dist/lib/cms-views/views-store.d.ts +0 -70
  292. package/dist/lib/cms-views/views-store.js +0 -129
  293. package/dist/lib/cms-views/views-store.js.map +0 -1
  294. package/dist/lib/operations/graph-commands.d.ts +0 -136
  295. package/dist/lib/operations/graph-commands.js +0 -85
  296. package/dist/lib/operations/graph-commands.js.map +0 -1
  297. package/dist/lib/operations/graph-persistence.d.ts +0 -27
  298. package/dist/lib/operations/graph-persistence.js +0 -35
  299. package/dist/lib/operations/graph-persistence.js.map +0 -1
  300. package/dist/lib/routing/index.d.ts +0 -10
  301. package/dist/lib/routing/index.js +0 -11
  302. package/dist/lib/routing/index.js.map +0 -1
  303. package/dist/lib/routing/routing-analysis.d.ts +0 -26
  304. package/dist/lib/routing/routing-analysis.js +0 -37
  305. package/dist/lib/routing/routing-analysis.js.map +0 -1
  306. package/dist/lib/routing/routing-store.d.ts +0 -50
  307. package/dist/lib/routing/routing-store.js +0 -72
  308. package/dist/lib/routing/routing-store.js.map +0 -1
  309. package/dist/lib/working-graph.d.ts +0 -82
  310. package/dist/lib/working-graph.js +0 -113
  311. package/dist/lib/working-graph.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  import { captureSample } from '@elytracms/core/data-binding';
2
- import { humanizeName } from '../utils';
3
- import { listQueryOfConfig } from '../bindings/section-bindings';
4
- import { getCollectionDocument, hasContentSession, playgroundCollection, runCollectionListQuery, } from './collection-content';
5
- import { providerIdOfSource, providerPayload } from './providers';
2
+ import { humanizeName } from '../utils.js';
3
+ import { listQueryOfConfig } from '../bindings/section-bindings.js';
4
+ import { getCollectionDocument, hasContentSession, playgroundCollection, runCollectionListQuery, } from './collection-content.js';
5
+ import { providerIdOfSource, providerPayload } from './providers.js';
6
6
  /**
7
7
  * Data-source sample capture (EC-083/EC-166/EC-167). The hosted builder is
8
8
  * separate from the site it exports: actually performing a REST fetch / external
@@ -1,6 +1,6 @@
1
1
  import type { DataSource } from '@elytracms/core/data-binding';
2
2
  import type { CmsDocument, CollectionDef } from '@elytracms/core/cms-core';
3
- import type { OperationResult, OperationsClient } from '../operations';
3
+ import type { OperationResult, OperationsClient } from '../operations/index.js';
4
4
  /**
5
5
  * Data-source persistence for the Builder's data layer (LIVE-mode gap fix).
6
6
  *
@@ -6,7 +6,7 @@
6
6
  * best-effort instead of a new persistence mechanism. Unavailable storage (SSR,
7
7
  * privacy mode) degrades to the default every session — never a crash.
8
8
  */
9
- import { createEnumPreference } from './local-preference';
9
+ import { createEnumPreference } from './local-preference.js';
10
10
  export const DIFF_VIEW_STORAGE_KEY = 'elytra-version-diff-view';
11
11
  export const DEFAULT_DIFF_VIEW_MODE = 'sideBySide';
12
12
  const preference = createEnumPreference(DIFF_VIEW_STORAGE_KEY, ['sideBySide', 'unified'], DEFAULT_DIFF_VIEW_MODE);
@@ -1,5 +1,5 @@
1
1
  import type { ComponentNode, SpacingTokenName } from '@elytracms/core/project-graph';
2
- import type { FlowAxis } from './drop-rules';
2
+ import type { FlowAxis } from './drop-rules.js';
3
3
  /**
4
4
  * Tokenized gap-drag math (EC-163, vision §3.1 / AD-10) — pure functions with
5
5
  * no DOM dependencies, shared by the canvas spacing handles. The drag model is
@@ -1,5 +1,5 @@
1
1
  import type { LocalizedString } from '@elytracms/core/cms-core';
2
- import type { MessageCatalog, SourceCatalog } from './types';
2
+ import type { MessageCatalog, SourceCatalog } from './types.js';
3
3
  /**
4
4
  * Pick the best available locale for the browser's ordered language preferences
5
5
  * (EC-241): an exact tag match wins, else the base language (`de-DE` → `de`), else
@@ -1,7 +1,7 @@
1
1
  import { useMemo } from 'react';
2
2
  import { resolveLabel } from '@elytracms/core/cms-core';
3
3
  import { resolveDeploymentI18n } from '@elytracms/studio/lib/workspace';
4
- import { EN_MESSAGES } from './messages.en';
4
+ import { EN_MESSAGES } from './messages.en.js';
5
5
  /**
6
6
  * Studio-UI localization runtime (EC-241). Resolves the active UI locale from the
7
7
  * **browser's preferred locale** (no persisted selector in v1 — that rides EC-240's
@@ -6,7 +6,7 @@
6
6
  * - Studio components localize chrome via `translate`/`useT` and schema labels via
7
7
  * `useLabel`.
8
8
  */
9
- export type { SourceMessage, SourceCatalog, MessageCatalog, StudioI18nConfig } from './types';
10
- export { msg } from './types';
11
- export { EN_MESSAGES } from './messages.en';
12
- export { resolveActiveLocale, resolveStudioI18n, translate, localizedLabel, msgLabel, resolveMsgLabel, useT, useUiLocale, useLabel, parseAcceptLanguage, setServerLanguagesResolver, setUiLocaleForTests, resetStudioI18nForTests, } from './i18n';
9
+ export type { SourceMessage, SourceCatalog, MessageCatalog, StudioI18nConfig } from './types.js';
10
+ export { msg } from './types.js';
11
+ export { EN_MESSAGES } from './messages.en.js';
12
+ export { resolveActiveLocale, resolveStudioI18n, translate, localizedLabel, msgLabel, resolveMsgLabel, useT, useUiLocale, useLabel, parseAcceptLanguage, setServerLanguagesResolver, setUiLocaleForTests, resetStudioI18nForTests, } from './i18n.js';
@@ -1,4 +1,4 @@
1
- export { msg } from './types';
2
- export { EN_MESSAGES } from './messages.en';
3
- export { resolveActiveLocale, resolveStudioI18n, translate, localizedLabel, msgLabel, resolveMsgLabel, useT, useUiLocale, useLabel, parseAcceptLanguage, setServerLanguagesResolver, setUiLocaleForTests, resetStudioI18nForTests, } from './i18n';
1
+ export { msg } from './types.js';
2
+ export { EN_MESSAGES } from './messages.en.js';
3
+ export { resolveActiveLocale, resolveStudioI18n, translate, localizedLabel, msgLabel, resolveMsgLabel, useT, useUiLocale, useLabel, parseAcceptLanguage, setServerLanguagesResolver, setUiLocaleForTests, resetStudioI18nForTests, } from './i18n.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import type { SourceCatalog } from './types';
1
+ import type { SourceCatalog } from './types.js';
2
2
  /**
3
3
  * The engine's built-in **English source catalog** (EC-241) — the source of truth
4
4
  * and the ultimate fallback for every studio-chrome string. A consumer adds a
@@ -1,4 +1,4 @@
1
- import { msg } from './types';
1
+ import { msg } from './types.js';
2
2
  /**
3
3
  * The engine's built-in **English source catalog** (EC-241) — the source of truth
4
4
  * and the ultimate fallback for every studio-chrome string. A consumer adds a
@@ -1,7 +1,7 @@
1
1
  import type { Locale } from '@elytracms/core/cms-core';
2
2
  import type { BindingReference } from '@elytracms/core/project-graph';
3
3
  import type { DataSource } from '@elytracms/core/data-binding';
4
- import type { DisplayedFallback } from './fallback';
4
+ import type { DisplayedFallback } from './fallback.js';
5
5
  /**
6
6
  * Fallback visibility for BOUND content (EC-176): given a stored content
7
7
  * binding and its CMS source, decide whether the value the canvas currently
@@ -1,5 +1,5 @@
1
- import { listQueryOfConfig } from '../bindings/section-bindings';
2
- import { getCollectionDocument, runCollectionListQuery } from '../data/collection-content';
1
+ import { listQueryOfConfig } from '../bindings/section-bindings.js';
2
+ import { getCollectionDocument, runCollectionListQuery } from '../data/collection-content.js';
3
3
  function isCmsSource(source) {
4
4
  return source.kind === 'cms';
5
5
  }
@@ -1,6 +1,6 @@
1
- export * from './locale-store';
2
- export * from './fallback';
3
- export * from './route-variant';
4
- export * from './binding-fallback';
5
- export * from './use-studio-locale';
6
- export * from './locale-switcher';
1
+ export * from './locale-store.js';
2
+ export * from './fallback.js';
3
+ export * from './route-variant.js';
4
+ export * from './binding-fallback.js';
5
+ export * from './use-studio-locale.js';
6
+ export * from './locale-switcher.js';
@@ -1,7 +1,7 @@
1
- export * from './locale-store';
2
- export * from './fallback';
3
- export * from './route-variant';
4
- export * from './binding-fallback';
5
- export * from './use-studio-locale';
6
- export * from './locale-switcher';
1
+ export * from './locale-store.js';
2
+ export * from './fallback.js';
3
+ export * from './route-variant.js';
4
+ export * from './binding-fallback.js';
5
+ export * from './use-studio-locale.js';
6
+ export * from './locale-switcher.js';
7
7
  //# sourceMappingURL=index.js.map
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Globe } from 'lucide-react';
3
- import { cn } from '../utils';
4
- import { localeChipLabel } from './fallback';
5
- import { useStudioLocale } from './use-studio-locale';
3
+ import { cn } from '../utils.js';
4
+ import { localeChipLabel } from './fallback.js';
5
+ import { useStudioLocale } from './use-studio-locale.js';
6
6
  /**
7
7
  * The ambient locale switcher (EC-176): one segmented control, mounted in the
8
8
  * builder toolbar and the CMS surface header, both driving the same
@@ -1,5 +1,5 @@
1
1
  import { useSyncExternalStore } from 'react';
2
- import { getStudioLocaleState, setStudioLocale, subscribeStudioLocale, } from './locale-store';
2
+ import { getStudioLocaleState, setStudioLocale, subscribeStudioLocale, } from './locale-store.js';
3
3
  /** Subscribe a React surface to the studio's ambient locale (EC-176). */
4
4
  export function useStudioLocale() {
5
5
  const state = useSyncExternalStore(subscribeStudioLocale, getStudioLocaleState, getStudioLocaleState);
@@ -1,5 +1,5 @@
1
1
  import type { AssetRepository } from '@elytracms/core/persistence';
2
- import type { OperationsClient } from './operations-package';
2
+ import type { OperationsClient } from './operations-package.js';
3
3
  /**
4
4
  * `AssetRepository` facade over the operations layer (EC-141). The asset
5
5
  * flows (upload confirm, reference-respecting delete — EC-151) are written
@@ -1,5 +1,5 @@
1
1
  import type { CmsDocument, CollectionDef, DocumentRef, PropFieldLookup } from '@elytracms/core/cms-core';
2
- import type { OperationError, OperationsClient } from './operations-package';
2
+ import type { OperationError, OperationsClient } from './operations-package.js';
3
3
  /**
4
4
  * CMS session → operations persistence (EC-141). The CMS store keeps documents
5
5
  * and collections as optimistic session state (synchronous editing, validation
@@ -1,5 +1,5 @@
1
1
  import { selfTypeDocument } from '@elytracms/core/cms-core';
2
- import { createPersistQueue } from './persist-queue';
2
+ import { createPersistQueue } from './persist-queue.js';
3
3
  export function createCmsPersister(options) {
4
4
  const queue = createPersistQueue();
5
5
  let baselineDone = false;
@@ -3,9 +3,9 @@
3
3
  * goes through — see `studio-operations.ts` for the bootstrap and
4
4
  * `operations-package.ts` for why the package is bridged by path.
5
5
  */
6
- export * from './operations-package';
7
- export * from './studio-operations';
8
- export * from './persist-queue';
9
- export * from './cms-persistence';
10
- export * from './asset-repository';
11
- export * from './session-hydration';
6
+ export * from './operations-package.js';
7
+ export * from './studio-operations.js';
8
+ export * from './persist-queue.js';
9
+ export * from './cms-persistence.js';
10
+ export * from './asset-repository.js';
11
+ export * from './session-hydration.js';
@@ -3,10 +3,10 @@
3
3
  * goes through — see `studio-operations.ts` for the bootstrap and
4
4
  * `operations-package.ts` for why the package is bridged by path.
5
5
  */
6
- export * from './operations-package';
7
- export * from './studio-operations';
8
- export * from './persist-queue';
9
- export * from './cms-persistence';
10
- export * from './asset-repository';
11
- export * from './session-hydration';
6
+ export * from './operations-package.js';
7
+ export * from './studio-operations.js';
8
+ export * from './persist-queue.js';
9
+ export * from './cms-persistence.js';
10
+ export * from './asset-repository.js';
11
+ export * from './session-hydration.js';
12
12
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  import type { CmsDocument, CollectionDef } from '@elytracms/core/cms-core';
2
2
  import type { AssetRecord } from '@elytracms/core/persistence';
3
- import type { OperationResult, OperationsClient } from './operations-package';
3
+ import type { OperationResult, OperationsClient } from './operations-package.js';
4
4
  /**
5
5
  * Legacy marker (EC-246b): editor-owned saved views are retired — list
6
6
  * presentation is config-as-code now (named views live in `cms/`). The id is kept
@@ -1,5 +1,5 @@
1
1
  import { documentKey } from '@elytracms/core/cms-core';
2
- import { DATA_SOURCES_COLLECTION } from '../data/sources-store';
2
+ import { DATA_SOURCES_COLLECTION } from '../data/sources-store.js';
3
3
  /**
4
4
  * Legacy marker (EC-246b): editor-owned saved views are retired — list
5
5
  * presentation is config-as-code now (named views live in `cms/`). The id is kept
@@ -1,5 +1,5 @@
1
1
  import type { PersistenceAdapter } from '@elytracms/core/persistence';
2
- import type { ChangesetOperations, OperationsClient, Principal, ReferenceIndexAttachment } from './operations-package';
2
+ import type { ChangesetOperations, OperationsClient, Principal, ReferenceIndexAttachment } from './operations-package.js';
3
3
  /**
4
4
  * The studio's single operations bootstrap (EC-141, vision AD-7).
5
5
  *
@@ -1,6 +1,6 @@
1
- import { activeDeploymentKey, selectPersistenceAdapter } from '../persistence';
2
- import { attachConfiguredRevalidationWebhooks } from '../webhooks';
3
- import { attachReferenceIndex, createChangesets, createOperations, createRoleAuthorization, } from './operations-package';
1
+ import { activeDeploymentKey, selectPersistenceAdapter } from '../persistence/index.js';
2
+ import { attachConfiguredRevalidationWebhooks } from '../webhooks/index.js';
3
+ import { attachReferenceIndex, createChangesets, createOperations, createRoleAuthorization, } from './operations-package.js';
4
4
  /**
5
5
  * A no-op {@link ReferenceIndexAttachment} for self-maintaining adapters (EC-277):
6
6
  * nothing is subscribed, so `detach` and `flush` are trivially satisfied (the index
@@ -1,8 +1,8 @@
1
1
  import { documentKey, documentSchema } from '@elytracms/core/cms-core';
2
2
  import { RecordNotFoundError, PersistenceValidationError, compareReferenceEntries, highestRole, isKnownRole, validateForPersistence, } from '@elytracms/core/persistence';
3
3
  import { normalizeInviteEmail } from '@elytracms/core/persistence';
4
- import { queryRef, mutationRef } from './convex-client';
5
- import { ConvexBlobStorage } from './convex-blob-storage';
4
+ import { queryRef, mutationRef } from './convex-client.js';
5
+ import { ConvexBlobStorage } from './convex-blob-storage.js';
6
6
  const realClock = () => new Date().toISOString();
7
7
  function newId(prefix) {
8
8
  const rand = typeof globalThis.crypto?.randomUUID === 'function'
@@ -1,5 +1,5 @@
1
1
  import type { BlobStorageAdapter } from '@elytracms/core/persistence';
2
- import { queryRef, mutationRef } from './convex-client';
2
+ import { queryRef, mutationRef } from './convex-client.js';
3
3
  /**
4
4
  * The minimal structural slice of `ConvexHttpClient` the blob adapter needs.
5
5
  * Typed structurally so unit tests can substitute a recorded/mocked client
@@ -1,4 +1,4 @@
1
- import { queryRef, mutationRef } from './convex-client';
1
+ import { queryRef, mutationRef } from './convex-client.js';
2
2
  /** Structured failure from a blob storage operation — never a silent loss. */
3
3
  export class BlobStorageOperationError extends Error {
4
4
  operation;
@@ -1,7 +1,7 @@
1
1
  import type { DeploymentReadinessFacts, DeploymentReadinessReport } from '@elytracms/core/export-sync/deployment-ready';
2
2
  import type { CollectionDef } from '@elytracms/core/cms-core';
3
- import type { StudioBackendConfig } from './backend-mode';
4
- import type { WorkspaceState } from '../workspace';
3
+ import type { StudioBackendConfig } from './backend-mode.js';
4
+ import type { WorkspaceState } from '../workspace/index.js';
5
5
  /**
6
6
  * Studio-side adapter for the shared `checkDeploymentReady` contract (EC-258).
7
7
  * Maps the studio's resolved state — backend mode (`resolveBackendConfig`),
@@ -1,5 +1,5 @@
1
1
  import type { PersistenceAdapter } from '@elytracms/core/persistence';
2
- import type { StudioBackendMode } from './backend-mode';
2
+ import type { StudioBackendMode } from './backend-mode.js';
3
3
  /**
4
4
  * Select the persistence backend (EC-153, vision AD-1). **Convex is the
5
5
  * default**: a configured `VITE_CONVEX_URL` is required unless the explicit
@@ -25,8 +25,8 @@ export declare function activeDeploymentKey(): string;
25
25
  * only needs "is this the playground?" should use `isPlaygroundMode()`.
26
26
  */
27
27
  export declare function persistenceMode(): StudioBackendMode;
28
- export { ConvexPersistenceAdapter } from './convex-adapter';
29
- export { CONVEX_URL_ENV_VAR, DEV_LOGIN_ENV_VAR, MODE_ENV_VAR, PLAYGROUND_MODE, isDevAutoLoginActive, isPlaygroundMode, resolveBackendConfig, resolveDevAutoLogin, } from './backend-mode';
30
- export type { DevAutoLoginCredentials, EnvRecord, StudioBackendConfig, StudioBackendMode, } from './backend-mode';
31
- export { studioDeploymentReadiness, studioReadinessFacts } from './deployment-readiness';
32
- export type { StudioReadinessInputs } from './deployment-readiness';
28
+ export { ConvexPersistenceAdapter } from './convex-adapter.js';
29
+ export { CONVEX_URL_ENV_VAR, DEV_LOGIN_ENV_VAR, MODE_ENV_VAR, PLAYGROUND_MODE, isDevAutoLoginActive, isPlaygroundMode, resolveBackendConfig, resolveDevAutoLogin, } from './backend-mode.js';
30
+ export type { DevAutoLoginCredentials, EnvRecord, StudioBackendConfig, StudioBackendMode, } from './backend-mode.js';
31
+ export { studioDeploymentReadiness, studioReadinessFacts } from './deployment-readiness.js';
32
+ export type { StudioReadinessInputs } from './deployment-readiness.js';
@@ -1,8 +1,8 @@
1
1
  import { SEED_PROJECT_ID, createSeededPersistenceAdapter } from '@elytracms/core/persistence';
2
- import { resolveDeploymentCollections, resolveDeploymentProjectId, resolveDeploymentUrl, } from '../workspace';
3
- import { getConvexClient } from './convex-client';
4
- import { ConvexPersistenceAdapter } from './convex-adapter';
5
- import { resolveBackendConfig } from './backend-mode';
2
+ import { resolveDeploymentCollections, resolveDeploymentProjectId, resolveDeploymentUrl, } from '../workspace/index.js';
3
+ import { getConvexClient } from './convex-client.js';
4
+ import { ConvexPersistenceAdapter } from './convex-adapter.js';
5
+ import { resolveBackendConfig } from './backend-mode.js';
6
6
  /**
7
7
  * Select the persistence backend (EC-153, vision AD-1). **Convex is the
8
8
  * default**: a configured `VITE_CONVEX_URL` is required unless the explicit
@@ -59,9 +59,9 @@ export function persistenceMode() {
59
59
  throw new Error(config.detail);
60
60
  return config.kind;
61
61
  }
62
- export { ConvexPersistenceAdapter } from './convex-adapter';
63
- export { CONVEX_URL_ENV_VAR, DEV_LOGIN_ENV_VAR, MODE_ENV_VAR, PLAYGROUND_MODE, isDevAutoLoginActive, isPlaygroundMode, resolveBackendConfig, resolveDevAutoLogin, } from './backend-mode';
62
+ export { ConvexPersistenceAdapter } from './convex-adapter.js';
63
+ export { CONVEX_URL_ENV_VAR, DEV_LOGIN_ENV_VAR, MODE_ENV_VAR, PLAYGROUND_MODE, isDevAutoLoginActive, isPlaygroundMode, resolveBackendConfig, resolveDevAutoLogin, } from './backend-mode.js';
64
64
  // EC-258: the deployment-readiness facts mapper (the boot DeploymentSetupGate + a
65
65
  // future `elytra doctor` CLI compose the same `checkDeploymentReady` contract).
66
- export { studioDeploymentReadiness, studioReadinessFacts } from './deployment-readiness';
66
+ export { studioDeploymentReadiness, studioReadinessFacts } from './deployment-readiness.js';
67
67
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { humanizeName } from '../utils';
1
+ import { humanizeName } from '../utils.js';
2
2
  /**
3
3
  * Persona-aware labels (EC-192 item 2, Milestone B promise).
4
4
  *
@@ -2,5 +2,5 @@
2
2
  * The studio client read seam (EC-308 / AD-17): one operations-backed query cache.
3
3
  * See `./operations-query`.
4
4
  */
5
- export { StudioQueryProvider, useOperationQuery, useOperationCache, listStoreState, OPERATION_INVALIDATE_DEBOUNCE_MS, } from './operations-query';
6
- export type { OperationCache, UseOperationQueryOptions } from './operations-query';
5
+ export { StudioQueryProvider, useOperationQuery, useOperationCache, listStoreState, OPERATION_INVALIDATE_DEBOUNCE_MS, } from './operations-query.js';
6
+ export type { OperationCache, UseOperationQueryOptions } from './operations-query.js';
@@ -2,5 +2,5 @@
2
2
  * The studio client read seam (EC-308 / AD-17): one operations-backed query cache.
3
3
  * See `./operations-query`.
4
4
  */
5
- export { StudioQueryProvider, useOperationQuery, useOperationCache, listStoreState, OPERATION_INVALIDATE_DEBOUNCE_MS, } from './operations-query';
5
+ export { StudioQueryProvider, useOperationQuery, useOperationCache, listStoreState, OPERATION_INVALIDATE_DEBOUNCE_MS, } from './operations-query.js';
6
6
  //# sourceMappingURL=index.js.map
package/dist/lib/rail.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * the way the user left it. Best-effort like the theme preference: storage may be
5
5
  * unavailable, in which case the rail simply defaults to expanded each session.
6
6
  */
7
- import { createBooleanPreference, createStringSetPreference } from './local-preference';
7
+ import { createBooleanPreference, createStringSetPreference } from './local-preference.js';
8
8
  export const RAIL_STORAGE_KEY = 'elytra-rail-collapsed';
9
9
  const collapsedPreference = createBooleanPreference(RAIL_STORAGE_KEY, false);
10
10
  /** Read the persisted collapse preference; expanded (false) when unset/unavailable. */
@@ -1,5 +1,5 @@
1
1
  import type { CollectionDef, DocumentRef, RelationFieldDef } from '@elytracms/core/cms-core';
2
- import type { ReferenceEntryView } from './reference-model';
2
+ import type { ReferenceEntryView } from './reference-model.js';
3
3
  /**
4
4
  * Pure impact model for the EC-173 safe-unpublish/delete flows: given the
5
5
  * inbound reference entries of one or more target documents (the EC-172 panel
@@ -1,5 +1,5 @@
1
1
  import { documentKey } from '@elytracms/core/cms-core';
2
- import { parseDocumentFieldPath, parseDocumentKey } from './reference-model';
2
+ import { parseDocumentFieldPath, parseDocumentKey } from './reference-model.js';
3
3
  /** Does this entry break (dangle / fall back) when `action` proceeds? */
4
4
  export function entryBreaksOnAction(entry, action) {
5
5
  return action === 'delete' ? entry.draft || entry.published : entry.published;
@@ -2,6 +2,6 @@
2
2
  * References & used-by data layer (EC-172): pure presentation model over the
3
3
  * EC-155 reference index plus the operations-backed panel store.
4
4
  */
5
- export * from './reference-model';
6
- export * from './references-store';
7
- export * from './impact';
5
+ export * from './reference-model.js';
6
+ export * from './references-store.js';
7
+ export * from './impact.js';
@@ -2,7 +2,7 @@
2
2
  * References & used-by data layer (EC-172): pure presentation model over the
3
3
  * EC-155 reference index plus the operations-backed panel store.
4
4
  */
5
- export * from './reference-model';
6
- export * from './references-store';
7
- export * from './impact';
5
+ export * from './reference-model.js';
6
+ export * from './references-store.js';
7
+ export * from './impact.js';
8
8
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  import type { DocumentRef } from '@elytracms/core/cms-core';
2
2
  import type { ReferenceSource, ReferenceTarget } from '@elytracms/core/persistence';
3
- import type { OperationEvent, StudioOperations } from '../operations';
4
- import type { ReferenceEntryView } from './reference-model';
3
+ import type { OperationEvent, StudioOperations } from '../operations/index.js';
4
+ import type { ReferenceEntryView } from './reference-model.js';
5
5
  /**
6
6
  * Data layer for the EC-172 references panels. All reads go through
7
7
  * `@elytracms/core/operations` queries (`references.outbound` / `references.inbound`
@@ -1,9 +1,9 @@
1
1
  import { useMemo } from 'react';
2
2
  import { documentKey } from '@elytracms/core/cms-core';
3
3
  import { useOperationQuery } from '@elytracms/studio/lib/query';
4
- import { getStudioOperations } from '../operations';
5
- import { getStudioRegistry } from '../registry';
6
- import { buildReferenceEntryViews } from './reference-model';
4
+ import { getStudioOperations } from '../operations/index.js';
5
+ import { getStudioRegistry } from '../registry/index.js';
6
+ import { buildReferenceEntryViews } from './reference-model.js';
7
7
  // --- Index bootstrap -----------------------------------------------------------
8
8
  /**
9
9
  * The EC-155 index is maintained on write, but seeded/imported projects start
@@ -1,7 +1,7 @@
1
1
  import { ComponentRegistry, manifestPropFields } from '@elytracms/core/component-registry';
2
2
  import { basePrimitives, getImplementation } from '@elytracms/core/runtime-renderer';
3
- import { getActiveProjectSlug, resolveDeploymentComponents } from '../workspace';
4
- import { projectComponentImplementations, projectComponentManifests } from './project-components';
3
+ import { getActiveProjectSlug, resolveDeploymentComponents } from '../workspace/index.js';
4
+ import { projectComponentImplementations, projectComponentManifests } from './project-components.js';
5
5
  /**
6
6
  * EC-194/EC-208/EC-223: the consuming repo's OWN real components, INJECTED through
7
7
  * config-as-code (the mount contract). The active project's `components` field holds
package/dist/lib/theme.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * class on the document element. Light mode is the absence of that class — the
5
5
  * design tokens define `:root` (light) and `.dark` overrides (see tokens.css).
6
6
  */
7
- import { createLocalPreference } from './local-preference';
7
+ import { createLocalPreference } from './local-preference.js';
8
8
  export const THEME_STORAGE_KEY = 'elytra-theme';
9
9
  export const DEFAULT_THEME = 'dark';
10
10
  /** Apply a theme to the document root by toggling the `dark` class. */
@@ -1,5 +1,5 @@
1
1
  import type { OperationEventBus } from '@elytracms/core/operations';
2
- import type { WebhookDispatcherAttachment } from './dispatcher';
2
+ import type { WebhookDispatcherAttachment } from './dispatcher.js';
3
3
  /**
4
4
  * Attach the dispatcher from environment configuration. Returns `null` when
5
5
  * no endpoint/secret is configured (the common local-dev case).
@@ -1,5 +1,5 @@
1
- import { attachRevalidationWebhooks } from './dispatcher';
2
- import { resolveDeploymentLocales } from '../workspace';
1
+ import { attachRevalidationWebhooks } from './dispatcher.js';
2
+ import { resolveDeploymentLocales } from '../workspace/index.js';
3
3
  /**
4
4
  * Environment wiring for the EC-146 revalidation webhooks. The dispatcher is
5
5
  * attached only when a host endpoint is configured, so dev sessions and tests
@@ -1,5 +1,5 @@
1
- import { WEBHOOK_SIGNATURE_HEADER, signWebhookBody } from './signing';
2
- import { webhookTagsForEvent } from './tags';
1
+ import { WEBHOOK_SIGNATURE_HEADER, signWebhookBody } from './signing.js';
2
+ import { webhookTagsForEvent } from './tags.js';
3
3
  async function deliver(endpoint, tagSet, timestamp, fetchFn) {
4
4
  const payload = {
5
5
  projectId: tagSet.projectId,
@@ -3,9 +3,9 @@
3
3
  * dispatch to host revalidate endpoints. See `dispatcher.ts` for the
4
4
  * delivery/CORS model and `tags.ts` for the tag computation.
5
5
  */
6
- export { attachRevalidationWebhooks } from './dispatcher';
7
- export type { RevalidateWebhookPayload, WebhookDispatcherAttachment, WebhookDispatcherOptions, WebhookEndpoint, } from './dispatcher';
8
- export { attachConfiguredRevalidationWebhooks } from './config';
9
- export { WEBHOOK_SIGNATURE_HEADER, signWebhookBody } from './signing';
10
- export { collectionWebhookTag, docWebhookTag, projectSweepWebhookTag, webhookTagsForEvent, } from './tags';
11
- export type { WebhookTagSet } from './tags';
6
+ export { attachRevalidationWebhooks } from './dispatcher.js';
7
+ export type { RevalidateWebhookPayload, WebhookDispatcherAttachment, WebhookDispatcherOptions, WebhookEndpoint, } from './dispatcher.js';
8
+ export { attachConfiguredRevalidationWebhooks } from './config.js';
9
+ export { WEBHOOK_SIGNATURE_HEADER, signWebhookBody } from './signing.js';
10
+ export { collectionWebhookTag, docWebhookTag, projectSweepWebhookTag, webhookTagsForEvent, } from './tags.js';
11
+ export type { WebhookTagSet } from './tags.js';
@@ -3,8 +3,8 @@
3
3
  * dispatch to host revalidate endpoints. See `dispatcher.ts` for the
4
4
  * delivery/CORS model and `tags.ts` for the tag computation.
5
5
  */
6
- export { attachRevalidationWebhooks } from './dispatcher';
7
- export { attachConfiguredRevalidationWebhooks } from './config';
8
- export { WEBHOOK_SIGNATURE_HEADER, signWebhookBody } from './signing';
9
- export { collectionWebhookTag, docWebhookTag, projectSweepWebhookTag, webhookTagsForEvent, } from './tags';
6
+ export { attachRevalidationWebhooks } from './dispatcher.js';
7
+ export { attachConfiguredRevalidationWebhooks } from './config.js';
8
+ export { WEBHOOK_SIGNATURE_HEADER, signWebhookBody } from './signing.js';
9
+ export { collectionWebhookTag, docWebhookTag, projectSweepWebhookTag, webhookTagsForEvent, } from './tags.js';
10
10
  //# sourceMappingURL=index.js.map
@@ -1,12 +1,12 @@
1
1
  import type { BreakpointConfig, ElytraConfigInput } from '@elytracms/core/studio-core';
2
2
  import type { CollectionDef, RouteRecord } from '@elytracms/core/cms-core';
3
- import type { SidebarNode } from '../../components/app-views/module';
4
- import type { CustomFieldRenderer, StudioConfig } from '../../components/app-views/studio-config';
5
- import type { WorkspaceState } from './workspace-source';
6
- export { resolveWorkspaceState, WORKSPACE_ENV_VAR } from './workspace-source';
7
- export type { WorkspaceSources, WorkspaceState } from './workspace-source';
8
- export { persistedProjects, selectSwitcherProjects, unprovisionedProjects } from './switcher-source';
9
- export type { SwitcherEntry, SwitcherSourceInput } from './switcher-source';
3
+ import type { SidebarNode } from '../../components/app-views/module.js';
4
+ import type { CustomFieldRenderer, StudioConfig } from '../../components/app-views/studio-config.js';
5
+ import type { WorkspaceState } from './workspace-source.js';
6
+ export { resolveWorkspaceState, WORKSPACE_ENV_VAR } from './workspace-source.js';
7
+ export type { WorkspaceSources, WorkspaceState } from './workspace-source.js';
8
+ export { persistedProjects, selectSwitcherProjects, unprovisionedProjects } from './switcher-source.js';
9
+ export type { SwitcherEntry, SwitcherSourceInput } from './switcher-source.js';
10
10
  /**
11
11
  * Mount the studio against a project config (EC-223 mount contract) and an
12
12
  * optional studio-only customization config (EC-236). The consumer's entry point
@@ -1,7 +1,7 @@
1
1
  import { frontendUrlForEnvironment } from '@elytracms/core/studio-core';
2
- import { resolveWorkspaceState } from './workspace-source';
3
- export { resolveWorkspaceState, WORKSPACE_ENV_VAR } from './workspace-source';
4
- export { persistedProjects, selectSwitcherProjects, unprovisionedProjects } from './switcher-source';
2
+ import { resolveWorkspaceState } from './workspace-source.js';
3
+ export { resolveWorkspaceState, WORKSPACE_ENV_VAR } from './workspace-source.js';
4
+ export { persistedProjects, selectSwitcherProjects, unprovisionedProjects } from './switcher-source.js';
5
5
  let cached = null;
6
6
  let studioConfig = null;
7
7
  /**
@@ -1,6 +1,6 @@
1
1
  import type { Project } from '@elytracms/core/studio-core';
2
2
  import type { ResolvedWorkspaceProject } from '@elytracms/core/studio-core';
3
- import type { WorkspaceState } from './workspace-source';
3
+ import type { WorkspaceState } from './workspace-source.js';
4
4
  /**
5
5
  * Config-driven switcher source (EC-154, reframed for EC-179 per-backend
6
6
  * projects). Pure logic deciding what the project switcher and launcher list:
@@ -29,4 +29,4 @@ export declare const STUDIO_PROJECT_ROUTE: "/$projectId/$";
29
29
  * table (`./match`). Re-exported here so a component imports the link seam from
30
30
  * one place: `{ Link, STUDIO_PROJECT_ROUTE, studioPath }`.
31
31
  */
32
- export { studioPath } from './match';
32
+ export { studioPath } from './match.js';
@@ -28,5 +28,5 @@ export const STUDIO_PROJECT_ROUTE = '/$projectId/$';
28
28
  * table (`./match`). Re-exported here so a component imports the link seam from
29
29
  * one place: `{ Link, STUDIO_PROJECT_ROUTE, studioPath }`.
30
30
  */
31
- export { studioPath } from './match';
31
+ export { studioPath } from './match.js';
32
32
  //# sourceMappingURL=index.js.map
package/dist/ui/avatar.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { cn } from '../lib/utils';
2
+ import { cn } from '../lib/utils.js';
3
3
  const AVATAR_SIZE = {
4
4
  sm: 'size-6 text-[0.65rem]',
5
5
  md: 'size-7 text-xs',