@signalflare-ai/ui 0.5.0 → 1.1.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 +129 -1
- package/ai/USAGE.md +64 -0
- package/ai/component-registry.json +563 -619
- package/ai/component-registry.md +224 -85
- package/ai/schemas.ts +545 -102
- package/bin/sf.js +2 -3
- package/dist/.build-complete +1 -1
- package/dist/ai/schemas.d.ts +1659 -5532
- package/dist/ai/schemas.d.ts.map +1 -1
- package/dist/{ai-actions-DG1dhDMP.js → ai-actions-DSVeQn4e.js} +1 -1
- package/dist/{ai-actions-DG1dhDMP.js.map → ai-actions-DSVeQn4e.js.map} +1 -1
- package/dist/{ai-agent-card-BbtL4NII.js → ai-agent-card-BXHwhWAU.js} +1 -1
- package/dist/{ai-agent-card-BbtL4NII.js.map → ai-agent-card-BXHwhWAU.js.map} +1 -1
- package/dist/{ai-approval-Mb7-BY6i.js → ai-approval-aa0qvjFN.js} +1 -1
- package/dist/{ai-approval-Mb7-BY6i.js.map → ai-approval-aa0qvjFN.js.map} +1 -1
- package/dist/{ai-code-block-BI_z0UVR.js → ai-code-block-BgtIxtZZ.js} +1 -1
- package/dist/{ai-code-block-BI_z0UVR.js.map → ai-code-block-BgtIxtZZ.js.map} +1 -1
- package/dist/{ai-conversation-DYtExcrw.js → ai-conversation-CArP7C8K.js} +1 -1
- package/dist/{ai-conversation-DYtExcrw.js.map → ai-conversation-CArP7C8K.js.map} +1 -1
- package/dist/{ai-info-banner-BpzauUAY.js → ai-info-banner-uFxHHwBA.js} +1 -1
- package/dist/{ai-info-banner-BpzauUAY.js.map → ai-info-banner-uFxHHwBA.js.map} +1 -1
- package/dist/{ai-message-CV8SBoHM.js → ai-message-BjnFznXy.js} +1 -1
- package/dist/{ai-message-CV8SBoHM.js.map → ai-message-BjnFznXy.js.map} +1 -1
- package/dist/{ai-mission-header-ByYkJ6YP.js → ai-mission-header-08__gULL.js} +1 -1
- package/dist/{ai-mission-header-ByYkJ6YP.js.map → ai-mission-header-08__gULL.js.map} +1 -1
- package/dist/ai-part-group-DBtgTgAn.js +277 -0
- package/dist/ai-part-group-DBtgTgAn.js.map +1 -0
- package/dist/ai-prompt-input-CuluUzpf.js +1996 -0
- package/dist/ai-prompt-input-CuluUzpf.js.map +1 -0
- package/dist/{ai-question-Dp1g9k2o.js → ai-question-CHHoDJMg.js} +1 -1
- package/dist/{ai-question-Dp1g9k2o.js.map → ai-question-CHHoDJMg.js.map} +1 -1
- package/dist/{ai-reasoning-UAmNx_LD.js → ai-reasoning-CnL6ZSr5.js} +84 -5
- package/dist/ai-reasoning-CnL6ZSr5.js.map +1 -0
- package/dist/{ai-response-BWoVsNQG.js → ai-response-BEUg3xvd.js} +13 -16
- package/dist/ai-response-BEUg3xvd.js.map +1 -0
- package/dist/{ai-shimmer-BpOmfonu.js → ai-shimmer-By5_L05p.js} +1 -1
- package/dist/{ai-shimmer-BpOmfonu.js.map → ai-shimmer-By5_L05p.js.map} +1 -1
- package/dist/{ai-status-badge-WhbKVeqn.js → ai-status-badge-BGYGWYF6.js} +1 -1
- package/dist/{ai-status-badge-WhbKVeqn.js.map → ai-status-badge-BGYGWYF6.js.map} +1 -1
- package/dist/{ai-streaming-text-ClL7FwvD.js → ai-streaming-text-CMfoThV0.js} +1 -1
- package/dist/{ai-streaming-text-ClL7FwvD.js.map → ai-streaming-text-CMfoThV0.js.map} +1 -1
- package/dist/{ai-subagent-BruGN1UE.js → ai-subagent-DcPRqkAA.js} +1 -1
- package/dist/{ai-subagent-BruGN1UE.js.map → ai-subagent-DcPRqkAA.js.map} +1 -1
- package/dist/{ai-suggestion-CNsCZj5P.js → ai-suggestion-MgeCg5Ar.js} +1 -1
- package/dist/{ai-suggestion-CNsCZj5P.js.map → ai-suggestion-MgeCg5Ar.js.map} +1 -1
- package/dist/{ai-task-list-B9CpMDYN.js → ai-task-list-Da9zIm00.js} +9 -12
- package/dist/ai-task-list-Da9zIm00.js.map +1 -0
- package/dist/{ai-timeline-Bb5ntsr3.js → ai-timeline-Cwu045IR.js} +1 -1
- package/dist/ai-timeline-Cwu045IR.js.map +1 -0
- package/dist/{ai-tool-BGH8nQ_D.js → ai-tool-Cn1O4xjP.js} +168 -11
- package/dist/ai-tool-Cn1O4xjP.js.map +1 -0
- package/dist/{ai-usage-bar-BI-p-JBk.js → ai-usage-bar-DjS12DMp.js} +1 -1
- package/dist/{ai-usage-bar-BI-p-JBk.js.map → ai-usage-bar-DjS12DMp.js.map} +1 -1
- package/dist/catalog.js +3 -3
- package/dist/catalog.js.map +1 -1
- package/dist/{chart-Bes4MN3C.js → chart-BK3sVPnD.js} +442 -248
- package/dist/chart-BK3sVPnD.js.map +1 -0
- package/dist/{checkbox-CPX7lBaU.js → checkbox-DYhUmZNw.js} +4 -4
- package/dist/checkbox-DYhUmZNw.js.map +1 -0
- package/dist/{clipboard-text-92YeCybc.js → clipboard-text-ssybngLw.js} +2 -2
- package/dist/{clipboard-text-92YeCybc.js.map → clipboard-text-ssybngLw.js.map} +1 -1
- package/dist/{code-DE1Yy1Cu.js → code-Cx-QSoOT.js} +2 -2
- package/dist/{code-DE1Yy1Cu.js.map → code-Cx-QSoOT.js.map} +1 -1
- package/dist/{combobox-B0bLdsX8.js → combobox-C0iW6a0r.js} +2 -2
- package/dist/{combobox-B0bLdsX8.js.map → combobox-C0iW6a0r.js.map} +1 -1
- package/dist/command-line/cli.js +22 -27
- package/dist/{command-palette-CBTY8EiF.js → command-palette-DGzioeki.js} +2 -2
- package/dist/command-palette-DGzioeki.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 +3 -0
- package/dist/components/ai-prompt-input.js +2 -2
- 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/chart.js +3 -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/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/dropdown.js +1 -1
- package/dist/components/filters.js +1 -1
- package/dist/components/input.js +2 -2
- package/dist/components/link.js +2 -2
- package/dist/components/link.js.map +1 -1
- package/dist/components/pagination.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/sparkline.js +3 -0
- package/dist/components/stat-card.js +3 -0
- package/dist/components/table.js +1 -1
- package/dist/components/text-roll.js +3 -0
- package/dist/components/theme-toggle.js +1 -1
- package/dist/components/use-agent-harness.js +1 -1
- package/dist/{data-grid-UJ9ja5cu.js → data-grid-CG76N_hK.js} +6 -6
- package/dist/data-grid-CG76N_hK.js.map +1 -0
- package/dist/{date-picker-ebekkC3R.js → date-picker-Dqg9L4xu.js} +2 -2
- package/dist/{date-picker-ebekkC3R.js.map → date-picker-Dqg9L4xu.js.map} +1 -1
- package/dist/{dist-BNlyONdD.js → dist-1-gcEL2L.js} +224 -135
- package/dist/dist-1-gcEL2L.js.map +1 -0
- package/dist/{dropdown-J5T4pHaR.js → dropdown-qnEYRFXZ.js} +2 -2
- package/dist/{dropdown-J5T4pHaR.js.map → dropdown-qnEYRFXZ.js.map} +1 -1
- package/dist/echart-DURZEyai.js +314 -0
- package/dist/echart-DURZEyai.js.map +1 -0
- package/dist/{filters-BdBogf7D.js → filters-Bw_U6ZTx.js} +5 -5
- package/dist/filters-Bw_U6ZTx.js.map +1 -0
- package/dist/flow-BRsYUCJa.js.map +1 -1
- package/dist/genui.js +2 -2
- package/dist/genui.js.map +1 -1
- package/dist/index.js +45 -42
- package/dist/index.js.map +1 -1
- package/dist/{input-BxQAnXki.js → input-DXYUjGgD.js} +2 -2
- package/dist/{input-BxQAnXki.js.map → input-DXYUjGgD.js.map} +1 -1
- package/dist/{input-Cn25I4o5.js → input-DddtBN-g.js} +2 -2
- package/dist/{input-Cn25I4o5.js.map → input-DddtBN-g.js.map} +1 -1
- package/dist/layer-card-BME0eljh.js.map +1 -1
- package/dist/{pagination-C_YqCy8l.js → pagination-BVqdlONY.js} +2 -2
- package/dist/{pagination-C_YqCy8l.js.map → pagination-BVqdlONY.js.map} +1 -1
- package/dist/primitives/otp-field.js +2 -0
- package/dist/primitives.js +1 -0
- package/dist/{radio-B7zg1wUI.js → radio-BNSwOt3B.js} +3 -3
- package/dist/radio-BNSwOt3B.js.map +1 -0
- package/dist/{select-9p721G00.js → select-1w2aebGQ.js} +2 -2
- package/dist/select-1w2aebGQ.js.map +1 -0
- package/dist/{sensitive-input-D5je2NLl.js → sensitive-input-82Cez3vj.js} +2 -2
- package/dist/{sensitive-input-D5je2NLl.js.map → sensitive-input-82Cez3vj.js.map} +1 -1
- package/dist/{sidebar-DOwBrq57.js → sidebar-CAsCmSpM.js} +3 -3
- package/dist/sidebar-CAsCmSpM.js.map +1 -0
- package/dist/sparkline-DdbeM4Ai.js +108 -0
- package/dist/sparkline-DdbeM4Ai.js.map +1 -0
- package/dist/src/blocks/agent-harness/agent-harness.d.ts +30 -9
- package/dist/src/blocks/agent-harness/agent-harness.d.ts.map +1 -1
- package/dist/src/blocks/agent-harness/agent-harness.stories.tsx +114 -0
- package/dist/src/blocks/agent-harness/agent-harness.tsx +144 -63
- package/dist/src/blocks/commander/commander.stories.tsx +31 -0
- package/dist/src/blocks/dashboard-grid/dashboard-grid.d.ts +48 -0
- package/dist/src/blocks/dashboard-grid/dashboard-grid.d.ts.map +1 -0
- package/dist/src/blocks/dashboard-grid/dashboard-grid.stories.tsx +19 -0
- package/dist/src/blocks/dashboard-grid/dashboard-grid.tsx +110 -0
- package/dist/src/blocks/dashboard-grid/index.d.ts +2 -0
- package/dist/src/blocks/dashboard-grid/index.d.ts.map +1 -0
- package/dist/src/blocks/delete-resource/delete-resource.stories.tsx +31 -0
- package/dist/src/blocks/map-block/map-block.stories.tsx +41 -0
- package/dist/src/blocks/metrics-overview/index.d.ts +2 -0
- package/dist/src/blocks/metrics-overview/index.d.ts.map +1 -0
- package/dist/src/blocks/metrics-overview/metrics-overview.d.ts +67 -0
- package/dist/src/blocks/metrics-overview/metrics-overview.d.ts.map +1 -0
- package/dist/src/blocks/metrics-overview/metrics-overview.stories.tsx +26 -0
- package/dist/src/blocks/metrics-overview/metrics-overview.tsx +139 -0
- package/dist/src/blocks/page-header/page-header.stories.tsx +56 -0
- package/dist/src/blocks/resource-list/resource-list.stories.tsx +31 -0
- package/dist/src/catalog/catalog.d.ts +1 -1
- package/dist/src/catalog/index.d.ts +1 -1
- package/dist/src/catalog/types.d.ts +1 -1
- package/dist/src/command-line/build-cli.d.ts +1 -1
- package/dist/src/command-line/cli.d.ts +1 -1
- package/dist/src/command-line/commands/add.d.ts +1 -1
- package/dist/src/command-line/commands/add.d.ts.map +1 -1
- package/dist/src/command-line/commands/ai.d.ts.map +1 -1
- package/dist/src/command-line/commands/blocks.d.ts +1 -1
- package/dist/src/command-line/commands/blocks.d.ts.map +1 -1
- package/dist/src/command-line/commands/doc.d.ts +1 -1
- package/dist/src/command-line/commands/doc.d.ts.map +1 -1
- package/dist/src/command-line/commands/ls.d.ts +1 -1
- package/dist/src/command-line/commands/ls.d.ts.map +1 -1
- package/dist/src/command-line/commands/migrate.d.ts +3 -3
- package/dist/src/command-line/commands/migrate.d.ts.map +1 -1
- package/dist/src/command-line/utils/config.d.ts +1 -1
- package/dist/src/command-line/utils/transformer.d.ts +1 -1
- package/dist/src/components/ai-part-group/ai-part-group.d.ts +134 -0
- package/dist/src/components/ai-part-group/ai-part-group.d.ts.map +1 -0
- package/dist/src/components/ai-part-group/index.d.ts +2 -0
- package/dist/src/components/ai-part-group/index.d.ts.map +1 -0
- package/dist/src/components/ai-prompt-input/ai-prompt-input.d.ts +241 -8
- 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 +49 -0
- package/dist/src/components/ai-prompt-input/controller.d.ts.map +1 -0
- package/dist/src/components/ai-prompt-input/index.d.ts +3 -1
- package/dist/src/components/ai-prompt-input/index.d.ts.map +1 -1
- package/dist/src/components/ai-prompt-input/types.d.ts +102 -0
- package/dist/src/components/ai-prompt-input/types.d.ts.map +1 -0
- package/dist/src/components/ai-reasoning/ai-reasoning.d.ts +17 -1
- package/dist/src/components/ai-reasoning/ai-reasoning.d.ts.map +1 -1
- package/dist/src/components/ai-response/ai-response.d.ts +1 -2
- package/dist/src/components/ai-response/ai-response.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 +17 -1
- package/dist/src/components/ai-tool/ai-tool.d.ts.map +1 -1
- package/dist/src/components/chart/area-chart.d.ts +69 -0
- package/dist/src/components/chart/area-chart.d.ts.map +1 -0
- package/dist/src/components/chart/bar-chart.d.ts +60 -0
- package/dist/src/components/chart/bar-chart.d.ts.map +1 -0
- package/dist/src/components/chart/color.d.ts +56 -0
- package/dist/src/components/chart/color.d.ts.map +1 -1
- package/dist/src/components/chart/echart.d.ts.map +1 -1
- package/dist/src/components/chart/index.d.ts +5 -0
- package/dist/src/components/chart/index.d.ts.map +1 -1
- package/dist/src/components/chart/pie-chart.d.ts +64 -0
- package/dist/src/components/chart/pie-chart.d.ts.map +1 -0
- package/dist/src/components/chart/scatter-chart.d.ts +57 -0
- package/dist/src/components/chart/scatter-chart.d.ts.map +1 -0
- package/dist/src/components/chart/stacked-bar-chart.d.ts +59 -0
- package/dist/src/components/chart/stacked-bar-chart.d.ts.map +1 -0
- package/dist/src/components/chart/timeseries-chart.d.ts.map +1 -1
- package/dist/src/components/code/code.d.ts +1 -1
- package/dist/src/components/command-palette/command-palette.d.ts +1 -1
- package/dist/src/components/data-grid/data-grid.d.ts.map +1 -1
- package/dist/src/components/data-grid/index.d.ts +1 -1
- package/dist/src/components/data-grid/index.d.ts.map +1 -1
- package/dist/src/components/data-grid/types.d.ts.map +1 -1
- package/dist/src/components/date-picker/date-picker.d.ts +2 -2
- package/dist/src/components/filters/filters.d.ts.map +1 -1
- package/dist/src/components/filters/helpers.d.ts.map +1 -1
- package/dist/src/components/filters/types.d.ts.map +1 -1
- package/dist/src/components/layer-card/layer-card.d.ts +1 -1
- package/dist/src/components/link/link.d.ts +2 -2
- package/dist/src/components/radio/radio.d.ts +1 -1
- package/dist/src/components/select/select.d.ts +1 -1
- package/dist/src/components/sidebar/sidebar.d.ts +2 -2
- package/dist/src/components/sparkline/index.d.ts +2 -0
- package/dist/src/components/sparkline/index.d.ts.map +1 -0
- package/dist/src/components/sparkline/sparkline.d.ts +52 -0
- package/dist/src/components/sparkline/sparkline.d.ts.map +1 -0
- package/dist/src/components/stat-card/index.d.ts +2 -0
- package/dist/src/components/{ai-loader → stat-card}/index.d.ts.map +1 -1
- package/dist/src/components/stat-card/stat-card.d.ts +80 -0
- package/dist/src/components/stat-card/stat-card.d.ts.map +1 -0
- package/dist/src/components/text-roll/index.d.ts +2 -0
- package/dist/src/components/text-roll/index.d.ts.map +1 -0
- package/dist/src/components/text-roll/text-roll.d.ts +49 -0
- package/dist/src/components/text-roll/text-roll.d.ts.map +1 -0
- package/dist/src/components/toast/toast.d.ts.map +1 -1
- package/dist/src/components/use-agent-harness/use-agent-harness.d.ts +2 -2
- package/dist/src/genui/genui.d.ts.map +1 -1
- package/dist/src/index.d.ts +5 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/primitives/index.d.ts +1 -0
- package/dist/src/primitives/index.d.ts.map +1 -1
- package/dist/src/primitives/otp-field.d.ts +13 -0
- package/dist/src/primitives/otp-field.d.ts.map +1 -0
- package/dist/src/registry/index.d.ts +1 -1
- package/dist/src/registry/types.d.ts +1 -1
- package/dist/stat-card-CEZscNh8.js +103 -0
- package/dist/stat-card-CEZscNh8.js.map +1 -0
- package/dist/styles/sf-binding.css +28 -62
- package/dist/styles/sf-standalone.css +2 -2
- package/dist/styles/shadcn.css +120 -0
- package/dist/styles/theme-blue-tint.css +98 -0
- package/dist/styles/theme-fedramp.css +3 -12
- package/dist/styles/theme-minimal.css +26 -104
- package/dist/styles/theme-sf.css +96 -114
- package/dist/{table-CIMx0Oq0.js → table-Rv4JMy0B.js} +2 -2
- package/dist/{table-CIMx0Oq0.js.map → table-Rv4JMy0B.js.map} +1 -1
- package/dist/text-roll-BZ3I1umc.js +79 -0
- package/dist/text-roll-BZ3I1umc.js.map +1 -0
- package/dist/{theme-toggle-Dpgnoj_Q.js → theme-toggle-Bhu681D7.js} +1 -1
- package/dist/{theme-toggle-Dpgnoj_Q.js.map → theme-toggle-Bhu681D7.js.map} +1 -1
- package/dist/{use-agent-harness-DZzcn96L.js → use-agent-harness-BMyF8pTq.js} +5 -5
- package/dist/use-agent-harness-BMyF8pTq.js.map +1 -0
- package/package.json +48 -19
- package/scripts/component-registry/discovery.ts +2 -2
- package/scripts/component-registry/index.ts +3 -3
- package/scripts/component-registry/props-filter.ts +1 -1
- package/scripts/component-registry/utils.ts +5 -5
- package/scripts/component-registry/variant-parser.ts +124 -19
- package/scripts/convert-demos-to-stories.ts +253 -0
- package/scripts/css-build.ts +4 -3
- package/scripts/generate-primitives.ts +11 -3
- package/scripts/theme-generator/config.ts +339 -71
- package/scripts/theme-generator/generate-css.ts +17 -3
- package/scripts/theme-generator/index.ts +3 -3
- package/scripts/theme-generator/migrate.ts +1 -1
- package/dist/ai-loader-Cr3eQkNS.js +0 -134
- package/dist/ai-loader-Cr3eQkNS.js.map +0 -1
- package/dist/ai-prompt-input-Bo1YuJly.js +0 -769
- package/dist/ai-prompt-input-Bo1YuJly.js.map +0 -1
- package/dist/ai-reasoning-UAmNx_LD.js.map +0 -1
- package/dist/ai-response-BWoVsNQG.js.map +0 -1
- package/dist/ai-task-list-B9CpMDYN.js.map +0 -1
- package/dist/ai-timeline-Bb5ntsr3.js.map +0 -1
- package/dist/ai-tool-BGH8nQ_D.js.map +0 -1
- package/dist/chart-Bes4MN3C.js.map +0 -1
- package/dist/checkbox-CPX7lBaU.js.map +0 -1
- package/dist/command-palette-CBTY8EiF.js.map +0 -1
- package/dist/components/ai-loader.js +0 -3
- package/dist/data-grid-UJ9ja5cu.js.map +0 -1
- package/dist/dist-BNlyONdD.js.map +0 -1
- package/dist/filters-BdBogf7D.js.map +0 -1
- package/dist/radio-B7zg1wUI.js.map +0 -1
- package/dist/select-9p721G00.js.map +0 -1
- package/dist/sidebar-DOwBrq57.js.map +0 -1
- package/dist/src/components/ai-loader/ai-loader.d.ts +0 -44
- package/dist/src/components/ai-loader/ai-loader.d.ts.map +0 -1
- package/dist/src/components/ai-loader/index.d.ts +0 -2
- package/dist/styles/theme-navigator.css +0 -137
- package/dist/use-agent-harness-DZzcn96L.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,11 +1,139 @@
|
|
|
1
1
|
# @signalflare-ai/ui
|
|
2
2
|
|
|
3
|
+
## 1.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 76871cf: Add first-class reference tags to the prompt input.
|
|
8
|
+
|
|
9
|
+
- New `PromptInputTag` data type and `tags` field on `PromptInputRequestContext`.
|
|
10
|
+
- New controller helpers: `addTags`, `removeTag`, `clearTags`, and `insertTag` (writes to both `text` and `tags`).
|
|
11
|
+
- New UI primitives: `PromptInputTag`, `PromptInputTags`, `PromptInputAddTagButton`.
|
|
12
|
+
- New `PromptInputEditor` primitive: textarea with inline reference badges, `@`-trigger picker (caret-anchored, keyboard nav), and `onReferenceSearch` / `references` props.
|
|
13
|
+
- Submit payload now includes `tags` alongside `text` and `files`; `resetRequest()` clears tags.
|
|
14
|
+
|
|
15
|
+
## 1.0.0
|
|
16
|
+
|
|
17
|
+
### Major Changes
|
|
18
|
+
|
|
19
|
+
- ffb8245: **Remove `AiLoader` component.**
|
|
20
|
+
|
|
21
|
+
`AiLoader` and its `./components/ai-loader` subpath export have been removed. Use `AiShimmer`, `AiStreamingText`, or the `Loader` primitive depending on the use case.
|
|
22
|
+
|
|
23
|
+
**Migration:**
|
|
24
|
+
|
|
25
|
+
- Replace `import { AiLoader } from "@signalflare-ai/ui"` with `import { Loader } from "@signalflare-ai/ui"` for a generic spinner, or `AiShimmer` for AI-specific loading affordance.
|
|
26
|
+
- Remove any deep imports from `@signalflare-ai/ui/components/ai-loader`.
|
|
27
|
+
|
|
28
|
+
### Minor Changes
|
|
29
|
+
|
|
30
|
+
- ffb8245: Extend `AiPartGroup` and ship a titled live state + conversation helpers.
|
|
31
|
+
|
|
32
|
+
- Streaming now renders a persistent title row with a spinner, step count, and
|
|
33
|
+
caret — the same footprint as the frozen summary, so settling doesn't shift
|
|
34
|
+
layout.
|
|
35
|
+
- New `groupParts(parts)` helper splits a message's parts into
|
|
36
|
+
alternating `text` / `activity` chunks so narrative text between tool work
|
|
37
|
+
starts a new group.
|
|
38
|
+
- `AgentHarness` now accepts `groupActivity` to render per-message activity
|
|
39
|
+
(thinking, OM, top-level tool calls) inside an `AiPartGroup` with a
|
|
40
|
+
rolling window while streaming and a frozen summary on completion.
|
|
41
|
+
- Added a conversation demo on the `AiPartGroup` docs page showing grouped
|
|
42
|
+
activity composed inside `AiMessage` bubbles with text-broken groups.
|
|
43
|
+
|
|
44
|
+
- ffb8245: Add `AiPartGroup` for grouping streaming ephemeral activity in chat messages.
|
|
45
|
+
|
|
46
|
+
- Renders the most recent `max` (default 3) ephemeral children during streaming;
|
|
47
|
+
older rows fall off the top.
|
|
48
|
+
- Once the parent passes `complete`, writes a snapshot keyed by `groupKey` and
|
|
49
|
+
collapses to a static frozen summary line — ephemeral children unmount entirely.
|
|
50
|
+
- Re-renders after completion always render the cached snapshot, so scroll-back
|
|
51
|
+
into a virtualized chat list never re-fires animations or `useEffect`s.
|
|
52
|
+
|
|
53
|
+
Also visually aligns `AiReasoning variant="ephemeral"` with `AiToolCall variant="ephemeral"`:
|
|
54
|
+
single status symbol in the same leading slot (spinner while streaming → check on
|
|
55
|
+
settle), unified caret, no decorative reasoning icon.
|
|
56
|
+
|
|
57
|
+
- ffb8245: **Theme overhaul + shadcn compatibility layer.**
|
|
58
|
+
|
|
59
|
+
- Default `sf` theme replaced with an accessible neutral palette based on the former `minimal` (WCAG 2.1 AA on all text tokens; stronger focus ring).
|
|
60
|
+
- Former `sf` visuals (blue-tinted dark surfaces) preserved as `data-theme="blue-tint"`.
|
|
61
|
+
- `minimal` theme kept as its own opt-in (`data-theme="minimal"`) — equivalent to the new default.
|
|
62
|
+
- `theme-navigator.css` rewritten to alias shadcn CSS variables (`--background`, `--foreground`, `--card`, `--primary`, `--muted`, `--border`, `--ring`, etc.) to the corresponding SF tokens. Dropping SF into a shadcn/TanStack app now restyles those components with the SF palette automatically.
|
|
63
|
+
- `ai/USAGE.md` (surfaced via `sf ai`) documents the compatibility layer, the chart-color fallback, and the shadcn-CLI `:root` pitfall.
|
|
64
|
+
|
|
65
|
+
**Migration notes:**
|
|
66
|
+
|
|
67
|
+
- Apps relying on the prior default dark palette should add `data-theme="blue-tint"` to their root element.
|
|
68
|
+
- Apps that installed shadcn components should delete any `:root { --background: …; --foreground: …; … }` block written by the shadcn CLI — the SF theme now provides those variables.
|
|
69
|
+
|
|
70
|
+
- ffb8245: Add `ephemeral` variant to `AiToolCall` and `AiReasoning`.
|
|
71
|
+
|
|
72
|
+
- `variant="ephemeral"` renders a compact single-status row that auto-dismisses
|
|
73
|
+
`dismissDelay` ms (default 800) after the call/stream settles.
|
|
74
|
+
- Errors and user-expanded rows auto-pin and stay visible.
|
|
75
|
+
- New props on both components: `dismissDelay`, `persist`, `onDismiss`.
|
|
76
|
+
- Existing `default`, `inline`, and `minimal` variants are unchanged.
|
|
77
|
+
|
|
78
|
+
- ffb8245: Add `PromptInputModelSelect` — compact toolbar-styled model picker (Base UI Select under the hood) that can be bound to `requestContext.model` via the prompt input controller or controlled explicitly.
|
|
79
|
+
|
|
80
|
+
`AgentHarness`:
|
|
81
|
+
|
|
82
|
+
- New `availableModels` prop renders a `PromptInputModelSelect` in the toolbar.
|
|
83
|
+
- Removed `showMode` / `showModel` props — mode and model now render only as interactive selectors (via `availableModes` / `availableModels`). The old plain-text fallback labels and the unused `getModelDisplayName` helper are gone.
|
|
84
|
+
|
|
85
|
+
- e939e4f: **Shadcn compatibility layer is now opt-in and theme-aware.**
|
|
86
|
+
|
|
87
|
+
The shadcn variable bridge (formerly `theme-navigator.css`, auto-imported by `sf-binding.css`) has been moved to a dedicated opt-in stylesheet: `@signalflare-ai/ui/styles/shadcn`.
|
|
88
|
+
|
|
89
|
+
**Why:** The previous bridge shipped to all consumers unconditionally and contained hardcoded OKLCH literals for `--success`, `--chart-1..5`, and Sugar-High `--sh-*` tokens that did **not** track the active SignalFlare theme.
|
|
90
|
+
|
|
91
|
+
**What changed:**
|
|
92
|
+
|
|
93
|
+
- **New tokens in `theme-sf.css`:** `--color-sf-success`, `--color-sf-chart-1` through `--color-sf-chart-5`, and `--color-sf-syntax-{keyword,identifier,string,comment,jsxliterals,property,entity,sign}` — defined per-theme so they shift correctly with `data-theme`.
|
|
94
|
+
- **New stylesheet:** `@signalflare-ai/ui/styles/shadcn` is pure `var(--color-sf-*)` aliasing — no hardcoded literals. Imports it explicitly from your global stylesheet.
|
|
95
|
+
- **`sf-binding.css` no longer auto-imports the bridge.** Consumers who don't need shadcn-style tokens get a smaller bundle and a strict SignalFlare-only token surface.
|
|
96
|
+
|
|
97
|
+
**Migration:**
|
|
98
|
+
|
|
99
|
+
If you use shadcn-style classes (`bg-primary`, `text-foreground`, `border-border`, etc.) — for example with TanStack examples, Streamdown code blocks, or shadcn components — add the opt-in import after the main SignalFlare styles:
|
|
100
|
+
|
|
101
|
+
```css
|
|
102
|
+
@import "@signalflare-ai/ui/styles";
|
|
103
|
+
@import "@signalflare-ai/ui/styles/shadcn";
|
|
104
|
+
@import "tailwindcss";
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
If you only use SignalFlare tokens (`bg-sf-base`, `text-sf-default`, etc.), no change is needed.
|
|
108
|
+
|
|
109
|
+
- ffb8245: Add `TextRoll` — letter-by-letter rotate-X roll animation for short labels
|
|
110
|
+
that change over time. Wraps the text in an `aria-hidden` visual stack with a
|
|
111
|
+
screen-reader-only copy so a11y tools always read the real content.
|
|
112
|
+
|
|
113
|
+
Used internally by `AiPartGroup` to animate the streaming title when the
|
|
114
|
+
derived reasoning snippet changes step-to-step.
|
|
115
|
+
|
|
116
|
+
### Patch Changes
|
|
117
|
+
|
|
118
|
+
- e939e4f: **Branding sweep:** updated LICENSE copyright to SignalFlare AI, Inc., swept residual "SF" prose references in JSDoc, console output, and AI prompts to "SignalFlare", and updated example URLs (`cloudflare.com` → `signalflare.ai`) in `Link` JSDoc and tests. Code identifiers (`SF_COMPONENT_NAMES`), the `sf` CLI command, and `sf-*` CSS tokens are unchanged.
|
|
119
|
+
|
|
120
|
+
## 0.5.1
|
|
121
|
+
|
|
122
|
+
### Patch Changes
|
|
123
|
+
|
|
124
|
+
- d73a525: Verify Trusted Publishing and provenance attestation
|
|
125
|
+
|
|
126
|
+
This is a test release to verify the CI workflow correctly uses:
|
|
127
|
+
|
|
128
|
+
- Trusted Publishing (OIDC token exchange with npm)
|
|
129
|
+
- Automatic provenance generation
|
|
130
|
+
- No manual 2FA required
|
|
131
|
+
|
|
3
132
|
## 0.5.0
|
|
4
133
|
|
|
5
134
|
### Minor Changes
|
|
6
135
|
|
|
7
136
|
- d85265a: Added Filters and DataGrid components
|
|
8
|
-
|
|
9
137
|
- **Filters**: New filter component with text, select, multiselect, and custom filter types. Includes keyboard shortcuts, i18n support, and operator selection.
|
|
10
138
|
- **DataGrid**: Full-featured data grid built on @tanstack/react-table with sorting, column visibility, row selection, pagination, and resizable columns.
|
|
11
139
|
- Added documentation pages and demos for both components.
|
package/ai/USAGE.md
CHANGED
|
@@ -30,6 +30,70 @@ import { Button, Input, Dialog } from "@signalflare-ai/ui";
|
|
|
30
30
|
3. **Merge classes with `cn()`** — import from `@signalflare-ai/ui` and use it to combine class names.
|
|
31
31
|
4. **Compound components** — many components use a dot-notation API: `<Dialog.Root>`, `<Dialog.Trigger>`, etc.
|
|
32
32
|
|
|
33
|
+
## Using With shadcn / TanStack / Other Libraries
|
|
34
|
+
|
|
35
|
+
SignalFlare ships a compatibility layer at `@signalflare-ai/ui/styles/shadcn` that aliases the standard shadcn CSS variables (`--background`, `--primary`, `--border`, etc.) to SignalFlare tokens via `var()` references. This means shadcn-style classes used by TanStack examples, shadcn components, and similar libraries render with the SignalFlare palette — and follow any active `data-theme` automatically because they resolve sf tokens at use time.
|
|
36
|
+
|
|
37
|
+
It is **opt-in**. If you don't use shadcn components, you don't pay the cost:
|
|
38
|
+
|
|
39
|
+
```css
|
|
40
|
+
@import "@signalflare-ai/ui/styles";
|
|
41
|
+
@import "@signalflare-ai/ui/styles/shadcn";
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Aliases provided
|
|
45
|
+
|
|
46
|
+
| shadcn class | Aliased to |
|
|
47
|
+
| ------------------------- | -------------------- |
|
|
48
|
+
| `bg-background` | `bg-sf-base` |
|
|
49
|
+
| `text-foreground` | `text-sf-default` |
|
|
50
|
+
| `bg-card` | `bg-sf-elevated` |
|
|
51
|
+
| `text-card-foreground` | `text-sf-default` |
|
|
52
|
+
| `bg-primary` | `bg-sf-contrast` |
|
|
53
|
+
| `text-primary-foreground` | `text-sf-inverse` |
|
|
54
|
+
| `bg-muted` | `bg-sf-tint` |
|
|
55
|
+
| `text-muted-foreground` | `text-sf-subtle` |
|
|
56
|
+
| `bg-accent` | `bg-sf-fill` |
|
|
57
|
+
| `bg-destructive` | `bg-sf-danger` |
|
|
58
|
+
| `border-border` | `border-sf-line` |
|
|
59
|
+
| `border-input` | `border-sf-interact` |
|
|
60
|
+
| `ring-ring` | `ring-sf-ring` |
|
|
61
|
+
|
|
62
|
+
Both `bg-background` and `bg-sf-base` render identically. Theme switches (`data-theme="fedramp"` etc.) and dark mode (`data-mode="dark"`) affect both sets of classes consistently.
|
|
63
|
+
|
|
64
|
+
### Chart colors
|
|
65
|
+
|
|
66
|
+
Recharts / TanStack Chart utilities (`bg-chart-1` through `bg-chart-5`) alias to `--color-sf-chart-1..5`. Themes can override these tokens like any other, so setting `data-theme="fedramp"` (or any custom theme you wire up) restyles charts consistently. Override per app if you want theme-aware charts tied to your semantic palette:
|
|
67
|
+
|
|
68
|
+
```css
|
|
69
|
+
:root {
|
|
70
|
+
--chart-1: var(--color-sf-brand);
|
|
71
|
+
--chart-2: var(--color-sf-info);
|
|
72
|
+
--chart-3: var(--color-sf-warning);
|
|
73
|
+
--chart-4: var(--color-sf-danger);
|
|
74
|
+
--chart-5: var(--color-sf-success);
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### ⚠️ Common pitfall
|
|
79
|
+
|
|
80
|
+
When users run `npx shadcn@latest add <component>`, the shadcn CLI often appends a `:root { --background: …; --foreground: …; … }` block to the app's global CSS. **Delete that block** — the SF theme already provides those variables. If left in place, it will clobber the SF palette (later in the cascade = wins):
|
|
81
|
+
|
|
82
|
+
```css
|
|
83
|
+
/* ❌ Delete blocks like this that shadcn's CLI writes */
|
|
84
|
+
@layer base {
|
|
85
|
+
:root {
|
|
86
|
+
--background: oklch(1 0 0);
|
|
87
|
+
--foreground: oklch(0.145 0 0);
|
|
88
|
+
/* … */
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Preference order for new code
|
|
94
|
+
|
|
95
|
+
When writing new SF components or blocks, **prefer SF tokens** (`bg-sf-base`, `text-sf-default`). The shadcn aliases exist for compatibility with third-party code — not as a second canonical token set.
|
|
96
|
+
|
|
33
97
|
## Component Quick Reference
|
|
34
98
|
|
|
35
99
|
| Component | Category | Description | Key Props |
|