@middag-io/react 0.2.1 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/dist-lib/app/ContractPage.d.ts +17 -0
  2. package/dist-lib/app/ContractPage.d.ts.map +1 -0
  3. package/dist-lib/app/bootstrap.d.ts +6 -0
  4. package/dist-lib/app/bootstrap.d.ts.map +1 -0
  5. package/dist-lib/app/providers/auth.d.ts +41 -0
  6. package/dist-lib/app/providers/auth.d.ts.map +1 -0
  7. package/dist-lib/app/providers/flash.d.ts +14 -0
  8. package/dist-lib/app/providers/flash.d.ts.map +1 -0
  9. package/dist-lib/app/providers/i18n.d.ts +40 -0
  10. package/dist-lib/app/providers/i18n.d.ts.map +1 -0
  11. package/dist-lib/app/providers/progress.d.ts +13 -0
  12. package/dist-lib/app/providers/progress.d.ts.map +1 -0
  13. package/dist-lib/app/providers/scope.d.ts +32 -0
  14. package/dist-lib/app/providers/scope.d.ts.map +1 -0
  15. package/dist-lib/app/register-defaults.d.ts +6 -0
  16. package/dist-lib/app/register-defaults.d.ts.map +1 -0
  17. package/dist-lib/app/registries.d.ts +33 -0
  18. package/dist-lib/app/registries.d.ts.map +1 -0
  19. package/dist-lib/assets/lottie/index.d.ts +36 -0
  20. package/dist-lib/assets/lottie/index.d.ts.map +1 -0
  21. package/dist-lib/base/blocks/ActionGridBlock.d.ts +14 -0
  22. package/dist-lib/base/blocks/ActionGridBlock.d.ts.map +1 -0
  23. package/dist-lib/base/blocks/ActivityTimelineBlock.d.ts +13 -0
  24. package/dist-lib/base/blocks/ActivityTimelineBlock.d.ts.map +1 -0
  25. package/dist-lib/base/blocks/CardGridBlock.d.ts +18 -0
  26. package/dist-lib/base/blocks/CardGridBlock.d.ts.map +1 -0
  27. package/dist-lib/base/blocks/ConditionTreeBlock.d.ts +13 -0
  28. package/dist-lib/base/blocks/ConditionTreeBlock.d.ts.map +1 -0
  29. package/dist-lib/base/blocks/DenseTableBlock.d.ts +13 -0
  30. package/dist-lib/base/blocks/DenseTableBlock.d.ts.map +1 -0
  31. package/dist-lib/base/blocks/DetailPanelBlock.d.ts +13 -0
  32. package/dist-lib/base/blocks/DetailPanelBlock.d.ts.map +1 -0
  33. package/dist-lib/base/blocks/EmptyStateBlock.d.ts +12 -0
  34. package/dist-lib/base/blocks/EmptyStateBlock.d.ts.map +1 -0
  35. package/dist-lib/base/blocks/FlowEditorBlock.d.ts +15 -0
  36. package/dist-lib/base/blocks/FlowEditorBlock.d.ts.map +1 -0
  37. package/dist-lib/base/blocks/FormBuilderBlock.d.ts +17 -0
  38. package/dist-lib/base/blocks/FormBuilderBlock.d.ts.map +1 -0
  39. package/dist-lib/base/blocks/FormPanelBlock.d.ts +13 -0
  40. package/dist-lib/base/blocks/FormPanelBlock.d.ts.map +1 -0
  41. package/dist-lib/base/blocks/LinkListBlock.d.ts +12 -0
  42. package/dist-lib/base/blocks/LinkListBlock.d.ts.map +1 -0
  43. package/dist-lib/base/blocks/MarkdownPanelBlock.d.ts +13 -0
  44. package/dist-lib/base/blocks/MarkdownPanelBlock.d.ts.map +1 -0
  45. package/dist-lib/base/blocks/MetricCardBlock.d.ts +10 -0
  46. package/dist-lib/base/blocks/MetricCardBlock.d.ts.map +1 -0
  47. package/dist-lib/base/blocks/SentenceBuilderBlock.d.ts +15 -0
  48. package/dist-lib/base/blocks/SentenceBuilderBlock.d.ts.map +1 -0
  49. package/dist-lib/base/blocks/StatusStripBlock.d.ts +12 -0
  50. package/dist-lib/base/blocks/StatusStripBlock.d.ts.map +1 -0
  51. package/dist-lib/base/blocks/TabbedPanelBlock.d.ts +15 -0
  52. package/dist-lib/base/blocks/TabbedPanelBlock.d.ts.map +1 -0
  53. package/dist-lib/base/form/FormField.d.ts +38 -0
  54. package/dist-lib/base/form/FormField.d.ts.map +1 -0
  55. package/dist-lib/base/form/fields/CheckboxField.d.ts +19 -0
  56. package/dist-lib/base/form/fields/CheckboxField.d.ts.map +1 -0
  57. package/dist-lib/base/form/fields/EntityPickerField.d.ts +24 -0
  58. package/dist-lib/base/form/fields/EntityPickerField.d.ts.map +1 -0
  59. package/dist-lib/base/form/fields/MultiSelectField.d.ts +24 -0
  60. package/dist-lib/base/form/fields/MultiSelectField.d.ts.map +1 -0
  61. package/dist-lib/base/form/fields/NumberField.d.ts +21 -0
  62. package/dist-lib/base/form/fields/NumberField.d.ts.map +1 -0
  63. package/dist-lib/base/form/fields/PasswordField.d.ts +19 -0
  64. package/dist-lib/base/form/fields/PasswordField.d.ts.map +1 -0
  65. package/dist-lib/base/form/fields/RadioField.d.ts +23 -0
  66. package/dist-lib/base/form/fields/RadioField.d.ts.map +1 -0
  67. package/dist-lib/base/form/fields/SelectField.d.ts +24 -0
  68. package/dist-lib/base/form/fields/SelectField.d.ts.map +1 -0
  69. package/dist-lib/base/form/fields/StaticField.d.ts +12 -0
  70. package/dist-lib/base/form/fields/StaticField.d.ts.map +1 -0
  71. package/dist-lib/base/form/fields/SwitchField.d.ts +19 -0
  72. package/dist-lib/base/form/fields/SwitchField.d.ts.map +1 -0
  73. package/dist-lib/base/form/fields/TextField.d.ts +21 -0
  74. package/dist-lib/base/form/fields/TextField.d.ts.map +1 -0
  75. package/dist-lib/base/form/fields/TextareaField.d.ts +21 -0
  76. package/dist-lib/base/form/fields/TextareaField.d.ts.map +1 -0
  77. package/dist-lib/base/hooks/useIsDark.d.ts +12 -0
  78. package/dist-lib/base/hooks/useIsDark.d.ts.map +1 -0
  79. package/dist-lib/base/hooks/usePolling.d.ts +11 -0
  80. package/dist-lib/base/hooks/usePolling.d.ts.map +1 -0
  81. package/dist-lib/base/hooks/useToast.d.ts +17 -0
  82. package/dist-lib/base/hooks/useToast.d.ts.map +1 -0
  83. package/dist-lib/base/layout/DashboardLayout.d.ts +11 -0
  84. package/dist-lib/base/layout/DashboardLayout.d.ts.map +1 -0
  85. package/dist-lib/base/layout/MasterDetailLayout.d.ts +8 -0
  86. package/dist-lib/base/layout/MasterDetailLayout.d.ts.map +1 -0
  87. package/dist-lib/base/layout/SplitLayout.d.ts +8 -0
  88. package/dist-lib/base/layout/SplitLayout.d.ts.map +1 -0
  89. package/dist-lib/base/layout/StackLayout.d.ts +12 -0
  90. package/dist-lib/base/layout/StackLayout.d.ts.map +1 -0
  91. package/dist-lib/base/layout/WizardLayout.d.ts +12 -0
  92. package/dist-lib/base/layout/WizardLayout.d.ts.map +1 -0
  93. package/dist-lib/base/partials/ActionBar/index.d.ts +28 -0
  94. package/dist-lib/base/partials/ActionBar/index.d.ts.map +1 -0
  95. package/dist-lib/base/partials/ConfirmationDialog/index.d.ts +26 -0
  96. package/dist-lib/base/partials/ConfirmationDialog/index.d.ts.map +1 -0
  97. package/dist-lib/base/partials/DataTable/cell-renderers.d.ts +16 -0
  98. package/dist-lib/base/partials/DataTable/cell-renderers.d.ts.map +1 -0
  99. package/dist-lib/base/partials/DataTable/index.d.ts +12 -0
  100. package/dist-lib/base/partials/DataTable/index.d.ts.map +1 -0
  101. package/dist-lib/base/partials/DataTable/types.d.ts +129 -0
  102. package/dist-lib/base/partials/DataTable/types.d.ts.map +1 -0
  103. package/dist-lib/base/partials/DetailSection/index.d.ts +37 -0
  104. package/dist-lib/base/partials/DetailSection/index.d.ts.map +1 -0
  105. package/dist-lib/base/partials/EmptyPlaceholder/index.d.ts +29 -0
  106. package/dist-lib/base/partials/EmptyPlaceholder/index.d.ts.map +1 -0
  107. package/dist-lib/base/partials/FilterBar/index.d.ts +31 -0
  108. package/dist-lib/base/partials/FilterBar/index.d.ts.map +1 -0
  109. package/dist-lib/base/partials/FormSection/index.d.ts +19 -0
  110. package/dist-lib/base/partials/FormSection/index.d.ts.map +1 -0
  111. package/dist-lib/base/partials/LogViewer/JsonBlock.d.ts +8 -0
  112. package/dist-lib/base/partials/LogViewer/JsonBlock.d.ts.map +1 -0
  113. package/dist-lib/base/partials/LogViewer/LogEntry.d.ts +9 -0
  114. package/dist-lib/base/partials/LogViewer/LogEntry.d.ts.map +1 -0
  115. package/dist-lib/base/partials/LogViewer/LogViewerToolbar.d.ts +16 -0
  116. package/dist-lib/base/partials/LogViewer/LogViewerToolbar.d.ts.map +1 -0
  117. package/dist-lib/base/partials/LogViewer/index.d.ts +14 -0
  118. package/dist-lib/base/partials/LogViewer/index.d.ts.map +1 -0
  119. package/dist-lib/base/partials/LogViewer/types.d.ts +26 -0
  120. package/dist-lib/base/partials/LogViewer/types.d.ts.map +1 -0
  121. package/dist-lib/base/partials/MarkdownContent/index.d.ts +17 -0
  122. package/dist-lib/base/partials/MarkdownContent/index.d.ts.map +1 -0
  123. package/dist-lib/base/partials/StatRow/index.d.ts +12 -0
  124. package/dist-lib/base/partials/StatRow/index.d.ts.map +1 -0
  125. package/dist-lib/base/partials/StatusBar/index.d.ts +21 -0
  126. package/dist-lib/base/partials/StatusBar/index.d.ts.map +1 -0
  127. package/dist-lib/base/partials/StatusIndicator/index.d.ts +16 -0
  128. package/dist-lib/base/partials/StatusIndicator/index.d.ts.map +1 -0
  129. package/dist-lib/base/partials/StepIndicator/index.d.ts +15 -0
  130. package/dist-lib/base/partials/StepIndicator/index.d.ts.map +1 -0
  131. package/dist-lib/base/partials/TimelineList/index.d.ts +32 -0
  132. package/dist-lib/base/partials/TimelineList/index.d.ts.map +1 -0
  133. package/dist-lib/base/shell/AdminShell.d.ts +12 -0
  134. package/dist-lib/base/shell/AdminShell.d.ts.map +1 -0
  135. package/dist-lib/base/shell/ProductShell.d.ts +22 -0
  136. package/dist-lib/base/shell/ProductShell.d.ts.map +1 -0
  137. package/dist-lib/base/shell/partials/AppearanceToggle.d.ts +8 -0
  138. package/dist-lib/base/shell/partials/AppearanceToggle.d.ts.map +1 -0
  139. package/dist-lib/base/shell/partials/CommandPalette.d.ts +24 -0
  140. package/dist-lib/base/shell/partials/CommandPalette.d.ts.map +1 -0
  141. package/dist-lib/base/shell/partials/HelpContext.d.ts +15 -0
  142. package/dist-lib/base/shell/partials/HelpContext.d.ts.map +1 -0
  143. package/dist-lib/base/shell/partials/HelpPanel.d.ts +15 -0
  144. package/dist-lib/base/shell/partials/HelpPanel.d.ts.map +1 -0
  145. package/dist-lib/base/shell/partials/InlineInspector.d.ts +15 -0
  146. package/dist-lib/base/shell/partials/InlineInspector.d.ts.map +1 -0
  147. package/dist-lib/base/shell/partials/InspectorContext.d.ts +58 -0
  148. package/dist-lib/base/shell/partials/InspectorContext.d.ts.map +1 -0
  149. package/dist-lib/base/shell/partials/InspectorPanel.d.ts +29 -0
  150. package/dist-lib/base/shell/partials/InspectorPanel.d.ts.map +1 -0
  151. package/dist-lib/base/shell/partials/NavErrorBoundary.d.ts +23 -0
  152. package/dist-lib/base/shell/partials/NavErrorBoundary.d.ts.map +1 -0
  153. package/dist-lib/base/shell/partials/OverlayScreen.d.ts +17 -0
  154. package/dist-lib/base/shell/partials/OverlayScreen.d.ts.map +1 -0
  155. package/dist-lib/base/shell/partials/PageActionButton.d.ts +17 -0
  156. package/dist-lib/base/shell/partials/PageActionButton.d.ts.map +1 -0
  157. package/dist-lib/base/shell/partials/PageFilterTabs.d.ts +22 -0
  158. package/dist-lib/base/shell/partials/PageFilterTabs.d.ts.map +1 -0
  159. package/dist-lib/base/shell/partials/PageHeader.d.ts +22 -0
  160. package/dist-lib/base/shell/partials/PageHeader.d.ts.map +1 -0
  161. package/dist-lib/base/shell/partials/SidebarNav.d.ts +17 -0
  162. package/dist-lib/base/shell/partials/SidebarNav.d.ts.map +1 -0
  163. package/dist-lib/base/theme/appearance.d.ts +58 -0
  164. package/dist-lib/base/theme/appearance.d.ts.map +1 -0
  165. package/dist-lib/base/theme/host-theme-detector.d.ts +22 -0
  166. package/dist-lib/base/theme/host-theme-detector.d.ts.map +1 -0
  167. package/dist-lib/base/theme/useHostTheme.d.ts +27 -0
  168. package/dist-lib/base/theme/useHostTheme.d.ts.map +1 -0
  169. package/dist-lib/base/utils/clipboard.d.ts +12 -0
  170. package/dist-lib/base/utils/clipboard.d.ts.map +1 -0
  171. package/dist-lib/base/utils/conditions.d.ts +7 -0
  172. package/dist-lib/base/utils/conditions.d.ts.map +1 -0
  173. package/dist-lib/base/utils/icons.d.ts +21 -0
  174. package/dist-lib/base/utils/icons.d.ts.map +1 -0
  175. package/dist-lib/base/utils/interpolate.d.ts +7 -0
  176. package/dist-lib/base/utils/interpolate.d.ts.map +1 -0
  177. package/dist-lib/base/utils/time.d.ts +28 -0
  178. package/dist-lib/base/utils/time.d.ts.map +1 -0
  179. package/dist-lib/components/reui/alert-dialog.d.ts +19 -0
  180. package/dist-lib/components/reui/alert-dialog.d.ts.map +1 -0
  181. package/dist-lib/components/reui/alert.d.ts +10 -0
  182. package/dist-lib/components/reui/alert.d.ts.map +1 -0
  183. package/dist-lib/components/reui/badge.d.ts +12 -0
  184. package/dist-lib/components/reui/badge.d.ts.map +1 -0
  185. package/dist-lib/components/reui/button.d.ts +11 -0
  186. package/dist-lib/components/reui/button.d.ts.map +1 -0
  187. package/dist-lib/components/reui/card.d.ts +10 -0
  188. package/dist-lib/components/reui/card.d.ts.map +1 -0
  189. package/dist-lib/components/reui/checkbox.d.ts +5 -0
  190. package/dist-lib/components/reui/checkbox.d.ts.map +1 -0
  191. package/dist-lib/components/reui/dialog.d.ts +18 -0
  192. package/dist-lib/components/reui/dialog.d.ts.map +1 -0
  193. package/dist-lib/components/reui/dropdown-menu.d.ts +26 -0
  194. package/dist-lib/components/reui/dropdown-menu.d.ts.map +1 -0
  195. package/dist-lib/components/reui/frame.d.ts +29 -0
  196. package/dist-lib/components/reui/frame.d.ts.map +1 -0
  197. package/dist-lib/components/reui/input.d.ts +4 -0
  198. package/dist-lib/components/reui/input.d.ts.map +1 -0
  199. package/dist-lib/components/reui/label.d.ts +5 -0
  200. package/dist-lib/components/reui/label.d.ts.map +1 -0
  201. package/dist-lib/components/reui/number-field.d.ts +26 -0
  202. package/dist-lib/components/reui/number-field.d.ts.map +1 -0
  203. package/dist-lib/components/reui/popover.d.ts +11 -0
  204. package/dist-lib/components/reui/popover.d.ts.map +1 -0
  205. package/dist-lib/components/reui/radio-group.d.ts +6 -0
  206. package/dist-lib/components/reui/radio-group.d.ts.map +1 -0
  207. package/dist-lib/components/reui/select.d.ts +16 -0
  208. package/dist-lib/components/reui/select.d.ts.map +1 -0
  209. package/dist-lib/components/reui/separator.d.ts +5 -0
  210. package/dist-lib/components/reui/separator.d.ts.map +1 -0
  211. package/dist-lib/components/reui/sheet.d.ts +15 -0
  212. package/dist-lib/components/reui/sheet.d.ts.map +1 -0
  213. package/dist-lib/components/reui/sidebar.d.ts +70 -0
  214. package/dist-lib/components/reui/sidebar.d.ts.map +1 -0
  215. package/dist-lib/components/reui/skeleton.d.ts +3 -0
  216. package/dist-lib/components/reui/skeleton.d.ts.map +1 -0
  217. package/dist-lib/components/reui/sonner.d.ts +4 -0
  218. package/dist-lib/components/reui/sonner.d.ts.map +1 -0
  219. package/dist-lib/components/reui/spinner.d.ts +3 -0
  220. package/dist-lib/components/reui/spinner.d.ts.map +1 -0
  221. package/dist-lib/components/reui/switch.d.ts +7 -0
  222. package/dist-lib/components/reui/switch.d.ts.map +1 -0
  223. package/dist-lib/components/reui/tabs.d.ts +12 -0
  224. package/dist-lib/components/reui/tabs.d.ts.map +1 -0
  225. package/dist-lib/components/reui/textarea.d.ts +4 -0
  226. package/dist-lib/components/reui/textarea.d.ts.map +1 -0
  227. package/dist-lib/components/reui/tooltip.d.ts +8 -0
  228. package/dist-lib/components/reui/tooltip.d.ts.map +1 -0
  229. package/dist-lib/components/ui/svgs/claudeAiIcon.d.ts +4 -0
  230. package/dist-lib/components/ui/svgs/claudeAiIcon.d.ts.map +1 -0
  231. package/dist-lib/components/ui/svgs/gemini.d.ts +4 -0
  232. package/dist-lib/components/ui/svgs/gemini.d.ts.map +1 -0
  233. package/dist-lib/components/ui/svgs/openai.d.ts +4 -0
  234. package/dist-lib/components/ui/svgs/openai.d.ts.map +1 -0
  235. package/dist-lib/components/ui/svgs/openaiDark.d.ts +4 -0
  236. package/dist-lib/components/ui/svgs/openaiDark.d.ts.map +1 -0
  237. package/dist-lib/contracts/block-data.d.ts +399 -0
  238. package/dist-lib/contracts/block-data.d.ts.map +1 -0
  239. package/dist-lib/contracts/connectors.d.ts +50 -0
  240. package/dist-lib/contracts/connectors.d.ts.map +1 -0
  241. package/dist-lib/contracts/navigation.d.ts +101 -0
  242. package/dist-lib/contracts/navigation.d.ts.map +1 -0
  243. package/dist-lib/contracts/page-contract.d.ts +129 -0
  244. package/dist-lib/contracts/page-contract.d.ts.map +1 -0
  245. package/dist-lib/contracts/shared-props.d.ts +76 -0
  246. package/dist-lib/contracts/shared-props.d.ts.map +1 -0
  247. package/dist-lib/hooks/use-copy-to-clipboard.d.ts +2 -0
  248. package/dist-lib/hooks/use-copy-to-clipboard.d.ts.map +1 -0
  249. package/dist-lib/hooks/use-file-upload.d.ts +2 -0
  250. package/dist-lib/hooks/use-file-upload.d.ts.map +1 -0
  251. package/dist-lib/index.d.ts +22 -0
  252. package/dist-lib/index.d.ts.map +1 -0
  253. package/dist-lib/lib/deprecation.d.ts +10 -0
  254. package/dist-lib/lib/deprecation.d.ts.map +1 -0
  255. package/dist-lib/lib/hooks/use-copy-to-clipboard.d.ts +8 -0
  256. package/dist-lib/lib/hooks/use-copy-to-clipboard.d.ts.map +1 -0
  257. package/dist-lib/lib/hooks/use-file-upload.d.ts +47 -0
  258. package/dist-lib/lib/hooks/use-file-upload.d.ts.map +1 -0
  259. package/dist-lib/lib/hooks/use-mobile.d.ts +2 -0
  260. package/dist-lib/lib/hooks/use-mobile.d.ts.map +1 -0
  261. package/dist-lib/lib/portal-container.d.ts +9 -0
  262. package/dist-lib/lib/portal-container.d.ts.map +1 -0
  263. package/dist-lib/lib/utils.d.ts +3 -0
  264. package/dist-lib/lib/utils.d.ts.map +1 -0
  265. package/package.json +2 -2
@@ -0,0 +1,399 @@
1
+ /**
2
+ * Block data contracts — typed data shapes for all 8 ADR-807 standard blocks.
3
+ *
4
+ * Imported by block components for BlockProps<TData> type parameter.
5
+ * These mirror the JSON shapes sent from PHP controllers via Inertia.
6
+ *
7
+ * @see ADR-807 ref/page-contract-v1 §5
8
+ * @see NV-05-ux-blocks.md
9
+ */
10
+ export interface DenseTableColumnDef {
11
+ key: string;
12
+ label: string;
13
+ sortable?: boolean;
14
+ searchable?: boolean;
15
+ variant?: "text" | "status" | "badge" | "boolean" | "timestamp" | "link" | "rich_status" | "html" | "link_group";
16
+ minWidth?: number;
17
+ }
18
+ export interface DenseTablePagination {
19
+ page: number;
20
+ perPage: number;
21
+ total: number;
22
+ lastPage: number;
23
+ }
24
+ export interface DenseTableSort {
25
+ column: string | null;
26
+ direction: "asc" | "desc" | null;
27
+ }
28
+ export interface DenseTableFilterDef {
29
+ key: string;
30
+ label: string;
31
+ type: "select" | "multiselect" | "date_range";
32
+ options?: Array<{
33
+ value: string;
34
+ label: string;
35
+ }>;
36
+ }
37
+ export interface DenseTableRowAction {
38
+ id: string;
39
+ label: string;
40
+ icon: string;
41
+ intent?: "default" | "danger";
42
+ variant?: "icon" | "button";
43
+ href?: string;
44
+ method?: "get" | "post" | "delete";
45
+ requiresConfirmation?: boolean;
46
+ confirmationMessage?: string;
47
+ confirmation?: ActionConfirmation;
48
+ visible_when?: FormCondition;
49
+ disabled_when?: FormCondition;
50
+ loading_when?: FormCondition;
51
+ disabled_reason_field?: string;
52
+ }
53
+ export interface DenseTableBulkAction {
54
+ id: string;
55
+ label: string;
56
+ icon?: string;
57
+ intent?: "default" | "danger";
58
+ href: string;
59
+ method: "post" | "delete";
60
+ requiresConfirmation?: boolean;
61
+ confirmationMessage?: string;
62
+ }
63
+ export interface ActionConfirmation {
64
+ title: string;
65
+ message: string;
66
+ intent?: "danger" | "warning" | "default";
67
+ confirmLabel?: string;
68
+ cancelLabel?: string;
69
+ waitForPolling?: boolean;
70
+ waitingMessage?: string;
71
+ }
72
+ export interface RichStatusValue {
73
+ label: string;
74
+ appearance: "success" | "warning" | "danger" | "info" | "neutral";
75
+ icon?: string;
76
+ }
77
+ export interface LinkGroupItem {
78
+ icon: string;
79
+ href: string | null;
80
+ label: string;
81
+ external?: boolean;
82
+ }
83
+ export interface DenseTableBlockData {
84
+ columns: DenseTableColumnDef[];
85
+ rows: Record<string, unknown>[];
86
+ pagination: DenseTablePagination;
87
+ sort: DenseTableSort;
88
+ filters: {
89
+ available: DenseTableFilterDef[];
90
+ applied: Record<string, string | string[]>;
91
+ };
92
+ rowActions?: DenseTableRowAction[];
93
+ bulkActions?: DenseTableBulkAction[];
94
+ searchPlaceholder?: string;
95
+ emptyState?: {
96
+ icon?: string;
97
+ title?: string;
98
+ description?: string;
99
+ cta?: {
100
+ label: string;
101
+ href: string;
102
+ };
103
+ };
104
+ }
105
+ export interface MetricCardBlockData {
106
+ value: string | number;
107
+ delta?: string;
108
+ deltaDirection?: "positive" | "negative" | "neutral";
109
+ label: string;
110
+ icon?: string;
111
+ href?: string;
112
+ locale?: string;
113
+ compact?: boolean;
114
+ }
115
+ export type EmptyStateVariant = "first-use" | "no-results" | "error" | "permission";
116
+ export interface EmptyStateBlockData {
117
+ variant?: EmptyStateVariant;
118
+ icon?: string;
119
+ description: string;
120
+ cta?: {
121
+ label: string;
122
+ href?: string;
123
+ method?: "get" | "post";
124
+ };
125
+ ctaSecondary?: {
126
+ label: string;
127
+ href: string;
128
+ };
129
+ }
130
+ export type StatusStripTone = "success" | "warning" | "danger" | "neutral";
131
+ export type StatusItemAppearance = "success" | "warning" | "danger" | "info" | "neutral";
132
+ export interface StatusStripItem {
133
+ key: string;
134
+ label: string;
135
+ value: string;
136
+ appearance: StatusItemAppearance;
137
+ tooltip?: string;
138
+ href?: string;
139
+ }
140
+ export interface StatusStripBlockData {
141
+ score?: number;
142
+ tone?: StatusStripTone;
143
+ items: StatusStripItem[];
144
+ }
145
+ export interface DetailPanelFieldDef {
146
+ key: string;
147
+ label: string;
148
+ value: string | number | boolean | null;
149
+ kind?: "text" | "status" | "timestamp" | "boolean" | "link" | "code" | "email";
150
+ copyable?: boolean;
151
+ href?: string;
152
+ }
153
+ export interface DetailPanelSectionDef {
154
+ id: string;
155
+ title: string;
156
+ fields: DetailPanelFieldDef[];
157
+ defaultCollapsed?: boolean;
158
+ actions?: Array<{
159
+ id: string;
160
+ label: string;
161
+ icon: string;
162
+ intent?: "default" | "danger";
163
+ href?: string;
164
+ method?: string;
165
+ requiresConfirmation?: boolean;
166
+ }>;
167
+ }
168
+ export interface DetailPanelBlockData {
169
+ sections: DetailPanelSectionDef[];
170
+ columns?: 1 | 2;
171
+ }
172
+ export interface ActivityTimelineEntry {
173
+ id: string;
174
+ actor: string;
175
+ actorHref?: string;
176
+ action: string;
177
+ detail?: string;
178
+ icon: string;
179
+ color: "success" | "info" | "warning" | "destructive" | "neutral";
180
+ timestamp: number;
181
+ }
182
+ export interface ActivityTimelineBlockData {
183
+ groups: Array<{
184
+ label: string;
185
+ entries: ActivityTimelineEntry[];
186
+ }>;
187
+ hasMore?: boolean;
188
+ loadMoreHref?: string;
189
+ limit?: number;
190
+ }
191
+ export type FormFieldType = "text" | "textarea" | "password" | "email" | "url" | "int" | "float" | "select" | "multiselect" | "radio" | "checkbox" | "switch" | "date" | "datetime" | "duration" | "file" | "entity_picker" | "hidden" | "static" | "header";
192
+ export interface FormCondition {
193
+ field: string;
194
+ operator: "equals" | "not_equals" | "in" | "not_in";
195
+ value: string | string[];
196
+ }
197
+ export interface FormFieldNode {
198
+ kind: "field";
199
+ key: string;
200
+ component: FormFieldType;
201
+ props: {
202
+ label: string;
203
+ placeholder?: string;
204
+ helpText?: string;
205
+ required?: boolean;
206
+ disabled?: boolean;
207
+ readOnly?: boolean;
208
+ options?: Array<{
209
+ value: string;
210
+ label: string;
211
+ }>;
212
+ min?: number;
213
+ max?: number;
214
+ step?: number;
215
+ rows?: number;
216
+ accept?: string;
217
+ multiple?: boolean;
218
+ autocompleteHref?: string;
219
+ visible_when?: FormCondition;
220
+ hidden_when?: FormCondition;
221
+ disabled_when?: FormCondition;
222
+ required_when?: FormCondition;
223
+ };
224
+ }
225
+ export interface FormSectionNode {
226
+ kind: "section";
227
+ id: string;
228
+ label: string;
229
+ defaultCollapsed?: boolean;
230
+ children: FormSchemaNode[];
231
+ }
232
+ export interface FormGroupNode {
233
+ kind: "group";
234
+ id: string;
235
+ columns?: 1 | 2;
236
+ children: FormSchemaNode[];
237
+ }
238
+ export interface FormHeaderNode {
239
+ kind: "header";
240
+ label: string;
241
+ }
242
+ export type FormSchemaNode = FormFieldNode | FormSectionNode | FormGroupNode | FormHeaderNode;
243
+ export interface FormPanelBlockData {
244
+ action: string;
245
+ method: "post" | "put" | "patch";
246
+ schema: FormSchemaNode[];
247
+ values: Record<string, unknown>;
248
+ errors: Record<string, string>;
249
+ meta: {
250
+ submitLabel?: string;
251
+ cancelLabel?: string;
252
+ cancelHref?: string;
253
+ multiStep?: boolean;
254
+ };
255
+ }
256
+ export interface MarkdownPanelBlockData {
257
+ content: string;
258
+ maxHeight?: number;
259
+ }
260
+ export interface CardGridColumnDef {
261
+ key: string;
262
+ label: string;
263
+ kind?: "text" | "status" | "badge" | "boolean" | "timestamp" | "number";
264
+ }
265
+ export interface CardGridBlockData {
266
+ columns: CardGridColumnDef[];
267
+ rows: Record<string, unknown>[];
268
+ variant?: "default" | "store" | "connector";
269
+ emptyState?: {
270
+ icon?: string;
271
+ title?: string;
272
+ description?: string;
273
+ cta?: {
274
+ label: string;
275
+ href: string;
276
+ };
277
+ };
278
+ }
279
+ export interface ActionGridItem {
280
+ id: string;
281
+ icon: string;
282
+ title: string;
283
+ description: string;
284
+ actionUrl: string;
285
+ actionMethod?: "post" | "delete";
286
+ confirmText?: string;
287
+ sesskey?: string;
288
+ }
289
+ export interface ActionGridBlockData {
290
+ items: ActionGridItem[];
291
+ flash?: {
292
+ success: boolean;
293
+ message: string;
294
+ } | null;
295
+ }
296
+ export interface LinkListItem {
297
+ label: string;
298
+ href: string | null;
299
+ icon?: string;
300
+ description?: string;
301
+ external?: boolean;
302
+ }
303
+ export interface LinkListBlockData {
304
+ items: LinkListItem[];
305
+ }
306
+ export interface SentenceBuilderRule {
307
+ id: string;
308
+ field: string;
309
+ operator: string;
310
+ value: string;
311
+ }
312
+ export interface SentenceBuilderGroup {
313
+ id: string;
314
+ connector: "and" | "or";
315
+ rules: SentenceBuilderRule[];
316
+ }
317
+ export interface SentenceBuilderBlockData {
318
+ groups: SentenceBuilderGroup[];
319
+ availableFields: Array<{
320
+ key: string;
321
+ label: string;
322
+ operators: string[];
323
+ }>;
324
+ audienceEstimate?: {
325
+ matched: number;
326
+ total: number;
327
+ };
328
+ }
329
+ export interface ConditionRule {
330
+ id: string;
331
+ field: string;
332
+ operator: string;
333
+ value: string;
334
+ }
335
+ export interface ConditionGroup {
336
+ id: string;
337
+ logic: "and" | "or";
338
+ rules: ConditionRule[];
339
+ groups: ConditionGroup[];
340
+ }
341
+ export interface ConditionTreeBlockData {
342
+ root: ConditionGroup;
343
+ availableFields: Array<{
344
+ key: string;
345
+ label: string;
346
+ type: string;
347
+ }>;
348
+ availableOperators: Array<{
349
+ key: string;
350
+ label: string;
351
+ }>;
352
+ }
353
+ export interface TabbedPanelTab {
354
+ key: string;
355
+ label: string;
356
+ icon?: string;
357
+ blocks: import("@/contracts/page-contract").BlockDescriptor[];
358
+ }
359
+ export interface TabbedPanelBlockData {
360
+ tabs: TabbedPanelTab[];
361
+ defaultTab?: string;
362
+ }
363
+ export interface FlowEditorNode {
364
+ id: string;
365
+ type: "trigger" | "condition" | "action";
366
+ label: string;
367
+ description?: string;
368
+ position: {
369
+ x: number;
370
+ y: number;
371
+ };
372
+ }
373
+ export interface FlowEditorEdge {
374
+ id: string;
375
+ source: string;
376
+ target: string;
377
+ label?: string;
378
+ }
379
+ export interface FlowEditorBlockData {
380
+ nodes: FlowEditorNode[];
381
+ edges: FlowEditorEdge[];
382
+ }
383
+ export interface FormBuilderField {
384
+ id: string;
385
+ type: "text" | "textarea" | "select" | "checkbox" | "date" | "file" | "rating" | "email" | "number";
386
+ label: string;
387
+ required?: boolean;
388
+ placeholder?: string;
389
+ options?: string[];
390
+ }
391
+ export interface FormBuilderBlockData {
392
+ fields: FormBuilderField[];
393
+ availableTypes: Array<{
394
+ type: string;
395
+ label: string;
396
+ icon: string;
397
+ }>;
398
+ }
399
+ //# sourceMappingURL=block-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block-data.d.ts","sourceRoot":"","sources":["../../src/contracts/block-data.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EACJ,MAAM,GACN,QAAQ,GACR,OAAO,GACP,SAAS,GACT,WAAW,GACX,MAAM,GACN,aAAa,GACb,MAAM,GACN,YAAY,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,GAAG,aAAa,GAAG,YAAY,CAAC;IAC9C,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAID,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAID,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,UAAU,EAAE,oBAAoB,CAAC;IACjC,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE;QACP,SAAS,EAAE,mBAAmB,EAAE,CAAC;QACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;KAC5C,CAAC;IACF,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACnC,WAAW,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,GAAG,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KACvC,CAAC;CACH;AAID,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAID,MAAM,MAAM,iBAAiB,GACzB,WAAW,GACX,YAAY,GACZ,OAAO,GACP,YAAY,CAAC;AAEjB,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;KACzB,CAAC;IACF,YAAY,CAAC,EAAE;QACb,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAID,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC3E,MAAM,MAAM,oBAAoB,GAC5B,SAAS,GACT,SAAS,GACT,QAAQ,GACR,MAAM,GACN,SAAS,CAAC;AAEd,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,oBAAoB,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAID,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IACxC,IAAI,CAAC,EACD,MAAM,GACN,QAAQ,GACR,WAAW,GACX,SAAS,GACT,MAAM,GACN,MAAM,GACN,OAAO,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;QAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,oBAAoB,CAAC,EAAE,OAAO,CAAC;KAChC,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAClC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;CACjB;AAID,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;IAClE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,KAAK,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,qBAAqB,EAAE,CAAC;KAClC,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,UAAU,GACV,UAAU,GACV,OAAO,GACP,KAAK,GACL,KAAK,GACL,OAAO,GACP,QAAQ,GACR,aAAa,GACb,OAAO,GACP,UAAU,GACV,QAAQ,GACR,MAAM,GACN,UAAU,GACV,UAAU,GACV,MAAM,GACN,eAAe,GACf,QAAQ,GACR,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,GAAG,YAAY,GAAG,IAAI,GAAG,QAAQ,CAAC;IACpD,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,aAAa,CAAC;IACzB,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,OAAO,CAAC,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAClD,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,YAAY,CAAC,EAAE,aAAa,CAAC;QAC7B,WAAW,CAAC,EAAE,aAAa,CAAC;QAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,cAAc,GACtB,aAAa,GACb,eAAe,GACf,aAAa,GACb,cAAc,CAAC;AAEnB,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;IACjC,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,IAAI,EAAE;QACJ,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;CACH;AAID,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;CACzE;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,WAAW,CAAC;IAC5C,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,GAAG,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KACvC,CAAC;CACH;AAID,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACtD;AAID,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAID,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,KAAK,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,eAAe,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAC5E,gBAAgB,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACvD;AAID,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,cAAc,CAAC;IACrB,eAAe,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrE,kBAAkB,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3D;AAID,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,2BAA2B,EAAE,eAAe,EAAE,CAAC;CAC/D;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAID,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EACA,MAAM,GACN,UAAU,GACV,QAAQ,GACR,UAAU,GACV,MAAM,GACN,MAAM,GACN,QAAQ,GACR,OAAO,GACP,QAAQ,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,cAAc,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtE"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Connectors VOs — TypeScript mirror of PHP VOs in
3
+ * `classes/extensions/core/connectors/connector/*`.
4
+ */
5
+ export type ConnectorStatus = "unconfigured" | "configured" | "connected" | "degraded" | "disconnected";
6
+ export interface CredentialField {
7
+ key: string;
8
+ label: string;
9
+ type: "text" | "password" | "url" | "select";
10
+ required?: boolean;
11
+ placeholder?: string | null;
12
+ }
13
+ export interface HealthCheckResult {
14
+ success: boolean;
15
+ latency_ms: number | null;
16
+ error_message: string | null;
17
+ resulting_status: string;
18
+ checked_at: number;
19
+ }
20
+ export interface ConnectorListItem {
21
+ id: number;
22
+ fullname: string;
23
+ connector_type: string;
24
+ extension: string;
25
+ status: ConnectorStatus;
26
+ enabled: boolean;
27
+ last_check_at: number | null;
28
+ latency_ms: number | null;
29
+ }
30
+ export interface ConnectorDetail {
31
+ id: number;
32
+ fullname: string;
33
+ description: string | null;
34
+ connector_type: string;
35
+ endpoint: string | null;
36
+ extension: string;
37
+ status: ConnectorStatus;
38
+ enabled: boolean;
39
+ created_at: number;
40
+ modified_at: number;
41
+ credential_fields: CredentialField[];
42
+ health_history: HealthCheckResult[];
43
+ }
44
+ export interface ConnectorTypeInfo {
45
+ type: string;
46
+ name: string;
47
+ extension: string;
48
+ credential_fields: CredentialField[];
49
+ }
50
+ //# sourceMappingURL=connectors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectors.d.ts","sourceRoot":"","sources":["../../src/contracts/connectors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,YAAY,GACZ,WAAW,GACX,UAAU,GACV,cAAc,CAAC;AAEnB,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,eAAe,EAAE,CAAC;IACrC,cAAc,EAAE,iBAAiB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,eAAe,EAAE,CAAC;CACtC"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Navigation contract — typed shape for the `navigation` Inertia shared prop.
3
+ *
4
+ * PHP serializes this from navigation_registry during boot().
5
+ * Frontend reads it from usePage().props.navigation.
6
+ *
7
+ * @see ADR-807 ref/shell-and-navigation §4
8
+ * @see NV-05-ux-shell-sidebar.md §1.3
9
+ */
10
+ /** Level 3 — leaf navigation item */
11
+ export interface NavigationChild {
12
+ /** Unique key, e.g. "segments.rules.active" */
13
+ key: string;
14
+ /** Localized display label */
15
+ label: string;
16
+ /** Full URL (resolved by server, includes Moodle base). Null for non-leaf nodes. */
17
+ href?: string;
18
+ /** Server-resolved active state (true when this item is the current page) */
19
+ active: boolean;
20
+ }
21
+ /** Level 2 — navigable item, optionally has L3 children */
22
+ export interface NavigationItem {
23
+ /** Unique key, e.g. "segments.rules" */
24
+ key: string;
25
+ /** Localized display label */
26
+ label: string;
27
+ /** Full URL. Null for section-only nodes without a landing page. */
28
+ href?: string;
29
+ /** Server-resolved active state */
30
+ active: boolean;
31
+ /** Optional badge — numeric count or status string, e.g. 3 or "new" */
32
+ badge?: number | string;
33
+ /** Badge display variant: 'count' (muted text, default) or 'alert' (red pill like WooCommerce). */
34
+ badgeVariant?: "count" | "alert";
35
+ /** L3 children — empty array if none */
36
+ children: NavigationChild[];
37
+ }
38
+ /** Level 1 — section group with icon, not directly navigable */
39
+ export interface NavigationSection {
40
+ /** Unique key, e.g. "segments" */
41
+ key: string;
42
+ /** Localized display label */
43
+ label: string;
44
+ /**
45
+ * Lucide icon name (kebab-case), e.g. "filter", "plug", "git-branch".
46
+ * Sidebar renders it via dynamic Lucide import or icon map.
47
+ */
48
+ icon: string;
49
+ /** Group identifier for visual separators: "main" | "extensions" | "system" */
50
+ group?: "main" | "extensions" | "system";
51
+ /** L2 items in this section */
52
+ items: NavigationItem[];
53
+ }
54
+ /** Full navigation payload sent as Inertia shared prop (legacy shape) */
55
+ export interface NavigationPayload {
56
+ sections: NavigationSection[];
57
+ /**
58
+ * Server-resolved key of the currently active item.
59
+ * Used by the sidebar for highlight — client does not do URL matching.
60
+ */
61
+ activeKey: string;
62
+ }
63
+ /**
64
+ * Unified node for the 3-level navigation tree.
65
+ *
66
+ * Can represent any level: group (N1), section (N2), or item (N3).
67
+ * Mirrors the PHP navigation_node VO.
68
+ */
69
+ /** Entity types for automatic icon resolution when no explicit icon is set. */
70
+ export type NavigationEntityType = "connector" | "workflow" | "segment" | "instancegroup" | "condition" | "compliance" | "offering" | "order" | "course" | "form" | "certificate";
71
+ export interface NavigationNode {
72
+ key: string;
73
+ label: string;
74
+ icon?: string;
75
+ /** Entity type for automatic icon resolution (CC-based). Overrides depth fallback. */
76
+ entityType?: NavigationEntityType;
77
+ href?: string;
78
+ badge?: string | number;
79
+ /** Badge display variant: 'count' (muted text, default) or 'alert' (red pill like WooCommerce). */
80
+ badgeVariant?: "count" | "alert";
81
+ active?: boolean;
82
+ /** When true, clicking replaces sidebar with this node's children + back. */
83
+ drilldown?: boolean;
84
+ /** When true, group renders with a toggle to expand/collapse its content. */
85
+ collapsible?: boolean;
86
+ /** Whether a collapsible group starts expanded (default: false). */
87
+ defaultOpen?: boolean;
88
+ /** CSS color for status dot shown next to drilldown title (e.g. 'var(--success)'). */
89
+ statusColor?: string;
90
+ children?: NavigationNode[];
91
+ }
92
+ /** Navigation payload using the unified tree model */
93
+ export interface NavigationTreePayload {
94
+ tree: NavigationNode[];
95
+ activeKey: string;
96
+ /** Stack of drilled-down node keys (for ← back navigation). */
97
+ drilldownStack?: string[];
98
+ /** Persistent footer items (Settings, Help). */
99
+ footer: NavigationNode[];
100
+ }
101
+ //# sourceMappingURL=navigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/contracts/navigation.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,qCAAqC;AACrC,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,2DAA2D;AAC3D,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,mGAAmG;IACnG,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACjC,wCAAwC;IACxC,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED,gEAAgE;AAChE,MAAM,WAAW,iBAAiB;IAChC,kCAAkC;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ,CAAC;IACzC,+BAA+B;IAC/B,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,yEAAyE;AACzE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD;;;;;GAKG;AACH,+EAA+E;AAC/E,MAAM,MAAM,oBAAoB,GAC5B,WAAW,GACX,UAAU,GACV,SAAS,GACT,eAAe,GACf,WAAW,GACX,YAAY,GACZ,UAAU,GACV,OAAO,GACP,QAAQ,GACR,MAAM,GACN,aAAa,CAAC;AAElB,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sFAAsF;IACtF,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,mGAAmG;IACnG,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oEAAoE;IACpE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sFAAsF;IACtF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED,sDAAsD;AACtD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,gDAAgD;IAChD,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B"}