@actuate-media/cms-admin 0.9.0 → 0.11.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 (294) hide show
  1. package/dist/AdminRoot.d.ts.map +1 -1
  2. package/dist/AdminRoot.js +8 -5
  3. package/dist/AdminRoot.js.map +1 -1
  4. package/dist/__tests__/layout/primitives.test.d.ts +2 -0
  5. package/dist/__tests__/layout/primitives.test.d.ts.map +1 -0
  6. package/dist/__tests__/layout/primitives.test.js +34 -0
  7. package/dist/__tests__/layout/primitives.test.js.map +1 -0
  8. package/dist/__tests__/lib/cv.test.d.ts +2 -0
  9. package/dist/__tests__/lib/cv.test.d.ts.map +1 -0
  10. package/dist/__tests__/lib/cv.test.js +66 -0
  11. package/dist/__tests__/lib/cv.test.js.map +1 -0
  12. package/dist/actuate-admin.css +1 -1
  13. package/dist/assets/actuate-logo.d.ts +36 -0
  14. package/dist/assets/actuate-logo.d.ts.map +1 -0
  15. package/dist/assets/actuate-logo.js +15 -0
  16. package/dist/assets/actuate-logo.js.map +1 -0
  17. package/dist/components/Breadcrumbs.js +2 -2
  18. package/dist/components/CommandPalette.js +10 -10
  19. package/dist/components/ContentOverviewChart.js +3 -3
  20. package/dist/components/ErrorBoundary.js +1 -1
  21. package/dist/components/FocalPointPicker.js +2 -2
  22. package/dist/components/FolderTree.js +20 -20
  23. package/dist/components/LivePreview.js +3 -3
  24. package/dist/components/LocaleSwitcher.js +1 -1
  25. package/dist/components/MediaPickerModal.js +4 -4
  26. package/dist/components/PresenceIndicator.js +1 -1
  27. package/dist/components/SEOConfigPanel.d.ts +2 -0
  28. package/dist/components/SEOConfigPanel.d.ts.map +1 -0
  29. package/dist/components/SEOConfigPanel.js +174 -0
  30. package/dist/components/SEOConfigPanel.js.map +1 -0
  31. package/dist/components/SEOPanel.js +9 -9
  32. package/dist/components/SEOPerformance.js +2 -2
  33. package/dist/components/SchedulePublishDialog.d.ts +18 -0
  34. package/dist/components/SchedulePublishDialog.d.ts.map +1 -0
  35. package/dist/components/SchedulePublishDialog.js +106 -0
  36. package/dist/components/SchedulePublishDialog.js.map +1 -0
  37. package/dist/components/SharePreviewLinkDialog.d.ts +17 -0
  38. package/dist/components/SharePreviewLinkDialog.d.ts.map +1 -0
  39. package/dist/components/SharePreviewLinkDialog.js +83 -0
  40. package/dist/components/SharePreviewLinkDialog.js.map +1 -0
  41. package/dist/components/TipTapEditor.js +5 -5
  42. package/dist/components/VersionHistory.js +2 -2
  43. package/dist/components/ui/Badge.d.ts +33 -3
  44. package/dist/components/ui/Badge.d.ts.map +1 -1
  45. package/dist/components/ui/Badge.js +42 -8
  46. package/dist/components/ui/Badge.js.map +1 -1
  47. package/dist/components/ui/Button.d.ts +19 -8
  48. package/dist/components/ui/Button.d.ts.map +1 -1
  49. package/dist/components/ui/Button.js +35 -14
  50. package/dist/components/ui/Button.js.map +1 -1
  51. package/dist/components/ui/Card.d.ts +26 -0
  52. package/dist/components/ui/Card.d.ts.map +1 -0
  53. package/dist/components/ui/Card.js +45 -0
  54. package/dist/components/ui/Card.js.map +1 -0
  55. package/dist/components/ui/DataTable.js +1 -1
  56. package/dist/components/ui/Input.d.ts +15 -0
  57. package/dist/components/ui/Input.d.ts.map +1 -0
  58. package/dist/components/ui/Input.js +23 -0
  59. package/dist/components/ui/Input.js.map +1 -0
  60. package/dist/components/ui/SearchInput.js +1 -1
  61. package/dist/components/ui/Select.d.ts +16 -0
  62. package/dist/components/ui/Select.d.ts.map +1 -0
  63. package/dist/components/ui/Select.js +25 -0
  64. package/dist/components/ui/Select.js.map +1 -0
  65. package/dist/components/ui/Toast.js +1 -1
  66. package/dist/components/ui/index.d.ts +10 -4
  67. package/dist/components/ui/index.d.ts.map +1 -1
  68. package/dist/components/ui/index.js +5 -2
  69. package/dist/components/ui/index.js.map +1 -1
  70. package/dist/fields/BlockBuilderField.js +3 -3
  71. package/dist/fields/DateField.js +1 -1
  72. package/dist/fields/RelationshipField.js +3 -3
  73. package/dist/fields/TextField.js +1 -1
  74. package/dist/index.d.ts +6 -0
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +5 -0
  77. package/dist/index.js.map +1 -1
  78. package/dist/layout/Header.js +1 -1
  79. package/dist/layout/Layout.d.ts +14 -0
  80. package/dist/layout/Layout.d.ts.map +1 -1
  81. package/dist/layout/Layout.js +17 -11
  82. package/dist/layout/Layout.js.map +1 -1
  83. package/dist/layout/Sidebar.d.ts.map +1 -1
  84. package/dist/layout/Sidebar.js +21 -11
  85. package/dist/layout/Sidebar.js.map +1 -1
  86. package/dist/layout/primitives/AdminShell.d.ts +43 -0
  87. package/dist/layout/primitives/AdminShell.d.ts.map +1 -0
  88. package/dist/layout/primitives/AdminShell.js +51 -0
  89. package/dist/layout/primitives/AdminShell.js.map +1 -0
  90. package/dist/layout/primitives/Box.d.ts +19 -0
  91. package/dist/layout/primitives/Box.d.ts.map +1 -0
  92. package/dist/layout/primitives/Box.js +12 -0
  93. package/dist/layout/primitives/Box.js.map +1 -0
  94. package/dist/layout/primitives/Cluster.d.ts +27 -0
  95. package/dist/layout/primitives/Cluster.d.ts.map +1 -0
  96. package/dist/layout/primitives/Cluster.js +37 -0
  97. package/dist/layout/primitives/Cluster.js.map +1 -0
  98. package/dist/layout/primitives/Grid.d.ts +45 -0
  99. package/dist/layout/primitives/Grid.d.ts.map +1 -0
  100. package/dist/layout/primitives/Grid.js +59 -0
  101. package/dist/layout/primitives/Grid.js.map +1 -0
  102. package/dist/layout/primitives/PageContainer.d.ts +36 -0
  103. package/dist/layout/primitives/PageContainer.d.ts.map +1 -0
  104. package/dist/layout/primitives/PageContainer.js +41 -0
  105. package/dist/layout/primitives/PageContainer.js.map +1 -0
  106. package/dist/layout/primitives/Split.d.ts +34 -0
  107. package/dist/layout/primitives/Split.d.ts.map +1 -0
  108. package/dist/layout/primitives/Split.js +27 -0
  109. package/dist/layout/primitives/Split.js.map +1 -0
  110. package/dist/layout/primitives/Stack.d.ts +23 -0
  111. package/dist/layout/primitives/Stack.d.ts.map +1 -0
  112. package/dist/layout/primitives/Stack.js +34 -0
  113. package/dist/layout/primitives/Stack.js.map +1 -0
  114. package/dist/layout/primitives/index.d.ts +30 -0
  115. package/dist/layout/primitives/index.d.ts.map +1 -0
  116. package/dist/layout/primitives/index.js +22 -0
  117. package/dist/layout/primitives/index.js.map +1 -0
  118. package/dist/layout/primitives/tokens.d.ts +48 -0
  119. package/dist/layout/primitives/tokens.d.ts.map +1 -0
  120. package/dist/layout/primitives/tokens.js +54 -0
  121. package/dist/layout/primitives/tokens.js.map +1 -0
  122. package/dist/lib/cv.d.ts +53 -0
  123. package/dist/lib/cv.d.ts.map +1 -0
  124. package/dist/lib/cv.js +39 -0
  125. package/dist/lib/cv.js.map +1 -0
  126. package/dist/views/ApiKeys.d.ts.map +1 -1
  127. package/dist/views/ApiKeys.js +13 -11
  128. package/dist/views/ApiKeys.js.map +1 -1
  129. package/dist/views/CollectionList.js +8 -8
  130. package/dist/views/Dashboard.d.ts.map +1 -1
  131. package/dist/views/Dashboard.js +333 -78
  132. package/dist/views/Dashboard.js.map +1 -1
  133. package/dist/views/DocumentEdit.d.ts.map +1 -1
  134. package/dist/views/DocumentEdit.js +17 -5
  135. package/dist/views/DocumentEdit.js.map +1 -1
  136. package/dist/views/ForgotPassword.js +2 -2
  137. package/dist/views/FormEditor.js +5 -5
  138. package/dist/views/FormSubmissions.js +6 -6
  139. package/dist/views/Forms.js +2 -2
  140. package/dist/views/Login.d.ts +16 -1
  141. package/dist/views/Login.d.ts.map +1 -1
  142. package/dist/views/Login.js +17 -7
  143. package/dist/views/Login.js.map +1 -1
  144. package/dist/views/MediaBrowser.js +16 -16
  145. package/dist/views/PageEditor.js +2 -2
  146. package/dist/views/Pages.js +10 -10
  147. package/dist/views/PostEditor.js +2 -2
  148. package/dist/views/Posts.js +4 -4
  149. package/dist/views/Redirects.js +4 -4
  150. package/dist/views/ResetPassword.js +2 -2
  151. package/dist/views/SEO.js +6 -6
  152. package/dist/views/ScriptTagEditor.js +4 -4
  153. package/dist/views/ScriptTags.js +2 -2
  154. package/dist/views/Settings.d.ts.map +1 -1
  155. package/dist/views/Settings.js +9 -8
  156. package/dist/views/Settings.js.map +1 -1
  157. package/dist/views/SetupWizard.js +2 -2
  158. package/dist/views/Users.js +4 -4
  159. package/dist/views/page-builder/AIBlockAssist.js +1 -1
  160. package/dist/views/page-builder/AIGenerateDialog.js +10 -10
  161. package/dist/views/page-builder/BlockEditor.js +10 -10
  162. package/dist/views/page-builder/BlockPicker.js +4 -4
  163. package/dist/views/page-builder/BottomBar.js +1 -1
  164. package/dist/views/page-builder/BuilderToolbar.js +2 -2
  165. package/dist/views/page-builder/ContextPanel.js +2 -2
  166. package/dist/views/page-builder/DesignScore.js +9 -9
  167. package/dist/views/page-builder/NodeSettings.js +8 -8
  168. package/dist/views/page-builder/PageBuilder.js +3 -3
  169. package/dist/views/page-builder/PageSettings.js +1 -1
  170. package/dist/views/page-builder/PageTemplates.js +2 -2
  171. package/dist/views/page-builder/SEOPanel.js +13 -13
  172. package/dist/views/page-builder/SavedSections.js +5 -5
  173. package/dist/views/page-builder/TemplatePicker.js +2 -2
  174. package/dist/views/page-builder/block-renderers/CTAPreview.js +5 -5
  175. package/dist/views/page-builder/block-renderers/CardsPreview.js +1 -1
  176. package/dist/views/page-builder/block-renderers/CodePreview.js +1 -1
  177. package/dist/views/page-builder/block-renderers/FAQPreview.js +3 -3
  178. package/dist/views/page-builder/block-renderers/FallbackPreview.js +1 -1
  179. package/dist/views/page-builder/block-renderers/FormPreview.js +3 -3
  180. package/dist/views/page-builder/block-renderers/GalleryPreview.js +5 -5
  181. package/dist/views/page-builder/block-renderers/HeroPreview.js +3 -3
  182. package/dist/views/page-builder/block-renderers/ImagePreview.js +3 -3
  183. package/dist/views/page-builder/block-renderers/TextPreview.js +3 -3
  184. package/dist/views/page-builder/block-renderers/VideoPreview.js +4 -4
  185. package/dist/views/page-builder/canvas/BlockRenderer.js +1 -1
  186. package/dist/views/page-builder/canvas/BuilderCanvas.js +3 -3
  187. package/dist/views/page-builder/canvas/ColumnRenderer.js +2 -2
  188. package/dist/views/page-builder/canvas/ContainerRenderer.js +2 -2
  189. package/dist/views/page-builder/canvas/RowRenderer.js +2 -2
  190. package/dist/views/page-builder/canvas/SectionRenderer.js +2 -2
  191. package/package.json +6 -2
  192. package/src/AdminRoot.tsx +21 -11
  193. package/src/__tests__/layout/primitives.test.ts +37 -0
  194. package/src/__tests__/lib/cv.test.ts +74 -0
  195. package/src/assets/actuate-logo.tsx +72 -0
  196. package/src/components/Breadcrumbs.tsx +6 -6
  197. package/src/components/CommandPalette.tsx +34 -34
  198. package/src/components/ContentOverviewChart.tsx +3 -3
  199. package/src/components/ErrorBoundary.tsx +3 -3
  200. package/src/components/FocalPointPicker.tsx +4 -4
  201. package/src/components/FolderTree.tsx +38 -38
  202. package/src/components/LivePreview.tsx +16 -16
  203. package/src/components/LocaleSwitcher.tsx +7 -7
  204. package/src/components/MediaPickerModal.tsx +21 -21
  205. package/src/components/PresenceIndicator.tsx +2 -2
  206. package/src/components/SEOConfigPanel.tsx +582 -0
  207. package/src/components/SEOPanel.tsx +46 -46
  208. package/src/components/SEOPerformance.tsx +21 -21
  209. package/src/components/SchedulePublishDialog.tsx +241 -0
  210. package/src/components/SharePreviewLinkDialog.tsx +227 -0
  211. package/src/components/TipTapEditor.tsx +33 -33
  212. package/src/components/VersionHistory.tsx +16 -16
  213. package/src/components/ui/Badge.tsx +66 -14
  214. package/src/components/ui/Button.tsx +70 -33
  215. package/src/components/ui/Card.tsx +101 -0
  216. package/src/components/ui/DataTable.tsx +1 -1
  217. package/src/components/ui/Input.tsx +35 -0
  218. package/src/components/ui/SearchInput.tsx +4 -4
  219. package/src/components/ui/Select.tsx +56 -0
  220. package/src/components/ui/Toast.tsx +1 -1
  221. package/src/components/ui/index.ts +18 -4
  222. package/src/fields/BlockBuilderField.tsx +3 -3
  223. package/src/fields/DateField.tsx +1 -1
  224. package/src/fields/RelationshipField.tsx +10 -10
  225. package/src/fields/TextField.tsx +1 -1
  226. package/src/index.ts +32 -0
  227. package/src/layout/Header.tsx +28 -28
  228. package/src/layout/Layout.tsx +39 -46
  229. package/src/layout/Sidebar.tsx +37 -64
  230. package/src/layout/primitives/AdminShell.tsx +118 -0
  231. package/src/layout/primitives/Box.tsx +30 -0
  232. package/src/layout/primitives/Cluster.tsx +74 -0
  233. package/src/layout/primitives/Grid.tsx +120 -0
  234. package/src/layout/primitives/PageContainer.tsx +96 -0
  235. package/src/layout/primitives/Split.tsx +73 -0
  236. package/src/layout/primitives/Stack.tsx +67 -0
  237. package/src/layout/primitives/index.ts +36 -0
  238. package/src/layout/primitives/tokens.ts +76 -0
  239. package/src/lib/cv.ts +96 -0
  240. package/src/styles/build-input.css +1 -1
  241. package/src/views/ApiKeys.tsx +57 -57
  242. package/src/views/CollectionList.tsx +30 -30
  243. package/src/views/Dashboard.tsx +737 -186
  244. package/src/views/DocumentEdit.tsx +90 -10
  245. package/src/views/ForgotPassword.tsx +18 -18
  246. package/src/views/FormEditor.tsx +75 -75
  247. package/src/views/FormSubmissions.tsx +76 -76
  248. package/src/views/Forms.tsx +27 -27
  249. package/src/views/Login.tsx +65 -25
  250. package/src/views/MediaBrowser.tsx +127 -127
  251. package/src/views/PageEditor.tsx +25 -25
  252. package/src/views/Pages.tsx +59 -59
  253. package/src/views/PostEditor.tsx +37 -37
  254. package/src/views/Posts.tsx +48 -48
  255. package/src/views/Redirects.tsx +21 -21
  256. package/src/views/ResetPassword.tsx +28 -28
  257. package/src/views/SEO.tsx +144 -144
  258. package/src/views/ScriptTagEditor.tsx +24 -24
  259. package/src/views/ScriptTags.tsx +10 -10
  260. package/src/views/Settings.tsx +88 -80
  261. package/src/views/SetupWizard.tsx +28 -28
  262. package/src/views/Users.tsx +20 -20
  263. package/src/views/page-builder/AIBlockAssist.tsx +1 -1
  264. package/src/views/page-builder/AIGenerateDialog.tsx +63 -63
  265. package/src/views/page-builder/BlockEditor.tsx +26 -26
  266. package/src/views/page-builder/BlockPicker.tsx +22 -22
  267. package/src/views/page-builder/BottomBar.tsx +8 -8
  268. package/src/views/page-builder/BuilderToolbar.tsx +17 -17
  269. package/src/views/page-builder/ContextPanel.tsx +3 -3
  270. package/src/views/page-builder/DesignScore.tsx +21 -21
  271. package/src/views/page-builder/NodeSettings.tsx +27 -27
  272. package/src/views/page-builder/PageBuilder.tsx +11 -11
  273. package/src/views/page-builder/PageSettings.tsx +4 -4
  274. package/src/views/page-builder/PageTemplates.tsx +18 -18
  275. package/src/views/page-builder/SEOPanel.tsx +53 -53
  276. package/src/views/page-builder/SavedSections.tsx +37 -37
  277. package/src/views/page-builder/TemplatePicker.tsx +17 -17
  278. package/src/views/page-builder/block-renderers/CTAPreview.tsx +13 -13
  279. package/src/views/page-builder/block-renderers/CardsPreview.tsx +5 -5
  280. package/src/views/page-builder/block-renderers/CodePreview.tsx +6 -6
  281. package/src/views/page-builder/block-renderers/FAQPreview.tsx +13 -13
  282. package/src/views/page-builder/block-renderers/FallbackPreview.tsx +3 -3
  283. package/src/views/page-builder/block-renderers/FormPreview.tsx +20 -20
  284. package/src/views/page-builder/block-renderers/GalleryPreview.tsx +8 -8
  285. package/src/views/page-builder/block-renderers/HeroPreview.tsx +16 -16
  286. package/src/views/page-builder/block-renderers/ImagePreview.tsx +4 -4
  287. package/src/views/page-builder/block-renderers/TextPreview.tsx +14 -14
  288. package/src/views/page-builder/block-renderers/VideoPreview.tsx +12 -12
  289. package/src/views/page-builder/canvas/BlockRenderer.tsx +4 -4
  290. package/src/views/page-builder/canvas/BuilderCanvas.tsx +6 -6
  291. package/src/views/page-builder/canvas/ColumnRenderer.tsx +3 -3
  292. package/src/views/page-builder/canvas/ContainerRenderer.tsx +2 -2
  293. package/src/views/page-builder/canvas/RowRenderer.tsx +2 -2
  294. package/src/views/page-builder/canvas/SectionRenderer.tsx +2 -2
@@ -0,0 +1,34 @@
1
+ import type { HTMLAttributes, ReactNode, ElementType } from 'react';
2
+ import type { SpaceToken } from './tokens.js';
3
+ export interface SplitProps extends HTMLAttributes<HTMLElement> {
4
+ /**
5
+ * Fraction of the container the primary pane should take, expressed as
6
+ * a CSS fraction string. Defaults to `'2fr 1fr'` (primary 2x sidebar).
7
+ *
8
+ * @example
9
+ * <Split fraction="3fr 1fr"> // 75% / 25%
10
+ * <Split fraction="minmax(0, 1fr) 320px"> // fluid + fixed sidebar
11
+ */
12
+ fraction?: string;
13
+ /** Gap between the two panes. */
14
+ space?: SpaceToken;
15
+ /**
16
+ * Stack vertically at this breakpoint and below. Pass `false` to never
17
+ * stack. Defaults to `md` (stacks on screens narrower than 768px).
18
+ */
19
+ stackBelow?: 'sm' | 'md' | 'lg' | 'xl' | false;
20
+ /** Reverse the order of children (sidebar first instead of second). */
21
+ reverse?: boolean;
22
+ /** Render as a different element. */
23
+ as?: ElementType;
24
+ children: [ReactNode, ReactNode];
25
+ }
26
+ /**
27
+ * Two-pane split layout (primary + sidebar/aside) that collapses to a
28
+ * stacked layout below a configurable breakpoint. Use this for the
29
+ * document editor (`<Split fraction="minmax(0, 1fr) 320px">`), settings
30
+ * pages with a navigation rail, etc. — anywhere two panes need to live
31
+ * side-by-side at desktop widths and stack on mobile.
32
+ */
33
+ export declare function Split({ fraction, space, stackBelow, reverse, as: Component, className, style, children, ...rest }: SplitProps): import("react/jsx-runtime").JSX.Element;
34
+ //# sourceMappingURL=Split.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Split.d.ts","sourceRoot":"","sources":["../../../src/layout/primitives/Split.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C,MAAM,WAAW,UAAW,SAAQ,cAAc,CAAC,WAAW,CAAC;IAC7D;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iCAAiC;IACjC,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB;;;OAGG;IACH,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAA;IAC9C,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,qCAAqC;IACrC,EAAE,CAAC,EAAE,WAAW,CAAA;IAChB,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;CACjC;AASD;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,EACpB,QAAoB,EACpB,KAAW,EACX,UAAiB,EACjB,OAAO,EACP,EAAE,EAAE,SAAiB,EACrB,SAAc,EACd,KAAK,EACL,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,UAAU,2CAqBZ"}
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ const STACK_BELOW_CLASS = {
3
+ sm: 'sm:grid',
4
+ md: 'md:grid',
5
+ lg: 'lg:grid',
6
+ xl: 'xl:grid',
7
+ };
8
+ /**
9
+ * Two-pane split layout (primary + sidebar/aside) that collapses to a
10
+ * stacked layout below a configurable breakpoint. Use this for the
11
+ * document editor (`<Split fraction="minmax(0, 1fr) 320px">`), settings
12
+ * pages with a navigation rail, etc. — anywhere two panes need to live
13
+ * side-by-side at desktop widths and stack on mobile.
14
+ */
15
+ export function Split({ fraction = '2fr 1fr', space = '6', stackBelow = 'md', reverse, as: Component = 'div', className = '', style, children, ...rest }) {
16
+ const stackClass = stackBelow === false ? 'grid' : `flex flex-col ${STACK_BELOW_CLASS[stackBelow]}`;
17
+ const classes = [stackClass, `gap-${space}`, reverse ? 'flex-col-reverse' : '', className]
18
+ .filter(Boolean)
19
+ .join(' ');
20
+ return (_jsx(Component, { className: classes, style: {
21
+ ...(stackBelow === false
22
+ ? { gridTemplateColumns: fraction }
23
+ : { gridTemplateColumns: fraction }),
24
+ ...style,
25
+ }, ...rest, children: children }));
26
+ }
27
+ //# sourceMappingURL=Split.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Split.js","sourceRoot":"","sources":["../../../src/layout/primitives/Split.tsx"],"names":[],"mappings":";AA2BA,MAAM,iBAAiB,GAAG;IACxB,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;CACL,CAAA;AAEV;;;;;;GAMG;AACH,MAAM,UAAU,KAAK,CAAC,EACpB,QAAQ,GAAG,SAAS,EACpB,KAAK,GAAG,GAAG,EACX,UAAU,GAAG,IAAI,EACjB,OAAO,EACP,EAAE,EAAE,SAAS,GAAG,KAAK,EACrB,SAAS,GAAG,EAAE,EACd,KAAK,EACL,QAAQ,EACR,GAAG,IAAI,EACI;IACX,MAAM,UAAU,GACd,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAA;IAClF,MAAM,OAAO,GAAG,CAAC,UAAU,EAAE,OAAO,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC;SACvF,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAA;IAEZ,OAAO,CACL,KAAC,SAAS,IACR,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE;YACL,GAAG,CAAC,UAAU,KAAK,KAAK;gBACtB,CAAC,CAAC,EAAE,mBAAmB,EAAE,QAAQ,EAAE;gBACnC,CAAC,CAAC,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC;YACtC,GAAG,KAAK;SACT,KACG,IAAI,YAEP,QAAQ,GACC,CACb,CAAA;AACH,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { HTMLAttributes, ReactNode, ElementType } from 'react';
2
+ import type { SpaceToken } from './tokens.js';
3
+ export type StackSpace = SpaceToken;
4
+ export interface StackProps extends HTMLAttributes<HTMLElement> {
5
+ /** Vertical gap between children. Maps to Tailwind `gap-{space}`. */
6
+ space?: StackSpace;
7
+ /** Render as a different element (e.g. `<section>`, `<article>`). Defaults to `div`. */
8
+ as?: ElementType;
9
+ /** Center children horizontally (sets `items-center`). */
10
+ align?: 'start' | 'center' | 'end' | 'stretch';
11
+ /** Distribute vertical space (sets `justify-{value}`). */
12
+ justify?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';
13
+ /** Stretch the stack to fill its parent's height. */
14
+ fill?: boolean;
15
+ children?: ReactNode;
16
+ }
17
+ /**
18
+ * Vertical stack with a consistent gap between children. This is the
19
+ * single sanctioned way to space block-level elements in the admin —
20
+ * never reach for `space-y-*` directly.
21
+ */
22
+ export declare function Stack({ space, as: Component, align, justify, fill, className, children, ...rest }: StackProps): import("react/jsx-runtime").JSX.Element;
23
+ //# sourceMappingURL=Stack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Stack.d.ts","sourceRoot":"","sources":["../../../src/layout/primitives/Stack.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C,MAAM,MAAM,UAAU,GAAG,UAAU,CAAA;AAEnC,MAAM,WAAW,UAAW,SAAQ,cAAc,CAAC,WAAW,CAAC;IAC7D,qEAAqE;IACrE,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,wFAAwF;IACxF,EAAE,CAAC,EAAE,WAAW,CAAA;IAChB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAA;IAC9C,0DAA0D;IAC1D,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAA;IACtE,qDAAqD;IACrD,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAkBD;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,EACpB,KAAW,EACX,EAAE,EAAE,SAAiB,EACrB,KAAK,EACL,OAAO,EACP,IAAI,EACJ,SAAc,EACd,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,UAAU,2CAiBZ"}
@@ -0,0 +1,34 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ const ALIGN_CLASS = {
3
+ start: 'items-start',
4
+ center: 'items-center',
5
+ end: 'items-end',
6
+ stretch: 'items-stretch',
7
+ };
8
+ const JUSTIFY_CLASS = {
9
+ start: 'justify-start',
10
+ center: 'justify-center',
11
+ end: 'justify-end',
12
+ between: 'justify-between',
13
+ around: 'justify-around',
14
+ evenly: 'justify-evenly',
15
+ };
16
+ /**
17
+ * Vertical stack with a consistent gap between children. This is the
18
+ * single sanctioned way to space block-level elements in the admin —
19
+ * never reach for `space-y-*` directly.
20
+ */
21
+ export function Stack({ space = '4', as: Component = 'div', align, justify, fill, className = '', children, ...rest }) {
22
+ const classes = [
23
+ 'flex flex-col',
24
+ `gap-${space}`,
25
+ align ? ALIGN_CLASS[align] : '',
26
+ justify ? JUSTIFY_CLASS[justify] : '',
27
+ fill ? 'h-full' : '',
28
+ className,
29
+ ]
30
+ .filter(Boolean)
31
+ .join(' ');
32
+ return (_jsx(Component, { className: classes, ...rest, children: children }));
33
+ }
34
+ //# sourceMappingURL=Stack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Stack.js","sourceRoot":"","sources":["../../../src/layout/primitives/Stack.tsx"],"names":[],"mappings":";AAmBA,MAAM,WAAW,GAAqD;IACpE,KAAK,EAAE,aAAa;IACpB,MAAM,EAAE,cAAc;IACtB,GAAG,EAAE,WAAW;IAChB,OAAO,EAAE,eAAe;CACzB,CAAA;AAED,MAAM,aAAa,GAAuD;IACxE,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,gBAAgB;IACxB,GAAG,EAAE,aAAa;IAClB,OAAO,EAAE,iBAAiB;IAC1B,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,gBAAgB;CACzB,CAAA;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,EACpB,KAAK,GAAG,GAAG,EACX,EAAE,EAAE,SAAS,GAAG,KAAK,EACrB,KAAK,EACL,OAAO,EACP,IAAI,EACJ,SAAS,GAAG,EAAE,EACd,QAAQ,EACR,GAAG,IAAI,EACI;IACX,MAAM,OAAO,GAAG;QACd,eAAe;QACf,OAAO,KAAK,EAAE;QACd,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;QAC/B,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;QACrC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;QACpB,SAAS;KACV;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAA;IAEZ,OAAO,CACL,KAAC,SAAS,IAAC,SAAS,EAAE,OAAO,KAAM,IAAI,YACpC,QAAQ,GACC,CACb,CAAA;AACH,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Layout primitives for the Actuate admin.
3
+ *
4
+ * These exist so views never hand-roll their own flex/grid scaffolding.
5
+ * Every admin view should compose these primitives instead of writing raw
6
+ * Tailwind classes for spacing/alignment/structure. That contract is what
7
+ * keeps layout bugs (sidebar overlap, breakpoint mismatches, missing
8
+ * `min-w-0`) from recurring in new views.
9
+ *
10
+ * Naming follows the "Every Layout" canon
11
+ * (https://every-layout.dev/) plus our own `AdminShell` and
12
+ * `PageContainer` for the admin-specific outer chrome.
13
+ */
14
+ export { AdminShell } from './AdminShell.js';
15
+ export type { AdminShellProps } from './AdminShell.js';
16
+ export { PageContainer } from './PageContainer.js';
17
+ export type { PageContainerProps } from './PageContainer.js';
18
+ export { Stack } from './Stack.js';
19
+ export type { StackProps, StackSpace } from './Stack.js';
20
+ export { Cluster } from './Cluster.js';
21
+ export type { ClusterProps, ClusterAlign, ClusterJustify } from './Cluster.js';
22
+ export { Grid } from './Grid.js';
23
+ export type { GridProps, GridResponsive } from './Grid.js';
24
+ export { Split } from './Split.js';
25
+ export type { SplitProps } from './Split.js';
26
+ export { Box } from './Box.js';
27
+ export type { BoxProps } from './Box.js';
28
+ export { tokens } from './tokens.js';
29
+ export type { SpaceToken, RadiusToken } from './tokens.js';
30
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layout/primitives/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAE5D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE9E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAE1D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,YAAY,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Layout primitives for the Actuate admin.
3
+ *
4
+ * These exist so views never hand-roll their own flex/grid scaffolding.
5
+ * Every admin view should compose these primitives instead of writing raw
6
+ * Tailwind classes for spacing/alignment/structure. That contract is what
7
+ * keeps layout bugs (sidebar overlap, breakpoint mismatches, missing
8
+ * `min-w-0`) from recurring in new views.
9
+ *
10
+ * Naming follows the "Every Layout" canon
11
+ * (https://every-layout.dev/) plus our own `AdminShell` and
12
+ * `PageContainer` for the admin-specific outer chrome.
13
+ */
14
+ export { AdminShell } from './AdminShell.js';
15
+ export { PageContainer } from './PageContainer.js';
16
+ export { Stack } from './Stack.js';
17
+ export { Cluster } from './Cluster.js';
18
+ export { Grid } from './Grid.js';
19
+ export { Split } from './Split.js';
20
+ export { Box } from './Box.js';
21
+ export { tokens } from './tokens.js';
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/layout/primitives/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAGlD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGlC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAGtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAGhC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGlC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAG9B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Design tokens — single source of truth for the admin design system.
3
+ *
4
+ * Tokens are surfaced both as TypeScript constants (for inline-style escape
5
+ * hatches) and via CSS custom properties in `styles/theme.css`. Always
6
+ * prefer the CSS variables in production code; the TS constants are for
7
+ * computed inline styles only (e.g. dynamic widths, computed grid sizes).
8
+ */
9
+ export type SpaceToken = '0' | 'px' | '0.5' | '1' | '1.5' | '2' | '2.5' | '3' | '4' | '5' | '6' | '8' | '10' | '12' | '16';
10
+ export type RadiusToken = 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
11
+ /** Numeric pixel values for inline style escape hatches. */
12
+ export declare const tokens: {
13
+ space: {
14
+ readonly '0': 0;
15
+ readonly px: 1;
16
+ readonly '0.5': 2;
17
+ readonly '1': 4;
18
+ readonly '1.5': 6;
19
+ readonly '2': 8;
20
+ readonly '2.5': 10;
21
+ readonly '3': 12;
22
+ readonly '4': 16;
23
+ readonly '5': 20;
24
+ readonly '6': 24;
25
+ readonly '8': 32;
26
+ readonly '10': 40;
27
+ readonly '12': 48;
28
+ readonly '16': 64;
29
+ };
30
+ radius: {
31
+ readonly none: 0;
32
+ readonly sm: 2;
33
+ readonly md: 6;
34
+ readonly lg: 8;
35
+ readonly xl: 12;
36
+ readonly full: 9999;
37
+ };
38
+ breakpoint: {
39
+ readonly sm: 640;
40
+ readonly md: 768;
41
+ readonly lg: 1024;
42
+ readonly xl: 1280;
43
+ readonly '2xl': 1536;
44
+ };
45
+ };
46
+ /** Map a space token to the corresponding Tailwind `space-y-*` / `gap-*` value. */
47
+ export declare function spaceToTw(t: SpaceToken): string;
48
+ //# sourceMappingURL=tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../src/layout/primitives/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,UAAU,GAClB,GAAG,GACH,IAAI,GACJ,KAAK,GACL,GAAG,GACH,KAAK,GACL,GAAG,GACH,KAAK,GACL,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,IAAI,CAAA;AAER,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAA;AAErE,4DAA4D;AAC5D,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuClB,CAAA;AAED,mFAAmF;AACnF,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAI/C"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Design tokens — single source of truth for the admin design system.
3
+ *
4
+ * Tokens are surfaced both as TypeScript constants (for inline-style escape
5
+ * hatches) and via CSS custom properties in `styles/theme.css`. Always
6
+ * prefer the CSS variables in production code; the TS constants are for
7
+ * computed inline styles only (e.g. dynamic widths, computed grid sizes).
8
+ */
9
+ /** Numeric pixel values for inline style escape hatches. */
10
+ export const tokens = {
11
+ // Spacing scale matches Tailwind's default (--spacing = 0.25rem = 4px).
12
+ space: {
13
+ '0': 0,
14
+ px: 1,
15
+ '0.5': 2,
16
+ '1': 4,
17
+ '1.5': 6,
18
+ '2': 8,
19
+ '2.5': 10,
20
+ '3': 12,
21
+ '4': 16,
22
+ '5': 20,
23
+ '6': 24,
24
+ '8': 32,
25
+ '10': 40,
26
+ '12': 48,
27
+ '16': 64,
28
+ },
29
+ radius: {
30
+ none: 0,
31
+ sm: 2,
32
+ md: 6,
33
+ lg: 8,
34
+ xl: 12,
35
+ full: 9999,
36
+ },
37
+ // Breakpoints mirror Tailwind defaults so primitives can compose with
38
+ // utility classes without surprises. Use `matchMedia(`(min-width: …`)` to
39
+ // sync JS-driven layout decisions with these values.
40
+ breakpoint: {
41
+ sm: 640,
42
+ md: 768,
43
+ lg: 1024,
44
+ xl: 1280,
45
+ '2xl': 1536,
46
+ },
47
+ };
48
+ /** Map a space token to the corresponding Tailwind `space-y-*` / `gap-*` value. */
49
+ export function spaceToTw(t) {
50
+ // Tailwind's spacing utility already accepts the same scale, so we map
51
+ // 1:1. Centralizing here means callers don't repeat the string literal.
52
+ return t;
53
+ }
54
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/layout/primitives/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAqBH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,wEAAwE;IACxE,KAAK,EAAE;QACL,GAAG,EAAE,CAAC;QACN,EAAE,EAAE,CAAC;QACL,KAAK,EAAE,CAAC;QACR,GAAG,EAAE,CAAC;QACN,KAAK,EAAE,CAAC;QACR,GAAG,EAAE,CAAC;QACN,KAAK,EAAE,EAAE;QACT,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE;KACqC;IAE/C,MAAM,EAAE;QACN,IAAI,EAAE,CAAC;QACP,EAAE,EAAE,CAAC;QACL,EAAE,EAAE,CAAC;QACL,EAAE,EAAE,CAAC;QACL,EAAE,EAAE,EAAE;QACN,IAAI,EAAE,IAAI;KACoC;IAEhD,sEAAsE;IACtE,0EAA0E;IAC1E,qDAAqD;IACrD,UAAU,EAAE;QACV,EAAE,EAAE,GAAG;QACP,EAAE,EAAE,GAAG;QACP,EAAE,EAAE,IAAI;QACR,EAAE,EAAE,IAAI;QACR,KAAK,EAAE,IAAI;KACH;CACX,CAAA;AAED,mFAAmF;AACnF,MAAM,UAAU,SAAS,CAAC,CAAa;IACrC,uEAAuE;IACvE,wEAAwE;IACxE,OAAO,CAAC,CAAA;AACV,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Tiny in-house implementation of the `class-variance-authority` pattern
3
+ * (a.k.a. `cva` / `tailwind-variants`). We roll our own to avoid a runtime
4
+ * dependency while keeping the API surface compatible with the shadcn /
5
+ * cva ecosystem — anyone familiar with cva can read these calls.
6
+ *
7
+ * @example
8
+ * const button = cv('inline-flex items-center', {
9
+ * variants: {
10
+ * intent: {
11
+ * primary: 'bg-primary text-white',
12
+ * secondary: 'bg-secondary text-foreground',
13
+ * },
14
+ * size: {
15
+ * sm: 'px-2 py-1 text-xs',
16
+ * md: 'px-4 py-2 text-sm',
17
+ * },
18
+ * },
19
+ * defaultVariants: { intent: 'primary', size: 'md' },
20
+ * })
21
+ *
22
+ * button({ intent: 'secondary' }) // -> "inline-flex … bg-secondary …"
23
+ * button({ intent: 'secondary', class: 'shadow' }) // append extras
24
+ */
25
+ type ClassValue = string | undefined | false | null;
26
+ export type VariantsConfig = Record<string, Record<string, ClassValue>>;
27
+ type VariantSelection<V extends VariantsConfig> = {
28
+ [K in keyof V]?: keyof V[K];
29
+ };
30
+ interface CompoundVariant<V extends VariantsConfig> {
31
+ [key: string]: keyof V[keyof V] | Array<keyof V[keyof V]> | ClassValue;
32
+ class?: ClassValue;
33
+ }
34
+ export interface CvConfig<V extends VariantsConfig> {
35
+ variants: V;
36
+ defaultVariants?: VariantSelection<V>;
37
+ compoundVariants?: Array<CompoundVariant<V>>;
38
+ }
39
+ export type VariantProps<F extends (...args: any) => any> = Omit<NonNullable<Parameters<F>[0]>, 'class' | 'className'>;
40
+ /**
41
+ * Build a variant-aware class generator.
42
+ *
43
+ * The returned function accepts the variant selection plus an optional
44
+ * `class` / `className` escape hatch and returns the combined Tailwind
45
+ * class string. Compound variants run after the base + per-variant
46
+ * classes, so they take precedence when the Tailwind ordering matters.
47
+ */
48
+ export declare function cv<V extends VariantsConfig>(base: ClassValue, config: CvConfig<V>): (props?: VariantSelection<V> & {
49
+ class?: ClassValue;
50
+ className?: ClassValue;
51
+ }) => string;
52
+ export {};
53
+ //# sourceMappingURL=cv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cv.d.ts","sourceRoot":"","sources":["../../src/lib/cv.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,KAAK,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,IAAI,CAAA;AAEnD,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;AAEvE,KAAK,gBAAgB,CAAC,CAAC,SAAS,cAAc,IAAI;KAC/C,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;CAC5B,CAAA;AAED,UAAU,eAAe,CAAC,CAAC,SAAS,cAAc;IAGhD,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,CAAA;IACtE,KAAK,CAAC,EAAE,UAAU,CAAA;CACnB;AAED,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,cAAc;IAChD,QAAQ,EAAE,CAAC,CAAA;IACX,eAAe,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;IACrC,gBAAgB,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;CAC7C;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,IAAI,IAAI,CAC9D,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC7B,OAAO,GAAG,WAAW,CACtB,CAAA;AAED;;;;;;;GAOG;AACH,wBAAgB,EAAE,CAAC,CAAC,SAAS,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,IAE9E,QAAQ,gBAAgB,CAAC,CAAC,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,UAAU,CAAC;IAAC,SAAS,CAAC,EAAE,UAAU,CAAA;CAAE,KAC3E,MAAM,CA+BV"}
package/dist/lib/cv.js ADDED
@@ -0,0 +1,39 @@
1
+ import clsx from 'clsx';
2
+ /**
3
+ * Build a variant-aware class generator.
4
+ *
5
+ * The returned function accepts the variant selection plus an optional
6
+ * `class` / `className` escape hatch and returns the combined Tailwind
7
+ * class string. Compound variants run after the base + per-variant
8
+ * classes, so they take precedence when the Tailwind ordering matters.
9
+ */
10
+ export function cv(base, config) {
11
+ return function variantClass(props) {
12
+ const selected = { ...config.defaultVariants, ...props };
13
+ const variantClasses = [];
14
+ for (const [key, valuesMap] of Object.entries(config.variants)) {
15
+ const value = selected[key];
16
+ if (value === undefined || value === null)
17
+ continue;
18
+ const cls = valuesMap[value];
19
+ if (cls)
20
+ variantClasses.push(cls);
21
+ }
22
+ const compoundClasses = [];
23
+ if (config.compoundVariants) {
24
+ for (const compound of config.compoundVariants) {
25
+ const { class: cClass, className: _cn, ...match } = compound;
26
+ const matches = Object.entries(match).every(([k, v]) => {
27
+ const current = selected[k];
28
+ if (Array.isArray(v))
29
+ return v.includes(current);
30
+ return current === v;
31
+ });
32
+ if (matches && cClass)
33
+ compoundClasses.push(cClass);
34
+ }
35
+ }
36
+ return clsx(base, ...variantClasses, ...compoundClasses, (props?.class ?? props?.className));
37
+ };
38
+ }
39
+ //# sourceMappingURL=cv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cv.js","sourceRoot":"","sources":["../../src/lib/cv.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAqDvB;;;;;;;GAOG;AACH,MAAM,UAAU,EAAE,CAA2B,IAAgB,EAAE,MAAmB;IAChF,OAAO,SAAS,YAAY,CAC1B,KAA4E;QAE5E,MAAM,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC,eAAe,EAAE,GAAG,KAAK,EAA6B,CAAA;QAEnF,MAAM,cAAc,GAAiB,EAAE,CAAA;QACvC,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/D,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;YAC3B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;gBAAE,SAAQ;YACnD,MAAM,GAAG,GAAG,SAAS,CAAC,KAAe,CAAC,CAAA;YACtC,IAAI,GAAG;gBAAE,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACnC,CAAC;QAED,MAAM,eAAe,GAAiB,EAAE,CAAA;QACxC,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC5B,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAC/C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,QAAe,CAAA;gBACnE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;oBACrD,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;oBAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wBAAE,OAAQ,CAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;oBAC/D,OAAO,OAAO,KAAK,CAAC,CAAA;gBACtB,CAAC,CAAC,CAAA;gBACF,IAAI,OAAO,IAAI,MAAM;oBAAE,eAAe,CAAC,IAAI,CAAC,MAAoB,CAAC,CAAA;YACnE,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CACT,IAAI,EACJ,GAAG,cAAc,EACjB,GAAG,eAAe,EAClB,CAAC,KAAK,EAAE,KAAK,IAAI,KAAK,EAAE,SAAS,CAAe,CACjD,CAAA;IACH,CAAC,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ApiKeys.d.ts","sourceRoot":"","sources":["../../src/views/ApiKeys.tsx"],"names":[],"mappings":"AASA,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACpC;AA+CD,wBAAgB,OAAO,CAAC,MAAM,EAAE,YAAY,2CAoK3C"}
1
+ {"version":3,"file":"ApiKeys.d.ts","sourceRoot":"","sources":["../../src/views/ApiKeys.tsx"],"names":[],"mappings":"AAmBA,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACpC;AAiDD,wBAAgB,OAAO,CAAC,MAAM,EAAE,YAAY,2CA4K3C"}
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import * as Dialog from '@radix-ui/react-dialog';
4
- import { Copy, KeyRound, Loader2, Plus, Shield, Trash2, AlertTriangle, Eye, EyeOff } from 'lucide-react';
4
+ import { Copy, KeyRound, Loader2, Plus, Shield, Trash2, AlertTriangle, Eye, EyeOff, } from 'lucide-react';
5
5
  import { useState } from 'react';
6
6
  import { toast } from 'sonner';
7
7
  import { useApiData } from '../lib/useApiData.js';
@@ -11,7 +11,9 @@ function formatScopes(scopes) {
11
11
  return 'Full admin';
12
12
  const parts = [];
13
13
  if (scopes.collections?.length) {
14
- const cols = scopes.collections.includes('*') ? 'all collections' : scopes.collections.join(', ');
14
+ const cols = scopes.collections.includes('*')
15
+ ? 'all collections'
16
+ : scopes.collections.join(', ');
15
17
  const acts = scopes.actions?.join('/') ?? 'read';
16
18
  parts.push(`${acts} on ${cols}`);
17
19
  }
@@ -57,17 +59,17 @@ export function ApiKeys(_props) {
57
59
  }
58
60
  };
59
61
  if (loading) {
60
- return (_jsx("div", { className: "p-4 sm:p-6 flex items-center justify-center h-64", children: _jsx(Loader2, { className: "w-6 h-6 animate-spin text-blue-600" }) }));
62
+ return (_jsx("div", { className: "flex h-64 items-center justify-center p-4 sm:p-6", children: _jsx(Loader2, { className: "h-6 w-6 animate-spin text-blue-600" }) }));
61
63
  }
62
- return (_jsxs("div", { className: "p-4 sm:p-6", children: [_jsxs("div", { className: "flex flex-col sm:flex-row sm:items-center justify-between gap-3 mb-6", children: [_jsxs("div", { children: [_jsxs("h1", { className: "text-xl sm:text-2xl font-semibold text-gray-900 flex items-center gap-2", children: [_jsx(KeyRound, { className: "w-5 h-5 text-gray-500" }), "API Keys"] }), _jsxs("p", { className: "text-sm text-gray-500 mt-1", children: ["Long-lived credentials for programmatic access. Use the ", _jsx("code", { className: "px-1 py-0.5 rounded bg-gray-100 text-xs", children: "Authorization: Bearer" }), " header instead of session cookies. API key requests skip CSRF."] })] }), _jsxs("button", { type: "button", onClick: () => setShowCreate(true), className: "inline-flex items-center justify-center gap-2 px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors text-sm", children: [_jsx(Plus, { className: "w-4 h-4" }), "New API Key"] })] }), error && (_jsxs("div", { className: "mb-4 flex items-center gap-3 rounded-lg border border-red-200 bg-red-50 p-3", children: [_jsx(AlertTriangle, { className: "w-5 h-5 text-red-600 shrink-0" }), _jsx("span", { className: "text-sm text-red-800 flex-1", children: error }), _jsx("button", { onClick: refetch, className: "px-3 py-1 text-sm text-red-700 border border-red-300 rounded-lg hover:bg-red-100 transition-colors", children: "Retry" })] })), keys.length === 0 ? (_jsxs("div", { className: "bg-white rounded-lg border border-gray-200 p-10 text-center", children: [_jsx(KeyRound, { className: "w-8 h-8 text-gray-300 mx-auto mb-3" }), _jsx("p", { className: "text-sm text-gray-500 mb-1", children: "No API keys yet" }), _jsx("p", { className: "text-xs text-gray-400 mb-4", children: "Create one to let AI agents, CI jobs, or external integrations call the CMS API." }), _jsxs("button", { type: "button", onClick: () => setShowCreate(true), className: "inline-flex items-center justify-center gap-2 px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors text-sm", children: [_jsx(Plus, { className: "w-4 h-4" }), "Create your first API key"] })] })) : (_jsx("div", { className: "bg-white rounded-lg border border-gray-200 overflow-hidden", children: _jsx("div", { className: "overflow-x-auto", children: _jsxs("table", { className: "w-full", children: [_jsx("thead", { className: "bg-gray-50 border-b border-gray-200", children: _jsxs("tr", { children: [_jsx("th", { className: "px-4 py-2 text-left text-xs font-medium text-gray-700", children: "Name" }), _jsx("th", { className: "px-4 py-2 text-left text-xs font-medium text-gray-700", children: "Token" }), _jsx("th", { className: "px-4 py-2 text-left text-xs font-medium text-gray-700", children: "Scopes" }), _jsx("th", { className: "px-4 py-2 text-left text-xs font-medium text-gray-700", children: "Last used" }), _jsx("th", { className: "px-4 py-2 text-left text-xs font-medium text-gray-700", children: "Expires" }), _jsx("th", { className: "px-4 py-2 text-left text-xs font-medium text-gray-700", children: "Status" }), _jsx("th", { className: "px-4 py-2" })] }) }), _jsx("tbody", { className: "divide-y divide-gray-200", children: keys.map((k) => {
64
+ return (_jsxs("div", { className: "p-4 sm:p-6", children: [_jsxs("div", { className: "mb-6 flex flex-col justify-between gap-3 sm:flex-row sm:items-center", children: [_jsxs("div", { children: [_jsxs("h1", { className: "flex items-center gap-2 text-xl font-semibold text-gray-900 sm:text-2xl", children: [_jsx(KeyRound, { className: "h-5 w-5 text-gray-500" }), "API Keys"] }), _jsxs("p", { className: "mt-1 text-sm text-gray-500", children: ["Long-lived credentials for programmatic access. Use the", ' ', _jsx("code", { className: "rounded bg-gray-100 px-1 py-0.5 text-xs", children: "Authorization: Bearer" }), ' ', "header instead of session cookies. API key requests skip CSRF."] })] }), _jsxs("button", { type: "button", onClick: () => setShowCreate(true), className: "inline-flex items-center justify-center gap-2 rounded-lg bg-blue-600 px-4 py-2 text-sm text-white transition-colors hover:bg-blue-700", children: [_jsx(Plus, { className: "h-4 w-4" }), "New API Key"] })] }), error && (_jsxs("div", { className: "mb-4 flex items-center gap-3 rounded-lg border border-red-200 bg-red-50 p-3", children: [_jsx(AlertTriangle, { className: "h-5 w-5 shrink-0 text-red-600" }), _jsx("span", { className: "flex-1 text-sm text-red-800", children: error }), _jsx("button", { onClick: refetch, className: "rounded-lg border border-red-300 px-3 py-1 text-sm text-red-700 transition-colors hover:bg-red-100", children: "Retry" })] })), keys.length === 0 ? (_jsxs("div", { className: "rounded-lg border border-gray-200 bg-white p-10 text-center", children: [_jsx(KeyRound, { className: "mx-auto mb-3 h-8 w-8 text-gray-300" }), _jsx("p", { className: "mb-1 text-sm text-gray-500", children: "No API keys yet" }), _jsx("p", { className: "mb-4 text-xs text-gray-400", children: "Create one to let AI agents, CI jobs, or external integrations call the CMS API." }), _jsxs("button", { type: "button", onClick: () => setShowCreate(true), className: "inline-flex items-center justify-center gap-2 rounded-lg bg-blue-600 px-4 py-2 text-sm text-white transition-colors hover:bg-blue-700", children: [_jsx(Plus, { className: "h-4 w-4" }), "Create your first API key"] })] })) : (_jsx("div", { className: "overflow-hidden rounded-lg border border-gray-200 bg-white", children: _jsx("div", { className: "overflow-x-auto", children: _jsxs("table", { className: "w-full", children: [_jsx("thead", { className: "border-b border-gray-200 bg-gray-50", children: _jsxs("tr", { children: [_jsx("th", { className: "px-4 py-2 text-left text-xs font-medium text-gray-700", children: "Name" }), _jsx("th", { className: "px-4 py-2 text-left text-xs font-medium text-gray-700", children: "Token" }), _jsx("th", { className: "px-4 py-2 text-left text-xs font-medium text-gray-700", children: "Scopes" }), _jsx("th", { className: "px-4 py-2 text-left text-xs font-medium text-gray-700", children: "Last used" }), _jsx("th", { className: "px-4 py-2 text-left text-xs font-medium text-gray-700", children: "Expires" }), _jsx("th", { className: "px-4 py-2 text-left text-xs font-medium text-gray-700", children: "Status" }), _jsx("th", { className: "px-4 py-2" })] }) }), _jsx("tbody", { className: "divide-y divide-gray-200", children: keys.map((k) => {
63
65
  const revoked = !!k.revokedAt;
64
66
  const expired = k.expiresAt && new Date(k.expiresAt).getTime() < Date.now();
65
- return (_jsxs("tr", { className: revoked || expired ? 'opacity-60' : undefined, children: [_jsxs("td", { className: "px-4 py-3 text-sm", children: [_jsx("div", { className: "font-medium text-gray-900", children: k.name }), k.user && (_jsxs("div", { className: "text-xs text-gray-500", children: ["created by ", k.user.name ?? k.user.email] }))] }), _jsxs("td", { className: "px-4 py-3 text-sm font-mono text-gray-700", children: [k.keyPrefix, "\u2026"] }), _jsx("td", { className: "px-4 py-3 text-sm text-gray-700 max-w-xs", children: formatScopes(k.scopes) }), _jsx("td", { className: "px-4 py-3 text-sm text-gray-600", children: formatDate(k.lastUsedAt) }), _jsx("td", { className: "px-4 py-3 text-sm text-gray-600", children: formatDate(k.expiresAt) }), _jsx("td", { className: "px-4 py-3", children: revoked ? (_jsx("span", { className: "inline-flex px-2 py-0.5 rounded-full text-xs font-medium bg-red-100 text-red-700", children: "Revoked" })) : expired ? (_jsx("span", { className: "inline-flex px-2 py-0.5 rounded-full text-xs font-medium bg-amber-100 text-amber-700", children: "Expired" })) : (_jsx("span", { className: "inline-flex px-2 py-0.5 rounded-full text-xs font-medium bg-green-100 text-green-700", children: "Active" })) }), _jsx("td", { className: "px-4 py-3 text-right", children: !revoked && (_jsx("button", { type: "button", onClick: () => handleRevoke(k.id, k.name), className: "p-1.5 hover:bg-red-50 rounded transition-colors", title: "Revoke", children: _jsx(Trash2, { className: "w-4 h-4 text-red-600" }) })) })] }, k.id));
67
+ return (_jsxs("tr", { className: revoked || expired ? 'opacity-60' : undefined, children: [_jsxs("td", { className: "px-4 py-3 text-sm", children: [_jsx("div", { className: "font-medium text-gray-900", children: k.name }), k.user && (_jsxs("div", { className: "text-xs text-gray-500", children: ["created by ", k.user.name ?? k.user.email] }))] }), _jsxs("td", { className: "px-4 py-3 font-mono text-sm text-gray-700", children: [k.keyPrefix, "\u2026"] }), _jsx("td", { className: "max-w-xs px-4 py-3 text-sm text-gray-700", children: formatScopes(k.scopes) }), _jsx("td", { className: "px-4 py-3 text-sm text-gray-600", children: formatDate(k.lastUsedAt) }), _jsx("td", { className: "px-4 py-3 text-sm text-gray-600", children: formatDate(k.expiresAt) }), _jsx("td", { className: "px-4 py-3", children: revoked ? (_jsx("span", { className: "inline-flex rounded-full bg-red-100 px-2 py-0.5 text-xs font-medium text-red-700", children: "Revoked" })) : expired ? (_jsx("span", { className: "inline-flex rounded-full bg-amber-100 px-2 py-0.5 text-xs font-medium text-amber-700", children: "Expired" })) : (_jsx("span", { className: "inline-flex rounded-full bg-green-100 px-2 py-0.5 text-xs font-medium text-green-700", children: "Active" })) }), _jsx("td", { className: "px-4 py-3 text-right", children: !revoked && (_jsx("button", { type: "button", onClick: () => handleRevoke(k.id, k.name), className: "rounded p-1.5 transition-colors hover:bg-red-50", title: "Revoke", children: _jsx(Trash2, { className: "h-4 w-4 text-red-600" }) })) })] }, k.id));
66
68
  }) })] }) }) })), _jsx(CreateApiKeyDialog, { open: showCreate, onClose: () => setShowCreate(false), onCreated: (created) => {
67
69
  setShowCreate(false);
68
70
  setCreatedKey(created);
69
71
  refetch();
70
- } }), createdKey && (_jsx(RevealKeyDialog, { created: createdKey, onClose: () => setCreatedKey(null) }))] }));
72
+ } }), createdKey && _jsx(RevealKeyDialog, { created: createdKey, onClose: () => setCreatedKey(null) })] }));
71
73
  }
72
74
  function CreateApiKeyDialog({ open, onClose, onCreated }) {
73
75
  const [name, setName] = useState('');
@@ -138,15 +140,15 @@ function CreateApiKeyDialog({ open, onClose, onCreated }) {
138
140
  setSubmitting(false);
139
141
  }
140
142
  }
141
- return (_jsx(Dialog.Root, { open: open, onOpenChange: (o) => !o && onClose(), children: _jsxs(Dialog.Portal, { children: [_jsx(Dialog.Overlay, { className: "fixed inset-0 bg-black/40 z-40" }), _jsxs(Dialog.Content, { className: "fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white rounded-lg shadow-xl w-full max-w-md p-6 z-50", children: [_jsxs(Dialog.Title, { className: "text-lg font-semibold text-gray-900 mb-4 flex items-center gap-2", children: [_jsx(Shield, { className: "w-5 h-5 text-blue-600" }), "New API Key"] }), _jsxs("form", { onSubmit: handleSubmit, className: "space-y-4", children: [_jsxs("div", { children: [_jsx("label", { className: "text-sm font-medium text-gray-700 block mb-1", children: "Name" }), _jsx("input", { type: "text", value: name, onChange: (e) => setName(e.target.value), placeholder: "e.g. AI agent \u2014 production", className: "w-full px-3 py-2 text-sm border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500", required: true, maxLength: 100 })] }), _jsxs("div", { children: [_jsx("label", { className: "text-sm font-medium text-gray-700 block mb-2", children: "Preset" }), _jsx("div", { className: "grid grid-cols-2 gap-2", children: ['content', 'readonly', 'admin', 'custom'].map((p) => (_jsxs("button", { type: "button", onClick: () => setPreset(p), className: `px-3 py-2 text-sm rounded-lg border transition-colors text-left ${preset === p
143
+ return (_jsx(Dialog.Root, { open: open, onOpenChange: (o) => !o && onClose(), children: _jsxs(Dialog.Portal, { children: [_jsx(Dialog.Overlay, { className: "fixed inset-0 z-40 bg-black/40" }), _jsxs(Dialog.Content, { className: "fixed top-1/2 left-1/2 z-50 w-full max-w-md -translate-x-1/2 -translate-y-1/2 rounded-lg bg-white p-6 shadow-xl", children: [_jsxs(Dialog.Title, { className: "mb-4 flex items-center gap-2 text-lg font-semibold text-gray-900", children: [_jsx(Shield, { className: "h-5 w-5 text-blue-600" }), "New API Key"] }), _jsxs("form", { onSubmit: handleSubmit, className: "space-y-4", children: [_jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700", children: "Name" }), _jsx("input", { type: "text", value: name, onChange: (e) => setName(e.target.value), placeholder: "e.g. AI agent \u2014 production", className: "w-full rounded-lg border border-gray-300 px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:outline-none", required: true, maxLength: 100 })] }), _jsxs("div", { children: [_jsx("label", { className: "mb-2 block text-sm font-medium text-gray-700", children: "Preset" }), _jsx("div", { className: "grid grid-cols-2 gap-2", children: ['content', 'readonly', 'admin', 'custom'].map((p) => (_jsxs("button", { type: "button", onClick: () => setPreset(p), className: `rounded-lg border px-3 py-2 text-left text-sm transition-colors ${preset === p
142
144
  ? 'border-blue-500 bg-blue-50 text-blue-900'
143
- : 'border-gray-300 bg-white text-gray-700 hover:bg-gray-50'}`, children: [_jsx("div", { className: "font-medium capitalize", children: p }), _jsxs("div", { className: "text-xs text-gray-500", children: [p === 'content' && 'Read/create/update content', p === 'readonly' && 'Read-only access', p === 'admin' && 'Full admin access', p === 'custom' && 'Pick capabilities'] })] }, p))) })] }), (preset === 'content' || preset === 'custom') && (_jsxs("div", { className: "space-y-2 rounded-lg border border-gray-200 p-3 bg-gray-50", children: [_jsxs("label", { className: "flex items-center gap-2 text-sm text-gray-700", children: [_jsx("input", { type: "checkbox", checked: media, onChange: (e) => setMedia(e.target.checked), className: "rounded border-gray-300" }), "Allow media uploads"] }), _jsxs("label", { className: "flex items-center gap-2 text-sm text-gray-700", children: [_jsx("input", { type: "checkbox", checked: pageBuilder, onChange: (e) => setPageBuilder(e.target.checked), className: "rounded border-gray-300" }), "Allow AI page generation"] })] })), _jsxs("div", { children: [_jsx("label", { className: "text-sm font-medium text-gray-700 block mb-1", children: "Expires in (days)" }), _jsx("input", { type: "number", min: 1, placeholder: "Never (leave blank)", value: expiresInDays, onChange: (e) => setExpiresInDays(e.target.value), className: "w-full px-3 py-2 text-sm border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" })] }), _jsxs("div", { children: [_jsx("label", { className: "text-sm font-medium text-gray-700 block mb-1", children: "Confirm password" }), _jsx("input", { type: "password", value: password, onChange: (e) => setPassword(e.target.value), className: "w-full px-3 py-2 text-sm border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500", required: true }), _jsx("p", { className: "text-xs text-gray-500 mt-1", children: "Creating an API key is a sensitive action and requires re-authentication." })] }), _jsxs("div", { className: "flex items-center justify-end gap-2 pt-2", children: [_jsx("button", { type: "button", onClick: onClose, className: "px-4 py-2 text-sm border border-gray-300 rounded-lg hover:bg-gray-50 transition-colors", children: "Cancel" }), _jsx("button", { type: "submit", disabled: submitting, className: "px-4 py-2 text-sm bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors disabled:opacity-50", children: submitting ? 'Creating…' : 'Create key' })] })] })] })] }) }));
145
+ : 'border-gray-300 bg-white text-gray-700 hover:bg-gray-50'}`, children: [_jsx("div", { className: "font-medium capitalize", children: p }), _jsxs("div", { className: "text-xs text-gray-500", children: [p === 'content' && 'Read/create/update content', p === 'readonly' && 'Read-only access', p === 'admin' && 'Full admin access', p === 'custom' && 'Pick capabilities'] })] }, p))) })] }), (preset === 'content' || preset === 'custom') && (_jsxs("div", { className: "space-y-2 rounded-lg border border-gray-200 bg-gray-50 p-3", children: [_jsxs("label", { className: "flex items-center gap-2 text-sm text-gray-700", children: [_jsx("input", { type: "checkbox", checked: media, onChange: (e) => setMedia(e.target.checked), className: "rounded border-gray-300" }), "Allow media uploads"] }), _jsxs("label", { className: "flex items-center gap-2 text-sm text-gray-700", children: [_jsx("input", { type: "checkbox", checked: pageBuilder, onChange: (e) => setPageBuilder(e.target.checked), className: "rounded border-gray-300" }), "Allow AI page generation"] })] })), _jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700", children: "Expires in (days)" }), _jsx("input", { type: "number", min: 1, placeholder: "Never (leave blank)", value: expiresInDays, onChange: (e) => setExpiresInDays(e.target.value), className: "w-full rounded-lg border border-gray-300 px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:outline-none" })] }), _jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-sm font-medium text-gray-700", children: "Confirm password" }), _jsx("input", { type: "password", value: password, onChange: (e) => setPassword(e.target.value), className: "w-full rounded-lg border border-gray-300 px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:outline-none", required: true }), _jsx("p", { className: "mt-1 text-xs text-gray-500", children: "Creating an API key is a sensitive action and requires re-authentication." })] }), _jsxs("div", { className: "flex items-center justify-end gap-2 pt-2", children: [_jsx("button", { type: "button", onClick: onClose, className: "rounded-lg border border-gray-300 px-4 py-2 text-sm transition-colors hover:bg-gray-50", children: "Cancel" }), _jsx("button", { type: "submit", disabled: submitting, className: "rounded-lg bg-blue-600 px-4 py-2 text-sm text-white transition-colors hover:bg-blue-700 disabled:opacity-50", children: submitting ? 'Creating…' : 'Create key' })] })] })] })] }) }));
144
146
  }
145
- function RevealKeyDialog({ created, onClose }) {
147
+ function RevealKeyDialog({ created, onClose, }) {
146
148
  const [shown, setShown] = useState(false);
147
- return (_jsx(Dialog.Root, { open: true, onOpenChange: (o) => !o && onClose(), children: _jsxs(Dialog.Portal, { children: [_jsx(Dialog.Overlay, { className: "fixed inset-0 bg-black/40 z-40" }), _jsxs(Dialog.Content, { className: "fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white rounded-lg shadow-xl w-full max-w-md p-6 z-50", children: [_jsxs(Dialog.Title, { className: "text-lg font-semibold text-gray-900 mb-2 flex items-center gap-2", children: [_jsx(Shield, { className: "w-5 h-5 text-green-600" }), "API key created"] }), _jsx(Dialog.Description, { className: "text-sm text-gray-600 mb-4", children: "Copy this key now \u2014 it will not be shown again. Treat it like a password." }), _jsxs("div", { className: "rounded-lg border border-amber-200 bg-amber-50 p-3 mb-4 flex items-start gap-2", children: [_jsx(AlertTriangle, { className: "w-4 h-4 text-amber-600 shrink-0 mt-0.5" }), _jsx("p", { className: "text-xs text-amber-900", children: "We only store a hash of this key. If you lose it, you'll need to revoke and create a new one." })] }), _jsxs("div", { className: "flex items-center gap-2 mb-4", children: [_jsx("code", { className: "flex-1 px-3 py-2 bg-gray-100 rounded text-sm font-mono break-all", children: shown ? created.key : '•'.repeat(Math.min(48, created.key.length)) }), _jsx("button", { type: "button", onClick: () => setShown((s) => !s), className: "p-2 border border-gray-300 rounded hover:bg-gray-50", title: shown ? 'Hide' : 'Show', children: shown ? _jsx(EyeOff, { className: "w-4 h-4" }) : _jsx(Eye, { className: "w-4 h-4" }) }), _jsx("button", { type: "button", onClick: () => {
149
+ return (_jsx(Dialog.Root, { open: true, onOpenChange: (o) => !o && onClose(), children: _jsxs(Dialog.Portal, { children: [_jsx(Dialog.Overlay, { className: "fixed inset-0 z-40 bg-black/40" }), _jsxs(Dialog.Content, { className: "fixed top-1/2 left-1/2 z-50 w-full max-w-md -translate-x-1/2 -translate-y-1/2 rounded-lg bg-white p-6 shadow-xl", children: [_jsxs(Dialog.Title, { className: "mb-2 flex items-center gap-2 text-lg font-semibold text-gray-900", children: [_jsx(Shield, { className: "h-5 w-5 text-green-600" }), "API key created"] }), _jsx(Dialog.Description, { className: "mb-4 text-sm text-gray-600", children: "Copy this key now \u2014 it will not be shown again. Treat it like a password." }), _jsxs("div", { className: "mb-4 flex items-start gap-2 rounded-lg border border-amber-200 bg-amber-50 p-3", children: [_jsx(AlertTriangle, { className: "mt-0.5 h-4 w-4 shrink-0 text-amber-600" }), _jsx("p", { className: "text-xs text-amber-900", children: "We only store a hash of this key. If you lose it, you'll need to revoke and create a new one." })] }), _jsxs("div", { className: "mb-4 flex items-center gap-2", children: [_jsx("code", { className: "flex-1 rounded bg-gray-100 px-3 py-2 font-mono text-sm break-all", children: shown ? created.key : '•'.repeat(Math.min(48, created.key.length)) }), _jsx("button", { type: "button", onClick: () => setShown((s) => !s), className: "rounded border border-gray-300 p-2 hover:bg-gray-50", title: shown ? 'Hide' : 'Show', children: shown ? _jsx(EyeOff, { className: "h-4 w-4" }) : _jsx(Eye, { className: "h-4 w-4" }) }), _jsx("button", { type: "button", onClick: () => {
148
150
  navigator.clipboard.writeText(created.key);
149
151
  toast.success('Copied to clipboard');
150
- }, className: "p-2 border border-gray-300 rounded hover:bg-gray-50", title: "Copy", children: _jsx(Copy, { className: "w-4 h-4" }) })] }), _jsx("div", { className: "flex justify-end", children: _jsx("button", { type: "button", onClick: onClose, className: "px-4 py-2 text-sm bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors", children: "I've saved it" }) })] })] }) }));
152
+ }, className: "rounded border border-gray-300 p-2 hover:bg-gray-50", title: "Copy", children: _jsx(Copy, { className: "h-4 w-4" }) })] }), _jsx("div", { className: "flex justify-end", children: _jsx("button", { type: "button", onClick: onClose, className: "rounded-lg bg-blue-600 px-4 py-2 text-sm text-white transition-colors hover:bg-blue-700", children: "I've saved it" }) })] })] }) }));
151
153
  }
152
154
  //# sourceMappingURL=ApiKeys.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ApiKeys.js","sourceRoot":"","sources":["../../src/views/ApiKeys.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ApiKeys.js","sourceRoot":"","sources":["../../src/views/ApiKeys.tsx"],"names":[],"mappings":"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"}