neba 1.16.2 → 1.17.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 (179) hide show
  1. package/README.md +5 -5
  2. package/dist/a2ui/adapter-catalog.json +1 -0
  3. package/dist/a2ui/catalog.json +632 -145
  4. package/dist/a2ui/components.js +1 -1
  5. package/dist/a2ui/index.d.ts +22 -10
  6. package/dist/a2ui/index.js +1 -1
  7. package/dist/a2ui/schema.d.ts +8 -6
  8. package/dist/a2ui/schema.js +1 -1
  9. package/dist/components/accordion/Accordion.js +1 -1
  10. package/dist/components/agent-steps/AgentSteps.js +1 -1
  11. package/dist/components/alert/Alert.js +1 -1
  12. package/dist/components/anchor/Anchor.d.ts +3 -1
  13. package/dist/components/anchor/Anchor.js +1 -1
  14. package/dist/components/animate-counter/AnimateCounter.d.ts +11 -4
  15. package/dist/components/animate-counter/AnimateCounter.js +1 -1
  16. package/dist/components/animate-scramble/AnimateScramble.d.ts +6 -3
  17. package/dist/components/animate-scramble/AnimateScramble.js +1 -1
  18. package/dist/components/animate-split/AnimateSplit.d.ts +6 -3
  19. package/dist/components/animate-split/AnimateSplit.js +1 -1
  20. package/dist/components/animate-typing/AnimateTyping.js +1 -1
  21. package/dist/components/app-logo/AppLogo.js +1 -1
  22. package/dist/components/approval/Approval.js +1 -1
  23. package/dist/components/avatar/Avatar.js +1 -1
  24. package/dist/components/bar-chart/BarChart.js +1 -1
  25. package/dist/components/bottom-navigation/BottomNavigation.js +1 -1
  26. package/dist/components/box/Box.js +1 -1
  27. package/dist/components/breadcrumb/Breadcrumb.d.ts +3 -3
  28. package/dist/components/breadcrumb/Breadcrumb.js +1 -1
  29. package/dist/components/card/Card.js +1 -1
  30. package/dist/components/chat-bubble/ChatBubble.js +1 -1
  31. package/dist/components/chip/Chip.d.ts +4 -1
  32. package/dist/components/chip/Chip.js +1 -1
  33. package/dist/components/code-block/CodeBlock.js +1 -1
  34. package/dist/components/collapsible/Collapsible.js +1 -1
  35. package/dist/components/color-picker/ColorPicker.d.ts +3 -1
  36. package/dist/components/color-picker/ColorPicker.js +1 -1
  37. package/dist/components/combobox/Combobox.js +1 -1
  38. package/dist/components/command-palette/CommandPalette.js +1 -1
  39. package/dist/components/confirm/Confirm.js +1 -1
  40. package/dist/components/context-window/ContextWindow.d.ts +4 -1
  41. package/dist/components/context-window/ContextWindow.js +1 -1
  42. package/dist/components/data-list/DataList.d.ts +3 -2
  43. package/dist/components/data-list/DataList.js +1 -1
  44. package/dist/components/data-table/DataTable.d.ts +11 -5
  45. package/dist/components/data-table/DataTable.js +1 -1
  46. package/dist/components/date-range-picker/DateRangePicker.d.ts +3 -2
  47. package/dist/components/date-range-picker/DateRangePicker.js +1 -1
  48. package/dist/components/dialog/Dialog.js +1 -1
  49. package/dist/components/drawer/Drawer.js +1 -1
  50. package/dist/components/fieldset/Fieldset.js +1 -1
  51. package/dist/components/file-picker/FilePicker.d.ts +4 -0
  52. package/dist/components/file-picker/FilePicker.js +1 -1
  53. package/dist/components/footer/Footer.d.ts +4 -2
  54. package/dist/components/form/Form.d.ts +0 -14
  55. package/dist/components/form/Form.js +1 -1
  56. package/dist/components/gallery/Gallery.js +1 -1
  57. package/dist/components/gallery/GalleryViewer.js +1 -1
  58. package/dist/components/header/Header.d.ts +4 -3
  59. package/dist/components/heatmap-chart/HeatmapChart.js +1 -1
  60. package/dist/components/hover-card/HoverCard.d.ts +1 -1
  61. package/dist/components/how-to-steps/HowToSteps.d.ts +2 -1
  62. package/dist/components/how-to-steps/HowToSteps.js +1 -1
  63. package/dist/components/image/Image.d.ts +4 -1
  64. package/dist/components/image/Image.js +1 -1
  65. package/dist/components/inline-citation/InlineCitation.d.ts +4 -2
  66. package/dist/components/inline-citation/InlineCitation.js +1 -1
  67. package/dist/components/menu/Menu.d.ts +6 -2
  68. package/dist/components/menu/Menu.js +1 -1
  69. package/dist/components/mockup/Mockup.js +1 -1
  70. package/dist/components/navigation-menu/NavigationMenu.d.ts +1 -1
  71. package/dist/components/navigation-menu/NavigationMenu.js +1 -1
  72. package/dist/components/number-field/NumberField.js +1 -1
  73. package/dist/components/overlay/Overlay.d.ts +1 -1
  74. package/dist/components/page-layout/PageLayout.js +1 -1
  75. package/dist/components/pagination/Pagination.d.ts +3 -2
  76. package/dist/components/panes/Panes.js +1 -1
  77. package/dist/components/pie-chart/PieChart.js +1 -1
  78. package/dist/components/pill/Pill.js +1 -1
  79. package/dist/components/popover/Popover.js +1 -1
  80. package/dist/components/progress-box/ProgressBox.js +1 -1
  81. package/dist/components/prompt-input/PromptInput.d.ts +5 -3
  82. package/dist/components/prompt-input/PromptInput.js +1 -1
  83. package/dist/components/radio-group/RadioGroup.js +1 -1
  84. package/dist/components/rating/Rating.js +1 -1
  85. package/dist/components/reasoning/Reasoning.d.ts +7 -4
  86. package/dist/components/reasoning/Reasoning.js +1 -1
  87. package/dist/components/scatter-chart/ScatterChart.d.ts +7 -1
  88. package/dist/components/scatter-chart/ScatterChart.js +1 -1
  89. package/dist/components/scroll-area/ScrollArea.d.ts +12 -0
  90. package/dist/components/scroll-area/ScrollArea.js +1 -1
  91. package/dist/components/scroll-zone/ScrollZone.js +1 -1
  92. package/dist/components/segmented-button/SegmentedButton.js +1 -1
  93. package/dist/components/select/Select.d.ts +2 -1
  94. package/dist/components/select/Select.js +1 -1
  95. package/dist/components/sidebar/Sidebar.js +1 -1
  96. package/dist/components/sidebar/SidebarTrigger.js +1 -1
  97. package/dist/components/skeleton/Skeleton.js +1 -1
  98. package/dist/components/sources/Sources.d.ts +1 -1
  99. package/dist/components/sources/Sources.js +1 -1
  100. package/dist/components/stack/Stack.js +1 -1
  101. package/dist/components/streaming-text/StreamingText.js +1 -1
  102. package/dist/components/switch/Switch.d.ts +13 -2
  103. package/dist/components/switch/Switch.js +1 -1
  104. package/dist/components/switch/index.d.ts +1 -1
  105. package/dist/components/table/Table.d.ts +4 -2
  106. package/dist/components/tabs/Tabs.js +1 -1
  107. package/dist/components/text-field/TextField.js +1 -1
  108. package/dist/components/text-link/TextLink.js +1 -1
  109. package/dist/components/timeline-chart/TimelineChart.d.ts +6 -1
  110. package/dist/components/timeline-chart/TimelineChart.js +1 -1
  111. package/dist/components/toggle/Toggle.js +1 -1
  112. package/dist/components/tool-call/ToolCall.js +1 -1
  113. package/dist/components/tour/Tour.js +1 -1
  114. package/dist/components/transfer/Transfer.js +1 -1
  115. package/dist/components/tree-select/TreeSelect.js +1 -1
  116. package/dist/components/tree-view/TreeView.js +1 -1
  117. package/dist/components/typography/Typography.js +1 -1
  118. package/dist/components/visually-hidden/VisuallyHidden.d.ts +2 -2
  119. package/dist/components/window-pane/WindowPane.js +1 -1
  120. package/dist/hooks/useElementSize.d.ts +6 -2
  121. package/dist/hooks/useElementSize.js +1 -1
  122. package/dist/hooks/useMediaQuery.d.ts +3 -2
  123. package/dist/hooks/useOnScreen.d.ts +2 -2
  124. package/dist/hooks/useShortcut.d.ts +11 -3
  125. package/dist/hooks/useShortcut.js +1 -1
  126. package/dist/internal/animate.d.ts +8 -0
  127. package/dist/internal/animate.js +1 -1
  128. package/dist/internal/calendar.js +1 -1
  129. package/dist/internal/chart-brush.d.ts +3 -1
  130. package/dist/internal/chart-brush.js +1 -1
  131. package/dist/internal/chart-frame.d.ts +28 -2
  132. package/dist/internal/chart-frame.js +1 -1
  133. package/dist/internal/chart-line.js +1 -1
  134. package/dist/internal/chart.d.ts +21 -0
  135. package/dist/internal/chart.js +1 -1
  136. package/dist/internal/drag.d.ts +15 -0
  137. package/dist/internal/drag.js +1 -1
  138. package/dist/internal/drop.d.ts +12 -8
  139. package/dist/internal/drop.js +1 -1
  140. package/dist/internal/highlight.js +1 -1
  141. package/dist/internal/i18n.d.ts +40 -4
  142. package/dist/internal/i18n.js +1 -1
  143. package/dist/internal/icons.d.ts +3 -0
  144. package/dist/internal/icons.js +1 -1
  145. package/dist/internal/link.d.ts +27 -0
  146. package/dist/internal/link.js +1 -1
  147. package/dist/internal/new-tab.d.ts +19 -0
  148. package/dist/internal/new-tab.js +1 -0
  149. package/dist/internal/notch.d.ts +23 -1
  150. package/dist/internal/notch.js +1 -1
  151. package/dist/internal/observe.d.ts +3 -4
  152. package/dist/internal/picker.d.ts +21 -3
  153. package/dist/internal/picker.js +1 -1
  154. package/dist/internal/run.d.ts +7 -5
  155. package/dist/internal/run.js +1 -1
  156. package/dist/internal/search.d.ts +3 -3
  157. package/dist/internal/styles.d.ts +33 -1
  158. package/dist/internal/styles.js +1 -1
  159. package/dist/locales/ar.js +1 -1
  160. package/dist/locales/de.js +1 -1
  161. package/dist/locales/es.js +1 -1
  162. package/dist/locales/fr.js +1 -1
  163. package/dist/locales/hi.js +1 -1
  164. package/dist/locales/id.js +1 -1
  165. package/dist/locales/it.js +1 -1
  166. package/dist/locales/ja.js +1 -1
  167. package/dist/locales/ko.js +1 -1
  168. package/dist/locales/nl.js +1 -1
  169. package/dist/locales/pl.js +1 -1
  170. package/dist/locales/pt.js +1 -1
  171. package/dist/locales/ru.js +1 -1
  172. package/dist/locales/th.js +1 -1
  173. package/dist/locales/tr.js +1 -1
  174. package/dist/locales/vi.js +1 -1
  175. package/dist/locales/zh-hans.js +1 -1
  176. package/dist/locales/zh-hant.js +1 -1
  177. package/dist/styles.css +1 -1
  178. package/dist/tailwind.css +31 -4
  179. package/package.json +9 -3
package/README.md CHANGED
@@ -19,7 +19,7 @@ You install one package, add one line to your CSS, and import components. There
19
19
  - **Accessible by construction**: real roles, labels, focus management and keyboard support, not `div`s with click handlers.
20
20
  - **Dark mode with no work**: follows the system, and can be forced either way per subtree.
21
21
  - **A design language, not a theme file**: a translucent acrylic surface with a hairline edge, one deliberate motion signature, and shadows that are opt-in.
22
- - **ESM only**, TypeScript declarations included, and genuinely tree-shakeable: every component compiles to its own module, and importing one costs about what one costs. A `Button` is ~5 kB gzipped including its Base UI parts, a `Chip` is ~3.5 kB, and a twelve-component app is ~70 kB; the whole library, all one hundred and eighty-five exports at once, is ~286 kB.
22
+ - **ESM only**, TypeScript declarations included, and genuinely tree-shakeable: every component compiles to its own module, and importing one costs about what one costs. A `Button` is ~5 kB gzipped including its Base UI parts, a `Chip` is ~3.4 kB, and a twelve-component app is ~73 kB; the whole library, all one hundred and eighty-five exports at once, is ~296 kB.
23
23
  - **Two runtime dependencies**: Base UI, and `highlight.js`, which only [CodeBlock](https://neba.cdget.com/components/display/code-block) reaches and only through a dynamic import, so it never lands in a bundle that did not ask for it. React 18 or 19, Node.js 18 or later. The [A2UI](https://neba.cdget.com/guide/a2ui) renderer at `neba/a2ui` has three more, and they are optional peers: a project that never imports that subpath never meets them.
24
24
 
25
25
  ## Documentation
@@ -60,7 +60,7 @@ Add one line to your app's CSS entry point:
60
60
  @import 'neba/styles.css';
61
61
  ```
62
62
 
63
- `neba/styles.css` is finished CSS: the design tokens, the compiled rules for every utility class the components use, and a small reset whose every rule is specificity 0 so your own styles always win. [Tailwind CSS](https://tailwindcss.com) v4 builds this package; it does not have to be installed in yours.
63
+ `neba/styles.css` is finished CSS: the design tokens, the compiled rules for every utility class the components use, and a small reset whose rules on elements are all specificity 0, so your own styles win. [Tailwind CSS](https://tailwindcss.com) v4 builds this package; it does not have to be installed in yours.
64
64
 
65
65
  That is the whole setup. No provider is required at the root, no theme object, no config file.
66
66
 
@@ -123,7 +123,7 @@ Call it once, at module scope, before your first render. Then a `locale` prop tr
123
123
  <Dialog locale="ko" title="설정" showClose />
124
124
  ```
125
125
 
126
- A registered language costs about 3.4 kB gzipped and you pay only for the ones you name. Tags are matched by script, then by region, then by language: registering `ko` answers `ko-KR`, and `zhHans` registered as `zh-hans` answers `zh-CN` and a bare `zh`. Available: `ko`, `ja`, `zhHans`, `zhHant`, `es`, `pt`, `fr`, `de`, `it`, `nl`, `pl`, `ru`, `tr`, `ar`, `hi`, `id`, `vi`, `th`, each also its own entry point (`neba/locales/ko`).
126
+ A registered language costs about 4 kB gzipped and you pay only for the ones you name. Tags are matched by script, then by region, then by language: registering `ko` answers `ko-KR`, and `zhHans` registered as `zh-hans` answers `zh-CN` and a bare `zh`. Available: `ko`, `ja`, `zhHans`, `zhHant`, `es`, `pt`, `fr`, `de`, `it`, `nl`, `pl`, `ru`, `tr`, `ar`, `hi`, `id`, `vi`, `th`, each also its own entry point (`neba/locales/ko`).
127
127
 
128
128
  Anything the platform already knows (month names, weekday names, AM/PM, number and date formats) comes from `Intl` and needs no registration. And every string a component invents also has a prop that overrides it, so a language Neba does not carry is never a dead end.
129
129
 
@@ -140,7 +140,7 @@ import { NebaProvider } from 'neba';
140
140
  </NebaProvider>;
141
141
  ```
142
142
 
143
- Optional, and every component works without it. It fills in `size`, `density`, `variant` and `locale` where a call site left them out (the call site always wins) owns the colour scheme (`useColorScheme()`, plus a `colorSchemeScript()` for the first-paint flash), and sets the writing direction. `color` and `elevation` are deliberately not defaultable; [the guide](https://neba.cdget.com/guide/provider) says why.
143
+ Optional, and every component works without it. It fills in `size`, `density`, `variant`, `locale` and `labelPlacement` where a call site left them out (the call site always wins), owns the colour scheme (`useColorScheme()`, plus a `colorSchemeScript()` for the first-paint flash), and sets the writing direction. `color` and `elevation` are deliberately not defaultable; [the guide](https://neba.cdget.com/guide/provider) says why.
144
144
 
145
145
  ### Hooks
146
146
 
@@ -169,7 +169,7 @@ The reason a Neba screen looks composed rather than assembled is that the props
169
169
  | `density` | `default` `compact` | Padding only: never the height, never the type scale, so a compact control still lines up with a default one. |
170
170
  | `elevation` | `0` `1` `2` `3` | How far a surface floats off the page. `0` is the default and means no shadow at all. |
171
171
 
172
- `align` is logical (`start`/`end` rather than `left`/`right`), so it flips under RTL. `side` names a physical edge (`top`, `right`, `bottom` or `left`) and does not flip. The full rules are in [**Prop conventions**](https://neba.cdget.com/design/prop-conventions).
172
+ `align` is logical (`start`/`end` rather than `left`/`right`), so it flips under RTL. `side` names a physical edge of an anchor (`top`, `right`, `bottom` or `left`) and does not flip, except on the Sidebar and the ChatBubble, which sit on a side of the page or the conversation and take `start` or `end`. The full rules, `orientation` and `labelPlacement` included, are under Placement in [**Prop conventions**](https://neba.cdget.com/design/prop-conventions).
173
173
 
174
174
  ```tsx
175
175
  <Button size="sm" color="danger" variant="outline">Delete</Button>
@@ -0,0 +1 @@
1
+ {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://neba.cdget.com/a2ui/1.17/catalog.json","protocolVersion":"1.0","catalogId":"https://neba.cdget.com/a2ui/1.17/catalog.json","components":{"Flex":{"type":"object","properties":{"component":{"const":"Flex"},"children":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/ChildList"},"direction":{"type":"string","enum":["horizontal","vertical"],"default":"horizontal"},"spacing":{"type":"number","default":0},"justifyContent":{"type":"string","enum":["start","center","end","space-between","space-around","space-evenly","stretch"],"default":"start"},"alignItems":{"type":"string","enum":["start","center","end","stretch","baseline"],"default":"stretch"},"wrap":{"type":"boolean","default":false}},"required":["component","children"]},"Card":{"type":"object","properties":{"component":{"const":"Card"},"child":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/Child"},"title":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"subtitle":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"variant":{"type":"string","enum":["solid","outline","text"],"default":"outline"},"size":{"type":"string","enum":["xs","sm","md","lg","xl"],"default":"md"},"color":{"type":"string","enum":["primary","secondary","success","warning","danger","info"],"default":"primary"},"density":{"type":"string","enum":["default","compact"],"default":"default"},"elevation":{"type":"integer","enum":[0,1,2,3],"default":0}},"required":["component"]},"Divider":{"type":"object","properties":{"component":{"const":"Divider"},"label":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"orientation":{"type":"string","enum":["horizontal","vertical"],"default":"horizontal"},"size":{"type":"string","enum":["xs","sm","md","lg","xl"],"default":"md"}},"required":["component"]},"Typography":{"type":"object","properties":{"component":{"const":"Typography"},"text":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"level":{"type":"string","enum":["h1","h2","h3","h4","h5","h6","body","lead","caption","overline"],"default":"body"},"weight":{"type":"string","enum":["regular","medium","semibold","bold"],"default":"regular"},"align":{"type":"string","enum":["start","center","end","justify"]},"color":{"type":"string","enum":["primary","secondary","success","warning","danger","info"]},"lines":{"type":"integer","minimum":1}},"required":["component","text"]},"Image":{"type":"object","properties":{"component":{"const":"Image"},"src":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"alt":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"ratio":{"type":"number"},"fit":{"type":"string","enum":["cover","contain","fill","none","scale-down"],"default":"cover"},"rounded":{"type":"string","enum":["xs","sm","md","lg","xl"]}},"required":["component","src","alt"]},"Chip":{"type":"object","properties":{"component":{"const":"Chip"},"text":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"variant":{"type":"string","enum":["solid","outline","text"],"default":"outline"},"size":{"type":"string","enum":["xs","sm","md","lg","xl"],"default":"md"},"color":{"type":"string","enum":["primary","secondary","success","warning","danger","info"],"default":"primary"},"count":{"type":"number"},"selected":{"type":"boolean","default":false}},"required":["component","text"]},"Avatar":{"type":"object","properties":{"component":{"const":"Avatar"},"src":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"name":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"shape":{"type":"string","enum":["circle","square"],"default":"circle"},"size":{"type":"string","enum":["xs","sm","md","lg","xl"],"default":"md"},"color":{"type":"string","enum":["primary","secondary","success","warning","danger","info"],"default":"primary"}},"required":["component"]},"Statistic":{"type":"object","properties":{"component":{"const":"Statistic"},"label":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"value":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"unit":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"caption":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"previousValue":{"type":"number"},"delta":{"type":"string","enum":["percent","absolute","both","none"],"default":"percent"},"betterWhen":{"type":"string","enum":["up","down"],"default":"up"},"size":{"type":"string","enum":["xs","sm","md","lg","xl"],"default":"md"},"align":{"type":"string","enum":["start","center","end"],"default":"start"}},"required":["component","value"]},"DataList":{"type":"object","properties":{"component":{"const":"DataList"},"items":{"type":"array","items":{"type":"object","properties":{"label":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"value":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"}},"required":["label","value"],"additionalProperties":false}},"orientation":{"type":"string","enum":["horizontal","vertical"],"default":"horizontal"},"dividers":{"type":"boolean","default":false},"size":{"type":"string","enum":["xs","sm","md","lg","xl"],"default":"md"},"density":{"type":"string","enum":["default","compact"],"default":"default"}},"required":["component","items"]},"Alert":{"type":"object","properties":{"component":{"const":"Alert"},"child":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/Child"},"title":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"color":{"type":"string","enum":["primary","secondary","success","warning","danger","info"],"default":"info"},"variant":{"type":"string","enum":["solid","outline","text"],"default":"outline"},"size":{"type":"string","enum":["xs","sm","md","lg","xl"],"default":"md"},"density":{"type":"string","enum":["default","compact"],"default":"default"}},"required":["component"]},"Button":{"type":"object","allOf":[{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/Checkable"},{"type":"object","properties":{"component":{"const":"Button"},"text":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"action":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/Action"},"variant":{"type":"string","enum":["solid","outline","text"],"default":"solid"},"size":{"type":"string","enum":["xs","sm","md","lg","xl"],"default":"md"},"color":{"type":"string","enum":["primary","secondary","success","warning","danger","info"],"default":"primary"},"density":{"type":"string","enum":["default","compact"],"default":"default"},"elevation":{"type":"integer","enum":[0,1,2,3],"default":0},"loading":{"type":"boolean","default":false},"disabled":{"type":"boolean","default":false},"fullWidth":{"type":"boolean","default":false}},"required":["component","text","action"]}]},"TextField":{"type":"object","allOf":[{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/Checkable"},{"type":"object","properties":{"component":{"const":"TextField"},"label":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"value":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"placeholder":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"description":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"multiline":{"type":"boolean","default":false},"rows":{"type":"integer","minimum":1,"default":3},"variant":{"type":"string","enum":["solid","outline","text"],"default":"outline"},"size":{"type":"string","enum":["xs","sm","md","lg","xl"],"default":"md"},"color":{"type":"string","enum":["primary","secondary","success","warning","danger","info"],"default":"primary"},"density":{"type":"string","enum":["default","compact"],"default":"default"},"required":{"type":"boolean","default":false},"disabled":{"type":"boolean","default":false},"readOnly":{"type":"boolean","default":false},"fullWidth":{"type":"boolean","default":false}},"required":["component","label"]}]},"NumberField":{"type":"object","allOf":[{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/Checkable"},{"type":"object","properties":{"component":{"const":"NumberField"},"label":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"value":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicNumber"},"description":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"min":{"type":"number"},"max":{"type":"number"},"step":{"type":"number","default":1},"variant":{"type":"string","enum":["solid","outline","text"],"default":"outline"},"size":{"type":"string","enum":["xs","sm","md","lg","xl"],"default":"md"},"color":{"type":"string","enum":["primary","secondary","success","warning","danger","info"],"default":"primary"},"density":{"type":"string","enum":["default","compact"],"default":"default"},"required":{"type":"boolean","default":false},"disabled":{"type":"boolean","default":false},"readOnly":{"type":"boolean","default":false}},"required":["component","label"]}]},"Checkbox":{"type":"object","allOf":[{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/Checkable"},{"type":"object","properties":{"component":{"const":"Checkbox"},"label":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"checked":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicBoolean"},"description":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"size":{"type":"string","enum":["xs","sm","md","lg","xl"],"default":"md"},"color":{"type":"string","enum":["primary","secondary","success","warning","danger","info"],"default":"primary"},"required":{"type":"boolean","default":false},"disabled":{"type":"boolean","default":false}},"required":["component","label"]}]},"Switch":{"type":"object","properties":{"component":{"const":"Switch"},"label":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"checked":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicBoolean"},"description":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"size":{"type":"string","enum":["xs","sm","md","lg","xl"],"default":"md"},"color":{"type":"string","enum":["primary","secondary","success","warning","danger","info"],"default":"primary"},"disabled":{"type":"boolean","default":false}},"required":["component","label"]},"RadioGroup":{"type":"object","allOf":[{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/Checkable"},{"type":"object","properties":{"component":{"const":"RadioGroup"},"label":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"value":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"options":{"type":"array","items":{"type":"object","properties":{"label":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"value":{"type":"string"},"description":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"disabled":{"type":"boolean","default":false}},"required":["label","value"],"additionalProperties":false}},"description":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"orientation":{"type":"string","enum":["horizontal","vertical"],"default":"vertical"},"size":{"type":"string","enum":["xs","sm","md","lg","xl"],"default":"md"},"color":{"type":"string","enum":["primary","secondary","success","warning","danger","info"],"default":"primary"},"required":{"type":"boolean","default":false},"disabled":{"type":"boolean","default":false}},"required":["component","label","options"]}]},"Select":{"type":"object","allOf":[{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/Checkable"},{"type":"object","properties":{"component":{"const":"Select"},"label":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"value":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"placeholder":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"options":{"type":"array","items":{"type":"object","properties":{"label":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"value":{"type":"string"},"group":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"disabled":{"type":"boolean","default":false}},"required":["value"],"additionalProperties":false}},"description":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"variant":{"type":"string","enum":["solid","outline","text"],"default":"outline"},"size":{"type":"string","enum":["xs","sm","md","lg","xl"],"default":"md"},"color":{"type":"string","enum":["primary","secondary","success","warning","danger","info"],"default":"primary"},"density":{"type":"string","enum":["default","compact"],"default":"default"},"required":{"type":"boolean","default":false},"disabled":{"type":"boolean","default":false},"fullWidth":{"type":"boolean","default":false}},"required":["component","label","options"]}]},"Slider":{"type":"object","properties":{"component":{"const":"Slider"},"label":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"value":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicNumber"},"min":{"type":"number","default":0},"max":{"type":"number","default":100},"step":{"type":"number","default":1},"description":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"size":{"type":"string","enum":["xs","sm","md","lg","xl"],"default":"md"},"color":{"type":"string","enum":["primary","secondary","success","warning","danger","info"],"default":"primary"},"disabled":{"type":"boolean","default":false}},"required":["component","label"]}},"functions":{"required":{"type":"object","properties":{"call":{"const":"required"},"args":{"type":"object","properties":{"value":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"}},"required":["value"],"unevaluatedProperties":false}},"required":["call","args"],"returnType":"boolean"},"length":{"type":"object","properties":{"call":{"const":"length"},"args":{"type":"object","properties":{"value":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"min":{"type":"number"},"max":{"type":"number"}},"required":["value"],"unevaluatedProperties":false,"anyOf":[{"required":["min"]},{"required":["max"]}]}},"required":["call","args"],"returnType":"boolean"},"regex":{"type":"object","properties":{"call":{"const":"regex"},"args":{"type":"object","properties":{"value":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"pattern":{"type":"string"}},"required":["value","pattern"],"unevaluatedProperties":false}},"required":["call","args"],"returnType":"boolean"},"numeric":{"type":"object","properties":{"call":{"const":"numeric"},"args":{"type":"object","properties":{"value":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"min":{"type":"number"},"max":{"type":"number"}},"required":["value"],"unevaluatedProperties":false,"anyOf":[{"required":["min"]},{"required":["max"]}]}},"required":["call","args"],"returnType":"boolean"},"email":{"type":"object","properties":{"call":{"const":"email"},"args":{"type":"object","properties":{"value":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"}},"required":["value"],"unevaluatedProperties":false}},"required":["call","args"],"returnType":"boolean"},"formatString":{"type":"object","properties":{"call":{"const":"formatString"},"args":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"],"unevaluatedProperties":false}},"required":["call","args"],"returnType":"string"},"formatNumber":{"type":"object","properties":{"call":{"const":"formatNumber"},"args":{"type":"object","properties":{"value":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicNumber"},"decimals":{"type":"number"},"grouping":{"type":"boolean","default":true}},"required":["value"],"unevaluatedProperties":false}},"required":["call","args"],"returnType":"string"},"formatCurrency":{"type":"object","properties":{"call":{"const":"formatCurrency"},"args":{"type":"object","properties":{"value":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicNumber"},"currency":{"type":"string"},"decimals":{"type":"number"},"grouping":{"type":"boolean","default":true}},"required":["value","currency"],"unevaluatedProperties":false}},"required":["call","args"],"returnType":"string"},"formatDate":{"type":"object","properties":{"call":{"const":"formatDate"},"args":{"type":"object","properties":{"value":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"},"format":{"type":"string"}},"required":["value","format"],"unevaluatedProperties":false}},"required":["call","args"],"returnType":"string"},"pluralize":{"type":"object","properties":{"call":{"const":"pluralize"},"args":{"type":"object","properties":{"value":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicNumber"},"zero":{"type":"string"},"one":{"type":"string"},"two":{"type":"string"},"few":{"type":"string"},"many":{"type":"string"},"other":{"type":"string"}},"required":["value","other"],"unevaluatedProperties":false}},"required":["call","args"],"returnType":"string"},"openUrl":{"type":"object","properties":{"call":{"const":"openUrl"},"args":{"type":"object","properties":{"url":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicString"}},"required":["url"],"unevaluatedProperties":false}},"required":["call","args"],"returnType":"void","allowedCallers":"rendererOnly","requiresUserActivation":true},"and":{"type":"object","properties":{"call":{"const":"and"},"args":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicBoolean"},"minItems":2}},"required":["values"],"unevaluatedProperties":false}},"required":["call","args"],"returnType":"boolean"},"or":{"type":"object","properties":{"call":{"const":"or"},"args":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicBoolean"},"minItems":2}},"required":["values"],"unevaluatedProperties":false}},"required":["call","args"],"returnType":"boolean"},"not":{"type":"object","properties":{"call":{"const":"not"},"args":{"type":"object","properties":{"value":{"$ref":"https://a2ui.org/specification/v1_0/common_types.json#/$defs/DynamicBoolean"}},"required":["value"],"unevaluatedProperties":false}},"required":["call","args"],"returnType":"boolean"}},"$defs":{"anyComponent":{"oneOf":[{"$ref":"#/components/Flex"},{"$ref":"#/components/Card"},{"$ref":"#/components/Divider"},{"$ref":"#/components/Typography"},{"$ref":"#/components/Image"},{"$ref":"#/components/Chip"},{"$ref":"#/components/Avatar"},{"$ref":"#/components/Statistic"},{"$ref":"#/components/DataList"},{"$ref":"#/components/Alert"},{"$ref":"#/components/Button"},{"$ref":"#/components/TextField"},{"$ref":"#/components/NumberField"},{"$ref":"#/components/Checkbox"},{"$ref":"#/components/Switch"},{"$ref":"#/components/RadioGroup"},{"$ref":"#/components/Select"},{"$ref":"#/components/Slider"}],"discriminator":{"propertyName":"component"}},"anyFunction":{"oneOf":[{"$ref":"#/functions/required"},{"$ref":"#/functions/length"},{"$ref":"#/functions/regex"},{"$ref":"#/functions/numeric"},{"$ref":"#/functions/email"},{"$ref":"#/functions/formatString"},{"$ref":"#/functions/formatNumber"},{"$ref":"#/functions/formatCurrency"},{"$ref":"#/functions/formatDate"},{"$ref":"#/functions/pluralize"},{"$ref":"#/functions/openUrl"},{"$ref":"#/functions/and"},{"$ref":"#/functions/or"},{"$ref":"#/functions/not"}]}}}