@signalflare-ai/ui 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -4
- package/README.md +1 -1
- package/ai/component-registry.json +976 -182
- package/ai/component-registry.md +4183 -49
- package/ai/schemas.ts +99 -502
- package/dist/.build-complete +1 -1
- package/dist/ai/schemas.d.ts +76 -58
- package/dist/ai/schemas.d.ts.map +1 -1
- package/dist/{ai-actions-DSVeQn4e.js → ai-actions-BdUZI3Gk.js} +3 -3
- package/dist/{ai-actions-DSVeQn4e.js.map → ai-actions-BdUZI3Gk.js.map} +1 -1
- package/dist/{ai-agent-card-BXHwhWAU.js → ai-agent-card-BR2NIYhi.js} +1 -1
- package/dist/{ai-agent-card-BXHwhWAU.js.map → ai-agent-card-BR2NIYhi.js.map} +1 -1
- package/dist/{ai-approval-aa0qvjFN.js → ai-approval-Ba7mrKba.js} +2 -2
- package/dist/{ai-approval-aa0qvjFN.js.map → ai-approval-Ba7mrKba.js.map} +1 -1
- package/dist/{ai-code-block-BgtIxtZZ.js → ai-code-block-CZtoL73R.js} +3 -3
- package/dist/{ai-code-block-BgtIxtZZ.js.map → ai-code-block-CZtoL73R.js.map} +1 -1
- package/dist/ai-conversation-Cc7WlaBg.js +242 -0
- package/dist/ai-conversation-Cc7WlaBg.js.map +1 -0
- package/dist/{ai-info-banner-uFxHHwBA.js → ai-info-banner-C7EWPBj7.js} +7 -3
- package/dist/ai-info-banner-C7EWPBj7.js.map +1 -0
- package/dist/{ai-message-BjnFznXy.js → ai-message-Bp7L68U_.js} +27 -8
- package/dist/ai-message-Bp7L68U_.js.map +1 -0
- package/dist/{ai-mission-header-08__gULL.js → ai-mission-header-TiCJfTNt.js} +1 -1
- package/dist/{ai-mission-header-08__gULL.js.map → ai-mission-header-TiCJfTNt.js.map} +1 -1
- package/dist/{ai-part-group-DBtgTgAn.js → ai-part-group-DNb9I446.js} +3 -3
- package/dist/{ai-part-group-DBtgTgAn.js.map → ai-part-group-DNb9I446.js.map} +1 -1
- package/dist/{ai-prompt-input-CuluUzpf.js → ai-prompt-input-BVvov_KF.js} +29 -42
- package/dist/ai-prompt-input-BVvov_KF.js.map +1 -0
- package/dist/{ai-question-CHHoDJMg.js → ai-question-GPPMk7YM.js} +2 -2
- package/dist/{ai-question-CHHoDJMg.js.map → ai-question-GPPMk7YM.js.map} +1 -1
- package/dist/{ai-reasoning-CnL6ZSr5.js → ai-reasoning-_feFjk56.js} +2 -2
- package/dist/{ai-reasoning-CnL6ZSr5.js.map → ai-reasoning-_feFjk56.js.map} +1 -1
- package/dist/{ai-response-BEUg3xvd.js → ai-response-CvjV3WhV.js} +8 -3
- package/dist/ai-response-CvjV3WhV.js.map +1 -0
- package/dist/{ai-shimmer-By5_L05p.js → ai-shimmer-j6lKIrjj.js} +1 -1
- package/dist/{ai-shimmer-By5_L05p.js.map → ai-shimmer-j6lKIrjj.js.map} +1 -1
- package/dist/{ai-status-badge-BGYGWYF6.js → ai-status-badge-CSU_QOdz.js} +1 -1
- package/dist/{ai-status-badge-BGYGWYF6.js.map → ai-status-badge-CSU_QOdz.js.map} +1 -1
- package/dist/{ai-streaming-text-CMfoThV0.js → ai-streaming-text-IWW1BhvZ.js} +44 -16
- package/dist/ai-streaming-text-IWW1BhvZ.js.map +1 -0
- package/dist/{ai-subagent-DcPRqkAA.js → ai-subagent-JA4iIMW3.js} +13 -5
- package/dist/ai-subagent-JA4iIMW3.js.map +1 -0
- package/dist/{ai-suggestion-MgeCg5Ar.js → ai-suggestion-BdO6MBuH.js} +2 -2
- package/dist/{ai-suggestion-MgeCg5Ar.js.map → ai-suggestion-BdO6MBuH.js.map} +1 -1
- package/dist/{ai-task-list-Da9zIm00.js → ai-task-list-DYw4R1FA.js} +12 -5
- package/dist/ai-task-list-DYw4R1FA.js.map +1 -0
- package/dist/{ai-timeline-Cwu045IR.js → ai-timeline-C42tOUT8.js} +1 -1
- package/dist/{ai-timeline-Cwu045IR.js.map → ai-timeline-C42tOUT8.js.map} +1 -1
- package/dist/{ai-tool-Cn1O4xjP.js → ai-tool-03jOTwUI.js} +23 -10
- package/dist/ai-tool-03jOTwUI.js.map +1 -0
- package/dist/{ai-usage-bar-DjS12DMp.js → ai-usage-bar-BRf5LC_b.js} +1 -1
- package/dist/{ai-usage-bar-DjS12DMp.js.map → ai-usage-bar-BRf5LC_b.js.map} +1 -1
- package/dist/{badge-D_eaA6wv.js → badge-BheXjMc8.js} +2 -2
- package/dist/{badge-D_eaA6wv.js.map → badge-BheXjMc8.js.map} +1 -1
- package/dist/{banner-B_6oBrsu.js → banner-CcsjunJg.js} +7 -2
- package/dist/banner-CcsjunJg.js.map +1 -0
- package/dist/{breadcrumbs-BlmeYfgq.js → breadcrumbs-CouSyy3H.js} +3 -3
- package/dist/{breadcrumbs-BlmeYfgq.js.map → breadcrumbs-CouSyy3H.js.map} +1 -1
- package/dist/{button-De0267YU.js → button-CO6-qPax.js} +1 -1
- package/dist/{button-De0267YU.js.map → button-CO6-qPax.js.map} +1 -1
- package/dist/catalog.js +1 -1
- package/dist/{chart-BK3sVPnD.js → chart-Dg0qUeSc.js} +2 -2
- package/dist/{chart-BK3sVPnD.js.map → chart-Dg0qUeSc.js.map} +1 -1
- package/dist/{checkbox-DYhUmZNw.js → checkbox-D7p4QKsC.js} +2 -2
- package/dist/{checkbox-DYhUmZNw.js.map → checkbox-D7p4QKsC.js.map} +1 -1
- package/dist/{clipboard-text-ssybngLw.js → clipboard-text-kLaMogs3.js} +3 -3
- package/dist/{clipboard-text-ssybngLw.js.map → clipboard-text-kLaMogs3.js.map} +1 -1
- package/dist/{code-Cx-QSoOT.js → code-BN8InC0G.js} +2 -2
- package/dist/{code-Cx-QSoOT.js.map → code-BN8InC0G.js.map} +1 -1
- package/dist/{collapsible-DWsXeXmS.js → collapsible-D_ueZ0jz.js} +1 -1
- package/dist/{collapsible-DWsXeXmS.js.map → collapsible-D_ueZ0jz.js.map} +1 -1
- package/dist/{combobox-C0iW6a0r.js → combobox-B7TOK0U2.js} +3 -3
- package/dist/{combobox-C0iW6a0r.js.map → combobox-B7TOK0U2.js.map} +1 -1
- package/dist/{command-palette-DGzioeki.js → command-palette-CuNUyJca.js} +2 -2
- package/dist/{command-palette-DGzioeki.js.map → command-palette-CuNUyJca.js.map} +1 -1
- package/dist/components/ai-actions.js +1 -1
- package/dist/components/ai-agent-card.js +1 -1
- package/dist/components/ai-approval.js +1 -1
- package/dist/components/ai-code-block.js +1 -1
- package/dist/components/ai-conversation.js +2 -2
- package/dist/components/ai-info-banner.js +1 -1
- package/dist/components/ai-message.js +1 -1
- package/dist/components/ai-mission-header.js +1 -1
- package/dist/components/ai-part-group.js +1 -1
- package/dist/components/ai-prompt-input.js +1 -1
- package/dist/components/ai-question.js +1 -1
- package/dist/components/ai-reasoning.js +1 -1
- package/dist/components/ai-response.js +1 -1
- package/dist/components/ai-shimmer.js +1 -1
- package/dist/components/ai-status-badge.js +1 -1
- package/dist/components/ai-streaming-text.js +2 -2
- package/dist/components/ai-subagent.js +1 -1
- package/dist/components/ai-suggestion.js +1 -1
- package/dist/components/ai-task-list.js +1 -1
- package/dist/components/ai-timeline.js +1 -1
- package/dist/components/ai-tool.js +1 -1
- package/dist/components/ai-usage-bar.js +1 -1
- package/dist/components/badge.js +1 -1
- package/dist/components/banner.js +1 -1
- package/dist/components/breadcrumbs.js +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/chart.js +2 -2
- package/dist/components/checkbox.js +1 -1
- package/dist/components/clipboard-text.js +1 -1
- package/dist/components/code.js +1 -1
- package/dist/components/collapsible.js +1 -1
- package/dist/components/combobox.js +1 -1
- package/dist/components/command-palette.js +1 -1
- package/dist/components/data-grid.js +1 -1
- package/dist/components/date-picker.js +1 -1
- package/dist/components/date-range-picker.js +1 -1
- package/dist/components/dialog.js +1 -1
- package/dist/components/dropdown.js +1 -1
- package/dist/components/empty.js +1 -1
- package/dist/components/field.js +1 -1
- package/dist/components/filters.js +1 -1
- package/dist/components/flow.js +1 -1
- package/dist/components/grid.js +1 -1
- package/dist/components/input.js +2 -2
- package/dist/components/label.js +1 -1
- package/dist/components/layer-card.js +1 -1
- package/dist/components/loader.js +1 -1
- package/dist/components/menubar.js +1 -1
- package/dist/components/meter.js +1 -1
- package/dist/components/pagination.js +1 -1
- package/dist/components/popover.js +1 -1
- package/dist/components/radio.js +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/sensitive-input.js +1 -1
- package/dist/components/sidebar.js +1 -1
- package/dist/components/signalflare-ai-logo.js +1 -1
- package/dist/components/sparkline.js +1 -1
- package/dist/components/stat-card.js +1 -1
- package/dist/components/surface.js +1 -1
- package/dist/components/switch.js +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/tabs.js +1 -1
- package/dist/components/text-roll.js +1 -1
- package/dist/components/text.js +1 -1
- package/dist/components/theme-toggle.js +1 -1
- package/dist/components/toast.js +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/components/use-agent-harness.js +1 -1
- package/dist/{data-grid-CG76N_hK.js → data-grid-DGHmU0w3.js} +8 -8
- package/dist/{data-grid-CG76N_hK.js.map → data-grid-DGHmU0w3.js.map} +1 -1
- package/dist/{date-picker-Dqg9L4xu.js → date-picker--ox89RBy.js} +1 -1
- package/dist/{date-picker-Dqg9L4xu.js.map → date-picker--ox89RBy.js.map} +1 -1
- package/dist/{date-range-picker-D75LLINc.js → date-range-picker-DVa7QBqE.js} +1 -1
- package/dist/{date-range-picker-D75LLINc.js.map → date-range-picker-DVa7QBqE.js.map} +1 -1
- package/dist/{dialog-CyHEQXEY.js → dialog-Bv1oSFOd.js} +2 -2
- package/dist/{dialog-CyHEQXEY.js.map → dialog-Bv1oSFOd.js.map} +1 -1
- package/dist/{dist-1-gcEL2L.js → dist-B6iWiWwp.js} +25 -25
- package/dist/{dist-1-gcEL2L.js.map → dist-B6iWiWwp.js.map} +1 -1
- package/dist/{dropdown-qnEYRFXZ.js → dropdown-B_nrGXjV.js} +2 -2
- package/dist/{dropdown-qnEYRFXZ.js.map → dropdown-B_nrGXjV.js.map} +1 -1
- package/dist/{echart-DURZEyai.js → echart-CdOUaT-r.js} +1 -1
- package/dist/{echart-DURZEyai.js.map → echart-CdOUaT-r.js.map} +1 -1
- package/dist/{empty-D2TypIId.js → empty-DZnN0zKX.js} +11 -6
- package/dist/empty-DZnN0zKX.js.map +1 -0
- package/dist/{field-Y_UK1_Cg.js → field-B_yVof52.js} +2 -2
- package/dist/{field-Y_UK1_Cg.js.map → field-B_yVof52.js.map} +1 -1
- package/dist/{filters-Bw_U6ZTx.js → filters-cpJCY21R.js} +7 -7
- package/dist/{filters-Bw_U6ZTx.js.map → filters-cpJCY21R.js.map} +1 -1
- package/dist/{flow-BRsYUCJa.js → flow-B4v198ot.js} +1 -1
- package/dist/{flow-BRsYUCJa.js.map → flow-B4v198ot.js.map} +1 -1
- package/dist/genui.js +1 -1
- package/dist/{grid-qUAN9hFx.js → grid-CEd64Lnh.js} +1 -1
- package/dist/{grid-qUAN9hFx.js.map → grid-CEd64Lnh.js.map} +1 -1
- package/dist/{highlight-to-react-ClEfL81q.js → highlight-to-react-D0Yav4jk.js} +1 -1
- package/dist/{highlight-to-react-ClEfL81q.js.map → highlight-to-react-D0Yav4jk.js.map} +1 -1
- package/dist/index.js +69 -69
- package/dist/{input-DXYUjGgD.js → input-B2bbijRh.js} +2 -2
- package/dist/{input-DXYUjGgD.js.map → input-B2bbijRh.js.map} +1 -1
- package/dist/{input-DddtBN-g.js → input-ClB_E4Lb.js} +4 -4
- package/dist/{input-DddtBN-g.js.map → input-ClB_E4Lb.js.map} +1 -1
- package/dist/{label-QtJxtJ4u.js → label-DUv_urO1.js} +2 -2
- package/dist/{label-QtJxtJ4u.js.map → label-DUv_urO1.js.map} +1 -1
- package/dist/{layer-card-BME0eljh.js → layer-card-BK7eYfwn.js} +1 -1
- package/dist/{layer-card-BME0eljh.js.map → layer-card-BK7eYfwn.js.map} +1 -1
- package/dist/layout-DJHMMap2.js +6103 -0
- package/dist/layout-DJHMMap2.js.map +1 -0
- package/dist/measured-text-BI3dTJmH.js +290 -0
- package/dist/measured-text-BI3dTJmH.js.map +1 -0
- package/dist/{menubar-C8NzAjfd.js → menubar-Cxf3xeAt.js} +2 -2
- package/dist/{menubar-C8NzAjfd.js.map → menubar-Cxf3xeAt.js.map} +1 -1
- package/dist/{meter-CpmTenEr.js → meter-BFFe9l5b.js} +1 -1
- package/dist/{meter-CpmTenEr.js.map → meter-BFFe9l5b.js.map} +1 -1
- package/dist/{pagination-BVqdlONY.js → pagination-yS372Tr4.js} +2 -2
- package/dist/{pagination-BVqdlONY.js.map → pagination-yS372Tr4.js.map} +1 -1
- package/dist/{popover-BRQZ2b6z.js → popover-SRoJaCZr.js} +1 -1
- package/dist/{popover-BRQZ2b6z.js.map → popover-SRoJaCZr.js.map} +1 -1
- package/dist/{radio-BNSwOt3B.js → radio-BcwhwYNB.js} +1 -1
- package/dist/{radio-BNSwOt3B.js.map → radio-BcwhwYNB.js.map} +1 -1
- package/dist/{select-1w2aebGQ.js → select-DMhdoHMa.js} +4 -4
- package/dist/{select-1w2aebGQ.js.map → select-DMhdoHMa.js.map} +1 -1
- package/dist/{sensitive-input-82Cez3vj.js → sensitive-input-CJUpIRal.js} +3 -3
- package/dist/{sensitive-input-82Cez3vj.js.map → sensitive-input-CJUpIRal.js.map} +1 -1
- package/dist/{sidebar-CAsCmSpM.js → sidebar-D4zrlYpn.js} +2 -2
- package/dist/{sidebar-CAsCmSpM.js.map → sidebar-D4zrlYpn.js.map} +1 -1
- package/dist/{signalflare-ai-logo-DDhxMJD6.js → signalflare-ai-logo-Bipogceq.js} +1 -1
- package/dist/{signalflare-ai-logo-DDhxMJD6.js.map → signalflare-ai-logo-Bipogceq.js.map} +1 -1
- package/dist/{skeleton-line-Do3UmGk9.js → skeleton-line-CH1-h6e2.js} +1 -1
- package/dist/{skeleton-line-Do3UmGk9.js.map → skeleton-line-CH1-h6e2.js.map} +1 -1
- package/dist/{sparkline-DdbeM4Ai.js → sparkline-DHmgj1d0.js} +2 -2
- package/dist/{sparkline-DdbeM4Ai.js.map → sparkline-DHmgj1d0.js.map} +1 -1
- package/dist/src/blocks/agent-harness/agent-harness.d.ts.map +1 -1
- package/dist/src/blocks/agent-harness/agent-harness.tsx +29 -5
- package/dist/src/components/ai-conversation/ai-conversation.d.ts +69 -37
- package/dist/src/components/ai-conversation/ai-conversation.d.ts.map +1 -1
- package/dist/src/components/ai-conversation/index.d.ts +2 -1
- package/dist/src/components/ai-conversation/index.d.ts.map +1 -1
- package/dist/src/components/ai-conversation/measurement-constants.d.ts +30 -0
- package/dist/src/components/ai-conversation/measurement-constants.d.ts.map +1 -0
- package/dist/src/components/ai-info-banner/ai-info-banner.d.ts.map +1 -1
- package/dist/src/components/ai-message/ai-message.d.ts +3 -0
- package/dist/src/components/ai-message/ai-message.d.ts.map +1 -1
- package/dist/src/components/ai-prompt-input/ai-prompt-input.d.ts +13 -3
- package/dist/src/components/ai-prompt-input/ai-prompt-input.d.ts.map +1 -1
- package/dist/src/components/ai-prompt-input/index.d.ts +1 -1
- package/dist/src/components/ai-prompt-input/index.d.ts.map +1 -1
- package/dist/src/components/ai-response/ai-response.d.ts +12 -1
- package/dist/src/components/ai-response/ai-response.d.ts.map +1 -1
- package/dist/src/components/ai-streaming-text/ai-streaming-text.d.ts +27 -0
- package/dist/src/components/ai-streaming-text/ai-streaming-text.d.ts.map +1 -1
- package/dist/src/components/ai-streaming-text/index.d.ts +1 -1
- package/dist/src/components/ai-streaming-text/index.d.ts.map +1 -1
- package/dist/src/components/ai-subagent/ai-subagent.d.ts.map +1 -1
- package/dist/src/components/ai-task-list/ai-task-list.d.ts.map +1 -1
- package/dist/src/components/ai-tool/ai-tool.d.ts.map +1 -1
- package/dist/src/components/banner/banner.d.ts.map +1 -1
- package/dist/src/components/empty/empty.d.ts.map +1 -1
- package/dist/src/components/stat-card/stat-card.d.ts +5 -0
- package/dist/src/components/stat-card/stat-card.d.ts.map +1 -1
- package/dist/src/components/text/text.d.ts +35 -1
- package/dist/src/components/text/text.d.ts.map +1 -1
- package/dist/src/components/tooltip/tooltip.d.ts.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/utils/index.d.ts +2 -0
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/measured-text.d.ts +40 -0
- package/dist/src/utils/measured-text.d.ts.map +1 -0
- package/dist/src/utils/use-measured-text.d.ts +59 -0
- package/dist/src/utils/use-measured-text.d.ts.map +1 -0
- package/dist/{stat-card-CEZscNh8.js → stat-card-Ew-ofzEm.js} +28 -10
- package/dist/stat-card-Ew-ofzEm.js.map +1 -0
- package/dist/styles/sf-binding.css +1 -1
- package/dist/styles/sf-standalone.css +2 -2
- package/dist/styles/shadcn.css +1 -1
- package/dist/styles/theme-fedramp.css +12 -3
- package/dist/styles/theme-minimal.css +104 -26
- package/dist/styles/theme-sf.css +138 -39
- package/dist/styles/theme-vesper.css +91 -0
- package/dist/{surface-BduI7Ehl.js → surface-DGwRlC0o.js} +1 -1
- package/dist/{surface-BduI7Ehl.js.map → surface-DGwRlC0o.js.map} +1 -1
- package/dist/{switch-CzZBRBL7.js → switch-BxAMfHdt.js} +2 -2
- package/dist/{switch-CzZBRBL7.js.map → switch-BxAMfHdt.js.map} +1 -1
- package/dist/{table-Rv4JMy0B.js → table-BBeAtYVZ.js} +2 -2
- package/dist/{table-Rv4JMy0B.js.map → table-BBeAtYVZ.js.map} +1 -1
- package/dist/{tabs-1cHrYoel.js → tabs-CeHu7Scn.js} +1 -1
- package/dist/{tabs-1cHrYoel.js.map → tabs-CeHu7Scn.js.map} +1 -1
- package/dist/{text-KJmGkwnf.js → text-Cqryz7rk.js} +27 -5
- package/dist/text-Cqryz7rk.js.map +1 -0
- package/dist/{text-roll-BZ3I1umc.js → text-roll-Ch52hcQj.js} +1 -1
- package/dist/{text-roll-BZ3I1umc.js.map → text-roll-Ch52hcQj.js.map} +1 -1
- package/dist/{theme-toggle-Bhu681D7.js → theme-toggle-LDfIKEqx.js} +3 -3
- package/dist/{theme-toggle-Bhu681D7.js.map → theme-toggle-LDfIKEqx.js.map} +1 -1
- package/dist/{toast-Nw28a5Cx.js → toast-CaFQNYng.js} +2 -2
- package/dist/{toast-Nw28a5Cx.js.map → toast-CaFQNYng.js.map} +1 -1
- package/dist/{tooltip-Cb7QW-7H.js → tooltip-g9lFsvcT.js} +8 -2
- package/dist/tooltip-g9lFsvcT.js.map +1 -0
- package/dist/{use-agent-harness-BMyF8pTq.js → use-agent-harness-BTcNJdw4.js} +1 -1
- package/dist/{use-agent-harness-BMyF8pTq.js.map → use-agent-harness-BTcNJdw4.js.map} +1 -1
- package/dist/utils.js +2 -1
- package/package.json +2 -1
- package/scripts/css-build.ts +1 -1
- package/scripts/theme-generator/config.ts +27 -141
- package/scripts/theme-generator/generate-css.ts +0 -1
- package/scripts/theme-generator/index.ts +0 -1
- package/dist/ai-conversation-CArP7C8K.js +0 -184
- package/dist/ai-conversation-CArP7C8K.js.map +0 -1
- package/dist/ai-info-banner-uFxHHwBA.js.map +0 -1
- package/dist/ai-message-BjnFznXy.js.map +0 -1
- package/dist/ai-prompt-input-CuluUzpf.js.map +0 -1
- package/dist/ai-response-BEUg3xvd.js.map +0 -1
- package/dist/ai-streaming-text-CMfoThV0.js.map +0 -1
- package/dist/ai-subagent-DcPRqkAA.js.map +0 -1
- package/dist/ai-task-list-Da9zIm00.js.map +0 -1
- package/dist/ai-tool-Cn1O4xjP.js.map +0 -1
- package/dist/banner-B_6oBrsu.js.map +0 -1
- package/dist/empty-D2TypIId.js.map +0 -1
- package/dist/stat-card-CEZscNh8.js.map +0 -1
- package/dist/styles/theme-blue-tint.css +0 -98
- package/dist/text-KJmGkwnf.js.map +0 -1
- package/dist/tooltip-Cb7QW-7H.js.map +0 -1
package/ai/schemas.ts
CHANGED
|
@@ -100,12 +100,8 @@ export const ActionSchema = z.object({
|
|
|
100
100
|
name: z.string(),
|
|
101
101
|
params: z.record(z.string(), DynamicValueSchema).optional(),
|
|
102
102
|
confirm: ActionConfirmSchema.optional(),
|
|
103
|
-
onSuccess: z
|
|
104
|
-
|
|
105
|
-
.optional(),
|
|
106
|
-
onError: z
|
|
107
|
-
.object({ set: z.record(z.string(), DynamicValueSchema) })
|
|
108
|
-
.optional(),
|
|
103
|
+
onSuccess: z.object({ set: z.record(z.string(), DynamicValueSchema) }).optional(),
|
|
104
|
+
onError: z.object({ set: z.record(z.string(), DynamicValueSchema) }).optional(),
|
|
109
105
|
});
|
|
110
106
|
|
|
111
107
|
export type Action = z.infer<typeof ActionSchema>;
|
|
@@ -115,9 +111,7 @@ export type Action = z.infer<typeof ActionSchema>;
|
|
|
115
111
|
// =============================================================================
|
|
116
112
|
|
|
117
113
|
export const AiActionsPropsSchema = z.object({
|
|
118
|
-
children: z
|
|
119
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
120
|
-
.optional(),
|
|
114
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
121
115
|
className: z.string().optional(),
|
|
122
116
|
id: z.string().optional(),
|
|
123
117
|
lang: z.string().optional(),
|
|
@@ -154,9 +148,7 @@ export const AiApprovalPropsSchema = z.object({
|
|
|
154
148
|
approveLabel: z.string().optional(), // Label for the approve button. Default: `"Approve"`.
|
|
155
149
|
rejectLabel: z.string().optional(), // Label for the reject button. Default: `"Reject"`.
|
|
156
150
|
showFeedback: z.boolean().optional(), // Show a text input for rejection feedback. Default: `false`.
|
|
157
|
-
children: z
|
|
158
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
159
|
-
.optional(),
|
|
151
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
160
152
|
className: z.string().optional(),
|
|
161
153
|
id: z.string().optional(),
|
|
162
154
|
lang: z.string().optional(),
|
|
@@ -166,9 +158,7 @@ export const AiCodeBlockPropsSchema = z.object({
|
|
|
166
158
|
code: z.string(), // The raw code string to display and make copyable.
|
|
167
159
|
language: z.string().optional(), // Language identifier for syntax highlighting (display only, no highlighting applied).
|
|
168
160
|
showLineNumbers: z.boolean().optional(), // Show line numbers.
|
|
169
|
-
children: z
|
|
170
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
171
|
-
.optional(),
|
|
161
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
172
162
|
className: z.string().optional(),
|
|
173
163
|
id: z.string().optional(),
|
|
174
164
|
lang: z.string().optional(),
|
|
@@ -176,9 +166,7 @@ export const AiCodeBlockPropsSchema = z.object({
|
|
|
176
166
|
});
|
|
177
167
|
|
|
178
168
|
export const AiConversationPropsSchema = z.object({
|
|
179
|
-
children: z
|
|
180
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
181
|
-
.optional(),
|
|
169
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
182
170
|
className: z.string().optional(),
|
|
183
171
|
id: z.string().optional(),
|
|
184
172
|
lang: z.string().optional(),
|
|
@@ -188,9 +176,7 @@ export const AiConversationPropsSchema = z.object({
|
|
|
188
176
|
export const AiInfoBannerPropsSchema = z.object({
|
|
189
177
|
level: z.enum(["info", "error", "change"]).optional(), // Banner level controls icon and color treatment.
|
|
190
178
|
icon: z.unknown().optional(), // Custom icon override.
|
|
191
|
-
children: z
|
|
192
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
193
|
-
.optional(),
|
|
179
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
194
180
|
className: z.string().optional(),
|
|
195
181
|
id: z.string().optional(),
|
|
196
182
|
lang: z.string().optional(),
|
|
@@ -199,9 +185,7 @@ export const AiInfoBannerPropsSchema = z.object({
|
|
|
199
185
|
|
|
200
186
|
export const AiMessagePropsSchema = z.object({
|
|
201
187
|
from: z.enum(["user", "assistant", "system"]), // Message sender role — controls layout and group class.
|
|
202
|
-
children: z
|
|
203
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
204
|
-
.optional(),
|
|
188
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
205
189
|
className: z.string().optional(),
|
|
206
190
|
id: z.string().optional(),
|
|
207
191
|
lang: z.string().optional(),
|
|
@@ -221,18 +205,14 @@ export const AiMissionHeaderPropsSchema = z.object({
|
|
|
221
205
|
className: z.string().optional(),
|
|
222
206
|
id: z.string().optional(),
|
|
223
207
|
lang: z.string().optional(),
|
|
224
|
-
children: z
|
|
225
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
226
|
-
.optional(),
|
|
208
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
227
209
|
});
|
|
228
210
|
|
|
229
211
|
export const AiPartGroupPropsSchema = z.object({
|
|
230
212
|
groupKey: z.string(), // Stable identifier — usually the parent message id. Required so the group can persist its frozen snapshot across re-mounts (scroll-back into a virtualized list re-renders without restarting animations).
|
|
231
213
|
complete: z.boolean().optional(), // Set to `true` once the parent stream has finished. Triggers the group to snapshot its current children and from then on render only the static collapsed summary — ephemeral children never re-mount.
|
|
232
214
|
title: z.string().optional(), // Title shown in the collapsed summary line. Falls back to the first reasoning text snippet, then to a step count.
|
|
233
|
-
children: z
|
|
234
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
235
|
-
.optional(),
|
|
215
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
236
216
|
className: z.string().optional(),
|
|
237
217
|
id: z.string().optional(),
|
|
238
218
|
lang: z.string().optional(),
|
|
@@ -247,9 +227,7 @@ export const AiQuestionPropsSchema = z.object({
|
|
|
247
227
|
allowCustom: z.boolean().optional(), // Allow freeform text input (custom answer). Default: `true`. When options are provided, this adds a text field below them.
|
|
248
228
|
icon: z.unknown().optional(), // Custom icon for the question header.
|
|
249
229
|
answeredWith: z.string().optional(), // The answer that was submitted (shown when `status="answered"`).
|
|
250
|
-
children: z
|
|
251
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
252
|
-
.optional(),
|
|
230
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
253
231
|
className: z.string().optional(),
|
|
254
232
|
id: z.string().optional(),
|
|
255
233
|
lang: z.string().optional(),
|
|
@@ -271,16 +249,12 @@ export const AiReasoningPropsSchema = z.object({
|
|
|
271
249
|
id: z.string().optional(),
|
|
272
250
|
lang: z.string().optional(),
|
|
273
251
|
title: z.string().optional(),
|
|
274
|
-
children: z
|
|
275
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
276
|
-
.optional(),
|
|
252
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
277
253
|
});
|
|
278
254
|
|
|
279
255
|
export const AiResponsePropsSchema = z.object({
|
|
280
256
|
className: z.string().optional(), // Additional CSS classes
|
|
281
|
-
children: z
|
|
282
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
283
|
-
.optional(), // Child elements
|
|
257
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child elements
|
|
284
258
|
});
|
|
285
259
|
|
|
286
260
|
export const AiShimmerPropsSchema = z.object({
|
|
@@ -296,9 +270,7 @@ export const AiStatusBadgePropsSchema = z.object({
|
|
|
296
270
|
label: z.string(), // Label text displayed in the badge.
|
|
297
271
|
status: z.enum(["idle", "running", "success", "error"]).optional(), // Current status — determines the status icon on the right.
|
|
298
272
|
info: z.string().optional(), // Additional info text (e.g. "2/3") shown after the label.
|
|
299
|
-
children: z
|
|
300
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
301
|
-
.optional(),
|
|
273
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
302
274
|
className: z.string().optional(),
|
|
303
275
|
id: z.string().optional(),
|
|
304
276
|
lang: z.string().optional(),
|
|
@@ -307,9 +279,7 @@ export const AiStatusBadgePropsSchema = z.object({
|
|
|
307
279
|
|
|
308
280
|
export const AiStreamingTextPropsSchema = z.object({
|
|
309
281
|
className: z.string().optional(), // Additional CSS classes
|
|
310
|
-
children: z
|
|
311
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
312
|
-
.optional(), // Child elements
|
|
282
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child elements
|
|
313
283
|
});
|
|
314
284
|
|
|
315
285
|
export const AiSubagentPropsSchema = z.object({
|
|
@@ -321,9 +291,7 @@ export const AiSubagentPropsSchema = z.object({
|
|
|
321
291
|
icon: z.unknown().optional(), // Custom icon. Defaults to `RobotIcon`.
|
|
322
292
|
defaultExpanded: z.boolean().optional(), // Whether the subagent content is expanded by default.
|
|
323
293
|
open: z.boolean().optional(), // Controlled open state.
|
|
324
|
-
children: z
|
|
325
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
326
|
-
.optional(),
|
|
294
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
327
295
|
className: z.string().optional(),
|
|
328
296
|
id: z.string().optional(),
|
|
329
297
|
lang: z.string().optional(),
|
|
@@ -331,9 +299,7 @@ export const AiSubagentPropsSchema = z.object({
|
|
|
331
299
|
});
|
|
332
300
|
|
|
333
301
|
export const AiSuggestionsPropsSchema = z.object({
|
|
334
|
-
children: z
|
|
335
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
336
|
-
.optional(),
|
|
302
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
337
303
|
className: z.string().optional(),
|
|
338
304
|
id: z.string().optional(),
|
|
339
305
|
lang: z.string().optional(),
|
|
@@ -345,9 +311,7 @@ export const AiTaskListPropsSchema = z.object({
|
|
|
345
311
|
title: z.string().optional(), // Optional title above the task list.
|
|
346
312
|
icon: z.unknown().optional(), // Custom icon for the title area.
|
|
347
313
|
showProgress: z.boolean().optional(), // Show a progress summary (e.g. "3 / 7 done"). Default: `true`.
|
|
348
|
-
children: z
|
|
349
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
350
|
-
.optional(),
|
|
314
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
351
315
|
className: z.string().optional(),
|
|
352
316
|
id: z.string().optional(),
|
|
353
317
|
lang: z.string().optional(),
|
|
@@ -359,9 +323,7 @@ export const AiTimelinePropsSchema = z.object({
|
|
|
359
323
|
showNowMarker: z.boolean().optional(), // Whether to show a pulsing "now" marker at the live edge.
|
|
360
324
|
nowMs: z.number().optional(), // Current timestamp in ms. Used to render the "now" marker and open-ended block widths. Pass a stable `useState` value to prevent hydration shifts. When omitted, `Date.now()` is called at render time (fine for live views driven by a ticking parent, not suitable for SSR).
|
|
361
325
|
density: z.enum(["comfortable", "compact"]).optional(), // Lane density variant.
|
|
362
|
-
children: z
|
|
363
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
364
|
-
.optional(), // Children should be `AiTimelineLane` components.
|
|
326
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Children should be `AiTimelineLane` components.
|
|
365
327
|
className: z.string().optional(),
|
|
366
328
|
id: z.string().optional(),
|
|
367
329
|
lang: z.string().optional(),
|
|
@@ -381,9 +343,7 @@ export const AiToolCallPropsSchema = z.object({
|
|
|
381
343
|
id: z.string().optional(),
|
|
382
344
|
lang: z.string().optional(),
|
|
383
345
|
title: z.string().optional(),
|
|
384
|
-
children: z
|
|
385
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
386
|
-
.optional(),
|
|
346
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
387
347
|
});
|
|
388
348
|
|
|
389
349
|
export const AiUsageBarPropsSchema = z.object({
|
|
@@ -393,9 +353,7 @@ export const AiUsageBarPropsSchema = z.object({
|
|
|
393
353
|
cost: z.number().optional(), // Estimated cost in USD.
|
|
394
354
|
modelId: z.string().optional(), // Model ID being used (shown as label).
|
|
395
355
|
icon: z.unknown().optional(), // Custom icon. Defaults to `LightningIcon`.
|
|
396
|
-
children: z
|
|
397
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
398
|
-
.optional(),
|
|
356
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
399
357
|
className: z.string().optional(),
|
|
400
358
|
id: z.string().optional(),
|
|
401
359
|
lang: z.string().optional(),
|
|
@@ -403,73 +361,38 @@ export const AiUsageBarPropsSchema = z.object({
|
|
|
403
361
|
});
|
|
404
362
|
|
|
405
363
|
export const BadgePropsSchema = z.object({
|
|
406
|
-
variant: z
|
|
407
|
-
.enum([
|
|
408
|
-
"primary",
|
|
409
|
-
"secondary",
|
|
410
|
-
"destructive",
|
|
411
|
-
"outline",
|
|
412
|
-
"beta",
|
|
413
|
-
"success",
|
|
414
|
-
"warning",
|
|
415
|
-
"info",
|
|
416
|
-
"ghost",
|
|
417
|
-
])
|
|
418
|
-
.optional(), // Visual style of the badge. - `"primary"` — High-emphasis badge for important labels - `"secondary"` — Subtle badge for secondary information - `"destructive"` — Error or danger state indicator - `"outline"` — Bordered badge with transparent background - `"beta"` — Dashed-border badge for beta/experimental features - `"success"` — Positive status indicator - `"warning"` — Caution or attention indicator - `"info"` — Informational badge - `"ghost"` — Text-only badge with no background or border
|
|
364
|
+
variant: z.enum(["primary", "secondary", "destructive", "outline", "beta", "success", "warning", "info", "ghost"]).optional(), // Visual style of the badge. - `"primary"` — High-emphasis badge for important labels - `"secondary"` — Subtle badge for secondary information - `"destructive"` — Error or danger state indicator - `"outline"` — Bordered badge with transparent background - `"beta"` — Dashed-border badge for beta/experimental features - `"success"` — Positive status indicator - `"warning"` — Caution or attention indicator - `"info"` — Informational badge - `"ghost"` — Text-only badge with no background or border
|
|
419
365
|
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
420
|
-
children: z
|
|
421
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
422
|
-
.optional(), // Content rendered inside the badge.
|
|
366
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Content rendered inside the badge.
|
|
423
367
|
icon: z.unknown().optional(), // Icon component rendered alongside the text.
|
|
424
368
|
iconPosition: z.enum(["left", "right"]).optional(), // Position of the icon relative to the text.
|
|
425
369
|
loading: z.boolean().optional(), // Shows a loading spinner, replacing the icon slot.
|
|
426
370
|
dot: z.enum(["green", "red", "yellow", "blue", "gray"]).optional(), // Renders a small colored status dot before the text.
|
|
427
|
-
tooltip: z
|
|
428
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
429
|
-
.optional(), // Wraps the badge in a Tooltip with this content. Requires a TooltipProvider ancestor.
|
|
371
|
+
tooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Wraps the badge in a Tooltip with this content. Requires a TooltipProvider ancestor.
|
|
430
372
|
href: z.string().optional(),
|
|
431
373
|
});
|
|
432
374
|
|
|
433
375
|
export const BannerPropsSchema = z.object({
|
|
434
|
-
icon: z
|
|
435
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
436
|
-
.optional(), // Icon element rendered before the banner text (e.g. from `@phosphor-icons/react`).
|
|
376
|
+
icon: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Icon element rendered before the banner text (e.g. from `@phosphor-icons/react`).
|
|
437
377
|
text: z.string().optional(),
|
|
438
|
-
children: z
|
|
439
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
440
|
-
.optional(), // Banner message content. Accepts strings or custom React elements.
|
|
378
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Banner message content. Accepts strings or custom React elements.
|
|
441
379
|
variant: z.enum(["default", "alert", "error"]).optional(), // Visual style of the banner. - `"default"` — Informational blue banner for general messages - `"alert"` — Warning yellow banner for cautionary messages - `"error"` — Error red banner for critical issues
|
|
442
380
|
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
443
381
|
});
|
|
444
382
|
|
|
445
383
|
export const BreadcrumbsPropsSchema = z.object({
|
|
446
384
|
size: z.enum(["sm", "base"]).optional(), // Size of the breadcrumbs. - `"sm"` — Compact breadcrumbs for dense UIs - `"base"` — Default breadcrumbs size
|
|
447
|
-
children: z
|
|
448
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
449
|
-
.optional(),
|
|
385
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
450
386
|
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
451
387
|
});
|
|
452
388
|
|
|
453
389
|
export const ButtonPropsSchema = z.object({
|
|
454
390
|
shape: z.enum(["base", "square", "circle"]).optional(),
|
|
455
391
|
size: z.enum(["xs", "sm", "base", "lg"]).optional(),
|
|
456
|
-
variant: z
|
|
457
|
-
|
|
458
|
-
"primary",
|
|
459
|
-
"secondary",
|
|
460
|
-
"ghost",
|
|
461
|
-
"destructive",
|
|
462
|
-
"secondary-destructive",
|
|
463
|
-
"outline",
|
|
464
|
-
])
|
|
465
|
-
.optional(),
|
|
466
|
-
children: z
|
|
467
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
468
|
-
.optional(),
|
|
392
|
+
variant: z.enum(["primary", "secondary", "ghost", "destructive", "secondary-destructive", "outline"]).optional(),
|
|
393
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
469
394
|
className: z.string().optional(),
|
|
470
|
-
icon: z
|
|
471
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
472
|
-
.optional(), // Icon from `@phosphor-icons/react` or a React element. Rendered before children.
|
|
395
|
+
icon: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Icon from `@phosphor-icons/react` or a React element. Rendered before children.
|
|
473
396
|
loading: z.boolean().optional(), // Shows a loading spinner and disables interaction.
|
|
474
397
|
id: z.string().optional(),
|
|
475
398
|
lang: z.string().optional(),
|
|
@@ -482,12 +405,8 @@ export const ButtonPropsSchema = z.object({
|
|
|
482
405
|
|
|
483
406
|
export const CheckboxPropsSchema = z.object({
|
|
484
407
|
variant: z.enum(["default", "error"]).optional(), // Visual variant: "default" or "error" for validation failures (visual only, no error text)
|
|
485
|
-
label: z
|
|
486
|
-
|
|
487
|
-
.optional(), // Label content for the checkbox (enables built-in Field wrapper) - can be a string or any React node
|
|
488
|
-
labelTooltip: z
|
|
489
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
490
|
-
.optional(), // Tooltip content to display next to the label via an info icon
|
|
408
|
+
label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Label content for the checkbox (enables built-in Field wrapper) - can be a string or any React node
|
|
409
|
+
labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content to display next to the label via an info icon
|
|
491
410
|
controlFirst: z.boolean().optional(), // When true (default), checkbox appears before label. When false, label appears before checkbox.
|
|
492
411
|
checked: z.boolean().optional(), // Whether the checkbox is checked (controlled)
|
|
493
412
|
indeterminate: z.boolean().optional(), // Whether the checkbox is in indeterminate state
|
|
@@ -514,9 +433,7 @@ export const CodePropsSchema = z.object({
|
|
|
514
433
|
});
|
|
515
434
|
|
|
516
435
|
export const CollapsiblePropsSchema = z.object({
|
|
517
|
-
children: z
|
|
518
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
519
|
-
.optional(),
|
|
436
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
520
437
|
label: z.string(), // Text label displayed in the trigger button
|
|
521
438
|
open: z.boolean().optional(), // Whether the collapsible content is visible
|
|
522
439
|
className: z.string().optional(), // Additional CSS classes for the content panel
|
|
@@ -527,20 +444,12 @@ export const ComboboxPropsSchema = z.object({
|
|
|
527
444
|
inputSide: z.enum(["right", "top"]).optional(), // Position of the text input relative to chips in multi-select mode. - `"right"` — Input inline to the right of chips - `"top"` — Input above chips
|
|
528
445
|
items: z.array(z.unknown()), // Array of items to display in the dropdown
|
|
529
446
|
value: z.array(z.unknown()).optional(), // Currently selected value(s)
|
|
530
|
-
children: z
|
|
531
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
532
|
-
.optional(), // Combobox content (trigger, content, items)
|
|
447
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Combobox content (trigger, content, items)
|
|
533
448
|
className: z.string().optional(), // Additional CSS classes
|
|
534
|
-
label: z
|
|
535
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
536
|
-
.optional(), // Label content for the combobox (enables Field wrapper) - can be a string or any React node
|
|
449
|
+
label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Label content for the combobox (enables Field wrapper) - can be a string or any React node
|
|
537
450
|
required: z.boolean().optional(), // Whether the combobox is required
|
|
538
|
-
labelTooltip: z
|
|
539
|
-
|
|
540
|
-
.optional(), // Tooltip content to display next to the label via an info icon
|
|
541
|
-
description: z
|
|
542
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
543
|
-
.optional(), // Helper text displayed below the combobox
|
|
451
|
+
labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content to display next to the label via an info icon
|
|
452
|
+
description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text displayed below the combobox
|
|
544
453
|
error: z.unknown().optional(), // Error message or validation error object
|
|
545
454
|
onValueChange: z.unknown().optional(), // Callback when selection changes
|
|
546
455
|
multiple: z.boolean().optional(), // Allow multiple selections
|
|
@@ -549,24 +458,18 @@ export const ComboboxPropsSchema = z.object({
|
|
|
549
458
|
|
|
550
459
|
export const CommandPalettePropsSchema = z.object({
|
|
551
460
|
open: z.boolean(), // Whether the dialog is open
|
|
552
|
-
children: z
|
|
553
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
554
|
-
.optional(), // Child content - typically one or more Panel components
|
|
461
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child content - typically one or more Panel components
|
|
555
462
|
});
|
|
556
463
|
|
|
557
464
|
export const DataGridPropsSchema = z.object({
|
|
558
465
|
layout: z.enum(["auto", "fixed"]).optional(),
|
|
559
466
|
className: z.string().optional(), // Additional CSS classes
|
|
560
|
-
children: z
|
|
561
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
562
|
-
.optional(), // Child elements
|
|
467
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child elements
|
|
563
468
|
});
|
|
564
469
|
|
|
565
470
|
export const DatePickerPropsSchema = z.object({
|
|
566
471
|
className: z.string().optional(), // Additional CSS classes
|
|
567
|
-
children: z
|
|
568
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
569
|
-
.optional(), // Child elements
|
|
472
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child elements
|
|
570
473
|
});
|
|
571
474
|
|
|
572
475
|
export const DateRangePickerPropsSchema = z.object({
|
|
@@ -580,9 +483,7 @@ export const DateRangePickerPropsSchema = z.object({
|
|
|
580
483
|
|
|
581
484
|
export const DialogPropsSchema = z.object({
|
|
582
485
|
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
583
|
-
children: z
|
|
584
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
585
|
-
.optional(), // Dialog content (typically Title, Description, Close, and action buttons).
|
|
486
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Dialog content (typically Title, Description, Close, and action buttons).
|
|
586
487
|
size: z.enum(["base", "sm", "lg", "xl"]).optional(), // Dialog width. - `"sm"` — Small (min 288px) for simple confirmations - `"base"` — Default (min 384px) - `"lg"` — Large (min 512px) for complex content - `"xl"` — Extra large (min 768px) for detailed views
|
|
587
488
|
});
|
|
588
489
|
|
|
@@ -592,43 +493,29 @@ export const DropdownMenuPropsSchema = z.object({
|
|
|
592
493
|
|
|
593
494
|
export const EmptyPropsSchema = z.object({
|
|
594
495
|
size: z.enum(["sm", "base", "lg"]).optional(), // Size of the empty state container. - `"sm"` — Compact empty state for smaller containers - `"base"` — Default empty state size - `"lg"` — Large empty state for prominent placement
|
|
595
|
-
icon: z
|
|
596
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
597
|
-
.optional(), // Decorative icon displayed above the title (e.g. from `@phosphor-icons/react`).
|
|
496
|
+
icon: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Decorative icon displayed above the title (e.g. from `@phosphor-icons/react`).
|
|
598
497
|
title: z.string(), // Primary heading text for the empty state.
|
|
599
498
|
description: z.string().optional(), // Secondary description text displayed below the title.
|
|
600
499
|
commandLine: z.string().optional(), // Shell command displayed in a copyable code block.
|
|
601
|
-
contents: z
|
|
602
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
603
|
-
.optional(), // Additional content (buttons, links) rendered below the description.
|
|
500
|
+
contents: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Additional content (buttons, links) rendered below the description.
|
|
604
501
|
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
605
502
|
});
|
|
606
503
|
|
|
607
504
|
export const FieldPropsSchema = z.object({
|
|
608
505
|
controlFirst: z.boolean().optional(), // When `true`, places the control before the label (for checkbox/switch layouts).
|
|
609
|
-
children: z
|
|
610
|
-
|
|
611
|
-
.optional(), // The form control element(s) to wrap (Input, Select, Checkbox, etc.).
|
|
612
|
-
label: z
|
|
613
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
614
|
-
.optional(), // The label content — can be a string or any React node.
|
|
506
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // The form control element(s) to wrap (Input, Select, Checkbox, etc.).
|
|
507
|
+
label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // The label content — can be a string or any React node.
|
|
615
508
|
required: z.boolean().optional(), // When explicitly `false`, shows gray "(optional)" text after the label. When `true` or `undefined`, no indicator is shown.
|
|
616
|
-
labelTooltip: z
|
|
617
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
618
|
-
.optional(), // Tooltip content displayed next to the label via an info icon.
|
|
509
|
+
labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content displayed next to the label via an info icon.
|
|
619
510
|
error: z.unknown().optional(), // Validation error with a message and a browser `ValidityState` match key.
|
|
620
|
-
description: z
|
|
621
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
622
|
-
.optional(), // Helper text displayed below the control (hidden when `error` is present).
|
|
511
|
+
description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text displayed below the control (hidden when `error` is present).
|
|
623
512
|
});
|
|
624
513
|
|
|
625
514
|
export const FiltersPropsSchema = z.object({
|
|
626
515
|
filters: z.array(z.unknown()), // Active filters array
|
|
627
516
|
fields: z.array(z.unknown()), // Available field configurations
|
|
628
517
|
size: z.enum(["sm", "default", "lg"]).optional(), // Size variant for filter pills
|
|
629
|
-
trigger: z
|
|
630
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
631
|
-
.optional(), // Custom trigger element (replaces default "Add Filter" button)
|
|
518
|
+
trigger: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Custom trigger element (replaces default "Add Filter" button)
|
|
632
519
|
showSearchInput: z.boolean().optional(), // Whether to show a search input in the add filter menu
|
|
633
520
|
allowMultiple: z.boolean().optional(), // Whether to allow multiple filters on the same field
|
|
634
521
|
enableShortcut: z.boolean().optional(), // Whether to enable keyboard shortcut (Cmd/Ctrl + K) to open add filter
|
|
@@ -640,40 +527,20 @@ export const FiltersPropsSchema = z.object({
|
|
|
640
527
|
});
|
|
641
528
|
|
|
642
529
|
export const GridPropsSchema = z.object({
|
|
643
|
-
children: z
|
|
644
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
645
|
-
.optional(), // Grid items to render.
|
|
530
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Grid items to render.
|
|
646
531
|
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
647
532
|
id: z.string().optional(),
|
|
648
533
|
lang: z.string().optional(),
|
|
649
534
|
title: z.string().optional(),
|
|
650
535
|
mobileDivider: z.boolean().optional(), // Show dividers between grid items on mobile (only works with `"4up"` variant).
|
|
651
536
|
gap: z.enum(["none", "sm", "base", "lg"]).optional(), // Gap size between grid items. - `"none"` — No gap - `"sm"` — 12px gap - `"base"` — Responsive gap (8px → 24px → 32px) - `"lg"` — 32px gap
|
|
652
|
-
variant: z
|
|
653
|
-
.enum([
|
|
654
|
-
"2up",
|
|
655
|
-
"side-by-side",
|
|
656
|
-
"2-1",
|
|
657
|
-
"1-2",
|
|
658
|
-
"1-3up",
|
|
659
|
-
"3up",
|
|
660
|
-
"4up",
|
|
661
|
-
"6up",
|
|
662
|
-
"1-2-4up",
|
|
663
|
-
])
|
|
664
|
-
.optional(), // Responsive column layout variant. - `"2up"` — 1 col → 2 cols at md - `"side-by-side"` — Always 2 cols - `"2-1"` — 66%/33% split at md - `"1-2"` — 33%/66% split at md - `"3up"` — 1 → 2 → 3 cols - `"4up"` — 1 → 2 → 3 → 4 cols - `"6up"` — 2 → 3 → 4 → 6 cols - `"1-2-4up"` — 1 → 2 → 4 cols
|
|
537
|
+
variant: z.enum(["2up", "side-by-side", "2-1", "1-2", "1-3up", "3up", "4up", "6up", "1-2-4up"]).optional(), // Responsive column layout variant. - `"2up"` — 1 col → 2 cols at md - `"side-by-side"` — Always 2 cols - `"2-1"` — 66%/33% split at md - `"1-2"` — 33%/66% split at md - `"3up"` — 1 → 2 → 3 cols - `"4up"` — 1 → 2 → 3 → 4 cols - `"6up"` — 2 → 3 → 4 → 6 cols - `"1-2-4up"` — 1 → 2 → 4 cols
|
|
665
538
|
});
|
|
666
539
|
|
|
667
540
|
export const InputPropsSchema = z.object({
|
|
668
|
-
label: z
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
labelTooltip: z
|
|
672
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
673
|
-
.optional(), // Tooltip content to display next to the label via an info icon
|
|
674
|
-
description: z
|
|
675
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
676
|
-
.optional(), // Helper text displayed below the input
|
|
541
|
+
label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Label content for the input (enables Field wrapper) - can be a string or any React node
|
|
542
|
+
labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content to display next to the label via an info icon
|
|
543
|
+
description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text displayed below the input
|
|
677
544
|
error: z.unknown().optional(), // Error message or validation error object
|
|
678
545
|
size: z.enum(["xs", "sm", "base", "lg"]).optional(), // Input size. - `"xs"` — Extra small for compact UIs - `"sm"` — Small for secondary fields - `"base"` — Default size - `"lg"` — Large for prominent fields
|
|
679
546
|
variant: z.enum(["default", "error"]).optional(), // Visual variant. - `"default"` — Standard input - `"error"` — Error state for validation failures
|
|
@@ -682,31 +549,23 @@ export const InputPropsSchema = z.object({
|
|
|
682
549
|
export const InputAreaPropsSchema = z.object({});
|
|
683
550
|
|
|
684
551
|
export const LabelPropsSchema = z.object({
|
|
685
|
-
children: z
|
|
686
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
687
|
-
.optional(), // The label content — can be a string or any React node.
|
|
552
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // The label content — can be a string or any React node.
|
|
688
553
|
showOptional: z.boolean().optional(), // When `true`, shows gray "(optional)" text after the label.
|
|
689
|
-
tooltip: z
|
|
690
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
691
|
-
.optional(), // Tooltip content displayed next to the label via an info icon.
|
|
554
|
+
tooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content displayed next to the label via an info icon.
|
|
692
555
|
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
693
556
|
htmlFor: z.string().optional(), // The id of the form element this label is associated with
|
|
694
557
|
asContent: z.boolean().optional(), // When true, only renders the inline content (indicators, tooltip) without the outer label element with font styling. Useful when composed inside another label element that already provides the text styling.
|
|
695
558
|
});
|
|
696
559
|
|
|
697
560
|
export const LayerCardPropsSchema = z.object({
|
|
698
|
-
children: z
|
|
699
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
700
|
-
.optional(),
|
|
561
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
701
562
|
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
702
563
|
});
|
|
703
564
|
|
|
704
565
|
export const LinkPropsSchema = z.object({
|
|
705
566
|
variant: z.enum(["inline", "current", "plain"]).optional(), // Visual style of the link. - `"inline"` — Inline text link that flows with content - `"current"` — Link that inherits color from parent text - `"plain"` — Link without underline decoration
|
|
706
567
|
to: z.string().optional(),
|
|
707
|
-
children: z
|
|
708
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
709
|
-
.optional(),
|
|
568
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
710
569
|
className: z.string().optional(),
|
|
711
570
|
id: z.string().optional(),
|
|
712
571
|
lang: z.string().optional(),
|
|
@@ -718,22 +577,8 @@ export const LinkPropsSchema = z.object({
|
|
|
718
577
|
ping: z.string().optional(),
|
|
719
578
|
target: z.unknown().optional(),
|
|
720
579
|
type: z.string().optional(),
|
|
721
|
-
referrerPolicy: z
|
|
722
|
-
|
|
723
|
-
"",
|
|
724
|
-
"no-referrer",
|
|
725
|
-
"no-referrer-when-downgrade",
|
|
726
|
-
"origin",
|
|
727
|
-
"origin-when-cross-origin",
|
|
728
|
-
"same-origin",
|
|
729
|
-
"strict-origin",
|
|
730
|
-
"strict-origin-when-cross-origin",
|
|
731
|
-
"unsafe-url",
|
|
732
|
-
])
|
|
733
|
-
.optional(),
|
|
734
|
-
render: z
|
|
735
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
736
|
-
.optional(), // Allows you to replace the component's HTML element with a different tag, or compose it with another component. Accepts a `ReactElement` or a function that returns the element to render.
|
|
580
|
+
referrerPolicy: z.enum(["", "no-referrer", "no-referrer-when-downgrade", "origin", "origin-when-cross-origin", "same-origin", "strict-origin", "strict-origin-when-cross-origin", "unsafe-url"]).optional(),
|
|
581
|
+
render: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Allows you to replace the component's HTML element with a different tag, or compose it with another component. Accepts a `ReactElement` or a function that returns the element to render.
|
|
737
582
|
});
|
|
738
583
|
|
|
739
584
|
export const LoaderPropsSchema = z.object({
|
|
@@ -776,31 +621,24 @@ export const PromptInputPropsSchema = z.object({
|
|
|
776
621
|
globalDrop: z.boolean().optional(), // When true, accept drops anywhere on document. Default false.
|
|
777
622
|
maxFiles: z.number().optional(), // Maximum number of attached files.
|
|
778
623
|
maxFileSize: z.number().optional(), // Maximum file size in bytes.
|
|
779
|
-
backLayer: z
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
backLayerTitle: z.string().optional(), // Title shown in the back layer header row. Defaults to `"Context"`.
|
|
624
|
+
backLayer: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Content rendered in the collapsible back layer (e.g. HITL approvals, task lists). When provided the prompt input is wrapped in a LayerCard shell with a header row containing a chevron toggle. Use `PromptInputBackLayer` to compose structured content for this slot.
|
|
625
|
+
backLayerTitle: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Header content shown in the back layer header row. Strings render as plain text; pass JSX to compose with icons/spinners/badges. Defaults to `"Context"`.
|
|
626
|
+
backLayerStatus: z.enum(["idle", "running", "error"]).optional(), // Optional status indicator rendered next to the title. `"running"` shows a small spinner; `"error"` shows an inline error icon. Use this instead of composing JSX into `backLayerTitle` for the common case of an agent doing work.
|
|
783
627
|
backLayerOpen: z.boolean().optional(), // Controls whether the back layer is visible. Pair with `onBackLayerOpenChange` for a controlled pattern.
|
|
784
628
|
autoOpenBackLayerWhen: z.boolean().optional(), // Automatically opens the back layer when this condition is true. Useful for showing pending approvals/questions without manual toggle.
|
|
785
629
|
className: z.string().optional(),
|
|
786
630
|
id: z.string().optional(),
|
|
787
631
|
lang: z.string().optional(),
|
|
788
632
|
title: z.string().optional(),
|
|
789
|
-
children: z
|
|
790
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
791
|
-
.optional(),
|
|
633
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
792
634
|
});
|
|
793
635
|
|
|
794
636
|
export const RadioPropsSchema = z.object({
|
|
795
637
|
legend: z.string(), // Legend text for the group (required for accessibility)
|
|
796
|
-
children: z
|
|
797
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
798
|
-
.optional(), // Child Radio.Item components
|
|
638
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child Radio.Item components
|
|
799
639
|
orientation: z.enum(["vertical", "horizontal"]).optional(), // Layout direction of the radio items
|
|
800
640
|
error: z.string().optional(), // Error message for the group
|
|
801
|
-
description: z
|
|
802
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
803
|
-
.optional(), // Helper text for the group
|
|
641
|
+
description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text for the group
|
|
804
642
|
value: z.string().optional(), // Value of the radio that should be selected (controlled)
|
|
805
643
|
disabled: z.boolean().optional(), // Whether all radios in the group are disabled
|
|
806
644
|
controlPosition: z.enum(["start", "end"]).optional(), // Position of radio control relative to label: "start" (default) puts radio before label, "end" puts label before radio
|
|
@@ -810,24 +648,16 @@ export const RadioPropsSchema = z.object({
|
|
|
810
648
|
|
|
811
649
|
export const SelectPropsSchema = z.object({
|
|
812
650
|
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
813
|
-
label: z
|
|
814
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
815
|
-
.optional(), // Label content for the select (enables Field wrapper) — can be a string or any React node.
|
|
651
|
+
label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Label content for the select (enables Field wrapper) — can be a string or any React node.
|
|
816
652
|
hideLabel: z.boolean().optional(), // Visually hide the label while keeping it accessible to screen readers. Set to `false` to show a visible label above the select via the Field wrapper.
|
|
817
653
|
placeholder: z.string().optional(), // Placeholder text shown when no value is selected.
|
|
818
654
|
loading: z.boolean().optional(), // When `true`, shows a skeleton loader in place of the selected value.
|
|
819
655
|
disabled: z.boolean().optional(), // Whether the select is disabled.
|
|
820
656
|
required: z.boolean().optional(), // Whether the select is required. When `false`, shows "(optional)" text.
|
|
821
|
-
labelTooltip: z
|
|
822
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
823
|
-
.optional(), // Tooltip content displayed next to the label via an info icon.
|
|
657
|
+
labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content displayed next to the label via an info icon.
|
|
824
658
|
value: z.string().optional(), // Currently selected value (controlled mode).
|
|
825
|
-
children: z
|
|
826
|
-
|
|
827
|
-
.optional(), // `Select.Option` elements to render in the dropdown.
|
|
828
|
-
description: z
|
|
829
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
830
|
-
.optional(), // Helper text displayed below the select.
|
|
659
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // `Select.Option` elements to render in the dropdown.
|
|
660
|
+
description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text displayed below the select.
|
|
831
661
|
error: z.unknown().optional(), // Error message string or validation error object with `match` key.
|
|
832
662
|
onValueChange: z.unknown().optional(), // Callback when selection changes
|
|
833
663
|
defaultValue: z.string().optional(), // Initial value for uncontrolled mode
|
|
@@ -849,21 +679,13 @@ export const SensitiveInputPropsSchema = z.object({
|
|
|
849
679
|
id: z.string().optional(),
|
|
850
680
|
lang: z.string().optional(),
|
|
851
681
|
title: z.string().optional(),
|
|
852
|
-
children: z
|
|
853
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
854
|
-
.optional(),
|
|
682
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
855
683
|
value: z.string().optional(), // Controlled value
|
|
856
684
|
size: z.enum(["xs", "sm", "base", "lg"]).optional(), // Size of the input. - `"xs"` — Extra small for compact UIs - `"sm"` — Small for secondary fields - `"base"` — Default input size - `"lg"` — Large for prominent fields
|
|
857
685
|
variant: z.enum(["default", "error"]).optional(), // Style variant of the input. - `"default"` — Default input appearance - `"error"` — Error state for validation failures
|
|
858
|
-
label: z
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
labelTooltip: z
|
|
862
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
863
|
-
.optional(), // Tooltip content to display next to the label via an info icon
|
|
864
|
-
description: z
|
|
865
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
866
|
-
.optional(), // Helper text displayed below the input
|
|
686
|
+
label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Label content for the input (enables Field wrapper and sets masked state label) - can be a string or any React node
|
|
687
|
+
labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content to display next to the label via an info icon
|
|
688
|
+
description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text displayed below the input
|
|
867
689
|
error: z.unknown().optional(), // Error message or validation error object
|
|
868
690
|
});
|
|
869
691
|
|
|
@@ -877,16 +699,12 @@ export const SidebarPropsSchema = z.object({
|
|
|
877
699
|
defaultWidth: z.number().optional(), // Initial width in pixels when resizable.
|
|
878
700
|
minWidth: z.number().optional(), // Minimum width in pixels when resizing.
|
|
879
701
|
maxWidth: z.number().optional(), // Maximum width in pixels when resizing.
|
|
880
|
-
children: z
|
|
881
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
882
|
-
.optional(), // Content — typically `<Sidebar>` + main content.
|
|
702
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Content — typically `<Sidebar>` + main content.
|
|
883
703
|
className: z.string().optional(), // Additional CSS classes for the wrapper div.
|
|
884
704
|
});
|
|
885
705
|
|
|
886
706
|
export const SignalFlareAILogoPropsSchema = z.object({
|
|
887
|
-
children: z
|
|
888
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
889
|
-
.optional(),
|
|
707
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
890
708
|
className: z.string().optional(),
|
|
891
709
|
height: z.unknown().optional(),
|
|
892
710
|
id: z.string().optional(),
|
|
@@ -900,23 +718,7 @@ export const SignalFlareAILogoPropsSchema = z.object({
|
|
|
900
718
|
accentHeight: z.unknown().optional(),
|
|
901
719
|
accumulate: z.enum(["none", "sum"]).optional(),
|
|
902
720
|
additive: z.enum(["replace", "sum"]).optional(),
|
|
903
|
-
alignmentBaseline: z
|
|
904
|
-
.enum([
|
|
905
|
-
"auto",
|
|
906
|
-
"baseline",
|
|
907
|
-
"before-edge",
|
|
908
|
-
"text-before-edge",
|
|
909
|
-
"middle",
|
|
910
|
-
"central",
|
|
911
|
-
"after-edge",
|
|
912
|
-
"text-after-edge",
|
|
913
|
-
"ideographic",
|
|
914
|
-
"alphabetic",
|
|
915
|
-
"hanging",
|
|
916
|
-
"mathematical",
|
|
917
|
-
"inherit",
|
|
918
|
-
])
|
|
919
|
-
.optional(),
|
|
721
|
+
alignmentBaseline: z.enum(["auto", "baseline", "before-edge", "text-before-edge", "middle", "central", "after-edge", "text-after-edge", "ideographic", "alphabetic", "hanging", "mathematical", "inherit"]).optional(),
|
|
920
722
|
allowReorder: z.enum(["no", "yes"]).optional(),
|
|
921
723
|
alphabetic: z.unknown().optional(),
|
|
922
724
|
amplitude: z.unknown().optional(),
|
|
@@ -940,9 +742,7 @@ export const SignalFlareAILogoPropsSchema = z.object({
|
|
|
940
742
|
clipPathUnits: z.unknown().optional(),
|
|
941
743
|
clipRule: z.unknown().optional(),
|
|
942
744
|
colorInterpolation: z.unknown().optional(),
|
|
943
|
-
colorInterpolationFilters: z
|
|
944
|
-
.enum(["auto", "sRGB", "linearRGB", "inherit"])
|
|
945
|
-
.optional(),
|
|
745
|
+
colorInterpolationFilters: z.enum(["auto", "sRGB", "linearRGB", "inherit"]).optional(),
|
|
946
746
|
colorProfile: z.unknown().optional(),
|
|
947
747
|
colorRendering: z.unknown().optional(),
|
|
948
748
|
contentScriptType: z.unknown().optional(),
|
|
@@ -957,23 +757,7 @@ export const SignalFlareAILogoPropsSchema = z.object({
|
|
|
957
757
|
direction: z.unknown().optional(),
|
|
958
758
|
display: z.unknown().optional(),
|
|
959
759
|
divisor: z.unknown().optional(),
|
|
960
|
-
dominantBaseline: z
|
|
961
|
-
.enum([
|
|
962
|
-
"auto",
|
|
963
|
-
"use-script",
|
|
964
|
-
"no-change",
|
|
965
|
-
"reset-size",
|
|
966
|
-
"ideographic",
|
|
967
|
-
"alphabetic",
|
|
968
|
-
"hanging",
|
|
969
|
-
"mathematical",
|
|
970
|
-
"central",
|
|
971
|
-
"middle",
|
|
972
|
-
"text-after-edge",
|
|
973
|
-
"text-before-edge",
|
|
974
|
-
"inherit",
|
|
975
|
-
])
|
|
976
|
-
.optional(),
|
|
760
|
+
dominantBaseline: z.enum(["auto", "use-script", "no-change", "reset-size", "ideographic", "alphabetic", "hanging", "mathematical", "central", "middle", "text-after-edge", "text-before-edge", "inherit"]).optional(),
|
|
977
761
|
dur: z.unknown().optional(),
|
|
978
762
|
dx: z.unknown().optional(),
|
|
979
763
|
dy: z.unknown().optional(),
|
|
@@ -1178,26 +962,16 @@ export const SignalFlareAILogoPropsSchema = z.object({
|
|
|
1178
962
|
|
|
1179
963
|
export const SparklinePropsSchema = z.object({
|
|
1180
964
|
className: z.string().optional(), // Additional CSS classes
|
|
1181
|
-
children: z
|
|
1182
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
1183
|
-
.optional(), // Child elements
|
|
965
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child elements
|
|
1184
966
|
});
|
|
1185
967
|
|
|
1186
968
|
export const StatCardPropsSchema = z.object({
|
|
1187
969
|
size: z.enum(["sm", "base"]).optional(), // Size of the card. Defaults to `"base"`.
|
|
1188
|
-
label: z
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
value: z
|
|
1192
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
1193
|
-
.optional(), // Primary value to emphasise (pre-formatted).
|
|
1194
|
-
hint: z
|
|
1195
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
1196
|
-
.optional(), // Optional secondary text displayed under the value.
|
|
970
|
+
label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Short descriptive label (e.g. `"Active users"`).
|
|
971
|
+
value: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Primary value to emphasise (pre-formatted).
|
|
972
|
+
hint: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Optional secondary text displayed under the value.
|
|
1197
973
|
delta: z.unknown().optional(), // Optional change indicator (arrow + number + label).
|
|
1198
|
-
trend: z
|
|
1199
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
1200
|
-
.optional(), // Optional content slot rendered on the right-hand side — typically a `Sparkline` showing the metric's trend.
|
|
974
|
+
trend: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Optional content slot rendered on the right-hand side — typically a `Sparkline` showing the metric's trend.
|
|
1201
975
|
loading: z.boolean().optional(), // When `true`, renders a skeleton placeholder in place of value + delta.
|
|
1202
976
|
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
1203
977
|
});
|
|
@@ -1205,19 +979,13 @@ export const StatCardPropsSchema = z.object({
|
|
|
1205
979
|
export const SurfacePropsSchema = z.object({
|
|
1206
980
|
as: z.unknown().optional(), // The HTML element type to render as (e.g. `"div"`, `"section"`, `"article"`).
|
|
1207
981
|
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
1208
|
-
children: z
|
|
1209
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
1210
|
-
.optional(), // Content rendered inside the surface.
|
|
982
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Content rendered inside the surface.
|
|
1211
983
|
});
|
|
1212
984
|
|
|
1213
985
|
export const SwitchPropsSchema = z.object({
|
|
1214
986
|
variant: z.enum(["default", "error"]).optional(), // Visual variant: "default" or "error" for validation failures (visual only, no error text)
|
|
1215
|
-
label: z
|
|
1216
|
-
|
|
1217
|
-
.optional(), // Label content for the switch (Field wrapper is built-in) - can be a string or any React node. Optional when used standalone for visual-only purposes.
|
|
1218
|
-
labelTooltip: z
|
|
1219
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
1220
|
-
.optional(), // Tooltip content to display next to the label via an info icon
|
|
987
|
+
label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Label content for the switch (Field wrapper is built-in) - can be a string or any React node. Optional when used standalone for visual-only purposes.
|
|
988
|
+
labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content to display next to the label via an info icon
|
|
1221
989
|
required: z.boolean().optional(), // Whether the switch is required. When explicitly false, shows "(optional)" text after the label.
|
|
1222
990
|
controlFirst: z.boolean().optional(), // When true (default), switch appears before label. When false, label appears before switch.
|
|
1223
991
|
size: z.enum(["sm", "base", "lg"]).optional(),
|
|
@@ -1238,9 +1006,7 @@ export const TablePropsSchema = z.object({
|
|
|
1238
1006
|
layout: z.enum(["auto", "fixed"]).optional(),
|
|
1239
1007
|
variant: z.enum(["default", "selected"]).optional(),
|
|
1240
1008
|
className: z.string().optional(), // Additional CSS classes
|
|
1241
|
-
children: z
|
|
1242
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
1243
|
-
.optional(), // Child elements
|
|
1009
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child elements
|
|
1244
1010
|
});
|
|
1245
1011
|
|
|
1246
1012
|
export const TabsPropsSchema = z.object({
|
|
@@ -1256,25 +1022,13 @@ export const TabsPropsSchema = z.object({
|
|
|
1256
1022
|
});
|
|
1257
1023
|
|
|
1258
1024
|
export const TextPropsSchema = z.object({
|
|
1259
|
-
variant: z
|
|
1260
|
-
.enum([
|
|
1261
|
-
"heading1",
|
|
1262
|
-
"heading2",
|
|
1263
|
-
"heading3",
|
|
1264
|
-
"body",
|
|
1265
|
-
"secondary",
|
|
1266
|
-
"success",
|
|
1267
|
-
"error",
|
|
1268
|
-
"mono",
|
|
1269
|
-
"mono-secondary",
|
|
1270
|
-
])
|
|
1271
|
-
.optional(), // Text style variant. Determines color, font, and weight. - `"heading1"` — Large page title (30px, semibold) - `"heading2"` — Section title (24px, semibold) - `"heading3"` — Subsection title (18px, semibold) - `"body"` — Default body text - `"secondary"` — Muted text for secondary information - `"success"` — Success state text - `"error"` — Error state text - `"mono"` — Monospace text for code - `"mono-secondary"` — Muted monospace text
|
|
1025
|
+
variant: z.enum(["heading1", "heading2", "heading3", "body", "secondary", "success", "error", "mono", "mono-secondary"]).optional(), // Text style variant. Determines color, font, and weight. - `"heading1"` — Large page title (30px, semibold) - `"heading2"` — Section title (24px, semibold) - `"heading3"` — Subsection title (18px, semibold) - `"body"` — Default body text - `"secondary"` — Muted text for secondary information - `"success"` — Success state text - `"error"` — Error state text - `"mono"` — Monospace text for code - `"mono-secondary"` — Muted monospace text
|
|
1272
1026
|
size: z.enum(["xs", "sm", "base", "lg"]).optional(), // Text size (only applies to body/secondary/success/error variants). - `"xs"` — 12px - `"sm"` — 14px - `"base"` — 16px - `"lg"` — 18px
|
|
1273
1027
|
bold: z.boolean().optional(), // Whether to use bold font weight (only applies to body variants).
|
|
1274
1028
|
as: z.unknown().optional(), // The HTML element type to render as (e.g. `"span"`, `"p"`, `"h1"`). Auto-selected based on variant if omitted.
|
|
1275
|
-
children: z
|
|
1276
|
-
|
|
1277
|
-
|
|
1029
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Text content.
|
|
1030
|
+
wrap: z.unknown().optional(), // Text layout strategy using pretext-driven measurement. - `"natural"` — No measurement, normal browser wrapping (default for body). - `"balance"` — Even wrapping, smallest maxWidth without adding lines (default for headings). - `"shrink"` — Hug widest natural line (maxWidth = line width). Good for chat bubbles. - `"reserve"` — Reserve height based on line count. Good for streaming text.
|
|
1031
|
+
reserveLines: z.number().optional(), // For `wrap="reserve"`: reserve this many lines of height. If omitted, measures current content to determine line count.
|
|
1278
1032
|
});
|
|
1279
1033
|
|
|
1280
1034
|
export const TextRollPropsSchema = z.object({
|
|
@@ -1297,24 +1051,14 @@ export const ThemeTogglePropsSchema = z.object({
|
|
|
1297
1051
|
export const ToastyPropsSchema = z.object({
|
|
1298
1052
|
variant: z.enum(["default", "error", "warning"]).optional(),
|
|
1299
1053
|
className: z.string().optional(), // Additional CSS classes
|
|
1300
|
-
children: z
|
|
1301
|
-
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
1302
|
-
.optional(), // Child elements
|
|
1054
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child elements
|
|
1303
1055
|
});
|
|
1304
1056
|
|
|
1305
1057
|
export const TooltipPropsSchema = z.object({
|
|
1306
1058
|
side: z.enum(["top", "bottom", "left", "right"]).optional(),
|
|
1307
1059
|
className: z.string().optional(), // Additional CSS classes
|
|
1308
|
-
children: z
|
|
1309
|
-
|
|
1310
|
-
.optional(), // Child elements
|
|
1311
|
-
content: z.union([
|
|
1312
|
-
z.string(),
|
|
1313
|
-
z.number(),
|
|
1314
|
-
z.boolean(),
|
|
1315
|
-
z.null(),
|
|
1316
|
-
DynamicValueSchema,
|
|
1317
|
-
]), // Content to display in the tooltip
|
|
1060
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child elements
|
|
1061
|
+
content: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]), // Content to display in the tooltip
|
|
1318
1062
|
});
|
|
1319
1063
|
|
|
1320
1064
|
// =============================================================================
|
|
@@ -1324,74 +1068,7 @@ export const TooltipPropsSchema = z.object({
|
|
|
1324
1068
|
/**
|
|
1325
1069
|
* All valid component type names
|
|
1326
1070
|
*/
|
|
1327
|
-
export type KumoComponentType =
|
|
1328
|
-
| "AiActions"
|
|
1329
|
-
| "AiAgentCard"
|
|
1330
|
-
| "AiApproval"
|
|
1331
|
-
| "AiCodeBlock"
|
|
1332
|
-
| "AiConversation"
|
|
1333
|
-
| "AiInfoBanner"
|
|
1334
|
-
| "AiMessage"
|
|
1335
|
-
| "AiMissionHeader"
|
|
1336
|
-
| "AiPartGroup"
|
|
1337
|
-
| "AiQuestion"
|
|
1338
|
-
| "AiReasoning"
|
|
1339
|
-
| "AiResponse"
|
|
1340
|
-
| "AiShimmer"
|
|
1341
|
-
| "AiStatusBadge"
|
|
1342
|
-
| "AiStreamingText"
|
|
1343
|
-
| "AiSubagent"
|
|
1344
|
-
| "AiSuggestions"
|
|
1345
|
-
| "AiTaskList"
|
|
1346
|
-
| "AiTimeline"
|
|
1347
|
-
| "AiToolCall"
|
|
1348
|
-
| "AiUsageBar"
|
|
1349
|
-
| "Badge"
|
|
1350
|
-
| "Banner"
|
|
1351
|
-
| "Breadcrumbs"
|
|
1352
|
-
| "Button"
|
|
1353
|
-
| "Checkbox"
|
|
1354
|
-
| "ClipboardText"
|
|
1355
|
-
| "Code"
|
|
1356
|
-
| "Collapsible"
|
|
1357
|
-
| "Combobox"
|
|
1358
|
-
| "CommandPalette"
|
|
1359
|
-
| "DataGrid"
|
|
1360
|
-
| "DatePicker"
|
|
1361
|
-
| "DateRangePicker"
|
|
1362
|
-
| "Dialog"
|
|
1363
|
-
| "DropdownMenu"
|
|
1364
|
-
| "Empty"
|
|
1365
|
-
| "Field"
|
|
1366
|
-
| "Filters"
|
|
1367
|
-
| "Grid"
|
|
1368
|
-
| "Input"
|
|
1369
|
-
| "InputArea"
|
|
1370
|
-
| "Label"
|
|
1371
|
-
| "LayerCard"
|
|
1372
|
-
| "Link"
|
|
1373
|
-
| "Loader"
|
|
1374
|
-
| "MenuBar"
|
|
1375
|
-
| "Meter"
|
|
1376
|
-
| "Pagination"
|
|
1377
|
-
| "Popover"
|
|
1378
|
-
| "PromptInput"
|
|
1379
|
-
| "Radio"
|
|
1380
|
-
| "Select"
|
|
1381
|
-
| "SensitiveInput"
|
|
1382
|
-
| "Sidebar"
|
|
1383
|
-
| "SignalFlareAILogo"
|
|
1384
|
-
| "Sparkline"
|
|
1385
|
-
| "StatCard"
|
|
1386
|
-
| "Surface"
|
|
1387
|
-
| "Switch"
|
|
1388
|
-
| "Table"
|
|
1389
|
-
| "Tabs"
|
|
1390
|
-
| "Text"
|
|
1391
|
-
| "TextRoll"
|
|
1392
|
-
| "ThemeToggle"
|
|
1393
|
-
| "Toasty"
|
|
1394
|
-
| "Tooltip";
|
|
1071
|
+
export type KumoComponentType = "AiActions" | "AiAgentCard" | "AiApproval" | "AiCodeBlock" | "AiConversation" | "AiInfoBanner" | "AiMessage" | "AiMissionHeader" | "AiPartGroup" | "AiQuestion" | "AiReasoning" | "AiResponse" | "AiShimmer" | "AiStatusBadge" | "AiStreamingText" | "AiSubagent" | "AiSuggestions" | "AiTaskList" | "AiTimeline" | "AiToolCall" | "AiUsageBar" | "Badge" | "Banner" | "Breadcrumbs" | "Button" | "Checkbox" | "ClipboardText" | "Code" | "Collapsible" | "Combobox" | "CommandPalette" | "DataGrid" | "DatePicker" | "DateRangePicker" | "Dialog" | "DropdownMenu" | "Empty" | "Field" | "Filters" | "Grid" | "Input" | "InputArea" | "Label" | "LayerCard" | "Link" | "Loader" | "MenuBar" | "Meter" | "Pagination" | "Popover" | "PromptInput" | "Radio" | "Select" | "SensitiveInput" | "Sidebar" | "SignalFlareAILogo" | "Sparkline" | "StatCard" | "Surface" | "Switch" | "Table" | "Tabs" | "Text" | "TextRoll" | "ThemeToggle" | "Toasty" | "Tooltip";
|
|
1395
1072
|
|
|
1396
1073
|
export const KumoComponentTypeSchema = z.enum([
|
|
1397
1074
|
"AiActions",
|
|
@@ -1572,22 +1249,10 @@ export type UITree = z.infer<typeof UITreeSchema>;
|
|
|
1572
1249
|
/**
|
|
1573
1250
|
* Validate an element's props against its component schema
|
|
1574
1251
|
*/
|
|
1575
|
-
export function validateElementProps(
|
|
1576
|
-
element
|
|
1577
|
-
): SafeParseResult<unknown> {
|
|
1578
|
-
const schema =
|
|
1579
|
-
ComponentPropsSchemas[element.type as keyof typeof ComponentPropsSchemas];
|
|
1252
|
+
export function validateElementProps(element: UIElement): SafeParseResult<unknown> {
|
|
1253
|
+
const schema = ComponentPropsSchemas[element.type as keyof typeof ComponentPropsSchemas];
|
|
1580
1254
|
if (!schema) {
|
|
1581
|
-
return {
|
|
1582
|
-
success: false,
|
|
1583
|
-
error: new z.ZodError([
|
|
1584
|
-
{
|
|
1585
|
-
code: "custom",
|
|
1586
|
-
message: `Unknown component type: ${element.type}`,
|
|
1587
|
-
path: ["type"],
|
|
1588
|
-
},
|
|
1589
|
-
]),
|
|
1590
|
-
};
|
|
1255
|
+
return { success: false, error: new z.ZodError([{ code: 'custom', message: `Unknown component type: ${element.type}`, path: ['type'] }]) };
|
|
1591
1256
|
}
|
|
1592
1257
|
return schema.safeParse(element.props);
|
|
1593
1258
|
}
|
|
@@ -1602,72 +1267,4 @@ export function validateUITree(tree: unknown): SafeParseResult<UITree> {
|
|
|
1602
1267
|
/**
|
|
1603
1268
|
* List of all component names (for catalog generation)
|
|
1604
1269
|
*/
|
|
1605
|
-
export const SF_COMPONENT_NAMES = [
|
|
1606
|
-
"AiActions",
|
|
1607
|
-
"AiAgentCard",
|
|
1608
|
-
"AiApproval",
|
|
1609
|
-
"AiCodeBlock",
|
|
1610
|
-
"AiConversation",
|
|
1611
|
-
"AiInfoBanner",
|
|
1612
|
-
"AiMessage",
|
|
1613
|
-
"AiMissionHeader",
|
|
1614
|
-
"AiPartGroup",
|
|
1615
|
-
"AiQuestion",
|
|
1616
|
-
"AiReasoning",
|
|
1617
|
-
"AiResponse",
|
|
1618
|
-
"AiShimmer",
|
|
1619
|
-
"AiStatusBadge",
|
|
1620
|
-
"AiStreamingText",
|
|
1621
|
-
"AiSubagent",
|
|
1622
|
-
"AiSuggestions",
|
|
1623
|
-
"AiTaskList",
|
|
1624
|
-
"AiTimeline",
|
|
1625
|
-
"AiToolCall",
|
|
1626
|
-
"AiUsageBar",
|
|
1627
|
-
"Badge",
|
|
1628
|
-
"Banner",
|
|
1629
|
-
"Breadcrumbs",
|
|
1630
|
-
"Button",
|
|
1631
|
-
"Checkbox",
|
|
1632
|
-
"ClipboardText",
|
|
1633
|
-
"Code",
|
|
1634
|
-
"Collapsible",
|
|
1635
|
-
"Combobox",
|
|
1636
|
-
"CommandPalette",
|
|
1637
|
-
"DataGrid",
|
|
1638
|
-
"DatePicker",
|
|
1639
|
-
"DateRangePicker",
|
|
1640
|
-
"Dialog",
|
|
1641
|
-
"DropdownMenu",
|
|
1642
|
-
"Empty",
|
|
1643
|
-
"Field",
|
|
1644
|
-
"Filters",
|
|
1645
|
-
"Grid",
|
|
1646
|
-
"Input",
|
|
1647
|
-
"InputArea",
|
|
1648
|
-
"Label",
|
|
1649
|
-
"LayerCard",
|
|
1650
|
-
"Link",
|
|
1651
|
-
"Loader",
|
|
1652
|
-
"MenuBar",
|
|
1653
|
-
"Meter",
|
|
1654
|
-
"Pagination",
|
|
1655
|
-
"Popover",
|
|
1656
|
-
"PromptInput",
|
|
1657
|
-
"Radio",
|
|
1658
|
-
"Select",
|
|
1659
|
-
"SensitiveInput",
|
|
1660
|
-
"Sidebar",
|
|
1661
|
-
"SignalFlareAILogo",
|
|
1662
|
-
"Sparkline",
|
|
1663
|
-
"StatCard",
|
|
1664
|
-
"Surface",
|
|
1665
|
-
"Switch",
|
|
1666
|
-
"Table",
|
|
1667
|
-
"Tabs",
|
|
1668
|
-
"Text",
|
|
1669
|
-
"TextRoll",
|
|
1670
|
-
"ThemeToggle",
|
|
1671
|
-
"Toasty",
|
|
1672
|
-
"Tooltip",
|
|
1673
|
-
] as const;
|
|
1270
|
+
export const SF_COMPONENT_NAMES = ["AiActions", "AiAgentCard", "AiApproval", "AiCodeBlock", "AiConversation", "AiInfoBanner", "AiMessage", "AiMissionHeader", "AiPartGroup", "AiQuestion", "AiReasoning", "AiResponse", "AiShimmer", "AiStatusBadge", "AiStreamingText", "AiSubagent", "AiSuggestions", "AiTaskList", "AiTimeline", "AiToolCall", "AiUsageBar", "Badge", "Banner", "Breadcrumbs", "Button", "Checkbox", "ClipboardText", "Code", "Collapsible", "Combobox", "CommandPalette", "DataGrid", "DatePicker", "DateRangePicker", "Dialog", "DropdownMenu", "Empty", "Field", "Filters", "Grid", "Input", "InputArea", "Label", "LayerCard", "Link", "Loader", "MenuBar", "Meter", "Pagination", "Popover", "PromptInput", "Radio", "Select", "SensitiveInput", "Sidebar", "SignalFlareAILogo", "Sparkline", "StatCard", "Surface", "Switch", "Table", "Tabs", "Text", "TextRoll", "ThemeToggle", "Toasty", "Tooltip"] as const;
|