@orthacms/workspaces-admin 0.4.3 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/dist/lib/application/useDeleteWorkspace/index.d.ts +1 -1
  2. package/dist/lib/application/useDeleteWorkspace/index.js +1 -1
  3. package/dist/lib/domain/slug/index.spec.d.ts +2 -0
  4. package/dist/lib/domain/slug/index.spec.d.ts.map +1 -0
  5. package/dist/lib/domain/slug/index.spec.js +50 -0
  6. package/dist/lib/presentation/components/WorkspaceMembersSettings/MemberListRow/index.d.ts.map +1 -1
  7. package/dist/lib/presentation/components/WorkspaceMembersSettings/MemberListRow/index.js +1 -1
  8. package/dist/lib/presentation/components/WorkspaceMembersSettings/index.d.ts.map +1 -1
  9. package/dist/lib/presentation/components/WorkspaceMembersSettings/index.js +40 -4
  10. package/dist/lib/presentation/components/WorkspacesEmpty/index.d.ts +1 -1
  11. package/dist/lib/presentation/components/WorkspacesEmpty/index.js +1 -1
  12. package/dist/lib/presentation/components/WorkspacesNavSection/index.d.ts.map +1 -1
  13. package/dist/lib/presentation/components/WorkspacesNavSection/index.js +18 -4
  14. package/dist/lib/presentation/pages/WorkspacesPage/index.d.ts +2 -2
  15. package/dist/lib/presentation/pages/WorkspacesPage/index.js +3 -3
  16. package/dist/lib/presentation/workspacesPlugin/index.d.ts +14 -7
  17. package/dist/lib/presentation/workspacesPlugin/index.d.ts.map +1 -1
  18. package/dist/lib/presentation/workspacesPlugin/index.js +14 -7
  19. package/package.json +6 -6
  20. package/dist/lib/api/useAddWorkspaceContent/index.d.ts +0 -15
  21. package/dist/lib/api/useAddWorkspaceContent/index.d.ts.map +0 -1
  22. package/dist/lib/api/useAddWorkspaceMember/index.d.ts +0 -14
  23. package/dist/lib/api/useAddWorkspaceMember/index.d.ts.map +0 -1
  24. package/dist/lib/api/useContentTypes/index.d.ts +0 -10
  25. package/dist/lib/api/useContentTypes/index.d.ts.map +0 -1
  26. package/dist/lib/api/useCreateWorkspace/index.d.ts +0 -20
  27. package/dist/lib/api/useCreateWorkspace/index.d.ts.map +0 -1
  28. package/dist/lib/api/useDeleteWorkspace/index.d.ts +0 -13
  29. package/dist/lib/api/useDeleteWorkspace/index.d.ts.map +0 -1
  30. package/dist/lib/api/useRemoveWorkspaceContent/index.d.ts +0 -15
  31. package/dist/lib/api/useRemoveWorkspaceContent/index.d.ts.map +0 -1
  32. package/dist/lib/api/useRemoveWorkspaceMember/index.d.ts +0 -13
  33. package/dist/lib/api/useRemoveWorkspaceMember/index.d.ts.map +0 -1
  34. package/dist/lib/api/useSetWorkspaceStatus/index.d.ts +0 -14
  35. package/dist/lib/api/useSetWorkspaceStatus/index.d.ts.map +0 -1
  36. package/dist/lib/api/useSlugAvailability/index.d.ts +0 -10
  37. package/dist/lib/api/useSlugAvailability/index.d.ts.map +0 -1
  38. package/dist/lib/api/useUpdateWorkspace/index.d.ts +0 -23
  39. package/dist/lib/api/useUpdateWorkspace/index.d.ts.map +0 -1
  40. package/dist/lib/api/useUsersSearch/index.d.ts +0 -17
  41. package/dist/lib/api/useUsersSearch/index.d.ts.map +0 -1
  42. package/dist/lib/api/useWorkspaceContentCount/index.d.ts +0 -8
  43. package/dist/lib/api/useWorkspaceContentCount/index.d.ts.map +0 -1
  44. package/dist/lib/api/useWorkspaceEntryCount/index.d.ts +0 -8
  45. package/dist/lib/api/useWorkspaceEntryCount/index.d.ts.map +0 -1
  46. package/dist/lib/api/useWorkspaces/index.d.ts +0 -30
  47. package/dist/lib/api/useWorkspaces/index.d.ts.map +0 -1
  48. package/dist/lib/components/BlockingConfirmDialog/index.d.ts +0 -41
  49. package/dist/lib/components/BlockingConfirmDialog/index.d.ts.map +0 -1
  50. package/dist/lib/components/ColorSwatchRow/index.d.ts +0 -15
  51. package/dist/lib/components/ColorSwatchRow/index.d.ts.map +0 -1
  52. package/dist/lib/components/CreateWorkspaceWizard/ColorSwatchRow/index.d.ts +0 -15
  53. package/dist/lib/components/CreateWorkspaceWizard/ColorSwatchRow/index.d.ts.map +0 -1
  54. package/dist/lib/components/CreateWorkspaceWizard/ContentStep/ModeTiles/index.d.ts +0 -11
  55. package/dist/lib/components/CreateWorkspaceWizard/ContentStep/ModeTiles/index.d.ts.map +0 -1
  56. package/dist/lib/components/CreateWorkspaceWizard/ContentStep/ResourceSection/index.d.ts +0 -48
  57. package/dist/lib/components/CreateWorkspaceWizard/ContentStep/ResourceSection/index.d.ts.map +0 -1
  58. package/dist/lib/components/CreateWorkspaceWizard/ContentStep/index.d.ts +0 -23
  59. package/dist/lib/components/CreateWorkspaceWizard/ContentStep/index.d.ts.map +0 -1
  60. package/dist/lib/components/CreateWorkspaceWizard/IdentityFields/index.d.ts +0 -17
  61. package/dist/lib/components/CreateWorkspaceWizard/IdentityFields/index.d.ts.map +0 -1
  62. package/dist/lib/components/CreateWorkspaceWizard/MembersStep/MemberRow/index.d.ts +0 -14
  63. package/dist/lib/components/CreateWorkspaceWizard/MembersStep/MemberRow/index.d.ts.map +0 -1
  64. package/dist/lib/components/CreateWorkspaceWizard/MembersStep/MemberTypeahead/index.d.ts +0 -15
  65. package/dist/lib/components/CreateWorkspaceWizard/MembersStep/MemberTypeahead/index.d.ts.map +0 -1
  66. package/dist/lib/components/CreateWorkspaceWizard/MembersStep/index.d.ts +0 -17
  67. package/dist/lib/components/CreateWorkspaceWizard/MembersStep/index.d.ts.map +0 -1
  68. package/dist/lib/components/CreateWorkspaceWizard/Monogram/index.d.ts +0 -17
  69. package/dist/lib/components/CreateWorkspaceWizard/Monogram/index.d.ts.map +0 -1
  70. package/dist/lib/components/CreateWorkspaceWizard/SlugField/index.d.ts +0 -23
  71. package/dist/lib/components/CreateWorkspaceWizard/SlugField/index.d.ts.map +0 -1
  72. package/dist/lib/components/StatusChip/index.d.ts +0 -9
  73. package/dist/lib/components/StatusChip/index.d.ts.map +0 -1
  74. package/dist/lib/components/WorkspaceAvatar/index.d.ts +0 -20
  75. package/dist/lib/components/WorkspaceAvatar/index.d.ts.map +0 -1
  76. package/dist/lib/components/WorkspaceCard/MemberStack/MemberListPopover/index.d.ts +0 -9
  77. package/dist/lib/components/WorkspaceCard/MemberStack/MemberListPopover/index.d.ts.map +0 -1
  78. package/dist/lib/components/WorkspaceCard/MemberStack/index.d.ts +0 -11
  79. package/dist/lib/components/WorkspaceCard/MemberStack/index.d.ts.map +0 -1
  80. package/dist/lib/components/WorkspaceCard/StatusChip/index.d.ts +0 -9
  81. package/dist/lib/components/WorkspaceCard/StatusChip/index.d.ts.map +0 -1
  82. package/dist/lib/components/WorkspaceCard/index.d.ts +0 -15
  83. package/dist/lib/components/WorkspaceCard/index.d.ts.map +0 -1
  84. package/dist/lib/components/WorkspaceCommands/index.d.ts +0 -8
  85. package/dist/lib/components/WorkspaceCommands/index.d.ts.map +0 -1
  86. package/dist/lib/components/WorkspaceContentSettings/AddContentDialog/index.d.ts +0 -26
  87. package/dist/lib/components/WorkspaceContentSettings/AddContentDialog/index.d.ts.map +0 -1
  88. package/dist/lib/components/WorkspaceContentSettings/GrantedContentGroup/index.d.ts +0 -21
  89. package/dist/lib/components/WorkspaceContentSettings/GrantedContentGroup/index.d.ts.map +0 -1
  90. package/dist/lib/components/WorkspaceContentSettings/GrantedContentRow/index.d.ts +0 -26
  91. package/dist/lib/components/WorkspaceContentSettings/GrantedContentRow/index.d.ts.map +0 -1
  92. package/dist/lib/components/WorkspaceContentSettings/RemoveContentDialog/index.d.ts +0 -25
  93. package/dist/lib/components/WorkspaceContentSettings/RemoveContentDialog/index.d.ts.map +0 -1
  94. package/dist/lib/components/WorkspaceContentSettings/index.d.ts +0 -25
  95. package/dist/lib/components/WorkspaceContentSettings/index.d.ts.map +0 -1
  96. package/dist/lib/components/WorkspaceDangerSettings/DeleteWorkspaceDialog/index.d.ts +0 -22
  97. package/dist/lib/components/WorkspaceDangerSettings/DeleteWorkspaceDialog/index.d.ts.map +0 -1
  98. package/dist/lib/components/WorkspaceDangerSettings/index.d.ts +0 -18
  99. package/dist/lib/components/WorkspaceDangerSettings/index.d.ts.map +0 -1
  100. package/dist/lib/components/WorkspaceGeneralSettings/index.d.ts +0 -18
  101. package/dist/lib/components/WorkspaceGeneralSettings/index.d.ts.map +0 -1
  102. package/dist/lib/components/WorkspaceMembersSettings/MemberDirectorySearch/index.d.ts +0 -18
  103. package/dist/lib/components/WorkspaceMembersSettings/MemberDirectorySearch/index.d.ts.map +0 -1
  104. package/dist/lib/components/WorkspaceMembersSettings/MemberListRow/index.d.ts +0 -17
  105. package/dist/lib/components/WorkspaceMembersSettings/MemberListRow/index.d.ts.map +0 -1
  106. package/dist/lib/components/WorkspaceMembersSettings/index.d.ts +0 -16
  107. package/dist/lib/components/WorkspaceMembersSettings/index.d.ts.map +0 -1
  108. package/dist/lib/components/WorkspaceNav/WorkspaceNavButton/index.d.ts +0 -14
  109. package/dist/lib/components/WorkspaceNav/WorkspaceNavButton/index.d.ts.map +0 -1
  110. package/dist/lib/components/WorkspaceNav/WorkspaceSwitcher/index.d.ts +0 -16
  111. package/dist/lib/components/WorkspaceNav/WorkspaceSwitcher/index.d.ts.map +0 -1
  112. package/dist/lib/components/WorkspaceNav/index.d.ts +0 -14
  113. package/dist/lib/components/WorkspaceNav/index.d.ts.map +0 -1
  114. package/dist/lib/components/WorkspaceSettingsRail/index.d.ts +0 -14
  115. package/dist/lib/components/WorkspaceSettingsRail/index.d.ts.map +0 -1
  116. package/dist/lib/components/WorkspaceSettingsTabs/index.d.ts +0 -14
  117. package/dist/lib/components/WorkspaceSettingsTabs/index.d.ts.map +0 -1
  118. package/dist/lib/components/WorkspaceSettingsTopBar/index.d.ts +0 -8
  119. package/dist/lib/components/WorkspaceSettingsTopBar/index.d.ts.map +0 -1
  120. package/dist/lib/components/WorkspaceShell/NewWorkspaceButton/index.d.ts +0 -7
  121. package/dist/lib/components/WorkspaceShell/NewWorkspaceButton/index.d.ts.map +0 -1
  122. package/dist/lib/components/WorkspaceShell/RailTooltip/index.d.ts +0 -22
  123. package/dist/lib/components/WorkspaceShell/RailTooltip/index.d.ts.map +0 -1
  124. package/dist/lib/components/WorkspaceShell/WorkspaceRail/index.d.ts +0 -17
  125. package/dist/lib/components/WorkspaceShell/WorkspaceRail/index.d.ts.map +0 -1
  126. package/dist/lib/components/WorkspaceShell/WorkspaceSidebarButton/index.d.ts +0 -17
  127. package/dist/lib/components/WorkspaceShell/WorkspaceSidebarButton/index.d.ts.map +0 -1
  128. package/dist/lib/components/WorkspaceShell/WorkspaceSwitcher/WorkspaceSwitcherPopover/index.d.ts +0 -26
  129. package/dist/lib/components/WorkspaceShell/WorkspaceSwitcher/WorkspaceSwitcherPopover/index.d.ts.map +0 -1
  130. package/dist/lib/components/WorkspaceShell/WorkspaceSwitcher/index.d.ts +0 -17
  131. package/dist/lib/components/WorkspaceShell/WorkspaceSwitcher/index.d.ts.map +0 -1
  132. package/dist/lib/components/WorkspaceShell/index.d.ts +0 -16
  133. package/dist/lib/components/WorkspaceShell/index.d.ts.map +0 -1
  134. package/dist/lib/components/WorkspaceStats/index.d.ts +0 -9
  135. package/dist/lib/components/WorkspaceStats/index.d.ts.map +0 -1
  136. package/dist/lib/components/WorkspaceToolbar/index.d.ts +0 -22
  137. package/dist/lib/components/WorkspaceToolbar/index.d.ts.map +0 -1
  138. package/dist/lib/components/WorkspacesEmpty/index.d.ts +0 -18
  139. package/dist/lib/components/WorkspacesEmpty/index.d.ts.map +0 -1
  140. package/dist/lib/components/WorkspacesHomePanel/index.d.ts +0 -7
  141. package/dist/lib/components/WorkspacesHomePanel/index.d.ts.map +0 -1
  142. package/dist/lib/components/WorkspacesNavSection/index.d.ts +0 -9
  143. package/dist/lib/components/WorkspacesNavSection/index.d.ts.map +0 -1
  144. package/dist/lib/components/WorkspacesSkeleton/index.d.ts +0 -36
  145. package/dist/lib/components/WorkspacesSkeleton/index.d.ts.map +0 -1
  146. package/dist/lib/components/WorkspacesTable/index.d.ts +0 -12
  147. package/dist/lib/components/WorkspacesTable/index.d.ts.map +0 -1
  148. package/dist/lib/hooks/useBasicsSchema/index.d.ts +0 -14
  149. package/dist/lib/hooks/useBasicsSchema/index.d.ts.map +0 -1
  150. package/dist/lib/hooks/useResourceSelection/index.d.ts +0 -21
  151. package/dist/lib/hooks/useResourceSelection/index.d.ts.map +0 -1
  152. package/dist/lib/hooks/useSlug/index.d.ts +0 -28
  153. package/dist/lib/hooks/useSlug/index.d.ts.map +0 -1
  154. package/dist/lib/hooks/useWizard/index.d.ts +0 -57
  155. package/dist/lib/hooks/useWizard/index.d.ts.map +0 -1
  156. package/dist/lib/hooks/useWorkspaceProfileSchema/index.d.ts +0 -13
  157. package/dist/lib/hooks/useWorkspaceProfileSchema/index.d.ts.map +0 -1
  158. package/dist/lib/pages/CreateWorkspacePage/index.d.ts +0 -7
  159. package/dist/lib/pages/CreateWorkspacePage/index.d.ts.map +0 -1
  160. package/dist/lib/pages/WorkspaceSettingsPage/index.d.ts +0 -12
  161. package/dist/lib/pages/WorkspaceSettingsPage/index.d.ts.map +0 -1
  162. package/dist/lib/pages/WorkspacesPage/index.d.ts +0 -7
  163. package/dist/lib/pages/WorkspacesPage/index.d.ts.map +0 -1
  164. package/dist/lib/slots/workspaceSlots/index.d.ts +0 -101
  165. package/dist/lib/slots/workspaceSlots/index.d.ts.map +0 -1
  166. package/dist/lib/types/wizard/index.d.ts +0 -119
  167. package/dist/lib/types/wizard/index.d.ts.map +0 -1
  168. package/dist/lib/types/workspace/index.d.ts +0 -42
  169. package/dist/lib/types/workspace/index.d.ts.map +0 -1
  170. package/dist/lib/utils/buildCreateWorkspaceBody/index.d.ts +0 -12
  171. package/dist/lib/utils/buildCreateWorkspaceBody/index.d.ts.map +0 -1
  172. package/dist/lib/utils/currentWorkspace/index.d.ts +0 -17
  173. package/dist/lib/utils/currentWorkspace/index.d.ts.map +0 -1
  174. package/dist/lib/utils/isActiveWorkspace/index.d.ts +0 -9
  175. package/dist/lib/utils/isActiveWorkspace/index.d.ts.map +0 -1
  176. package/dist/lib/utils/isConflict/index.d.ts +0 -8
  177. package/dist/lib/utils/isConflict/index.d.ts.map +0 -1
  178. package/dist/lib/utils/permissions/index.d.ts +0 -7
  179. package/dist/lib/utils/permissions/index.d.ts.map +0 -1
  180. package/dist/lib/utils/radioGroupKeydown/index.d.ts +0 -15
  181. package/dist/lib/utils/radioGroupKeydown/index.d.ts.map +0 -1
  182. package/dist/lib/utils/resourceSelection/index.d.ts +0 -18
  183. package/dist/lib/utils/resourceSelection/index.d.ts.map +0 -1
  184. package/dist/lib/utils/workspacesPlugin/index.d.ts +0 -31
  185. package/dist/lib/utils/workspacesPlugin/index.d.ts.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/WorkspacesSkeleton/index.tsx"],"names":[],"mappings":"AAsCA;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,KAAS,EAAE,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,+BAexE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,gCAoBrC;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,gCAcrC;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,gCAI1C;AAuBD;;;;;GAKG;AACH,wBAAgB,oBAAoB,gCAcnC"}
@@ -1,12 +0,0 @@
1
- import type { Workspace } from '../../types/workspace';
2
- /**
3
- * The workspaces list as a table (mirroring the members table): each row is a
4
- * workspace — avatar + name + description, its member and content-type counts,
5
- * and a status pill. The whole row opens the workspace (its shell redirects to
6
- * the first section); the name is a real link for keyboard users, and stops the
7
- * click from bubbling so it navigates exactly once. Archived rows read muted.
8
- */
9
- export declare function WorkspacesTable({ workspaces }: {
10
- workspaces: Workspace[];
11
- }): import("react").JSX.Element;
12
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/WorkspacesTable/index.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAkCvD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,SAAS,EAAE,CAAA;CAAE,+BAkF1E"}
@@ -1,14 +0,0 @@
1
- import { z } from 'zod';
2
- /**
3
- * Builds the basics-step Zod schema with localized messages. Mirrors the
4
- * server `CreateWorkspaceDto` (name required, ≤100; slug required, matching
5
- * `^[a-z0-9-]+$`; description ≤500). Rebuilt when the locale changes so the
6
- * copy stays in sync with the UI. Slug *availability* is checked separately by
7
- * `useSlugAvailability` — this only validates shape.
8
- */
9
- export declare function useBasicsSchema(): z.ZodObject<{
10
- name: z.ZodString;
11
- slug: z.ZodString;
12
- description: z.ZodString;
13
- }, z.core.$strip>;
14
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/hooks/useBasicsSchema/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA0BxB;;;;;;GAMG;AACH,wBAAgB,eAAe;;;;kBA0B9B"}
@@ -1,21 +0,0 @@
1
- import type { ResourceSelection } from '../../types/wizard';
2
- /** Bound helpers returned by {@link useResourceSelection}. */
3
- export type ResourceSelectionController = {
4
- /** Whether `id` is selected in the current mode. */
5
- isSelected: (id: string) => boolean;
6
- /** Toggle one id (include list in `specific`, exclude list in `all`). */
7
- toggle: (id: string) => void;
8
- /** Switch the whole resource to "all" or back to an empty "specific" list. */
9
- setAll: (all: boolean) => void;
10
- /** Whether the resource is in "all" mode. */
11
- isAll: boolean;
12
- /** Count of selected items given the total available. */
13
- count: number;
14
- };
15
- /**
16
- * Controlled wrapper over the pure `resourceSelection` helpers. State lives in
17
- * the caller (the wizard); this binds the selection + `onChange` into ready
18
- * handlers for a selection panel, and derives the selected `count` from `total`.
19
- */
20
- export declare function useResourceSelection(selection: ResourceSelection, onChange: (next: ResourceSelection) => void, total: number): ResourceSelectionController;
21
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/hooks/useResourceSelection/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAQ5D,8DAA8D;AAC9D,MAAM,MAAM,2BAA2B,GAAG;IACtC,oDAAoD;IACpD,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IACpC,yEAAyE;IACzE,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,8EAA8E;IAC9E,MAAM,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/B,6CAA6C;IAC7C,KAAK,EAAE,OAAO,CAAC;IACf,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAChC,SAAS,EAAE,iBAAiB,EAC5B,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,EAC3C,KAAK,EAAE,MAAM,GACd,2BAA2B,CAW7B"}
@@ -1,28 +0,0 @@
1
- import type { SlugStatus, WizardData } from '../../types/wizard';
2
- /** Arguments for {@link useSlug}. */
3
- export type UseSlugArgs = {
4
- /** Current basics data (reads `name`, `slug`, `slugEdited`). */
5
- data: WizardData;
6
- /** Merge a partial patch into the basics data. */
7
- update: (patch: Partial<WizardData>) => void;
8
- };
9
- /** What {@link useSlug} returns. */
10
- export type UseSlugResult = {
11
- /** Live availability status of the current slug. */
12
- status: SlugStatus;
13
- /** Name change handler: also auto-fills the slug until it's been edited. */
14
- onNameChange: (name: string) => void;
15
- /** Direct slug edit — marks the slug as user-owned. */
16
- onSlugChange: (slug: string) => void;
17
- /** Re-derive the slug from the name and resume auto-fill. */
18
- regenerate: () => void;
19
- };
20
- /**
21
- * Wires the name → slug relationship for the basics step. The slug auto-fills
22
- * from the name (via {@link slugify}) until the user edits it; from then on it
23
- * is left alone and a regenerate action restores auto-fill. Availability is
24
- * tracked by {@link useSlugAvailability}. State lives in the wizard — this only
25
- * supplies handlers and the live status.
26
- */
27
- export declare function useSlug({ data, update }: UseSlugArgs): UseSlugResult;
28
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/hooks/useSlug/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEjE,qCAAqC;AACrC,MAAM,MAAM,WAAW,GAAG;IACtB,gEAAgE;IAChE,IAAI,EAAE,UAAU,CAAC;IACjB,kDAAkD;IAClD,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;CAChD,CAAC;AAEF,oCAAoC;AACpC,MAAM,MAAM,aAAa,GAAG;IACxB,oDAAoD;IACpD,MAAM,EAAE,UAAU,CAAC;IACnB,4EAA4E;IAC5E,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,uDAAuD;IACvD,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,6DAA6D;IAC7D,UAAU,EAAE,MAAM,IAAI,CAAC;CAC1B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,WAAW,GAAG,aAAa,CAWpE"}
@@ -1,57 +0,0 @@
1
- import type { Workspace } from '../../types/workspace';
2
- import type { ContentMode, MemberDraft, ResourceSelection, WizardData, WizardSnapshot } from '../../types/wizard';
3
- /** The full controller returned by {@link useWizard}. */
4
- export type WizardController = {
5
- /** Active step (1–3), mirrored to `?step=` and clamped. */
6
- step: number;
7
- /** Highest step the user has reached (gates rail navigation). */
8
- maxReached: number;
9
- /** Step 1 basics. */
10
- data: WizardData;
11
- /** Added members (excludes the implied owner). */
12
- members: MemberDraft[];
13
- /** Page-level content decision. */
14
- contentMode: ContentMode;
15
- /** Collection selection. */
16
- collections: ResourceSelection;
17
- /** Page selection. */
18
- pages: ResourceSelection;
19
- /** Whether the content-types list is still loading. */
20
- ctLoading: boolean;
21
- /** Whether the content-types list failed to load. */
22
- ctError: boolean;
23
- /** Navigate to a step (clamped); bumps {@link maxReached}. */
24
- goStep: (next: number) => void;
25
- /** Merge a partial patch into the basics data. */
26
- update: (patch: Partial<WizardData>) => void;
27
- /** Add a member if not already present. */
28
- addMember: (member: MemberDraft) => void;
29
- /** Remove a member by id. */
30
- removeMember: (id: string) => void;
31
- /** Set the page-level content mode. */
32
- setContentMode: (mode: ContentMode) => void;
33
- /** Replace the collection selection. */
34
- setCollections: (selection: ResourceSelection) => void;
35
- /** Replace the page selection. */
36
- setPages: (selection: ResourceSelection) => void;
37
- /** Whether the basics step passes shape validation (not availability). */
38
- basicsValid: boolean;
39
- /** Total members including the owner. */
40
- memberCount: number;
41
- /** Number of selected collections. */
42
- collectionCount: number;
43
- /** Number of selected pages. */
44
- pageCount: number;
45
- /** Submit the wizard. `override` replaces snapshot fields without mutating state. */
46
- submit: (override?: Partial<WizardSnapshot>) => Promise<Workspace>;
47
- /** Whether a submission is in flight. */
48
- submitting: boolean;
49
- };
50
- /**
51
- * Single source of truth for the create-workspace wizard: step (mirrored to the
52
- * `?step=` query param and clamped), the per-step form state, derived validity
53
- * and counts, and the submit action. Step bodies are presentational and read
54
- * everything from here, so state survives navigating between steps.
55
- */
56
- export declare function useWizard(): WizardController;
57
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/hooks/useWizard/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAmB,MAAM,uBAAuB,CAAC;AACxE,OAAO,KAAK,EACR,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,cAAc,EACjB,MAAM,oBAAoB,CAAC;AAuB5B,yDAAyD;AACzD,MAAM,MAAM,gBAAgB,GAAG;IAC3B,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,kDAAkD;IAClD,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,mCAAmC;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,4BAA4B;IAC5B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,sBAAsB;IACtB,KAAK,EAAE,iBAAiB,CAAC;IACzB,uDAAuD;IACvD,SAAS,EAAE,OAAO,CAAC;IACnB,qDAAqD;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,8DAA8D;IAC9D,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,kDAAkD;IAClD,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IAC7C,2CAA2C;IAC3C,SAAS,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IACzC,6BAA6B;IAC7B,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,uCAAuC;IACvC,cAAc,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IAC5C,wCAAwC;IACxC,cAAc,EAAE,CAAC,SAAS,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACvD,kCAAkC;IAClC,QAAQ,EAAE,CAAC,SAAS,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACjD,0EAA0E;IAC1E,WAAW,EAAE,OAAO,CAAC;IACrB,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACnE,yCAAyC;IACzC,UAAU,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,SAAS,IAAI,gBAAgB,CA4G5C"}
@@ -1,13 +0,0 @@
1
- import { z } from 'zod';
2
- /**
3
- * Builds the settings General-tab Zod schema with localized messages. Mirrors
4
- * the server `UpdateWorkspaceDto` (name required, ≤100; description ≤500). The
5
- * slug is intentionally absent — it's the workspace's immutable URL identifier
6
- * and isn't editable from settings. Rebuilt when the locale changes so the copy
7
- * stays in sync with the UI.
8
- */
9
- export declare function useWorkspaceProfileSchema(): z.ZodObject<{
10
- name: z.ZodString;
11
- description: z.ZodString;
12
- }, z.core.$strip>;
13
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/hooks/useWorkspaceProfileSchema/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkBxB;;;;;;GAMG;AACH,wBAAgB,yBAAyB;;;kBAqBxC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Full-page wizard for creating a workspace. Owns navigation and submission;
3
- * all form state lives in {@link useWizard}, and each step body is
4
- * presentational. Rendered at `/workspaces/new` inside the authenticated shell.
5
- */
6
- export declare function CreateWorkspacePage(): import("react").JSX.Element;
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/pages/CreateWorkspacePage/index.tsx"],"names":[],"mappings":"AAiKA;;;;GAIG;AACH,wBAAgB,mBAAmB,gCAoRlC"}
@@ -1,12 +0,0 @@
1
- /**
2
- * Workspace settings, mounted inside the shell at `/workspaces/:id/settings/*`.
3
- * A tabbed layout — General, Members, Content, and a Danger zone — each its own
4
- * nested route under the {@link WorkspaceSettingsTabs} underline tab bar,
5
- * mirroring the user-detail page. The page width is the shared `Container`.
6
- *
7
- * Reads the open workspace from context; edits are gated by `workspaces:update`
8
- * / `workspaces:delete`, so a viewer sees a read-only page and the Danger
9
- * section (rail entry + route) only exists when the user can act on it.
10
- */
11
- export declare function WorkspaceSettingsPage(): import("react").JSX.Element;
12
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/pages/WorkspaceSettingsPage/index.tsx"],"names":[],"mappings":"AA4BA;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,gCAkGpC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * The Workspaces management page: a searchable, status-filterable grid of
3
- * workspace cards with a create flow. Rendered at `/workspaces` inside the
4
- * authenticated shell.
5
- */
6
- export declare function WorkspacesPage(): import("react").JSX.Element;
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/pages/WorkspacesPage/index.tsx"],"names":[],"mappings":"AAgEA;;;;GAIG;AACH,wBAAgB,cAAc,gCAwH7B"}
@@ -1,101 +0,0 @@
1
- import type { ComponentType, ReactNode } from 'react';
2
- /**
3
- * A navigation entry in the workspace sidebar's "Workspace" section, rendered
4
- * as an icon + label row. Unlike the global {@link SidebarItem}, a workspace
5
- * nav item's `to` is **relative to the current workspace** (e.g. `'media'`,
6
- * resolved against `/workspaces/:id`) — a contributing plugin never spells out
7
- * the workspace id. The owning {@link WorkspaceNav} resolves it.
8
- */
9
- export type WorkspaceNavItem = {
10
- /** react-intl message id for the label. */
11
- labelId: string;
12
- /** Fallback label when no translation is available. */
13
- defaultLabel: string;
14
- /**
15
- * Path relative to the workspace base (`/workspaces/:id`), e.g. `'media'`.
16
- * No leading slash; it is joined onto the active workspace's base path.
17
- */
18
- to: string;
19
- /** Sort order; lower appears first. */
20
- order: number;
21
- /** Leading icon (e.g. a lucide-react icon). */
22
- icon: ComponentType<{
23
- className?: string;
24
- }>;
25
- /**
26
- * Optional accent class for the icon (e.g. `text-nav-teal`), applied only
27
- * while the row is **active** — the rest of the time the icon stays
28
- * neutral. The `text-nav-*` utilities are tuned for contrast on the dark
29
- * sidebar. Omit for an always-neutral icon.
30
- */
31
- iconColor?: string;
32
- /**
33
- * Optional permission key required to see this entry. When set, the entry
34
- * is hidden from users whose role doesn't grant it (the UI mirror of the
35
- * linked route's server-side gate). Omit for an entry visible to every
36
- * member (the default — the linked page still gates itself).
37
- */
38
- permission?: string;
39
- };
40
- /**
41
- * A route mounted **inside** the workspace shell, rendered in the shell's
42
- * content area alongside the workspace sidebar. Its `path` is relative to the
43
- * workspace base (`/workspaces/:id`), e.g. `'content/*'`. Pair each route with
44
- * either a {@link WorkspaceNavItem} (a "Workspace" section entry) or a
45
- * {@link WorkspaceSectionItem} (a custom section, e.g. the content-type list).
46
- */
47
- export type WorkspaceRoute = {
48
- /**
49
- * Path relative to the workspace base, e.g. `'content/*'`. Use a trailing
50
- * `/*` when the page mounts its own nested routes.
51
- */
52
- path: string;
53
- /** Element rendered at that path (wrap lazy pages in `<Suspense>`). */
54
- element: ReactNode;
55
- /**
56
- * Sort order used to pick the **default** section — landing on the
57
- * workspace base (`/workspaces/:id`) redirects to the lowest-order route.
58
- * Lower wins; omit to sort last. (The Content Library uses the lowest so it
59
- * is the default landing.)
60
- */
61
- order?: number;
62
- };
63
- /**
64
- * A data-driven section in the workspace sidebar (e.g. the "Content" list of
65
- * the workspace's content types). Unlike the declarative {@link WorkspaceNavItem},
66
- * a section is an arbitrary component the contributing plugin renders itself —
67
- * so it can be backed by a query. Rendered above the "Workspace" section.
68
- */
69
- export type WorkspaceSectionItem = {
70
- /** Stable id (also the React key). */
71
- id: string;
72
- /** Sort order; lower appears first. */
73
- order: number;
74
- /** The section to render. Receives no props — it reads what it needs. */
75
- Component: ComponentType;
76
- };
77
- /**
78
- * The "Workspace" section's nav slot — the workspace's utility sections (Media,
79
- * Insights, Settings), rendered as labeled rows. Any plugin contributes entries
80
- * via its `slots`; {@link WorkspaceNav} reads it sorted by `order`. (Formerly
81
- * `WORKSPACE_SIDEBAR_SLOT`.)
82
- */
83
- export declare const WORKSPACE_NAV_SLOT: import("@ortha-cms/utils-admin").Slot<WorkspaceNavItem>;
84
- /**
85
- * The workspace sidebar's custom-section slot — component-rendered regions
86
- * above the "Workspace" section. A plugin contributes a
87
- * {@link WorkspaceSectionItem} via its `slots`; {@link WorkspaceNav} renders
88
- * them sorted by `order`. The Content Library contributes its content-type list
89
- * here.
90
- */
91
- export declare const WORKSPACE_SECTION_SLOT: import("@ortha-cms/utils-admin").Slot<WorkspaceSectionItem>;
92
- /**
93
- * Workspace route slot — the pages mounted inside the workspace shell. A plugin
94
- * contributes a {@link WorkspaceRoute} via its `slots`; {@link WorkspaceShell}
95
- * builds its nested `<Routes>` from them (plus an index redirect to the first
96
- * route). This is how a feature plugin lives **strictly inside** a workspace: it
97
- * contributes a route here plus a nav entry or section, and **no** top-level
98
- * route or sidebar item.
99
- */
100
- export declare const WORKSPACE_ROUTE_SLOT: import("@ortha-cms/utils-admin").Slot<WorkspaceRoute>;
101
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/slots/workspaceSlots/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtD;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC3B,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,IAAI,EAAE,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5C;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG;IACzB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,OAAO,EAAE,SAAS,CAAC;IACnB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAC/B,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,SAAS,EAAE,aAAa,CAAC;CAC5B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,yDAAgD,CAAC;AAEhF;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,6DAElC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,uDACiB,CAAC"}
@@ -1,119 +0,0 @@
1
- import type { AvatarColor } from '@ortha-cms/design-system';
2
- /** Live state of the slug availability check. */
3
- export declare enum SlugStatus {
4
- /** No slug entered yet. */
5
- Empty = "empty",
6
- /** Breaks the `^[a-z0-9-]+$` pattern. */
7
- Invalid = "invalid",
8
- /** Debouncing or an availability request is in flight. */
9
- Checking = "checking",
10
- /** Free to use. */
11
- Available = "available",
12
- /** Already taken by another workspace. */
13
- Taken = "taken"
14
- }
15
- /**
16
- * A person being granted access in the wizard. `invited` members were typed in
17
- * as an email that isn't in the directory yet — they have no `id` until the
18
- * invite is sent server-side. Membership is a pure link; a member's permissions
19
- * come from their single global role, not from the workspace.
20
- */
21
- export type MemberDraft = {
22
- /** Directory id, or the email for an invited member without an account. */
23
- id: string;
24
- /** Display name (the email for invited members). */
25
- name: string;
26
- /** Contact email. */
27
- email: string;
28
- /** Whether this is an invite-by-email rather than an existing user. */
29
- invited?: boolean;
30
- };
31
- /** A user returned by the directory search. */
32
- export type DirectoryUser = {
33
- /** Stable id. */
34
- id: string;
35
- /** Full display name. */
36
- name: string;
37
- /** Email address. */
38
- email: string;
39
- };
40
- /** Kind of a content type — drives the collections/pages split. */
41
- export type ContentTypeKind = 'collection' | 'single';
42
- /** A content type the workspace can be granted access to. */
43
- export type ContentType = {
44
- /** Stable machine name. */
45
- name: string;
46
- /** Whether it is a multi-entry collection or a standalone page. */
47
- kind: ContentTypeKind;
48
- /** Human label; falls back to `name`. */
49
- label?: string;
50
- /** Short description shown under the label. */
51
- description?: string;
52
- /** Route path — pages only; searchable alongside the name. */
53
- path?: string;
54
- };
55
- /**
56
- * Generic selection model reused for collections and pages. `specific` lists
57
- * explicit ids; `all` grants everything (including future items) and tracks a
58
- * blacklist — constant payload regardless of how many items exist.
59
- */
60
- export type ResourceSelection = {
61
- mode: 'specific';
62
- ids: string[];
63
- } | {
64
- mode: 'all';
65
- excludedIds: string[];
66
- };
67
- /** Page-level content decision: full access vs. a specific selection. */
68
- export type ContentMode = 'all' | 'specific';
69
- /** The basics (step 1) form values. */
70
- export type WizardData = {
71
- /** Workspace display name. */
72
- name: string;
73
- /** URL slug — auto-derived from the name until the user edits it. */
74
- slug: string;
75
- /** Whether the user has manually edited the slug. */
76
- slugEdited: boolean;
77
- /** Optional long description. */
78
- description: string;
79
- /** Accent color for the workspace monogram. */
80
- color: AvatarColor;
81
- };
82
- /**
83
- * A full snapshot of every wizard step — the input to
84
- * {@link buildCreateWorkspaceBody}. The page can pass an overridden snapshot
85
- * (e.g. empty content for "Skip & create") without mutating wizard state.
86
- */
87
- export type WizardSnapshot = {
88
- /** Step 1 basics. */
89
- data: WizardData;
90
- /** Added members (the owner is implied by the session, not listed here). */
91
- members: MemberDraft[];
92
- /** Page-level content decision. */
93
- contentMode: ContentMode;
94
- /** Collection selection (used only when `contentMode === 'specific'`). */
95
- collections: ResourceSelection;
96
- /** Page selection (used only when `contentMode === 'specific'`). */
97
- pages: ResourceSelection;
98
- };
99
- /** The request body POSTed to `/api/workspaces`. */
100
- export type CreateWorkspaceBody = {
101
- name: string;
102
- slug: string;
103
- description: string;
104
- color: AvatarColor;
105
- members: {
106
- id: string;
107
- name: string;
108
- email: string;
109
- invited: boolean;
110
- }[];
111
- content: {
112
- mode: 'all';
113
- } | {
114
- mode: 'specific';
115
- collections: ResourceSelection;
116
- pages: ResourceSelection;
117
- };
118
- };
119
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/types/wizard/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,iDAAiD;AACjD,oBAAY,UAAU;IAClB,2BAA2B;IAC3B,KAAK,UAAU;IACf,yCAAyC;IACzC,OAAO,YAAY;IACnB,0DAA0D;IAC1D,QAAQ,aAAa;IACrB,mBAAmB;IACnB,SAAS,cAAc;IACvB,0CAA0C;IAC1C,KAAK,UAAU;CAClB;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG;IACtB,2EAA2E;IAC3E,EAAE,EAAE,MAAM,CAAC;IACX,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,aAAa,GAAG;IACxB,iBAAiB;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,mEAAmE;AACnE,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,QAAQ,CAAC;AAEtD,6DAA6D;AAC7D,MAAM,MAAM,WAAW,GAAG;IACtB,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,IAAI,EAAE,eAAe,CAAC;IACtB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GACvB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,EAAE,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAE7C,yEAAyE;AACzE,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,UAAU,CAAC;AAE7C,uCAAuC;AACvC,MAAM,MAAM,UAAU,GAAG;IACrB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,UAAU,EAAE,OAAO,CAAC;IACpB,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,KAAK,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IACzB,qBAAqB;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,4EAA4E;IAC5E,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,mCAAmC;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,0EAA0E;IAC1E,WAAW,EAAE,iBAAiB,CAAC;IAC/B,oEAAoE;IACpE,KAAK,EAAE,iBAAiB,CAAC;CAC5B,CAAC;AAEF,oDAAoD;AACpD,MAAM,MAAM,mBAAmB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,OAAO,CAAC;KACpB,EAAE,CAAC;IACJ,OAAO,EACD;QAAE,IAAI,EAAE,KAAK,CAAA;KAAE,GACf;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,WAAW,EAAE,iBAAiB,CAAC;QAAC,KAAK,EAAE,iBAAiB,CAAA;KAAE,CAAC;CACxF,CAAC"}
@@ -1,42 +0,0 @@
1
- import type { AvatarColor } from '@ortha-cms/design-system';
2
- /** Lifecycle status of a workspace. */
3
- export type WorkspaceStatus = 'Active' | 'Archived';
4
- /** A person who belongs to a workspace. */
5
- export type WorkspaceMember = {
6
- /** Stable member id. */
7
- id: string;
8
- /** Display name. */
9
- name: string;
10
- /** Two-letter initials shown in the avatar. */
11
- initials: string;
12
- /** Contact email. */
13
- email: string;
14
- /** Accent color tinting the member's avatar. */
15
- color: AvatarColor;
16
- };
17
- /**
18
- * A workspace: a self-contained grouping of content, members, and plugins.
19
- * The member count is never stored — read it from `members.length`.
20
- */
21
- export type Workspace = {
22
- /** Stable workspace id. */
23
- id: string;
24
- /** URL-safe identifier, unique across the system. */
25
- slug: string;
26
- /** Display name. */
27
- name: string;
28
- /** Short summary of what the workspace holds. */
29
- description: string;
30
- /** Accent color tinting the workspace avatar. */
31
- color: AvatarColor;
32
- /** Lifecycle status. */
33
- status: WorkspaceStatus;
34
- /** Everyone who belongs to the workspace. */
35
- members: WorkspaceMember[];
36
- /**
37
- * Slugs of the content types granted to this workspace at creation. Feature
38
- * plugins (e.g. the Content Library) scope what they show to these.
39
- */
40
- content: string[];
41
- };
42
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/types/workspace/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,uCAAuC;AACvC,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEpD,2CAA2C;AAC3C,MAAM,MAAM,eAAe,GAAG;IAC1B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,KAAK,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG;IACpB,2BAA2B;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,KAAK,EAAE,WAAW,CAAC;IACnB,wBAAwB;IACxB,MAAM,EAAE,eAAe,CAAC;IACxB,6CAA6C;IAC7C,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B;;;OAGG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC"}
@@ -1,12 +0,0 @@
1
- import type { CreateWorkspaceBody, WizardSnapshot } from '../../types/wizard';
2
- /**
3
- * Maps a {@link WizardSnapshot} to the `/api/workspaces` request body. Content
4
- * collapses to `{ mode: 'all' }` when the page-level decision is "All content";
5
- * otherwise the two resource selections ride along under `mode: 'specific'`.
6
- *
7
- * The "Skip & create" path passes a snapshot with empty content rather than
8
- * mutating wizard state, so a failed submit leaves the user's picks intact for
9
- * retry.
10
- */
11
- export declare function buildCreateWorkspaceBody(snapshot: WizardSnapshot): CreateWorkspaceBody;
12
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils/buildCreateWorkspaceBody/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE9E;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACpC,QAAQ,EAAE,cAAc,GACzB,mBAAmB,CAmBrB"}
@@ -1,17 +0,0 @@
1
- import { type ReactNode } from 'react';
2
- import type { Workspace } from '../../types/workspace';
3
- type CurrentWorkspaceProviderProps = {
4
- /** The resolved workspace to expose to the subtree. */
5
- workspace: Workspace;
6
- children: ReactNode;
7
- };
8
- /** Provides the open workspace to everything rendered inside the shell. */
9
- export declare function CurrentWorkspaceProvider({ workspace, children }: CurrentWorkspaceProviderProps): import("react").JSX.Element;
10
- /**
11
- * Returns the workspace currently open in the shell. Throws when called outside
12
- * a {@link WorkspaceShell} — a workspace page is always mounted inside one, so a
13
- * missing provider is a wiring bug, not a runtime state to handle.
14
- */
15
- export declare function useCurrentWorkspace(): Workspace;
16
- export {};
17
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils/currentWorkspace/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAWvD,KAAK,6BAA6B,GAAG;IACjC,uDAAuD;IACvD,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,2EAA2E;AAC3E,wBAAgB,wBAAwB,CAAC,EACrC,SAAS,EACT,QAAQ,EACX,EAAE,6BAA6B,+BAyB/B;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,SAAS,CAQ/C"}
@@ -1,9 +0,0 @@
1
- import type { Workspace } from '../../types/workspace';
2
- /**
3
- * Whether a workspace is currently active (as opposed to archived). The single
4
- * definition of the active-status check, so the home tiles, the home panel, and
5
- * the table all agree on what "active" means instead of each re-testing the
6
- * `'Active'` string literal.
7
- */
8
- export declare function isActiveWorkspace(workspace: Pick<Workspace, 'status'>): boolean;
9
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils/isActiveWorkspace/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,OAAO,CAE/E"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Whether an error is the server's `409 Conflict` — the shared signal that a
3
- * block-before-you-act guard (delete a non-empty workspace, revoke a non-empty
4
- * content type) rejected the mutation. Centralized so the status literal and the
5
- * `ApiError` narrowing live in one place across the settings dialogs.
6
- */
7
- export declare function isConflict(error: unknown): boolean;
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils/isConflict/index.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAElD"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Permission that gates creating a workspace. Mirrors the server's RBAC matrix
3
- * (`@RequirePermissions('workspaces:create')`) and the list-page create button;
4
- * shared so the sidebar's create affordances can't drift from that string.
5
- */
6
- export declare const WORKSPACES_CREATE = "workspaces:create";
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils/permissions/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,sBAAsB,CAAC"}
@@ -1,15 +0,0 @@
1
- import type { KeyboardEvent } from 'react';
2
- /**
3
- * Keyboard handler implementing the ARIA radiogroup pattern for a row or column
4
- * of `role="radio"` `<button>`s (the shared swatch/segmented-control shape used
5
- * by the color picker and status filter). Arrow keys move the selection,
6
- * wrapping at the ends; Home/End jump to the first/last option; selection
7
- * follows focus. Pair it with a roving tabindex on the buttons (only the
8
- * selected radio is `tabIndex={0}`) so Tab enters the group once and the arrows
9
- * do the rest.
10
- *
11
- * The buttons must be rendered in `options` order so the rendered
12
- * `[role="radio"]` nodes line up with the option indices.
13
- */
14
- export declare function radioGroupKeydown<T extends string>(event: KeyboardEvent<HTMLElement>, options: readonly T[], current: T, onChange: (value: T) => void): void;
15
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils/radioGroupKeydown/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAY3C;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAC9C,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,EACjC,OAAO,EAAE,SAAS,CAAC,EAAE,EACrB,OAAO,EAAE,CAAC,EACV,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAC7B,IAAI,CAwCN"}
@@ -1,18 +0,0 @@
1
- import type { ResourceSelection } from '../../types/wizard';
2
- /** An empty `specific` selection — the neutral starting point. */
3
- export declare const EMPTY_SELECTION: ResourceSelection;
4
- /** Whether `id` is currently selected, in either mode. */
5
- export declare function isSelected(selection: ResourceSelection, id: string): boolean;
6
- /**
7
- * Toggles one id. In `specific` mode this adds/removes it from the include
8
- * list; in `all` mode it adds/removes it from the exclude list (so unchecking
9
- * a row under "all" carves out an exception without leaving the mode).
10
- */
11
- export declare function toggle(selection: ResourceSelection, id: string): ResourceSelection;
12
- /** Switches the whole resource between "all" and an empty "specific" list. */
13
- export declare function setAll(all: boolean): ResourceSelection;
14
- /** Count of selected items given the total number available. */
15
- export declare function count(selection: ResourceSelection, total: number): number;
16
- /** The concrete set of selected ids, resolved against the full id list. */
17
- export declare function deriveSelectedIds(selection: ResourceSelection, allIds: readonly string[]): string[];
18
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils/resourceSelection/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,kEAAkE;AAClE,eAAO,MAAM,eAAe,EAAE,iBAAiD,CAAC;AAEhF,0DAA0D;AAC1D,wBAAgB,UAAU,CAAC,SAAS,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAI5E;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAClB,SAAS,EAAE,iBAAiB,EAC5B,EAAE,EAAE,MAAM,GACX,iBAAiB,CAiBnB;AAED,8EAA8E;AAC9E,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB,CAEtD;AAED,gEAAgE;AAChE,wBAAgB,KAAK,CAAC,SAAS,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIzE;AAED,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAC7B,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,SAAS,MAAM,EAAE,GAC1B,MAAM,EAAE,CAIV"}