@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.
Files changed (316) hide show
  1. package/CHANGELOG.md +117 -1
  2. package/ai/USAGE.md +64 -0
  3. package/ai/component-registry.json +492 -618
  4. package/ai/component-registry.md +167 -85
  5. package/ai/schemas.ts +545 -102
  6. package/bin/sf.js +2 -3
  7. package/dist/.build-complete +1 -1
  8. package/dist/ai/schemas.d.ts +1659 -5532
  9. package/dist/ai/schemas.d.ts.map +1 -1
  10. package/dist/{ai-actions-DG1dhDMP.js → ai-actions-DSVeQn4e.js} +1 -1
  11. package/dist/{ai-actions-DG1dhDMP.js.map → ai-actions-DSVeQn4e.js.map} +1 -1
  12. package/dist/{ai-agent-card-BbtL4NII.js → ai-agent-card-BXHwhWAU.js} +1 -1
  13. package/dist/{ai-agent-card-BbtL4NII.js.map → ai-agent-card-BXHwhWAU.js.map} +1 -1
  14. package/dist/{ai-approval-Mb7-BY6i.js → ai-approval-aa0qvjFN.js} +1 -1
  15. package/dist/{ai-approval-Mb7-BY6i.js.map → ai-approval-aa0qvjFN.js.map} +1 -1
  16. package/dist/{ai-code-block-BI_z0UVR.js → ai-code-block-BgtIxtZZ.js} +1 -1
  17. package/dist/{ai-code-block-BI_z0UVR.js.map → ai-code-block-BgtIxtZZ.js.map} +1 -1
  18. package/dist/{ai-conversation-DYtExcrw.js → ai-conversation-CArP7C8K.js} +1 -1
  19. package/dist/{ai-conversation-DYtExcrw.js.map → ai-conversation-CArP7C8K.js.map} +1 -1
  20. package/dist/{ai-info-banner-BpzauUAY.js → ai-info-banner-uFxHHwBA.js} +1 -1
  21. package/dist/{ai-info-banner-BpzauUAY.js.map → ai-info-banner-uFxHHwBA.js.map} +1 -1
  22. package/dist/{ai-message-CV8SBoHM.js → ai-message-BjnFznXy.js} +1 -1
  23. package/dist/{ai-message-CV8SBoHM.js.map → ai-message-BjnFznXy.js.map} +1 -1
  24. package/dist/{ai-mission-header-ByYkJ6YP.js → ai-mission-header-08__gULL.js} +1 -1
  25. package/dist/{ai-mission-header-ByYkJ6YP.js.map → ai-mission-header-08__gULL.js.map} +1 -1
  26. package/dist/ai-part-group-DBtgTgAn.js +277 -0
  27. package/dist/ai-part-group-DBtgTgAn.js.map +1 -0
  28. package/dist/ai-prompt-input-Dy1LfxPk.js +1541 -0
  29. package/dist/ai-prompt-input-Dy1LfxPk.js.map +1 -0
  30. package/dist/{ai-question-Dp1g9k2o.js → ai-question-CHHoDJMg.js} +1 -1
  31. package/dist/{ai-question-Dp1g9k2o.js.map → ai-question-CHHoDJMg.js.map} +1 -1
  32. package/dist/{ai-reasoning-UAmNx_LD.js → ai-reasoning-CnL6ZSr5.js} +84 -5
  33. package/dist/ai-reasoning-CnL6ZSr5.js.map +1 -0
  34. package/dist/{ai-response-BWoVsNQG.js → ai-response-BEUg3xvd.js} +13 -16
  35. package/dist/ai-response-BEUg3xvd.js.map +1 -0
  36. package/dist/{ai-shimmer-BpOmfonu.js → ai-shimmer-By5_L05p.js} +1 -1
  37. package/dist/{ai-shimmer-BpOmfonu.js.map → ai-shimmer-By5_L05p.js.map} +1 -1
  38. package/dist/{ai-status-badge-WhbKVeqn.js → ai-status-badge-BGYGWYF6.js} +1 -1
  39. package/dist/{ai-status-badge-WhbKVeqn.js.map → ai-status-badge-BGYGWYF6.js.map} +1 -1
  40. package/dist/{ai-streaming-text-ClL7FwvD.js → ai-streaming-text-CMfoThV0.js} +1 -1
  41. package/dist/{ai-streaming-text-ClL7FwvD.js.map → ai-streaming-text-CMfoThV0.js.map} +1 -1
  42. package/dist/{ai-subagent-BruGN1UE.js → ai-subagent-DcPRqkAA.js} +1 -1
  43. package/dist/{ai-subagent-BruGN1UE.js.map → ai-subagent-DcPRqkAA.js.map} +1 -1
  44. package/dist/{ai-suggestion-CNsCZj5P.js → ai-suggestion-MgeCg5Ar.js} +1 -1
  45. package/dist/{ai-suggestion-CNsCZj5P.js.map → ai-suggestion-MgeCg5Ar.js.map} +1 -1
  46. package/dist/{ai-task-list-B9CpMDYN.js → ai-task-list-Da9zIm00.js} +9 -12
  47. package/dist/ai-task-list-Da9zIm00.js.map +1 -0
  48. package/dist/{ai-timeline-Bb5ntsr3.js → ai-timeline-Cwu045IR.js} +1 -1
  49. package/dist/ai-timeline-Cwu045IR.js.map +1 -0
  50. package/dist/{ai-tool-BGH8nQ_D.js → ai-tool-Cn1O4xjP.js} +168 -11
  51. package/dist/ai-tool-Cn1O4xjP.js.map +1 -0
  52. package/dist/{ai-usage-bar-BI-p-JBk.js → ai-usage-bar-DjS12DMp.js} +1 -1
  53. package/dist/{ai-usage-bar-BI-p-JBk.js.map → ai-usage-bar-DjS12DMp.js.map} +1 -1
  54. package/dist/catalog.js +3 -3
  55. package/dist/catalog.js.map +1 -1
  56. package/dist/{chart-Bes4MN3C.js → chart-BK3sVPnD.js} +442 -248
  57. package/dist/chart-BK3sVPnD.js.map +1 -0
  58. package/dist/{checkbox-CPX7lBaU.js → checkbox-DYhUmZNw.js} +4 -4
  59. package/dist/checkbox-DYhUmZNw.js.map +1 -0
  60. package/dist/{clipboard-text-92YeCybc.js → clipboard-text-ssybngLw.js} +2 -2
  61. package/dist/{clipboard-text-92YeCybc.js.map → clipboard-text-ssybngLw.js.map} +1 -1
  62. package/dist/{code-DE1Yy1Cu.js → code-Cx-QSoOT.js} +2 -2
  63. package/dist/{code-DE1Yy1Cu.js.map → code-Cx-QSoOT.js.map} +1 -1
  64. package/dist/{combobox-B0bLdsX8.js → combobox-C0iW6a0r.js} +2 -2
  65. package/dist/{combobox-B0bLdsX8.js.map → combobox-C0iW6a0r.js.map} +1 -1
  66. package/dist/command-line/cli.js +22 -27
  67. package/dist/{command-palette-CBTY8EiF.js → command-palette-DGzioeki.js} +2 -2
  68. package/dist/command-palette-DGzioeki.js.map +1 -0
  69. package/dist/components/ai-actions.js +1 -1
  70. package/dist/components/ai-agent-card.js +1 -1
  71. package/dist/components/ai-approval.js +1 -1
  72. package/dist/components/ai-code-block.js +1 -1
  73. package/dist/components/ai-conversation.js +1 -1
  74. package/dist/components/ai-info-banner.js +1 -1
  75. package/dist/components/ai-message.js +1 -1
  76. package/dist/components/ai-mission-header.js +1 -1
  77. package/dist/components/ai-part-group.js +3 -0
  78. package/dist/components/ai-prompt-input.js +2 -2
  79. package/dist/components/ai-question.js +1 -1
  80. package/dist/components/ai-reasoning.js +1 -1
  81. package/dist/components/ai-response.js +1 -1
  82. package/dist/components/ai-shimmer.js +1 -1
  83. package/dist/components/ai-status-badge.js +1 -1
  84. package/dist/components/ai-streaming-text.js +1 -1
  85. package/dist/components/ai-subagent.js +1 -1
  86. package/dist/components/ai-suggestion.js +1 -1
  87. package/dist/components/ai-task-list.js +1 -1
  88. package/dist/components/ai-timeline.js +1 -1
  89. package/dist/components/ai-tool.js +1 -1
  90. package/dist/components/ai-usage-bar.js +1 -1
  91. package/dist/components/chart.js +3 -2
  92. package/dist/components/checkbox.js +1 -1
  93. package/dist/components/clipboard-text.js +1 -1
  94. package/dist/components/code.js +1 -1
  95. package/dist/components/combobox.js +1 -1
  96. package/dist/components/command-palette.js +1 -1
  97. package/dist/components/data-grid.js +1 -1
  98. package/dist/components/date-picker.js +1 -1
  99. package/dist/components/dropdown.js +1 -1
  100. package/dist/components/filters.js +1 -1
  101. package/dist/components/input.js +2 -2
  102. package/dist/components/link.js +2 -2
  103. package/dist/components/link.js.map +1 -1
  104. package/dist/components/pagination.js +1 -1
  105. package/dist/components/radio.js +1 -1
  106. package/dist/components/select.js +1 -1
  107. package/dist/components/sensitive-input.js +1 -1
  108. package/dist/components/sidebar.js +1 -1
  109. package/dist/components/sparkline.js +3 -0
  110. package/dist/components/stat-card.js +3 -0
  111. package/dist/components/table.js +1 -1
  112. package/dist/components/text-roll.js +3 -0
  113. package/dist/components/theme-toggle.js +1 -1
  114. package/dist/components/use-agent-harness.js +1 -1
  115. package/dist/{data-grid-UJ9ja5cu.js → data-grid-CG76N_hK.js} +6 -6
  116. package/dist/data-grid-CG76N_hK.js.map +1 -0
  117. package/dist/{date-picker-ebekkC3R.js → date-picker-Dqg9L4xu.js} +2 -2
  118. package/dist/{date-picker-ebekkC3R.js.map → date-picker-Dqg9L4xu.js.map} +1 -1
  119. package/dist/{dist-BNlyONdD.js → dist-1-gcEL2L.js} +224 -135
  120. package/dist/dist-1-gcEL2L.js.map +1 -0
  121. package/dist/{dropdown-J5T4pHaR.js → dropdown-qnEYRFXZ.js} +2 -2
  122. package/dist/{dropdown-J5T4pHaR.js.map → dropdown-qnEYRFXZ.js.map} +1 -1
  123. package/dist/echart-DURZEyai.js +314 -0
  124. package/dist/echart-DURZEyai.js.map +1 -0
  125. package/dist/{filters-BdBogf7D.js → filters-Bw_U6ZTx.js} +5 -5
  126. package/dist/filters-Bw_U6ZTx.js.map +1 -0
  127. package/dist/flow-BRsYUCJa.js.map +1 -1
  128. package/dist/genui.js +2 -2
  129. package/dist/genui.js.map +1 -1
  130. package/dist/index.js +45 -42
  131. package/dist/index.js.map +1 -1
  132. package/dist/{input-BxQAnXki.js → input-DXYUjGgD.js} +2 -2
  133. package/dist/{input-BxQAnXki.js.map → input-DXYUjGgD.js.map} +1 -1
  134. package/dist/{input-Cn25I4o5.js → input-DddtBN-g.js} +2 -2
  135. package/dist/{input-Cn25I4o5.js.map → input-DddtBN-g.js.map} +1 -1
  136. package/dist/layer-card-BME0eljh.js.map +1 -1
  137. package/dist/{pagination-C_YqCy8l.js → pagination-BVqdlONY.js} +2 -2
  138. package/dist/{pagination-C_YqCy8l.js.map → pagination-BVqdlONY.js.map} +1 -1
  139. package/dist/primitives/otp-field.js +2 -0
  140. package/dist/primitives.js +1 -0
  141. package/dist/{radio-B7zg1wUI.js → radio-BNSwOt3B.js} +3 -3
  142. package/dist/radio-BNSwOt3B.js.map +1 -0
  143. package/dist/{select-9p721G00.js → select-1w2aebGQ.js} +2 -2
  144. package/dist/select-1w2aebGQ.js.map +1 -0
  145. package/dist/{sensitive-input-D5je2NLl.js → sensitive-input-82Cez3vj.js} +2 -2
  146. package/dist/{sensitive-input-D5je2NLl.js.map → sensitive-input-82Cez3vj.js.map} +1 -1
  147. package/dist/{sidebar-DOwBrq57.js → sidebar-CAsCmSpM.js} +3 -3
  148. package/dist/sidebar-CAsCmSpM.js.map +1 -0
  149. package/dist/sparkline-DdbeM4Ai.js +108 -0
  150. package/dist/sparkline-DdbeM4Ai.js.map +1 -0
  151. package/dist/src/blocks/agent-harness/agent-harness.d.ts +30 -9
  152. package/dist/src/blocks/agent-harness/agent-harness.d.ts.map +1 -1
  153. package/dist/src/blocks/agent-harness/agent-harness.stories.tsx +114 -0
  154. package/dist/src/blocks/agent-harness/agent-harness.tsx +144 -63
  155. package/dist/src/blocks/commander/commander.stories.tsx +31 -0
  156. package/dist/src/blocks/dashboard-grid/dashboard-grid.d.ts +48 -0
  157. package/dist/src/blocks/dashboard-grid/dashboard-grid.d.ts.map +1 -0
  158. package/dist/src/blocks/dashboard-grid/dashboard-grid.stories.tsx +19 -0
  159. package/dist/src/blocks/dashboard-grid/dashboard-grid.tsx +110 -0
  160. package/dist/src/blocks/dashboard-grid/index.d.ts +2 -0
  161. package/dist/src/blocks/dashboard-grid/index.d.ts.map +1 -0
  162. package/dist/src/blocks/delete-resource/delete-resource.stories.tsx +31 -0
  163. package/dist/src/blocks/map-block/map-block.stories.tsx +41 -0
  164. package/dist/src/blocks/metrics-overview/index.d.ts +2 -0
  165. package/dist/src/blocks/metrics-overview/index.d.ts.map +1 -0
  166. package/dist/src/blocks/metrics-overview/metrics-overview.d.ts +67 -0
  167. package/dist/src/blocks/metrics-overview/metrics-overview.d.ts.map +1 -0
  168. package/dist/src/blocks/metrics-overview/metrics-overview.stories.tsx +26 -0
  169. package/dist/src/blocks/metrics-overview/metrics-overview.tsx +139 -0
  170. package/dist/src/blocks/page-header/page-header.stories.tsx +56 -0
  171. package/dist/src/blocks/resource-list/resource-list.stories.tsx +31 -0
  172. package/dist/src/catalog/catalog.d.ts +1 -1
  173. package/dist/src/catalog/index.d.ts +1 -1
  174. package/dist/src/catalog/types.d.ts +1 -1
  175. package/dist/src/command-line/build-cli.d.ts +1 -1
  176. package/dist/src/command-line/cli.d.ts +1 -1
  177. package/dist/src/command-line/commands/add.d.ts +1 -1
  178. package/dist/src/command-line/commands/add.d.ts.map +1 -1
  179. package/dist/src/command-line/commands/ai.d.ts.map +1 -1
  180. package/dist/src/command-line/commands/blocks.d.ts +1 -1
  181. package/dist/src/command-line/commands/blocks.d.ts.map +1 -1
  182. package/dist/src/command-line/commands/doc.d.ts +1 -1
  183. package/dist/src/command-line/commands/doc.d.ts.map +1 -1
  184. package/dist/src/command-line/commands/ls.d.ts +1 -1
  185. package/dist/src/command-line/commands/ls.d.ts.map +1 -1
  186. package/dist/src/command-line/commands/migrate.d.ts +3 -3
  187. package/dist/src/command-line/commands/migrate.d.ts.map +1 -1
  188. package/dist/src/command-line/utils/config.d.ts +1 -1
  189. package/dist/src/command-line/utils/transformer.d.ts +1 -1
  190. package/dist/src/components/ai-part-group/ai-part-group.d.ts +134 -0
  191. package/dist/src/components/ai-part-group/ai-part-group.d.ts.map +1 -0
  192. package/dist/src/components/ai-part-group/index.d.ts +2 -0
  193. package/dist/src/components/ai-part-group/index.d.ts.map +1 -0
  194. package/dist/src/components/ai-prompt-input/ai-prompt-input.d.ts +196 -7
  195. package/dist/src/components/ai-prompt-input/ai-prompt-input.d.ts.map +1 -1
  196. package/dist/src/components/ai-prompt-input/controller.d.ts +41 -0
  197. package/dist/src/components/ai-prompt-input/controller.d.ts.map +1 -0
  198. package/dist/src/components/ai-prompt-input/index.d.ts +3 -1
  199. package/dist/src/components/ai-prompt-input/index.d.ts.map +1 -1
  200. package/dist/src/components/ai-prompt-input/types.d.ts +86 -0
  201. package/dist/src/components/ai-prompt-input/types.d.ts.map +1 -0
  202. package/dist/src/components/ai-reasoning/ai-reasoning.d.ts +17 -1
  203. package/dist/src/components/ai-reasoning/ai-reasoning.d.ts.map +1 -1
  204. package/dist/src/components/ai-response/ai-response.d.ts +1 -2
  205. package/dist/src/components/ai-response/ai-response.d.ts.map +1 -1
  206. package/dist/src/components/ai-task-list/ai-task-list.d.ts.map +1 -1
  207. package/dist/src/components/ai-tool/ai-tool.d.ts +17 -1
  208. package/dist/src/components/ai-tool/ai-tool.d.ts.map +1 -1
  209. package/dist/src/components/chart/area-chart.d.ts +69 -0
  210. package/dist/src/components/chart/area-chart.d.ts.map +1 -0
  211. package/dist/src/components/chart/bar-chart.d.ts +60 -0
  212. package/dist/src/components/chart/bar-chart.d.ts.map +1 -0
  213. package/dist/src/components/chart/color.d.ts +56 -0
  214. package/dist/src/components/chart/color.d.ts.map +1 -1
  215. package/dist/src/components/chart/echart.d.ts.map +1 -1
  216. package/dist/src/components/chart/index.d.ts +5 -0
  217. package/dist/src/components/chart/index.d.ts.map +1 -1
  218. package/dist/src/components/chart/pie-chart.d.ts +64 -0
  219. package/dist/src/components/chart/pie-chart.d.ts.map +1 -0
  220. package/dist/src/components/chart/scatter-chart.d.ts +57 -0
  221. package/dist/src/components/chart/scatter-chart.d.ts.map +1 -0
  222. package/dist/src/components/chart/stacked-bar-chart.d.ts +59 -0
  223. package/dist/src/components/chart/stacked-bar-chart.d.ts.map +1 -0
  224. package/dist/src/components/chart/timeseries-chart.d.ts.map +1 -1
  225. package/dist/src/components/code/code.d.ts +1 -1
  226. package/dist/src/components/command-palette/command-palette.d.ts +1 -1
  227. package/dist/src/components/data-grid/data-grid.d.ts.map +1 -1
  228. package/dist/src/components/data-grid/index.d.ts +1 -1
  229. package/dist/src/components/data-grid/index.d.ts.map +1 -1
  230. package/dist/src/components/data-grid/types.d.ts.map +1 -1
  231. package/dist/src/components/date-picker/date-picker.d.ts +2 -2
  232. package/dist/src/components/filters/filters.d.ts.map +1 -1
  233. package/dist/src/components/filters/helpers.d.ts.map +1 -1
  234. package/dist/src/components/filters/types.d.ts.map +1 -1
  235. package/dist/src/components/layer-card/layer-card.d.ts +1 -1
  236. package/dist/src/components/link/link.d.ts +2 -2
  237. package/dist/src/components/radio/radio.d.ts +1 -1
  238. package/dist/src/components/select/select.d.ts +1 -1
  239. package/dist/src/components/sidebar/sidebar.d.ts +2 -2
  240. package/dist/src/components/sparkline/index.d.ts +2 -0
  241. package/dist/src/components/sparkline/index.d.ts.map +1 -0
  242. package/dist/src/components/sparkline/sparkline.d.ts +52 -0
  243. package/dist/src/components/sparkline/sparkline.d.ts.map +1 -0
  244. package/dist/src/components/stat-card/index.d.ts +2 -0
  245. package/dist/src/components/{ai-loader → stat-card}/index.d.ts.map +1 -1
  246. package/dist/src/components/stat-card/stat-card.d.ts +80 -0
  247. package/dist/src/components/stat-card/stat-card.d.ts.map +1 -0
  248. package/dist/src/components/text-roll/index.d.ts +2 -0
  249. package/dist/src/components/text-roll/index.d.ts.map +1 -0
  250. package/dist/src/components/text-roll/text-roll.d.ts +49 -0
  251. package/dist/src/components/text-roll/text-roll.d.ts.map +1 -0
  252. package/dist/src/components/toast/toast.d.ts.map +1 -1
  253. package/dist/src/components/use-agent-harness/use-agent-harness.d.ts +2 -2
  254. package/dist/src/genui/genui.d.ts.map +1 -1
  255. package/dist/src/index.d.ts +5 -2
  256. package/dist/src/index.d.ts.map +1 -1
  257. package/dist/src/primitives/index.d.ts +1 -0
  258. package/dist/src/primitives/index.d.ts.map +1 -1
  259. package/dist/src/primitives/otp-field.d.ts +13 -0
  260. package/dist/src/primitives/otp-field.d.ts.map +1 -0
  261. package/dist/src/registry/index.d.ts +1 -1
  262. package/dist/src/registry/types.d.ts +1 -1
  263. package/dist/stat-card-CEZscNh8.js +103 -0
  264. package/dist/stat-card-CEZscNh8.js.map +1 -0
  265. package/dist/styles/sf-binding.css +20 -62
  266. package/dist/styles/sf-standalone.css +2 -2
  267. package/dist/styles/shadcn.css +120 -0
  268. package/dist/styles/theme-blue-tint.css +98 -0
  269. package/dist/styles/theme-fedramp.css +3 -12
  270. package/dist/styles/theme-minimal.css +26 -104
  271. package/dist/styles/theme-sf.css +96 -114
  272. package/dist/{table-CIMx0Oq0.js → table-Rv4JMy0B.js} +2 -2
  273. package/dist/{table-CIMx0Oq0.js.map → table-Rv4JMy0B.js.map} +1 -1
  274. package/dist/text-roll-BZ3I1umc.js +79 -0
  275. package/dist/text-roll-BZ3I1umc.js.map +1 -0
  276. package/dist/{theme-toggle-Dpgnoj_Q.js → theme-toggle-Bhu681D7.js} +1 -1
  277. package/dist/{theme-toggle-Dpgnoj_Q.js.map → theme-toggle-Bhu681D7.js.map} +1 -1
  278. package/dist/{use-agent-harness-DZzcn96L.js → use-agent-harness-BMyF8pTq.js} +5 -5
  279. package/dist/use-agent-harness-BMyF8pTq.js.map +1 -0
  280. package/package.json +48 -19
  281. package/scripts/component-registry/discovery.ts +2 -2
  282. package/scripts/component-registry/index.ts +1 -1
  283. package/scripts/component-registry/props-filter.ts +1 -1
  284. package/scripts/component-registry/utils.ts +5 -5
  285. package/scripts/component-registry/variant-parser.ts +124 -19
  286. package/scripts/convert-demos-to-stories.ts +253 -0
  287. package/scripts/css-build.ts +4 -3
  288. package/scripts/generate-primitives.ts +11 -3
  289. package/scripts/theme-generator/config.ts +339 -71
  290. package/scripts/theme-generator/generate-css.ts +17 -3
  291. package/scripts/theme-generator/index.ts +3 -3
  292. package/scripts/theme-generator/migrate.ts +1 -1
  293. package/dist/ai-loader-Cr3eQkNS.js +0 -134
  294. package/dist/ai-loader-Cr3eQkNS.js.map +0 -1
  295. package/dist/ai-prompt-input-Bo1YuJly.js +0 -769
  296. package/dist/ai-prompt-input-Bo1YuJly.js.map +0 -1
  297. package/dist/ai-reasoning-UAmNx_LD.js.map +0 -1
  298. package/dist/ai-response-BWoVsNQG.js.map +0 -1
  299. package/dist/ai-task-list-B9CpMDYN.js.map +0 -1
  300. package/dist/ai-timeline-Bb5ntsr3.js.map +0 -1
  301. package/dist/ai-tool-BGH8nQ_D.js.map +0 -1
  302. package/dist/chart-Bes4MN3C.js.map +0 -1
  303. package/dist/checkbox-CPX7lBaU.js.map +0 -1
  304. package/dist/command-palette-CBTY8EiF.js.map +0 -1
  305. package/dist/components/ai-loader.js +0 -3
  306. package/dist/data-grid-UJ9ja5cu.js.map +0 -1
  307. package/dist/dist-BNlyONdD.js.map +0 -1
  308. package/dist/filters-BdBogf7D.js.map +0 -1
  309. package/dist/radio-B7zg1wUI.js.map +0 -1
  310. package/dist/select-9p721G00.js.map +0 -1
  311. package/dist/sidebar-DOwBrq57.js.map +0 -1
  312. package/dist/src/components/ai-loader/ai-loader.d.ts +0 -44
  313. package/dist/src/components/ai-loader/ai-loader.d.ts.map +0 -1
  314. package/dist/src/components/ai-loader/index.d.ts +0 -2
  315. package/dist/styles/theme-navigator.css +0 -137
  316. package/dist/use-agent-harness-DZzcn96L.js.map +0 -1
@@ -3,10 +3,10 @@
3
3
  *
4
4
  * Single source of truth for all semantic color tokens and typography.
5
5
  * This config is used to generate:
6
- * - theme-sf.css (base theme)
6
+ * - theme-sf.css (base theme — neutral, WCAG-tuned)
7
7
  * - theme-fedramp.css (fedramp overrides)
8
- * - theme-minimal.css (minimal/borderless overrides)
9
- * - Any future theme files
8
+ * - theme-minimal.css (minimal overrides)
9
+ * - theme-blue-tint.css (prior sf look — blue-tinted dark surfaces)
10
10
  *
11
11
  * Token naming:
12
12
  * - Key = current token name used in codebase
@@ -21,16 +21,20 @@ export const THEME_CONFIG: ThemeConfig = {
21
21
  * Used with: text-{token}
22
22
  * CSS variable: --text-color-{token}
23
23
  *
24
- * Core text colors (default, inverse, strong) reference navigator vars.
25
- * Everything else uses original sf defaults.
24
+ * The `sf` slot is the unconditional baseline (no selector).
25
+ * Other keys are opt-in overrides applied under [data-theme="..."].
26
26
  */
27
27
  text: {
28
28
  "sf-default": {
29
29
  newName: "",
30
30
  theme: {
31
31
  sf: {
32
- light: "var(--foreground, oklch(0.145 0 0))",
33
- dark: "var(--foreground, oklch(0.985 0 0))",
32
+ light: "oklch(0.145 0 0)",
33
+ dark: "oklch(0.985 0 0)",
34
+ },
35
+ blueTint: {
36
+ light: "oklch(0.145 0 0)",
37
+ dark: "oklch(0.985 0 0)",
34
38
  },
35
39
  },
36
40
  },
@@ -38,8 +42,8 @@ export const THEME_CONFIG: ThemeConfig = {
38
42
  newName: "",
39
43
  theme: {
40
44
  sf: {
41
- light: "var(--primary-foreground, oklch(0.985 0 0))",
42
- dark: "var(--primary-foreground, oklch(0.145 0 0))",
45
+ light: "oklch(0.985 0 0)",
46
+ dark: "oklch(0.145 0 0)",
43
47
  },
44
48
  },
45
49
  },
@@ -47,39 +51,51 @@ export const THEME_CONFIG: ThemeConfig = {
47
51
  newName: "",
48
52
  theme: {
49
53
  sf: {
50
- light: "var(--muted-foreground, oklch(0.556 0 0))",
51
- dark: "var(--muted-foreground, oklch(0.65 0 0))",
54
+ light: "oklch(0.45 0 0)",
55
+ dark: "oklch(0.80 0 0)",
52
56
  },
53
57
  minimal: {
54
58
  light: "oklch(0.50 0 0)",
55
59
  dark: "oklch(0.55 0 0)",
56
60
  },
61
+ blueTint: {
62
+ light: "oklch(0.556 0 0)",
63
+ dark: "oklch(0.65 0 0)",
64
+ },
57
65
  },
58
66
  },
59
67
  "sf-subtle": {
60
68
  newName: "",
61
69
  theme: {
62
70
  sf: {
63
- light: "var(--color-neutral-500, oklch(55.6% 0 0))",
64
- dark: "var(--color-neutral-50, oklch(98.5% 0 0))",
71
+ light: "oklch(0.45 0 0)",
72
+ dark: "oklch(0.72 0 0)",
65
73
  },
66
74
  minimal: {
67
75
  light: "oklch(0.55 0 0)",
68
76
  dark: "oklch(0.45 0 0)",
69
77
  },
78
+ blueTint: {
79
+ light: "var(--color-neutral-500, oklch(55.6% 0 0))",
80
+ dark: "var(--color-neutral-50, oklch(98.5% 0 0))",
81
+ },
70
82
  },
71
83
  },
72
84
  "sf-inactive": {
73
85
  newName: "",
74
86
  theme: {
75
87
  sf: {
76
- light: "var(--color-neutral-400, oklch(70.8% 0 0))",
77
- dark: "var(--color-neutral-600, oklch(70.8% 0 0))",
88
+ light: "oklch(0.55 0 0)",
89
+ dark: "oklch(0.60 0 0)",
78
90
  },
79
91
  minimal: {
80
92
  light: "oklch(0.65 0 0)",
81
93
  dark: "oklch(0.35 0 0)",
82
94
  },
95
+ blueTint: {
96
+ light: "var(--color-neutral-400, oklch(70.8% 0 0))",
97
+ dark: "var(--color-neutral-600, oklch(70.8% 0 0))",
98
+ },
83
99
  },
84
100
  },
85
101
  "sf-brand": {
@@ -113,26 +129,34 @@ export const THEME_CONFIG: ThemeConfig = {
113
129
  newName: "",
114
130
  theme: {
115
131
  sf: {
116
- light: "var(--destructive, oklch(0.577 0.245 27.325))",
117
- dark: "var(--destructive, oklch(0.55 0.18 25))",
132
+ light: "oklch(0.50 0.15 25)",
133
+ dark: "oklch(0.68 0.16 25)",
118
134
  },
119
135
  minimal: {
120
136
  light: "oklch(0.55 0.12 25)",
121
137
  dark: "oklch(0.55 0.10 25)",
122
138
  },
139
+ blueTint: {
140
+ light: "oklch(0.577 0.245 27.325)",
141
+ dark: "oklch(0.55 0.18 25)",
142
+ },
123
143
  },
124
144
  },
125
145
  "sf-warning": {
126
146
  newName: "",
127
147
  theme: {
128
148
  sf: {
129
- light: "var(--color-yellow-800, oklch(47.6% 0.114 61.907))",
130
- dark: "var(--color-yellow-400, oklch(85.2% 0.199 91.936))",
149
+ light: "oklch(0.45 0.10 66)",
150
+ dark: "oklch(0.78 0.12 80)",
131
151
  },
132
152
  minimal: {
133
153
  light: "oklch(0.55 0.08 66)",
134
154
  dark: "oklch(0.65 0.08 66)",
135
155
  },
156
+ blueTint: {
157
+ light: "var(--color-yellow-800, oklch(47.6% 0.114 61.907))",
158
+ dark: "var(--color-yellow-400, oklch(85.2% 0.199 91.936))",
159
+ },
136
160
  },
137
161
  },
138
162
  },
@@ -141,18 +165,14 @@ export const THEME_CONFIG: ThemeConfig = {
141
165
  * Color tokens
142
166
  * Used with: bg-{token}, border-{token}, ring-{token}, etc.
143
167
  * CSS variable: --color-{token}
144
- *
145
- * Surface colors (base, contrast), borders (line, interact, ring),
146
- * and brand reference navigator vars.
147
- * Everything else uses original sf defaults.
148
168
  */
149
169
  color: {
150
170
  "sf-canvas": {
151
171
  newName: "",
152
172
  theme: {
153
173
  sf: {
154
- light: "var(--color-neutral-50, oklch(0.985 0 0))",
155
- dark: "var(--color-neutral-950, oklch(0.14 0 0))",
174
+ light: "oklch(0.95 0 0)",
175
+ dark: "oklch(0.10 0 0)",
156
176
  },
157
177
  fedramp: {
158
178
  light: "#5b697c",
@@ -162,14 +182,18 @@ export const THEME_CONFIG: ThemeConfig = {
162
182
  light: "oklch(0.95 0 0)",
163
183
  dark: "oklch(0.10 0 0)",
164
184
  },
185
+ blueTint: {
186
+ light: "var(--color-neutral-50, oklch(0.985 0 0))",
187
+ dark: "var(--color-neutral-950, oklch(0.14 0 0))",
188
+ },
165
189
  },
166
190
  },
167
191
  "sf-base": {
168
192
  newName: "",
169
193
  theme: {
170
194
  sf: {
171
- light: "var(--background, oklch(1 0 0))",
172
- dark: "var(--background, oklch(0.21 0.005 252))",
195
+ light: "oklch(0.97 0 0)",
196
+ dark: "oklch(0.14 0 0)",
173
197
  },
174
198
  fedramp: {
175
199
  light: "#5b697c",
@@ -179,92 +203,122 @@ export const THEME_CONFIG: ThemeConfig = {
179
203
  light: "oklch(0.97 0 0)",
180
204
  dark: "oklch(0.14 0 0)",
181
205
  },
206
+ blueTint: {
207
+ light: "oklch(1 0 0)",
208
+ dark: "oklch(0.21 0.005 252)",
209
+ },
182
210
  },
183
211
  },
184
212
  "sf-elevated": {
185
213
  newName: "",
186
214
  theme: {
187
215
  sf: {
188
- light: "var(--color-neutral-25, oklch(0.99 0 0))",
189
- dark: "var(--background, oklch(0.21 0.005 252))",
216
+ light: "oklch(1 0 0)",
217
+ dark: "oklch(0.22 0 0)",
190
218
  },
191
219
  minimal: {
192
220
  light: "oklch(1 0 0)",
193
221
  dark: "oklch(0.22 0 0)",
194
222
  },
223
+ blueTint: {
224
+ light: "oklch(0.99 0 0)",
225
+ dark: "oklch(0.24 0.005 252)",
226
+ },
195
227
  },
196
228
  },
197
229
  "sf-recessed": {
198
230
  newName: "",
199
231
  theme: {
200
232
  sf: {
201
- light: "var(--color-neutral-250, oklch(0.9 0 0))",
202
- dark: "var(--color-neutral-750, oklch(0.31 0 0))",
233
+ light: "oklch(0.92 0 0)",
234
+ dark: "oklch(0.10 0 0)",
203
235
  },
204
236
  minimal: {
205
237
  light: "oklch(0.92 0 0)",
206
238
  dark: "oklch(0.10 0 0)",
207
239
  },
240
+ blueTint: {
241
+ light: "var(--color-neutral-250, oklch(0.9 0 0))",
242
+ dark: "var(--color-neutral-750, oklch(0.31 0 0))",
243
+ },
208
244
  },
209
245
  },
210
246
  "sf-overlay": {
211
247
  newName: "",
212
248
  theme: {
213
249
  sf: {
214
- light: "var(--color-neutral-50, oklch(98.5% 0 0))",
215
- dark: "var(--color-neutral-950, oklch(0.10 0 0))",
250
+ light: "oklch(0.93 0 0)",
251
+ dark: "oklch(0.10 0 0)",
216
252
  },
217
253
  minimal: {
218
254
  light: "oklch(0.93 0 0)",
219
255
  dark: "oklch(0.10 0 0)",
220
256
  },
257
+ blueTint: {
258
+ light: "var(--color-neutral-50, oklch(98.5% 0 0))",
259
+ dark: "var(--color-neutral-950, oklch(0.10 0 0))",
260
+ },
221
261
  },
222
262
  },
223
263
  "sf-contrast": {
224
264
  newName: "",
225
265
  theme: {
226
266
  sf: {
227
- light: "var(--primary, oklch(0.205 0 0))",
228
- dark: "var(--primary, oklch(0.55 0.01 40))",
267
+ light: "oklch(0.35 0 0)",
268
+ dark: "oklch(0.75 0 0)",
229
269
  },
230
270
  minimal: {
231
271
  light: "oklch(0.35 0 0)",
232
272
  dark: "oklch(0.75 0 0)",
233
273
  },
274
+ blueTint: {
275
+ light: "oklch(0.205 0 0)",
276
+ dark: "oklch(0.55 0.01 40)",
277
+ },
234
278
  },
235
279
  },
236
280
  "sf-control": {
237
281
  newName: "",
238
282
  theme: {
239
283
  sf: {
240
- light: "var(--color-white, #fff)",
241
- dark: "var(--color-neutral-900, oklch(21% 0.006 285.885))",
284
+ light: "oklch(0.95 0 0)",
285
+ dark: "oklch(0.17 0 0)",
242
286
  },
243
287
  minimal: {
244
288
  light: "oklch(0.95 0 0)",
245
289
  dark: "oklch(0.17 0 0)",
246
290
  },
291
+ blueTint: {
292
+ light: "var(--color-white, #fff)",
293
+ dark: "var(--color-neutral-900, oklch(21% 0.006 285.885))",
294
+ },
247
295
  },
248
296
  },
249
297
  "sf-tint": {
250
298
  newName: "",
251
299
  theme: {
252
300
  sf: {
253
- light: "var(--color-neutral-150, oklch(0.96 0 0))",
254
- dark: "var(--color-neutral-850, oklch(0.23 0 0))",
301
+ light: "oklch(0.94 0 0)",
302
+ dark: "oklch(0.19 0 0)",
255
303
  },
256
304
  minimal: {
257
305
  light: "oklch(0.94 0 0)",
258
306
  dark: "oklch(0.19 0 0)",
259
307
  },
308
+ blueTint: {
309
+ light: "var(--color-neutral-150, oklch(0.96 0 0))",
310
+ dark: "var(--color-neutral-850, oklch(0.23 0 0))",
311
+ },
260
312
  },
261
313
  },
262
314
  "sf-interact": {
263
315
  newName: "",
264
316
  theme: {
265
317
  sf: {
266
- light: "var(--border, oklch(0.922 0 0))",
267
- dark: "var(--border, oklch(0.3 0.015 250))",
318
+ /* Interactive boundary (form controls, checkbox/radio idle).
319
+ More visible than sf-line so controls read as actionable. */
320
+ light: "oklch(0.80 0 0)",
321
+ dark: "oklch(0.38 0 0)",
268
322
  },
269
323
  },
270
324
  },
@@ -272,73 +326,95 @@ export const THEME_CONFIG: ThemeConfig = {
272
326
  newName: "",
273
327
  theme: {
274
328
  sf: {
275
- light: "var(--color-neutral-200, oklch(92.2% 0 0))",
276
- dark: "var(--color-neutral-800, oklch(26.9% 0 0))",
329
+ light: "oklch(0.91 0 0)",
330
+ dark: "oklch(0.27 0 0)",
277
331
  },
278
332
  minimal: {
279
333
  light: "oklch(0.91 0 0)",
280
334
  dark: "oklch(0.27 0 0)",
281
335
  },
336
+ blueTint: {
337
+ light: "var(--color-neutral-200, oklch(92.2% 0 0))",
338
+ dark: "var(--color-neutral-800, oklch(26.9% 0 0))",
339
+ },
282
340
  },
283
341
  },
284
342
  "sf-fill-hover": {
285
343
  newName: "",
286
344
  theme: {
287
345
  sf: {
288
- light: "var(--color-neutral-200, oklch(92.2% 0 0))",
289
- dark: "var(--color-neutral-700, oklch(37.1% 0 0))",
346
+ light: "oklch(0.88 0 0)",
347
+ dark: "oklch(0.31 0 0)",
290
348
  },
291
349
  minimal: {
292
350
  light: "oklch(0.88 0 0)",
293
351
  dark: "oklch(0.31 0 0)",
294
352
  },
353
+ blueTint: {
354
+ light: "var(--color-neutral-200, oklch(92.2% 0 0))",
355
+ dark: "var(--color-neutral-700, oklch(37.1% 0 0))",
356
+ },
295
357
  },
296
358
  },
297
359
  "sf-brand": {
298
360
  newName: "",
299
361
  theme: {
300
362
  sf: {
301
- light: "oklch(0.5772 0.2324 260)",
302
- dark: "oklch(0.5772 0.2324 260)",
363
+ light: "oklch(0.55 0.06 260)",
364
+ dark: "oklch(0.55 0.06 260)",
303
365
  },
304
366
  minimal: {
305
367
  light: "oklch(0.55 0.06 260)",
306
368
  dark: "oklch(0.55 0.06 260)",
307
369
  },
370
+ blueTint: {
371
+ light: "oklch(0.5772 0.2324 260)",
372
+ dark: "oklch(0.5772 0.2324 260)",
373
+ },
308
374
  },
309
375
  },
310
376
  "sf-brand-hover": {
311
377
  newName: "",
312
378
  theme: {
313
379
  sf: {
314
- light: "var(--color-blue-700, oklch(48.8% 0.243 264.376))",
315
- dark: "var(--color-blue-700, oklch(48.8% 0.243 264.376))",
380
+ light: "oklch(0.48 0.05 264)",
381
+ dark: "oklch(0.48 0.05 264)",
316
382
  },
317
383
  minimal: {
318
384
  light: "oklch(0.48 0.05 264)",
319
385
  dark: "oklch(0.48 0.05 264)",
320
386
  },
387
+ blueTint: {
388
+ light: "var(--color-blue-700, oklch(48.8% 0.243 264.376))",
389
+ dark: "var(--color-blue-700, oklch(48.8% 0.243 264.376))",
390
+ },
321
391
  },
322
392
  },
323
393
  "sf-line": {
324
394
  newName: "",
325
395
  theme: {
326
396
  sf: {
327
- light: "var(--border, oklch(0.922 0 0))",
328
- dark: "var(--border, oklch(0.3 0.015 250))",
397
+ /* Flat/minimal aesthetic: near-invisible by design. Decorative only —
398
+ contrast carried by text + sf-ring (focus) + surface elevation. */
399
+ light: "oklch(0.85 0 0 / 0.5)",
400
+ dark: "oklch(0.25 0 0 / 0.5)",
329
401
  },
330
402
  minimal: {
331
403
  light: "oklch(0.85 0 0 / 0.5)",
332
404
  dark: "oklch(0.25 0 0 / 0.5)",
333
405
  },
406
+ blueTint: {
407
+ light: "oklch(0.922 0 0)",
408
+ dark: "oklch(0.3 0.015 250)",
409
+ },
334
410
  },
335
411
  },
336
412
  "sf-ring": {
337
413
  newName: "",
338
414
  theme: {
339
415
  sf: {
340
- light: "var(--ring, oklch(0.708 0 0))",
341
- dark: "var(--ring, oklch(0.465 0.015 250))",
416
+ light: "oklch(0.55 0 0)",
417
+ dark: "oklch(0.60 0 0)",
342
418
  },
343
419
  fedramp: {
344
420
  light: "#c8d4e5",
@@ -348,19 +424,27 @@ export const THEME_CONFIG: ThemeConfig = {
348
424
  light: "oklch(0.65 0 0)",
349
425
  dark: "oklch(0.45 0 0)",
350
426
  },
427
+ blueTint: {
428
+ light: "oklch(0.708 0 0)",
429
+ dark: "oklch(0.465 0.015 250)",
430
+ },
351
431
  },
352
432
  },
353
433
  "sf-tip-shadow": {
354
434
  newName: "",
355
435
  theme: {
356
436
  sf: {
357
- light: "var(--color-gray-200, oklch(92.8% 0.006 264.531))",
437
+ light: "transparent",
358
438
  dark: "transparent",
359
439
  },
360
440
  minimal: {
361
441
  light: "transparent",
362
442
  dark: "transparent",
363
443
  },
444
+ blueTint: {
445
+ light: "var(--color-gray-200, oklch(92.8% 0.006 264.531))",
446
+ dark: "transparent",
447
+ },
364
448
  },
365
449
  },
366
450
  "sf-tip-stroke": {
@@ -368,90 +452,259 @@ export const THEME_CONFIG: ThemeConfig = {
368
452
  theme: {
369
453
  sf: {
370
454
  light: "transparent",
371
- dark: "var(--color-neutral-800, oklch(26.9% 0 0))",
455
+ dark: "transparent",
372
456
  },
373
457
  minimal: {
374
458
  light: "transparent",
375
459
  dark: "transparent",
376
460
  },
461
+ blueTint: {
462
+ light: "transparent",
463
+ dark: "var(--color-neutral-800, oklch(26.9% 0 0))",
464
+ },
377
465
  },
378
466
  },
379
467
  "sf-info": {
380
468
  newName: "",
381
469
  theme: {
382
470
  sf: {
383
- light: "var(--color-blue-500, oklch(62.3% 0.214 259.815))",
384
- dark: "var(--color-blue-700, oklch(48.8% 0.243 264.376))",
471
+ light: "oklch(0.55 0.06 260)",
472
+ dark: "oklch(0.55 0.06 260)",
385
473
  },
386
474
  minimal: {
387
475
  light: "oklch(0.55 0.06 260)",
388
476
  dark: "oklch(0.55 0.06 260)",
389
477
  },
478
+ blueTint: {
479
+ light: "var(--color-blue-500, oklch(62.3% 0.214 259.815))",
480
+ dark: "var(--color-blue-700, oklch(48.8% 0.243 264.376))",
481
+ },
390
482
  },
391
483
  },
392
484
  "sf-info-tint": {
393
485
  newName: "",
394
486
  theme: {
395
487
  sf: {
396
- light: "var(--color-blue-300, oklch(80.9% 0.105 251.813))",
397
- dark: "var(--color-blue-900, oklch(37.9% 0.146 265.522))",
488
+ light: "oklch(0.88 0.02 260)",
489
+ dark: "oklch(0.12 0.03 260)",
398
490
  },
399
491
  minimal: {
400
492
  light: "oklch(0.94 0.01 260)",
401
493
  dark: "oklch(0.20 0.02 260)",
402
494
  },
495
+ blueTint: {
496
+ light: "var(--color-blue-300, oklch(80.9% 0.105 251.813))",
497
+ dark: "var(--color-blue-900, oklch(37.9% 0.146 265.522))",
498
+ },
403
499
  },
404
500
  },
405
501
  "sf-warning": {
406
502
  newName: "",
407
503
  theme: {
408
504
  sf: {
409
- light: "var(--color-yellow-500, oklch(79.5% 0.184 86.047))",
410
- dark: "var(--color-yellow-700, oklch(55.4% 0.135 66.442))",
505
+ light: "oklch(0.55 0.08 66)",
506
+ dark: "oklch(0.65 0.08 66)",
411
507
  },
412
508
  minimal: {
413
509
  light: "oklch(0.55 0.08 66)",
414
510
  dark: "oklch(0.65 0.08 66)",
415
511
  },
512
+ blueTint: {
513
+ light: "var(--color-yellow-500, oklch(79.5% 0.184 86.047))",
514
+ dark: "var(--color-yellow-700, oklch(55.4% 0.135 66.442))",
515
+ },
416
516
  },
417
517
  },
418
518
  "sf-warning-tint": {
419
519
  newName: "",
420
520
  theme: {
421
521
  sf: {
422
- light: "var(--color-yellow-300, oklch(90.5% 0.182 98.111))",
423
- dark: "var(--color-yellow-900, oklch(42.1% 0.095 57.708))",
522
+ light: "oklch(0.94 0.02 60)",
523
+ dark: "oklch(0.22 0.03 60)",
424
524
  },
425
525
  minimal: {
426
526
  light: "oklch(0.94 0.02 60)",
427
527
  dark: "oklch(0.22 0.03 60)",
428
528
  },
529
+ blueTint: {
530
+ light: "var(--color-yellow-300, oklch(90.5% 0.182 98.111))",
531
+ dark: "var(--color-yellow-900, oklch(42.1% 0.095 57.708))",
532
+ },
429
533
  },
430
534
  },
431
535
  "sf-danger": {
432
536
  newName: "",
433
537
  theme: {
434
538
  sf: {
435
- light: "var(--destructive, oklch(0.577 0.245 27.325))",
436
- dark: "var(--destructive, oklch(0.55 0.18 25))",
539
+ light: "oklch(0.55 0.12 25)",
540
+ dark: "oklch(0.55 0.10 25)",
437
541
  },
438
542
  minimal: {
439
543
  light: "oklch(0.55 0.12 25)",
440
544
  dark: "oklch(0.55 0.10 25)",
441
545
  },
546
+ blueTint: {
547
+ light: "oklch(0.577 0.245 27.325)",
548
+ dark: "oklch(0.55 0.18 25)",
549
+ },
442
550
  },
443
551
  },
444
552
  "sf-danger-tint": {
445
553
  newName: "",
446
554
  theme: {
447
555
  sf: {
448
- light: "var(--color-red-300, oklch(80.8% 0.114 19.571))",
449
- dark: "var(--color-red-900, oklch(39.6% 0.141 25.723))",
556
+ light: "oklch(0.94 0.02 25)",
557
+ dark: "oklch(0.16 0.04 25)",
450
558
  },
451
559
  minimal: {
452
560
  light: "oklch(0.94 0.02 25)",
453
561
  dark: "oklch(0.20 0.04 25)",
454
562
  },
563
+ blueTint: {
564
+ light: "var(--color-red-300, oklch(80.8% 0.114 19.571))",
565
+ dark: "var(--color-red-900, oklch(39.6% 0.141 25.723))",
566
+ },
567
+ },
568
+ },
569
+ "sf-success": {
570
+ newName: "",
571
+ description:
572
+ "Success signal color (previously hardcoded in the shadcn bridge)",
573
+ theme: {
574
+ sf: {
575
+ light: "oklch(0.723 0.219 149.579)",
576
+ dark: "oklch(0.723 0.219 149.579)",
577
+ },
578
+ },
579
+ },
580
+ "sf-chart-1": {
581
+ newName: "",
582
+ description: "Chart series 1 (shadcn chart-1 equivalent)",
583
+ theme: {
584
+ sf: {
585
+ light: "oklch(0.646 0.222 41.116)",
586
+ dark: "oklch(0.646 0.222 41.116)",
587
+ },
588
+ },
589
+ },
590
+ "sf-chart-2": {
591
+ newName: "",
592
+ description: "Chart series 2 (shadcn chart-2 equivalent)",
593
+ theme: {
594
+ sf: {
595
+ light: "oklch(0.6 0.118 184.704)",
596
+ dark: "oklch(0.6 0.118 184.704)",
597
+ },
598
+ },
599
+ },
600
+ "sf-chart-3": {
601
+ newName: "",
602
+ description: "Chart series 3 (shadcn chart-3 equivalent)",
603
+ theme: {
604
+ sf: {
605
+ light: "oklch(0.398 0.07 227.392)",
606
+ dark: "oklch(0.398 0.07 227.392)",
607
+ },
608
+ },
609
+ },
610
+ "sf-chart-4": {
611
+ newName: "",
612
+ description: "Chart series 4 (shadcn chart-4 equivalent)",
613
+ theme: {
614
+ sf: {
615
+ light: "oklch(0.828 0.189 84.429)",
616
+ dark: "oklch(0.828 0.189 84.429)",
617
+ },
618
+ },
619
+ },
620
+ "sf-chart-5": {
621
+ newName: "",
622
+ description: "Chart series 5 (shadcn chart-5 equivalent)",
623
+ theme: {
624
+ sf: {
625
+ light: "oklch(0.769 0.188 70.08)",
626
+ dark: "oklch(0.769 0.188 70.08)",
627
+ },
628
+ },
629
+ },
630
+ "sf-syntax-keyword": {
631
+ newName: "",
632
+ description: "sugar-high syntax: keywords",
633
+ theme: {
634
+ sf: {
635
+ light: "oklch(0.52 0.20 265)",
636
+ dark: "oklch(0.72 0.19 255)",
637
+ },
638
+ },
639
+ },
640
+ "sf-syntax-identifier": {
641
+ newName: "",
642
+ description: "sugar-high syntax: identifiers",
643
+ theme: {
644
+ sf: {
645
+ light: "oklch(0.38 0.13 150)",
646
+ dark: "oklch(0.75 0.15 155)",
647
+ },
648
+ },
649
+ },
650
+ "sf-syntax-string": {
651
+ newName: "",
652
+ description: "sugar-high syntax: strings",
653
+ theme: {
654
+ sf: {
655
+ light: "oklch(0.48 0.16 25)",
656
+ dark: "oklch(0.72 0.14 60)",
657
+ },
658
+ },
659
+ },
660
+ "sf-syntax-comment": {
661
+ newName: "",
662
+ description: "sugar-high syntax: comments",
663
+ theme: {
664
+ sf: {
665
+ light: "oklch(0.62 0 0)",
666
+ dark: "oklch(0.55 0 0)",
667
+ },
668
+ },
669
+ },
670
+ "sf-syntax-jsxliterals": {
671
+ newName: "",
672
+ description: "sugar-high syntax: JSX literals",
673
+ theme: {
674
+ sf: {
675
+ light: "oklch(0.52 0.20 265)",
676
+ dark: "oklch(0.72 0.19 255)",
677
+ },
678
+ },
679
+ },
680
+ "sf-syntax-property": {
681
+ newName: "",
682
+ description: "sugar-high syntax: property access",
683
+ theme: {
684
+ sf: {
685
+ light: "oklch(0.38 0.12 220)",
686
+ dark: "oklch(0.72 0.12 215)",
687
+ },
688
+ },
689
+ },
690
+ "sf-syntax-entity": {
691
+ newName: "",
692
+ description: "sugar-high syntax: entities",
693
+ theme: {
694
+ sf: {
695
+ light: "oklch(0.46 0.18 30)",
696
+ dark: "oklch(0.75 0.15 55)",
697
+ },
698
+ },
699
+ },
700
+ "sf-syntax-sign": {
701
+ newName: "",
702
+ description: "sugar-high syntax: operators/signs",
703
+ theme: {
704
+ sf: {
705
+ light: "oklch(0.45 0 0)",
706
+ dark: "oklch(0.70 0 0)",
707
+ },
455
708
  },
456
709
  },
457
710
  },
@@ -462,7 +715,6 @@ export const THEME_CONFIG: ThemeConfig = {
462
715
  * CSS variables: --text-{size}, --text-{size}--line-height
463
716
  *
464
717
  * Note: Typography is NOT theme-dependent (no light/dark mode).
465
- * Values are the same across color modes but may differ per theme.
466
718
  */
467
719
  typography: {
468
720
  xs: {
@@ -517,14 +769,30 @@ export const THEME_CONFIG: ThemeConfig = {
517
769
  };
518
770
 
519
771
  /** List of all available themes */
520
- export const AVAILABLE_THEMES = ["sf", "fedramp", "minimal"] as const;
772
+ export const AVAILABLE_THEMES = [
773
+ "sf",
774
+ "fedramp",
775
+ "minimal",
776
+ "blueTint",
777
+ ] as const;
521
778
  export type AvailableTheme = (typeof AVAILABLE_THEMES)[number];
522
779
 
523
780
  /**
524
- * Extra raw CSS lines appended inside [data-theme="..."] for each theme.
525
- * Used for overrides that don't fit the token system (e.g. Tailwind shadow vars).
781
+ * Extra raw CSS lines per theme. For the baseline `sf` entry, these are
782
+ * emitted into a `:root { ... }` block in theme-sf.css (so they always apply).
783
+ * For other themes, they are appended inside the [data-theme="..."] override.
526
784
  */
527
785
  export const THEME_EXTRAS: Record<string, string[]> = {
786
+ sf: [
787
+ "/* Shadow overrides — flatten all elevation for the minimal-derived default */",
788
+ "--shadow-2xs: 0 0 0 0 transparent;",
789
+ "--shadow-xs: 0 0 0 0 transparent;",
790
+ "--shadow-sm: 0 0 0 0 transparent;",
791
+ "--shadow-md: 0 0 0 0 transparent;",
792
+ "--shadow-lg: 0 0 0 0 transparent;",
793
+ "--shadow-xl: 0 0 0 0 transparent;",
794
+ "--shadow-2xl: 0 0 0 0 transparent;",
795
+ ],
528
796
  minimal: [
529
797
  "/* Shadow overrides — flatten all elevation */",
530
798
  "--shadow-2xs: 0 0 0 0 transparent;",