@signalflare-ai/ui 1.2.0 → 1.4.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 +154 -1
- package/ai/component-registry.json +208 -550
- package/ai/component-registry.md +3042 -3115
- package/ai/schemas.ts +504 -96
- package/dist/.build-complete +1 -1
- package/dist/ai/schemas.d.ts.map +1 -1
- package/dist/{ai-actions-BdUZI3Gk.js → ai-actions-CBfz5XEf.js} +4 -4
- package/dist/{ai-actions-BdUZI3Gk.js.map → ai-actions-CBfz5XEf.js.map} +1 -1
- package/dist/{ai-agent-card-BR2NIYhi.js → ai-agent-card-CByAUe0q.js} +3 -3
- package/dist/ai-agent-card-CByAUe0q.js.map +1 -0
- package/dist/{ai-approval-Ba7mrKba.js → ai-approval-Ci8N70a7.js} +4 -3
- package/dist/{ai-approval-Ba7mrKba.js.map → ai-approval-Ci8N70a7.js.map} +1 -1
- package/dist/{ai-code-block-CZtoL73R.js → ai-code-block-P9TJHvaC.js} +37 -39
- package/dist/ai-code-block-P9TJHvaC.js.map +1 -0
- package/dist/{ai-conversation-Cc7WlaBg.js → ai-conversation-Qslfdi1t.js} +28 -42
- package/dist/ai-conversation-Qslfdi1t.js.map +1 -0
- package/dist/{ai-info-banner-C7EWPBj7.js → ai-info-banner-B_9vtGK3.js} +3 -3
- package/dist/{ai-info-banner-C7EWPBj7.js.map → ai-info-banner-B_9vtGK3.js.map} +1 -1
- package/dist/{ai-message-Bp7L68U_.js → ai-message-Ci3gwM7G.js} +6 -6
- package/dist/{ai-message-Bp7L68U_.js.map → ai-message-Ci3gwM7G.js.map} +1 -1
- package/dist/{ai-mission-header-TiCJfTNt.js → ai-mission-header-CaBc19-t.js} +2 -2
- package/dist/{ai-mission-header-TiCJfTNt.js.map → ai-mission-header-CaBc19-t.js.map} +1 -1
- package/dist/{ai-part-group-DNb9I446.js → ai-part-group-Dx1Mr92B.js} +5 -4
- package/dist/ai-part-group-Dx1Mr92B.js.map +1 -0
- package/dist/{ai-prompt-input-BVvov_KF.js → ai-prompt-input-Bm4XoSj2.js} +19 -17
- package/dist/ai-prompt-input-Bm4XoSj2.js.map +1 -0
- package/dist/{ai-question-GPPMk7YM.js → ai-question-OyJovxGe.js} +4 -3
- package/dist/{ai-question-GPPMk7YM.js.map → ai-question-OyJovxGe.js.map} +1 -1
- package/dist/{ai-reasoning-_feFjk56.js → ai-reasoning-BLfBXx3F.js} +9 -5
- package/dist/ai-reasoning-BLfBXx3F.js.map +1 -0
- package/dist/{ai-response-CvjV3WhV.js → ai-response-hbVCZJmo.js} +2 -2
- package/dist/{ai-response-CvjV3WhV.js.map → ai-response-hbVCZJmo.js.map} +1 -1
- package/dist/{ai-shimmer-j6lKIrjj.js → ai-shimmer-BamNMNK3.js} +2 -2
- package/dist/{ai-shimmer-j6lKIrjj.js.map → ai-shimmer-BamNMNK3.js.map} +1 -1
- package/dist/{ai-status-badge-CSU_QOdz.js → ai-status-badge-BZLczdkI.js} +2 -2
- package/dist/{ai-status-badge-CSU_QOdz.js.map → ai-status-badge-BZLczdkI.js.map} +1 -1
- package/dist/{ai-streaming-text-IWW1BhvZ.js → ai-streaming-text-DgYu64UH.js} +1 -1
- package/dist/{ai-streaming-text-IWW1BhvZ.js.map → ai-streaming-text-DgYu64UH.js.map} +1 -1
- package/dist/{ai-subagent-JA4iIMW3.js → ai-subagent-p97AI1h9.js} +3 -3
- package/dist/{ai-subagent-JA4iIMW3.js.map → ai-subagent-p97AI1h9.js.map} +1 -1
- package/dist/{ai-suggestion-BdO6MBuH.js → ai-suggestion-Bj6vF7CT.js} +3 -3
- package/dist/{ai-suggestion-BdO6MBuH.js.map → ai-suggestion-Bj6vF7CT.js.map} +1 -1
- package/dist/{ai-task-list-DYw4R1FA.js → ai-task-list-C_UQYpk9.js} +6 -4
- package/dist/{ai-task-list-DYw4R1FA.js.map → ai-task-list-C_UQYpk9.js.map} +1 -1
- package/dist/{ai-timeline-C42tOUT8.js → ai-timeline-CePL1LOU.js} +3 -3
- package/dist/ai-timeline-CePL1LOU.js.map +1 -0
- package/dist/{ai-tool-03jOTwUI.js → ai-tool-CfRcwmHT.js} +17 -11
- package/dist/ai-tool-CfRcwmHT.js.map +1 -0
- package/dist/{ai-usage-bar-BRf5LC_b.js → ai-usage-bar-45pVRCGA.js} +2 -2
- package/dist/{ai-usage-bar-BRf5LC_b.js.map → ai-usage-bar-45pVRCGA.js.map} +1 -1
- package/dist/{badge-BheXjMc8.js → badge-Beb-6uut.js} +5 -5
- package/dist/{badge-BheXjMc8.js.map → badge-Beb-6uut.js.map} +1 -1
- package/dist/{banner-CcsjunJg.js → banner-CCEksxPg.js} +3 -3
- package/dist/{banner-CcsjunJg.js.map → banner-CCEksxPg.js.map} +1 -1
- package/dist/{breadcrumbs-CouSyy3H.js → breadcrumbs-HiTmgaZ4.js} +5 -5
- package/dist/{breadcrumbs-CouSyy3H.js.map → breadcrumbs-HiTmgaZ4.js.map} +1 -1
- package/dist/{button-CO6-qPax.js → button-BHOgXJRU.js} +4 -4
- package/dist/{button-CO6-qPax.js.map → button-BHOgXJRU.js.map} +1 -1
- package/dist/catalog.js +1 -1
- package/dist/catalog.js.map +1 -1
- package/dist/{chart-Dg0qUeSc.js → chart-B9FfZdKs.js} +7 -7
- package/dist/chart-B9FfZdKs.js.map +1 -0
- package/dist/{checkbox-D7p4QKsC.js → checkbox-Cy_OCyay.js} +3 -3
- package/dist/{checkbox-D7p4QKsC.js.map → checkbox-Cy_OCyay.js.map} +1 -1
- package/dist/{clipboard-text-kLaMogs3.js → clipboard-text-CKSvNp9L.js} +6 -5
- package/dist/clipboard-text-CKSvNp9L.js.map +1 -0
- package/dist/{cn-YROP2_ox.js → cn-CmAOpn49.js} +2 -2
- package/dist/{cn-YROP2_ox.js.map → cn-CmAOpn49.js.map} +1 -1
- package/dist/{code-BN8InC0G.js → code-JsQz-0G_.js} +4 -4
- package/dist/{code-BN8InC0G.js.map → code-JsQz-0G_.js.map} +1 -1
- package/dist/{collapsible-D_ueZ0jz.js → collapsible-1kOZ-89L.js} +2 -2
- package/dist/{collapsible-D_ueZ0jz.js.map → collapsible-1kOZ-89L.js.map} +1 -1
- package/dist/{combobox-B7TOK0U2.js → combobox-CQwDmqgA.js} +4 -4
- package/dist/{combobox-B7TOK0U2.js.map → combobox-CQwDmqgA.js.map} +1 -1
- package/dist/command-line/cli.js +3 -3
- package/dist/{command-palette-CuNUyJca.js → command-palette-Bkuv3e6o.js} +20 -5
- package/dist/command-palette-Bkuv3e6o.js.map +1 -0
- 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 +1 -1
- 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 +1 -1
- 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/link.js +3 -3
- package/dist/components/link.js.map +1 -1
- package/dist/components/loader.js +2 -2
- 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-DrguJq_H.js +395 -0
- package/dist/data-grid-DrguJq_H.js.map +1 -0
- package/dist/{date-picker--ox89RBy.js → date-picker-O34AqG3f.js} +2 -2
- package/dist/{date-picker--ox89RBy.js.map → date-picker-O34AqG3f.js.map} +1 -1
- package/dist/{date-range-picker-DVa7QBqE.js → date-range-picker-YKYvum_r.js} +29 -39
- package/dist/{date-range-picker-DVa7QBqE.js.map → date-range-picker-YKYvum_r.js.map} +1 -1
- package/dist/{dialog-Bv1oSFOd.js → dialog-DYqu4aDO.js} +3 -3
- package/dist/{dialog-Bv1oSFOd.js.map → dialog-DYqu4aDO.js.map} +1 -1
- package/dist/{dist-B6iWiWwp.js → dist-6AtBsaJE.js} +153 -47
- package/dist/dist-6AtBsaJE.js.map +1 -0
- package/dist/{dropdown-B_nrGXjV.js → dropdown-XzbnRLYR.js} +15 -5
- package/dist/dropdown-XzbnRLYR.js.map +1 -0
- package/dist/{echart-CdOUaT-r.js → echart-DGBIVAv1.js} +23 -57
- package/dist/{echart-CdOUaT-r.js.map → echart-DGBIVAv1.js.map} +1 -1
- package/dist/{empty-DZnN0zKX.js → empty-C1tAkawe.js} +6 -6
- package/dist/{empty-DZnN0zKX.js.map → empty-C1tAkawe.js.map} +1 -1
- package/dist/{field-B_yVof52.js → field-DBpFzzBS.js} +3 -3
- package/dist/{field-B_yVof52.js.map → field-DBpFzzBS.js.map} +1 -1
- package/dist/{filters-cpJCY21R.js → filters-SmEl93za.js} +10 -10
- package/dist/filters-SmEl93za.js.map +1 -0
- package/dist/{flow-B4v198ot.js → flow-BLzgbq1T.js} +6 -6
- package/dist/flow-BLzgbq1T.js.map +1 -0
- package/dist/genui.js +2 -2
- package/dist/genui.js.map +1 -1
- package/dist/{grid-CEd64Lnh.js → grid-CifjQL-5.js} +2 -2
- package/dist/{grid-CEd64Lnh.js.map → grid-CifjQL-5.js.map} +1 -1
- package/dist/{highlight-to-react-D0Yav4jk.js → highlight-to-react-DN9dUCS2.js} +9 -15
- package/dist/highlight-to-react-DN9dUCS2.js.map +1 -0
- package/dist/index.js +71 -71
- package/dist/index.js.map +1 -1
- package/dist/{input-ClB_E4Lb.js → input-COmx2M_R.js} +5 -5
- package/dist/{input-ClB_E4Lb.js.map → input-COmx2M_R.js.map} +1 -1
- package/dist/{input-B2bbijRh.js → input-GkfMQZC_.js} +3 -3
- package/dist/{input-B2bbijRh.js.map → input-GkfMQZC_.js.map} +1 -1
- package/dist/{label-DUv_urO1.js → label-CiGZ464N.js} +3 -3
- package/dist/{label-DUv_urO1.js.map → label-CiGZ464N.js.map} +1 -1
- package/dist/{layer-card-BK7eYfwn.js → layer-card-8l8GuLQr.js} +2 -2
- package/dist/{layer-card-BK7eYfwn.js.map → layer-card-8l8GuLQr.js.map} +1 -1
- package/dist/{layout-DJHMMap2.js → layout-CWBE0qwx.js} +258 -154
- package/dist/layout-CWBE0qwx.js.map +1 -0
- package/dist/{link-provider-BUZKXaNE.js → link-provider-BSn8YJon.js} +2 -2
- package/dist/link-provider-BSn8YJon.js.map +1 -0
- package/dist/{loader-DAcc-Uag.js → loader-BEMz8pJO.js} +1 -1
- package/dist/{loader-DAcc-Uag.js.map → loader-BEMz8pJO.js.map} +1 -1
- package/dist/{measured-text-BI3dTJmH.js → measured-text-CXkdw9Yr.js} +45 -30
- package/dist/measured-text-CXkdw9Yr.js.map +1 -0
- package/dist/{menubar-Cxf3xeAt.js → menubar-CoOr4ocj.js} +3 -3
- package/dist/{menubar-Cxf3xeAt.js.map → menubar-CoOr4ocj.js.map} +1 -1
- package/dist/{meter-BFFe9l5b.js → meter-Pf_VOl59.js} +2 -2
- package/dist/{meter-BFFe9l5b.js.map → meter-Pf_VOl59.js.map} +1 -1
- package/dist/{pagination-yS372Tr4.js → pagination-DSY279Ta.js} +2 -2
- package/dist/{pagination-yS372Tr4.js.map → pagination-DSY279Ta.js.map} +1 -1
- package/dist/{popover-SRoJaCZr.js → popover-BY-e9co1.js} +2 -2
- package/dist/{popover-SRoJaCZr.js.map → popover-BY-e9co1.js.map} +1 -1
- package/dist/{radio-BcwhwYNB.js → radio-DZwL13j0.js} +2 -2
- package/dist/{radio-BcwhwYNB.js.map → radio-DZwL13j0.js.map} +1 -1
- package/dist/{select-DMhdoHMa.js → select-BFifYqHA.js} +6 -6
- package/dist/{select-DMhdoHMa.js.map → select-BFifYqHA.js.map} +1 -1
- package/dist/{sensitive-input-CJUpIRal.js → sensitive-input-DHLZcM73.js} +4 -4
- package/dist/{sensitive-input-CJUpIRal.js.map → sensitive-input-DHLZcM73.js.map} +1 -1
- package/dist/{sidebar-D4zrlYpn.js → sidebar-odGsdvG4.js} +6 -7
- package/dist/sidebar-odGsdvG4.js.map +1 -0
- package/dist/{signalflare-ai-logo-Bipogceq.js → signalflare-ai-logo-CNaDT_w8.js} +2 -2
- package/dist/{signalflare-ai-logo-Bipogceq.js.map → signalflare-ai-logo-CNaDT_w8.js.map} +1 -1
- package/dist/{skeleton-line-CH1-h6e2.js → skeleton-line-CxxYVTO2.js} +2 -2
- package/dist/{skeleton-line-CH1-h6e2.js.map → skeleton-line-CxxYVTO2.js.map} +1 -1
- package/dist/{sparkline-DHmgj1d0.js → sparkline-BQ-4j2W2.js} +2 -2
- package/dist/{sparkline-DHmgj1d0.js.map → sparkline-BQ-4j2W2.js.map} +1 -1
- package/dist/src/blocks/agent-harness/agent-harness.tsx +11 -11
- package/dist/src/blocks/commander/commander.tsx +15 -15
- package/dist/src/blocks/map-block/map-block.d.ts.map +1 -1
- package/dist/src/blocks/map-block/map-block.tsx +11 -7
- package/dist/src/components/ai-approval/ai-approval.d.ts.map +1 -1
- package/dist/src/components/ai-code-block/ai-code-block.d.ts +14 -13
- package/dist/src/components/ai-code-block/ai-code-block.d.ts.map +1 -1
- package/dist/src/components/ai-conversation/ai-conversation.d.ts.map +1 -1
- package/dist/src/components/ai-part-group/ai-part-group.d.ts.map +1 -1
- package/dist/src/components/ai-prompt-input/ai-prompt-input.d.ts.map +1 -1
- package/dist/src/components/ai-prompt-input/controller.d.ts.map +1 -1
- package/dist/src/components/ai-prompt-input/types.d.ts.map +1 -1
- package/dist/src/components/ai-question/ai-question.d.ts.map +1 -1
- package/dist/src/components/ai-reasoning/ai-reasoning.d.ts.map +1 -1
- package/dist/src/components/ai-response/ai-response.d.ts.map +1 -1
- package/dist/src/components/ai-subagent/ai-subagent.d.ts.map +1 -1
- package/dist/src/components/ai-tool/ai-tool.d.ts.map +1 -1
- package/dist/src/components/chart/echart.d.ts.map +1 -1
- package/dist/src/components/clipboard-text/clipboard-text.d.ts.map +1 -1
- package/dist/src/components/data-grid/data-grid.d.ts +2 -1
- package/dist/src/components/data-grid/data-grid.d.ts.map +1 -1
- package/dist/src/components/data-grid/features.d.ts +20 -0
- package/dist/src/components/data-grid/features.d.ts.map +1 -0
- package/dist/src/components/data-grid/types.d.ts +38 -7
- package/dist/src/components/data-grid/types.d.ts.map +1 -1
- package/dist/src/components/filters/filters.d.ts.map +1 -1
- package/dist/src/components/flow/use-children.d.ts +1 -1
- package/dist/src/components/link/link.d.ts.map +1 -1
- package/dist/src/components/sidebar/sidebar.d.ts +1 -1
- package/dist/src/components/signalflare-ai-logo/signalflare-ai-logo.d.ts.map +1 -1
- package/dist/src/components/text/text.d.ts +2 -1
- package/dist/src/components/text/text.d.ts.map +1 -1
- package/dist/src/components/text-roll/text-roll.d.ts.map +1 -1
- package/dist/src/components/theme-toggle/theme-toggle.d.ts.map +1 -1
- package/dist/src/components/toast/toast.d.ts.map +1 -1
- package/dist/src/utils/highlight-to-react.d.ts.map +1 -1
- package/dist/src/utils/measured-text.d.ts.map +1 -1
- package/dist/src/utils/use-measured-text.d.ts.map +1 -1
- package/dist/{stat-card-Ew-ofzEm.js → stat-card-Bspk4XFr.js} +4 -4
- package/dist/stat-card-Bspk4XFr.js.map +1 -0
- package/dist/styles/sf-standalone.css +1 -1
- package/dist/styles/theme-fedramp.css +3 -12
- package/dist/styles/theme-minimal.css +26 -104
- package/dist/styles/theme-sf.css +37 -142
- package/dist/{surface-DGwRlC0o.js → surface-CWdSFVUx.js} +3 -3
- package/dist/{surface-DGwRlC0o.js.map → surface-CWdSFVUx.js.map} +1 -1
- package/dist/{switch-BxAMfHdt.js → switch-TA4cByCJ.js} +5 -5
- package/dist/switch-TA4cByCJ.js.map +1 -0
- package/dist/{table-BBeAtYVZ.js → table-BM8JBGBs.js} +3 -3
- package/dist/{table-BBeAtYVZ.js.map → table-BM8JBGBs.js.map} +1 -1
- package/dist/{tabs-CeHu7Scn.js → tabs-bnH2vGLv.js} +2 -2
- package/dist/{tabs-CeHu7Scn.js.map → tabs-bnH2vGLv.js.map} +1 -1
- package/dist/{text-Cqryz7rk.js → text-iQ0YUFNg.js} +4 -5
- package/dist/{text-Cqryz7rk.js.map → text-iQ0YUFNg.js.map} +1 -1
- package/dist/{text-roll-Ch52hcQj.js → text-roll-C3U2jd2u.js} +5 -2
- package/dist/text-roll-C3U2jd2u.js.map +1 -0
- package/dist/{theme-toggle-LDfIKEqx.js → theme-toggle-BTVxD-fD.js} +10 -9
- package/dist/theme-toggle-BTVxD-fD.js.map +1 -0
- package/dist/{toast-CaFQNYng.js → toast-CgZVaAkw.js} +3 -3
- package/dist/{toast-CaFQNYng.js.map → toast-CgZVaAkw.js.map} +1 -1
- package/dist/{tooltip-g9lFsvcT.js → tooltip-uobk6Oh-.js} +3 -3
- package/dist/{tooltip-g9lFsvcT.js.map → tooltip-uobk6Oh-.js.map} +1 -1
- package/dist/{use-agent-harness-BTcNJdw4.js → use-agent-harness-Dl8w6X5O.js} +3 -3
- package/dist/{use-agent-harness-BTcNJdw4.js.map → use-agent-harness-Dl8w6X5O.js.map} +1 -1
- package/dist/utils.js +3 -3
- package/package.json +27 -25
- package/scripts/component-registry/discovery.ts +11 -10
- package/scripts/component-registry/example-cleanup.ts +8 -8
- package/scripts/component-registry/index.ts +6 -6
- package/scripts/component-registry/schema-generator.ts +1 -1
- package/scripts/component-registry/sub-components.ts +35 -23
- package/scripts/component-registry/utils.ts +11 -11
- package/scripts/component-registry/variant-parser.ts +17 -15
- package/scripts/convert-demos-to-stories.ts +5 -5
- package/scripts/theme-generator/config.ts +1 -5
- package/scripts/theme-generator/generate-css.ts +1 -1
- package/scripts/theme-generator/migrate.ts +3 -3
- package/dist/ai-agent-card-BR2NIYhi.js.map +0 -1
- package/dist/ai-code-block-CZtoL73R.js.map +0 -1
- package/dist/ai-conversation-Cc7WlaBg.js.map +0 -1
- package/dist/ai-part-group-DNb9I446.js.map +0 -1
- package/dist/ai-prompt-input-BVvov_KF.js.map +0 -1
- package/dist/ai-reasoning-_feFjk56.js.map +0 -1
- package/dist/ai-timeline-C42tOUT8.js.map +0 -1
- package/dist/ai-tool-03jOTwUI.js.map +0 -1
- package/dist/chart-Dg0qUeSc.js.map +0 -1
- package/dist/clipboard-text-kLaMogs3.js.map +0 -1
- package/dist/command-palette-CuNUyJca.js.map +0 -1
- package/dist/data-grid-DGHmU0w3.js +0 -305
- package/dist/data-grid-DGHmU0w3.js.map +0 -1
- package/dist/dist-B6iWiWwp.js.map +0 -1
- package/dist/dropdown-B_nrGXjV.js.map +0 -1
- package/dist/filters-cpJCY21R.js.map +0 -1
- package/dist/flow-B4v198ot.js.map +0 -1
- package/dist/highlight-to-react-D0Yav4jk.js.map +0 -1
- package/dist/layout-DJHMMap2.js.map +0 -1
- package/dist/link-provider-BUZKXaNE.js.map +0 -1
- package/dist/measured-text-BI3dTJmH.js.map +0 -1
- package/dist/sidebar-D4zrlYpn.js.map +0 -1
- package/dist/stat-card-Ew-ofzEm.js.map +0 -1
- package/dist/switch-BxAMfHdt.js.map +0 -1
- package/dist/text-roll-Ch52hcQj.js.map +0 -1
- package/dist/theme-toggle-LDfIKEqx.js.map +0 -1
package/ai/schemas.ts
CHANGED
|
@@ -100,8 +100,12 @@ 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
|
-
|
|
103
|
+
onSuccess: z
|
|
104
|
+
.object({ set: z.record(z.string(), DynamicValueSchema) })
|
|
105
|
+
.optional(),
|
|
106
|
+
onError: z
|
|
107
|
+
.object({ set: z.record(z.string(), DynamicValueSchema) })
|
|
108
|
+
.optional(),
|
|
105
109
|
});
|
|
106
110
|
|
|
107
111
|
export type Action = z.infer<typeof ActionSchema>;
|
|
@@ -111,7 +115,9 @@ export type Action = z.infer<typeof ActionSchema>;
|
|
|
111
115
|
// =============================================================================
|
|
112
116
|
|
|
113
117
|
export const AiActionsPropsSchema = z.object({
|
|
114
|
-
children: z
|
|
118
|
+
children: z
|
|
119
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
120
|
+
.optional(),
|
|
115
121
|
className: z.string().optional(),
|
|
116
122
|
id: z.string().optional(),
|
|
117
123
|
lang: z.string().optional(),
|
|
@@ -148,7 +154,9 @@ export const AiApprovalPropsSchema = z.object({
|
|
|
148
154
|
approveLabel: z.string().optional(), // Label for the approve button. Default: `"Approve"`.
|
|
149
155
|
rejectLabel: z.string().optional(), // Label for the reject button. Default: `"Reject"`.
|
|
150
156
|
showFeedback: z.boolean().optional(), // Show a text input for rejection feedback. Default: `false`.
|
|
151
|
-
children: z
|
|
157
|
+
children: z
|
|
158
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
159
|
+
.optional(),
|
|
152
160
|
className: z.string().optional(),
|
|
153
161
|
id: z.string().optional(),
|
|
154
162
|
lang: z.string().optional(),
|
|
@@ -158,7 +166,9 @@ export const AiCodeBlockPropsSchema = z.object({
|
|
|
158
166
|
code: z.string(), // The raw code string to display and make copyable.
|
|
159
167
|
language: z.string().optional(), // Language identifier for syntax highlighting (display only, no highlighting applied).
|
|
160
168
|
showLineNumbers: z.boolean().optional(), // Show line numbers.
|
|
161
|
-
children: z
|
|
169
|
+
children: z
|
|
170
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
171
|
+
.optional(),
|
|
162
172
|
className: z.string().optional(),
|
|
163
173
|
id: z.string().optional(),
|
|
164
174
|
lang: z.string().optional(),
|
|
@@ -166,7 +176,9 @@ export const AiCodeBlockPropsSchema = z.object({
|
|
|
166
176
|
});
|
|
167
177
|
|
|
168
178
|
export const AiConversationPropsSchema = z.object({
|
|
169
|
-
children: z
|
|
179
|
+
children: z
|
|
180
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
181
|
+
.optional(),
|
|
170
182
|
className: z.string().optional(),
|
|
171
183
|
id: z.string().optional(),
|
|
172
184
|
lang: z.string().optional(),
|
|
@@ -176,7 +188,9 @@ export const AiConversationPropsSchema = z.object({
|
|
|
176
188
|
export const AiInfoBannerPropsSchema = z.object({
|
|
177
189
|
level: z.enum(["info", "error", "change"]).optional(), // Banner level controls icon and color treatment.
|
|
178
190
|
icon: z.unknown().optional(), // Custom icon override.
|
|
179
|
-
children: z
|
|
191
|
+
children: z
|
|
192
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
193
|
+
.optional(),
|
|
180
194
|
className: z.string().optional(),
|
|
181
195
|
id: z.string().optional(),
|
|
182
196
|
lang: z.string().optional(),
|
|
@@ -185,7 +199,9 @@ export const AiInfoBannerPropsSchema = z.object({
|
|
|
185
199
|
|
|
186
200
|
export const AiMessagePropsSchema = z.object({
|
|
187
201
|
from: z.enum(["user", "assistant", "system"]), // Message sender role — controls layout and group class.
|
|
188
|
-
children: z
|
|
202
|
+
children: z
|
|
203
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
204
|
+
.optional(),
|
|
189
205
|
className: z.string().optional(),
|
|
190
206
|
id: z.string().optional(),
|
|
191
207
|
lang: z.string().optional(),
|
|
@@ -205,14 +221,18 @@ export const AiMissionHeaderPropsSchema = z.object({
|
|
|
205
221
|
className: z.string().optional(),
|
|
206
222
|
id: z.string().optional(),
|
|
207
223
|
lang: z.string().optional(),
|
|
208
|
-
children: z
|
|
224
|
+
children: z
|
|
225
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
226
|
+
.optional(),
|
|
209
227
|
});
|
|
210
228
|
|
|
211
229
|
export const AiPartGroupPropsSchema = z.object({
|
|
212
230
|
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).
|
|
213
231
|
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.
|
|
214
232
|
title: z.string().optional(), // Title shown in the collapsed summary line. Falls back to the first reasoning text snippet, then to a step count.
|
|
215
|
-
children: z
|
|
233
|
+
children: z
|
|
234
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
235
|
+
.optional(),
|
|
216
236
|
className: z.string().optional(),
|
|
217
237
|
id: z.string().optional(),
|
|
218
238
|
lang: z.string().optional(),
|
|
@@ -227,7 +247,9 @@ export const AiQuestionPropsSchema = z.object({
|
|
|
227
247
|
allowCustom: z.boolean().optional(), // Allow freeform text input (custom answer). Default: `true`. When options are provided, this adds a text field below them.
|
|
228
248
|
icon: z.unknown().optional(), // Custom icon for the question header.
|
|
229
249
|
answeredWith: z.string().optional(), // The answer that was submitted (shown when `status="answered"`).
|
|
230
|
-
children: z
|
|
250
|
+
children: z
|
|
251
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
252
|
+
.optional(),
|
|
231
253
|
className: z.string().optional(),
|
|
232
254
|
id: z.string().optional(),
|
|
233
255
|
lang: z.string().optional(),
|
|
@@ -249,12 +271,16 @@ export const AiReasoningPropsSchema = z.object({
|
|
|
249
271
|
id: z.string().optional(),
|
|
250
272
|
lang: z.string().optional(),
|
|
251
273
|
title: z.string().optional(),
|
|
252
|
-
children: z
|
|
274
|
+
children: z
|
|
275
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
276
|
+
.optional(),
|
|
253
277
|
});
|
|
254
278
|
|
|
255
279
|
export const AiResponsePropsSchema = z.object({
|
|
256
280
|
className: z.string().optional(), // Additional CSS classes
|
|
257
|
-
children: z
|
|
281
|
+
children: z
|
|
282
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
283
|
+
.optional(), // Child elements
|
|
258
284
|
});
|
|
259
285
|
|
|
260
286
|
export const AiShimmerPropsSchema = z.object({
|
|
@@ -270,7 +296,9 @@ export const AiStatusBadgePropsSchema = z.object({
|
|
|
270
296
|
label: z.string(), // Label text displayed in the badge.
|
|
271
297
|
status: z.enum(["idle", "running", "success", "error"]).optional(), // Current status — determines the status icon on the right.
|
|
272
298
|
info: z.string().optional(), // Additional info text (e.g. "2/3") shown after the label.
|
|
273
|
-
children: z
|
|
299
|
+
children: z
|
|
300
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
301
|
+
.optional(),
|
|
274
302
|
className: z.string().optional(),
|
|
275
303
|
id: z.string().optional(),
|
|
276
304
|
lang: z.string().optional(),
|
|
@@ -279,7 +307,9 @@ export const AiStatusBadgePropsSchema = z.object({
|
|
|
279
307
|
|
|
280
308
|
export const AiStreamingTextPropsSchema = z.object({
|
|
281
309
|
className: z.string().optional(), // Additional CSS classes
|
|
282
|
-
children: z
|
|
310
|
+
children: z
|
|
311
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
312
|
+
.optional(), // Child elements
|
|
283
313
|
});
|
|
284
314
|
|
|
285
315
|
export const AiSubagentPropsSchema = z.object({
|
|
@@ -291,7 +321,9 @@ export const AiSubagentPropsSchema = z.object({
|
|
|
291
321
|
icon: z.unknown().optional(), // Custom icon. Defaults to `RobotIcon`.
|
|
292
322
|
defaultExpanded: z.boolean().optional(), // Whether the subagent content is expanded by default.
|
|
293
323
|
open: z.boolean().optional(), // Controlled open state.
|
|
294
|
-
children: z
|
|
324
|
+
children: z
|
|
325
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
326
|
+
.optional(),
|
|
295
327
|
className: z.string().optional(),
|
|
296
328
|
id: z.string().optional(),
|
|
297
329
|
lang: z.string().optional(),
|
|
@@ -299,7 +331,9 @@ export const AiSubagentPropsSchema = z.object({
|
|
|
299
331
|
});
|
|
300
332
|
|
|
301
333
|
export const AiSuggestionsPropsSchema = z.object({
|
|
302
|
-
children: z
|
|
334
|
+
children: z
|
|
335
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
336
|
+
.optional(),
|
|
303
337
|
className: z.string().optional(),
|
|
304
338
|
id: z.string().optional(),
|
|
305
339
|
lang: z.string().optional(),
|
|
@@ -311,7 +345,9 @@ export const AiTaskListPropsSchema = z.object({
|
|
|
311
345
|
title: z.string().optional(), // Optional title above the task list.
|
|
312
346
|
icon: z.unknown().optional(), // Custom icon for the title area.
|
|
313
347
|
showProgress: z.boolean().optional(), // Show a progress summary (e.g. "3 / 7 done"). Default: `true`.
|
|
314
|
-
children: z
|
|
348
|
+
children: z
|
|
349
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
350
|
+
.optional(),
|
|
315
351
|
className: z.string().optional(),
|
|
316
352
|
id: z.string().optional(),
|
|
317
353
|
lang: z.string().optional(),
|
|
@@ -323,7 +359,9 @@ export const AiTimelinePropsSchema = z.object({
|
|
|
323
359
|
showNowMarker: z.boolean().optional(), // Whether to show a pulsing "now" marker at the live edge.
|
|
324
360
|
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).
|
|
325
361
|
density: z.enum(["comfortable", "compact"]).optional(), // Lane density variant.
|
|
326
|
-
children: z
|
|
362
|
+
children: z
|
|
363
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
364
|
+
.optional(), // Children should be `AiTimelineLane` components.
|
|
327
365
|
className: z.string().optional(),
|
|
328
366
|
id: z.string().optional(),
|
|
329
367
|
lang: z.string().optional(),
|
|
@@ -343,7 +381,9 @@ export const AiToolCallPropsSchema = z.object({
|
|
|
343
381
|
id: z.string().optional(),
|
|
344
382
|
lang: z.string().optional(),
|
|
345
383
|
title: z.string().optional(),
|
|
346
|
-
children: z
|
|
384
|
+
children: z
|
|
385
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
386
|
+
.optional(),
|
|
347
387
|
});
|
|
348
388
|
|
|
349
389
|
export const AiUsageBarPropsSchema = z.object({
|
|
@@ -353,7 +393,9 @@ export const AiUsageBarPropsSchema = z.object({
|
|
|
353
393
|
cost: z.number().optional(), // Estimated cost in USD.
|
|
354
394
|
modelId: z.string().optional(), // Model ID being used (shown as label).
|
|
355
395
|
icon: z.unknown().optional(), // Custom icon. Defaults to `LightningIcon`.
|
|
356
|
-
children: z
|
|
396
|
+
children: z
|
|
397
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
398
|
+
.optional(),
|
|
357
399
|
className: z.string().optional(),
|
|
358
400
|
id: z.string().optional(),
|
|
359
401
|
lang: z.string().optional(),
|
|
@@ -361,38 +403,73 @@ export const AiUsageBarPropsSchema = z.object({
|
|
|
361
403
|
});
|
|
362
404
|
|
|
363
405
|
export const BadgePropsSchema = z.object({
|
|
364
|
-
variant: z
|
|
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
|
|
365
419
|
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
366
|
-
children: z
|
|
420
|
+
children: z
|
|
421
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
422
|
+
.optional(), // Content rendered inside the badge.
|
|
367
423
|
icon: z.unknown().optional(), // Icon component rendered alongside the text.
|
|
368
424
|
iconPosition: z.enum(["left", "right"]).optional(), // Position of the icon relative to the text.
|
|
369
425
|
loading: z.boolean().optional(), // Shows a loading spinner, replacing the icon slot.
|
|
370
426
|
dot: z.enum(["green", "red", "yellow", "blue", "gray"]).optional(), // Renders a small colored status dot before the text.
|
|
371
|
-
tooltip: z
|
|
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.
|
|
372
430
|
href: z.string().optional(),
|
|
373
431
|
});
|
|
374
432
|
|
|
375
433
|
export const BannerPropsSchema = z.object({
|
|
376
|
-
icon: z
|
|
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`).
|
|
377
437
|
text: z.string().optional(),
|
|
378
|
-
children: z
|
|
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.
|
|
379
441
|
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
|
|
380
442
|
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
381
443
|
});
|
|
382
444
|
|
|
383
445
|
export const BreadcrumbsPropsSchema = z.object({
|
|
384
446
|
size: z.enum(["sm", "base"]).optional(), // Size of the breadcrumbs. - `"sm"` — Compact breadcrumbs for dense UIs - `"base"` — Default breadcrumbs size
|
|
385
|
-
children: z
|
|
447
|
+
children: z
|
|
448
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
449
|
+
.optional(),
|
|
386
450
|
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
387
451
|
});
|
|
388
452
|
|
|
389
453
|
export const ButtonPropsSchema = z.object({
|
|
390
454
|
shape: z.enum(["base", "square", "circle"]).optional(),
|
|
391
455
|
size: z.enum(["xs", "sm", "base", "lg"]).optional(),
|
|
392
|
-
variant: z
|
|
393
|
-
|
|
456
|
+
variant: z
|
|
457
|
+
.enum([
|
|
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(),
|
|
394
469
|
className: z.string().optional(),
|
|
395
|
-
icon: z
|
|
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.
|
|
396
473
|
loading: z.boolean().optional(), // Shows a loading spinner and disables interaction.
|
|
397
474
|
id: z.string().optional(),
|
|
398
475
|
lang: z.string().optional(),
|
|
@@ -405,8 +482,12 @@ export const ButtonPropsSchema = z.object({
|
|
|
405
482
|
|
|
406
483
|
export const CheckboxPropsSchema = z.object({
|
|
407
484
|
variant: z.enum(["default", "error"]).optional(), // Visual variant: "default" or "error" for validation failures (visual only, no error text)
|
|
408
|
-
label: z
|
|
409
|
-
|
|
485
|
+
label: z
|
|
486
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
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
|
|
410
491
|
controlFirst: z.boolean().optional(), // When true (default), checkbox appears before label. When false, label appears before checkbox.
|
|
411
492
|
checked: z.boolean().optional(), // Whether the checkbox is checked (controlled)
|
|
412
493
|
indeterminate: z.boolean().optional(), // Whether the checkbox is in indeterminate state
|
|
@@ -433,7 +514,9 @@ export const CodePropsSchema = z.object({
|
|
|
433
514
|
});
|
|
434
515
|
|
|
435
516
|
export const CollapsiblePropsSchema = z.object({
|
|
436
|
-
children: z
|
|
517
|
+
children: z
|
|
518
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
519
|
+
.optional(),
|
|
437
520
|
label: z.string(), // Text label displayed in the trigger button
|
|
438
521
|
open: z.boolean().optional(), // Whether the collapsible content is visible
|
|
439
522
|
className: z.string().optional(), // Additional CSS classes for the content panel
|
|
@@ -444,12 +527,20 @@ export const ComboboxPropsSchema = z.object({
|
|
|
444
527
|
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
|
|
445
528
|
items: z.array(z.unknown()), // Array of items to display in the dropdown
|
|
446
529
|
value: z.array(z.unknown()).optional(), // Currently selected value(s)
|
|
447
|
-
children: z
|
|
530
|
+
children: z
|
|
531
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
532
|
+
.optional(), // Combobox content (trigger, content, items)
|
|
448
533
|
className: z.string().optional(), // Additional CSS classes
|
|
449
|
-
label: z
|
|
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
|
|
450
537
|
required: z.boolean().optional(), // Whether the combobox is required
|
|
451
|
-
labelTooltip: z
|
|
452
|
-
|
|
538
|
+
labelTooltip: z
|
|
539
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
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
|
|
453
544
|
error: z.unknown().optional(), // Error message or validation error object
|
|
454
545
|
onValueChange: z.unknown().optional(), // Callback when selection changes
|
|
455
546
|
multiple: z.boolean().optional(), // Allow multiple selections
|
|
@@ -458,18 +549,24 @@ export const ComboboxPropsSchema = z.object({
|
|
|
458
549
|
|
|
459
550
|
export const CommandPalettePropsSchema = z.object({
|
|
460
551
|
open: z.boolean(), // Whether the dialog is open
|
|
461
|
-
children: z
|
|
552
|
+
children: z
|
|
553
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
554
|
+
.optional(), // Child content - typically one or more Panel components
|
|
462
555
|
});
|
|
463
556
|
|
|
464
557
|
export const DataGridPropsSchema = z.object({
|
|
465
558
|
layout: z.enum(["auto", "fixed"]).optional(),
|
|
466
559
|
className: z.string().optional(), // Additional CSS classes
|
|
467
|
-
children: z
|
|
560
|
+
children: z
|
|
561
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
562
|
+
.optional(), // Child elements
|
|
468
563
|
});
|
|
469
564
|
|
|
470
565
|
export const DatePickerPropsSchema = z.object({
|
|
471
566
|
className: z.string().optional(), // Additional CSS classes
|
|
472
|
-
children: z
|
|
567
|
+
children: z
|
|
568
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
569
|
+
.optional(), // Child elements
|
|
473
570
|
});
|
|
474
571
|
|
|
475
572
|
export const DateRangePickerPropsSchema = z.object({
|
|
@@ -483,7 +580,9 @@ export const DateRangePickerPropsSchema = z.object({
|
|
|
483
580
|
|
|
484
581
|
export const DialogPropsSchema = z.object({
|
|
485
582
|
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
486
|
-
children: z
|
|
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).
|
|
487
586
|
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
|
|
488
587
|
});
|
|
489
588
|
|
|
@@ -493,29 +592,43 @@ export const DropdownMenuPropsSchema = z.object({
|
|
|
493
592
|
|
|
494
593
|
export const EmptyPropsSchema = z.object({
|
|
495
594
|
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
|
|
496
|
-
icon: z
|
|
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`).
|
|
497
598
|
title: z.string(), // Primary heading text for the empty state.
|
|
498
599
|
description: z.string().optional(), // Secondary description text displayed below the title.
|
|
499
600
|
commandLine: z.string().optional(), // Shell command displayed in a copyable code block.
|
|
500
|
-
contents: z
|
|
601
|
+
contents: z
|
|
602
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
603
|
+
.optional(), // Additional content (buttons, links) rendered below the description.
|
|
501
604
|
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
502
605
|
});
|
|
503
606
|
|
|
504
607
|
export const FieldPropsSchema = z.object({
|
|
505
608
|
controlFirst: z.boolean().optional(), // When `true`, places the control before the label (for checkbox/switch layouts).
|
|
506
|
-
children: z
|
|
507
|
-
|
|
609
|
+
children: z
|
|
610
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
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.
|
|
508
615
|
required: z.boolean().optional(), // When explicitly `false`, shows gray "(optional)" text after the label. When `true` or `undefined`, no indicator is shown.
|
|
509
|
-
labelTooltip: z
|
|
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.
|
|
510
619
|
error: z.unknown().optional(), // Validation error with a message and a browser `ValidityState` match key.
|
|
511
|
-
description: z
|
|
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).
|
|
512
623
|
});
|
|
513
624
|
|
|
514
625
|
export const FiltersPropsSchema = z.object({
|
|
515
626
|
filters: z.array(z.unknown()), // Active filters array
|
|
516
627
|
fields: z.array(z.unknown()), // Available field configurations
|
|
517
628
|
size: z.enum(["sm", "default", "lg"]).optional(), // Size variant for filter pills
|
|
518
|
-
trigger: z
|
|
629
|
+
trigger: z
|
|
630
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
631
|
+
.optional(), // Custom trigger element (replaces default "Add Filter" button)
|
|
519
632
|
showSearchInput: z.boolean().optional(), // Whether to show a search input in the add filter menu
|
|
520
633
|
allowMultiple: z.boolean().optional(), // Whether to allow multiple filters on the same field
|
|
521
634
|
enableShortcut: z.boolean().optional(), // Whether to enable keyboard shortcut (Cmd/Ctrl + K) to open add filter
|
|
@@ -527,20 +640,40 @@ export const FiltersPropsSchema = z.object({
|
|
|
527
640
|
});
|
|
528
641
|
|
|
529
642
|
export const GridPropsSchema = z.object({
|
|
530
|
-
children: z
|
|
643
|
+
children: z
|
|
644
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
645
|
+
.optional(), // Grid items to render.
|
|
531
646
|
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
532
647
|
id: z.string().optional(),
|
|
533
648
|
lang: z.string().optional(),
|
|
534
649
|
title: z.string().optional(),
|
|
535
650
|
mobileDivider: z.boolean().optional(), // Show dividers between grid items on mobile (only works with `"4up"` variant).
|
|
536
651
|
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
|
|
537
|
-
variant: z
|
|
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
|
|
538
665
|
});
|
|
539
666
|
|
|
540
667
|
export const InputPropsSchema = z.object({
|
|
541
|
-
label: z
|
|
542
|
-
|
|
543
|
-
|
|
668
|
+
label: z
|
|
669
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
670
|
+
.optional(), // Label content for the input (enables Field wrapper) - can be a string or any React node
|
|
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
|
|
544
677
|
error: z.unknown().optional(), // Error message or validation error object
|
|
545
678
|
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
|
|
546
679
|
variant: z.enum(["default", "error"]).optional(), // Visual variant. - `"default"` — Standard input - `"error"` — Error state for validation failures
|
|
@@ -549,23 +682,31 @@ export const InputPropsSchema = z.object({
|
|
|
549
682
|
export const InputAreaPropsSchema = z.object({});
|
|
550
683
|
|
|
551
684
|
export const LabelPropsSchema = z.object({
|
|
552
|
-
children: z
|
|
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.
|
|
553
688
|
showOptional: z.boolean().optional(), // When `true`, shows gray "(optional)" text after the label.
|
|
554
|
-
tooltip: z
|
|
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.
|
|
555
692
|
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
556
693
|
htmlFor: z.string().optional(), // The id of the form element this label is associated with
|
|
557
694
|
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.
|
|
558
695
|
});
|
|
559
696
|
|
|
560
697
|
export const LayerCardPropsSchema = z.object({
|
|
561
|
-
children: z
|
|
698
|
+
children: z
|
|
699
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
700
|
+
.optional(),
|
|
562
701
|
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
563
702
|
});
|
|
564
703
|
|
|
565
704
|
export const LinkPropsSchema = z.object({
|
|
566
705
|
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
|
|
567
706
|
to: z.string().optional(),
|
|
568
|
-
children: z
|
|
707
|
+
children: z
|
|
708
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
709
|
+
.optional(),
|
|
569
710
|
className: z.string().optional(),
|
|
570
711
|
id: z.string().optional(),
|
|
571
712
|
lang: z.string().optional(),
|
|
@@ -577,8 +718,22 @@ export const LinkPropsSchema = z.object({
|
|
|
577
718
|
ping: z.string().optional(),
|
|
578
719
|
target: z.unknown().optional(),
|
|
579
720
|
type: z.string().optional(),
|
|
580
|
-
referrerPolicy: z
|
|
581
|
-
|
|
721
|
+
referrerPolicy: z
|
|
722
|
+
.enum([
|
|
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.
|
|
582
737
|
});
|
|
583
738
|
|
|
584
739
|
export const LoaderPropsSchema = z.object({
|
|
@@ -621,8 +776,12 @@ export const PromptInputPropsSchema = z.object({
|
|
|
621
776
|
globalDrop: z.boolean().optional(), // When true, accept drops anywhere on document. Default false.
|
|
622
777
|
maxFiles: z.number().optional(), // Maximum number of attached files.
|
|
623
778
|
maxFileSize: z.number().optional(), // Maximum file size in bytes.
|
|
624
|
-
backLayer: z
|
|
625
|
-
|
|
779
|
+
backLayer: z
|
|
780
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
781
|
+
.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.
|
|
782
|
+
backLayerTitle: z
|
|
783
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
784
|
+
.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
785
|
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.
|
|
627
786
|
backLayerOpen: z.boolean().optional(), // Controls whether the back layer is visible. Pair with `onBackLayerOpenChange` for a controlled pattern.
|
|
628
787
|
autoOpenBackLayerWhen: z.boolean().optional(), // Automatically opens the back layer when this condition is true. Useful for showing pending approvals/questions without manual toggle.
|
|
@@ -630,15 +789,21 @@ export const PromptInputPropsSchema = z.object({
|
|
|
630
789
|
id: z.string().optional(),
|
|
631
790
|
lang: z.string().optional(),
|
|
632
791
|
title: z.string().optional(),
|
|
633
|
-
children: z
|
|
792
|
+
children: z
|
|
793
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
794
|
+
.optional(),
|
|
634
795
|
});
|
|
635
796
|
|
|
636
797
|
export const RadioPropsSchema = z.object({
|
|
637
798
|
legend: z.string(), // Legend text for the group (required for accessibility)
|
|
638
|
-
children: z
|
|
799
|
+
children: z
|
|
800
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
801
|
+
.optional(), // Child Radio.Item components
|
|
639
802
|
orientation: z.enum(["vertical", "horizontal"]).optional(), // Layout direction of the radio items
|
|
640
803
|
error: z.string().optional(), // Error message for the group
|
|
641
|
-
description: z
|
|
804
|
+
description: z
|
|
805
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
806
|
+
.optional(), // Helper text for the group
|
|
642
807
|
value: z.string().optional(), // Value of the radio that should be selected (controlled)
|
|
643
808
|
disabled: z.boolean().optional(), // Whether all radios in the group are disabled
|
|
644
809
|
controlPosition: z.enum(["start", "end"]).optional(), // Position of radio control relative to label: "start" (default) puts radio before label, "end" puts label before radio
|
|
@@ -648,16 +813,24 @@ export const RadioPropsSchema = z.object({
|
|
|
648
813
|
|
|
649
814
|
export const SelectPropsSchema = z.object({
|
|
650
815
|
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
651
|
-
label: z
|
|
816
|
+
label: z
|
|
817
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
818
|
+
.optional(), // Label content for the select (enables Field wrapper) — can be a string or any React node.
|
|
652
819
|
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.
|
|
653
820
|
placeholder: z.string().optional(), // Placeholder text shown when no value is selected.
|
|
654
821
|
loading: z.boolean().optional(), // When `true`, shows a skeleton loader in place of the selected value.
|
|
655
822
|
disabled: z.boolean().optional(), // Whether the select is disabled.
|
|
656
823
|
required: z.boolean().optional(), // Whether the select is required. When `false`, shows "(optional)" text.
|
|
657
|
-
labelTooltip: z
|
|
824
|
+
labelTooltip: z
|
|
825
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
826
|
+
.optional(), // Tooltip content displayed next to the label via an info icon.
|
|
658
827
|
value: z.string().optional(), // Currently selected value (controlled mode).
|
|
659
|
-
children: z
|
|
660
|
-
|
|
828
|
+
children: z
|
|
829
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
830
|
+
.optional(), // `Select.Option` elements to render in the dropdown.
|
|
831
|
+
description: z
|
|
832
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
833
|
+
.optional(), // Helper text displayed below the select.
|
|
661
834
|
error: z.unknown().optional(), // Error message string or validation error object with `match` key.
|
|
662
835
|
onValueChange: z.unknown().optional(), // Callback when selection changes
|
|
663
836
|
defaultValue: z.string().optional(), // Initial value for uncontrolled mode
|
|
@@ -679,13 +852,21 @@ export const SensitiveInputPropsSchema = z.object({
|
|
|
679
852
|
id: z.string().optional(),
|
|
680
853
|
lang: z.string().optional(),
|
|
681
854
|
title: z.string().optional(),
|
|
682
|
-
children: z
|
|
855
|
+
children: z
|
|
856
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
857
|
+
.optional(),
|
|
683
858
|
value: z.string().optional(), // Controlled value
|
|
684
859
|
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
|
|
685
860
|
variant: z.enum(["default", "error"]).optional(), // Style variant of the input. - `"default"` — Default input appearance - `"error"` — Error state for validation failures
|
|
686
|
-
label: z
|
|
687
|
-
|
|
688
|
-
|
|
861
|
+
label: z
|
|
862
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
863
|
+
.optional(), // Label content for the input (enables Field wrapper and sets masked state label) - can be a string or any React node
|
|
864
|
+
labelTooltip: z
|
|
865
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
866
|
+
.optional(), // Tooltip content to display next to the label via an info icon
|
|
867
|
+
description: z
|
|
868
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
869
|
+
.optional(), // Helper text displayed below the input
|
|
689
870
|
error: z.unknown().optional(), // Error message or validation error object
|
|
690
871
|
});
|
|
691
872
|
|
|
@@ -699,12 +880,16 @@ export const SidebarPropsSchema = z.object({
|
|
|
699
880
|
defaultWidth: z.number().optional(), // Initial width in pixels when resizable.
|
|
700
881
|
minWidth: z.number().optional(), // Minimum width in pixels when resizing.
|
|
701
882
|
maxWidth: z.number().optional(), // Maximum width in pixels when resizing.
|
|
702
|
-
children: z
|
|
883
|
+
children: z
|
|
884
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
885
|
+
.optional(), // Content — typically `<Sidebar>` + main content.
|
|
703
886
|
className: z.string().optional(), // Additional CSS classes for the wrapper div.
|
|
704
887
|
});
|
|
705
888
|
|
|
706
889
|
export const SignalFlareAILogoPropsSchema = z.object({
|
|
707
|
-
children: z
|
|
890
|
+
children: z
|
|
891
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
892
|
+
.optional(),
|
|
708
893
|
className: z.string().optional(),
|
|
709
894
|
height: z.unknown().optional(),
|
|
710
895
|
id: z.string().optional(),
|
|
@@ -718,7 +903,23 @@ export const SignalFlareAILogoPropsSchema = z.object({
|
|
|
718
903
|
accentHeight: z.unknown().optional(),
|
|
719
904
|
accumulate: z.enum(["none", "sum"]).optional(),
|
|
720
905
|
additive: z.enum(["replace", "sum"]).optional(),
|
|
721
|
-
alignmentBaseline: z
|
|
906
|
+
alignmentBaseline: z
|
|
907
|
+
.enum([
|
|
908
|
+
"auto",
|
|
909
|
+
"baseline",
|
|
910
|
+
"before-edge",
|
|
911
|
+
"text-before-edge",
|
|
912
|
+
"middle",
|
|
913
|
+
"central",
|
|
914
|
+
"after-edge",
|
|
915
|
+
"text-after-edge",
|
|
916
|
+
"ideographic",
|
|
917
|
+
"alphabetic",
|
|
918
|
+
"hanging",
|
|
919
|
+
"mathematical",
|
|
920
|
+
"inherit",
|
|
921
|
+
])
|
|
922
|
+
.optional(),
|
|
722
923
|
allowReorder: z.enum(["no", "yes"]).optional(),
|
|
723
924
|
alphabetic: z.unknown().optional(),
|
|
724
925
|
amplitude: z.unknown().optional(),
|
|
@@ -742,7 +943,9 @@ export const SignalFlareAILogoPropsSchema = z.object({
|
|
|
742
943
|
clipPathUnits: z.unknown().optional(),
|
|
743
944
|
clipRule: z.unknown().optional(),
|
|
744
945
|
colorInterpolation: z.unknown().optional(),
|
|
745
|
-
colorInterpolationFilters: z
|
|
946
|
+
colorInterpolationFilters: z
|
|
947
|
+
.enum(["auto", "sRGB", "linearRGB", "inherit"])
|
|
948
|
+
.optional(),
|
|
746
949
|
colorProfile: z.unknown().optional(),
|
|
747
950
|
colorRendering: z.unknown().optional(),
|
|
748
951
|
contentScriptType: z.unknown().optional(),
|
|
@@ -757,7 +960,23 @@ export const SignalFlareAILogoPropsSchema = z.object({
|
|
|
757
960
|
direction: z.unknown().optional(),
|
|
758
961
|
display: z.unknown().optional(),
|
|
759
962
|
divisor: z.unknown().optional(),
|
|
760
|
-
dominantBaseline: z
|
|
963
|
+
dominantBaseline: z
|
|
964
|
+
.enum([
|
|
965
|
+
"auto",
|
|
966
|
+
"use-script",
|
|
967
|
+
"no-change",
|
|
968
|
+
"reset-size",
|
|
969
|
+
"ideographic",
|
|
970
|
+
"alphabetic",
|
|
971
|
+
"hanging",
|
|
972
|
+
"mathematical",
|
|
973
|
+
"central",
|
|
974
|
+
"middle",
|
|
975
|
+
"text-after-edge",
|
|
976
|
+
"text-before-edge",
|
|
977
|
+
"inherit",
|
|
978
|
+
])
|
|
979
|
+
.optional(),
|
|
761
980
|
dur: z.unknown().optional(),
|
|
762
981
|
dx: z.unknown().optional(),
|
|
763
982
|
dy: z.unknown().optional(),
|
|
@@ -962,16 +1181,26 @@ export const SignalFlareAILogoPropsSchema = z.object({
|
|
|
962
1181
|
|
|
963
1182
|
export const SparklinePropsSchema = z.object({
|
|
964
1183
|
className: z.string().optional(), // Additional CSS classes
|
|
965
|
-
children: z
|
|
1184
|
+
children: z
|
|
1185
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
1186
|
+
.optional(), // Child elements
|
|
966
1187
|
});
|
|
967
1188
|
|
|
968
1189
|
export const StatCardPropsSchema = z.object({
|
|
969
1190
|
size: z.enum(["sm", "base"]).optional(), // Size of the card. Defaults to `"base"`.
|
|
970
|
-
label: z
|
|
971
|
-
|
|
972
|
-
|
|
1191
|
+
label: z
|
|
1192
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
1193
|
+
.optional(), // Short descriptive label (e.g. `"Active users"`).
|
|
1194
|
+
value: z
|
|
1195
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
1196
|
+
.optional(), // Primary value to emphasise (pre-formatted).
|
|
1197
|
+
hint: z
|
|
1198
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
1199
|
+
.optional(), // Optional secondary text displayed under the value.
|
|
973
1200
|
delta: z.unknown().optional(), // Optional change indicator (arrow + number + label).
|
|
974
|
-
trend: z
|
|
1201
|
+
trend: z
|
|
1202
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
1203
|
+
.optional(), // Optional content slot rendered on the right-hand side — typically a `Sparkline` showing the metric's trend.
|
|
975
1204
|
loading: z.boolean().optional(), // When `true`, renders a skeleton placeholder in place of value + delta.
|
|
976
1205
|
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
977
1206
|
});
|
|
@@ -979,13 +1208,19 @@ export const StatCardPropsSchema = z.object({
|
|
|
979
1208
|
export const SurfacePropsSchema = z.object({
|
|
980
1209
|
as: z.unknown().optional(), // The HTML element type to render as (e.g. `"div"`, `"section"`, `"article"`).
|
|
981
1210
|
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
982
|
-
children: z
|
|
1211
|
+
children: z
|
|
1212
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
1213
|
+
.optional(), // Content rendered inside the surface.
|
|
983
1214
|
});
|
|
984
1215
|
|
|
985
1216
|
export const SwitchPropsSchema = z.object({
|
|
986
1217
|
variant: z.enum(["default", "error"]).optional(), // Visual variant: "default" or "error" for validation failures (visual only, no error text)
|
|
987
|
-
label: z
|
|
988
|
-
|
|
1218
|
+
label: z
|
|
1219
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
1220
|
+
.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.
|
|
1221
|
+
labelTooltip: z
|
|
1222
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
1223
|
+
.optional(), // Tooltip content to display next to the label via an info icon
|
|
989
1224
|
required: z.boolean().optional(), // Whether the switch is required. When explicitly false, shows "(optional)" text after the label.
|
|
990
1225
|
controlFirst: z.boolean().optional(), // When true (default), switch appears before label. When false, label appears before switch.
|
|
991
1226
|
size: z.enum(["sm", "base", "lg"]).optional(),
|
|
@@ -1006,7 +1241,9 @@ export const TablePropsSchema = z.object({
|
|
|
1006
1241
|
layout: z.enum(["auto", "fixed"]).optional(),
|
|
1007
1242
|
variant: z.enum(["default", "selected"]).optional(),
|
|
1008
1243
|
className: z.string().optional(), // Additional CSS classes
|
|
1009
|
-
children: z
|
|
1244
|
+
children: z
|
|
1245
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
1246
|
+
.optional(), // Child elements
|
|
1010
1247
|
});
|
|
1011
1248
|
|
|
1012
1249
|
export const TabsPropsSchema = z.object({
|
|
@@ -1022,11 +1259,25 @@ export const TabsPropsSchema = z.object({
|
|
|
1022
1259
|
});
|
|
1023
1260
|
|
|
1024
1261
|
export const TextPropsSchema = z.object({
|
|
1025
|
-
variant: z
|
|
1262
|
+
variant: z
|
|
1263
|
+
.enum([
|
|
1264
|
+
"heading1",
|
|
1265
|
+
"heading2",
|
|
1266
|
+
"heading3",
|
|
1267
|
+
"body",
|
|
1268
|
+
"secondary",
|
|
1269
|
+
"success",
|
|
1270
|
+
"error",
|
|
1271
|
+
"mono",
|
|
1272
|
+
"mono-secondary",
|
|
1273
|
+
])
|
|
1274
|
+
.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
|
|
1026
1275
|
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
|
|
1027
1276
|
bold: z.boolean().optional(), // Whether to use bold font weight (only applies to body variants).
|
|
1028
1277
|
as: z.unknown().optional(), // The HTML element type to render as (e.g. `"span"`, `"p"`, `"h1"`). Auto-selected based on variant if omitted.
|
|
1029
|
-
children: z
|
|
1278
|
+
children: z
|
|
1279
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
1280
|
+
.optional(), // Text content.
|
|
1030
1281
|
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
1282
|
reserveLines: z.number().optional(), // For `wrap="reserve"`: reserve this many lines of height. If omitted, measures current content to determine line count.
|
|
1032
1283
|
});
|
|
@@ -1051,14 +1302,24 @@ export const ThemeTogglePropsSchema = z.object({
|
|
|
1051
1302
|
export const ToastyPropsSchema = z.object({
|
|
1052
1303
|
variant: z.enum(["default", "error", "warning"]).optional(),
|
|
1053
1304
|
className: z.string().optional(), // Additional CSS classes
|
|
1054
|
-
children: z
|
|
1305
|
+
children: z
|
|
1306
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
1307
|
+
.optional(), // Child elements
|
|
1055
1308
|
});
|
|
1056
1309
|
|
|
1057
1310
|
export const TooltipPropsSchema = z.object({
|
|
1058
1311
|
side: z.enum(["top", "bottom", "left", "right"]).optional(),
|
|
1059
1312
|
className: z.string().optional(), // Additional CSS classes
|
|
1060
|
-
children: z
|
|
1061
|
-
|
|
1313
|
+
children: z
|
|
1314
|
+
.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema])
|
|
1315
|
+
.optional(), // Child elements
|
|
1316
|
+
content: z.union([
|
|
1317
|
+
z.string(),
|
|
1318
|
+
z.number(),
|
|
1319
|
+
z.boolean(),
|
|
1320
|
+
z.null(),
|
|
1321
|
+
DynamicValueSchema,
|
|
1322
|
+
]), // Content to display in the tooltip
|
|
1062
1323
|
});
|
|
1063
1324
|
|
|
1064
1325
|
// =============================================================================
|
|
@@ -1068,7 +1329,74 @@ export const TooltipPropsSchema = z.object({
|
|
|
1068
1329
|
/**
|
|
1069
1330
|
* All valid component type names
|
|
1070
1331
|
*/
|
|
1071
|
-
export type KumoComponentType =
|
|
1332
|
+
export type KumoComponentType =
|
|
1333
|
+
| "AiActions"
|
|
1334
|
+
| "AiAgentCard"
|
|
1335
|
+
| "AiApproval"
|
|
1336
|
+
| "AiCodeBlock"
|
|
1337
|
+
| "AiConversation"
|
|
1338
|
+
| "AiInfoBanner"
|
|
1339
|
+
| "AiMessage"
|
|
1340
|
+
| "AiMissionHeader"
|
|
1341
|
+
| "AiPartGroup"
|
|
1342
|
+
| "AiQuestion"
|
|
1343
|
+
| "AiReasoning"
|
|
1344
|
+
| "AiResponse"
|
|
1345
|
+
| "AiShimmer"
|
|
1346
|
+
| "AiStatusBadge"
|
|
1347
|
+
| "AiStreamingText"
|
|
1348
|
+
| "AiSubagent"
|
|
1349
|
+
| "AiSuggestions"
|
|
1350
|
+
| "AiTaskList"
|
|
1351
|
+
| "AiTimeline"
|
|
1352
|
+
| "AiToolCall"
|
|
1353
|
+
| "AiUsageBar"
|
|
1354
|
+
| "Badge"
|
|
1355
|
+
| "Banner"
|
|
1356
|
+
| "Breadcrumbs"
|
|
1357
|
+
| "Button"
|
|
1358
|
+
| "Checkbox"
|
|
1359
|
+
| "ClipboardText"
|
|
1360
|
+
| "Code"
|
|
1361
|
+
| "Collapsible"
|
|
1362
|
+
| "Combobox"
|
|
1363
|
+
| "CommandPalette"
|
|
1364
|
+
| "DataGrid"
|
|
1365
|
+
| "DatePicker"
|
|
1366
|
+
| "DateRangePicker"
|
|
1367
|
+
| "Dialog"
|
|
1368
|
+
| "DropdownMenu"
|
|
1369
|
+
| "Empty"
|
|
1370
|
+
| "Field"
|
|
1371
|
+
| "Filters"
|
|
1372
|
+
| "Grid"
|
|
1373
|
+
| "Input"
|
|
1374
|
+
| "InputArea"
|
|
1375
|
+
| "Label"
|
|
1376
|
+
| "LayerCard"
|
|
1377
|
+
| "Link"
|
|
1378
|
+
| "Loader"
|
|
1379
|
+
| "MenuBar"
|
|
1380
|
+
| "Meter"
|
|
1381
|
+
| "Pagination"
|
|
1382
|
+
| "Popover"
|
|
1383
|
+
| "PromptInput"
|
|
1384
|
+
| "Radio"
|
|
1385
|
+
| "Select"
|
|
1386
|
+
| "SensitiveInput"
|
|
1387
|
+
| "Sidebar"
|
|
1388
|
+
| "SignalFlareAILogo"
|
|
1389
|
+
| "Sparkline"
|
|
1390
|
+
| "StatCard"
|
|
1391
|
+
| "Surface"
|
|
1392
|
+
| "Switch"
|
|
1393
|
+
| "Table"
|
|
1394
|
+
| "Tabs"
|
|
1395
|
+
| "Text"
|
|
1396
|
+
| "TextRoll"
|
|
1397
|
+
| "ThemeToggle"
|
|
1398
|
+
| "Toasty"
|
|
1399
|
+
| "Tooltip";
|
|
1072
1400
|
|
|
1073
1401
|
export const KumoComponentTypeSchema = z.enum([
|
|
1074
1402
|
"AiActions",
|
|
@@ -1249,10 +1577,22 @@ export type UITree = z.infer<typeof UITreeSchema>;
|
|
|
1249
1577
|
/**
|
|
1250
1578
|
* Validate an element's props against its component schema
|
|
1251
1579
|
*/
|
|
1252
|
-
export function validateElementProps(
|
|
1253
|
-
|
|
1580
|
+
export function validateElementProps(
|
|
1581
|
+
element: UIElement
|
|
1582
|
+
): SafeParseResult<unknown> {
|
|
1583
|
+
const schema =
|
|
1584
|
+
ComponentPropsSchemas[element.type as keyof typeof ComponentPropsSchemas];
|
|
1254
1585
|
if (!schema) {
|
|
1255
|
-
return {
|
|
1586
|
+
return {
|
|
1587
|
+
success: false,
|
|
1588
|
+
error: new z.ZodError([
|
|
1589
|
+
{
|
|
1590
|
+
code: "custom",
|
|
1591
|
+
message: `Unknown component type: ${element.type}`,
|
|
1592
|
+
path: ["type"],
|
|
1593
|
+
},
|
|
1594
|
+
]),
|
|
1595
|
+
};
|
|
1256
1596
|
}
|
|
1257
1597
|
return schema.safeParse(element.props);
|
|
1258
1598
|
}
|
|
@@ -1267,4 +1607,72 @@ export function validateUITree(tree: unknown): SafeParseResult<UITree> {
|
|
|
1267
1607
|
/**
|
|
1268
1608
|
* List of all component names (for catalog generation)
|
|
1269
1609
|
*/
|
|
1270
|
-
export const SF_COMPONENT_NAMES = [
|
|
1610
|
+
export const SF_COMPONENT_NAMES = [
|
|
1611
|
+
"AiActions",
|
|
1612
|
+
"AiAgentCard",
|
|
1613
|
+
"AiApproval",
|
|
1614
|
+
"AiCodeBlock",
|
|
1615
|
+
"AiConversation",
|
|
1616
|
+
"AiInfoBanner",
|
|
1617
|
+
"AiMessage",
|
|
1618
|
+
"AiMissionHeader",
|
|
1619
|
+
"AiPartGroup",
|
|
1620
|
+
"AiQuestion",
|
|
1621
|
+
"AiReasoning",
|
|
1622
|
+
"AiResponse",
|
|
1623
|
+
"AiShimmer",
|
|
1624
|
+
"AiStatusBadge",
|
|
1625
|
+
"AiStreamingText",
|
|
1626
|
+
"AiSubagent",
|
|
1627
|
+
"AiSuggestions",
|
|
1628
|
+
"AiTaskList",
|
|
1629
|
+
"AiTimeline",
|
|
1630
|
+
"AiToolCall",
|
|
1631
|
+
"AiUsageBar",
|
|
1632
|
+
"Badge",
|
|
1633
|
+
"Banner",
|
|
1634
|
+
"Breadcrumbs",
|
|
1635
|
+
"Button",
|
|
1636
|
+
"Checkbox",
|
|
1637
|
+
"ClipboardText",
|
|
1638
|
+
"Code",
|
|
1639
|
+
"Collapsible",
|
|
1640
|
+
"Combobox",
|
|
1641
|
+
"CommandPalette",
|
|
1642
|
+
"DataGrid",
|
|
1643
|
+
"DatePicker",
|
|
1644
|
+
"DateRangePicker",
|
|
1645
|
+
"Dialog",
|
|
1646
|
+
"DropdownMenu",
|
|
1647
|
+
"Empty",
|
|
1648
|
+
"Field",
|
|
1649
|
+
"Filters",
|
|
1650
|
+
"Grid",
|
|
1651
|
+
"Input",
|
|
1652
|
+
"InputArea",
|
|
1653
|
+
"Label",
|
|
1654
|
+
"LayerCard",
|
|
1655
|
+
"Link",
|
|
1656
|
+
"Loader",
|
|
1657
|
+
"MenuBar",
|
|
1658
|
+
"Meter",
|
|
1659
|
+
"Pagination",
|
|
1660
|
+
"Popover",
|
|
1661
|
+
"PromptInput",
|
|
1662
|
+
"Radio",
|
|
1663
|
+
"Select",
|
|
1664
|
+
"SensitiveInput",
|
|
1665
|
+
"Sidebar",
|
|
1666
|
+
"SignalFlareAILogo",
|
|
1667
|
+
"Sparkline",
|
|
1668
|
+
"StatCard",
|
|
1669
|
+
"Surface",
|
|
1670
|
+
"Switch",
|
|
1671
|
+
"Table",
|
|
1672
|
+
"Tabs",
|
|
1673
|
+
"Text",
|
|
1674
|
+
"TextRoll",
|
|
1675
|
+
"ThemeToggle",
|
|
1676
|
+
"Toasty",
|
|
1677
|
+
"Tooltip",
|
|
1678
|
+
] as const;
|