@miethe/ui 0.2.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 (251) hide show
  1. package/CHANGELOG.md +77 -0
  2. package/README.md +1536 -0
  3. package/dist/bulk-actions/Button.d.ts +28 -0
  4. package/dist/bulk-actions/Button.d.ts.map +1 -0
  5. package/dist/bulk-actions/Button.js +45 -0
  6. package/dist/bulk-actions/Button.js.map +1 -0
  7. package/dist/bulk-actions/bulk-action-bar.d.ts +91 -0
  8. package/dist/bulk-actions/bulk-action-bar.d.ts.map +1 -0
  9. package/dist/bulk-actions/bulk-action-bar.js +94 -0
  10. package/dist/bulk-actions/bulk-action-bar.js.map +1 -0
  11. package/dist/bulk-actions/index.d.ts +5 -0
  12. package/dist/bulk-actions/index.d.ts.map +1 -0
  13. package/dist/bulk-actions/index.js +7 -0
  14. package/dist/bulk-actions/index.js.map +1 -0
  15. package/dist/bulk-actions/utils.d.ts +6 -0
  16. package/dist/bulk-actions/utils.d.ts.map +1 -0
  17. package/dist/bulk-actions/utils.js +9 -0
  18. package/dist/bulk-actions/utils.js.map +1 -0
  19. package/dist/components/ui/alert.d.ts +9 -0
  20. package/dist/components/ui/alert.d.ts.map +1 -0
  21. package/dist/components/ui/alert.js +23 -0
  22. package/dist/components/ui/alert.js.map +1 -0
  23. package/dist/components/ui/button.d.ts +12 -0
  24. package/dist/components/ui/button.d.ts.map +1 -0
  25. package/dist/components/ui/button.js +34 -0
  26. package/dist/components/ui/button.js.map +1 -0
  27. package/dist/components/ui/collapsible.d.ts +6 -0
  28. package/dist/components/ui/collapsible.d.ts.map +1 -0
  29. package/dist/components/ui/collapsible.js +7 -0
  30. package/dist/components/ui/collapsible.js.map +1 -0
  31. package/dist/components/ui/skeleton.d.ts +4 -0
  32. package/dist/components/ui/skeleton.d.ts.map +1 -0
  33. package/dist/components/ui/skeleton.js +7 -0
  34. package/dist/components/ui/skeleton.js.map +1 -0
  35. package/dist/content-viewer/ContentPane.d.ts +107 -0
  36. package/dist/content-viewer/ContentPane.d.ts.map +1 -0
  37. package/dist/content-viewer/ContentPane.js +247 -0
  38. package/dist/content-viewer/ContentPane.js.map +1 -0
  39. package/dist/content-viewer/ContentViewerProvider.d.ts +83 -0
  40. package/dist/content-viewer/ContentViewerProvider.d.ts.map +1 -0
  41. package/dist/content-viewer/ContentViewerProvider.js +92 -0
  42. package/dist/content-viewer/ContentViewerProvider.js.map +1 -0
  43. package/dist/content-viewer/FileTree.d.ts +71 -0
  44. package/dist/content-viewer/FileTree.d.ts.map +1 -0
  45. package/dist/content-viewer/FileTree.js +294 -0
  46. package/dist/content-viewer/FileTree.js.map +1 -0
  47. package/dist/content-viewer/adapters.d.ts +101 -0
  48. package/dist/content-viewer/adapters.d.ts.map +1 -0
  49. package/dist/content-viewer/adapters.js +32 -0
  50. package/dist/content-viewer/adapters.js.map +1 -0
  51. package/dist/content-viewer/index.d.ts +8 -0
  52. package/dist/content-viewer/index.d.ts.map +1 -0
  53. package/dist/content-viewer/index.js +5 -0
  54. package/dist/content-viewer/index.js.map +1 -0
  55. package/dist/diff/DiffViewer.d.ts +112 -0
  56. package/dist/diff/DiffViewer.d.ts.map +1 -0
  57. package/dist/diff/DiffViewer.js +414 -0
  58. package/dist/diff/DiffViewer.js.map +1 -0
  59. package/dist/diff/diff.d.ts +32 -0
  60. package/dist/diff/diff.d.ts.map +1 -0
  61. package/dist/diff/diff.js +8 -0
  62. package/dist/diff/diff.js.map +1 -0
  63. package/dist/diff/index.d.ts +4 -0
  64. package/dist/diff/index.d.ts.map +1 -0
  65. package/dist/diff/index.js +3 -0
  66. package/dist/diff/index.js.map +1 -0
  67. package/dist/display/FilePreviewPane.d.ts +31 -0
  68. package/dist/display/FilePreviewPane.d.ts.map +1 -0
  69. package/dist/display/FilePreviewPane.js +144 -0
  70. package/dist/display/FilePreviewPane.js.map +1 -0
  71. package/dist/display/FrontmatterDisplay.d.ts +33 -0
  72. package/dist/display/FrontmatterDisplay.d.ts.map +1 -0
  73. package/dist/display/FrontmatterDisplay.js +79 -0
  74. package/dist/display/FrontmatterDisplay.js.map +1 -0
  75. package/dist/display/index.d.ts +5 -0
  76. package/dist/display/index.d.ts.map +1 -0
  77. package/dist/display/index.js +4 -0
  78. package/dist/display/index.js.map +1 -0
  79. package/dist/editor/MarkdownEditor.d.ts +28 -0
  80. package/dist/editor/MarkdownEditor.d.ts.map +1 -0
  81. package/dist/editor/MarkdownEditor.js +160 -0
  82. package/dist/editor/MarkdownEditor.js.map +1 -0
  83. package/dist/editor/SplitPreview.d.ts +28 -0
  84. package/dist/editor/SplitPreview.d.ts.map +1 -0
  85. package/dist/editor/SplitPreview.js +34 -0
  86. package/dist/editor/SplitPreview.js.map +1 -0
  87. package/dist/editor/index.d.ts +5 -0
  88. package/dist/editor/index.d.ts.map +1 -0
  89. package/dist/editor/index.js +4 -0
  90. package/dist/editor/index.js.map +1 -0
  91. package/dist/filters/filters-dropdown.d.ts +24 -0
  92. package/dist/filters/filters-dropdown.d.ts.map +1 -0
  93. package/dist/filters/filters-dropdown.js +36 -0
  94. package/dist/filters/filters-dropdown.js.map +1 -0
  95. package/dist/filters/index.d.ts +9 -0
  96. package/dist/filters/index.d.ts.map +1 -0
  97. package/dist/filters/index.js +5 -0
  98. package/dist/filters/index.js.map +1 -0
  99. package/dist/filters/sort-dropdown.d.ts +13 -0
  100. package/dist/filters/sort-dropdown.d.ts.map +1 -0
  101. package/dist/filters/sort-dropdown.js +20 -0
  102. package/dist/filters/sort-dropdown.js.map +1 -0
  103. package/dist/filters/tag-filter-popover.d.ts +39 -0
  104. package/dist/filters/tag-filter-popover.d.ts.map +1 -0
  105. package/dist/filters/tag-filter-popover.js +72 -0
  106. package/dist/filters/tag-filter-popover.js.map +1 -0
  107. package/dist/filters/tool-filter-popover.d.ts +42 -0
  108. package/dist/filters/tool-filter-popover.d.ts.map +1 -0
  109. package/dist/filters/tool-filter-popover.js +67 -0
  110. package/dist/filters/tool-filter-popover.js.map +1 -0
  111. package/dist/hooks/use-debounce.d.ts +9 -0
  112. package/dist/hooks/use-debounce.d.ts.map +1 -0
  113. package/dist/hooks/use-debounce.js +21 -0
  114. package/dist/hooks/use-debounce.js.map +1 -0
  115. package/dist/hooks/use-intersection-observer.d.ts +11 -0
  116. package/dist/hooks/use-intersection-observer.d.ts.map +1 -0
  117. package/dist/hooks/use-intersection-observer.js +25 -0
  118. package/dist/hooks/use-intersection-observer.js.map +1 -0
  119. package/dist/index.d.ts +10 -0
  120. package/dist/index.d.ts.map +1 -0
  121. package/dist/index.js +10 -0
  122. package/dist/index.js.map +1 -0
  123. package/dist/pickers/EntityPickerDialog.d.ts +233 -0
  124. package/dist/pickers/EntityPickerDialog.d.ts.map +1 -0
  125. package/dist/pickers/EntityPickerDialog.js +355 -0
  126. package/dist/pickers/EntityPickerDialog.js.map +1 -0
  127. package/dist/pickers/EntityPickerViewToggle.d.ts +8 -0
  128. package/dist/pickers/EntityPickerViewToggle.d.ts.map +1 -0
  129. package/dist/pickers/EntityPickerViewToggle.js +17 -0
  130. package/dist/pickers/EntityPickerViewToggle.js.map +1 -0
  131. package/dist/pickers/index.d.ts +5 -0
  132. package/dist/pickers/index.d.ts.map +1 -0
  133. package/dist/pickers/index.js +3 -0
  134. package/dist/pickers/index.js.map +1 -0
  135. package/dist/primitives/Badge.d.ts +16 -0
  136. package/dist/primitives/Badge.d.ts.map +1 -0
  137. package/dist/primitives/Badge.js +43 -0
  138. package/dist/primitives/Badge.js.map +1 -0
  139. package/dist/primitives/BaseArtifactModal.d.ts +114 -0
  140. package/dist/primitives/BaseArtifactModal.d.ts.map +1 -0
  141. package/dist/primitives/BaseArtifactModal.js +76 -0
  142. package/dist/primitives/BaseArtifactModal.js.map +1 -0
  143. package/dist/primitives/Dialog.d.ts +20 -0
  144. package/dist/primitives/Dialog.d.ts.map +1 -0
  145. package/dist/primitives/Dialog.js +24 -0
  146. package/dist/primitives/Dialog.js.map +1 -0
  147. package/dist/primitives/DropdownMenu.d.ts +28 -0
  148. package/dist/primitives/DropdownMenu.d.ts.map +1 -0
  149. package/dist/primitives/DropdownMenu.js +34 -0
  150. package/dist/primitives/DropdownMenu.js.map +1 -0
  151. package/dist/primitives/EnterpriseOwnerBadge.d.ts +9 -0
  152. package/dist/primitives/EnterpriseOwnerBadge.d.ts.map +1 -0
  153. package/dist/primitives/EnterpriseOwnerBadge.js +12 -0
  154. package/dist/primitives/EnterpriseOwnerBadge.js.map +1 -0
  155. package/dist/primitives/GroupedSelect.d.ts +30 -0
  156. package/dist/primitives/GroupedSelect.d.ts.map +1 -0
  157. package/dist/primitives/GroupedSelect.js +47 -0
  158. package/dist/primitives/GroupedSelect.js.map +1 -0
  159. package/dist/primitives/Input.d.ts +6 -0
  160. package/dist/primitives/Input.d.ts.map +1 -0
  161. package/dist/primitives/Input.js +9 -0
  162. package/dist/primitives/Input.js.map +1 -0
  163. package/dist/primitives/LockIcon.d.ts +11 -0
  164. package/dist/primitives/LockIcon.d.ts.map +1 -0
  165. package/dist/primitives/LockIcon.js +15 -0
  166. package/dist/primitives/LockIcon.js.map +1 -0
  167. package/dist/primitives/MaskedSecretInput.d.ts +16 -0
  168. package/dist/primitives/MaskedSecretInput.d.ts.map +1 -0
  169. package/dist/primitives/MaskedSecretInput.js +42 -0
  170. package/dist/primitives/MaskedSecretInput.js.map +1 -0
  171. package/dist/primitives/ModalHeader.d.ts +66 -0
  172. package/dist/primitives/ModalHeader.d.ts.map +1 -0
  173. package/dist/primitives/ModalHeader.js +58 -0
  174. package/dist/primitives/ModalHeader.js.map +1 -0
  175. package/dist/primitives/Popover.d.ts +9 -0
  176. package/dist/primitives/Popover.d.ts.map +1 -0
  177. package/dist/primitives/Popover.js +13 -0
  178. package/dist/primitives/Popover.js.map +1 -0
  179. package/dist/primitives/ScrollArea.d.ts +6 -0
  180. package/dist/primitives/ScrollArea.d.ts.map +1 -0
  181. package/dist/primitives/ScrollArea.js +11 -0
  182. package/dist/primitives/ScrollArea.js.map +1 -0
  183. package/dist/primitives/SearchableCombobox.d.ts +30 -0
  184. package/dist/primitives/SearchableCombobox.d.ts.map +1 -0
  185. package/dist/primitives/SearchableCombobox.js +124 -0
  186. package/dist/primitives/SearchableCombobox.js.map +1 -0
  187. package/dist/primitives/SearchablePickerDialog.d.ts +20 -0
  188. package/dist/primitives/SearchablePickerDialog.d.ts.map +1 -0
  189. package/dist/primitives/SearchablePickerDialog.js +78 -0
  190. package/dist/primitives/SearchablePickerDialog.js.map +1 -0
  191. package/dist/primitives/StatusBadge.d.ts +21 -0
  192. package/dist/primitives/StatusBadge.d.ts.map +1 -0
  193. package/dist/primitives/StatusBadge.js +25 -0
  194. package/dist/primitives/StatusBadge.js.map +1 -0
  195. package/dist/primitives/TabNavigation.d.ts +68 -0
  196. package/dist/primitives/TabNavigation.d.ts.map +1 -0
  197. package/dist/primitives/TabNavigation.js +74 -0
  198. package/dist/primitives/TabNavigation.js.map +1 -0
  199. package/dist/primitives/Tabs.d.ts +8 -0
  200. package/dist/primitives/Tabs.d.ts.map +1 -0
  201. package/dist/primitives/Tabs.js +14 -0
  202. package/dist/primitives/Tabs.js.map +1 -0
  203. package/dist/primitives/Tooltip.d.ts +8 -0
  204. package/dist/primitives/Tooltip.d.ts.map +1 -0
  205. package/dist/primitives/Tooltip.js +12 -0
  206. package/dist/primitives/Tooltip.js.map +1 -0
  207. package/dist/primitives/VerticalTabNavigation.d.ts +75 -0
  208. package/dist/primitives/VerticalTabNavigation.d.ts.map +1 -0
  209. package/dist/primitives/VerticalTabNavigation.js +166 -0
  210. package/dist/primitives/VerticalTabNavigation.js.map +1 -0
  211. package/dist/primitives/ViewModeToggle.d.ts +12 -0
  212. package/dist/primitives/ViewModeToggle.d.ts.map +1 -0
  213. package/dist/primitives/ViewModeToggle.js +56 -0
  214. package/dist/primitives/ViewModeToggle.js.map +1 -0
  215. package/dist/primitives/WizardShell.d.ts +81 -0
  216. package/dist/primitives/WizardShell.d.ts.map +1 -0
  217. package/dist/primitives/WizardShell.js +73 -0
  218. package/dist/primitives/WizardShell.js.map +1 -0
  219. package/dist/primitives/index.d.ts +38 -0
  220. package/dist/primitives/index.d.ts.map +1 -0
  221. package/dist/primitives/index.js +24 -0
  222. package/dist/primitives/index.js.map +1 -0
  223. package/dist/primitives/utils.d.ts +6 -0
  224. package/dist/primitives/utils.d.ts.map +1 -0
  225. package/dist/primitives/utils.js +9 -0
  226. package/dist/primitives/utils.js.map +1 -0
  227. package/dist/types/index.d.ts +63 -0
  228. package/dist/types/index.d.ts.map +1 -0
  229. package/dist/types/index.js +9 -0
  230. package/dist/types/index.js.map +1 -0
  231. package/dist/utils/frontmatter.d.ts +63 -0
  232. package/dist/utils/frontmatter.d.ts.map +1 -0
  233. package/dist/utils/frontmatter.js +345 -0
  234. package/dist/utils/frontmatter.js.map +1 -0
  235. package/dist/utils/index.d.ts +6 -0
  236. package/dist/utils/index.d.ts.map +1 -0
  237. package/dist/utils/index.js +6 -0
  238. package/dist/utils/index.js.map +1 -0
  239. package/dist/utils/perf-marks.d.ts +28 -0
  240. package/dist/utils/perf-marks.d.ts.map +1 -0
  241. package/dist/utils/perf-marks.js +45 -0
  242. package/dist/utils/perf-marks.js.map +1 -0
  243. package/dist/utils/readme-utils.d.ts +67 -0
  244. package/dist/utils/readme-utils.d.ts.map +1 -0
  245. package/dist/utils/readme-utils.js +164 -0
  246. package/dist/utils/readme-utils.js.map +1 -0
  247. package/dist/utils/type-colors.d.ts +70 -0
  248. package/dist/utils/type-colors.d.ts.map +1 -0
  249. package/dist/utils/type-colors.js +118 -0
  250. package/dist/utils/type-colors.js.map +1 -0
  251. package/package.json +131 -0
@@ -0,0 +1,12 @@
1
+ export interface ViewModeToggleProps {
2
+ mode: 'card' | 'table';
3
+ onChange: (mode: 'card' | 'table') => void;
4
+ /** localStorage key for persistence. When set, the current mode is saved on change and read on mount. */
5
+ persistKey?: string;
6
+ }
7
+ declare function ViewModeToggle({ mode, onChange, persistKey }: ViewModeToggleProps): import("react/jsx-runtime").JSX.Element;
8
+ declare namespace ViewModeToggle {
9
+ var displayName: string;
10
+ }
11
+ export { ViewModeToggle };
12
+ //# sourceMappingURL=ViewModeToggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewModeToggle.d.ts","sourceRoot":"","sources":["../../src/primitives/ViewModeToggle.tsx"],"names":[],"mappings":"AAMA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,KAAK,IAAI,CAAC;IAC3C,yGAAyG;IACzG,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAeD,iBAAS,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,mBAAmB,2CA+D1E;kBA/DQ,cAAc;;;AAmEvB,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,56 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as React from 'react';
4
+ import { LayoutGrid, List } from 'lucide-react';
5
+ import { cn } from './utils';
6
+ const MODES = [
7
+ {
8
+ value: 'card',
9
+ Icon: LayoutGrid,
10
+ label: 'Card view',
11
+ },
12
+ {
13
+ value: 'table',
14
+ Icon: List,
15
+ label: 'Table view',
16
+ },
17
+ ];
18
+ function ViewModeToggle({ mode, onChange, persistKey }) {
19
+ // On mount, read persisted value from localStorage if persistKey is set.
20
+ // We fire onChange so the parent can initialise its state from storage.
21
+ const initialised = React.useRef(false);
22
+ React.useEffect(() => {
23
+ if (!persistKey || initialised.current)
24
+ return;
25
+ initialised.current = true;
26
+ try {
27
+ const stored = localStorage.getItem(persistKey);
28
+ if (stored === 'card' || stored === 'table') {
29
+ onChange(stored);
30
+ }
31
+ }
32
+ catch {
33
+ // localStorage may not be available (SSR, private browsing, etc.)
34
+ }
35
+ }, [persistKey, onChange]);
36
+ const handleChange = React.useCallback((next) => {
37
+ onChange(next);
38
+ if (persistKey) {
39
+ try {
40
+ localStorage.setItem(persistKey, next);
41
+ }
42
+ catch {
43
+ // localStorage may not be available
44
+ }
45
+ }
46
+ }, [onChange, persistKey]);
47
+ return (_jsx("div", { role: "group", "aria-label": "View mode", className: "inline-flex rounded-md border border-input bg-background p-0.5 shadow-sm", children: MODES.map(({ value, Icon, label }) => {
48
+ const isActive = mode === value;
49
+ return (_jsx("button", { type: "button", "aria-label": label, "aria-pressed": isActive, onClick: () => handleChange(value), className: cn('inline-flex h-7 w-7 items-center justify-center rounded-sm transition-colors', 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1', isActive
50
+ ? 'bg-primary text-primary-foreground shadow-sm'
51
+ : 'text-muted-foreground hover:bg-accent hover:text-accent-foreground'), children: _jsx(Icon, { className: "h-3.5 w-3.5", "aria-hidden": "true" }) }, value));
52
+ }) }));
53
+ }
54
+ ViewModeToggle.displayName = 'ViewModeToggle';
55
+ export { ViewModeToggle };
56
+ //# sourceMappingURL=ViewModeToggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewModeToggle.js","sourceRoot":"","sources":["../../src/primitives/ViewModeToggle.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAS7B,MAAM,KAAK,GAAG;IACZ;QACE,KAAK,EAAE,MAAe;QACtB,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,WAAW;KACnB;IACD;QACE,KAAK,EAAE,OAAgB;QACvB,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,YAAY;KACpB;CACF,CAAC;AAEF,SAAS,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAuB;IACzE,yEAAyE;IACzE,wEAAwE;IACxE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAExC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,UAAU,IAAI,WAAW,CAAC,OAAO;YAAE,OAAO;QAC/C,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;QAE3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAChD,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBAC5C,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kEAAkE;QACpE,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE3B,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CACpC,CAAC,IAAsB,EAAE,EAAE;QACzB,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACzC,CAAC;YAAC,MAAM,CAAC;gBACP,oCAAoC;YACtC,CAAC;QACH,CAAC;IACH,CAAC,EACD,CAAC,QAAQ,EAAE,UAAU,CAAC,CACvB,CAAC;IAEF,OAAO,CACL,cACE,IAAI,EAAC,OAAO,gBACD,WAAW,EACtB,SAAS,EAAC,0EAA0E,YAEnF,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;YACpC,MAAM,QAAQ,GAAG,IAAI,KAAK,KAAK,CAAC;YAChC,OAAO,CACL,iBAEE,IAAI,EAAC,QAAQ,gBACD,KAAK,kBACH,QAAQ,EACtB,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EAClC,SAAS,EAAE,EAAE,CACX,8EAA8E,EAC9E,qGAAqG,EACrG,QAAQ;oBACN,CAAC,CAAC,8CAA8C;oBAChD,CAAC,CAAC,oEAAoE,CACzE,YAED,KAAC,IAAI,IAAC,SAAS,EAAC,aAAa,iBAAa,MAAM,GAAG,IAb9C,KAAK,CAcH,CACV,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAED,cAAc,CAAC,WAAW,GAAG,gBAAgB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * WizardShell Component
3
+ *
4
+ * A generic multi-step wizard shell. Provides step indicator, Back/Next/Submit
5
+ * navigation controls, and validation gating. Domain-agnostic: knows nothing
6
+ * about bundles, artifacts, or any application-specific concepts.
7
+ *
8
+ * @example Basic usage
9
+ * ```tsx
10
+ * const STEPS = [
11
+ * { label: 'Metadata' },
12
+ * { label: 'Members' },
13
+ * { label: 'Review' },
14
+ * { label: 'Confirm' },
15
+ * ];
16
+ *
17
+ * <WizardShell
18
+ * steps={STEPS}
19
+ * currentStep={currentStep}
20
+ * onBack={handleBack}
21
+ * onNext={handleNext}
22
+ * onSubmit={handleSubmit}
23
+ * canAdvance={isValid}
24
+ * isSubmitting={isPending}
25
+ * onCancel={handleClose}
26
+ * submitLabel="Create Bundle"
27
+ * >
28
+ * {currentStep === 1 && <StepOneContent />}
29
+ * {currentStep === 2 && <StepTwoContent />}
30
+ * </WizardShell>
31
+ * ```
32
+ */
33
+ import * as React from 'react';
34
+ export interface WizardStep {
35
+ /** Human-readable label shown beneath the step bubble */
36
+ label: string;
37
+ /** Optional icon rendered inside the step bubble (overrides the step number) */
38
+ icon?: React.ReactNode;
39
+ }
40
+ export interface WizardShellProps {
41
+ /** Step definitions — length determines total step count */
42
+ steps: WizardStep[];
43
+ /**
44
+ * Currently active step index (1-based).
45
+ * Step 1 is the first step; `steps.length` is the last.
46
+ */
47
+ currentStep: number;
48
+ /** Called when the user clicks Back */
49
+ onBack: () => void;
50
+ /** Called when the user clicks Next (not the last step) */
51
+ onNext: () => void;
52
+ /** Called when the user clicks the submit button on the last step */
53
+ onSubmit: () => void;
54
+ /** Called when the user clicks Cancel */
55
+ onCancel: () => void;
56
+ /** Whether the Next/Submit button is enabled */
57
+ canAdvance: boolean;
58
+ /** Loading state — disables all controls and shows loading text on submit button */
59
+ isSubmitting?: boolean;
60
+ /** Step content rendered in the body area */
61
+ children: React.ReactNode;
62
+ /** Custom label for the submit button (default: "Submit") */
63
+ submitLabel?: string;
64
+ /** Custom label shown on the submit button while `isSubmitting` is true (default: "Submitting…") */
65
+ submittingLabel?: string;
66
+ /** Minimum height for the content area (default: "220px") */
67
+ contentMinHeight?: string;
68
+ }
69
+ /**
70
+ * WizardShell — generic multi-step wizard chrome.
71
+ *
72
+ * Renders:
73
+ * - A step indicator (bubbles + connector lines) reflecting `currentStep`
74
+ * - A content area for `children` (the active step's content)
75
+ * - A footer with Cancel, Back, and Next/Submit controls
76
+ *
77
+ * The shell does NOT manage step state itself. The caller owns `currentStep`
78
+ * and the `onBack` / `onNext` / `onSubmit` handlers.
79
+ */
80
+ export declare function WizardShell({ steps, currentStep, onBack, onNext, onSubmit, onCancel, canAdvance, isSubmitting, children, submitLabel, submittingLabel, contentMinHeight, }: WizardShellProps): import("react/jsx-runtime").JSX.Element;
81
+ //# sourceMappingURL=WizardShell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WizardShell.d.ts","sourceRoot":"","sources":["../../src/primitives/WizardShell.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAIH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,MAAM,WAAW,UAAU;IACzB,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,qEAAqE;IACrE,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,gDAAgD;IAChD,UAAU,EAAE,OAAO,CAAC;IACpB,oFAAoF;IACpF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6CAA6C;IAC7C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oGAAoG;IACpG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAkLD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,WAAW,EACX,MAAM,EACN,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,YAAoB,EACpB,QAAQ,EACR,WAAsB,EACtB,eAAoC,EACpC,gBAA0B,GAC3B,EAAE,gBAAgB,2CA4BlB"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * WizardShell Component
3
+ *
4
+ * A generic multi-step wizard shell. Provides step indicator, Back/Next/Submit
5
+ * navigation controls, and validation gating. Domain-agnostic: knows nothing
6
+ * about bundles, artifacts, or any application-specific concepts.
7
+ *
8
+ * @example Basic usage
9
+ * ```tsx
10
+ * const STEPS = [
11
+ * { label: 'Metadata' },
12
+ * { label: 'Members' },
13
+ * { label: 'Review' },
14
+ * { label: 'Confirm' },
15
+ * ];
16
+ *
17
+ * <WizardShell
18
+ * steps={STEPS}
19
+ * currentStep={currentStep}
20
+ * onBack={handleBack}
21
+ * onNext={handleNext}
22
+ * onSubmit={handleSubmit}
23
+ * canAdvance={isValid}
24
+ * isSubmitting={isPending}
25
+ * onCancel={handleClose}
26
+ * submitLabel="Create Bundle"
27
+ * >
28
+ * {currentStep === 1 && <StepOneContent />}
29
+ * {currentStep === 2 && <StepTwoContent />}
30
+ * </WizardShell>
31
+ * ```
32
+ */
33
+ 'use client';
34
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
35
+ import * as React from 'react';
36
+ import { Check } from 'lucide-react';
37
+ import { cn } from './utils';
38
+ function StepIndicator({ steps, currentStep }) {
39
+ return (_jsx("nav", { "aria-label": "Wizard steps", children: _jsx("ol", { className: "flex items-center justify-center gap-0", role: "list", children: steps.map((step, index) => {
40
+ const stepNumber = index + 1;
41
+ const isCompleted = stepNumber < currentStep;
42
+ const isActive = stepNumber === currentStep;
43
+ const isLast = index === steps.length - 1;
44
+ const stepState = isCompleted ? 'completed' : isActive ? 'current' : 'upcoming';
45
+ return (_jsxs(React.Fragment, { children: [_jsxs("li", { className: "flex flex-col items-center gap-1", "aria-current": isActive ? 'step' : undefined, "aria-label": `Step ${stepNumber}: ${step.label} — ${stepState}`, children: [_jsx("div", { className: cn('flex h-8 w-8 items-center justify-center rounded-full border-2 text-xs font-semibold transition-colors', isCompleted || isActive
46
+ ? 'border-primary bg-primary text-primary-foreground'
47
+ : 'border-muted bg-background text-muted-foreground'), "aria-hidden": "true", children: isCompleted ? (step.icon ?? _jsx(Check, { className: "h-3.5 w-3.5" })) : (step.icon ?? _jsx("span", { children: stepNumber })) }), _jsx("span", { className: cn('text-[10px] font-medium leading-none', isActive ? 'text-foreground' : 'text-muted-foreground'), "aria-hidden": "true", children: step.label })] }), !isLast && (_jsx("div", { "aria-hidden": "true", className: cn('mb-4 h-0.5 w-8 flex-shrink-0 transition-colors', isCompleted ? 'bg-primary' : 'bg-muted') }))] }, stepNumber));
48
+ }) }) }));
49
+ }
50
+ function WizardFooter({ currentStep, totalSteps, canAdvance, isSubmitting, onBack, onNext, onSubmit, onCancel, submitLabel, submittingLabel, }) {
51
+ const isFirstStep = currentStep === 1;
52
+ const isLastStep = currentStep === totalSteps;
53
+ return (_jsxs("div", { className: "flex items-center justify-end gap-2 pt-4", children: [_jsx("button", { type: "button", onClick: onCancel, disabled: isSubmitting, className: cn('mr-auto inline-flex items-center justify-center rounded-md px-4 py-2 text-sm font-medium', 'transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2', 'hover:bg-accent hover:text-accent-foreground', 'disabled:pointer-events-none disabled:opacity-50'), children: "Cancel" }), _jsx("button", { type: "button", onClick: onBack, disabled: isFirstStep || isSubmitting, "aria-disabled": isFirstStep, className: cn('inline-flex items-center justify-center rounded-md border border-input bg-background px-4 py-2 text-sm font-medium', 'transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2', 'hover:bg-accent hover:text-accent-foreground', 'disabled:pointer-events-none disabled:opacity-50'), children: "Back" }), isLastStep ? (_jsx("button", { type: "button", onClick: onSubmit, disabled: !canAdvance || isSubmitting, "aria-busy": isSubmitting, className: cn('inline-flex items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground', 'transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2', 'hover:bg-primary/90', 'disabled:pointer-events-none disabled:opacity-50'), children: isSubmitting ? submittingLabel : submitLabel })) : (_jsx("button", { type: "button", onClick: onNext, disabled: !canAdvance, className: cn('inline-flex items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground', 'transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2', 'hover:bg-primary/90', 'disabled:pointer-events-none disabled:opacity-50'), children: "Next" }))] }));
54
+ }
55
+ // ============================================================================
56
+ // WizardShell (public component)
57
+ // ============================================================================
58
+ /**
59
+ * WizardShell — generic multi-step wizard chrome.
60
+ *
61
+ * Renders:
62
+ * - A step indicator (bubbles + connector lines) reflecting `currentStep`
63
+ * - A content area for `children` (the active step's content)
64
+ * - A footer with Cancel, Back, and Next/Submit controls
65
+ *
66
+ * The shell does NOT manage step state itself. The caller owns `currentStep`
67
+ * and the `onBack` / `onNext` / `onSubmit` handlers.
68
+ */
69
+ export function WizardShell({ steps, currentStep, onBack, onNext, onSubmit, onCancel, canAdvance, isSubmitting = false, children, submitLabel = 'Submit', submittingLabel = 'Submitting\u2026', contentMinHeight = '220px', }) {
70
+ const totalSteps = steps.length;
71
+ return (_jsxs("div", { className: "flex flex-col gap-0", children: [_jsx("div", { className: "px-1 pt-1 pb-2", children: _jsx(StepIndicator, { steps: steps, currentStep: currentStep }) }), _jsx("div", { style: { minHeight: contentMinHeight }, children: children }), _jsx(WizardFooter, { currentStep: currentStep, totalSteps: totalSteps, canAdvance: canAdvance, isSubmitting: isSubmitting, onBack: onBack, onNext: onNext, onSubmit: onSubmit, onCancel: onCancel, submitLabel: submitLabel, submittingLabel: submittingLabel })] }));
72
+ }
73
+ //# sourceMappingURL=WizardShell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WizardShell.js","sourceRoot":"","sources":["../../src/primitives/WizardShell.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ export { Badge, badgeVariants } from './Badge';
2
+ export type { BadgeProps } from './Badge';
3
+ export { ScrollArea, ScrollBar } from './ScrollArea';
4
+ export { Dialog, DialogPortal, DialogOverlay, DialogClose, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, } from './Dialog';
5
+ export { ModalHeader } from './ModalHeader';
6
+ export type { ModalHeaderProps } from './ModalHeader';
7
+ export { Tabs, TabsList, TabsTrigger, TabsContent } from './Tabs';
8
+ export { TabNavigation } from './TabNavigation';
9
+ export type { Tab, TabNavigationProps } from './TabNavigation';
10
+ export { VerticalTabNavigation } from './VerticalTabNavigation';
11
+ export type { VerticalTabNavigationProps, VerticalTabNavigationHandle } from './VerticalTabNavigation';
12
+ export { cn } from './utils';
13
+ export { StatusBadge } from './StatusBadge';
14
+ export type { StatusBadgeProps } from './StatusBadge';
15
+ export { BaseArtifactModal } from './BaseArtifactModal';
16
+ export type { BaseArtifactModalProps, ModalArtifact, ArtifactTypeConfig, ModalTab, } from './BaseArtifactModal';
17
+ export { SearchableCombobox } from './SearchableCombobox';
18
+ export type { SearchableComboboxProps } from './SearchableCombobox';
19
+ export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor, PopoverClose } from './Popover';
20
+ export { Input } from './Input';
21
+ export type { InputProps } from './Input';
22
+ export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuGroup, DropdownMenuPortal, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuRadioGroup, } from './DropdownMenu';
23
+ export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } from './Tooltip';
24
+ export { SearchablePickerDialog } from './SearchablePickerDialog';
25
+ export type { SearchablePickerDialogProps } from './SearchablePickerDialog';
26
+ export { ViewModeToggle } from './ViewModeToggle';
27
+ export type { ViewModeToggleProps } from './ViewModeToggle';
28
+ export { MaskedSecretInput } from './MaskedSecretInput';
29
+ export type { MaskedSecretInputProps } from './MaskedSecretInput';
30
+ export { GroupedSelect } from './GroupedSelect';
31
+ export type { GroupedSelectProps, GroupedSelectGroup, GroupedSelectItem } from './GroupedSelect';
32
+ export { EnterpriseOwnerBadge } from './EnterpriseOwnerBadge';
33
+ export type { EnterpriseOwnerBadgeProps } from './EnterpriseOwnerBadge';
34
+ export { LockIcon } from './LockIcon';
35
+ export type { LockIconProps } from './LockIcon';
36
+ export { WizardShell } from './WizardShell';
37
+ export type { WizardShellProps, WizardStep } from './WizardShell';
38
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/primitives/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ // @miethe/ui — primitives submodule
2
+ export { Badge, badgeVariants } from './Badge';
3
+ export { ScrollArea, ScrollBar } from './ScrollArea';
4
+ export { Dialog, DialogPortal, DialogOverlay, DialogClose, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, } from './Dialog';
5
+ export { ModalHeader } from './ModalHeader';
6
+ export { Tabs, TabsList, TabsTrigger, TabsContent } from './Tabs';
7
+ export { TabNavigation } from './TabNavigation';
8
+ export { VerticalTabNavigation } from './VerticalTabNavigation';
9
+ export { cn } from './utils';
10
+ export { StatusBadge } from './StatusBadge';
11
+ export { BaseArtifactModal } from './BaseArtifactModal';
12
+ export { SearchableCombobox } from './SearchableCombobox';
13
+ export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor, PopoverClose } from './Popover';
14
+ export { Input } from './Input';
15
+ export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuGroup, DropdownMenuPortal, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuRadioGroup, } from './DropdownMenu';
16
+ export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } from './Tooltip';
17
+ export { SearchablePickerDialog } from './SearchablePickerDialog';
18
+ export { ViewModeToggle } from './ViewModeToggle';
19
+ export { MaskedSecretInput } from './MaskedSecretInput';
20
+ export { GroupedSelect } from './GroupedSelect';
21
+ export { EnterpriseOwnerBadge } from './EnterpriseOwnerBadge';
22
+ export { LockIcon } from './LockIcon';
23
+ export { WizardShell } from './WizardShell';
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/primitives/index.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EACL,MAAM,EACN,YAAY,EACZ,aAAa,EACb,WAAW,EACX,aAAa,EACb,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAOxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACjG,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type ClassValue } from 'clsx';
2
+ /**
3
+ * Merge Tailwind and conditional class names.
4
+ */
5
+ export declare function cn(...inputs: ClassValue[]): string;
6
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/primitives/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,MAAM,CAAC;AAG7C;;GAEG;AACH,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC"}
@@ -0,0 +1,9 @@
1
+ import { clsx } from 'clsx';
2
+ import { twMerge } from 'tailwind-merge';
3
+ /**
4
+ * Merge Tailwind and conditional class names.
5
+ */
6
+ export function cn(...inputs) {
7
+ return twMerge(clsx(inputs));
8
+ }
9
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/primitives/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,IAAI,EAAE,MAAM,MAAM,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC;;GAEG;AACH,MAAM,UAAU,EAAE,CAAC,GAAG,MAAoB;IACxC,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * @skillmeat/content-viewer — Shared Type Definitions
3
+ *
4
+ * Canonical type definitions for file tree and content viewer APIs.
5
+ * These types are intentionally free of any `@/` path imports so the
6
+ * package can be consumed outside the main Next.js application.
7
+ */
8
+ /**
9
+ * A node in the file tree — either a file or a directory.
10
+ * `size` is present for file nodes; `children` is present for directory nodes.
11
+ */
12
+ export interface FileNode {
13
+ name: string;
14
+ path: string;
15
+ type: 'file' | 'directory';
16
+ size?: number;
17
+ children?: FileNode[];
18
+ }
19
+ /**
20
+ * A single entry in a catalog artifact's file tree.
21
+ * `type` uses GitHub tree conventions: 'file' | 'tree' (directory).
22
+ */
23
+ export interface FileTreeEntry {
24
+ /** Relative path within the artifact */
25
+ path: string;
26
+ /** Entry type: 'file' for files, 'tree' for directories */
27
+ type: 'file' | 'tree';
28
+ /** File size in bytes (only present for file entries) */
29
+ size?: number;
30
+ }
31
+ /**
32
+ * Response from the marketplace source artifact file-tree endpoint.
33
+ */
34
+ export interface FileTreeResponse {
35
+ /** List of files and directories in the artifact */
36
+ entries: FileTreeEntry[];
37
+ /** Whether the response was served from cache */
38
+ cached: boolean;
39
+ /** Age of cached data in seconds (only present when cached) */
40
+ cache_age_seconds?: number;
41
+ }
42
+ /**
43
+ * Response from the marketplace source artifact file-content endpoint.
44
+ */
45
+ export interface FileContentResponse {
46
+ /** File content (decoded from base64 by backend) */
47
+ content: string;
48
+ /** Content encoding (typically 'utf-8' after decoding) */
49
+ encoding: string;
50
+ /** File size in bytes */
51
+ size: number;
52
+ /** Git blob SHA for the file */
53
+ sha: string;
54
+ /** Whether content was truncated due to size limits */
55
+ truncated?: boolean;
56
+ /** Original file size in bytes (present when truncated) */
57
+ original_size?: number;
58
+ /** Whether the response was served from cache */
59
+ cached: boolean;
60
+ /** Age of cached data in seconds (only present when cached) */
61
+ cache_age_seconds?: number;
62
+ }
63
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;CACvB;AAMD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,iDAAiD;IACjD,MAAM,EAAE,OAAO,CAAC;IAChB,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,uDAAuD;IACvD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,MAAM,EAAE,OAAO,CAAC;IAChB,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @skillmeat/content-viewer — Shared Type Definitions
3
+ *
4
+ * Canonical type definitions for file tree and content viewer APIs.
5
+ * These types are intentionally free of any `@/` path imports so the
6
+ * package can be consumed outside the main Next.js application.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Frontmatter parsing utility for YAML frontmatter in markdown files.
3
+ *
4
+ * Handles detection, parsing, and stripping of YAML frontmatter blocks
5
+ * delimited by `---` markers at the start of content.
6
+ *
7
+ * NOTE: This implementation uses a simple YAML parser for common cases.
8
+ * For production use with complex YAML, consider adding `yaml` or `js-yaml` package.
9
+ */
10
+ /**
11
+ * Detects whether content contains YAML frontmatter.
12
+ *
13
+ * Frontmatter must start at the beginning of the content with `---`
14
+ * followed by a newline, and end with `---` followed by a newline.
15
+ *
16
+ * @param content - The string content to check
17
+ * @returns true if frontmatter is present, false otherwise
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * detectFrontmatter('---\ntitle: Hello\n---\nContent'); // true
22
+ * detectFrontmatter('# Just markdown'); // false
23
+ * detectFrontmatter(''); // false
24
+ * ```
25
+ */
26
+ export declare function detectFrontmatter(content: string): boolean;
27
+ /**
28
+ * Parses YAML frontmatter from content.
29
+ *
30
+ * Extracts the YAML block and returns both the parsed frontmatter object
31
+ * and the remaining content with frontmatter stripped.
32
+ *
33
+ * @param content - The string content to parse
34
+ * @returns Object containing frontmatter (null if invalid/missing) and clean content
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * const result = parseFrontmatter('---\ntitle: Hello\nauthor: World\n---\nContent here');
39
+ * // result.frontmatter = { title: 'Hello', author: 'World' }
40
+ * // result.content = 'Content here'
41
+ * ```
42
+ */
43
+ export declare function parseFrontmatter(content: string): {
44
+ frontmatter: Record<string, unknown> | null;
45
+ content: string;
46
+ };
47
+ /**
48
+ * Strips frontmatter from content, returning only the body.
49
+ *
50
+ * This is a convenience function when you only need the content
51
+ * without the frontmatter metadata.
52
+ *
53
+ * @param content - The string content to process
54
+ * @returns Content with frontmatter removed
55
+ *
56
+ * @example
57
+ * ```ts
58
+ * stripFrontmatter('---\ntitle: Hello\n---\nContent'); // 'Content'
59
+ * stripFrontmatter('No frontmatter'); // 'No frontmatter'
60
+ * ```
61
+ */
62
+ export declare function stripFrontmatter(content: string): string;
63
+ //# sourceMappingURL=frontmatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../../src/utils/frontmatter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAK1D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG;IACjD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5C,OAAO,EAAE,MAAM,CAAC;CACjB,CAwBA;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMxD"}