@signalflare-ai/ui 0.5.0 → 1.0.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 +117 -1
- package/ai/USAGE.md +64 -0
- package/ai/component-registry.json +492 -618
- package/ai/component-registry.md +167 -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-Dy1LfxPk.js +1541 -0
- package/dist/ai-prompt-input-Dy1LfxPk.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 +196 -7
- 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 +41 -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 +86 -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 +20 -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 +1 -1
- 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
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY
|
|
3
|
+
*
|
|
4
|
+
* This file is generated by the theme generator.
|
|
5
|
+
* To modify tokens, edit: scripts/theme-generator/config.ts
|
|
6
|
+
* Then run: bun run codegen:themes
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
[data-theme="blue-tint"] {
|
|
10
|
+
--text-color-sf-default: light-dark(oklch(0.145 0 0), oklch(0.985 0 0));
|
|
11
|
+
--text-color-sf-strong: light-dark(oklch(0.556 0 0), oklch(0.65 0 0));
|
|
12
|
+
--text-color-sf-subtle: light-dark(
|
|
13
|
+
var(--color-neutral-500, oklch(55.6% 0 0)),
|
|
14
|
+
var(--color-neutral-50, oklch(98.5% 0 0))
|
|
15
|
+
);
|
|
16
|
+
--text-color-sf-inactive: light-dark(
|
|
17
|
+
var(--color-neutral-400, oklch(70.8% 0 0)),
|
|
18
|
+
var(--color-neutral-600, oklch(70.8% 0 0))
|
|
19
|
+
);
|
|
20
|
+
--text-color-sf-danger: light-dark(
|
|
21
|
+
oklch(0.577 0.245 27.325),
|
|
22
|
+
oklch(0.55 0.18 25)
|
|
23
|
+
);
|
|
24
|
+
--text-color-sf-warning: light-dark(
|
|
25
|
+
var(--color-yellow-800, oklch(47.6% 0.114 61.907)),
|
|
26
|
+
var(--color-yellow-400, oklch(85.2% 0.199 91.936))
|
|
27
|
+
);
|
|
28
|
+
--color-sf-canvas: light-dark(
|
|
29
|
+
var(--color-neutral-50, oklch(0.985 0 0)),
|
|
30
|
+
var(--color-neutral-950, oklch(0.14 0 0))
|
|
31
|
+
);
|
|
32
|
+
--color-sf-base: light-dark(oklch(1 0 0), oklch(0.21 0.005 252));
|
|
33
|
+
--color-sf-elevated: light-dark(oklch(0.99 0 0), oklch(0.24 0.005 252));
|
|
34
|
+
--color-sf-recessed: light-dark(
|
|
35
|
+
var(--color-neutral-250, oklch(0.9 0 0)),
|
|
36
|
+
var(--color-neutral-750, oklch(0.31 0 0))
|
|
37
|
+
);
|
|
38
|
+
--color-sf-overlay: light-dark(
|
|
39
|
+
var(--color-neutral-50, oklch(98.5% 0 0)),
|
|
40
|
+
var(--color-neutral-950, oklch(0.1 0 0))
|
|
41
|
+
);
|
|
42
|
+
--color-sf-contrast: light-dark(oklch(0.205 0 0), oklch(0.55 0.01 40));
|
|
43
|
+
--color-sf-control: light-dark(
|
|
44
|
+
var(--color-white, #fff),
|
|
45
|
+
var(--color-neutral-900, oklch(21% 0.006 285.885))
|
|
46
|
+
);
|
|
47
|
+
--color-sf-tint: light-dark(
|
|
48
|
+
var(--color-neutral-150, oklch(0.96 0 0)),
|
|
49
|
+
var(--color-neutral-850, oklch(0.23 0 0))
|
|
50
|
+
);
|
|
51
|
+
--color-sf-fill: light-dark(
|
|
52
|
+
var(--color-neutral-200, oklch(92.2% 0 0)),
|
|
53
|
+
var(--color-neutral-800, oklch(26.9% 0 0))
|
|
54
|
+
);
|
|
55
|
+
--color-sf-fill-hover: light-dark(
|
|
56
|
+
var(--color-neutral-200, oklch(92.2% 0 0)),
|
|
57
|
+
var(--color-neutral-700, oklch(37.1% 0 0))
|
|
58
|
+
);
|
|
59
|
+
--color-sf-brand: light-dark(
|
|
60
|
+
oklch(0.5772 0.2324 260),
|
|
61
|
+
oklch(0.5772 0.2324 260)
|
|
62
|
+
);
|
|
63
|
+
--color-sf-brand-hover: light-dark(
|
|
64
|
+
var(--color-blue-700, oklch(48.8% 0.243 264.376)),
|
|
65
|
+
var(--color-blue-700, oklch(48.8% 0.243 264.376))
|
|
66
|
+
);
|
|
67
|
+
--color-sf-line: light-dark(oklch(0.922 0 0), oklch(0.3 0.015 250));
|
|
68
|
+
--color-sf-ring: light-dark(oklch(0.708 0 0), oklch(0.465 0.015 250));
|
|
69
|
+
--color-sf-tip-shadow: light-dark(
|
|
70
|
+
var(--color-gray-200, oklch(92.8% 0.006 264.531)),
|
|
71
|
+
transparent
|
|
72
|
+
);
|
|
73
|
+
--color-sf-tip-stroke: light-dark(
|
|
74
|
+
transparent,
|
|
75
|
+
var(--color-neutral-800, oklch(26.9% 0 0))
|
|
76
|
+
);
|
|
77
|
+
--color-sf-info: light-dark(
|
|
78
|
+
var(--color-blue-500, oklch(62.3% 0.214 259.815)),
|
|
79
|
+
var(--color-blue-700, oklch(48.8% 0.243 264.376))
|
|
80
|
+
);
|
|
81
|
+
--color-sf-info-tint: light-dark(
|
|
82
|
+
var(--color-blue-300, oklch(80.9% 0.105 251.813)),
|
|
83
|
+
var(--color-blue-900, oklch(37.9% 0.146 265.522))
|
|
84
|
+
);
|
|
85
|
+
--color-sf-warning: light-dark(
|
|
86
|
+
var(--color-yellow-500, oklch(79.5% 0.184 86.047)),
|
|
87
|
+
var(--color-yellow-700, oklch(55.4% 0.135 66.442))
|
|
88
|
+
);
|
|
89
|
+
--color-sf-warning-tint: light-dark(
|
|
90
|
+
var(--color-yellow-300, oklch(90.5% 0.182 98.111)),
|
|
91
|
+
var(--color-yellow-900, oklch(42.1% 0.095 57.708))
|
|
92
|
+
);
|
|
93
|
+
--color-sf-danger: light-dark(oklch(0.577 0.245 27.325), oklch(0.55 0.18 25));
|
|
94
|
+
--color-sf-danger-tint: light-dark(
|
|
95
|
+
var(--color-red-300, oklch(80.8% 0.114 19.571)),
|
|
96
|
+
var(--color-red-900, oklch(39.6% 0.141 25.723))
|
|
97
|
+
);
|
|
98
|
+
}
|
|
@@ -7,16 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
[data-theme="fedramp"] {
|
|
10
|
-
--color-sf-canvas: light-dark(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
);
|
|
14
|
-
--color-sf-base: light-dark(
|
|
15
|
-
#5b697c,
|
|
16
|
-
#5b697c
|
|
17
|
-
);
|
|
18
|
-
--color-sf-ring: light-dark(
|
|
19
|
-
#c8d4e5,
|
|
20
|
-
#c8d4e5
|
|
21
|
-
);
|
|
10
|
+
--color-sf-canvas: light-dark(#5b697c, #5b697c);
|
|
11
|
+
--color-sf-base: light-dark(#5b697c, #5b697c);
|
|
12
|
+
--color-sf-ring: light-dark(#c8d4e5, #c8d4e5);
|
|
22
13
|
}
|
|
@@ -7,114 +7,36 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
[data-theme="minimal"] {
|
|
10
|
-
--text-color-sf-strong: light-dark(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
);
|
|
14
|
-
--text-color-sf-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
);
|
|
18
|
-
--
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
);
|
|
22
|
-
--
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
);
|
|
26
|
-
--text-color-sf-warning: light-dark(
|
|
27
|
-
oklch(0.55 0.08 66),
|
|
28
|
-
oklch(0.65 0.08 66)
|
|
29
|
-
);
|
|
30
|
-
--color-sf-canvas: light-dark(
|
|
31
|
-
oklch(0.95 0 0),
|
|
32
|
-
oklch(0.10 0 0)
|
|
33
|
-
);
|
|
34
|
-
--color-sf-base: light-dark(
|
|
35
|
-
oklch(0.97 0 0),
|
|
36
|
-
oklch(0.14 0 0)
|
|
37
|
-
);
|
|
38
|
-
--color-sf-elevated: light-dark(
|
|
39
|
-
oklch(1 0 0),
|
|
40
|
-
oklch(0.22 0 0)
|
|
41
|
-
);
|
|
42
|
-
--color-sf-recessed: light-dark(
|
|
43
|
-
oklch(0.92 0 0),
|
|
44
|
-
oklch(0.10 0 0)
|
|
45
|
-
);
|
|
46
|
-
--color-sf-overlay: light-dark(
|
|
47
|
-
oklch(0.93 0 0),
|
|
48
|
-
oklch(0.10 0 0)
|
|
49
|
-
);
|
|
50
|
-
--color-sf-contrast: light-dark(
|
|
51
|
-
oklch(0.35 0 0),
|
|
52
|
-
oklch(0.75 0 0)
|
|
53
|
-
);
|
|
54
|
-
--color-sf-control: light-dark(
|
|
55
|
-
oklch(0.95 0 0),
|
|
56
|
-
oklch(0.17 0 0)
|
|
57
|
-
);
|
|
58
|
-
--color-sf-tint: light-dark(
|
|
59
|
-
oklch(0.94 0 0),
|
|
60
|
-
oklch(0.19 0 0)
|
|
61
|
-
);
|
|
62
|
-
--color-sf-fill: light-dark(
|
|
63
|
-
oklch(0.91 0 0),
|
|
64
|
-
oklch(0.27 0 0)
|
|
65
|
-
);
|
|
66
|
-
--color-sf-fill-hover: light-dark(
|
|
67
|
-
oklch(0.88 0 0),
|
|
68
|
-
oklch(0.31 0 0)
|
|
69
|
-
);
|
|
70
|
-
--color-sf-brand: light-dark(
|
|
71
|
-
oklch(0.55 0.06 260),
|
|
72
|
-
oklch(0.55 0.06 260)
|
|
73
|
-
);
|
|
10
|
+
--text-color-sf-strong: light-dark(oklch(0.5 0 0), oklch(0.55 0 0));
|
|
11
|
+
--text-color-sf-subtle: light-dark(oklch(0.55 0 0), oklch(0.45 0 0));
|
|
12
|
+
--text-color-sf-inactive: light-dark(oklch(0.65 0 0), oklch(0.35 0 0));
|
|
13
|
+
--text-color-sf-danger: light-dark(oklch(0.55 0.12 25), oklch(0.55 0.1 25));
|
|
14
|
+
--text-color-sf-warning: light-dark(oklch(0.55 0.08 66), oklch(0.65 0.08 66));
|
|
15
|
+
--color-sf-canvas: light-dark(oklch(0.95 0 0), oklch(0.1 0 0));
|
|
16
|
+
--color-sf-base: light-dark(oklch(0.97 0 0), oklch(0.14 0 0));
|
|
17
|
+
--color-sf-elevated: light-dark(oklch(1 0 0), oklch(0.22 0 0));
|
|
18
|
+
--color-sf-recessed: light-dark(oklch(0.92 0 0), oklch(0.1 0 0));
|
|
19
|
+
--color-sf-overlay: light-dark(oklch(0.93 0 0), oklch(0.1 0 0));
|
|
20
|
+
--color-sf-contrast: light-dark(oklch(0.35 0 0), oklch(0.75 0 0));
|
|
21
|
+
--color-sf-control: light-dark(oklch(0.95 0 0), oklch(0.17 0 0));
|
|
22
|
+
--color-sf-tint: light-dark(oklch(0.94 0 0), oklch(0.19 0 0));
|
|
23
|
+
--color-sf-fill: light-dark(oklch(0.91 0 0), oklch(0.27 0 0));
|
|
24
|
+
--color-sf-fill-hover: light-dark(oklch(0.88 0 0), oklch(0.31 0 0));
|
|
25
|
+
--color-sf-brand: light-dark(oklch(0.55 0.06 260), oklch(0.55 0.06 260));
|
|
74
26
|
--color-sf-brand-hover: light-dark(
|
|
75
27
|
oklch(0.48 0.05 264),
|
|
76
28
|
oklch(0.48 0.05 264)
|
|
77
29
|
);
|
|
78
|
-
--color-sf-line: light-dark(
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
);
|
|
82
|
-
--color-sf-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
);
|
|
86
|
-
--color-sf-
|
|
87
|
-
|
|
88
|
-
transparent
|
|
89
|
-
);
|
|
90
|
-
--color-sf-tip-stroke: light-dark(
|
|
91
|
-
transparent,
|
|
92
|
-
transparent
|
|
93
|
-
);
|
|
94
|
-
--color-sf-info: light-dark(
|
|
95
|
-
oklch(0.55 0.06 260),
|
|
96
|
-
oklch(0.55 0.06 260)
|
|
97
|
-
);
|
|
98
|
-
--color-sf-info-tint: light-dark(
|
|
99
|
-
oklch(0.94 0.01 260),
|
|
100
|
-
oklch(0.20 0.02 260)
|
|
101
|
-
);
|
|
102
|
-
--color-sf-warning: light-dark(
|
|
103
|
-
oklch(0.55 0.08 66),
|
|
104
|
-
oklch(0.65 0.08 66)
|
|
105
|
-
);
|
|
106
|
-
--color-sf-warning-tint: light-dark(
|
|
107
|
-
oklch(0.94 0.02 60),
|
|
108
|
-
oklch(0.22 0.03 60)
|
|
109
|
-
);
|
|
110
|
-
--color-sf-danger: light-dark(
|
|
111
|
-
oklch(0.55 0.12 25),
|
|
112
|
-
oklch(0.55 0.10 25)
|
|
113
|
-
);
|
|
114
|
-
--color-sf-danger-tint: light-dark(
|
|
115
|
-
oklch(0.94 0.02 25),
|
|
116
|
-
oklch(0.20 0.04 25)
|
|
117
|
-
);
|
|
30
|
+
--color-sf-line: light-dark(oklch(0.85 0 0 / 0.5), oklch(0.25 0 0 / 0.5));
|
|
31
|
+
--color-sf-ring: light-dark(oklch(0.65 0 0), oklch(0.45 0 0));
|
|
32
|
+
--color-sf-tip-shadow: light-dark(transparent, transparent);
|
|
33
|
+
--color-sf-tip-stroke: light-dark(transparent, transparent);
|
|
34
|
+
--color-sf-info: light-dark(oklch(0.55 0.06 260), oklch(0.55 0.06 260));
|
|
35
|
+
--color-sf-info-tint: light-dark(oklch(0.94 0.01 260), oklch(0.2 0.02 260));
|
|
36
|
+
--color-sf-warning: light-dark(oklch(0.55 0.08 66), oklch(0.65 0.08 66));
|
|
37
|
+
--color-sf-warning-tint: light-dark(oklch(0.94 0.02 60), oklch(0.22 0.03 60));
|
|
38
|
+
--color-sf-danger: light-dark(oklch(0.55 0.12 25), oklch(0.55 0.1 25));
|
|
39
|
+
--color-sf-danger-tint: light-dark(oklch(0.94 0.02 25), oklch(0.2 0.04 25));
|
|
118
40
|
|
|
119
41
|
/* Shadow overrides — flatten all elevation */
|
|
120
42
|
--shadow-2xs: 0 0 0 0 transparent;
|
package/dist/styles/theme-sf.css
CHANGED
|
@@ -6,37 +6,18 @@
|
|
|
6
6
|
* Then run: bun run codegen:themes
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
|
|
10
9
|
@theme {
|
|
11
|
-
--text-color-sf-default: light-dark(
|
|
12
|
-
var(--foreground, oklch(0.145 0 0)),
|
|
13
|
-
var(--foreground, oklch(0.985 0 0))
|
|
14
|
-
);
|
|
10
|
+
--text-color-sf-default: light-dark(oklch(0.145 0 0), oklch(0.985 0 0));
|
|
15
11
|
|
|
16
|
-
--text-color-sf-inverse: light-dark(
|
|
17
|
-
var(--primary-foreground, oklch(0.985 0 0)),
|
|
18
|
-
var(--primary-foreground, oklch(0.145 0 0))
|
|
19
|
-
);
|
|
12
|
+
--text-color-sf-inverse: light-dark(oklch(0.985 0 0), oklch(0.145 0 0));
|
|
20
13
|
|
|
21
|
-
--text-color-sf-strong: light-dark(
|
|
22
|
-
var(--muted-foreground, oklch(0.556 0 0)),
|
|
23
|
-
var(--muted-foreground, oklch(0.65 0 0))
|
|
24
|
-
);
|
|
14
|
+
--text-color-sf-strong: light-dark(oklch(0.45 0 0), oklch(0.8 0 0));
|
|
25
15
|
|
|
26
|
-
--text-color-sf-subtle: light-dark(
|
|
27
|
-
var(--color-neutral-500, oklch(55.6% 0 0)),
|
|
28
|
-
var(--color-neutral-50, oklch(98.5% 0 0))
|
|
29
|
-
);
|
|
16
|
+
--text-color-sf-subtle: light-dark(oklch(0.45 0 0), oklch(0.72 0 0));
|
|
30
17
|
|
|
31
|
-
--text-color-sf-inactive: light-dark(
|
|
32
|
-
var(--color-neutral-400, oklch(70.8% 0 0)),
|
|
33
|
-
var(--color-neutral-600, oklch(70.8% 0 0))
|
|
34
|
-
);
|
|
18
|
+
--text-color-sf-inactive: light-dark(oklch(0.55 0 0), oklch(0.6 0 0));
|
|
35
19
|
|
|
36
|
-
--text-color-sf-brand: light-dark(
|
|
37
|
-
#f6821f,
|
|
38
|
-
#f6821f
|
|
39
|
-
);
|
|
20
|
+
--text-color-sf-brand: light-dark(#f6821f, #f6821f);
|
|
40
21
|
|
|
41
22
|
--text-color-sf-link: light-dark(
|
|
42
23
|
var(--color-blue-800, oklch(42.4% 0.199 265.638)),
|
|
@@ -48,134 +29,124 @@
|
|
|
48
29
|
var(--color-green-500, oklch(72.3% 0.219 149.579))
|
|
49
30
|
);
|
|
50
31
|
|
|
51
|
-
--text-color-sf-danger: light-dark(
|
|
52
|
-
var(--destructive, oklch(0.577 0.245 27.325)),
|
|
53
|
-
var(--destructive, oklch(0.55 0.18 25))
|
|
54
|
-
);
|
|
55
|
-
|
|
56
|
-
--text-color-sf-warning: light-dark(
|
|
57
|
-
var(--color-yellow-800, oklch(47.6% 0.114 61.907)),
|
|
58
|
-
var(--color-yellow-400, oklch(85.2% 0.199 91.936))
|
|
59
|
-
);
|
|
32
|
+
--text-color-sf-danger: light-dark(oklch(0.5 0.15 25), oklch(0.68 0.16 25));
|
|
60
33
|
|
|
34
|
+
--text-color-sf-warning: light-dark(oklch(0.45 0.1 66), oklch(0.78 0.12 80));
|
|
61
35
|
}
|
|
62
36
|
|
|
63
37
|
@theme {
|
|
64
|
-
--color-sf-canvas: light-dark(
|
|
65
|
-
var(--color-neutral-50, oklch(0.985 0 0)),
|
|
66
|
-
var(--color-neutral-950, oklch(0.14 0 0))
|
|
67
|
-
);
|
|
38
|
+
--color-sf-canvas: light-dark(oklch(0.95 0 0), oklch(0.1 0 0));
|
|
68
39
|
|
|
69
|
-
--color-sf-base: light-dark(
|
|
70
|
-
var(--background, oklch(1 0 0)),
|
|
71
|
-
var(--background, oklch(0.21 0.005 252))
|
|
72
|
-
);
|
|
40
|
+
--color-sf-base: light-dark(oklch(0.97 0 0), oklch(0.14 0 0));
|
|
73
41
|
|
|
74
|
-
--color-sf-elevated: light-dark(
|
|
75
|
-
var(--color-neutral-25, oklch(0.99 0 0)),
|
|
76
|
-
var(--background, oklch(0.21 0.005 252))
|
|
77
|
-
);
|
|
42
|
+
--color-sf-elevated: light-dark(oklch(1 0 0), oklch(0.22 0 0));
|
|
78
43
|
|
|
79
|
-
--color-sf-recessed: light-dark(
|
|
80
|
-
var(--color-neutral-250, oklch(0.9 0 0)),
|
|
81
|
-
var(--color-neutral-750, oklch(0.31 0 0))
|
|
82
|
-
);
|
|
44
|
+
--color-sf-recessed: light-dark(oklch(0.92 0 0), oklch(0.1 0 0));
|
|
83
45
|
|
|
84
|
-
--color-sf-overlay: light-dark(
|
|
85
|
-
var(--color-neutral-50, oklch(98.5% 0 0)),
|
|
86
|
-
var(--color-neutral-950, oklch(0.10 0 0))
|
|
87
|
-
);
|
|
46
|
+
--color-sf-overlay: light-dark(oklch(0.93 0 0), oklch(0.1 0 0));
|
|
88
47
|
|
|
89
|
-
--color-sf-contrast: light-dark(
|
|
90
|
-
var(--primary, oklch(0.205 0 0)),
|
|
91
|
-
var(--primary, oklch(0.55 0.01 40))
|
|
92
|
-
);
|
|
48
|
+
--color-sf-contrast: light-dark(oklch(0.35 0 0), oklch(0.75 0 0));
|
|
93
49
|
|
|
94
|
-
--color-sf-control: light-dark(
|
|
95
|
-
var(--color-white, #fff),
|
|
96
|
-
var(--color-neutral-900, oklch(21% 0.006 285.885))
|
|
97
|
-
);
|
|
50
|
+
--color-sf-control: light-dark(oklch(0.95 0 0), oklch(0.17 0 0));
|
|
98
51
|
|
|
99
|
-
--color-sf-tint: light-dark(
|
|
100
|
-
var(--color-neutral-150, oklch(0.96 0 0)),
|
|
101
|
-
var(--color-neutral-850, oklch(0.23 0 0))
|
|
102
|
-
);
|
|
52
|
+
--color-sf-tint: light-dark(oklch(0.94 0 0), oklch(0.19 0 0));
|
|
103
53
|
|
|
104
|
-
--color-sf-interact: light-dark(
|
|
105
|
-
var(--border, oklch(0.922 0 0)),
|
|
106
|
-
var(--border, oklch(0.3 0.015 250))
|
|
107
|
-
);
|
|
54
|
+
--color-sf-interact: light-dark(oklch(0.8 0 0), oklch(0.38 0 0));
|
|
108
55
|
|
|
109
|
-
--color-sf-fill: light-dark(
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
56
|
+
--color-sf-fill: light-dark(oklch(0.91 0 0), oklch(0.27 0 0));
|
|
57
|
+
|
|
58
|
+
--color-sf-fill-hover: light-dark(oklch(0.88 0 0), oklch(0.31 0 0));
|
|
59
|
+
|
|
60
|
+
--color-sf-brand: light-dark(oklch(0.55 0.06 260), oklch(0.55 0.06 260));
|
|
113
61
|
|
|
114
|
-
--color-sf-
|
|
115
|
-
|
|
116
|
-
|
|
62
|
+
--color-sf-brand-hover: light-dark(
|
|
63
|
+
oklch(0.48 0.05 264),
|
|
64
|
+
oklch(0.48 0.05 264)
|
|
117
65
|
);
|
|
118
66
|
|
|
119
|
-
--color-sf-
|
|
120
|
-
|
|
121
|
-
|
|
67
|
+
--color-sf-line: light-dark(oklch(0.85 0 0 / 0.5), oklch(0.25 0 0 / 0.5));
|
|
68
|
+
|
|
69
|
+
--color-sf-ring: light-dark(oklch(0.55 0 0), oklch(0.6 0 0));
|
|
70
|
+
|
|
71
|
+
--color-sf-tip-shadow: light-dark(transparent, transparent);
|
|
72
|
+
|
|
73
|
+
--color-sf-tip-stroke: light-dark(transparent, transparent);
|
|
74
|
+
|
|
75
|
+
--color-sf-info: light-dark(oklch(0.55 0.06 260), oklch(0.55 0.06 260));
|
|
76
|
+
|
|
77
|
+
--color-sf-info-tint: light-dark(oklch(0.88 0.02 260), oklch(0.12 0.03 260));
|
|
78
|
+
|
|
79
|
+
--color-sf-warning: light-dark(oklch(0.55 0.08 66), oklch(0.65 0.08 66));
|
|
80
|
+
|
|
81
|
+
--color-sf-warning-tint: light-dark(oklch(0.94 0.02 60), oklch(0.22 0.03 60));
|
|
82
|
+
|
|
83
|
+
--color-sf-danger: light-dark(oklch(0.55 0.12 25), oklch(0.55 0.1 25));
|
|
84
|
+
|
|
85
|
+
--color-sf-danger-tint: light-dark(oklch(0.94 0.02 25), oklch(0.16 0.04 25));
|
|
86
|
+
|
|
87
|
+
--color-sf-success: light-dark(
|
|
88
|
+
oklch(0.723 0.219 149.579),
|
|
89
|
+
oklch(0.723 0.219 149.579)
|
|
122
90
|
);
|
|
123
91
|
|
|
124
|
-
--color-sf-
|
|
125
|
-
|
|
126
|
-
|
|
92
|
+
--color-sf-chart-1: light-dark(
|
|
93
|
+
oklch(0.646 0.222 41.116),
|
|
94
|
+
oklch(0.646 0.222 41.116)
|
|
127
95
|
);
|
|
128
96
|
|
|
129
|
-
--color-sf-
|
|
130
|
-
|
|
131
|
-
|
|
97
|
+
--color-sf-chart-2: light-dark(
|
|
98
|
+
oklch(0.6 0.118 184.704),
|
|
99
|
+
oklch(0.6 0.118 184.704)
|
|
132
100
|
);
|
|
133
101
|
|
|
134
|
-
--color-sf-
|
|
135
|
-
|
|
136
|
-
|
|
102
|
+
--color-sf-chart-3: light-dark(
|
|
103
|
+
oklch(0.398 0.07 227.392),
|
|
104
|
+
oklch(0.398 0.07 227.392)
|
|
137
105
|
);
|
|
138
106
|
|
|
139
|
-
--color-sf-
|
|
140
|
-
|
|
141
|
-
|
|
107
|
+
--color-sf-chart-4: light-dark(
|
|
108
|
+
oklch(0.828 0.189 84.429),
|
|
109
|
+
oklch(0.828 0.189 84.429)
|
|
142
110
|
);
|
|
143
111
|
|
|
144
|
-
--color-sf-
|
|
145
|
-
|
|
146
|
-
|
|
112
|
+
--color-sf-chart-5: light-dark(
|
|
113
|
+
oklch(0.769 0.188 70.08),
|
|
114
|
+
oklch(0.769 0.188 70.08)
|
|
147
115
|
);
|
|
148
116
|
|
|
149
|
-
--color-sf-
|
|
150
|
-
|
|
151
|
-
|
|
117
|
+
--color-sf-syntax-keyword: light-dark(
|
|
118
|
+
oklch(0.52 0.2 265),
|
|
119
|
+
oklch(0.72 0.19 255)
|
|
152
120
|
);
|
|
153
121
|
|
|
154
|
-
--color-sf-
|
|
155
|
-
|
|
156
|
-
|
|
122
|
+
--color-sf-syntax-identifier: light-dark(
|
|
123
|
+
oklch(0.38 0.13 150),
|
|
124
|
+
oklch(0.75 0.15 155)
|
|
157
125
|
);
|
|
158
126
|
|
|
159
|
-
--color-sf-
|
|
160
|
-
|
|
161
|
-
|
|
127
|
+
--color-sf-syntax-string: light-dark(
|
|
128
|
+
oklch(0.48 0.16 25),
|
|
129
|
+
oklch(0.72 0.14 60)
|
|
162
130
|
);
|
|
163
131
|
|
|
164
|
-
--color-sf-
|
|
165
|
-
|
|
166
|
-
|
|
132
|
+
--color-sf-syntax-comment: light-dark(oklch(0.62 0 0), oklch(0.55 0 0));
|
|
133
|
+
|
|
134
|
+
--color-sf-syntax-jsxliterals: light-dark(
|
|
135
|
+
oklch(0.52 0.2 265),
|
|
136
|
+
oklch(0.72 0.19 255)
|
|
167
137
|
);
|
|
168
138
|
|
|
169
|
-
--color-sf-
|
|
170
|
-
|
|
171
|
-
|
|
139
|
+
--color-sf-syntax-property: light-dark(
|
|
140
|
+
oklch(0.38 0.12 220),
|
|
141
|
+
oklch(0.72 0.12 215)
|
|
172
142
|
);
|
|
173
143
|
|
|
174
|
-
--color-sf-
|
|
175
|
-
|
|
176
|
-
|
|
144
|
+
--color-sf-syntax-entity: light-dark(
|
|
145
|
+
oklch(0.46 0.18 30),
|
|
146
|
+
oklch(0.75 0.15 55)
|
|
177
147
|
);
|
|
178
148
|
|
|
149
|
+
--color-sf-syntax-sign: light-dark(oklch(0.45 0 0), oklch(0.7 0 0));
|
|
179
150
|
}
|
|
180
151
|
|
|
181
152
|
@theme {
|
|
@@ -188,4 +159,15 @@
|
|
|
188
159
|
--text-base--line-height: calc(1.25 / 0.875);
|
|
189
160
|
--text-lg: 16px;
|
|
190
161
|
--text-lg--line-height: calc(1.25 / 1);
|
|
191
|
-
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
:root {
|
|
165
|
+
/* Shadow overrides — flatten all elevation for the minimal-derived default */
|
|
166
|
+
--shadow-2xs: 0 0 0 0 transparent;
|
|
167
|
+
--shadow-xs: 0 0 0 0 transparent;
|
|
168
|
+
--shadow-sm: 0 0 0 0 transparent;
|
|
169
|
+
--shadow-md: 0 0 0 0 transparent;
|
|
170
|
+
--shadow-lg: 0 0 0 0 transparent;
|
|
171
|
+
--shadow-xl: 0 0 0 0 transparent;
|
|
172
|
+
--shadow-2xl: 0 0 0 0 transparent;
|
|
173
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { t as cn } from "./cn-YROP2_ox.js";
|
|
3
|
-
import { t as Checkbox } from "./checkbox-
|
|
3
|
+
import { t as Checkbox } from "./checkbox-DYhUmZNw.js";
|
|
4
4
|
import { forwardRef } from "react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
//#region src/components/table/table.tsx
|
|
@@ -197,4 +197,4 @@ var Table = Object.assign(TableRoot, {
|
|
|
197
197
|
//#endregion
|
|
198
198
|
export { SF_TABLE_VARIANTS as n, Table as r, SF_TABLE_DEFAULT_VARIANTS as t };
|
|
199
199
|
|
|
200
|
-
//# sourceMappingURL=table-
|
|
200
|
+
//# sourceMappingURL=table-Rv4JMy0B.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-CIMx0Oq0.js","names":[],"sources":["../src/components/table/table.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\n\nimport { cn } from \"../../utils\";\nimport { Checkbox } from \"../checkbox\";\n\n/** Table layout and row variant definitions mapping names to their Tailwind classes. */\nexport const SF_TABLE_VARIANTS = {\n layout: {\n auto: {\n classes: \"\",\n description: \"Auto table layout - columns resize based on content\",\n },\n fixed: {\n classes: \"table-fixed\",\n description:\n \"Fixed table layout - columns have equal width, controlled via colgroup\",\n },\n },\n variant: {\n default: {\n classes: \"\",\n description: \"Default row variant\",\n },\n selected: {\n classes: \"bg-sf-tint\",\n description: \"Selected row variant\",\n },\n },\n} as const;\n\nexport const SF_TABLE_DEFAULT_VARIANTS = {\n layout: \"auto\",\n variant: \"default\",\n} as const;\n\nexport type SFTableRowVariant = keyof typeof SF_TABLE_VARIANTS.variant;\nexport type SFTableLayout = keyof typeof SF_TABLE_VARIANTS.layout;\n\n/**\n * Table root — applies layout, borders, padding, and header styles.\n *\n * @example\n * ```tsx\n * <Table layout=\"fixed\">\n * <Table.Header>\n * <Table.Row>\n * <Table.Head>Name</Table.Head>\n * <Table.Head>Status</Table.Head>\n * </Table.Row>\n * </Table.Header>\n * <Table.Body>\n * <Table.Row>\n * <Table.Cell>Worker A</Table.Cell>\n * <Table.Cell>Active</Table.Cell>\n * </Table.Row>\n * </Table.Body>\n * </Table>\n * ```\n */\nconst TableRoot = forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement> & {\n /**\n * Table layout algorithm.\n * - `\"auto\"` — columns resize based on content\n * - `\"fixed\"` — equal-width columns, controlled via `<colgroup>`\n * @default \"auto\"\n */\n layout?: SFTableLayout;\n }\n>(({ layout = \"auto\", ...props }, ref) => {\n const className = cn(\n \"w-full\",\n SF_TABLE_VARIANTS.layout[layout].classes,\n \"[&_tr_td]:border-b [&_tr_td]:border-sf-fill [&_tr:last-child_td]:border-b-0\", // Row border\n \"[&_tr_td]:p-3\", // Cell padding\n \"[&_tr_th]:border-b [&_tr_th]:border-sf-fill [&_tr_th]:p-3 [&_tr_th]:font-semibold\", // Header styles\n \"[&_tr_th]:bg-sf-base\", // Header background color\n \"text-left text-sf-default\",\n props.className\n );\n\n return <table ref={ref} {...props} className={className} />;\n});\n\nconst TableHeader = forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>((props, ref) => {\n return <thead ref={ref} {...props} />;\n});\n\nconst TableHead = forwardRef<\n HTMLTableCellElement,\n React.HTMLAttributes<HTMLTableCellElement>\n>((props, ref) => {\n const className = cn(\"group relative\", props.className);\n return <th ref={ref} {...props} className={className} />;\n});\n\nconst TableRow = forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement> & {\n variant?: SFTableRowVariant;\n }\n>(({ variant = SF_TABLE_DEFAULT_VARIANTS.variant, ...props }, ref) => {\n const className = cn(\n SF_TABLE_VARIANTS.variant[variant].classes,\n props.className\n );\n\n return <tr ref={ref} {...props} className={className} />;\n});\n\nconst TableBody = forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>((props, ref) => {\n return <tbody ref={ref} {...props} />;\n});\n\nconst TableCell = forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>((props, ref) => {\n return <td ref={ref} {...props} />;\n});\n\nconst TableFooter = forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>((props, ref) => {\n return <tfoot ref={ref} {...props} />;\n});\n\nconst TableResizeHandle = forwardRef<\n HTMLButtonElement,\n React.HTMLAttributes<HTMLButtonElement>\n>((props, ref) => {\n return (\n <button\n ref={ref}\n {...props}\n type=\"button\"\n aria-label=\"Resize column\"\n className={cn(\n \"invisible h-full group-hover:visible\", // Make the handle invisible by default\n \"w-[10px]\", // Hitting area\n \"flex items-center justify-center\", // Center the handle\n \"cursor-col-resize touch-none select-none\", // Prevent selection and touch events\n \"absolute top-0 right-0\", // Position the handle\n \"m-0 bg-sf-base p-0\" // Override the stratus button styles\n )}\n >\n <span className=\"h-5 w-[2px] rounded bg-sf-ring\" />\n </button>\n );\n});\n\n/**\n * Special cell that makes the entire cell area a hit target for the checkbox.\n */\n\nconst TableCheckCell = forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement> & {\n checked?: boolean;\n indeterminate?: boolean;\n onValueChange?: (checked: boolean) => void;\n label?: string;\n disabled?: boolean;\n }\n>(\n (\n { checked, indeterminate, onValueChange, label, disabled, ...props },\n ref\n ) => {\n return (\n <TableCell\n ref={ref}\n {...props}\n className={cn(\"w-10 leading-none\", props.className)}\n >\n <Checkbox\n checked={checked}\n indeterminate={indeterminate}\n onCheckedChange={(newChecked) => {\n onValueChange?.(newChecked);\n }}\n aria-label={label ?? \"Select row\"}\n disabled={disabled}\n className=\"relative before:absolute before:-inset-3 before:content-['']\"\n />\n </TableCell>\n );\n }\n);\n\nconst TableCheckHead = forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement> & {\n checked?: boolean;\n indeterminate?: boolean;\n onValueChange?: (checked: boolean) => void;\n label?: string;\n disabled?: boolean;\n }\n>(\n (\n { checked, indeterminate, onValueChange, label, disabled, ...props },\n ref\n ) => {\n return (\n <TableHead\n ref={ref}\n {...props}\n className={cn(\"w-10 leading-none\", props.className)}\n >\n <Checkbox\n checked={checked}\n indeterminate={indeterminate}\n onCheckedChange={(newChecked) => {\n onValueChange?.(newChecked);\n }}\n aria-label={label ?? \"Select all rows\"}\n disabled={disabled}\n className=\"relative before:absolute before:-inset-3 before:content-['']\"\n />\n </TableHead>\n );\n }\n);\n\nTableRoot.displayName = \"Table\";\nTableBody.displayName = \"Table.Body\";\nTableHead.displayName = \"Table.Head\";\nTableRow.displayName = \"Table.Row\";\nTableCell.displayName = \"Table.Cell\";\nTableFooter.displayName = \"Table.Footer\";\nTableHeader.displayName = \"Table.Header\";\nTableResizeHandle.displayName = \"Table.ResizeHandle\";\nTableCheckCell.displayName = \"Table.CheckCell\";\nTableCheckHead.displayName = \"Table.CheckHead\";\n\n/**\n * Table — semantic HTML table with styled rows, cells, and selection support.\n *\n * Compound component: `Table` (Root), `.Header`, `.Head`, `.Body`, `.Row`,\n * `.Cell`, `.Footer`, `.CheckCell`, `.CheckHead`, `.ResizeHandle`.\n *\n * @example\n * ```tsx\n * <Table>\n * <Table.Header>\n * <Table.Row>\n * <Table.CheckHead checked={allSelected} onValueChange={toggleAll} />\n * <Table.Head>Name</Table.Head>\n * </Table.Row>\n * </Table.Header>\n * <Table.Body>\n * {rows.map((row) => (\n * <Table.Row key={row.id} variant={selected.has(row.id) ? \"selected\" : \"default\"}>\n * <Table.CheckCell checked={selected.has(row.id)} onValueChange={() => toggle(row.id)} />\n * <Table.Cell>{row.name}</Table.Cell>\n * </Table.Row>\n * ))}\n * </Table.Body>\n * </Table>\n * ```\n */\nexport const Table = Object.assign(TableRoot, {\n Header: TableHeader,\n Head: TableHead,\n Row: TableRow,\n Body: TableBody,\n Cell: TableCell,\n CheckCell: TableCheckCell,\n CheckHead: TableCheckHead,\n Footer: TableFooter,\n ResizeHandle: TableResizeHandle,\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table-Rv4JMy0B.js","names":[],"sources":["../src/components/table/table.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\n\nimport { cn } from \"../../utils\";\nimport { Checkbox } from \"../checkbox\";\n\n/** Table layout and row variant definitions mapping names to their Tailwind classes. */\nexport const SF_TABLE_VARIANTS = {\n layout: {\n auto: {\n classes: \"\",\n description: \"Auto table layout - columns resize based on content\",\n },\n fixed: {\n classes: \"table-fixed\",\n description:\n \"Fixed table layout - columns have equal width, controlled via colgroup\",\n },\n },\n variant: {\n default: {\n classes: \"\",\n description: \"Default row variant\",\n },\n selected: {\n classes: \"bg-sf-tint\",\n description: \"Selected row variant\",\n },\n },\n} as const;\n\nexport const SF_TABLE_DEFAULT_VARIANTS = {\n layout: \"auto\",\n variant: \"default\",\n} as const;\n\nexport type SFTableRowVariant = keyof typeof SF_TABLE_VARIANTS.variant;\nexport type SFTableLayout = keyof typeof SF_TABLE_VARIANTS.layout;\n\n/**\n * Table root — applies layout, borders, padding, and header styles.\n *\n * @example\n * ```tsx\n * <Table layout=\"fixed\">\n * <Table.Header>\n * <Table.Row>\n * <Table.Head>Name</Table.Head>\n * <Table.Head>Status</Table.Head>\n * </Table.Row>\n * </Table.Header>\n * <Table.Body>\n * <Table.Row>\n * <Table.Cell>Worker A</Table.Cell>\n * <Table.Cell>Active</Table.Cell>\n * </Table.Row>\n * </Table.Body>\n * </Table>\n * ```\n */\nconst TableRoot = forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement> & {\n /**\n * Table layout algorithm.\n * - `\"auto\"` — columns resize based on content\n * - `\"fixed\"` — equal-width columns, controlled via `<colgroup>`\n * @default \"auto\"\n */\n layout?: SFTableLayout;\n }\n>(({ layout = \"auto\", ...props }, ref) => {\n const className = cn(\n \"w-full\",\n SF_TABLE_VARIANTS.layout[layout].classes,\n \"[&_tr_td]:border-b [&_tr_td]:border-sf-fill [&_tr:last-child_td]:border-b-0\", // Row border\n \"[&_tr_td]:p-3\", // Cell padding\n \"[&_tr_th]:border-b [&_tr_th]:border-sf-fill [&_tr_th]:p-3 [&_tr_th]:font-semibold\", // Header styles\n \"[&_tr_th]:bg-sf-base\", // Header background color\n \"text-left text-sf-default\",\n props.className\n );\n\n return <table ref={ref} {...props} className={className} />;\n});\n\nconst TableHeader = forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>((props, ref) => {\n return <thead ref={ref} {...props} />;\n});\n\nconst TableHead = forwardRef<\n HTMLTableCellElement,\n React.HTMLAttributes<HTMLTableCellElement>\n>((props, ref) => {\n const className = cn(\"group relative\", props.className);\n return <th ref={ref} {...props} className={className} />;\n});\n\nconst TableRow = forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement> & {\n variant?: SFTableRowVariant;\n }\n>(({ variant = SF_TABLE_DEFAULT_VARIANTS.variant, ...props }, ref) => {\n const className = cn(\n SF_TABLE_VARIANTS.variant[variant].classes,\n props.className\n );\n\n return <tr ref={ref} {...props} className={className} />;\n});\n\nconst TableBody = forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>((props, ref) => {\n return <tbody ref={ref} {...props} />;\n});\n\nconst TableCell = forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>((props, ref) => {\n return <td ref={ref} {...props} />;\n});\n\nconst TableFooter = forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>((props, ref) => {\n return <tfoot ref={ref} {...props} />;\n});\n\nconst TableResizeHandle = forwardRef<\n HTMLButtonElement,\n React.HTMLAttributes<HTMLButtonElement>\n>((props, ref) => {\n return (\n <button\n ref={ref}\n {...props}\n type=\"button\"\n aria-label=\"Resize column\"\n className={cn(\n \"invisible h-full group-hover:visible\", // Make the handle invisible by default\n \"w-[10px]\", // Hitting area\n \"flex items-center justify-center\", // Center the handle\n \"cursor-col-resize touch-none select-none\", // Prevent selection and touch events\n \"absolute top-0 right-0\", // Position the handle\n \"m-0 bg-sf-base p-0\" // Override the stratus button styles\n )}\n >\n <span className=\"h-5 w-[2px] rounded bg-sf-ring\" />\n </button>\n );\n});\n\n/**\n * Special cell that makes the entire cell area a hit target for the checkbox.\n */\n\nconst TableCheckCell = forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement> & {\n checked?: boolean;\n indeterminate?: boolean;\n onValueChange?: (checked: boolean) => void;\n label?: string;\n disabled?: boolean;\n }\n>(\n (\n { checked, indeterminate, onValueChange, label, disabled, ...props },\n ref\n ) => {\n return (\n <TableCell\n ref={ref}\n {...props}\n className={cn(\"w-10 leading-none\", props.className)}\n >\n <Checkbox\n checked={checked}\n indeterminate={indeterminate}\n onCheckedChange={(newChecked) => {\n onValueChange?.(newChecked);\n }}\n aria-label={label ?? \"Select row\"}\n disabled={disabled}\n className=\"relative before:absolute before:-inset-3 before:content-['']\"\n />\n </TableCell>\n );\n }\n);\n\nconst TableCheckHead = forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement> & {\n checked?: boolean;\n indeterminate?: boolean;\n onValueChange?: (checked: boolean) => void;\n label?: string;\n disabled?: boolean;\n }\n>(\n (\n { checked, indeterminate, onValueChange, label, disabled, ...props },\n ref\n ) => {\n return (\n <TableHead\n ref={ref}\n {...props}\n className={cn(\"w-10 leading-none\", props.className)}\n >\n <Checkbox\n checked={checked}\n indeterminate={indeterminate}\n onCheckedChange={(newChecked) => {\n onValueChange?.(newChecked);\n }}\n aria-label={label ?? \"Select all rows\"}\n disabled={disabled}\n className=\"relative before:absolute before:-inset-3 before:content-['']\"\n />\n </TableHead>\n );\n }\n);\n\nTableRoot.displayName = \"Table\";\nTableBody.displayName = \"Table.Body\";\nTableHead.displayName = \"Table.Head\";\nTableRow.displayName = \"Table.Row\";\nTableCell.displayName = \"Table.Cell\";\nTableFooter.displayName = \"Table.Footer\";\nTableHeader.displayName = \"Table.Header\";\nTableResizeHandle.displayName = \"Table.ResizeHandle\";\nTableCheckCell.displayName = \"Table.CheckCell\";\nTableCheckHead.displayName = \"Table.CheckHead\";\n\n/**\n * Table — semantic HTML table with styled rows, cells, and selection support.\n *\n * Compound component: `Table` (Root), `.Header`, `.Head`, `.Body`, `.Row`,\n * `.Cell`, `.Footer`, `.CheckCell`, `.CheckHead`, `.ResizeHandle`.\n *\n * @example\n * ```tsx\n * <Table>\n * <Table.Header>\n * <Table.Row>\n * <Table.CheckHead checked={allSelected} onValueChange={toggleAll} />\n * <Table.Head>Name</Table.Head>\n * </Table.Row>\n * </Table.Header>\n * <Table.Body>\n * {rows.map((row) => (\n * <Table.Row key={row.id} variant={selected.has(row.id) ? \"selected\" : \"default\"}>\n * <Table.CheckCell checked={selected.has(row.id)} onValueChange={() => toggle(row.id)} />\n * <Table.Cell>{row.name}</Table.Cell>\n * </Table.Row>\n * ))}\n * </Table.Body>\n * </Table>\n * ```\n */\nexport const Table = Object.assign(TableRoot, {\n Header: TableHeader,\n Head: TableHead,\n Row: TableRow,\n Body: TableBody,\n Cell: TableCell,\n CheckCell: TableCheckCell,\n CheckHead: TableCheckHead,\n Footer: TableFooter,\n ResizeHandle: TableResizeHandle,\n});\n"],"mappings":"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"}
|