@lattice-php/lattice 0.18.0 → 0.20.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 (255) hide show
  1. package/README.md +1 -1
  2. package/dist/core/index.js +3 -3
  3. package/dist/core/nodes.d.ts +5 -0
  4. package/dist/core/nodes.js +8 -1
  5. package/dist/core/nodes.js.map +1 -1
  6. package/dist/core/renderer.js +1 -3
  7. package/dist/core/renderer.js.map +1 -1
  8. package/dist/core/types.d.ts +16 -4
  9. package/dist/create-app.d.ts +31 -3
  10. package/dist/create-app.js +48 -10
  11. package/dist/create-app.js.map +1 -1
  12. package/dist/effects/registry.d.ts +3 -3
  13. package/dist/effects/registry.js +4 -4
  14. package/dist/effects/registry.js.map +1 -1
  15. package/dist/events/event-names.d.ts +0 -3
  16. package/dist/events/event-names.js +0 -3
  17. package/dist/events/event-names.js.map +1 -1
  18. package/dist/form/components/base/field.d.ts +2 -2
  19. package/dist/form/components/base/field.js +2 -2
  20. package/dist/form/components/base/field.js.map +1 -1
  21. package/dist/form/components/fields/color-picker-field.d.ts +2 -0
  22. package/dist/form/components/fields/color-picker-field.js +57 -0
  23. package/dist/form/components/fields/color-picker-field.js.map +1 -0
  24. package/dist/form/components/fields/date-input.js +1 -1
  25. package/dist/form/components/fields/date-picker-field.js +1 -1
  26. package/dist/form/components/fields/date-time-input.js +1 -1
  27. package/dist/form/components/fields/file-upload.js +7 -12
  28. package/dist/form/components/fields/file-upload.js.map +1 -1
  29. package/dist/form/components/fields/number-input.js +1 -1
  30. package/dist/form/components/fields/rich-editor-field.js +36 -275
  31. package/dist/form/components/fields/rich-editor-field.js.map +1 -1
  32. package/dist/form/components/fields/row-action-menu.js +2 -2
  33. package/dist/form/components/fields/row-action-menu.js.map +1 -1
  34. package/dist/form/components/fields/row-actions.js +3 -1
  35. package/dist/form/components/fields/row-actions.js.map +1 -1
  36. package/dist/form/components/fields/row-item.js +2 -1
  37. package/dist/form/components/fields/row-item.js.map +1 -1
  38. package/dist/form/components/fields/select.js +59 -16
  39. package/dist/form/components/fields/select.js.map +1 -1
  40. package/dist/form/components/fields/table-rows.js +5 -4
  41. package/dist/form/components/fields/table-rows.js.map +1 -1
  42. package/dist/form/components/fields/text-input.js +8 -1
  43. package/dist/form/components/fields/text-input.js.map +1 -1
  44. package/dist/form/components/fields/time-input.js +1 -1
  45. package/dist/form/components/index.d.ts +1 -0
  46. package/dist/form/components/index.js +2 -1
  47. package/dist/form/embed.d.ts +1 -0
  48. package/dist/form/embed.js +2 -1
  49. package/dist/form/hooks/use-form-resolver.js.map +1 -1
  50. package/dist/form/index.js +2 -1
  51. package/dist/form/lib/conditions.d.ts +4 -10
  52. package/dist/form/lib/conditions.js.map +1 -1
  53. package/dist/form/lib/field-props.d.ts +4 -18
  54. package/dist/form/lib/field-props.js.map +1 -1
  55. package/dist/form/plugin.js +2 -0
  56. package/dist/form/plugin.js.map +1 -1
  57. package/dist/form/rich-editor/builtins.d.ts +6 -0
  58. package/dist/form/rich-editor/builtins.js +400 -0
  59. package/dist/form/rich-editor/builtins.js.map +1 -0
  60. package/dist/form/rich-editor/index.d.ts +7 -0
  61. package/dist/form/rich-editor/index.js +3 -0
  62. package/dist/form/rich-editor/registry.d.ts +67 -0
  63. package/dist/form/rich-editor/registry.js +79 -0
  64. package/dist/form/rich-editor/registry.js.map +1 -0
  65. package/dist/form/rich-editor/toolbar-button.d.ts +12 -0
  66. package/dist/form/rich-editor/toolbar-button.js +28 -0
  67. package/dist/form/rich-editor/toolbar-button.js.map +1 -0
  68. package/dist/form/types.d.ts +1 -6
  69. package/dist/format/date-time.d.ts +3 -2
  70. package/dist/format/date-time.js.map +1 -1
  71. package/dist/i18n/backend.js +1 -1
  72. package/dist/i18n/date-time.d.ts +3 -2
  73. package/dist/i18n/date-time.js.map +1 -1
  74. package/dist/i18n/index.js +3 -2
  75. package/dist/i18n/instance.js +1 -1
  76. package/dist/i18n/page-props.d.ts +3 -2
  77. package/dist/i18n/page-props.js +1 -15
  78. package/dist/i18n/page-props.js.map +1 -1
  79. package/dist/i18n/shared-props.d.ts +7 -0
  80. package/dist/i18n/shared-props.js +25 -0
  81. package/dist/i18n/shared-props.js.map +1 -0
  82. package/dist/icons/icon-renderer.js.map +1 -1
  83. package/dist/index.d.ts +5 -3
  84. package/dist/index.js +7 -6
  85. package/dist/lattice.css +119 -57
  86. package/dist/layout/components/breadcrumbs.js +3 -1
  87. package/dist/layout/components/breadcrumbs.js.map +1 -1
  88. package/dist/layout/components/callouts.js +1 -1
  89. package/dist/lib/color.d.ts +9 -0
  90. package/dist/lib/color.js +48 -0
  91. package/dist/lib/color.js.map +1 -0
  92. package/dist/notifications/api.d.ts +6 -6
  93. package/dist/notifications/api.js.map +1 -1
  94. package/dist/notifications/types.d.ts +2 -10
  95. package/dist/provider-base.js +1 -1
  96. package/dist/realtime/build-effects.js +5 -5
  97. package/dist/realtime/build-effects.js.map +1 -1
  98. package/dist/realtime/listeners.d.ts +2 -2
  99. package/dist/realtime/listeners.js.map +1 -1
  100. package/dist/realtime/subscriptions.d.ts +2 -2
  101. package/dist/realtime/subscriptions.js.map +1 -1
  102. package/dist/registry.js.map +1 -1
  103. package/dist/table/components/bulk-bar.js +5 -5
  104. package/dist/table/components/bulk-bar.js.map +1 -1
  105. package/dist/table/components/cells/badge-cell.js +4 -1
  106. package/dist/table/components/cells/badge-cell.js.map +1 -1
  107. package/dist/table/components/cells/boolean-cell.js +3 -1
  108. package/dist/table/components/cells/boolean-cell.js.map +1 -1
  109. package/dist/table/components/cells/icon-cell.js +5 -2
  110. package/dist/table/components/cells/icon-cell.js.map +1 -1
  111. package/dist/table/components/cells/image-cell.js +8 -9
  112. package/dist/table/components/cells/image-cell.js.map +1 -1
  113. package/dist/table/components/cells/money-cell.js +9 -1
  114. package/dist/table/components/cells/money-cell.js.map +1 -1
  115. package/dist/table/components/cells/number-cell.js +9 -1
  116. package/dist/table/components/cells/number-cell.js.map +1 -1
  117. package/dist/table/components/cells/text-cell.js +4 -1
  118. package/dist/table/components/cells/text-cell.js.map +1 -1
  119. package/dist/table/components/column-filter-control.js +25 -32
  120. package/dist/table/components/column-filter-control.js.map +1 -1
  121. package/dist/table/components/column-header.d.ts +3 -3
  122. package/dist/table/components/column-header.js +5 -3
  123. package/dist/table/components/column-header.js.map +1 -1
  124. package/dist/table/components/column-visibility-menu.js +6 -11
  125. package/dist/table/components/column-visibility-menu.js.map +1 -1
  126. package/dist/table/components/filter-bar.d.ts +2 -2
  127. package/dist/table/components/filter-bar.js +13 -22
  128. package/dist/table/components/filter-bar.js.map +1 -1
  129. package/dist/table/components/filter-controls.d.ts +2 -1
  130. package/dist/table/components/filter-controls.js +36 -35
  131. package/dist/table/components/filter-controls.js.map +1 -1
  132. package/dist/table/components/filter-value-input.d.ts +0 -1
  133. package/dist/table/components/filter-value-input.js +21 -20
  134. package/dist/table/components/filter-value-input.js.map +1 -1
  135. package/dist/table/components/pagination.js +16 -20
  136. package/dist/table/components/pagination.js.map +1 -1
  137. package/dist/table/components/sort-bar.d.ts +3 -3
  138. package/dist/table/components/sort-bar.js +11 -12
  139. package/dist/table/components/sort-bar.js.map +1 -1
  140. package/dist/table/components/table-search.d.ts +9 -0
  141. package/dist/table/components/table-search.js +75 -0
  142. package/dist/table/components/table-search.js.map +1 -0
  143. package/dist/table/components/table.js +72 -19
  144. package/dist/table/components/table.js.map +1 -1
  145. package/dist/table/hooks/use-expanded-rows.d.ts +8 -0
  146. package/dist/table/hooks/use-expanded-rows.js +24 -0
  147. package/dist/table/hooks/use-expanded-rows.js.map +1 -0
  148. package/dist/table/hooks/use-table.d.ts +5 -3
  149. package/dist/table/hooks/use-table.js +56 -44
  150. package/dist/table/hooks/use-table.js.map +1 -1
  151. package/dist/table/lib/payload.d.ts +3 -2
  152. package/dist/table/lib/payload.js +16 -10
  153. package/dist/table/lib/payload.js.map +1 -1
  154. package/dist/table/lib/query.d.ts +5 -5
  155. package/dist/table/lib/query.js +20 -18
  156. package/dist/table/lib/query.js.map +1 -1
  157. package/dist/table/types.d.ts +3 -26
  158. package/dist/toast/callout.js +1 -3
  159. package/dist/toast/callout.js.map +1 -1
  160. package/dist/toast/toast.d.ts +1 -5
  161. package/dist/toast/toast.js +2 -7
  162. package/dist/toast/toast.js.map +1 -1
  163. package/dist/toast/toaster.js +2 -2
  164. package/dist/toast/toaster.js.map +1 -1
  165. package/dist/types/generated.d.ts +263 -188
  166. package/dist/ui/affix-group.d.ts +2 -1
  167. package/dist/ui/affix-group.js +9 -7
  168. package/dist/ui/affix-group.js.map +1 -1
  169. package/dist/ui/avatar.d.ts +3 -0
  170. package/dist/ui/avatar.js +52 -0
  171. package/dist/ui/avatar.js.map +1 -0
  172. package/dist/ui/button.d.ts +3 -1
  173. package/dist/ui/button.js +10 -3
  174. package/dist/ui/button.js.map +1 -1
  175. package/dist/ui/chart-view.js +161 -11
  176. package/dist/ui/chart-view.js.map +1 -1
  177. package/dist/ui/click-behavior.d.ts +1 -1
  178. package/dist/ui/click-behavior.js.map +1 -1
  179. package/dist/ui/collapsible.js +1 -1
  180. package/dist/ui/color-picker.d.ts +8 -0
  181. package/dist/ui/color-picker.js +59 -0
  182. package/dist/ui/color-picker.js.map +1 -0
  183. package/dist/ui/combobox.d.ts +11 -2
  184. package/dist/ui/combobox.js +51 -8
  185. package/dist/ui/combobox.js.map +1 -1
  186. package/dist/ui/copyable-text.d.ts +7 -0
  187. package/dist/ui/copyable-text.js +21 -13
  188. package/dist/ui/copyable-text.js.map +1 -1
  189. package/dist/ui/fragment.js +1 -1
  190. package/dist/ui/fragment.js.map +1 -1
  191. package/dist/ui/heading.js +39 -21
  192. package/dist/ui/heading.js.map +1 -1
  193. package/dist/ui/icon-button.d.ts +22 -0
  194. package/dist/ui/icon-button.js +51 -0
  195. package/dist/ui/icon-button.js.map +1 -0
  196. package/dist/ui/icon.js +10 -11
  197. package/dist/ui/icon.js.map +1 -1
  198. package/dist/ui/image-preview.d.ts +12 -0
  199. package/dist/ui/image-preview.js +65 -0
  200. package/dist/ui/image-preview.js.map +1 -0
  201. package/dist/ui/image.d.ts +3 -0
  202. package/dist/ui/image.js +21 -0
  203. package/dist/ui/image.js.map +1 -0
  204. package/dist/ui/index.d.ts +2 -1
  205. package/dist/ui/index.js +4 -3
  206. package/dist/ui/info-tooltip.js +1 -1
  207. package/dist/ui/info-tooltip.js.map +1 -1
  208. package/dist/ui/input.d.ts +3 -1
  209. package/dist/ui/input.js +2 -2
  210. package/dist/ui/input.js.map +1 -1
  211. package/dist/ui/modal.js +14 -2
  212. package/dist/ui/modal.js.map +1 -1
  213. package/dist/ui/native-select.d.ts +10 -0
  214. package/dist/ui/native-select.js +23 -0
  215. package/dist/ui/native-select.js.map +1 -0
  216. package/dist/ui/plugin.js +11 -1
  217. package/dist/ui/plugin.js.map +1 -1
  218. package/dist/ui/progress.d.ts +3 -0
  219. package/dist/ui/progress.js +114 -0
  220. package/dist/ui/progress.js.map +1 -0
  221. package/dist/ui/section.js +1 -1
  222. package/dist/ui/separator.d.ts +3 -0
  223. package/dist/ui/separator.js +15 -0
  224. package/dist/ui/separator.js.map +1 -0
  225. package/dist/ui/text.js +5 -10
  226. package/dist/ui/text.js.map +1 -1
  227. package/dist/ui/tooltip.js +1 -1
  228. package/dist/ui/tree-context.d.ts +33 -0
  229. package/dist/ui/tree-context.js +137 -0
  230. package/dist/ui/tree-context.js.map +1 -0
  231. package/dist/ui/tree.d.ts +19 -0
  232. package/dist/ui/tree.js +187 -0
  233. package/dist/ui/tree.js.map +1 -0
  234. package/dist-standalone/chunks/chart-view-wJmnVu7L.js +36 -0
  235. package/dist-standalone/chunks/date-picker-field-VbH9xrQO.js +1 -0
  236. package/dist-standalone/chunks/dist-PaT1gYi_.js +2 -0
  237. package/dist-standalone/chunks/jsx-runtime-Drll_-DD.js +1 -0
  238. package/dist-standalone/chunks/locale-CXqr7LPR.js +1 -0
  239. package/dist-standalone/chunks/notifications-echo-DsfNc4Ge.js +1 -0
  240. package/dist-standalone/chunks/page-props-AIa5UR6n.js +1 -0
  241. package/dist-standalone/chunks/react-B8IZ02wI.js +1 -0
  242. package/dist-standalone/chunks/rich-editor-field-DLQTyt36.js +154 -0
  243. package/dist-standalone/chunks/subscriptions-DY2tj9Im.js +1 -0
  244. package/dist-standalone/chunks/test-id-Dh3L6Gfh.js +1 -0
  245. package/dist-standalone/chunks/use-effect-dispatcher-feEs0GCP.js +97 -0
  246. package/dist-standalone/chunks/with-selector-BwDoCrJJ.js +1 -0
  247. package/dist-standalone/lattice.css +3 -0
  248. package/dist-standalone/lattice.js +66 -0
  249. package/dist-standalone/manifest.json +20 -0
  250. package/dist-standalone/sprite.svg +1 -0
  251. package/package.json +11 -2
  252. package/resources/icons/code-xml.svg +17 -0
  253. package/resources/icons/heading.svg +17 -0
  254. package/dist/action/hooks/use-click-behavior.d.ts +0 -3
  255. package/dist/action/hooks/use-click-behavior.js +0 -3
@@ -1,7 +1,8 @@
1
+ import { Node } from '../core/types.js';
1
2
  export type Action = {
2
3
  confirmation: Confirmation | null;
3
4
  endpoint: string | null;
4
- form: WireNode | null;
5
+ form: Node<"form"> | null;
5
6
  icon: string | null;
6
7
  label: string | null;
7
8
  lazyForm: boolean;
@@ -25,12 +26,17 @@ export type Affix = {
25
26
  readonly text: string | null;
26
27
  };
27
28
  export type Align = "center" | "left" | "start" | "stretch";
29
+ export type Avatar = {
30
+ name: string | null;
31
+ size: Size;
32
+ src: string | null;
33
+ };
28
34
  export type Badge = {
29
35
  label: string;
30
36
  };
31
37
  export type BadgeColumn = {
32
38
  align: ColumnAlign;
33
- colors: Record<string | number, string> | null;
39
+ colors: Record<string | number, Color> | null;
34
40
  filter: ColumnFilter | null;
35
41
  hiddenByDefault: boolean;
36
42
  label: string | null;
@@ -58,12 +64,7 @@ export type BrowserToken = {
58
64
  export type Builder = {
59
65
  addLabel: string | null;
60
66
  columnWidth: ColumnWidth;
61
- conditions: {
62
- visible?: Condition[];
63
- required?: Condition[];
64
- readOnly?: Condition[];
65
- disabled?: Condition[];
66
- } | null;
67
+ conditions: FieldConditions | null;
67
68
  defaultItems: number;
68
69
  dependsOnAny: boolean;
69
70
  dependsOnKeys: string[] | null;
@@ -89,7 +90,7 @@ export type Builder = {
89
90
  export type BulkAction = {
90
91
  confirmation: Confirmation | null;
91
92
  endpoint: string | null;
92
- form: WireNode | null;
93
+ form: Node<"form"> | null;
93
94
  icon: string | null;
94
95
  label: string | null;
95
96
  lazyForm: boolean;
@@ -98,7 +99,7 @@ export type BulkAction = {
98
99
  variant: ButtonVariant | null;
99
100
  };
100
101
  export type Button = {
101
- action: WireNode | null;
102
+ action: Node<"action"> | null;
102
103
  buttonType: ButtonType;
103
104
  effects: Effect[];
104
105
  href: string | null;
@@ -110,14 +111,11 @@ export type Button = {
110
111
  export type ButtonType = "button" | "submit" | "reset";
111
112
  export type ButtonVariant = "default" | "destructive" | "ghost" | "info" | "link" | "outline" | "secondary" | "success";
112
113
  export type Callout = {
113
- title: string | null;
114
- dismissible: boolean;
115
- action: WireNode | null;
116
114
  variant: Variant;
117
115
  message: string;
118
- };
119
- export type CalloutEffect = {
120
- readonly callout: Callout;
116
+ title: string | null;
117
+ dismissible: boolean;
118
+ action: Node | null;
121
119
  };
122
120
  export type Callouts = Record<string, never>;
123
121
  export type Card = {
@@ -144,12 +142,14 @@ export type Chart = {
144
142
  export type ChartSeries = {
145
143
  readonly type: ChartSeriesType;
146
144
  readonly dataKey: string;
147
- readonly name: string | null;
148
- readonly color: string | null;
145
+ readonly name: string;
146
+ readonly color: Color | null;
149
147
  readonly stackId: string | null;
150
148
  readonly nameKey: string | null;
149
+ readonly innerRadius: string;
150
+ readonly maxValue: number | null;
151
151
  };
152
- export type ChartSeriesType = "area" | "bar" | "line" | "pie";
152
+ export type ChartSeriesType = "area" | "bar" | "distribution" | "gauge" | "line" | "pie";
153
153
  export type ChatBox = {
154
154
  fill: boolean;
155
155
  historyEndpoint: string | null;
@@ -161,18 +161,13 @@ export type ChatBox = {
161
161
  export type ChatMessage = {
162
162
  readonly id: string;
163
163
  readonly role: ChatRole;
164
- readonly parts: WireNode[];
164
+ readonly parts: Node[];
165
165
  };
166
166
  export type ChatRole = "user" | "assistant" | "system";
167
167
  export type Checkbox = {
168
168
  autoFocus: boolean;
169
169
  columnWidth: ColumnWidth;
170
- conditions: {
171
- visible?: Condition[];
172
- required?: Condition[];
173
- readOnly?: Condition[];
174
- disabled?: Condition[];
175
- } | null;
170
+ conditions: FieldConditions | null;
176
171
  dependsOnAny: boolean;
177
172
  dependsOnKeys: string[] | null;
178
173
  disabled: boolean;
@@ -191,12 +186,7 @@ export type Checkbox = {
191
186
  export type Choice = {
192
187
  autoFocus: boolean;
193
188
  columnWidth: ColumnWidth;
194
- conditions: {
195
- visible?: Condition[];
196
- required?: Condition[];
197
- readOnly?: Condition[];
198
- disabled?: Condition[];
199
- } | null;
189
+ conditions: FieldConditions | null;
200
190
  dependsOnAny: boolean;
201
191
  dependsOnKeys: string[] | null;
202
192
  disabled: boolean;
@@ -213,16 +203,41 @@ export type Choice = {
213
203
  tooltip: string | null;
214
204
  value: unknown;
215
205
  };
216
- export type CloseModalEffect = {
206
+ export type CloseModal = {
217
207
  readonly modal: string | null;
218
208
  };
219
209
  export type Collapsible = {
220
210
  collapsed: boolean;
221
211
  rememberState: boolean;
222
212
  tooltip: string | null;
223
- trigger: WireNode[];
213
+ trigger: Node[];
214
+ };
215
+ export type Color = {
216
+ readonly kind: ColorKind;
217
+ readonly value: string;
218
+ readonly dark: string | null;
219
+ };
220
+ export type ColorKind = "named" | "css";
221
+ export type ColorName = "default" | "muted" | "primary" | "success" | "info" | "warning" | "danger" | "gray" | "red" | "orange" | "yellow" | "green" | "blue" | "purple";
222
+ export type ColorPicker = {
223
+ columnWidth: ColumnWidth;
224
+ conditions: FieldConditions | null;
225
+ dependsOnAny: boolean;
226
+ dependsOnKeys: string[] | null;
227
+ disabled: boolean;
228
+ editablePrefill: boolean;
229
+ helperText: string | null;
230
+ label: string | null;
231
+ name: string;
232
+ palette: string[];
233
+ placeholder: string | null;
234
+ prefillRefreshOn: string[] | null;
235
+ prefillResetOn: string[] | null;
236
+ readOnly: boolean;
237
+ required: boolean;
238
+ tooltip: string | null;
239
+ value: unknown;
224
240
  };
225
- export type Color = "default" | "muted" | "primary" | "success" | "info" | "warning" | "danger";
226
241
  export type ColumnAlign = "start" | "center" | "end";
227
242
  export type ColumnFilter = {
228
243
  readonly type: FilterType;
@@ -232,7 +247,7 @@ export type ColumnFilter = {
232
247
  readonly options: Option[];
233
248
  readonly multiple: boolean;
234
249
  readonly searchable: boolean;
235
- readonly clauseOptions?: ColumnFilterOption[];
250
+ readonly clauseOptions: ColumnFilterOption[];
236
251
  };
237
252
  export type ColumnFilterOption = {
238
253
  readonly label: string;
@@ -259,6 +274,7 @@ export type ComponentPropsMap = {
259
274
  action: Action;
260
275
  "action.bulk": BulkAction;
261
276
  "action.group": ActionGroup;
277
+ avatar: Avatar;
262
278
  badge: Badge;
263
279
  breadcrumbs: Breadcrumbs;
264
280
  button: Button;
@@ -273,6 +289,7 @@ export type ComponentPropsMap = {
273
289
  "field.builder": Builder;
274
290
  "field.checkbox": Checkbox;
275
291
  "field.choice": Choice;
292
+ "field.color-picker": ColorPicker;
276
293
  "field.date-input": DateInput;
277
294
  "field.date-time-input": DateTimeInput;
278
295
  "field.file-upload": FileUpload;
@@ -293,16 +310,19 @@ export type ComponentPropsMap = {
293
310
  grid: Grid;
294
311
  heading: Heading;
295
312
  icon: Icon;
313
+ image: Image;
296
314
  link: Link;
297
315
  menu: Menu;
298
316
  "menu-item": MenuItem;
299
317
  modal: Modal;
300
318
  notifications: Notifications;
301
319
  outlet: Outlet;
320
+ progress: Progress;
302
321
  "raw-block": RawBlock;
303
322
  "remote.data-list": DataList;
304
323
  section: Section;
305
324
  "segmented-control": SegmentedControl;
325
+ separator: Separator;
306
326
  sidebar: Sidebar;
307
327
  stack: Stack;
308
328
  tab: Tab;
@@ -311,6 +331,7 @@ export type ComponentPropsMap = {
311
331
  text: Text;
312
332
  tooltip: Tooltip;
313
333
  topbar: Topbar;
334
+ tree: Tree;
314
335
  };
315
336
  export type Condition = {
316
337
  readonly field: string;
@@ -330,20 +351,15 @@ export type DataList = {
330
351
  };
331
352
  export type DateFormat = {
332
353
  kind: string;
333
- dateStyle: string | null;
334
- timeStyle: string | null;
354
+ dateStyle: DateTimeStyle | null;
355
+ timeStyle: DateTimeStyle | null;
335
356
  month: string | null;
336
357
  year: string | null;
337
358
  };
338
359
  export type DateInput = {
339
360
  autoFocus: boolean;
340
361
  columnWidth: ColumnWidth;
341
- conditions: {
342
- visible?: Condition[];
343
- required?: Condition[];
344
- readOnly?: Condition[];
345
- disabled?: Condition[];
346
- } | null;
362
+ conditions: FieldConditions | null;
347
363
  dependsOnAny: boolean;
348
364
  dependsOnKeys: string[] | null;
349
365
  disabled: boolean;
@@ -367,12 +383,7 @@ export type DateRangeFilter = {
367
383
  export type DateTimeInput = {
368
384
  autoFocus: boolean;
369
385
  columnWidth: ColumnWidth;
370
- conditions: {
371
- visible?: Condition[];
372
- required?: Condition[];
373
- readOnly?: Condition[];
374
- disabled?: Condition[];
375
- } | null;
386
+ conditions: FieldConditions | null;
376
387
  convertTimezone: boolean;
377
388
  dependsOnAny: boolean;
378
389
  dependsOnKeys: string[] | null;
@@ -394,39 +405,93 @@ export type DateTimeInput = {
394
405
  value: unknown;
395
406
  };
396
407
  export type DateTimeStyle = "full" | "long" | "medium" | "short";
397
- export type DownloadEffect = {
408
+ export type Download = {
398
409
  readonly url: string;
399
410
  };
400
411
  export type Dropdown = {
401
412
  placement: Placement;
402
- trigger: WireNode[];
403
- };
413
+ trigger: Node[];
414
+ };
415
+ export type EditorBlockquote = Record<string, never>;
416
+ export type EditorBold = Record<string, never>;
417
+ export type EditorBulletList = Record<string, never>;
418
+ export type EditorCode = Record<string, never>;
419
+ export type EditorCodeBlock = Record<string, never>;
420
+ export type EditorDetails = Record<string, never>;
421
+ export type EditorEmoji = {
422
+ emojis: string[];
423
+ };
424
+ export type EditorExtension = {
425
+ type: string;
426
+ props: Record<string, unknown>;
427
+ };
428
+ export type EditorExtensionPropsMap = {
429
+ blockquote: EditorBlockquote;
430
+ bold: EditorBold;
431
+ "bullet-list": EditorBulletList;
432
+ code: EditorCode;
433
+ "code-block": EditorCodeBlock;
434
+ details: EditorDetails;
435
+ emoji: EditorEmoji;
436
+ heading: EditorHeading;
437
+ highlight: EditorHighlight;
438
+ "horizontal-rule": EditorHorizontalRule;
439
+ italic: EditorItalic;
440
+ link: EditorLink;
441
+ "ordered-list": EditorOrderedList;
442
+ strike: EditorStrike;
443
+ table: EditorTable;
444
+ "text-align": EditorTextAlign;
445
+ underline: EditorUnderline;
446
+ };
447
+ export type EditorHeading = {
448
+ levels: number[];
449
+ };
450
+ export type EditorHighlight = Record<string, never>;
451
+ export type EditorHorizontalRule = Record<string, never>;
452
+ export type EditorItalic = Record<string, never>;
453
+ export type EditorLink = {
454
+ protocols: string[];
455
+ openOnClick: boolean;
456
+ };
457
+ export type EditorOrderedList = Record<string, never>;
458
+ export type EditorStrike = Record<string, never>;
459
+ export type EditorTable = {
460
+ rows: number;
461
+ cols: number;
462
+ withHeaderRow: boolean;
463
+ };
464
+ export type EditorTextAlign = {
465
+ alignments: string[];
466
+ };
467
+ export type EditorUnderline = Record<string, never>;
404
468
  export type Effect = {
405
469
  type: string;
406
- } & Record<string, unknown>;
470
+ props: Record<string, unknown>;
471
+ };
407
472
  export type EffectPropsMap = {
408
- callout: CalloutEffect;
409
- "close-modal": CloseModalEffect;
410
- download: DownloadEffect;
411
- "locale-change": LocaleChangeEffect;
412
- "open-modal": OpenModalEffect;
413
- redirect: RedirectEffect;
414
- "reload-component": ReloadComponentEffect;
415
- "reload-page": ReloadPageEffect;
416
- "reset-form": ResetFormEffect;
417
- toast: ToastEffect;
418
- "toggle-sidebar": ToggleSidebarEffect;
419
- };
420
- export type FieldType = "field.builder" | "field.checkbox" | "field.choice" | "field.date-input" | "field.date-time-input" | "field.file-upload" | "field.hidden-input" | "field.number-input" | "field.otp" | "field.password-input" | "field.repeater" | "field.rich-editor" | "field.select" | "field.textarea" | "field.text-input" | "field.time-input" | "field.toggle";
473
+ callout: Callout;
474
+ "close-modal": CloseModal;
475
+ download: Download;
476
+ "locale-change": LocaleChange;
477
+ "open-modal": OpenModal;
478
+ redirect: Redirect;
479
+ "reload-component": ReloadComponent;
480
+ "reload-page": ReloadPage;
481
+ "reset-form": ResetForm;
482
+ toast: Toast;
483
+ "toggle-sidebar": ToggleSidebar;
484
+ };
485
+ export type FieldConditions = {
486
+ readonly visible: Condition[];
487
+ readonly required: Condition[];
488
+ readonly readOnly: Condition[];
489
+ readonly disabled: Condition[];
490
+ };
421
491
  export type FileUpload = {
422
492
  accept: string | null;
423
493
  columnWidth: ColumnWidth;
424
- conditions: {
425
- visible?: Condition[];
426
- required?: Condition[];
427
- readOnly?: Condition[];
428
- disabled?: Condition[];
429
- } | null;
494
+ conditions: FieldConditions | null;
430
495
  dependsOnAny: boolean;
431
496
  dependsOnKeys: string[] | null;
432
497
  disabled: boolean;
@@ -455,7 +520,7 @@ export type FileUpload = {
455
520
  };
456
521
  export type FilterClause = {
457
522
  readonly field: string;
458
- readonly operator: string;
523
+ readonly operator: Op;
459
524
  readonly value: string;
460
525
  };
461
526
  export type FilterControl = "filter.select" | "filter.ternary" | "filter.date-range" | "filter.toggle";
@@ -475,7 +540,7 @@ export type FloatingPanel = {
475
540
  label: string | null;
476
541
  offset: number;
477
542
  placement: FloatingPlacement;
478
- trigger: WireNode[];
543
+ trigger: Node[];
479
544
  };
480
545
  export type FloatingPlacement = "bottom-end" | "bottom-start" | "top-end" | "top-start";
481
546
  export type Form = {
@@ -493,19 +558,23 @@ export type Form = {
493
558
  validationSummaryLabel: string;
494
559
  validationTimeout: number | null;
495
560
  };
496
- export type FormFieldNodeType = "field.builder" | "field.checkbox" | "field.choice" | "field.date-input" | "field.date-time-input" | "field.file-upload" | "field.hidden-input" | "field.number-input" | "field.otp" | "field.password-input" | "field.repeater" | "field.rich-editor" | "field.select" | "field.text-input" | "field.textarea" | "field.time-input" | "field.toggle";
497
- export type FormNodeType = "field.builder" | "field.checkbox" | "field.choice" | "field.date-input" | "field.date-time-input" | "field.file-upload" | "field.hidden-input" | "field.number-input" | "field.otp" | "field.password-input" | "field.repeater" | "field.rich-editor" | "field.select" | "field.text-input" | "field.textarea" | "field.time-input" | "field.toggle" | "form";
561
+ export type FormFieldNodeType = "field.builder" | "field.checkbox" | "field.choice" | "field.color-picker" | "field.date-input" | "field.date-time-input" | "field.file-upload" | "field.hidden-input" | "field.number-input" | "field.otp" | "field.password-input" | "field.repeater" | "field.rich-editor" | "field.select" | "field.text-input" | "field.textarea" | "field.time-input" | "field.toggle";
562
+ export type FormNodeType = "field.builder" | "field.checkbox" | "field.choice" | "field.color-picker" | "field.date-input" | "field.date-time-input" | "field.file-upload" | "field.hidden-input" | "field.number-input" | "field.otp" | "field.password-input" | "field.repeater" | "field.rich-editor" | "field.select" | "field.text-input" | "field.textarea" | "field.time-input" | "field.toggle" | "form";
498
563
  export type Fragment = {
499
564
  endpoint: string | null;
500
565
  lazy: boolean;
501
566
  ref: string | null;
502
567
  size: Size;
503
568
  };
569
+ export type FragmentResponse = {
570
+ readonly schema: Node[];
571
+ };
504
572
  export type Gap = "none" | "xs" | "sm" | "md" | "lg" | "xl";
505
573
  export type Grid = {
506
574
  columns: number | null;
507
575
  };
508
576
  export type Heading = {
577
+ copyable: boolean;
509
578
  level: number;
510
579
  text: string;
511
580
  tooltip: string | null;
@@ -513,12 +582,7 @@ export type Heading = {
513
582
  export type Height = "full" | "screen";
514
583
  export type HiddenInput = {
515
584
  columnWidth: ColumnWidth;
516
- conditions: {
517
- visible?: Condition[];
518
- required?: Condition[];
519
- readOnly?: Condition[];
520
- disabled?: Condition[];
521
- } | null;
585
+ conditions: FieldConditions | null;
522
586
  dependsOnAny: boolean;
523
587
  dependsOnKeys: string[] | null;
524
588
  disabled: boolean;
@@ -549,7 +613,7 @@ export type Icon = {
549
613
  };
550
614
  export type IconColumn = {
551
615
  align: ColumnAlign;
552
- colors: Record<string | number, string> | null;
616
+ colors: Record<string | number, Color> | null;
553
617
  filter: ColumnFilter | null;
554
618
  hiddenByDefault: boolean;
555
619
  icon: string | null;
@@ -559,20 +623,33 @@ export type IconColumn = {
559
623
  toggleable: boolean;
560
624
  width: ColumnWidth;
561
625
  };
626
+ export type Image = {
627
+ alt: string | null;
628
+ circular: boolean;
629
+ previewable: boolean;
630
+ size: number | null;
631
+ src: string;
632
+ };
562
633
  export type ImageColumn = {
563
634
  align: ColumnAlign;
564
635
  circular: boolean;
565
636
  filter: ColumnFilter | null;
566
637
  hiddenByDefault: boolean;
567
638
  label: string | null;
639
+ previewable: boolean;
568
640
  size: number | null;
569
641
  sortable: boolean;
570
642
  toggleable: boolean;
571
643
  width: ColumnWidth;
572
644
  };
573
645
  export type Justify = "start" | "center" | "end" | "between" | "around" | "evenly";
646
+ export type LabelAction = {
647
+ readonly href: string;
648
+ readonly label: string;
649
+ readonly tabIndex: number | null;
650
+ };
574
651
  export type Link = {
575
- action: WireNode | null;
652
+ action: Node<"action"> | null;
576
653
  effects: Effect[];
577
654
  href: string | null;
578
655
  icon: string | null;
@@ -582,18 +659,18 @@ export type Link = {
582
659
  suffix: Affix | null;
583
660
  tabIndex: number | null;
584
661
  };
585
- export type ListenerPayload = {
662
+ export type Listen = {
586
663
  readonly channel: string;
587
664
  readonly visibility: ChannelVisibility;
588
- readonly events: string[];
589
- readonly effects: Effect[];
665
+ events: string[];
666
+ effects: Effect[];
590
667
  };
591
- export type LocaleChangeEffect = {
668
+ export type LocaleChange = {
592
669
  readonly locale: string;
593
670
  };
594
671
  export type Menu = Record<string, never>;
595
672
  export type MenuItem = {
596
- action: WireNode | null;
673
+ action: Node<"action"> | null;
597
674
  effects: Effect[];
598
675
  href: string | null;
599
676
  icon: string | null;
@@ -611,6 +688,7 @@ export type Modal = {
611
688
  };
612
689
  export type MoneyColumn = {
613
690
  align: ColumnAlign;
691
+ copyable: boolean;
614
692
  currency: string | null;
615
693
  currencyField: string | null;
616
694
  filter: ColumnFilter | null;
@@ -622,7 +700,7 @@ export type MoneyColumn = {
622
700
  toggleable: boolean;
623
701
  width: ColumnWidth;
624
702
  };
625
- export type NodeType = "action" | "action.bulk" | "action.group" | "badge" | "breadcrumbs" | "button" | "callouts" | "card" | "chart" | "chat.box" | "chat.part.text" | "chat.part.tool-call" | "collapsible" | "dropdown" | "field.builder" | "field.checkbox" | "field.choice" | "field.date-input" | "field.date-time-input" | "field.file-upload" | "field.hidden-input" | "field.number-input" | "field.otp" | "field.password-input" | "field.repeater" | "field.rich-editor" | "field.select" | "field.text-input" | "field.textarea" | "field.time-input" | "field.toggle" | "floating-panel" | "form" | "fragment" | "grid" | "heading" | "icon" | "link" | "menu" | "menu-item" | "modal" | "notifications" | "outlet" | "raw-block" | "remote.data-list" | "section" | "segmented-control" | "sidebar" | "stack" | "tab" | "table" | "tabs" | "text" | "tooltip" | "topbar";
703
+ export type NodeType = "action" | "action.bulk" | "action.group" | "avatar" | "badge" | "breadcrumbs" | "button" | "callouts" | "card" | "chart" | "chat.box" | "chat.part.text" | "chat.part.tool-call" | "collapsible" | "dropdown" | "field.builder" | "field.checkbox" | "field.choice" | "field.color-picker" | "field.date-input" | "field.date-time-input" | "field.file-upload" | "field.hidden-input" | "field.number-input" | "field.otp" | "field.password-input" | "field.repeater" | "field.rich-editor" | "field.select" | "field.text-input" | "field.textarea" | "field.time-input" | "field.toggle" | "floating-panel" | "form" | "fragment" | "grid" | "heading" | "icon" | "image" | "link" | "menu" | "menu-item" | "modal" | "notifications" | "outlet" | "progress" | "raw-block" | "remote.data-list" | "section" | "segmented-control" | "separator" | "sidebar" | "stack" | "tab" | "table" | "tabs" | "text" | "tooltip" | "topbar" | "tree";
626
704
  export type NotificationItem = {
627
705
  readonly id: string;
628
706
  readonly title: string | null;
@@ -632,7 +710,12 @@ export type NotificationItem = {
632
710
  readonly href: string | null;
633
711
  readonly isRead: boolean;
634
712
  readonly createdAt: string | null;
635
- readonly actions: WireNode[];
713
+ readonly actions: Node[];
714
+ };
715
+ export type NotificationList = {
716
+ readonly notifications: NotificationItem[];
717
+ readonly unreadCount: number;
718
+ readonly hasMore: boolean;
636
719
  };
637
720
  export type Notifications = {
638
721
  channel: string;
@@ -643,6 +726,7 @@ export type Notifications = {
643
726
  export type NumberColumn = {
644
727
  align: ColumnAlign;
645
728
  compact: boolean;
729
+ copyable: boolean;
646
730
  filter: ColumnFilter | null;
647
731
  hiddenByDefault: boolean;
648
732
  label: string | null;
@@ -665,12 +749,7 @@ export type NumberFormatUnit = "percent" | "kilogram" | "gram" | "kilometer" | "
665
749
  export type NumberInput = {
666
750
  autoFocus: boolean;
667
751
  columnWidth: ColumnWidth;
668
- conditions: {
669
- visible?: Condition[];
670
- required?: Condition[];
671
- readOnly?: Condition[];
672
- disabled?: Condition[];
673
- } | null;
752
+ conditions: FieldConditions | null;
674
753
  dependsOnAny: boolean;
675
754
  dependsOnKeys: string[] | null;
676
755
  disabled: boolean;
@@ -694,23 +773,19 @@ export type NumberInput = {
694
773
  value: unknown;
695
774
  };
696
775
  export type Op = "contains" | "starts_with" | "ends_with" | "eq" | "neq" | "gt" | "gte" | "lt" | "lte" | "in" | "not_in" | "before" | "after" | "empty" | "filled";
697
- export type OpenModalEffect = {
776
+ export type OpenModal = {
698
777
  readonly modal: string;
699
778
  };
700
779
  export type Option = {
701
780
  readonly label: string;
702
781
  readonly value: string;
782
+ readonly data: Record<string, unknown> | null;
703
783
  };
704
784
  export type Orientation = "horizontal" | "vertical";
705
785
  export type OtpInput = {
706
786
  autoFocus: boolean;
707
787
  columnWidth: ColumnWidth;
708
- conditions: {
709
- visible?: Condition[];
710
- required?: Condition[];
711
- readOnly?: Condition[];
712
- disabled?: Condition[];
713
- } | null;
788
+ conditions: FieldConditions | null;
714
789
  dependsOnAny: boolean;
715
790
  dependsOnKeys: string[] | null;
716
791
  disabled: boolean;
@@ -734,12 +809,7 @@ export type PasswordInput = {
734
809
  autoComplete: string | null;
735
810
  autoFocus: boolean;
736
811
  columnWidth: ColumnWidth;
737
- conditions: {
738
- visible?: Condition[];
739
- required?: Condition[];
740
- readOnly?: Condition[];
741
- disabled?: Condition[];
742
- } | null;
812
+ conditions: FieldConditions | null;
743
813
  confirmation: {
744
814
  label: string;
745
815
  name: string;
@@ -751,11 +821,7 @@ export type PasswordInput = {
751
821
  editablePrefill: boolean;
752
822
  helperText: string | null;
753
823
  label: string | null;
754
- labelAction: {
755
- href: string;
756
- label: string;
757
- tabIndex?: number;
758
- } | null;
824
+ labelAction: LabelAction | null;
759
825
  name: string;
760
826
  passwordRules: string | null;
761
827
  placeholder: string | null;
@@ -770,16 +836,25 @@ export type PasswordInput = {
770
836
  value: unknown;
771
837
  };
772
838
  export type Placement = "top" | "bottom" | "right";
839
+ export type Progress = {
840
+ color: Color | null;
841
+ max: number;
842
+ showValue: boolean;
843
+ size: Size;
844
+ value: number;
845
+ variant: ProgressVariant;
846
+ };
847
+ export type ProgressVariant = "bar" | "circle";
773
848
  export type RawBlock = {
774
849
  html: string;
775
850
  };
776
- export type RedirectEffect = {
851
+ export type Redirect = {
777
852
  readonly url: string;
778
853
  };
779
- export type ReloadComponentEffect = {
854
+ export type ReloadComponent = {
780
855
  readonly component: string;
781
856
  };
782
- export type ReloadPageEffect = object;
857
+ export type ReloadPage = Record<string, never>;
783
858
  export type RemoteAccess = {
784
859
  readonly source: string;
785
860
  readonly audience: string;
@@ -792,12 +867,7 @@ export type RemoteAccess = {
792
867
  export type Repeater = {
793
868
  addLabel: string | null;
794
869
  columnWidth: ColumnWidth;
795
- conditions: {
796
- visible?: Condition[];
797
- required?: Condition[];
798
- readOnly?: Condition[];
799
- disabled?: Condition[];
800
- } | null;
870
+ conditions: FieldConditions | null;
801
871
  defaultItems: number;
802
872
  dependsOnAny: boolean;
803
873
  dependsOnKeys: string[] | null;
@@ -821,21 +891,22 @@ export type Repeater = {
821
891
  tooltip: string | null;
822
892
  value: unknown;
823
893
  };
824
- export type ResetFormEffect = {
894
+ export type ResetForm = {
825
895
  readonly form: string | null;
826
896
  };
897
+ export type ResolveResponse = {
898
+ readonly fields: Record<string, Node>;
899
+ readonly values: Record<string, unknown>;
900
+ readonly prefill: Record<string, unknown>;
901
+ };
827
902
  export type RichEditor = {
828
903
  columnWidth: ColumnWidth;
829
- conditions: {
830
- visible?: Condition[];
831
- required?: Condition[];
832
- readOnly?: Condition[];
833
- disabled?: Condition[];
834
- } | null;
904
+ conditions: FieldConditions | null;
835
905
  dependsOnAny: boolean;
836
906
  dependsOnKeys: string[] | null;
837
907
  disabled: boolean;
838
908
  editablePrefill: boolean;
909
+ extensions: EditorExtension[];
839
910
  helperText: string | null;
840
911
  label: string | null;
841
912
  name: string;
@@ -860,7 +931,7 @@ export type Section = {
860
931
  collapsed: boolean;
861
932
  collapsible: boolean;
862
933
  description: string | null;
863
- headerActions: WireNode[];
934
+ headerActions: Node[];
864
935
  rememberState: boolean;
865
936
  title: string | null;
866
937
  tooltip: string | null;
@@ -875,12 +946,8 @@ export type SegmentedControl = {
875
946
  export type Select = {
876
947
  autoFocus: boolean;
877
948
  columnWidth: ColumnWidth;
878
- conditions: {
879
- visible?: Condition[];
880
- required?: Condition[];
881
- readOnly?: Condition[];
882
- disabled?: Condition[];
883
- } | null;
949
+ conditions: FieldConditions | null;
950
+ creatable: boolean;
884
951
  dependsOnAny: boolean;
885
952
  dependsOnKeys: string[] | null;
886
953
  disabled: boolean;
@@ -909,16 +976,25 @@ export type SelectFilter = {
909
976
  placeholder: string | null;
910
977
  searchable: boolean;
911
978
  };
979
+ export type Separator = {
980
+ orientation: Orientation;
981
+ };
912
982
  export type Side = "start" | "end";
913
983
  export type Sidebar = {
914
984
  collapsible: boolean;
915
985
  rememberState: boolean;
916
986
  };
987
+ export type SignedUpload = {
988
+ readonly key: string;
989
+ readonly url: string;
990
+ readonly headers: Record<string, unknown>;
991
+ readonly method: HttpMethod;
992
+ };
917
993
  export type Size = "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "4xl";
918
994
  export type SortDirection = "asc" | "desc";
919
995
  export type Stack = {
920
996
  align: Align | null;
921
- direction: string | null;
997
+ direction: StackDirection | null;
922
998
  float: Side | null;
923
999
  gap: Gap | null;
924
1000
  height: Height | null;
@@ -934,27 +1010,29 @@ export type StackColumn = {
934
1010
  toggleable: boolean;
935
1011
  width: ColumnWidth;
936
1012
  };
1013
+ export type StackDirection = "row" | "column";
937
1014
  export type Tab = {
938
1015
  confirm: {
939
1016
  required: boolean;
940
1017
  redirectUrl: string;
941
- timeout?: number;
1018
+ timeout: number | null;
942
1019
  } | null;
943
1020
  label: string;
944
1021
  value: string;
945
1022
  };
946
1023
  export type Table = {
947
- actionsLabel: string;
948
- bulkActions: WireNode[];
949
- columns: Record<string, unknown>[];
950
- emptyLabel: string;
1024
+ actionsLabel: string | null;
1025
+ bulkActions: Node<"action">[];
1026
+ columns: Node[];
1027
+ emptyLabel: string | null;
951
1028
  endpoint: string | null;
952
- filters: WireNode[];
1029
+ filters: Node[];
953
1030
  layout: string | null;
954
1031
  lazy: boolean;
955
1032
  ref: string | null;
956
1033
  resizableColumns: boolean;
957
1034
  resizeIndicator: boolean;
1035
+ searchable: boolean;
958
1036
  striped: boolean;
959
1037
  };
960
1038
  export type TablePagination = {
@@ -975,6 +1053,12 @@ export type TableQuery = {
975
1053
  readonly perPage: number;
976
1054
  readonly tableFilters: Record<string, Record<string, unknown>>;
977
1055
  readonly tableFilterIndicators: FilterIndicator[];
1056
+ readonly search: string;
1057
+ };
1058
+ export type TableResult = {
1059
+ readonly query: TableQuery;
1060
+ readonly data: Record<string, unknown>[];
1061
+ readonly pagination: TablePagination | null;
978
1062
  };
979
1063
  export type TableSort = {
980
1064
  readonly key: string;
@@ -1008,8 +1092,8 @@ export type TextColumn = {
1008
1092
  } | null;
1009
1093
  copyable: boolean;
1010
1094
  date: {
1011
- dateStyle: string | null;
1012
- timeStyle: string | null;
1095
+ dateStyle: DateTimeStyle | null;
1096
+ timeStyle: DateTimeStyle | null;
1013
1097
  } | null;
1014
1098
  filter: ColumnFilter | null;
1015
1099
  hiddenByDefault: boolean;
@@ -1027,12 +1111,8 @@ export type TextInput = {
1027
1111
  autoComplete: string | null;
1028
1112
  autoFocus: boolean;
1029
1113
  columnWidth: ColumnWidth;
1030
- conditions: {
1031
- visible?: Condition[];
1032
- required?: Condition[];
1033
- readOnly?: Condition[];
1034
- disabled?: Condition[];
1035
- } | null;
1114
+ conditions: FieldConditions | null;
1115
+ copyable: boolean;
1036
1116
  dependsOnAny: boolean;
1037
1117
  dependsOnKeys: string[] | null;
1038
1118
  disabled: boolean;
@@ -1058,12 +1138,7 @@ export type TextPart = {
1058
1138
  export type Textarea = {
1059
1139
  autoFocus: boolean;
1060
1140
  columnWidth: ColumnWidth;
1061
- conditions: {
1062
- visible?: Condition[];
1063
- required?: Condition[];
1064
- readOnly?: Condition[];
1065
- disabled?: Condition[];
1066
- } | null;
1141
+ conditions: FieldConditions | null;
1067
1142
  dependsOnAny: boolean;
1068
1143
  dependsOnKeys: string[] | null;
1069
1144
  disabled: boolean;
@@ -1084,12 +1159,7 @@ export type Textarea = {
1084
1159
  export type TimeInput = {
1085
1160
  autoFocus: boolean;
1086
1161
  columnWidth: ColumnWidth;
1087
- conditions: {
1088
- visible?: Condition[];
1089
- required?: Condition[];
1090
- readOnly?: Condition[];
1091
- disabled?: Condition[];
1092
- } | null;
1162
+ conditions: FieldConditions | null;
1093
1163
  dependsOnAny: boolean;
1094
1164
  dependsOnKeys: string[] | null;
1095
1165
  disabled: boolean;
@@ -1108,26 +1178,18 @@ export type TimeInput = {
1108
1178
  tooltip: string | null;
1109
1179
  value: unknown;
1110
1180
  };
1111
- export type ToastEffect = {
1112
- readonly toast: ToastMessage;
1113
- };
1114
- export type ToastMessage = {
1181
+ export type Toast = {
1182
+ variant: Variant;
1183
+ message: Translatable | string;
1115
1184
  duration: number | null;
1116
1185
  persistent: boolean;
1117
1186
  dismissible: boolean;
1118
- action: WireNode | null;
1119
- variant: Variant;
1120
- message: Translatable | string;
1187
+ action: Node | null;
1121
1188
  };
1122
1189
  export type Toggle = {
1123
1190
  autoFocus: boolean;
1124
1191
  columnWidth: ColumnWidth;
1125
- conditions: {
1126
- visible?: Condition[];
1127
- required?: Condition[];
1128
- readOnly?: Condition[];
1129
- disabled?: Condition[];
1130
- } | null;
1192
+ conditions: FieldConditions | null;
1131
1193
  dependsOnAny: boolean;
1132
1194
  dependsOnKeys: string[] | null;
1133
1195
  disabled: boolean;
@@ -1146,7 +1208,7 @@ export type Toggle = {
1146
1208
  export type ToggleFilter = {
1147
1209
  label: string | null;
1148
1210
  };
1149
- export type ToggleSidebarEffect = {
1211
+ export type ToggleSidebar = {
1150
1212
  readonly target: string | null;
1151
1213
  };
1152
1214
  export type ToolCallPart = {
@@ -1155,7 +1217,7 @@ export type ToolCallPart = {
1155
1217
  };
1156
1218
  export type Tooltip = {
1157
1219
  content: string | null;
1158
- trigger: WireNode[];
1220
+ trigger: Node[];
1159
1221
  };
1160
1222
  export type Topbar = {
1161
1223
  sticky: boolean;
@@ -1165,12 +1227,25 @@ export type Translatable = {
1165
1227
  replacements: Record<string, string | number | boolean>;
1166
1228
  key: string;
1167
1229
  };
1230
+ export type Tree = {
1231
+ activeId: string | null;
1232
+ defaultExpanded: string[];
1233
+ rememberState: boolean;
1234
+ };
1235
+ export type TreeNode = {
1236
+ icon: string | null;
1237
+ badge: string | null;
1238
+ href: string | null;
1239
+ actions: Node<"action"> | Node<"action.group"> | null;
1240
+ children: TreeNode[];
1241
+ hasChildren: boolean;
1242
+ disabled: boolean;
1243
+ readonly label: string;
1244
+ readonly id: string;
1245
+ };
1246
+ export type UnreadCount = {
1247
+ readonly unreadCount: number;
1248
+ };
1168
1249
  export type Variant = "success" | "info" | "warning" | "error";
1169
1250
  export type Width = "full" | "auto" | "sm" | "md" | "lg" | "fill";
1170
- export type WireNode = {
1171
- id?: string;
1172
- key?: string;
1173
- type: string;
1174
- props?: Record<string, unknown>;
1175
- schema?: WireNode[];
1176
- };
1251
+ export type WireNode = Node;