neba 1.18.1 → 1.19.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 (189) hide show
  1. package/dist/a2ui/adapter-catalog.json +1 -1
  2. package/dist/a2ui/catalog.json +3 -3
  3. package/dist/a2ui/index.d.ts +37 -16
  4. package/dist/a2ui/index.js +1 -1
  5. package/dist/a2ui/schema.d.ts +7 -0
  6. package/dist/a2ui/schema.js +1 -1
  7. package/dist/components/accordion/Accordion.js +1 -1
  8. package/dist/components/agent-steps/AgentSteps.js +1 -1
  9. package/dist/components/alert/Alert.js +1 -1
  10. package/dist/components/anchor/Anchor.js +1 -1
  11. package/dist/components/animate-counter/AnimateCounter.js +1 -1
  12. package/dist/components/animate-headline/AnimateHeadline.js +1 -1
  13. package/dist/components/animate-lighting/AnimateLighting.js +1 -1
  14. package/dist/components/animate-marquee/AnimateMarquee.js +1 -1
  15. package/dist/components/animate-scramble/AnimateScramble.js +1 -1
  16. package/dist/components/animate-typing/AnimateTyping.js +1 -1
  17. package/dist/components/app-logo/AppLogo.js +1 -1
  18. package/dist/components/approval/Approval.js +1 -1
  19. package/dist/components/aspect-ratio/AspectRatio.js +1 -1
  20. package/dist/components/avatar/Avatar.js +1 -1
  21. package/dist/components/badge/Badge.js +1 -1
  22. package/dist/components/bar-chart/BarChart.js +1 -1
  23. package/dist/components/blockquote/Blockquote.js +1 -1
  24. package/dist/components/bottom-navigation/BottomNavigation.js +1 -1
  25. package/dist/components/breadcrumb/Breadcrumb.js +1 -1
  26. package/dist/components/button/Button.js +1 -1
  27. package/dist/components/button-group/ButtonGroup.js +1 -1
  28. package/dist/components/calendar/Calendar.js +1 -1
  29. package/dist/components/carousel/Carousel.js +1 -1
  30. package/dist/components/chat-bubble/ChatBubble.js +1 -1
  31. package/dist/components/checkbox/Checkbox.js +1 -1
  32. package/dist/components/checkbox/index.d.ts +1 -1
  33. package/dist/components/checkbox-group/index.d.ts +1 -1
  34. package/dist/components/chip/Chip.d.ts +32 -3
  35. package/dist/components/chip/Chip.js +1 -1
  36. package/dist/components/code-block/CodeBlock.js +1 -1
  37. package/dist/components/collapsible/Collapsible.js +1 -1
  38. package/dist/components/color-picker/ColorPicker.js +1 -1
  39. package/dist/components/combobox/Combobox.d.ts +11 -0
  40. package/dist/components/combobox/Combobox.js +1 -1
  41. package/dist/components/combobox/index.d.ts +1 -1
  42. package/dist/components/command-palette/CommandPalette.d.ts +21 -5
  43. package/dist/components/command-palette/CommandPalette.js +1 -1
  44. package/dist/components/command-palette/CommandPaletteSheet.d.ts +27 -0
  45. package/dist/components/command-palette/CommandPaletteSheet.js +1 -0
  46. package/dist/components/command-palette/index.d.ts +1 -1
  47. package/dist/components/confirm/Confirm.d.ts +7 -5
  48. package/dist/components/confirm/Confirm.js +1 -1
  49. package/dist/components/data-list/DataList.js +1 -1
  50. package/dist/components/data-table/DataTable.js +1 -1
  51. package/dist/components/data-table/RowsPerPage.d.ts +43 -0
  52. package/dist/components/data-table/RowsPerPage.js +1 -0
  53. package/dist/components/date-picker/DatePicker.js +1 -1
  54. package/dist/components/date-range-picker/DateRangePicker.js +1 -1
  55. package/dist/components/date-time-picker/DateTimePicker.js +1 -1
  56. package/dist/components/dialog/Dialog.js +1 -1
  57. package/dist/components/dialog/index.d.ts +1 -1
  58. package/dist/components/drawer/Drawer.d.ts +1 -1
  59. package/dist/components/drawer/Drawer.js +1 -1
  60. package/dist/components/empty/Empty.js +1 -1
  61. package/dist/components/file-picker/FilePicker.js +1 -1
  62. package/dist/components/floating-action-button/FloatingActionButton.js +1 -1
  63. package/dist/components/floating-action-button/index.d.ts +1 -0
  64. package/dist/components/floating-bottom-navigation/FloatingBottomNavigation.js +1 -1
  65. package/dist/components/footer/Footer.js +1 -1
  66. package/dist/components/gallery/Gallery.js +1 -1
  67. package/dist/components/gauge-chart/GaugeChart.js +1 -1
  68. package/dist/components/header/Header.js +1 -1
  69. package/dist/components/heatmap-chart/HeatmapChart.js +1 -1
  70. package/dist/components/highlight/Highlight.js +1 -1
  71. package/dist/components/hover-card/HoverCard.js +1 -1
  72. package/dist/components/how-to-steps/HowToSteps.d.ts +3 -0
  73. package/dist/components/how-to-steps/HowToSteps.js +1 -1
  74. package/dist/components/image/Image.js +1 -1
  75. package/dist/components/inline-citation/InlineCitation.d.ts +24 -0
  76. package/dist/components/inline-citation/InlineCitation.js +1 -1
  77. package/dist/components/list/List.js +1 -1
  78. package/dist/components/menu/Menu.js +1 -1
  79. package/dist/components/menubar/Menubar.js +1 -1
  80. package/dist/components/meter/Meter.js +1 -1
  81. package/dist/components/mockup/Mockup.js +1 -1
  82. package/dist/components/navigation-menu/NavigationMenu.d.ts +2 -1
  83. package/dist/components/navigation-menu/NavigationMenu.js +1 -1
  84. package/dist/components/number-field/NumberField.js +1 -1
  85. package/dist/components/number-field/index.d.ts +1 -1
  86. package/dist/components/overlay/Overlay.js +1 -1
  87. package/dist/components/page-layout/PageLayout.js +1 -1
  88. package/dist/components/pagination/Pagination.js +1 -1
  89. package/dist/components/panes/Panes.js +1 -1
  90. package/dist/components/pie-chart/PieChart.js +1 -1
  91. package/dist/components/pill/Pill.js +1 -1
  92. package/dist/components/popover/Popover.js +1 -1
  93. package/dist/components/progress-box/ProgressBox.js +1 -1
  94. package/dist/components/progress-circular/ProgressCircular.js +1 -1
  95. package/dist/components/progress-linear/ProgressLinear.js +1 -1
  96. package/dist/components/prompt-input/PromptInput.js +1 -1
  97. package/dist/components/provider/NebaProvider.js +1 -1
  98. package/dist/components/radio-group/RadioGroup.js +1 -1
  99. package/dist/components/radio-group/index.d.ts +1 -1
  100. package/dist/components/rating/Rating.js +1 -1
  101. package/dist/components/reasoning/Reasoning.js +1 -1
  102. package/dist/components/scatter-chart/ScatterChart.js +1 -1
  103. package/dist/components/scroll-area/ScrollArea.js +1 -1
  104. package/dist/components/scroll-zone/ScrollZone.js +1 -1
  105. package/dist/components/segmented-button/SegmentedButton.js +1 -1
  106. package/dist/components/select/Select.d.ts +12 -0
  107. package/dist/components/select/Select.js +1 -1
  108. package/dist/components/select/index.d.ts +1 -1
  109. package/dist/components/shortcut/Shortcut.js +1 -1
  110. package/dist/components/sidebar/Sidebar.js +1 -1
  111. package/dist/components/sidebar/SidebarTrigger.js +1 -1
  112. package/dist/components/skeleton/Skeleton.js +1 -1
  113. package/dist/components/slider/Slider.js +1 -1
  114. package/dist/components/slider/index.d.ts +1 -1
  115. package/dist/components/sources/Sources.js +1 -1
  116. package/dist/components/sparkline/Sparkline.d.ts +7 -0
  117. package/dist/components/sparkline/Sparkline.js +1 -1
  118. package/dist/components/spoiler/Spoiler.js +1 -1
  119. package/dist/components/statistic/Statistic.js +1 -1
  120. package/dist/components/streaming-text/StreamingText.d.ts +10 -6
  121. package/dist/components/streaming-text/StreamingText.js +1 -1
  122. package/dist/components/switch/Switch.js +1 -1
  123. package/dist/components/switch/index.d.ts +1 -1
  124. package/dist/components/table/Table.js +1 -1
  125. package/dist/components/table/index.d.ts +1 -1
  126. package/dist/components/tabs/Tabs.js +1 -1
  127. package/dist/components/text-field/TextField.js +1 -1
  128. package/dist/components/text-field/index.d.ts +1 -1
  129. package/dist/components/text-link/TextLink.js +1 -1
  130. package/dist/components/time-picker/TimePicker.js +1 -1
  131. package/dist/components/timeline-chart/TimelineChart.js +1 -1
  132. package/dist/components/toast/Toast.d.ts +38 -5
  133. package/dist/components/toast/Toast.js +1 -1
  134. package/dist/components/toast/index.d.ts +2 -2
  135. package/dist/components/toast/index.js +1 -1
  136. package/dist/components/toggle/Toggle.js +1 -1
  137. package/dist/components/toggle-group/ToggleGroup.js +1 -1
  138. package/dist/components/tool-call/ToolCall.js +1 -1
  139. package/dist/components/toolbar/Toolbar.js +1 -1
  140. package/dist/components/tooltip/Tooltip.js +1 -1
  141. package/dist/components/tour/Tour.js +1 -1
  142. package/dist/components/tour/index.d.ts +1 -1
  143. package/dist/components/transfer/Transfer.d.ts +7 -0
  144. package/dist/components/transfer/Transfer.js +1 -1
  145. package/dist/components/tree-select/TreeSelect.js +1 -1
  146. package/dist/components/tree-view/TreeView.js +1 -1
  147. package/dist/components/window-pane/WindowPane.js +1 -1
  148. package/dist/internal/animate.d.ts +34 -2
  149. package/dist/internal/animate.js +1 -1
  150. package/dist/internal/cache.d.ts +7 -1
  151. package/dist/internal/cache.js +1 -1
  152. package/dist/internal/calendar.d.ts +40 -1
  153. package/dist/internal/calendar.js +1 -1
  154. package/dist/internal/chart-frame.d.ts +86 -8
  155. package/dist/internal/chart-frame.js +1 -1
  156. package/dist/internal/chart-line.js +1 -1
  157. package/dist/internal/chart.d.ts +13 -0
  158. package/dist/internal/chart.js +1 -1
  159. package/dist/internal/data-table.d.ts +7 -1
  160. package/dist/internal/data-table.js +1 -1
  161. package/dist/internal/date.d.ts +10 -0
  162. package/dist/internal/date.js +1 -1
  163. package/dist/internal/idle.d.ts +10 -0
  164. package/dist/internal/idle.js +1 -0
  165. package/dist/internal/link.d.ts +4 -3
  166. package/dist/internal/media.js +1 -1
  167. package/dist/internal/observe.d.ts +4 -0
  168. package/dist/internal/observe.js +1 -1
  169. package/dist/internal/page-layout.d.ts +30 -2
  170. package/dist/internal/page-layout.js +1 -1
  171. package/dist/internal/picker.js +1 -1
  172. package/dist/internal/progress.d.ts +17 -0
  173. package/dist/internal/progress.js +1 -1
  174. package/dist/internal/refs.d.ts +18 -0
  175. package/dist/internal/refs.js +1 -0
  176. package/dist/internal/run.d.ts +34 -19
  177. package/dist/internal/run.js +1 -1
  178. package/dist/internal/sizer.d.ts +9 -4
  179. package/dist/internal/sizer.js +1 -1
  180. package/dist/internal/styles.d.ts +14 -0
  181. package/dist/internal/styles.js +1 -1
  182. package/dist/internal/tile.d.ts +34 -0
  183. package/dist/internal/tile.js +1 -0
  184. package/dist/internal/wheel.d.ts +24 -1
  185. package/dist/internal/wheel.js +1 -1
  186. package/dist/styles.css +1 -1
  187. package/dist/tailwind.css +366 -61
  188. package/dist/types.d.ts +4 -2
  189. package/package.json +19 -19
@@ -1 +1 @@
1
- {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://neba.cdget.com/a2ui/1.18/catalog.json","protocolVersion":"1.0","catalogId":"https://neba.cdget.com/a2ui/1.18/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"}]}}}
1
+ {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://neba.cdget.com/a2ui/1.19/catalog.json","protocolVersion":"1.0","catalogId":"https://neba.cdget.com/a2ui/1.19/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"}]}}}
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://neba.cdget.com/a2ui/1.18/catalog.json",
3
+ "$id": "https://neba.cdget.com/a2ui/1.19/catalog.json",
4
4
  "protocolVersion": "1.0",
5
5
  "title": "Neba",
6
6
  "description": "The subset of the Neba component library an agent can describe: eighteen components whose every prop is a literal, an enumerated value or a reference to another component by ID.",
7
- "catalogId": "https://neba.cdget.com/a2ui/1.18/catalog.json",
7
+ "catalogId": "https://neba.cdget.com/a2ui/1.19/catalog.json",
8
8
  "instructions": "Neba is a React component library. Every component below is a real one, and what you write here is turned into that component rather than into markup.\n\n## Laying a surface out\n\nNothing has a margin of its own. Two components sit beside each other only inside a `Flex`, and the gutter between them is that `Flex`'s `spacing`. Nest a vertical `Flex` inside a horizontal one to build a grid.\n\nA component that takes a child takes an **ID**, never an inline definition, and a `Card` and an `Alert` take exactly one — wrap several in a `Flex` and pass that.\n\n## Colour means something here\n\n`color` is one of six semantic families and never a decorative choice. `success`, `warning` and `danger` say how something went; `info` is a note; `primary` is the product's own accent and `secondary` is the quiet one. Do not reach for a family because a screen needs variety, and do not use `danger` for anything but something that failed or something that destroys.\n\nThere is **one** `solid` control in a view — the action the view exists for. Everything else is `outline` or `text`.\n\n## One ladder\n\n`size` is the same five steps on every component, so an `md` Button, an `md` TextField and an `md` Select are the same height and line up in a row. Pick one size for a screen and stay on it; `density` is the prop for making something tighter, and it changes padding only.\n\n## Fields carry their own words\n\nA `TextField`, a `Select`, a `Checkbox` and the rest each draw their own label, helper line and error message. Never add a `Typography` above a field to label it, and never add one below it to show an error — put the message in the field's own `checks`. Give every check a `message` that says what to fix: one without a message shows \"Validation failed\", which tells the reader nothing.\n\n## Text\n\nEvery string a reader sees is a `Typography`. Its `level` says what the text *is* rather than how big it should be: use `h1`…`h6` in order for real headings, and do not pick a heading level because you want larger text.\n\n## Building a sentence out of a value\n\nThere are no operators. `formatString(\"Hello ${/user/name}\")` is how a value is put into a sentence, and `formatNumber`, `formatCurrency`, `formatDate` and `pluralize` are how a number or a date is written in the reader's own language. Never assemble a date out of its parts.",
9
9
  "components": {
10
10
  "Flex": {
@@ -1650,7 +1650,7 @@
1650
1650
  },
1651
1651
  "formatDate": {
1652
1652
  "type": "object",
1653
- "description": "Writes a date or a time through a pattern. The names of months and weekdays are English whatever the reader's language, so for a reader in another language write a pattern of numbers in the order that language uses.",
1653
+ "description": "Writes a date or a time through a pattern. The names of months and weekdays are written in the language the renderer was built for, and the pattern decides their order, so write one in the order the reader's language uses.",
1654
1654
  "properties": {
1655
1655
  "call": {
1656
1656
  "const": "formatDate"
@@ -23,16 +23,20 @@
23
23
  *
24
24
  * ## Versions
25
25
  *
26
- * The catalog is written against **A2UI v1.0** and `@a2ui/react` 0.11's newest
27
- * renderer is **v0.9**, so this registers with `@a2ui/react/v0_9`. The eighteen
28
- * components only use constructs the two versions share, which is what makes
29
- * the bridge a rename rather than a translation, and none of the three
30
- * differences that exist makes the renderer refuse a message: v1.0 moved
31
- * `accessibility` from the catalog entry to the envelope, which `schema.ts` puts
32
- * back; v1.0 lets a check leave out the `message` v0.9 requires, which
33
- * `schema.ts` accepts; and v1.0's `Action` gained a `userMessage` that the v0.9
34
- * renderer accepts and never passes on — the action a host receives is built
35
- * from the event's `name` and `context` alone.
26
+ * The catalog is written against **A2UI v1.0** and `@a2ui/react` 0.12's newest
27
+ * renderer is **v0.9**, so this registers with `@a2ui/react/v0_9`. The messages
28
+ * it draws are v0.9's unless `protocolVersion` asks for v1.0's: `web_core` reads
29
+ * either into the surface model `A2uiSurface` draws, and refuses a surface
30
+ * whose messages name another version than its catalog. The eighteen components only use constructs
31
+ * the two versions share, which is what makes the bridge a rename rather than a
32
+ * translation, and none of the three differences that exist makes the renderer
33
+ * refuse a message: v1.0 moved `accessibility` from the catalog entry to the
34
+ * envelope, which `schema.ts` puts back; v1.0 lets a check leave out the
35
+ * `message` v0.9 requires, which `schema.ts` accepts; and v1.0's `Action`
36
+ * gained a `userMessage` that v0.9's refuses, which `schema.ts` accepts and the
37
+ * host receives resolved. A v1.0 message may also carry `accessibility.live`,
38
+ * `accessibility.hidden` and a component's `metadata`; no component reads them,
39
+ * and the schemas drop them rather than refusing the component.
36
40
  *
37
41
  * There is no v1.0 React renderer to register with yet. When there is, what
38
42
  * changes is this file's import and nothing in `catalog.json`.
@@ -44,12 +48,21 @@ export { componentSchema, type CatalogSchema } from './schema.js';
44
48
  /** What `createNebaCatalog` takes. */
45
49
  export interface NebaCatalogOptions {
46
50
  /**
47
- * The language `formatNumber`, `formatCurrency` and `pluralize` write in.
48
- * Pass the one the components are in — a `NebaProvider`'s `locale` — or the
49
- * three follow the runtime's language while the components follow the
50
- * provider. Left out, they follow the runtime.
51
+ * The language `formatNumber`, `formatCurrency`, `formatDate` and `pluralize`
52
+ * write in. Pass the one the components are in — a `NebaProvider`'s `locale` —
53
+ * or the four write American English while the components follow the
54
+ * provider. Left out, they write `en-US`, on a server and in every browser.
51
55
  */
52
56
  locale?: string;
57
+ /**
58
+ * The protocol version of the messages the catalog draws, as their `version`
59
+ * spells it. `web_core` refuses a surface whose messages name another
60
+ * version than its catalog, so pass the one the agent writes. The components
61
+ * and the functions are the same for both.
62
+ *
63
+ * @default 'v0.9'
64
+ */
65
+ protocolVersion?: 'v0.9' | 'v1.0';
53
66
  }
54
67
  /**
55
68
  * The catalog, ready to hand to a `MessageProcessor`.
@@ -60,13 +73,21 @@ export interface NebaCatalogOptions {
60
73
  *
61
74
  * ```tsx
62
75
  * import { MessageProcessor } from '@a2ui/web_core/v0_9';
63
- * import { A2uiSurface } from '@a2ui/react/v0_9';
76
+ * import { A2uiSurface, type ReactComponentImplementation } from '@a2ui/react/v0_9';
64
77
  * import { createNebaCatalog } from 'neba/a2ui';
65
78
  *
66
79
  * const catalog = createNebaCatalog({ locale: 'ko' });
67
- * const processor = new MessageProcessor([catalog]);
80
+ * const processor = new MessageProcessor<ReactComponentImplementation>([catalog]);
68
81
  * ```
69
82
  *
83
+ * The type argument is what makes a surface the processor creates one
84
+ * `A2uiSurface` takes; `MessageProcessor` does not work it out from the
85
+ * catalog.
86
+ *
87
+ * A catalog draws one version, and so does a processor holding it, since a
88
+ * surface finds its catalog by id alone. A host whose agents write both keeps
89
+ * a processor for each and hands a message to the one its `version` names.
90
+ *
70
91
  * The `catalogId` is the one in `catalog.json`, which is also the URL the file
71
92
  * is served from — so the id a surface names and the schema an agent was given
72
93
  * are the same string without anybody having to keep them in step.
@@ -1 +1 @@
1
- import{Catalog as e,createBasicCatalogFunctions as o}from"@a2ui/web_core/v0_9";import t from"./adapter-catalog.json"with{type:"json"};import{nebaComponents as n}from"./components.js";export{nebaComponents}from"./components.js";export{componentSchema}from"./schema.js";function a(e){const n=o({locale:e}),a=new Set(Object.keys(t.functions)),r=n.filter(e=>a.has(e.name));if(r.length!==a.size){const e=[...a].filter(e=>!n.some(o=>o.name===e));throw new Error(`neba/a2ui: the catalog declares ${e.join(", ")}, which @a2ui/web_core does not implement`)}return r.map(e=>{return"openUrl"===e.name?(o=e,{...o,execute:(e,t,n)=>{if("undefined"==typeof navigator||!("userActivation"in navigator)||navigator.userActivation.isActive)return o.execute(e,t,n)}}):e;var o})}export function createNebaCatalog(o={}){return new e(t.catalogId,n,a(o.locale))}export const nebaCatalogId=t.catalogId;
1
+ import{Catalog as e,createBasicCatalogFunctions as t}from"@a2ui/web_core/v0_9";import o from"./adapter-catalog.json"with{type:"json"};import{nebaComponents as n}from"./components.js";import{functionSchema as r}from"./schema.js";export{nebaComponents}from"./components.js";export{componentSchema}from"./schema.js";function a(e){const n=t({locale:e}),a=new Set(Object.keys(o.functions)),i=n.filter(e=>a.has(e.name));if(i.length!==a.size){const e=[...a].filter(e=>!n.some(t=>t.name===e));throw new Error(`neba/a2ui: the catalog declares ${e.join(", ")}, which @a2ui/web_core does not implement`)}return i.map(e=>{const t={...e,schema:r(e.name,e.schema)};switch(e.name){case"openUrl":return o=t,{...o,execute:(e,t,n)=>{if("undefined"==typeof navigator||!("userActivation"in navigator)||navigator.userActivation.isActive)return o.execute(e,t,n)}};case"formatDate":return function(e){return{...e,execute:(t,o,n)=>e.execute("string"==typeof t.value&&c.test(t.value)?{...t,value:`${t.value}T00:00:00`}:t,o,n)}}(t);default:return t}var o})}const c=/^\d{4}-\d{2}-\d{2}$/;export function createNebaCatalog(t={}){const{locale:r,protocolVersion:c="v0.9"}=t;if("v0.9"!==c&&"v1.0"!==c)throw new Error(`neba/a2ui: protocolVersion is 'v0.9' or 'v1.0', not ${JSON.stringify(c)}`);return new e(o.catalogId,c.slice(1),n,a(r))}export const nebaCatalogId=o.catalogId;
@@ -47,6 +47,13 @@ export interface CatalogSchema {
47
47
  minimum?: number;
48
48
  additionalProperties?: boolean;
49
49
  }
50
+ /**
51
+ * A function's argument schema, as wide as the catalog declares it.
52
+ *
53
+ * `extend` for `componentSchema`'s reason: the schema is built by `web_core`'s
54
+ * copy of Zod, and only the arguments named above are this copy's.
55
+ */
56
+ export declare function functionSchema(name: string, schema: z.ZodTypeAny): z.ZodTypeAny;
50
57
  /**
51
58
  * One component's entry, as the schema a `ComponentApi` carries.
52
59
  *
@@ -1 +1 @@
1
- import{z as e}from"zod/v3";import{childList as t,CommonSchemas as r,componentId as i}from"@a2ui/web_core/v0_9";const n="https://a2ui.org/specification/v1_0/common_types.json#/$defs/",o=new Set(["$ref","type","enum","default","description","properties","required","items","minimum","additionalProperties"]),a=new Set(["type","description","properties","required","additionalProperties"]);function s(e,t,r){for(const i of Object.keys(e))if(!r.has(i))throw new Error(`a2ui: ${t} uses \`${i}\`, which this adapter does not know`)}const c={Action:()=>r.Action,Child:()=>i(),ChildList:()=>t(),DynamicBoolean:()=>r.DynamicBoolean,DynamicNumber:()=>r.DynamicNumber,DynamicString:()=>r.DynamicString};function u(t,r){if(s(t,r,o),t.$ref){const e=t.$ref.startsWith(n)?t.$ref.slice(61):"",i=c[e];if(!i)throw new Error(`a2ui: ${r} refers to ${t.$ref}, which this adapter does not know`);return i()}if(t.enum){const r=t.enum;if(r.every(e=>"string"==typeof e))return e.enum(r);const i=r.map(t=>e.literal(t));return 1===i.length?i[0]:e.union(i)}if(void 0!==t.minimum&&"number"!==t.type&&"integer"!==t.type)throw new Error(`a2ui: ${r} has a minimum but is not a number`);switch(t.type){case"string":return e.string();case"number":case"integer":{const r="integer"===t.type?e.number().int():e.number();return void 0===t.minimum?r:r.min(t.minimum)}case"boolean":return e.boolean();case"array":if(!t.items)throw new Error(`a2ui: ${r} is an array with no items`);return e.array(u(t.items,`${r}[]`));case"object":return m(t,r);default:throw new Error(`a2ui: ${r} has a type this adapter does not know`)}}function m(t,r){if(!0===t.additionalProperties)throw new Error(`a2ui: ${r} allows any property, which this adapter cannot check`);const i=new Set(t.required??[]),n={};for(const[e,o]of Object.entries(t.properties??{})){if("component"===e)continue;const t=u(o,`${r}.${e}`);n[e]=void 0===o.default?i.has(e)?t:t.optional():t.default(o.default).optional()}return e.object(n)}const p=(()=>{const t=r.Checkable,i=r.CheckRule.extend({message:e.string().optional()}),n=t.shape.checks;return t.extend({checks:e.array(i).optional().describe(n.description??"")})})();export function componentSchema(t,i){const o=i.allOf??[i];let c=e.object({accessibility:r.AccessibilityAttributes.optional()});for(const e of o)if(e.$ref!==`${n}Checkable`){if(e.$ref)throw new Error(`a2ui: ${t} is composed with ${e.$ref}, which this adapter cannot merge`);s(e,t,a),c=c.extend(m(e,t).shape)}else c=c.extend(p.shape);return c}
1
+ import{z as e}from"zod/v3";import{childList as t,CommonSchemas as n,componentId as r}from"@a2ui/web_core/v0_9";const i="https://a2ui.org/specification/v1_0/common_types.json#/$defs/",o=new Set(["$ref","type","enum","default","description","properties","required","items","minimum","additionalProperties"]),a=new Set(["type","description","properties","required","additionalProperties"]);function s(e,t,n){for(const r of Object.keys(e))if(!n.has(r))throw new Error(`a2ui: ${t} uses \`${r}\`, which this adapter does not know`)}const c={Action:()=>h,Child:()=>r(),ChildList:()=>t(),DynamicBoolean:()=>n.DynamicBoolean,DynamicNumber:()=>n.DynamicNumber,DynamicString:()=>n.DynamicString};function u(t,n){if(s(t,n,o),t.$ref){const e=t.$ref.startsWith(i)?t.$ref.slice(61):"",r=c[e];if(!r)throw new Error(`a2ui: ${n} refers to ${t.$ref}, which this adapter does not know`);return r()}if(t.enum){const n=t.enum;if(n.every(e=>"string"==typeof e))return e.enum(n);const r=n.map(t=>e.literal(t));return 1===r.length?r[0]:e.union(r)}if(void 0!==t.minimum&&"number"!==t.type&&"integer"!==t.type)throw new Error(`a2ui: ${n} has a minimum but is not a number`);switch(t.type){case"string":return e.string();case"number":case"integer":{const n="integer"===t.type?e.number().int():e.number();return void 0===t.minimum?n:n.min(t.minimum)}case"boolean":return e.boolean();case"array":if(!t.items)throw new Error(`a2ui: ${n} is an array with no items`);return e.array(u(t.items,`${n}[]`));case"object":return m(t,n);default:throw new Error(`a2ui: ${n} has a type this adapter does not know`)}}function m(t,n){if(!0===t.additionalProperties)throw new Error(`a2ui: ${n} allows any property, which this adapter cannot check`);const r=new Set(t.required??[]),i={};for(const[e,o]of Object.entries(t.properties??{})){if("component"===e)continue;const t=u(o,`${n}.${e}`);i[e]=void 0===o.default?r.has(e)?t:t.optional():t.default(o.default).optional()}return e.object(i)}const p=(()=>{const t=n.Checkable,r=n.CheckRule.extend({message:e.string().optional()}),i=t.shape.checks;return t.extend({checks:e.array(r).optional().describe(i.description??"")})})(),h=(()=>{const[t,r]=n.Action.options,i=t.shape.event;return e.union([t.extend({event:i.extend({userMessage:n.DynamicString.optional()})}),r]).describe(n.Action.description??"")})(),d={numeric:()=>({value:e.union([n.DynamicNumber,n.DynamicString])}),openUrl:()=>({url:n.DynamicString})};export function functionSchema(e,t){const n=d[e];return n?t.extend(n()):t}export function componentSchema(t,r){const o=r.allOf??[r];let c=e.object({accessibility:n.AccessibilityAttributes.optional()});for(const e of o)if(e.$ref!==`${i}Checkable`){if(e.$ref)throw new Error(`a2ui: ${t} is composed with ${e.$ref}, which this adapter cannot merge`);s(e,t,a),c=c.extend(m(e,t).shape)}else c=c.extend(p.shape);return c}
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as n}from"react/jsx-runtime";import*as a from"react";import{Accordion as l}from"@base-ui/react/accordion";import{boxPaddingXClasses as t,boxPaddingYClasses as i}from"../box/Box.js";import{ChevronIcon as s}from"../../internal/icons.js";import{accordionPanelClasses as r,clampClasses as d,clampSlot as o,cx as c,focusRingClasses as m,gapClasses as f,hasContent as u,iconClasses as x,insetRingClasses as b,metaTextClasses as h,radiusClasses as v,sheetBodyClasses as p,sheetHeaderGapClasses as g,sheetTitleClasses as N,surfaceClasses as y,surfaceSlots as j,transitionClasses as w,disclosureChevronClasses as z,disclosureTriggerClasses as A}from"../../internal/styles.js";import{useStyleDefaults as k}from"../../internal/defaults.js";const C=/*@__PURE__*/a.createContext({size:"md",density:"default",dividers:!0,headingLevel:3,disabled:!1}),I={solid:[y,"text-(--neba-fg) bg-(--n-panel-hover)","[box-shadow:var(--n-elev),var(--neba-plate-solid)]"].join(" "),outline:[y,"border text-(--neba-fg) bg-(--n-panel)","[border-color:var(--n-line)]","[box-shadow:var(--n-elev),var(--neba-plate-glass)]"].join(" "),text:"text-(--neba-fg) bg-transparent"},L={xs:v.xs,sm:v.xs,md:v.sm,lg:v.sm,xl:v.md};export const Accordion=/*@__PURE__*/a.forwardRef(function Accordion(n,t){const{variant:i="outline",size:s="md",color:r="primary",density:d="default",elevation:o=0,multiple:m=!1,value:f,defaultValue:u,onValueChange:x,dividers:b=!0,headingLevel:h=3,disabled:p=!1,hiddenUntilFound:g=!0,keepMounted:N=!1,className:y,style:z,children:A,...L}=k(n,["size","density","variant"]),V=a.useMemo(()=>({size:s,density:d,dividers:b,headingLevel:h,disabled:p}),[s,d,b,h,p]),$=c("flex flex-col",v[s],I[i],w,b?"overflow-hidden [&>div+div]:border-t [&>div+div]:[border-color:var(--n-line)]":"p-1",y??"");return e(C.Provider,{value:V,children:e(l.Root,{ref:t,multiple:m,value:f,defaultValue:u,onValueChange:e=>x?.(e),disabled:p,hiddenUntilFound:g,keepMounted:N,className:$,style:{...j(r,o),...z},...L,children:A})})});export const AccordionItem=/*@__PURE__*/a.forwardRef(function AccordionItem({value:v,title:y,subtitle:j,startIcon:k,action:I,lines:V,disabled:$=!1,className:M,children:R,...F},P){const U=a.useContext(C),{size:B,density:E,dividers:H,headingLevel:T}=U,q=$||U.disabled,D=V?d(V):"",G=o(V),J=t[E][B],K=i[E][B];return n(l.Item,{ref:P,value:v,disabled:$,className:c("flex flex-col",M??""),...F,children:[n("div",{className:"flex w-full items-center",children:[e(l.Header,{className:"neba-heading flex min-w-0 flex-1 items-center [&.neba-heading]:m-0 [&.neba-heading]:[font:inherit]",render:a.createElement(`h${T}`),children:n(l.Trigger,{className:c("flex min-w-0 flex-1 items-center text-start",A,q?"":"cursor-pointer",J,K,f[B],w,x,H?b:m,H?"":L[B],q?"cursor-not-allowed bg-transparent text-(--neba-disabled-fg)":"hover:bg-(--n-soft) data-[panel-open]:text-(--n-on-tint)"),children:[u(k)?e("span",{className:"flex h-[1lh] shrink-0 items-center text-(--neba-muted-fg)",children:k}):null,n("span",{className:`flex min-w-0 flex-1 flex-col ${g[B]}`,children:[u(y)?e("span",{className:c("font-semibold",N[B],D),style:G,children:y}):null,u(j)?e("span",{className:c("text-(--neba-muted-fg)",h[B],D),style:G,children:j}):null]}),e("span",{className:`${z} text-(--neba-muted-fg)`,children:e(s,{})})]})}),u(I)?e("span",{className:`flex shrink-0 items-center ${J}`,children:I}):null]}),e(l.Panel,{className:r,children:e("div",{className:["text-(--neba-muted-fg)",p[B],J,"compact"===E?"pb-2":"pb-4"].join(" "),children:R})})]})});
1
+ "use client";import{jsx as e,jsxs as n}from"react/jsx-runtime";import*as a from"react";import{Accordion as l}from"@base-ui/react/accordion";import{boxPaddingXClasses as t,boxPaddingYClasses as i}from"../box/Box.js";import{ChevronIcon as s}from"../../internal/icons.js";import{accordionPanelClasses as r,clampClasses as d,clampSlot as o,cx as c,focusRingClasses as m,gapClasses as f,hasContent as u,iconClasses as x,insetRingClasses as b,metaTextClasses as h,radiusClasses as v,sheetBodyClasses as p,sheetHeaderGapClasses as g,sheetTitleClasses as N,surfaceClasses as y,surfaceSlots as w,transitionClasses as j,disclosureChevronClasses as z,disclosureTriggerClasses as A}from"../../internal/styles.js";import{useStyleDefaults as k}from"../../internal/defaults.js";const C=/*@__PURE__*/a.createContext({size:"md",density:"default",dividers:!0,headingLevel:3,disabled:!1}),I={solid:y+" text-(--neba-fg) bg-(--n-panel-hover) [box-shadow:var(--n-elev),var(--neba-plate-solid)]",outline:y+" border text-(--neba-fg) bg-(--n-panel) [border-color:var(--n-line)] [box-shadow:var(--n-elev),var(--neba-plate-glass)]",text:"text-(--neba-fg) bg-transparent"},L={xs:v.xs,sm:v.xs,md:v.sm,lg:v.sm,xl:v.md};export const Accordion=/*@__PURE__*/a.forwardRef(function Accordion(n,t){const{variant:i="outline",size:s="md",color:r="primary",density:d="default",elevation:o=0,multiple:m=!1,value:f,defaultValue:u,onValueChange:x,dividers:b=!0,headingLevel:h=3,disabled:p=!1,hiddenUntilFound:g=!0,keepMounted:N=!1,className:y,style:z,children:A,...L}=k(n,["size","density","variant"]),V=a.useMemo(()=>({size:s,density:d,dividers:b,headingLevel:h,disabled:p}),[s,d,b,h,p]),$=c("flex flex-col",v[s],I[i],j,b?"overflow-hidden [&>div+div]:border-t [&>div+div]:[border-color:var(--n-line)]":"p-1",y??"");return e(C.Provider,{value:V,children:e(l.Root,{ref:t,multiple:m,value:f,defaultValue:u,onValueChange:e=>x?.(e),disabled:p,hiddenUntilFound:g,keepMounted:g?void 0:N,className:$,style:{...w(r,o),...z},...L,children:A})})});export const AccordionItem=/*@__PURE__*/a.forwardRef(function AccordionItem({value:v,title:y,subtitle:w,startIcon:k,action:I,lines:V,disabled:$=!1,className:M,children:R,...F},P){const U=a.useContext(C),{size:B,density:E,dividers:H,headingLevel:T}=U,q=$||U.disabled,D=V?d(V):"",G=o(V),J=t[E][B],K=i[E][B];return n(l.Item,{ref:P,value:v,disabled:$,className:c("flex flex-col",M??""),...F,children:[n("div",{className:"flex w-full items-center",children:[e(l.Header,{className:"neba-heading flex min-w-0 flex-1 items-center [&.neba-heading]:m-0 [&.neba-heading]:[font:inherit]",render:a.createElement(`h${T}`),children:n(l.Trigger,{className:c("flex min-w-0 flex-1 items-center text-start",A,q?"":"cursor-pointer",J,K,f[B],j,x,H?b:m,H?"":L[B],q?"cursor-not-allowed bg-transparent text-(--neba-disabled-fg)":"hover:bg-(--n-soft) data-[panel-open]:text-(--n-on-tint)"),children:[u(k)?e("span",{className:"flex h-[1lh] shrink-0 items-center text-(--neba-muted-fg)",children:k}):null,n("span",{className:`flex min-w-0 flex-1 flex-col ${g[B]}`,children:[u(y)?e("span",{className:c("font-semibold",N[B],D),style:G,children:y}):null,u(w)?e("span",{className:c("text-(--neba-muted-fg)",h[B],D),style:G,children:w}):null]}),e("span",{className:`${z} text-(--neba-muted-fg)`,children:e(s,{})})]})}),u(I)?e("span",{className:`flex shrink-0 items-center ${J}`,children:I}):null]}),e(l.Panel,{className:r,children:e("div",{className:"text-(--neba-muted-fg) "+p[B]+" "+J+" "+("compact"===E?"pb-2":"pb-4"),children:R})})]})});
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as n,Fragment as r}from"react/jsx-runtime";import*as t from"react";import{useRender as l}from"@base-ui/react/use-render";import{childKey as s}from"../../internal/children.js";import{formatDuration as a,runColor as i,runIcon as c,useElapsed as o}from"../../internal/run.js";import{runMessages as m,useMessages as d}from"../../internal/i18n.js";import{cx as u,hasContent as p,metaTextClasses as f,sheetBodyClasses as g,sheetTitleClasses as x,srOnlyClasses as b,surfaceSlots as h,transitionClasses as v}from"../../internal/styles.js";import{useStyleDefaults as y}from"../../internal/defaults.js";const N=/*@__PURE__*/t.createContext(null),j=/*@__PURE__*/t.createContext({last:!0}),w={xs:"0.875rem",sm:"1rem",md:"1.125rem",lg:"1.25rem",xl:"1.5rem"},z={xs:"gap-2",sm:"gap-2.5",md:"gap-3",lg:"gap-3.5",xl:"gap-4"},k={default:{xs:"pb-3",sm:"pb-3.5",md:"pb-4",lg:"pb-5",xl:"pb-6"},compact:{xs:"pb-1.5",sm:"pb-2",md:"pb-2.5",lg:"pb-3",xl:"pb-3.5"}},A={pending:"text-(--neba-muted-fg)",running:"text-(--n-accent)",success:"text-(--neba-fg)",error:"text-(--n-accent)"};export const AgentStep=/*@__PURE__*/t.forwardRef(function AgentStep({title:r,status:l="success",duration:s,meta:y,icon:C,color:S,className:P,style:_,children:M,...R},F){const q=t.useContext(N),{last:B}=t.useContext(j),D=q?.size??"md",E=q?.density??"default",G=d(m),H=q?.labels??G,I=i(l,S??q?.color??"primary"),J=o("running"===l,s),K=void 0===C?c(l):C;return n("li",{ref:F,"aria-current":"running"===l?"step":void 0,"data-status":l,className:u("relative flex",z[D],B?"":k[E][D],P),style:{"--n-mark":w[D],...h(I,0),..._},...R,children:[B?null:e("span",{"aria-hidden":"true",className:u("pointer-events-none absolute start-[calc(var(--n-mark)/2_-_1px)] top-(--n-mark)","bottom-0 border-s-2 [border-color:var(--neba-border)]")}),e("span",{"aria-hidden":"true",className:u("relative z-10 flex size-(--n-mark) shrink-0 items-center justify-center","rounded-full bg-(--neba-surface) text-(--n-accent)","[&_svg]:size-full",v),children:K}),n("div",{className:"flex min-w-0 flex-1 flex-col gap-0.5",children:[n("div",{className:"flex min-w-0 items-baseline gap-2",children:[e("span",{className:b,children:H[l]}),p(r)?e("span",{className:u("min-w-0 font-medium",x[D],A[l],v),children:r}):null,p(y)?e("span",{className:u("min-w-0 truncate text-(--neba-muted-fg)",f[D]),children:y}):null,null===J?null:e("span",{className:u("ms-auto shrink-0 tabular-nums text-(--neba-muted-fg)",f[D]),children:a(J,q?.locale)})]}),p(M)?e("div",{className:u("min-w-0 text-(--neba-muted-fg)",g[D]),children:M}):null]})]})});export const AgentSteps=/*@__PURE__*/t.forwardRef(function AgentSteps(a,i){const{size:c="md",color:o="primary",density:p="default",running:f=!1,locale:g,labels:x,render:b,className:v,style:w,children:z,...k}=y(a,["size","density","locale"]),A=d(m,g),C=t.useMemo(()=>({...A,...x}),[A,x?.pending,x?.running,x?.success,x?.error]),S=t.Children.toArray(z),P=!1!==f&&null!=f,_=S.length+(P?1:0),M=t.useMemo(()=>({size:c,density:p,color:o,locale:g,labels:C}),[c,p,o,g,C]),R=l({render:b??e("ol",{}),ref:i,props:{role:"list",className:u("flex flex-col",v),style:{...h(o,0),...w},children:n(r,{children:[S.map((n,r)=>e(j.Provider,{value:{last:r===_-1},children:n},s(n,r))),P?e(j.Provider,{value:{last:!0},children:e(AgentStep,{status:"running",title:!0===f?void 0:f})},S.length):null]}),...k}});return e(N.Provider,{value:M,children:R})});
1
+ "use client";import{jsx as e,jsxs as n,Fragment as r}from"react/jsx-runtime";import*as t from"react";import{useRender as l}from"@base-ui/react/use-render";import{childKey as s}from"../../internal/children.js";import{RunTime as a,runColor as i,runIcon as o,useRunClock as c}from"../../internal/run.js";import{runMessages as m,useMessages as d}from"../../internal/i18n.js";import{cx as u,hasContent as p,metaTextClasses as f,sheetBodyClasses as g,sheetTitleClasses as x,srOnlyClasses as b,surfaceSlots as h,transitionClasses as v}from"../../internal/styles.js";import{useStyleDefaults as y}from"../../internal/defaults.js";const N=/*@__PURE__*/t.createContext(null),j=/*@__PURE__*/t.createContext({last:!0}),w={xs:"0.875rem",sm:"1rem",md:"1.125rem",lg:"1.25rem",xl:"1.5rem"},z={xs:"gap-2",sm:"gap-2.5",md:"gap-3",lg:"gap-3.5",xl:"gap-4"},k={default:{xs:"pb-3",sm:"pb-3.5",md:"pb-4",lg:"pb-5",xl:"pb-6"},compact:{xs:"pb-1.5",sm:"pb-2",md:"pb-2.5",lg:"pb-3",xl:"pb-3.5"}},A={pending:"text-(--neba-muted-fg)",running:"text-(--n-accent)",success:"text-(--neba-fg)",error:"text-(--n-accent)"};export const AgentStep=/*@__PURE__*/t.forwardRef(function AgentStep({title:r,status:l="success",duration:s,meta:y,icon:C,color:S,className:P,style:_,children:M,...R},F){const q=t.useContext(N),{last:B}=t.useContext(j),D=q?.size??"md",E=q?.density??"default",G=d(m),H=q?.labels??G,I=i(l,S??q?.color??"primary"),J=c("running"===l,s),K=void 0===C?o(l):C;return n("li",{ref:F,"aria-current":"running"===l?"step":void 0,"data-status":l,className:u("relative flex",z[D],B?"":k[E][D],P),style:{"--n-mark":w[D],...h(I,0),..._},...R,children:[B?null:e("span",{"aria-hidden":"true",className:u("pointer-events-none absolute start-[calc(var(--n-mark)/2_-_1px)] top-(--n-mark)","bottom-0 border-s-2 [border-color:var(--neba-border)]")}),e("span",{"aria-hidden":"true",className:u("relative z-10 flex size-(--n-mark) shrink-0 items-center justify-center","rounded-full bg-(--neba-surface) text-(--n-accent)","[&_svg]:size-full",v),children:K}),n("div",{className:"flex min-w-0 flex-1 flex-col gap-0.5",children:[n("div",{className:"flex min-w-0 items-baseline gap-2",children:[e("span",{className:b,children:H[l]}),p(r)?e("span",{className:u("min-w-0 font-medium",x[D],A[l],v),children:r}):null,p(y)?e("span",{className:u("min-w-0 truncate text-(--neba-muted-fg)",f[D]),children:y}):null,e(a,{...J,locale:q?.locale,className:u("ms-auto shrink-0 tabular-nums text-(--neba-muted-fg)",f[D])})]}),p(M)?e("div",{className:u("min-w-0 text-(--neba-muted-fg)",g[D]),children:M}):null]})]})});export const AgentSteps=/*@__PURE__*/t.forwardRef(function AgentSteps(a,i){const{size:o="md",color:c="primary",density:p="default",running:f=!1,locale:g,labels:x,render:b,className:v,style:w,children:z,...k}=y(a,["size","density","locale"]),A=d(m,g),C=t.useMemo(()=>({...A,...x}),[A,x?.pending,x?.running,x?.success,x?.error]),S=t.Children.toArray(z),P=!1!==f&&null!=f,_=S.length+(P?1:0),M=t.useMemo(()=>({size:o,density:p,color:c,locale:g,labels:C}),[o,p,c,g,C]),R=l({render:b??e("ol",{}),ref:i,props:{role:"list",className:u("flex flex-col",v),style:{...h(c,0),...w},children:n(r,{children:[S.map((n,r)=>e(j.Provider,{value:{last:r===_-1},children:n},s(n,r))),P?e(j.Provider,{value:{last:!0},children:e(AgentStep,{status:"running",title:!0===f?void 0:f})},S.length):null]}),...k}});return e(N.Provider,{value:M,children:R})});
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as n from"react";import{boxPaddingClasses as l}from"../box/Box.js";import{actionMessages as i,useMessages as s}from"../../internal/i18n.js";import{CloseIcon as a,severityIcon as o}from"../../internal/icons.js";import{transitionProps as r}from"../../internal/animate.js";import{controlSlots as c,cx as d,hasContent as m,hitAreaClasses as f,iconClasses as u,radiusClasses as x,sheetBodyClasses as v,sheetHeaderGapClasses as b,sheetSectionGapClasses as p,sheetTitleClasses as h,sheetTitleHeadingClasses as y,surfaceClasses as j,transitionClasses as g}from"../../internal/styles.js";import{useStyleDefaults as N}from"../../internal/defaults.js";const w={solid:[j,"text-(--n-on-solid) bg-(--n-fill)","[box-shadow:var(--n-elev),var(--neba-plate-solid)]"].join(" "),outline:[j,"border text-(--neba-fg) bg-(--n-panel)","[border-color:var(--n-line)]","[box-shadow:var(--n-elev),var(--neba-plate-glass)]"].join(" "),text:"text-(--neba-fg) bg-(--n-soft)"},$={solid:"",outline:"text-(--n-accent)",text:"text-(--n-accent)"},k={solid:"",outline:"text-(--neba-muted-fg)",text:"text-(--neba-muted-fg)"},_={primary:"status",secondary:"status",info:"status",success:"status",warning:"alert",danger:"alert"};export const Alert=/*@__PURE__*/n.forwardRef(function Alert(n,j){const{variant:z="outline",size:A="md",color:C="info",density:B="default",elevation:L=0,title:R,icon:q,action:D,onClose:E,locale:F,closeLabel:G,transition:H,role:I,className:J,style:K,children:M,...O}=N(n,["size","density","variant","locale"]),P=s(i,F),Q=void 0===q?o(C):q,S=$[z],T=m(R),U=r(H);return t("div",{ref:j,className:d("flex w-full items-start",l[B][A],x[A],p[A],v[A],g,w[z],u,U.className,J??""),style:{...c(C,L,z),...U.style,...K},...O,children:[m(Q)?e("span",{className:`flex h-[1lh] shrink-0 items-center ${S}`,children:Q}):null,t("div",{role:I??_[C],className:`flex min-w-0 flex-1 flex-col ${b[A]}`,children:[T?e("div",{className:`${y} font-semibold ${h[A]} ${S}`,children:R}):null,m(M)?e("div",{className:T?k[z]:void 0,children:M}):null]}),m(D)?e("div",{className:"flex h-[1lh] shrink-0 items-center",children:D}):null,E?e("span",{className:"flex h-[1lh] shrink-0 items-center",children:e("button",{type:"button","aria-label":G??P.dismiss,onClick:E,className:["relative inline-flex size-[1.15em] cursor-pointer items-center justify-center rounded-full",f,"opacity-70 [transition:opacity_var(--neba-duration)_var(--neba-ease)]","hover:opacity-100 focus-visible:opacity-100","focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-2"].join(" "),children:e(a,{})})}):null]})});
1
+ "use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as l from"react";import{boxPaddingClasses as n}from"../box/Box.js";import{actionMessages as s,useMessages as i}from"../../internal/i18n.js";import{CloseIcon as a,severityIcon as r}from"../../internal/icons.js";import{transitionProps as o}from"../../internal/animate.js";import{controlSlots as c,cx as d,hasContent as m,hitAreaClasses as f,iconClasses as u,radiusClasses as x,sheetBodyClasses as v,sheetHeaderGapClasses as b,sheetSectionGapClasses as p,sheetTitleClasses as h,sheetTitleHeadingClasses as y,surfaceClasses as g,transitionClasses as j}from"../../internal/styles.js";import{useStyleDefaults as N}from"../../internal/defaults.js";const w={solid:g+" text-(--n-on-solid) bg-(--n-fill) [box-shadow:var(--n-elev),var(--neba-plate-solid)]",outline:g+" border text-(--neba-fg) bg-(--n-panel) [border-color:var(--n-line)] [box-shadow:var(--n-elev),var(--neba-plate-glass)]",text:"text-(--neba-fg) bg-(--n-soft)"},$={solid:"",outline:"text-(--n-accent)",text:"text-(--n-accent)"},k={solid:"",outline:"text-(--neba-muted-fg)",text:"text-(--neba-muted-fg)"},_={primary:"status",secondary:"status",info:"status",success:"status",warning:"alert",danger:"alert"};export const Alert=/*@__PURE__*/l.forwardRef(function Alert(l,g){const{variant:z="outline",size:A="md",color:C="info",density:B="default",elevation:L=0,title:R,icon:q,action:D,onClose:E,locale:F,closeLabel:G,transition:H,role:I,className:J,style:K,children:M,...O}=N(l,["size","density","variant","locale"]),P=i(s,F),Q=void 0===q?r(C):q,S=$[z],T=m(R),U=o(H);return t("div",{ref:g,className:d("flex w-full items-start",n[B][A],x[A],p[A],v[A],j,w[z],u,U.className,J??""),style:{...c(C,L,z),...U.style,...K},...O,children:[m(Q)?e("span",{className:`flex h-[1lh] shrink-0 items-center ${S}`,children:Q}):null,t("div",{role:I??_[C],className:`flex min-w-0 flex-1 flex-col ${b[A]}`,children:[T?e("div",{className:`${y} font-semibold ${h[A]} ${S}`,children:R}):null,m(M)?e("div",{className:T?k[z]:void 0,children:M}):null]}),m(D)?e("div",{className:"flex h-[1lh] shrink-0 items-center",children:D}):null,E?e("span",{className:"flex h-[1lh] shrink-0 items-center",children:e("button",{type:"button","aria-label":G??P.dismiss,onClick:E,className:"relative inline-flex size-[1.15em] cursor-pointer items-center justify-center rounded-full "+f+" opacity-70 [transition:opacity_var(--neba-duration)_var(--neba-ease)] hover:opacity-100 focus-visible:opacity-100 focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-2",children:e(a,{})})}):null]})});
@@ -1 +1 @@
1
- "use client";import{jsx as e}from"react/jsx-runtime";import*as t from"react";import{safeHref as n}from"../../internal/link.js";import{anchorMessages as r,useMessages as o}from"../../internal/i18n.js";import{controlTextLeadingClasses as l,cx as i,focusRingClasses as c,transitionClasses as a}from"../../internal/styles.js";import{useStyleDefaults as s}from"../../internal/defaults.js";const d={default:{xs:"py-1",sm:"py-1",md:"py-1.5",lg:"py-1.5",xl:"py-2"},compact:{xs:"py-0.5",sm:"py-0.5",md:"py-1",lg:"py-1",xl:"py-1"}},u={xs:8,sm:10,md:12,lg:14,xl:16},m=["block min-w-0 truncate no-underline","text-(--neba-muted-fg)",a,c,"hover:text-(--neba-fg)","aria-[current=location]:font-medium aria-[current=location]:text-(--n-accent)"].join(" "),f=["border-s [border-color:transparent]","[transition:border-color_var(--neba-duration)_var(--neba-ease)]","aria-[current=location]:[border-color:var(--n-accent)]"].join(" ");function p(e,t){const n=t.get(e);if(n?.isConnected)return n;const r=document.getElementById(e.replace(/^#/,""));return r?t.set(e,r):t.delete(e),r}export const Anchor=/*@__PURE__*/t.forwardRef(function Anchor(c,a){const{items:h,activeHref:g,onActiveChange:b,offset:v=0,container:y,rail:x=!0,size:w="md",color:E="primary",density:j="default",locale:H,label:A,className:C,style:R,...B}=s(c,["size","density","locale"]),N=o(r,H),[z,I]=t.useState(null),K=void 0!==g?g:z,L=t.useRef(b),S=t.useRef(h);t.useEffect(()=>{L.current=b,S.current=h});const $=h.map(e=>e.href).join("\0");return t.useEffect(()=>{const e=y?.current??window,t=new Map;let n=0,r=null;const o=()=>{n=0;const e=function(e,t,n,r){const o=(n?n.getBoundingClientRect().top:0)+t+1;let l=null;for(const t of e){const e=p(t.href,r);e&&e.getBoundingClientRect().top<=o&&(l=t.href)}if((n?n.scrollHeight-n.clientHeight:document.documentElement.scrollHeight-window.innerHeight)<=2){const t=e[0];return t&&p(t.href,r)?t.href:l}return(n?n.scrollTop+n.clientHeight>=n.scrollHeight-2:window.innerHeight+window.scrollY>=document.documentElement.scrollHeight-2)&&e.length>0?e[e.length-1].href:l}(S.current,v,y?.current??null,t);e!==r&&(r=e,I(e),L.current?.(e))},l=()=>{0===n&&(n=requestAnimationFrame(o))};return o(),e.addEventListener("scroll",l,{passive:!0}),window.addEventListener("resize",l,{passive:!0}),()=>{0!==n&&cancelAnimationFrame(n),e.removeEventListener("scroll",l),window.removeEventListener("resize",l)}},[$,v,y]),e("nav",{ref:a,"aria-label":A??N.label,className:i("min-w-0",C??""),style:{"--n-accent":`var(--neba-${E}-accent)`,"--n-ring":`var(--neba-${E}-ring)`,...R},...B,children:e("ul",{className:i("m-0 flex list-none flex-col p-0",x?"border-s [border-color:var(--neba-border)]":""),children:h.map(t=>e("li",{className:x?"[margin-inline-start:-1px]":"",children:e("a",{href:n(t.href),"aria-current":K===t.href?"location":void 0,onClick:e=>function(e,t,n,r){if(!n||e.defaultPrevented||0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;const o=document.getElementById(t.replace(/^#/,""));if(!o)return;e.preventDefault();const l=n.scrollTop+o.getBoundingClientRect().top-n.getBoundingClientRect().top-r;n.scrollTo({top:Math.round(l)}),o.hasAttribute("tabindex")||o.setAttribute("tabindex","-1"),o.focus({preventScroll:!0})}(e,t.href,y?.current??null,v),className:i(m,l[w],d[j][w],x?`${f} ps-3`:""),style:t.depth?x?{paddingInlineStart:`calc(0.75rem + ${t.depth*u[w]}px)`}:{marginInlineStart:t.depth*u[w]}:void 0,children:t.label})},t.href))})})});
1
+ "use client";import{jsx as e}from"react/jsx-runtime";import*as t from"react";import{safeHref as n}from"../../internal/link.js";import{anchorMessages as r,useMessages as o}from"../../internal/i18n.js";import{controlTextLeadingClasses as l,cx as i,focusRingClasses as c,transitionClasses as a}from"../../internal/styles.js";import{useStyleDefaults as s}from"../../internal/defaults.js";const d={default:{xs:"py-1",sm:"py-1",md:"py-1.5",lg:"py-1.5",xl:"py-2"},compact:{xs:"py-0.5",sm:"py-0.5",md:"py-1",lg:"py-1",xl:"py-1"}},u={xs:8,sm:10,md:12,lg:14,xl:16},m="block min-w-0 truncate no-underline text-(--neba-muted-fg) "+a+" "+c+" hover:text-(--neba-fg) aria-[current=location]:font-medium aria-[current=location]:text-(--n-accent)";function f(e,t){const n=t.get(e);if(n?.isConnected)return n;const r=document.getElementById(e.replace(/^#/,""));return r?t.set(e,r):t.delete(e),r}export const Anchor=/*@__PURE__*/t.forwardRef(function Anchor(c,a){const{items:p,activeHref:h,onActiveChange:g,offset:b=0,container:v,rail:y=!0,size:x="md",color:w="primary",density:E="default",locale:H,label:j,className:A,style:C,...R}=s(c,["size","density","locale"]),B=o(r,H),[N,z]=t.useState(null),I=void 0!==h?h:N,K=t.useRef(g),L=t.useRef(p);t.useEffect(()=>{K.current=g,L.current=p});const S=p.map(e=>e.href).join("\0");return t.useEffect(()=>{const e=v?.current??window,t=new Map;let n=0,r=null;const o=()=>{n=0;const e=function(e,t,n,r){const o=(n?n.getBoundingClientRect().top:0)+t+1;let l=null;for(const t of e){const e=f(t.href,r);e&&e.getBoundingClientRect().top<=o&&(l=t.href)}if((n?n.scrollHeight-n.clientHeight:document.documentElement.scrollHeight-window.innerHeight)<=2){const t=e[0];return t&&f(t.href,r)?t.href:l}return(n?n.scrollTop+n.clientHeight>=n.scrollHeight-2:window.innerHeight+window.scrollY>=document.documentElement.scrollHeight-2)&&e.length>0?e[e.length-1].href:l}(L.current,b,v?.current??null,t);e!==r&&(r=e,z(e),K.current?.(e))},l=()=>{0===n&&(n=requestAnimationFrame(o))};return o(),e.addEventListener("scroll",l,{passive:!0}),window.addEventListener("resize",l,{passive:!0}),()=>{0!==n&&cancelAnimationFrame(n),e.removeEventListener("scroll",l),window.removeEventListener("resize",l)}},[S,b,v]),e("nav",{ref:a,"aria-label":j??B.label,className:i("min-w-0",A??""),style:{"--n-accent":`var(--neba-${w}-accent)`,"--n-ring":`var(--neba-${w}-ring)`,...C},...R,children:e("ul",{className:i("m-0 flex list-none flex-col p-0",y?"border-s [border-color:var(--neba-border)]":""),children:p.map(t=>e("li",{className:y?"[margin-inline-start:-1px]":"",children:e("a",{href:n(t.href),"aria-current":I===t.href?"location":void 0,onClick:e=>function(e,t,n,r){if(!n||e.defaultPrevented||0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;const o=document.getElementById(t.replace(/^#/,""));if(!o)return;e.preventDefault();const l=n.scrollTop+o.getBoundingClientRect().top-n.getBoundingClientRect().top-r;n.scrollTo({top:Math.round(l)}),o.hasAttribute("tabindex")||o.setAttribute("tabindex","-1"),o.focus({preventScroll:!0})}(e,t.href,v?.current??null,b),className:i(m,l[x],d[E][x],y?"border-s [border-color:transparent] [transition:border-color_var(--neba-duration)_var(--neba-ease)] aria-[current=location]:[border-color:var(--n-accent)] ps-3":""),style:t.depth?y?{paddingInlineStart:`calc(0.75rem + ${t.depth*u[x]}px)`}:{marginInlineStart:t.depth*u[x]}:void 0,children:t.label})},t.href))})})});
@@ -1 +1 @@
1
- "use client";import{jsx as r,jsxs as e,Fragment as t}from"react/jsx-runtime";import*as n from"react";import{useRender as a}from"@base-ui/react/use-render";import{useAnimationRun as s,usePrefersReducedMotion as i}from"../../internal/animate.js";import{numberFormatter as o}from"../../internal/format.js";import{cx as m,srOnlyClasses as u}from"../../internal/styles.js";import{useStyleDefaults as c}from"../../internal/defaults.js";import{useIntlLocale as l}from"../../internal/media.js";function f(r){if(!Number.isFinite(r))return 0;const[e,t="0"]=String(Math.abs(r)).split("e"),n=(e.split(".")[1]?.length??0)-Number(t);return Math.min(20,Math.max(0,n))}export const AnimateCounter=/*@__PURE__*/n.forwardRef(function AnimateCounter(d,p){const{value:h,from:g=0,duration:b=1200,delay:N=0,trigger:j="mount",play:x,once:y=!0,threshold:M=.2,format:v,locale:A,render:F,className:R,style:q,...S}=c(d,["locale"]),C=l(A),w=s({caller:S,trigger:j,play:x,once:y,threshold:M,infinite:!1}),E=i(),[J,O]=n.useState(g),k=void 0===v?"":JSON.stringify(v),z=n.useMemo(()=>o(C,v),[C,k]),B=n.useRef(g),D=n.useRef(!1),G=n.useRef(w.run);n.useEffect(()=>{if(!w.started&&!E)return D.current=!1,B.current=g,void O(g);if(E||b<=0)return B.current=h,void O(h);G.current!==w.run&&(G.current=w.run,D.current=!1);const r=D.current?B.current:g,e=D.current?0:N;D.current=!0;let t=0,n=null;const a=s=>{null===n&&(n=s);const i=s-n-e;if(i<0)return void(t=requestAnimationFrame(a));const o=Math.min(1,i/b),m=r+(h-r)*function(r){return 1-(1-r)**3}(o);B.current=m,O(m),o<1&&(t=requestAnimationFrame(a))};return B.current=r,O(r),t=requestAnimationFrame(a),()=>cancelAnimationFrame(t)},[w.started,w.run,E,h,g,b,N]);const H=Math.max(f(h),f(g)),I=Math.round(J*10**H)/10**H,K=z.format(h),L=z.format(g),P=E?K:z.format(I),Q=P===K||L===K?[K]:[K,L];return a({render:F??r("span",{}),ref:[p,w.ref],props:{...S,className:m("tabular-nums",R),style:q,"data-neba-animation":"counter","data-state":w.state,...w.handlers,children:e(t,{children:[r("span",{className:u,children:K}),e("span",{"aria-hidden":"true",className:"inline-grid",children:[r("span",{"data-text":P,className:"[grid-area:1/1] before:content-[attr(data-text)]"}),Q.map((e,t)=>r("span",{"data-sample":e,className:"invisible [grid-area:1/1] before:content-[attr(data-sample)]"},t))]})]})}})});
1
+ "use client";import{jsx as e,jsxs as r,Fragment as t}from"react/jsx-runtime";import*as n from"react";import{useRender as a}from"@base-ui/react/use-render";import{useAnimationRun as i,usePrefersReducedMotion as s}from"../../internal/animate.js";import{numberFormatter as o}from"../../internal/format.js";import{cx as m,srOnlyClasses as u}from"../../internal/styles.js";import{useStyleDefaults as c}from"../../internal/defaults.js";import{useIntlLocale as l}from"../../internal/media.js";function f(e){if(!Number.isFinite(e))return 0;const[r,t="0"]=String(Math.abs(e)).split("e"),n=(r.split(".")[1]?.length??0)-Number(t);return Math.min(20,Math.max(0,n))}export const AnimateCounter=/*@__PURE__*/n.forwardRef(function AnimateCounter(d,p){const{value:h,from:g=0,duration:b=1200,delay:x=0,trigger:N="mount",play:j,once:v=!0,threshold:y=.2,format:M,locale:A,render:F,className:R,style:q,...S}=c(d,["locale"]),C=l(A),w=i({caller:S,trigger:N,play:j,once:v,threshold:y,infinite:!1}),E=s(),[J,O]=n.useState(g),k=void 0===M?"":JSON.stringify(M),z=n.useMemo(()=>o(C,M),[C,k]),B=n.useRef(g),D=n.useRef(!1),G=n.useRef(w.run);n.useEffect(()=>{if(!w.started&&!E)return D.current=!1,B.current=g,void O(g);if(E||b<=0)return B.current=h,void O(h);G.current!==w.run&&(G.current=w.run,D.current=!1);const e=D.current?B.current:g,r=D.current?0:x;D.current=!0;let t=0,n=null;const a=i=>{null===n&&(n=i);const s=i-n-r;if(s<0)return void(t=requestAnimationFrame(a));const o=Math.min(1,s/b),m=e+(h-e)*function(e){return 1-(1-e)**3}(o);B.current=m,O(m),o<1&&(t=requestAnimationFrame(a))};return B.current=e,O(e),t=requestAnimationFrame(a),()=>cancelAnimationFrame(t)},[w.started,w.run,E,h,g,b,x]);const H=Math.max(f(h),f(g)),I=Math.round(J*10**H)/10**H,K=z.format(h),L=z.format(g),P=E?K:z.format(I),Q=P===K||L===K?[K]:[K,L];return a({render:F??e("span",{}),ref:[p,w.ref],props:{...S,className:m("tabular-nums",R),style:q,"data-neba-animation":"counter","data-state":w.state,...w.handlers,children:r(t,{children:[e("span",{className:u,children:K}),r("span",{"aria-hidden":"true",className:"inline-grid",children:[e("span",{"data-text":P,className:"neba-text-moving [grid-area:1/1] before:content-[attr(data-text)]"}),Q.map((r,t)=>e("span",{"data-sample":r,className:m(0===t&&"neba-text-final","invisible [grid-area:1/1] before:content-[attr(data-sample)]")},t))]})]})}})});
@@ -1 +1 @@
1
- "use client";import{jsx as e}from"react/jsx-runtime";import*as t from"react";import{useRender as n}from"@base-ui/react/use-render";import{isInfinite as a,lengthValue as r,useAnimationRun as i,usePrefersReducedMotion as s}from"../../internal/animate.js";import{cx as l}from"../../internal/styles.js";export const AnimateHeadline=/*@__PURE__*/t.forwardRef(function AnimateHeadline({duration:o=480,delay:u=0,easing:c,repeat:m="infinite",paused:d,trigger:f="mount",play:p,once:h=!0,threshold:g=.2,interval:y=2600,index:v,defaultIndex:b=0,onIndexChange:x,loop:N=!0,rise:j="100%",render:C,className:E,style:T,children:k,...A},M){const S=i({caller:A,trigger:f,play:p,once:h,threshold:g,paused:d,infinite:a(m)}),H=s(),I=t.Children.toArray(k),R=I.length,[w,V]=t.useState(b),$=Math.min(v??w,Math.max(R-1,0)),[q,z]=t.useState(null),[B,D]=t.useState($);B!==$&&(D($),z(B)),t.useEffect(()=>{if(null===q)return;const e=setTimeout(()=>z(null),o);return()=>clearTimeout(e)},[q,o]);const F=t.useCallback(()=>{const e=$+1;if(e>=R){if(!N)return;return void 0===v&&V(0),void x?.(0)}void 0===v&&V(e),x?.(e)},[$,R,N,v,x]),G=t.useRef(!1);t.useEffect(()=>{if(void 0!==v||R<2||"running"!==S.state||H)return;if(!N&&$===R-1)return;const e=setTimeout(()=>{G.current=!0,F()},o+y+(G.current?0:u));return()=>clearTimeout(e)},[v,R,S.state,o,y,u,F,N,$,H]);const J=S.ref,K=t.useCallback(e=>{J(e),"function"==typeof M?M(e):M&&(M.current=e)},[M,J]);return n({render:C??e("span",{}),ref:K,props:{className:l("neba-headline",E),style:{"--n-anim-duration":`${o}ms`,"--n-anim-rise":r(j),...c?{"--n-anim-ease":c}:{},"--n-anim-state":S.state,...T},"data-neba-animation":"headline","data-state":S.state,...A,...S.handlers,children:I.map((n,a)=>{const r=a===$?"active":a!==q||H?void 0:"leaving";if(!t.isValidElement(n))return e("span",{className:"neba-headline-item","data-state":r,children:n},a);const i=n.props;return t.cloneElement(n,{key:a,className:l("neba-headline-item",i.className),"data-state":r})}).flatMap((e,t)=>0===t?[e]:[" ",e])}})});
1
+ "use client";import{jsx as e}from"react/jsx-runtime";import*as t from"react";import{useMergedRef as n}from"../../internal/refs.js";import{useRender as a}from"@base-ui/react/use-render";import{isInfinite as r,lengthValue as i,useAnimationRun as s,usePrefersReducedMotion as l}from"../../internal/animate.js";import{cx as o}from"../../internal/styles.js";export const AnimateHeadline=/*@__PURE__*/t.forwardRef(function AnimateHeadline({duration:m=480,delay:u=0,easing:d,repeat:c="infinite",paused:f,trigger:p="mount",play:h,once:g=!0,threshold:v=.2,interval:y=2600,index:x,defaultIndex:b=0,onIndexChange:j,loop:N=!0,rise:E="100%",render:T,className:A,style:C,children:M,...S},k){const H=s({caller:S,trigger:p,play:h,once:g,threshold:v,paused:f,infinite:r(c)}),I=l(),R=t.Children.toArray(M),w=R.length,[V,$]=t.useState(b),q=Math.min(x??V,Math.max(w-1,0)),[z,B]=t.useState(null),[D,F]=t.useState(q);D!==q&&(F(q),B(D)),t.useEffect(()=>{if(null===z)return;const e=setTimeout(()=>B(null),m);return()=>clearTimeout(e)},[z,m]);const G=t.useCallback(()=>{const e=q+1;if(e>=w){if(!N)return;return void 0===x&&$(0),void j?.(0)}void 0===x&&$(e),j?.(e)},[q,w,N,x,j]),J=t.useRef(!1);t.useEffect(()=>{if(void 0!==x||w<2||"running"!==H.state||I)return;if(!N&&q===w-1)return;const e=setTimeout(()=>{J.current=!0,G()},m+y+(J.current?0:u));return()=>clearTimeout(e)},[x,w,H.state,m,y,u,G,N,q,I]);const K=n(H.ref,k);return a({render:T??e("span",{}),ref:K,props:{className:o("neba-headline",A),style:{"--n-anim-duration":`${m}ms`,"--n-anim-rise":i(E),...d?{"--n-anim-ease":d}:{},"--n-anim-state":H.state,...C},"data-neba-animation":"headline","data-state":H.state,...S,...H.handlers,children:R.map((n,a)=>{const r=a===q?"active":a!==z||I?void 0:"leaving";if(!t.isValidElement(n))return e("span",{className:"neba-headline-item","data-state":r,children:n},a);const i=n.props;return t.cloneElement(n,{key:a,className:o("neba-headline-item",i.className),"data-state":r})}).flatMap((e,t)=>0===t?[e]:[" ",e])}})});
@@ -1 +1 @@
1
- "use client";import*as e from"react";import{useRender as r}from"@base-ui/react/use-render";import{isInfinite as n,useAnimateElement as a}from"../../internal/animate.js";import{cx as t,radiusClasses as i}from"../../internal/styles.js";import{useStyleDefaults as l}from"../../internal/defaults.js";export const AnimateLighting=/*@__PURE__*/e.forwardRef(function AnimateLighting(e,o){const{duration:s=3e3,delay:m=0,repeat:d="infinite",alternate:p,paused:c,trigger:g="mount",play:f,once:u=!0,threshold:h=.2,color:y="primary",glow:w,size:b="md",spread:$=3,arc:j=50,blur:x=4,reverse:v=!1,render:z,className:A,style:L,children:N,...R}=l(e,["size"]),k=a({caller:R,effect:null,duration:s,delay:m,repeat:d,alternate:p,mode:v?"out":"in",trigger:g,play:f,once:u,threshold:h,paused:c,infinite:n(d)});return r({render:z,ref:[o,k.ref],props:{...R,className:t("neba-anim-lighting",i[b],A),style:{...k.style,"--n-anim-glow":w??`var(--neba-${y}-accent)`,"--n-anim-glow-width":`${$}px`,"--n-anim-glow-arc":`${j}deg`,"--n-anim-glow-blur":`${x}px`,...L},...k.props,"data-neba-animation":"lighting",children:N}})});
1
+ "use client";import{jsx as e,Fragment as a,jsxs as r}from"react/jsx-runtime";import*as n from"react";import{useRender as i}from"@base-ui/react/use-render";import{isInfinite as t,useAnimateElement as s}from"../../internal/animate.js";import{cx as l,radiusClasses as o}from"../../internal/styles.js";import{useStyleDefaults as m}from"../../internal/defaults.js";export const AnimateLighting=/*@__PURE__*/n.forwardRef(function AnimateLighting(n,d){const{duration:c=3e3,delay:g=0,repeat:p="infinite",alternate:u,paused:f,trigger:h="mount",play:b,once:y=!0,threshold:w=.2,color:j="primary",glow:x,size:N="md",spread:$=3,arc:v=50,blur:z=4,reverse:A=!1,render:L,className:F,style:R,children:k,...q}=m(n,["size"]),B=s({caller:q,effect:null,duration:c,delay:g,repeat:p,alternate:u,mode:A?"out":"in",trigger:h,play:b,once:y,threshold:w,paused:f,infinite:t(p)});return i({render:L,ref:[d,B.ref],props:{...q,className:l("neba-anim-lighting",o[N],F),style:{...B.style,"--n-anim-glow":x??`var(--neba-${j}-accent)`,"--n-anim-glow-width":`${$}px`,"--n-anim-glow-arc":`${v}deg`,"--n-anim-glow-blur":`${z}px`,...R},...B.props,"data-neba-animation":"lighting",children:r(a,{children:[e("span",{"aria-hidden":"true",className:"neba-lighting-ring",children:e("span",{className:"neba-lighting-beam"})}),k]})}})});
@@ -1 +1 @@
1
- "use client";import{jsx as e}from"react/jsx-runtime";import*as r from"react";import{useRender as a}from"@base-ui/react/use-render";import{isInfinite as t,lengthValue as n,useAnimationRun as i}from"../../internal/animate.js";import{inertValue as s}from"../../internal/inert.js";import{usePrefersReducedMotion as o}from"../../internal/media.js";import{observeResize as m}from"../../internal/observe.js";import{cx as l}from"../../internal/styles.js";export const AnimateMarquee=/*@__PURE__*/r.forwardRef(function AnimateMarquee({duration:u,delay:c=0,repeat:p="infinite",alternate:d,paused:f,trigger:h="mount",play:v,once:g=!0,threshold:y=.2,easing:b,orientation:j="horizontal",reverse:q=!1,speed:x=60,gap:M="2rem",copies:k=2,pauseOnHover:A=!0,render:N,className:R,style:S,children:w,...C},G){const H=i({caller:C,parts:":scope > .neba-marquee-track",trigger:h,play:v,once:g,threshold:y,paused:f,infinite:t(p)}),$=r.useRef(null),z=r.useRef(null),[E,F]=r.useState(0),O="vertical"===j,W=o();r.useEffect(()=>{const e=$.current,r=z.current;if(!e||!r)return;const a=()=>{const a=getComputedStyle(e),t=parseFloat(O?a.rowGap:a.columnGap)||0,n=O?r.offsetHeight:r.offsetWidth;F(n+t)};a();const t=m(r,a),n=m(e,a);return()=>{t(),n()}},[O,M]);const B=u??(E>0?E/x*1e3:12e3),D=H.ref,I=r.useCallback(e=>{$.current=e,D(e),"function"==typeof G?G(e):G&&(G.current=e)},[G,D]);return a({render:N??e("span",{}),ref:I,props:{className:l("neba-marquee",O&&"neba-marquee-vertical",R),style:{"--n-anim-gap":n(M),...b?{"--n-anim-ease":b}:{},"--n-anim-duration":`${Math.round(B)}ms`,"--n-anim-delay":`${c}ms`,"--n-anim-repeat":"infinite"===p?"infinite":String(p),"--n-anim-direction":q?d?"alternate-reverse":"reverse":d?"alternate":"normal","--n-anim-state":H.state,...S},"data-neba-animation":"marquee","data-state":H.state,"data-pause-on-hover":A&&"hover"!==h?"":void 0,...C,...H.handlers,children:Array.from({length:W?1:Math.max(1,k)},(r,a)=>(r=>e("span",{ref:0===r?z:void 0,className:"neba-marquee-track","aria-hidden":0===r?void 0:"true",inert:s(0!==r),children:w},r))(a))}})});
1
+ "use client";import{jsx as e}from"react/jsx-runtime";import*as r from"react";import{useMergedRef as t}from"../../internal/refs.js";import{useRender as n}from"@base-ui/react/use-render";import{isInfinite as a,lengthValue as i,useAnimationRun as s}from"../../internal/animate.js";import{inertValue as o}from"../../internal/inert.js";import{useLayoutEffectOnClient as m}from"../../internal/layout-effect.js";import{usePrefersReducedMotion as l}from"../../internal/media.js";import{observeResize as u}from"../../internal/observe.js";import{cx as c}from"../../internal/styles.js";export const AnimateMarquee=/*@__PURE__*/r.forwardRef(function AnimateMarquee({duration:f,delay:p=0,repeat:d="infinite",alternate:h,paused:g,trigger:v="mount",play:b,once:y=!0,threshold:j=.2,easing:q,orientation:A="horizontal",reverse:N=!1,speed:S=60,gap:x="2rem",copies:M=2,pauseOnHover:R=!0,render:k,className:C,style:w,children:G,...H},T){const W=s({caller:H,parts:":scope > .neba-marquee-track",trigger:v,play:b,once:y,threshold:j,paused:g,infinite:a(d)}),$=r.useRef(null),z=r.useRef(null),[E,F]=r.useState(0),O="vertical"===A,B=l();r.useEffect(()=>{const e=$.current,r=z.current;if(!e||!r)return;const t=()=>{const t=getComputedStyle(e),n=parseFloat(O?t.rowGap:t.columnGap)||0,a=O?r.offsetHeight:r.offsetWidth;F(a+n)};t();const n=u(r,t),a=u(e,t);return()=>{n(),a()}},[O,x]);const D=Math.round(f??(E>0?E/S*1e3:12e3)),I=r.useRef(null);m(()=>{const e=I.current,r=$.current;if(I.current=D,null!==e&&e!==D&&r?.getAnimations)for(const t of r.getAnimations({subtree:!0})){const r=Number(t.currentTime);t instanceof CSSAnimation&&t.animationName.startsWith("neba-anim-marquee")&&r>p&&(t.currentTime=p+(r-p)*D/e)}},[D,p]);const J=W.ref,K=r.useCallback(e=>{$.current=e,J(e)},[J]),L=t(K,T);return n({render:k??e("span",{}),ref:L,props:{className:c("neba-marquee",O&&"neba-marquee-vertical",C),style:{"--n-anim-gap":i(x),...q?{"--n-anim-ease":q}:{},"--n-anim-duration":`${D}ms`,"--n-anim-delay":`${p}ms`,"--n-anim-repeat":"infinite"===d?"infinite":String(d),"--n-anim-direction":N?h?"alternate-reverse":"reverse":h?"alternate":"normal","--n-anim-state":W.state,...w},"data-neba-animation":"marquee","data-state":W.state,"data-pause-on-hover":R&&"hover"!==v?"":void 0,...H,...W.handlers,children:Array.from({length:B?1:Math.max(1,M)},(r,t)=>(r=>e("span",{ref:0===r?z:void 0,className:"neba-marquee-track","aria-hidden":0===r?void 0:"true",inert:o(0!==r),children:G},r))(t))}})});
@@ -1 +1 @@
1
- "use client";import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import*as a from"react";import{useRender as n}from"@base-ui/react/use-render";import{isInfinite as s,useAnimationRun as i,usePrefersReducedMotion as l}from"../../internal/animate.js";import{graphemesOf as o,portableGraphemesOf as c,standsAlone as m,textOf as u}from"../../internal/text.js";import{cx as d,srOnlyClasses as f}from"../../internal/styles.js";import{useStyleDefaults as p}from"../../internal/defaults.js";import{useHydrated as h}from"../../internal/media.js";const g="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789#%&$@*";export const AnimateScramble=/*@__PURE__*/a.forwardRef(function AnimateScramble(x,v){const{text:b,speed:M=18,tick:j=45,characters:w=g,duration:N,delay:y=0,repeat:R=1,paused:E,trigger:I="mount",play:S,once:T=!0,threshold:A=.2,locale:F,render:k,className:B,style:C,children:D,...G}=p(x,["locale"]),H=i({caller:G,trigger:I,play:S,once:T,threshold:A,paused:E,infinite:s(R)}),J=l(),K=b??u(D),L=h(),O=a.useMemo(()=>L?o(K,F):c(K),[L,K,F]),P=O.length,[Q,U]=a.useState(0),[V,W]=a.useReducer(e=>e+1,0),X=a.useMemo(()=>void 0!==N&&P>0?Math.max(1,N/P):1e3/Math.max(1,M),[N,M,P]),Y=a.useRef(0),Z=a.useRef(H.run);a.useEffect(()=>{Y.current=0},[P]),a.useEffect(()=>{if(!H.started)return void(Y.current=0);if(Z.current!==H.run&&(Z.current=H.run,Y.current=0),E)return;if(J||0===P)return void U(P);let e,t=Math.min(Y.current,P);if(t>=P)return void U(P);const r=()=>{t+=1,Y.current=t,U(t),t<P?e=setTimeout(r,X):clearInterval(a)};U(t);const a=setInterval(W,j);return e=setTimeout(r,0===t?y+X:X),()=>{clearTimeout(e),clearInterval(a)}},[H.started,H.run,E,J,P,X,j,y]);const $=w.length>0?w:g,q=[];return O.forEach((e,t)=>{const r=""===e.trim(),a=!r&&m(e);let n=q[q.length-1];if((!n||!r&&(n.gap||a||m(O[t-1]??"")))&&(n={text:"",shown:"",gap:"",settled:!0},q.push(n)),r)return void(n.gap+=e);const s=J||t<Q;n.text+=e,n.shown+=s?e:$[function(e,t,r){let a=Math.imul(e+1,2246822507)^Math.imul(t+1,3266489909);return a^=a>>>15,a=Math.imul(a,625341585),a^=a>>>13,(a>>>0)%r}(V,t,$.length)],n.settled&&=s}),n({render:k??e("span",{}),ref:[v,H.ref],props:{...G,className:d("inline-grid",B),style:C,"data-neba-animation":"scramble","data-state":H.state,...H.handlers,children:t(r,{children:[e("span",{className:f,children:K}),e("span",{"aria-hidden":"true",className:"invisible whitespace-pre-wrap [grid-area:1/1]",children:q.map((r,n)=>t(a.Fragment,{children:[r.text?e("span",{"data-sample":r.text,"data-text":r.settled?void 0:r.shown,className:r.settled?"visible before:content-[attr(data-sample)]":"relative before:content-[attr(data-sample)] after:visible after:absolute after:inset-0 after:flex after:items-center after:overflow-x-clip after:whitespace-pre after:content-[attr(data-text)]"}):null,r.gap?e("span",{"data-sample":r.gap,className:"before:content-[attr(data-sample)]"}):null]},n))})]})}})});
1
+ "use client";import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import*as a from"react";import{useRender as n}from"@base-ui/react/use-render";import{isInfinite as s,useAnimationRun as i,usePrefersReducedMotion as l}from"../../internal/animate.js";import{graphemesOf as o,portableGraphemesOf as c,standsAlone as m,textOf as u}from"../../internal/text.js";import{cx as d,srOnlyClasses as f}from"../../internal/styles.js";import{useStyleDefaults as p}from"../../internal/defaults.js";import{useHydrated as h}from"../../internal/media.js";const g="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789#%&$@*";export const AnimateScramble=/*@__PURE__*/a.forwardRef(function AnimateScramble(x,v){const{text:b,speed:M=18,tick:j=45,characters:w=g,duration:N,delay:y=0,repeat:R=1,paused:E,trigger:I="mount",play:S,once:T=!0,threshold:A=.2,locale:F,render:k,className:B,style:C,children:D,...G}=p(x,["locale"]),H=i({caller:G,trigger:I,play:S,once:T,threshold:A,paused:E,infinite:s(R)}),J=l(),K=b??u(D),L=h(),O=a.useMemo(()=>L?o(K,F):c(K),[L,K,F]),P=O.length,[Q,U]=a.useState(0),[V,W]=a.useReducer(e=>e+1,0),X=a.useMemo(()=>void 0!==N&&P>0?Math.max(1,N/P):1e3/Math.max(1,M),[N,M,P]),Y=a.useRef(0),Z=a.useRef(H.run);a.useEffect(()=>{Y.current=0},[P]),a.useEffect(()=>{if(!H.started)return void(Y.current=0);if(Z.current!==H.run&&(Z.current=H.run,Y.current=0),E)return;if(J||0===P)return void U(P);let e,t=Math.min(Y.current,P);if(t>=P)return void U(P);const r=()=>{t+=1,Y.current=t,U(t),t<P?e=setTimeout(r,X):clearInterval(a)};U(t);const a=setInterval(W,j);return e=setTimeout(r,0===t?y+X:X),()=>{clearTimeout(e),clearInterval(a)}},[H.started,H.run,E,J,P,X,j,y]);const $=w.length>0?w:g,q=[];return O.forEach((e,t)=>{const r=""===e.trim(),a=!r&&m(e);let n=q[q.length-1];if((!n||!r&&(n.gap||a||m(O[t-1]??"")))&&(n={text:"",shown:"",gap:"",settled:!0},q.push(n)),r)return void(n.gap+=e);const s=J||t<Q;n.text+=e,n.shown+=s?e:$[function(e,t,r){let a=Math.imul(e+1,2246822507)^Math.imul(t+1,3266489909);return a^=a>>>15,a=Math.imul(a,625341585),a^=a>>>13,(a>>>0)%r}(V,t,$.length)],n.settled&&=s}),n({render:k??e("span",{}),ref:[v,H.ref],props:{...G,className:d("inline-grid",B),style:C,"data-neba-animation":"scramble","data-state":H.state,...H.handlers,children:t(r,{children:[e("span",{className:f,children:K}),e("span",{"aria-hidden":"true",className:"invisible whitespace-pre-wrap [grid-area:1/1]",children:q.map((r,n)=>t(a.Fragment,{children:[r.text?e("span",{"data-sample":r.text,"data-text":r.settled?void 0:r.shown,className:r.settled?"visible before:content-[attr(data-sample)]":"neba-text-noise relative before:content-[attr(data-sample)] after:visible after:absolute after:inset-0 after:flex after:items-center after:overflow-x-clip after:whitespace-pre after:content-[attr(data-text)]"}):null,r.gap?e("span",{"data-sample":r.gap,className:"before:content-[attr(data-sample)]"}):null]},n))})]})}})});
@@ -1 +1 @@
1
- "use client";import{jsx as e,Fragment as t,jsxs as r}from"react/jsx-runtime";import*as n from"react";import{useRender as a}from"@base-ui/react/use-render";import{isInfinite as s,useAnimationRun as i,usePrefersReducedMotion as o}from"../../internal/animate.js";import{cx as c,srOnlyClasses as u}from"../../internal/styles.js";import{graphemesOf as d,textOf as l}from"../../internal/text.js";export const AnimateTyping=/*@__PURE__*/n.forwardRef(function AnimateTyping({text:p,speed:m=24,hold:f=1400,erase:g=!1,eraseSpeed:h,caret:y=!0,caretChar:x="|",duration:b,delay:T=0,repeat:j=1,paused:N,trigger:v="mount",play:w,once:M=!0,threshold:R=.2,render:A,className:C,style:E,children:S,...k},F){const q=i({caller:k,trigger:v,play:w,once:M,threshold:R,paused:N,infinite:s(j)}),z=o(),B=p??l(S),D=n.useMemo(()=>d(B),[B]),G=D.length,[H,I]=n.useState(0),J=n.useRef({count:0,pass:1,deleting:!1}),K=n.useRef(q.run),L=b&&G>0?b/G:1e3/Math.max(m,1),O=1e3/Math.max(h??2*m,1);n.useEffect(()=>{J.current={count:0,pass:1,deleting:!1}},[B]),n.useEffect(()=>{if(z||0===G)return void I(G);if(!q.started)return J.current={count:0,pass:1,deleting:!1},void I(0);if(K.current!==q.run&&(K.current=q.run,J.current={count:0,pass:1,deleting:!1}),N||q.offscreen)return;let e,t=!1;const r=J.current,n="infinite"===j?1/0:Math.max(1,j);if(r.count>=G&&r.pass>=n&&!r.deleting)return;const a=()=>{if(!t){if(r.deleting)return r.count-=1,I(r.count),r.count<=0&&(r.deleting=!1,r.pass+=1),void(e=setTimeout(a,r.deleting?O:L));if(r.count<G&&(r.count+=1,I(r.count)),r.count<G)e=setTimeout(a,L);else if(!(r.pass>=n))return g?(r.deleting=!0,void(e=setTimeout(a,f))):void(e=setTimeout(()=>{t||(r.count=0,r.pass+=1,I(0),e=setTimeout(a,L))},f))}};return I(r.count),e=setTimeout(a,0===r.count&&1===r.pass?T:r.deleting?O:L),()=>{t=!0,clearTimeout(e)}},[q.started,q.run,q.offscreen,N,z,B,G,L,O,T,f,g,j]);const P=q.ref,Q=n.useCallback(e=>{P(e),"function"==typeof F?F(e):F&&(F.current=e)},[F,P]),U=e("span","string"==typeof x||"number"==typeof x?{"data-text":x,className:"neba-typing-caret before:content-[attr(data-text)]"}:{className:"neba-typing-caret",children:x});return a({render:A??e("span",{}),ref:Q,props:{className:c("grid",C),style:E,"data-neba-animation":"typing","data-state":q.state,...k,...q.handlers,children:r(t,{children:[e("span",{className:u,children:B}),e("span",{"aria-hidden":"true","data-text":D.slice(0,H).join(""),className:"whitespace-pre-wrap [grid-area:1/1] before:content-[attr(data-text)]",children:y?U:null}),e("span",{"aria-hidden":"true","data-sample":B,className:"invisible whitespace-pre-wrap [grid-area:1/1] before:content-[attr(data-sample)]"})]})}})});
1
+ "use client";import{jsx as e,Fragment as t,jsxs as n}from"react/jsx-runtime";import*as a from"react";import{useMergedRef as r}from"../../internal/refs.js";import{useRender as s}from"@base-ui/react/use-render";import{isInfinite as i,useAnimationRun as o,usePrefersReducedMotion as c}from"../../internal/animate.js";import{cx as l,srOnlyClasses as u}from"../../internal/styles.js";import{graphemesOf as d,textOf as p}from"../../internal/text.js";export const AnimateTyping=/*@__PURE__*/a.forwardRef(function AnimateTyping({text:m,speed:f=24,hold:g=1400,erase:h=!1,eraseSpeed:x,caret:b=!0,caretChar:y="|",duration:N,delay:T=0,repeat:j=1,paused:v,trigger:w="mount",play:M,once:R=!0,threshold:k=.2,render:A,className:E,style:S,children:C,...F},q){const z=o({caller:F,trigger:w,play:M,once:R,threshold:k,paused:v,infinite:i(j)}),B=c(),D=m??p(C),G=a.useMemo(()=>d(D),[D]),H=G.length,[I,J]=a.useState(0),K=a.useRef({count:0,pass:1,deleting:!1}),L=a.useRef(z.run),O=N&&H>0?N/H:1e3/Math.max(f,1),P=1e3/Math.max(x??2*f,1);a.useEffect(()=>{K.current={count:0,pass:1,deleting:!1}},[D]),a.useEffect(()=>{if(B||0===H)return void J(H);if(!z.started)return K.current={count:0,pass:1,deleting:!1},void J(0);if(L.current!==z.run&&(L.current=z.run,K.current={count:0,pass:1,deleting:!1}),v||z.offscreen)return;let e,t=!1;const n=K.current,a="infinite"===j?1/0:Math.max(1,j);if(n.count>=H&&n.pass>=a&&!n.deleting)return;const r=()=>{if(!t){if(n.deleting)return n.count-=1,J(n.count),n.count<=0&&(n.deleting=!1,n.pass+=1),void(e=setTimeout(r,n.deleting?P:O));if(n.count<H&&(n.count+=1,J(n.count)),n.count<H)e=setTimeout(r,O);else if(!(n.pass>=a))return h?(n.deleting=!0,void(e=setTimeout(r,g))):void(e=setTimeout(()=>{t||(n.count=0,n.pass+=1,J(0),e=setTimeout(r,O))},g))}};return J(n.count),e=setTimeout(r,0===n.count&&1===n.pass?T:n.deleting?P:O),()=>{t=!0,clearTimeout(e)}},[z.started,z.run,z.offscreen,v,B,D,H,O,P,T,g,h,j]);const Q=r(z.ref,q),U=e("span","string"==typeof y||"number"==typeof y?{"data-text":y,className:"neba-typing-caret before:content-[attr(data-text)]"}:{className:"neba-typing-caret",children:y}),V=e("span","string"==typeof y||"number"==typeof y?{"data-text":y,className:"inline-block before:content-[attr(data-text)]"}:{className:"inline-block",children:y});return s({render:A??e("span",{}),ref:Q,props:{className:l("grid",E),style:S,"data-neba-animation":"typing","data-state":z.state,...F,...z.handlers,children:n(t,{children:[e("span",{className:u,children:D}),e("span",{"aria-hidden":"true","data-text":G.slice(0,I).join(""),className:"neba-text-moving whitespace-pre-wrap [grid-area:1/1] before:content-[attr(data-text)]",children:b?U:null}),e("span",{"aria-hidden":"true","data-sample":D,className:"neba-text-final invisible whitespace-pre-wrap [grid-area:1/1] before:content-[attr(data-sample)]",children:b?V:null})]})}})});
@@ -1 +1 @@
1
- "use client";import{jsx as e,Fragment as r,jsxs as n}from"react/jsx-runtime";import*as t from"react";import{useRender as a}from"@base-ui/react/use-render";import{initialsOf as l}from"../../internal/initials.js";import{safeHref as s,safeRel as i}from"../../internal/link.js";import{NewTabNote as o}from"../../internal/new-tab.js";import{controlHeightClasses as m,controlSlots as d,controlSquareClasses as c,cx as u,gapClasses as x,hasContent as f,srOnlyClasses as g,surfaceClasses as p,tintPlateClasses as h,toLength as v,transitionClasses as b}from"../../internal/styles.js";import{useStyleDefaults as w}from"../../internal/defaults.js";const j={xs:"text-[0.75rem]",sm:"text-[0.875rem]",md:"text-[1.0625rem]",lg:"text-[1.375rem]",xl:"text-[1.625rem]"},N={xs:"text-[0.75rem]",sm:"text-[0.875rem]",md:"text-[1.0625rem]",lg:"text-[1.3125rem]",xl:"text-[1.5625rem]"},_={xs:"rounded-[0.375rem]",sm:"rounded-[0.4375rem]",md:"rounded-[0.5625rem]",lg:"rounded-[0.6875rem]",xl:"rounded-[0.875rem]"},y={solid:[p,"text-(--n-on-solid) bg-(--n-fill)","[box-shadow:var(--n-elev),var(--neba-plate-solid)]"].join(" "),outline:[p,"border text-(--n-on-tint) bg-(--n-panel)","[border-color:var(--n-line)]","[box-shadow:var(--n-elev),var(--neba-plate-glass)]"].join(" "),text:`text-(--n-on-tint) ${h} [box-shadow:var(--n-elev)]`};export const AppLogo=/*@__PURE__*/t.forwardRef(function AppLogo(t,p){const{src:h,srcSet:k,alt:z,name:A,initials:L,showName:S=!1,shape:$="bare",variant:F="solid",size:P="md",color:R="primary",elevation:q=0,padded:B=!0,height:C,href:D,target:E,rel:G,imageProps:H,render:I,className:J,style:K,children:M,...O}=w(t,["size","variant"]),Q="bare"!==$,T=f(M)?M:h?"image":null,U=Q&&B,V=null===T&&!Q,W=S&&!V&&f(A),X=z??A,Y=L??(A?l(A):""),Z="image"===T&&!W&&f(X),ee=V||Z,re=!ee&&!W&&f(X),ne=v(C),te=ne?{height:ne,width:Q?ne:void 0}:null,ae=e("span",{"aria-hidden":!ee||void 0,className:u("flex shrink-0 items-center justify-center overflow-hidden","font-semibold tracking-tight whitespace-nowrap",ne?"":m[P],Q?u(ne?"":c[P],"circle"===$?"rounded-full":_[P],N[P],y[F]):u("w-auto text-(--neba-fg)",j[P]),"[&_svg]:w-auto [&_svg]:shrink-0",U?"[&_svg]:h-[72%] [&_svg]:max-w-[72%]":"[&_svg]:h-full [&_svg]:max-w-full",b),style:{...Q?d(R,q,F):null,...te},children:"image"===T?e("img",{alt:Z?X??"":"",decoding:"async",...H,className:u("w-auto object-contain",U?"h-[72%] max-w-[72%]":"h-full max-w-full",H?.className),srcSet:k,src:h}):T??(V?A:Y)}),le=s(D);return a({render:I??e(le?"a":"span",{}),ref:p,props:{href:le,target:E,rel:i(E,G),className:u("inline-flex max-w-full min-w-0 items-center align-middle","text-(--neba-fg) no-underline select-none",x[P],le?"cursor-pointer rounded-(--neba-radius-sm)":"",le?"focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-2":"",J),style:{"--n-ring":`var(--neba-${R}-ring)`,...K},children:n(r,{children:[ae,W?e("span",{className:u("min-w-0 truncate font-semibold",j[P]),children:A}):null,re?e("span",{className:g,children:X}):null,le?e(o,{target:E}):null]}),...O}})});
1
+ "use client";import{jsx as e,Fragment as r,jsxs as t}from"react/jsx-runtime";import*as n from"react";import{useRender as a}from"@base-ui/react/use-render";import{initialsOf as l}from"../../internal/initials.js";import{safeHref as s,safeRel as i}from"../../internal/link.js";import{NewTabNote as o}from"../../internal/new-tab.js";import{controlHeightClasses as m,controlSlots as d,controlSquareClasses as c,cx as u,gapClasses as x,hasContent as f,srOnlyClasses as g,surfaceClasses as p,tintPlateClasses as h,toLength as v,transitionClasses as b}from"../../internal/styles.js";import{useStyleDefaults as w}from"../../internal/defaults.js";const j={xs:"text-[0.75rem]",sm:"text-[0.875rem]",md:"text-[1.0625rem]",lg:"text-[1.375rem]",xl:"text-[1.625rem]"},N={xs:"text-[0.75rem]",sm:"text-[0.875rem]",md:"text-[1.0625rem]",lg:"text-[1.3125rem]",xl:"text-[1.5625rem]"},_={xs:"rounded-[0.375rem]",sm:"rounded-[0.4375rem]",md:"rounded-[0.5625rem]",lg:"rounded-[0.6875rem]",xl:"rounded-[0.875rem]"},y={solid:p+" text-(--n-on-solid) bg-(--n-fill) [box-shadow:var(--n-elev),var(--neba-plate-solid)]",outline:p+" border text-(--n-on-tint) bg-(--n-panel) [border-color:var(--n-line)] [box-shadow:var(--n-elev),var(--neba-plate-glass)]",text:`text-(--n-on-tint) ${h} [box-shadow:var(--n-elev)]`};export const AppLogo=/*@__PURE__*/n.forwardRef(function AppLogo(n,p){const{src:h,srcSet:k,alt:z,name:A,initials:L,showName:S=!1,shape:$="bare",variant:F="solid",size:P="md",color:R="primary",elevation:q=0,padded:B=!0,height:C,href:D,target:E,rel:G,imageProps:H,render:I,className:J,style:K,children:M,...O}=w(n,["size","variant"]),Q="bare"!==$,T=f(M)?M:h?"image":null,U=Q&&B,V=null===T&&!Q,W=S&&!V&&f(A),X=z??A,Y=L??(A?l(A):""),Z="image"===T&&!W&&f(X),ee=V||Z,re=!ee&&!W&&f(X),te=v(C),ne=te?{height:te,width:Q?te:void 0}:null,ae=e("span",{"aria-hidden":!ee||void 0,className:u("flex shrink-0 items-center justify-center overflow-hidden","font-semibold tracking-tight whitespace-nowrap",te?"":m[P],Q?u(te?"":c[P],"circle"===$?"rounded-full":_[P],N[P],y[F]):u("w-auto text-(--neba-fg)",j[P]),"[&_svg]:w-auto [&_svg]:shrink-0",U?"[&_svg]:h-[72%] [&_svg]:max-w-[72%]":"[&_svg]:h-full [&_svg]:max-w-full",b),style:{...Q?d(R,q,F):null,...ne},children:"image"===T?e("img",{alt:Z?X??"":"",decoding:"async",...H,className:u("w-auto object-contain",U?"h-[72%] max-w-[72%]":"h-full max-w-full",H?.className),srcSet:k,src:h}):T??(V?A:Y)}),le=s(D);return a({render:I??e(le?"a":"span",{}),ref:p,props:{href:le,target:E,rel:i(E,G),className:u("inline-flex max-w-full min-w-0 items-center align-middle","text-(--neba-fg) no-underline select-none",x[P],le?"cursor-pointer rounded-(--neba-radius-sm)":"",le?"focus-visible:[outline:2px_solid_var(--n-ring)] focus-visible:outline-offset-2":"",J),style:{"--n-ring":`var(--neba-${R}-ring)`,...K},children:t(r,{children:[ae,W?e("span",{className:u("min-w-0 truncate font-semibold",j[P]),children:A}):null,re?e("span",{className:g,children:X}):null,le?e(o,{target:E}):null]}),...O}})});