@signalflare-ai/ui 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/CHANGELOG.md +37 -4
  2. package/README.md +1 -1
  3. package/ai/component-registry.json +1047 -183
  4. package/ai/component-registry.md +4241 -50
  5. package/ai/schemas.ts +99 -502
  6. package/dist/.build-complete +1 -1
  7. package/dist/ai/schemas.d.ts +76 -58
  8. package/dist/ai/schemas.d.ts.map +1 -1
  9. package/dist/{ai-actions-DSVeQn4e.js → ai-actions-BdUZI3Gk.js} +3 -3
  10. package/dist/{ai-actions-DSVeQn4e.js.map → ai-actions-BdUZI3Gk.js.map} +1 -1
  11. package/dist/{ai-agent-card-BXHwhWAU.js → ai-agent-card-BR2NIYhi.js} +1 -1
  12. package/dist/{ai-agent-card-BXHwhWAU.js.map → ai-agent-card-BR2NIYhi.js.map} +1 -1
  13. package/dist/{ai-approval-aa0qvjFN.js → ai-approval-Ba7mrKba.js} +2 -2
  14. package/dist/{ai-approval-aa0qvjFN.js.map → ai-approval-Ba7mrKba.js.map} +1 -1
  15. package/dist/{ai-code-block-BgtIxtZZ.js → ai-code-block-CZtoL73R.js} +3 -3
  16. package/dist/{ai-code-block-BgtIxtZZ.js.map → ai-code-block-CZtoL73R.js.map} +1 -1
  17. package/dist/ai-conversation-Cc7WlaBg.js +242 -0
  18. package/dist/ai-conversation-Cc7WlaBg.js.map +1 -0
  19. package/dist/{ai-info-banner-uFxHHwBA.js → ai-info-banner-C7EWPBj7.js} +7 -3
  20. package/dist/ai-info-banner-C7EWPBj7.js.map +1 -0
  21. package/dist/{ai-message-BjnFznXy.js → ai-message-Bp7L68U_.js} +27 -8
  22. package/dist/ai-message-Bp7L68U_.js.map +1 -0
  23. package/dist/{ai-mission-header-08__gULL.js → ai-mission-header-TiCJfTNt.js} +1 -1
  24. package/dist/{ai-mission-header-08__gULL.js.map → ai-mission-header-TiCJfTNt.js.map} +1 -1
  25. package/dist/{ai-part-group-DBtgTgAn.js → ai-part-group-DNb9I446.js} +3 -3
  26. package/dist/{ai-part-group-DBtgTgAn.js.map → ai-part-group-DNb9I446.js.map} +1 -1
  27. package/dist/{ai-prompt-input-Dy1LfxPk.js → ai-prompt-input-BVvov_KF.js} +467 -25
  28. package/dist/ai-prompt-input-BVvov_KF.js.map +1 -0
  29. package/dist/{ai-question-CHHoDJMg.js → ai-question-GPPMk7YM.js} +2 -2
  30. package/dist/{ai-question-CHHoDJMg.js.map → ai-question-GPPMk7YM.js.map} +1 -1
  31. package/dist/{ai-reasoning-CnL6ZSr5.js → ai-reasoning-_feFjk56.js} +2 -2
  32. package/dist/{ai-reasoning-CnL6ZSr5.js.map → ai-reasoning-_feFjk56.js.map} +1 -1
  33. package/dist/{ai-response-BEUg3xvd.js → ai-response-CvjV3WhV.js} +8 -3
  34. package/dist/ai-response-CvjV3WhV.js.map +1 -0
  35. package/dist/{ai-shimmer-By5_L05p.js → ai-shimmer-j6lKIrjj.js} +1 -1
  36. package/dist/{ai-shimmer-By5_L05p.js.map → ai-shimmer-j6lKIrjj.js.map} +1 -1
  37. package/dist/{ai-status-badge-BGYGWYF6.js → ai-status-badge-CSU_QOdz.js} +1 -1
  38. package/dist/{ai-status-badge-BGYGWYF6.js.map → ai-status-badge-CSU_QOdz.js.map} +1 -1
  39. package/dist/{ai-streaming-text-CMfoThV0.js → ai-streaming-text-IWW1BhvZ.js} +44 -16
  40. package/dist/ai-streaming-text-IWW1BhvZ.js.map +1 -0
  41. package/dist/{ai-subagent-DcPRqkAA.js → ai-subagent-JA4iIMW3.js} +13 -5
  42. package/dist/ai-subagent-JA4iIMW3.js.map +1 -0
  43. package/dist/{ai-suggestion-MgeCg5Ar.js → ai-suggestion-BdO6MBuH.js} +2 -2
  44. package/dist/{ai-suggestion-MgeCg5Ar.js.map → ai-suggestion-BdO6MBuH.js.map} +1 -1
  45. package/dist/{ai-task-list-Da9zIm00.js → ai-task-list-DYw4R1FA.js} +12 -5
  46. package/dist/ai-task-list-DYw4R1FA.js.map +1 -0
  47. package/dist/{ai-timeline-Cwu045IR.js → ai-timeline-C42tOUT8.js} +1 -1
  48. package/dist/{ai-timeline-Cwu045IR.js.map → ai-timeline-C42tOUT8.js.map} +1 -1
  49. package/dist/{ai-tool-Cn1O4xjP.js → ai-tool-03jOTwUI.js} +23 -10
  50. package/dist/ai-tool-03jOTwUI.js.map +1 -0
  51. package/dist/{ai-usage-bar-DjS12DMp.js → ai-usage-bar-BRf5LC_b.js} +1 -1
  52. package/dist/{ai-usage-bar-DjS12DMp.js.map → ai-usage-bar-BRf5LC_b.js.map} +1 -1
  53. package/dist/{badge-D_eaA6wv.js → badge-BheXjMc8.js} +2 -2
  54. package/dist/{badge-D_eaA6wv.js.map → badge-BheXjMc8.js.map} +1 -1
  55. package/dist/{banner-B_6oBrsu.js → banner-CcsjunJg.js} +7 -2
  56. package/dist/banner-CcsjunJg.js.map +1 -0
  57. package/dist/{breadcrumbs-BlmeYfgq.js → breadcrumbs-CouSyy3H.js} +3 -3
  58. package/dist/{breadcrumbs-BlmeYfgq.js.map → breadcrumbs-CouSyy3H.js.map} +1 -1
  59. package/dist/{button-De0267YU.js → button-CO6-qPax.js} +1 -1
  60. package/dist/{button-De0267YU.js.map → button-CO6-qPax.js.map} +1 -1
  61. package/dist/catalog.js +1 -1
  62. package/dist/{chart-BK3sVPnD.js → chart-Dg0qUeSc.js} +2 -2
  63. package/dist/{chart-BK3sVPnD.js.map → chart-Dg0qUeSc.js.map} +1 -1
  64. package/dist/{checkbox-DYhUmZNw.js → checkbox-D7p4QKsC.js} +2 -2
  65. package/dist/{checkbox-DYhUmZNw.js.map → checkbox-D7p4QKsC.js.map} +1 -1
  66. package/dist/{clipboard-text-ssybngLw.js → clipboard-text-kLaMogs3.js} +3 -3
  67. package/dist/{clipboard-text-ssybngLw.js.map → clipboard-text-kLaMogs3.js.map} +1 -1
  68. package/dist/{code-Cx-QSoOT.js → code-BN8InC0G.js} +2 -2
  69. package/dist/{code-Cx-QSoOT.js.map → code-BN8InC0G.js.map} +1 -1
  70. package/dist/{collapsible-DWsXeXmS.js → collapsible-D_ueZ0jz.js} +1 -1
  71. package/dist/{collapsible-DWsXeXmS.js.map → collapsible-D_ueZ0jz.js.map} +1 -1
  72. package/dist/{combobox-C0iW6a0r.js → combobox-B7TOK0U2.js} +3 -3
  73. package/dist/{combobox-C0iW6a0r.js.map → combobox-B7TOK0U2.js.map} +1 -1
  74. package/dist/{command-palette-DGzioeki.js → command-palette-CuNUyJca.js} +2 -2
  75. package/dist/{command-palette-DGzioeki.js.map → command-palette-CuNUyJca.js.map} +1 -1
  76. package/dist/components/ai-actions.js +1 -1
  77. package/dist/components/ai-agent-card.js +1 -1
  78. package/dist/components/ai-approval.js +1 -1
  79. package/dist/components/ai-code-block.js +1 -1
  80. package/dist/components/ai-conversation.js +2 -2
  81. package/dist/components/ai-info-banner.js +1 -1
  82. package/dist/components/ai-message.js +1 -1
  83. package/dist/components/ai-mission-header.js +1 -1
  84. package/dist/components/ai-part-group.js +1 -1
  85. package/dist/components/ai-prompt-input.js +2 -2
  86. package/dist/components/ai-question.js +1 -1
  87. package/dist/components/ai-reasoning.js +1 -1
  88. package/dist/components/ai-response.js +1 -1
  89. package/dist/components/ai-shimmer.js +1 -1
  90. package/dist/components/ai-status-badge.js +1 -1
  91. package/dist/components/ai-streaming-text.js +2 -2
  92. package/dist/components/ai-subagent.js +1 -1
  93. package/dist/components/ai-suggestion.js +1 -1
  94. package/dist/components/ai-task-list.js +1 -1
  95. package/dist/components/ai-timeline.js +1 -1
  96. package/dist/components/ai-tool.js +1 -1
  97. package/dist/components/ai-usage-bar.js +1 -1
  98. package/dist/components/badge.js +1 -1
  99. package/dist/components/banner.js +1 -1
  100. package/dist/components/breadcrumbs.js +1 -1
  101. package/dist/components/button.js +1 -1
  102. package/dist/components/chart.js +2 -2
  103. package/dist/components/checkbox.js +1 -1
  104. package/dist/components/clipboard-text.js +1 -1
  105. package/dist/components/code.js +1 -1
  106. package/dist/components/collapsible.js +1 -1
  107. package/dist/components/combobox.js +1 -1
  108. package/dist/components/command-palette.js +1 -1
  109. package/dist/components/data-grid.js +1 -1
  110. package/dist/components/date-picker.js +1 -1
  111. package/dist/components/date-range-picker.js +1 -1
  112. package/dist/components/dialog.js +1 -1
  113. package/dist/components/dropdown.js +1 -1
  114. package/dist/components/empty.js +1 -1
  115. package/dist/components/field.js +1 -1
  116. package/dist/components/filters.js +1 -1
  117. package/dist/components/flow.js +1 -1
  118. package/dist/components/grid.js +1 -1
  119. package/dist/components/input.js +2 -2
  120. package/dist/components/label.js +1 -1
  121. package/dist/components/layer-card.js +1 -1
  122. package/dist/components/loader.js +1 -1
  123. package/dist/components/menubar.js +1 -1
  124. package/dist/components/meter.js +1 -1
  125. package/dist/components/pagination.js +1 -1
  126. package/dist/components/popover.js +1 -1
  127. package/dist/components/radio.js +1 -1
  128. package/dist/components/select.js +1 -1
  129. package/dist/components/sensitive-input.js +1 -1
  130. package/dist/components/sidebar.js +1 -1
  131. package/dist/components/signalflare-ai-logo.js +1 -1
  132. package/dist/components/sparkline.js +1 -1
  133. package/dist/components/stat-card.js +1 -1
  134. package/dist/components/surface.js +1 -1
  135. package/dist/components/switch.js +1 -1
  136. package/dist/components/table.js +1 -1
  137. package/dist/components/tabs.js +1 -1
  138. package/dist/components/text-roll.js +1 -1
  139. package/dist/components/text.js +1 -1
  140. package/dist/components/theme-toggle.js +1 -1
  141. package/dist/components/toast.js +1 -1
  142. package/dist/components/tooltip.js +1 -1
  143. package/dist/components/use-agent-harness.js +1 -1
  144. package/dist/{data-grid-CG76N_hK.js → data-grid-DGHmU0w3.js} +8 -8
  145. package/dist/{data-grid-CG76N_hK.js.map → data-grid-DGHmU0w3.js.map} +1 -1
  146. package/dist/{date-picker-Dqg9L4xu.js → date-picker--ox89RBy.js} +1 -1
  147. package/dist/{date-picker-Dqg9L4xu.js.map → date-picker--ox89RBy.js.map} +1 -1
  148. package/dist/{date-range-picker-D75LLINc.js → date-range-picker-DVa7QBqE.js} +1 -1
  149. package/dist/{date-range-picker-D75LLINc.js.map → date-range-picker-DVa7QBqE.js.map} +1 -1
  150. package/dist/{dialog-CyHEQXEY.js → dialog-Bv1oSFOd.js} +2 -2
  151. package/dist/{dialog-CyHEQXEY.js.map → dialog-Bv1oSFOd.js.map} +1 -1
  152. package/dist/{dist-1-gcEL2L.js → dist-B6iWiWwp.js} +25 -25
  153. package/dist/{dist-1-gcEL2L.js.map → dist-B6iWiWwp.js.map} +1 -1
  154. package/dist/{dropdown-qnEYRFXZ.js → dropdown-B_nrGXjV.js} +2 -2
  155. package/dist/{dropdown-qnEYRFXZ.js.map → dropdown-B_nrGXjV.js.map} +1 -1
  156. package/dist/{echart-DURZEyai.js → echart-CdOUaT-r.js} +1 -1
  157. package/dist/{echart-DURZEyai.js.map → echart-CdOUaT-r.js.map} +1 -1
  158. package/dist/{empty-D2TypIId.js → empty-DZnN0zKX.js} +11 -6
  159. package/dist/empty-DZnN0zKX.js.map +1 -0
  160. package/dist/{field-Y_UK1_Cg.js → field-B_yVof52.js} +2 -2
  161. package/dist/{field-Y_UK1_Cg.js.map → field-B_yVof52.js.map} +1 -1
  162. package/dist/{filters-Bw_U6ZTx.js → filters-cpJCY21R.js} +7 -7
  163. package/dist/{filters-Bw_U6ZTx.js.map → filters-cpJCY21R.js.map} +1 -1
  164. package/dist/{flow-BRsYUCJa.js → flow-B4v198ot.js} +1 -1
  165. package/dist/{flow-BRsYUCJa.js.map → flow-B4v198ot.js.map} +1 -1
  166. package/dist/genui.js +1 -1
  167. package/dist/{grid-qUAN9hFx.js → grid-CEd64Lnh.js} +1 -1
  168. package/dist/{grid-qUAN9hFx.js.map → grid-CEd64Lnh.js.map} +1 -1
  169. package/dist/{highlight-to-react-ClEfL81q.js → highlight-to-react-D0Yav4jk.js} +1 -1
  170. package/dist/{highlight-to-react-ClEfL81q.js.map → highlight-to-react-D0Yav4jk.js.map} +1 -1
  171. package/dist/index.js +69 -69
  172. package/dist/{input-DXYUjGgD.js → input-B2bbijRh.js} +2 -2
  173. package/dist/{input-DXYUjGgD.js.map → input-B2bbijRh.js.map} +1 -1
  174. package/dist/{input-DddtBN-g.js → input-ClB_E4Lb.js} +4 -4
  175. package/dist/{input-DddtBN-g.js.map → input-ClB_E4Lb.js.map} +1 -1
  176. package/dist/{label-QtJxtJ4u.js → label-DUv_urO1.js} +2 -2
  177. package/dist/{label-QtJxtJ4u.js.map → label-DUv_urO1.js.map} +1 -1
  178. package/dist/{layer-card-BME0eljh.js → layer-card-BK7eYfwn.js} +1 -1
  179. package/dist/{layer-card-BME0eljh.js.map → layer-card-BK7eYfwn.js.map} +1 -1
  180. package/dist/layout-DJHMMap2.js +6103 -0
  181. package/dist/layout-DJHMMap2.js.map +1 -0
  182. package/dist/measured-text-BI3dTJmH.js +290 -0
  183. package/dist/measured-text-BI3dTJmH.js.map +1 -0
  184. package/dist/{menubar-C8NzAjfd.js → menubar-Cxf3xeAt.js} +2 -2
  185. package/dist/{menubar-C8NzAjfd.js.map → menubar-Cxf3xeAt.js.map} +1 -1
  186. package/dist/{meter-CpmTenEr.js → meter-BFFe9l5b.js} +1 -1
  187. package/dist/{meter-CpmTenEr.js.map → meter-BFFe9l5b.js.map} +1 -1
  188. package/dist/{pagination-BVqdlONY.js → pagination-yS372Tr4.js} +2 -2
  189. package/dist/{pagination-BVqdlONY.js.map → pagination-yS372Tr4.js.map} +1 -1
  190. package/dist/{popover-BRQZ2b6z.js → popover-SRoJaCZr.js} +1 -1
  191. package/dist/{popover-BRQZ2b6z.js.map → popover-SRoJaCZr.js.map} +1 -1
  192. package/dist/{radio-BNSwOt3B.js → radio-BcwhwYNB.js} +1 -1
  193. package/dist/{radio-BNSwOt3B.js.map → radio-BcwhwYNB.js.map} +1 -1
  194. package/dist/{select-1w2aebGQ.js → select-DMhdoHMa.js} +4 -4
  195. package/dist/{select-1w2aebGQ.js.map → select-DMhdoHMa.js.map} +1 -1
  196. package/dist/{sensitive-input-82Cez3vj.js → sensitive-input-CJUpIRal.js} +3 -3
  197. package/dist/{sensitive-input-82Cez3vj.js.map → sensitive-input-CJUpIRal.js.map} +1 -1
  198. package/dist/{sidebar-CAsCmSpM.js → sidebar-D4zrlYpn.js} +2 -2
  199. package/dist/{sidebar-CAsCmSpM.js.map → sidebar-D4zrlYpn.js.map} +1 -1
  200. package/dist/{signalflare-ai-logo-DDhxMJD6.js → signalflare-ai-logo-Bipogceq.js} +1 -1
  201. package/dist/{signalflare-ai-logo-DDhxMJD6.js.map → signalflare-ai-logo-Bipogceq.js.map} +1 -1
  202. package/dist/{skeleton-line-Do3UmGk9.js → skeleton-line-CH1-h6e2.js} +1 -1
  203. package/dist/{skeleton-line-Do3UmGk9.js.map → skeleton-line-CH1-h6e2.js.map} +1 -1
  204. package/dist/{sparkline-DdbeM4Ai.js → sparkline-DHmgj1d0.js} +2 -2
  205. package/dist/{sparkline-DdbeM4Ai.js.map → sparkline-DHmgj1d0.js.map} +1 -1
  206. package/dist/src/blocks/agent-harness/agent-harness.d.ts.map +1 -1
  207. package/dist/src/blocks/agent-harness/agent-harness.tsx +29 -5
  208. package/dist/src/components/ai-conversation/ai-conversation.d.ts +69 -37
  209. package/dist/src/components/ai-conversation/ai-conversation.d.ts.map +1 -1
  210. package/dist/src/components/ai-conversation/index.d.ts +2 -1
  211. package/dist/src/components/ai-conversation/index.d.ts.map +1 -1
  212. package/dist/src/components/ai-conversation/measurement-constants.d.ts +30 -0
  213. package/dist/src/components/ai-conversation/measurement-constants.d.ts.map +1 -0
  214. package/dist/src/components/ai-info-banner/ai-info-banner.d.ts.map +1 -1
  215. package/dist/src/components/ai-message/ai-message.d.ts +3 -0
  216. package/dist/src/components/ai-message/ai-message.d.ts.map +1 -1
  217. package/dist/src/components/ai-prompt-input/ai-prompt-input.d.ts +58 -4
  218. package/dist/src/components/ai-prompt-input/ai-prompt-input.d.ts.map +1 -1
  219. package/dist/src/components/ai-prompt-input/controller.d.ts +10 -2
  220. package/dist/src/components/ai-prompt-input/controller.d.ts.map +1 -1
  221. package/dist/src/components/ai-prompt-input/index.d.ts +2 -2
  222. package/dist/src/components/ai-prompt-input/index.d.ts.map +1 -1
  223. package/dist/src/components/ai-prompt-input/types.d.ts +16 -0
  224. package/dist/src/components/ai-prompt-input/types.d.ts.map +1 -1
  225. package/dist/src/components/ai-response/ai-response.d.ts +12 -1
  226. package/dist/src/components/ai-response/ai-response.d.ts.map +1 -1
  227. package/dist/src/components/ai-streaming-text/ai-streaming-text.d.ts +27 -0
  228. package/dist/src/components/ai-streaming-text/ai-streaming-text.d.ts.map +1 -1
  229. package/dist/src/components/ai-streaming-text/index.d.ts +1 -1
  230. package/dist/src/components/ai-streaming-text/index.d.ts.map +1 -1
  231. package/dist/src/components/ai-subagent/ai-subagent.d.ts.map +1 -1
  232. package/dist/src/components/ai-task-list/ai-task-list.d.ts.map +1 -1
  233. package/dist/src/components/ai-tool/ai-tool.d.ts.map +1 -1
  234. package/dist/src/components/banner/banner.d.ts.map +1 -1
  235. package/dist/src/components/empty/empty.d.ts.map +1 -1
  236. package/dist/src/components/stat-card/stat-card.d.ts +5 -0
  237. package/dist/src/components/stat-card/stat-card.d.ts.map +1 -1
  238. package/dist/src/components/text/text.d.ts +35 -1
  239. package/dist/src/components/text/text.d.ts.map +1 -1
  240. package/dist/src/components/tooltip/tooltip.d.ts.map +1 -1
  241. package/dist/src/index.d.ts +3 -3
  242. package/dist/src/index.d.ts.map +1 -1
  243. package/dist/src/utils/index.d.ts +2 -0
  244. package/dist/src/utils/index.d.ts.map +1 -1
  245. package/dist/src/utils/measured-text.d.ts +40 -0
  246. package/dist/src/utils/measured-text.d.ts.map +1 -0
  247. package/dist/src/utils/use-measured-text.d.ts +59 -0
  248. package/dist/src/utils/use-measured-text.d.ts.map +1 -0
  249. package/dist/{stat-card-CEZscNh8.js → stat-card-Ew-ofzEm.js} +28 -10
  250. package/dist/stat-card-Ew-ofzEm.js.map +1 -0
  251. package/dist/styles/sf-binding.css +9 -1
  252. package/dist/styles/sf-standalone.css +2 -2
  253. package/dist/styles/shadcn.css +1 -1
  254. package/dist/styles/theme-fedramp.css +12 -3
  255. package/dist/styles/theme-minimal.css +104 -26
  256. package/dist/styles/theme-sf.css +138 -39
  257. package/dist/styles/theme-vesper.css +91 -0
  258. package/dist/{surface-BduI7Ehl.js → surface-DGwRlC0o.js} +1 -1
  259. package/dist/{surface-BduI7Ehl.js.map → surface-DGwRlC0o.js.map} +1 -1
  260. package/dist/{switch-CzZBRBL7.js → switch-BxAMfHdt.js} +2 -2
  261. package/dist/{switch-CzZBRBL7.js.map → switch-BxAMfHdt.js.map} +1 -1
  262. package/dist/{table-Rv4JMy0B.js → table-BBeAtYVZ.js} +2 -2
  263. package/dist/{table-Rv4JMy0B.js.map → table-BBeAtYVZ.js.map} +1 -1
  264. package/dist/{tabs-1cHrYoel.js → tabs-CeHu7Scn.js} +1 -1
  265. package/dist/{tabs-1cHrYoel.js.map → tabs-CeHu7Scn.js.map} +1 -1
  266. package/dist/{text-KJmGkwnf.js → text-Cqryz7rk.js} +27 -5
  267. package/dist/text-Cqryz7rk.js.map +1 -0
  268. package/dist/{text-roll-BZ3I1umc.js → text-roll-Ch52hcQj.js} +1 -1
  269. package/dist/{text-roll-BZ3I1umc.js.map → text-roll-Ch52hcQj.js.map} +1 -1
  270. package/dist/{theme-toggle-Bhu681D7.js → theme-toggle-LDfIKEqx.js} +3 -3
  271. package/dist/{theme-toggle-Bhu681D7.js.map → theme-toggle-LDfIKEqx.js.map} +1 -1
  272. package/dist/{toast-Nw28a5Cx.js → toast-CaFQNYng.js} +2 -2
  273. package/dist/{toast-Nw28a5Cx.js.map → toast-CaFQNYng.js.map} +1 -1
  274. package/dist/{tooltip-Cb7QW-7H.js → tooltip-g9lFsvcT.js} +8 -2
  275. package/dist/tooltip-g9lFsvcT.js.map +1 -0
  276. package/dist/{use-agent-harness-BMyF8pTq.js → use-agent-harness-BTcNJdw4.js} +1 -1
  277. package/dist/{use-agent-harness-BMyF8pTq.js.map → use-agent-harness-BTcNJdw4.js.map} +1 -1
  278. package/dist/utils.js +2 -1
  279. package/package.json +2 -1
  280. package/scripts/component-registry/index.ts +2 -2
  281. package/scripts/css-build.ts +1 -1
  282. package/scripts/theme-generator/config.ts +27 -141
  283. package/scripts/theme-generator/generate-css.ts +0 -1
  284. package/scripts/theme-generator/index.ts +0 -1
  285. package/dist/ai-conversation-CArP7C8K.js +0 -184
  286. package/dist/ai-conversation-CArP7C8K.js.map +0 -1
  287. package/dist/ai-info-banner-uFxHHwBA.js.map +0 -1
  288. package/dist/ai-message-BjnFznXy.js.map +0 -1
  289. package/dist/ai-prompt-input-Dy1LfxPk.js.map +0 -1
  290. package/dist/ai-response-BEUg3xvd.js.map +0 -1
  291. package/dist/ai-streaming-text-CMfoThV0.js.map +0 -1
  292. package/dist/ai-subagent-DcPRqkAA.js.map +0 -1
  293. package/dist/ai-task-list-Da9zIm00.js.map +0 -1
  294. package/dist/ai-tool-Cn1O4xjP.js.map +0 -1
  295. package/dist/banner-B_6oBrsu.js.map +0 -1
  296. package/dist/empty-D2TypIId.js.map +0 -1
  297. package/dist/stat-card-CEZscNh8.js.map +0 -1
  298. package/dist/styles/theme-blue-tint.css +0 -98
  299. package/dist/text-KJmGkwnf.js.map +0 -1
  300. package/dist/tooltip-Cb7QW-7H.js.map +0 -1
@@ -7,36 +7,114 @@
7
7
  */
8
8
 
9
9
  [data-theme="minimal"] {
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));
10
+ --text-color-sf-strong: light-dark(
11
+ oklch(0.50 0 0),
12
+ oklch(0.55 0 0)
13
+ );
14
+ --text-color-sf-subtle: light-dark(
15
+ oklch(0.55 0 0),
16
+ oklch(0.45 0 0)
17
+ );
18
+ --text-color-sf-inactive: light-dark(
19
+ oklch(0.65 0 0),
20
+ oklch(0.35 0 0)
21
+ );
22
+ --text-color-sf-danger: light-dark(
23
+ oklch(0.55 0.12 25),
24
+ oklch(0.55 0.10 25)
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.173 0 0)
33
+ );
34
+ --color-sf-base: light-dark(
35
+ oklch(0.97 0 0),
36
+ oklch(0.1913 0 0)
37
+ );
38
+ --color-sf-elevated: light-dark(
39
+ oklch(1 0 0),
40
+ oklch(0.2002 0 0)
41
+ );
42
+ --color-sf-recessed: light-dark(
43
+ oklch(0.92 0 0),
44
+ oklch(0.173 0 0)
45
+ );
46
+ --color-sf-overlay: light-dark(
47
+ oklch(0.93 0 0),
48
+ oklch(0.173 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.2264 0 0)
57
+ );
58
+ --color-sf-tint: light-dark(
59
+ oklch(0.94 0 0),
60
+ oklch(0.2562 0 0)
61
+ );
62
+ --color-sf-fill: light-dark(
63
+ oklch(0.91 0 0),
64
+ oklch(0.2562 0 0)
65
+ );
66
+ --color-sf-fill-hover: light-dark(
67
+ oklch(0.88 0 0),
68
+ oklch(0.2768 0 0)
69
+ );
70
+ --color-sf-brand: light-dark(
71
+ oklch(0.55 0.06 260),
72
+ oklch(0.55 0.06 260)
73
+ );
26
74
  --color-sf-brand-hover: light-dark(
27
75
  oklch(0.48 0.05 264),
28
76
  oklch(0.48 0.05 264)
29
77
  );
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));
78
+ --color-sf-line: light-dark(
79
+ oklch(0.85 0 0 / 0.5),
80
+ oklch(0.25 0 0 / 0.5)
81
+ );
82
+ --color-sf-ring: light-dark(
83
+ oklch(0.65 0 0),
84
+ oklch(0.45 0 0)
85
+ );
86
+ --color-sf-tip-shadow: light-dark(
87
+ transparent,
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
+ );
40
118
 
41
119
  /* Shadow overrides — flatten all elevation */
42
120
  --shadow-2xs: 0 0 0 0 transparent;
@@ -6,18 +6,37 @@
6
6
  * Then run: bun run codegen:themes
7
7
  */
8
8
 
9
+
9
10
  @theme {
10
- --text-color-sf-default: light-dark(oklch(0.145 0 0), oklch(0.985 0 0));
11
+ --text-color-sf-default: light-dark(
12
+ oklch(0.145 0 0),
13
+ oklch(0.985 0 0)
14
+ );
11
15
 
12
- --text-color-sf-inverse: light-dark(oklch(0.985 0 0), oklch(0.145 0 0));
16
+ --text-color-sf-inverse: light-dark(
17
+ oklch(0.985 0 0),
18
+ oklch(0.145 0 0)
19
+ );
13
20
 
14
- --text-color-sf-strong: light-dark(oklch(0.45 0 0), oklch(0.8 0 0));
21
+ --text-color-sf-strong: light-dark(
22
+ oklch(0.45 0 0),
23
+ oklch(0.80 0 0)
24
+ );
15
25
 
16
- --text-color-sf-subtle: light-dark(oklch(0.45 0 0), oklch(0.72 0 0));
26
+ --text-color-sf-subtle: light-dark(
27
+ oklch(0.45 0 0),
28
+ oklch(0.72 0 0)
29
+ );
17
30
 
18
- --text-color-sf-inactive: light-dark(oklch(0.55 0 0), oklch(0.6 0 0));
31
+ --text-color-sf-inactive: light-dark(
32
+ oklch(0.55 0 0),
33
+ oklch(0.60 0 0)
34
+ );
19
35
 
20
- --text-color-sf-brand: light-dark(#f6821f, #f6821f);
36
+ --text-color-sf-brand: light-dark(
37
+ #f6821f,
38
+ #f6821f
39
+ );
21
40
 
22
41
  --text-color-sf-link: light-dark(
23
42
  var(--color-blue-800, oklch(42.4% 0.199 265.638)),
@@ -25,68 +44,141 @@
25
44
  );
26
45
 
27
46
  --text-color-sf-success: light-dark(
28
- var(--color-green-500, oklch(72.3% 0.219 149.579)),
29
- var(--color-green-500, oklch(72.3% 0.219 149.579))
47
+ #99ffe4,
48
+ #99ffe4
49
+ );
50
+
51
+ --text-color-sf-danger: light-dark(
52
+ oklch(0.50 0.15 25),
53
+ oklch(0.68 0.16 25)
30
54
  );
31
55
 
32
- --text-color-sf-danger: light-dark(oklch(0.5 0.15 25), oklch(0.68 0.16 25));
56
+ --text-color-sf-warning: light-dark(
57
+ oklch(0.45 0.10 66),
58
+ oklch(0.78 0.12 80)
59
+ );
33
60
 
34
- --text-color-sf-warning: light-dark(oklch(0.45 0.1 66), oklch(0.78 0.12 80));
35
61
  }
36
62
 
37
63
  @theme {
38
- --color-sf-canvas: light-dark(oklch(0.95 0 0), oklch(0.1 0 0));
64
+ --color-sf-canvas: light-dark(
65
+ oklch(0.95 0 0),
66
+ oklch(0.173 0 0)
67
+ );
39
68
 
40
- --color-sf-base: light-dark(oklch(0.97 0 0), oklch(0.14 0 0));
69
+ --color-sf-base: light-dark(
70
+ oklch(0.97 0 0),
71
+ oklch(0.1913 0 0)
72
+ );
41
73
 
42
- --color-sf-elevated: light-dark(oklch(1 0 0), oklch(0.22 0 0));
74
+ --color-sf-elevated: light-dark(
75
+ oklch(1 0 0),
76
+ oklch(0.2002 0 0)
77
+ );
43
78
 
44
- --color-sf-recessed: light-dark(oklch(0.92 0 0), oklch(0.1 0 0));
79
+ --color-sf-recessed: light-dark(
80
+ oklch(0.92 0 0),
81
+ oklch(0.173 0 0)
82
+ );
45
83
 
46
- --color-sf-overlay: light-dark(oklch(0.93 0 0), oklch(0.1 0 0));
84
+ --color-sf-overlay: light-dark(
85
+ oklch(0.93 0 0),
86
+ oklch(0.173 0 0)
87
+ );
47
88
 
48
- --color-sf-contrast: light-dark(oklch(0.35 0 0), oklch(0.75 0 0));
89
+ --color-sf-contrast: light-dark(
90
+ oklch(0.35 0 0),
91
+ oklch(0.75 0 0)
92
+ );
49
93
 
50
- --color-sf-control: light-dark(oklch(0.95 0 0), oklch(0.17 0 0));
94
+ --color-sf-control: light-dark(
95
+ oklch(0.95 0 0),
96
+ oklch(0.2264 0 0)
97
+ );
51
98
 
52
- --color-sf-tint: light-dark(oklch(0.94 0 0), oklch(0.19 0 0));
99
+ --color-sf-tint: light-dark(
100
+ oklch(0.94 0 0),
101
+ oklch(0.2562 0 0)
102
+ );
53
103
 
54
- --color-sf-interact: light-dark(oklch(0.8 0 0), oklch(0.38 0 0));
104
+ --color-sf-interact: light-dark(
105
+ oklch(0.80 0 0),
106
+ oklch(0.2768 0 0)
107
+ );
55
108
 
56
- --color-sf-fill: light-dark(oklch(0.91 0 0), oklch(0.27 0 0));
109
+ --color-sf-fill: light-dark(
110
+ oklch(0.91 0 0),
111
+ oklch(0.2562 0 0)
112
+ );
57
113
 
58
- --color-sf-fill-hover: light-dark(oklch(0.88 0 0), oklch(0.31 0 0));
114
+ --color-sf-fill-hover: light-dark(
115
+ oklch(0.88 0 0),
116
+ oklch(0.2768 0 0)
117
+ );
59
118
 
60
- --color-sf-brand: light-dark(oklch(0.55 0.06 260), oklch(0.55 0.06 260));
119
+ --color-sf-brand: light-dark(
120
+ oklch(0.55 0.06 260),
121
+ oklch(0.55 0.06 260)
122
+ );
61
123
 
62
124
  --color-sf-brand-hover: light-dark(
63
125
  oklch(0.48 0.05 264),
64
126
  oklch(0.48 0.05 264)
65
127
  );
66
128
 
67
- --color-sf-line: light-dark(oklch(0.85 0 0 / 0.5), oklch(0.25 0 0 / 0.5));
129
+ --color-sf-line: light-dark(
130
+ oklch(0.85 0 0 / 0.5),
131
+ #282828
132
+ );
68
133
 
69
- --color-sf-ring: light-dark(oklch(0.55 0 0), oklch(0.6 0 0));
134
+ --color-sf-ring: light-dark(
135
+ oklch(0.55 0 0),
136
+ oklch(0.60 0 0)
137
+ );
70
138
 
71
- --color-sf-tip-shadow: light-dark(transparent, transparent);
139
+ --color-sf-tip-shadow: light-dark(
140
+ transparent,
141
+ transparent
142
+ );
72
143
 
73
- --color-sf-tip-stroke: light-dark(transparent, transparent);
144
+ --color-sf-tip-stroke: light-dark(
145
+ transparent,
146
+ #282828
147
+ );
74
148
 
75
- --color-sf-info: light-dark(oklch(0.55 0.06 260), oklch(0.55 0.06 260));
149
+ --color-sf-info: light-dark(
150
+ oklch(0.55 0.06 260),
151
+ oklch(0.55 0.06 260)
152
+ );
76
153
 
77
- --color-sf-info-tint: light-dark(oklch(0.88 0.02 260), oklch(0.12 0.03 260));
154
+ --color-sf-info-tint: light-dark(
155
+ oklch(0.88 0.02 260),
156
+ oklch(0.12 0.03 260)
157
+ );
78
158
 
79
- --color-sf-warning: light-dark(oklch(0.55 0.08 66), oklch(0.65 0.08 66));
159
+ --color-sf-warning: light-dark(
160
+ oklch(0.55 0.08 66),
161
+ oklch(0.65 0.08 66)
162
+ );
80
163
 
81
- --color-sf-warning-tint: light-dark(oklch(0.94 0.02 60), oklch(0.22 0.03 60));
164
+ --color-sf-warning-tint: light-dark(
165
+ oklch(0.94 0.02 60),
166
+ oklch(0.22 0.03 60)
167
+ );
82
168
 
83
- --color-sf-danger: light-dark(oklch(0.55 0.12 25), oklch(0.55 0.1 25));
169
+ --color-sf-danger: light-dark(
170
+ oklch(0.55 0.12 25),
171
+ oklch(0.55 0.10 25)
172
+ );
84
173
 
85
- --color-sf-danger-tint: light-dark(oklch(0.94 0.02 25), oklch(0.16 0.04 25));
174
+ --color-sf-danger-tint: light-dark(
175
+ oklch(0.94 0.02 25),
176
+ oklch(0.16 0.04 25)
177
+ );
86
178
 
87
179
  --color-sf-success: light-dark(
88
- oklch(0.723 0.219 149.579),
89
- oklch(0.723 0.219 149.579)
180
+ #99ffe4,
181
+ #99ffe4
90
182
  );
91
183
 
92
184
  --color-sf-chart-1: light-dark(
@@ -115,7 +207,7 @@
115
207
  );
116
208
 
117
209
  --color-sf-syntax-keyword: light-dark(
118
- oklch(0.52 0.2 265),
210
+ oklch(0.52 0.20 265),
119
211
  oklch(0.72 0.19 255)
120
212
  );
121
213
 
@@ -129,10 +221,13 @@
129
221
  oklch(0.72 0.14 60)
130
222
  );
131
223
 
132
- --color-sf-syntax-comment: light-dark(oklch(0.62 0 0), oklch(0.55 0 0));
224
+ --color-sf-syntax-comment: light-dark(
225
+ oklch(0.62 0 0),
226
+ oklch(0.55 0 0)
227
+ );
133
228
 
134
229
  --color-sf-syntax-jsxliterals: light-dark(
135
- oklch(0.52 0.2 265),
230
+ oklch(0.52 0.20 265),
136
231
  oklch(0.72 0.19 255)
137
232
  );
138
233
 
@@ -146,7 +241,11 @@
146
241
  oklch(0.75 0.15 55)
147
242
  );
148
243
 
149
- --color-sf-syntax-sign: light-dark(oklch(0.45 0 0), oklch(0.7 0 0));
244
+ --color-sf-syntax-sign: light-dark(
245
+ oklch(0.45 0 0),
246
+ oklch(0.70 0 0)
247
+ );
248
+
150
249
  }
151
250
 
152
251
  @theme {
@@ -170,4 +269,4 @@
170
269
  --shadow-lg: 0 0 0 0 transparent;
171
270
  --shadow-xl: 0 0 0 0 transparent;
172
271
  --shadow-2xl: 0 0 0 0 transparent;
173
- }
272
+ }
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Vesper theme for SignalFlare AI
3
+ *
4
+ * Ported from the Vesper VS Code theme by raunofreiberg.
5
+ * Signature palette: near-black surfaces, warm peach accent (#FFC799),
6
+ * mint green strings (#99FFE4), and coral errors (#FF8080).
7
+ *
8
+ * Light mode intentionally falls back to the default SignalFlare palette.
9
+ * Vesper overrides only apply in dark mode.
10
+ */
11
+
12
+ [data-theme="vesper"][data-mode="dark"] {
13
+ /* ── Text ────────────────────────────────────────────────────────── */
14
+ --text-color-sf-default: light-dark(#fff, #fff);
15
+ --text-color-sf-inverse: light-dark(#101010, #101010);
16
+ --text-color-sf-strong: light-dark(#fff, #fff);
17
+ /* A0A0A0 ≈ oklch(0.647 0 0) */
18
+ --text-color-sf-subtle: light-dark(#a0a0a0, #a0a0a0);
19
+ --text-color-sf-inactive: light-dark(#505050, #505050);
20
+ /* Brand text = peach */
21
+ --text-color-sf-brand: light-dark(#ffc799, #ffc799);
22
+ /* Links = peach */
23
+ --text-color-sf-link: light-dark(#ffc799, #ffc799);
24
+ /* Success/inserted = mint */
25
+ --text-color-sf-success: light-dark(#99ffe4, #99ffe4);
26
+ /* Danger = coral */
27
+ --text-color-sf-danger: light-dark(#ff8080, #ff8080);
28
+ /* Warning = amber (distinct from peach brand) */
29
+ --text-color-sf-warning: light-dark(#e8a84a, #e8a84a);
30
+
31
+ /* ── Surfaces ────────────────────────────────────────────────────── */
32
+ /* #101010 ≈ oklch(0.088 0 0) */
33
+ --color-sf-canvas: light-dark(#101010, #101010);
34
+ /* slightly lighter base */
35
+ --color-sf-base: light-dark(#141414, #141414);
36
+ /* #161616 = card / tab active */
37
+ --color-sf-elevated: light-dark(#161616, #161616);
38
+ --color-sf-recessed: light-dark(#101010, #101010);
39
+ --color-sf-overlay: light-dark(#101010, #101010);
40
+ /* for contrast text on surfaces */
41
+ --color-sf-contrast: light-dark(#a0a0a0, #a0a0a0);
42
+
43
+ /* ── Controls & fills ────────────────────────────────────────────── */
44
+ /* #1C1C1C = input background */
45
+ --color-sf-control: light-dark(#1c1c1c, #1c1c1c);
46
+ --color-sf-tint: light-dark(#1c1c1c, #1c1c1c);
47
+ /* #232323 = selected list item */
48
+ --color-sf-interact: light-dark(#282828, #282828);
49
+ --color-sf-fill: light-dark(#232323, #232323);
50
+ /* #282828 = list hover */
51
+ --color-sf-fill-hover: light-dark(#282828, #282828);
52
+
53
+ /* ── Brand / accent (peach) ──────────────────────────────────────── */
54
+ --color-sf-brand: light-dark(#ffc799, #ffc799);
55
+ --color-sf-brand-hover: light-dark(#ffcfa8, #ffcfa8);
56
+
57
+ /* ── Borders / rings ─────────────────────────────────────────────── */
58
+ /* ~#282828 at 60% opacity */
59
+ --color-sf-line: light-dark(#282828, #282828);
60
+ /* ring = peach on focus */
61
+ --color-sf-ring: light-dark(#ffc799, #ffc799);
62
+
63
+ /* ── Tooltip chrome ──────────────────────────────────────────────── */
64
+ --color-sf-tip-shadow: light-dark(transparent, transparent);
65
+ --color-sf-tip-stroke: light-dark(#282828, #282828);
66
+
67
+ /* ── Semantic: info (mint) ───────────────────────────────────────── */
68
+ --color-sf-info: light-dark(#99ffe4, #99ffe4);
69
+ --color-sf-info-tint: light-dark(#99ffe415, #99ffe415);
70
+
71
+ /* ── Semantic: warning (amber — distinct from peach brand) ─────────── */
72
+ --color-sf-warning: light-dark(#e8a84a, #e8a84a);
73
+ --color-sf-warning-tint: light-dark(#e8a84a20, #e8a84a20);
74
+
75
+ /* ── Semantic: danger (coral) ────────────────────────────────────── */
76
+ --color-sf-danger: light-dark(#ff8080, #ff8080);
77
+ --color-sf-danger-tint: light-dark(#ff808015, #ff808015);
78
+
79
+ /* ── Semantic: success (mint) ────────────────────────────────────── */
80
+ --color-sf-success: light-dark(#99ffe4, #99ffe4);
81
+
82
+ /* ── Syntax highlighting (sugar-high / shiki) ────────────────────── */
83
+ --color-sf-syntax-keyword: #a0a0a0;
84
+ --color-sf-syntax-identifier: #fff;
85
+ --color-sf-syntax-string: #99ffe4;
86
+ --color-sf-syntax-comment: #8b8b8b94;
87
+ --color-sf-syntax-jsxliterals: #ffc799;
88
+ --color-sf-syntax-property: #ffc799;
89
+ --color-sf-syntax-entity: #ffc799;
90
+ --color-sf-syntax-sign: #a0a0a0;
91
+ }
@@ -15,4 +15,4 @@ var Surface = forwardRef(function Surface({ as, children, className, ...restProp
15
15
  //#endregion
16
16
  export { Surface as t };
17
17
 
18
- //# sourceMappingURL=surface-BduI7Ehl.js.map
18
+ //# sourceMappingURL=surface-DGwRlC0o.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"surface-BduI7Ehl.js","names":[],"sources":["../src/components/surface/surface.tsx"],"sourcesContent":["import React, {\n forwardRef,\n type ComponentPropsWithoutRef,\n type ComponentPropsWithRef,\n type ElementType,\n type PropsWithChildren,\n} from \"react\";\n\nimport { cn } from \"../../utils/cn\";\n\n/** Surface color variant definitions. */\nexport const SF_SURFACE_VARIANTS = {\n color: {\n primary: {\n classes: \"\",\n description: \"Primary surface color\",\n },\n secondary: {\n classes: \"\",\n description: \"Secondary surface color\",\n },\n },\n} as const;\n\nexport const SF_SURFACE_DEFAULT_VARIANTS = {\n color: \"primary\",\n} as const;\n\n// Derived types from SF_SURFACE_VARIANTS\nexport type SFSurfaceColor = keyof typeof SF_SURFACE_VARIANTS.color;\n\nexport interface SFSurfaceVariantsProps {\n /**\n * Surface color variant.\n * - `\"primary\"` — Primary surface color\n * - `\"secondary\"` — Secondary surface color\n * @default \"primary\"\n */\n color?: SFSurfaceColor;\n}\n\nexport function surfaceVariants({\n color = SF_SURFACE_DEFAULT_VARIANTS.color,\n}: SFSurfaceVariantsProps = {}) {\n return cn(\n // Base styles\n \"shadow-xs ring ring-sf-line\",\n // Apply color-specific styles\n SF_SURFACE_VARIANTS.color[color].classes\n );\n}\n\ntype PolymorphicAsProp<E extends ElementType> = {\n as?: E;\n};\n\ntype PolymorphicProps<E extends ElementType> = PropsWithChildren<\n ComponentPropsWithoutRef<E> & PolymorphicAsProp<E>\n>;\n\ntype PolymorphicRef<E extends ElementType> = ComponentPropsWithRef<E>[\"ref\"];\n\nconst defaultElement = \"div\";\n\ntype SurfacePropsGeneric<E extends ElementType = typeof defaultElement> =\n PolymorphicProps<E> & SFSurfaceVariantsProps;\n\n/**\n * Surface component props.\n *\n * @example\n * ```tsx\n * <Surface className=\"rounded-lg p-4\">Card content</Surface>\n * <Surface as=\"section\" className=\"rounded-lg p-6\">Section content</Surface>\n * ```\n */\nexport interface SurfaceProps {\n /** The HTML element type to render as (e.g. `\"div\"`, `\"section\"`, `\"article\"`). @default \"div\" */\n as?: ElementType;\n /** Surface color variant. @default \"primary\" */\n color?: SFSurfaceColor;\n /** Additional CSS classes merged via `cn()`. */\n className?: string;\n /** Content rendered inside the surface. */\n children?: React.ReactNode;\n}\n\ntype SurfaceComponent = <E extends ElementType = typeof defaultElement>(\n props: SurfacePropsGeneric<E> & { ref?: PolymorphicRef<E> }\n) => React.JSX.Element;\n\n/**\n * Polymorphic container with consistent background, shadow, and border styling.\n *\n * @example\n * ```tsx\n * <Surface className=\"rounded-lg p-4\">Card content</Surface>\n * ```\n */\nconst SurfaceImpl = function Surface<\n E extends ElementType = typeof defaultElement,\n>(\n { as, children, className, ...restProps }: SurfacePropsGeneric<E>,\n ref: PolymorphicRef<E>\n) {\n const Component = as ?? defaultElement;\n return (\n <Component\n ref={ref}\n {...restProps}\n className={cn(\"bg-sf-base shadow-xs ring ring-sf-line\", className)}\n >\n {children}\n </Component>\n );\n};\n\nexport const Surface = forwardRef(\n SurfaceImpl as any\n) as unknown as SurfaceComponent;\n"],"mappings":";;;;;AA8DA,IAAM,iBAAiB;AAuDvB,IAAa,UAAU,WAlBH,SAAS,QAG3B,EAAE,IAAI,UAAU,WAAW,GAAG,aAC9B,KACA;AAEA,QACE,oBAFgB,MAAM,gBAEtB;EACO;EACL,GAAI;EACJ,WAAW,GAAG,0CAA0C,UAAU;EAEjE;EACS,CAAA;EAMf"}
1
+ {"version":3,"file":"surface-DGwRlC0o.js","names":[],"sources":["../src/components/surface/surface.tsx"],"sourcesContent":["import React, {\n forwardRef,\n type ComponentPropsWithoutRef,\n type ComponentPropsWithRef,\n type ElementType,\n type PropsWithChildren,\n} from \"react\";\n\nimport { cn } from \"../../utils/cn\";\n\n/** Surface color variant definitions. */\nexport const SF_SURFACE_VARIANTS = {\n color: {\n primary: {\n classes: \"\",\n description: \"Primary surface color\",\n },\n secondary: {\n classes: \"\",\n description: \"Secondary surface color\",\n },\n },\n} as const;\n\nexport const SF_SURFACE_DEFAULT_VARIANTS = {\n color: \"primary\",\n} as const;\n\n// Derived types from SF_SURFACE_VARIANTS\nexport type SFSurfaceColor = keyof typeof SF_SURFACE_VARIANTS.color;\n\nexport interface SFSurfaceVariantsProps {\n /**\n * Surface color variant.\n * - `\"primary\"` — Primary surface color\n * - `\"secondary\"` — Secondary surface color\n * @default \"primary\"\n */\n color?: SFSurfaceColor;\n}\n\nexport function surfaceVariants({\n color = SF_SURFACE_DEFAULT_VARIANTS.color,\n}: SFSurfaceVariantsProps = {}) {\n return cn(\n // Base styles\n \"shadow-xs ring ring-sf-line\",\n // Apply color-specific styles\n SF_SURFACE_VARIANTS.color[color].classes\n );\n}\n\ntype PolymorphicAsProp<E extends ElementType> = {\n as?: E;\n};\n\ntype PolymorphicProps<E extends ElementType> = PropsWithChildren<\n ComponentPropsWithoutRef<E> & PolymorphicAsProp<E>\n>;\n\ntype PolymorphicRef<E extends ElementType> = ComponentPropsWithRef<E>[\"ref\"];\n\nconst defaultElement = \"div\";\n\ntype SurfacePropsGeneric<E extends ElementType = typeof defaultElement> =\n PolymorphicProps<E> & SFSurfaceVariantsProps;\n\n/**\n * Surface component props.\n *\n * @example\n * ```tsx\n * <Surface className=\"rounded-lg p-4\">Card content</Surface>\n * <Surface as=\"section\" className=\"rounded-lg p-6\">Section content</Surface>\n * ```\n */\nexport interface SurfaceProps {\n /** The HTML element type to render as (e.g. `\"div\"`, `\"section\"`, `\"article\"`). @default \"div\" */\n as?: ElementType;\n /** Surface color variant. @default \"primary\" */\n color?: SFSurfaceColor;\n /** Additional CSS classes merged via `cn()`. */\n className?: string;\n /** Content rendered inside the surface. */\n children?: React.ReactNode;\n}\n\ntype SurfaceComponent = <E extends ElementType = typeof defaultElement>(\n props: SurfacePropsGeneric<E> & { ref?: PolymorphicRef<E> }\n) => React.JSX.Element;\n\n/**\n * Polymorphic container with consistent background, shadow, and border styling.\n *\n * @example\n * ```tsx\n * <Surface className=\"rounded-lg p-4\">Card content</Surface>\n * ```\n */\nconst SurfaceImpl = function Surface<\n E extends ElementType = typeof defaultElement,\n>(\n { as, children, className, ...restProps }: SurfacePropsGeneric<E>,\n ref: PolymorphicRef<E>\n) {\n const Component = as ?? defaultElement;\n return (\n <Component\n ref={ref}\n {...restProps}\n className={cn(\"bg-sf-base shadow-xs ring ring-sf-line\", className)}\n >\n {children}\n </Component>\n );\n};\n\nexport const Surface = forwardRef(\n SurfaceImpl as any\n) as unknown as SurfaceComponent;\n"],"mappings":";;;;;AA8DA,IAAM,iBAAiB;AAuDvB,IAAa,UAAU,WAlBH,SAAS,QAG3B,EAAE,IAAI,UAAU,WAAW,GAAG,aAC9B,KACA;AAEA,QACE,oBAFgB,MAAM,gBAEtB;EACO;EACL,GAAI;EACJ,WAAW,GAAG,0CAA0C,UAAU;EAEjE;EACS,CAAA;EAMf"}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { t as cn } from "./cn-YROP2_ox.js";
3
- import { t as Field } from "./field-Y_UK1_Cg.js";
3
+ import { t as Field } from "./field-B_yVof52.js";
4
4
  import { createContext, forwardRef, useContext } from "react";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
  import { Fieldset } from "@base-ui/react/fieldset";
@@ -166,4 +166,4 @@ Switch$1.displayName = "Switch";
166
166
  //#endregion
167
167
  export { SF_SWITCH_VARIANTS as n, Switch$1 as r, SF_SWITCH_DEFAULT_VARIANTS as t };
168
168
 
169
- //# sourceMappingURL=switch-CzZBRBL7.js.map
169
+ //# sourceMappingURL=switch-BxAMfHdt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"switch-CzZBRBL7.js","names":[],"sources":["../src/components/switch/switch.tsx"],"sourcesContent":["import { Fieldset } from \"@base-ui/react/fieldset\";\nimport { Switch as BaseSwitch } from \"@base-ui/react/switch\";\nimport {\n forwardRef,\n type ButtonHTMLAttributes,\n type Ref,\n type ReactNode,\n createContext,\n useContext,\n} from \"react\";\n\nimport { cn } from \"../../utils/cn\";\nimport { Field } from \"../field/field\";\n\n/** Switch size and variant definitions mapping names to their Tailwind classes. */\nexport const SF_SWITCH_VARIANTS = {\n size: {\n sm: {\n classes: \"h-5.5 w-8.5\",\n description: \"Small switch for compact UIs\",\n },\n base: {\n classes: \"h-6.5 w-10.5\",\n description: \"Default switch size\",\n },\n lg: {\n classes: \"h-7.5 w-12.5\",\n description: \"Large switch for prominent toggles\",\n },\n },\n variant: {\n default: {\n classes: \"\",\n description: \"Default switch appearance\",\n },\n error: {\n classes: \"ring-sf-danger\",\n description: \"Error state for validation failures\",\n },\n },\n} as const;\n\nexport const SF_SWITCH_DEFAULT_VARIANTS = {\n size: \"base\",\n variant: \"default\",\n} as const;\n\n// Derived types from SF_SWITCH_VARIANTS\nexport type SFSwitchSize = keyof typeof SF_SWITCH_VARIANTS.size;\nexport type SFSwitchVariant = keyof typeof SF_SWITCH_VARIANTS.variant;\n\nexport interface SFSwitchVariantsProps {\n /**\n * Switch size.\n * - `\"sm\"` — Small for compact UIs\n * - `\"base\"` — Default size\n * - `\"lg\"` — Large for prominent toggles\n * @default \"base\"\n */\n size?: SFSwitchSize;\n /**\n * Visual variant.\n * - `\"default\"` — Standard switch appearance\n * - `\"error\"` — Error state for validation failures\n * @default \"default\"\n */\n variant?: SFSwitchVariant;\n}\n\nexport function switchVariants({\n size = SF_SWITCH_DEFAULT_VARIANTS.size,\n variant = SF_SWITCH_DEFAULT_VARIANTS.variant,\n}: SFSwitchVariantsProps = {}) {\n return cn(\n SF_SWITCH_VARIANTS.size[size].classes,\n SF_SWITCH_VARIANTS.variant[variant].classes\n );\n}\n\n// Legacy type aliases for backwards compatibility\nexport type SwitchSize = SFSwitchSize;\nexport type SwitchVariant = SFSwitchVariant;\n\n// Context for passing controlFirst from Group to Items\nconst SwitchGroupContext = createContext<{ controlFirst: boolean }>({\n controlFirst: true,\n});\n\n/**\n * Single switch component props (with built-in Field)\n *\n * Usage patterns:\n *\n * Basic usage:\n * ```tsx\n * <Switch label=\"Enable notifications\" checked={true} onCheckedChange={setChecked} />\n * ```\n *\n * Label first layout:\n * ```tsx\n * <Switch label=\"Dark mode\" checked={false} onCheckedChange={setChecked} controlFirst={false} />\n * ```\n *\n * Error variant (visual only, no error text):\n * ```tsx\n * <Switch label=\"Required setting\" variant=\"error\" checked={false} onCheckedChange={setChecked} />\n * ```\n *\n * @property {string} label - Label text for the switch (Field wrapper is built-in)\n * @property {boolean} [controlFirst] - When true (default), switch appears before label\n */\nexport type SwitchProps = Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n \"children\"\n> & {\n /** Visual variant: \"default\" or \"error\" for validation failures (visual only, no error text) */\n variant?: SwitchVariant;\n /** Label content for the switch (Field wrapper is built-in) - can be a string or any React node. Optional when used standalone for visual-only purposes. */\n label?: ReactNode;\n /** Tooltip content to display next to the label via an info icon */\n labelTooltip?: ReactNode;\n /**\n * Whether the switch is required.\n * When explicitly false, shows \"(optional)\" text after the label.\n */\n required?: boolean;\n /** When true (default), switch appears before label. When false, label appears before switch. */\n controlFirst?: boolean;\n size?: SFSwitchSize;\n checked?: boolean;\n disabled?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n transitioning?: boolean;\n};\n\n/**\n * Switch group component props (with built-in Fieldset)\n *\n * Usage:\n * ```tsx\n * <Switch.Group\n * legend=\"Notification settings\"\n * error=\"You must enable at least one notification type\"\n * >\n * <Switch.Item label=\"Email notifications\" value=\"email\" />\n * <Switch.Item label=\"SMS notifications\" value=\"sms\" />\n * </Switch.Group>\n * ```\n */\nexport interface SwitchGroupProps {\n /** Legend text for the group */\n legend: string;\n /** Child Switch.Item components */\n children: ReactNode;\n /** Error message for the group (only appears in groups, not single switches) */\n error?: string;\n /** Helper text for the group */\n description?: ReactNode;\n /** Whether all switches in the group are disabled */\n disabled?: boolean;\n /** When true (default), switch appears before label. When false, label appears before switch. */\n controlFirst?: boolean;\n /** Additional CSS classes */\n className?: string;\n}\n\n/**\n * Individual switch item within a group\n */\nexport type SwitchItemProps = {\n /** Visual variant: \"default\" or \"error\" for validation failures */\n variant?: SwitchVariant;\n /** Label text displayed next to switch */\n label: string;\n /** Additional CSS classes for the label wrapper */\n className?: string;\n checked?: boolean;\n disabled?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n size?: SFSwitchSize;\n transitioning?: boolean;\n};\n\n// Single switch with built-in Field\nconst SwitchBase = forwardRef<HTMLButtonElement, SwitchProps>(\n (\n {\n className,\n checked,\n disabled,\n size = \"base\",\n variant = \"default\",\n label,\n labelTooltip,\n required,\n controlFirst = true,\n onCheckedChange,\n transitioning,\n ...props\n },\n ref\n ) => {\n // For aria-label, only use string labels (ReactNode labels can't be used for aria-label)\n const ariaLabelFallback = typeof label === \"string\" ? label : \"Switch\";\n const switchControl = (\n <BaseSwitch.Root\n ref={ref}\n checked={checked}\n disabled={disabled}\n onCheckedChange={onCheckedChange}\n nativeButton\n render={(rootProps, state) => {\n const {\n ref: rootRef,\n className: baseClassName,\n role: baseRole,\n \"aria-checked\": _ariaChecked,\n \"aria-pressed\": _ariaPressed,\n ...restRootProps\n } = rootProps as typeof rootProps & {\n ref?: Ref<HTMLButtonElement>;\n className?: string;\n role?: string;\n \"aria-checked\"?: boolean;\n \"aria-pressed\"?: boolean;\n };\n\n const mergedClassName = cn(\n \"interactive flex items-center gap-2 rounded-full border border-transparent bg-sf-recessed p-1 transition-colors\",\n switchVariants({ size, variant }),\n {\n \"bg-sf-brand\": state.checked && !disabled && variant !== \"error\",\n \"bg-sf-danger\": state.checked && !disabled && variant === \"error\",\n \"hover:bg-sf-brand-hover\":\n state.checked &&\n !transitioning &&\n !disabled &&\n variant !== \"error\",\n \"hover:bg-sf-danger/90\":\n state.checked &&\n !transitioning &&\n !disabled &&\n variant === \"error\",\n \"hover:bg-sf-interact\":\n !state.checked && !transitioning && !disabled,\n \"cursor-not-allowed opacity-50\": disabled,\n },\n transitioning ? \"cursor-wait\" : !disabled ? \"cursor-pointer\" : \"\",\n className,\n baseClassName\n );\n\n const role =\n (props.role as string | undefined) ?? baseRole ?? \"switch\";\n const checkedA11yProps =\n role === \"switch\"\n ? { \"aria-checked\": state.checked }\n : { \"aria-pressed\": state.checked };\n\n return (\n <button\n {...restRootProps}\n {...props}\n ref={rootRef}\n type=\"button\"\n role={role}\n {...checkedA11yProps}\n aria-busy={transitioning || undefined}\n aria-label={props[\"aria-label\"] ?? ariaLabelFallback}\n className={mergedClassName}\n >\n <BaseSwitch.Thumb\n className={cn(\n \"pointer-events-none aspect-square h-full rounded-full bg-white transition-all\",\n {\n \"translate-x-full rtl:translate-x-[-100%]\": state.checked,\n }\n )}\n />\n </button>\n );\n }}\n />\n );\n\n // Wrap in Field (built-in) - no description for single switches\n // If no label provided, return bare switch (for use in other components)\n if (!label) {\n return switchControl;\n }\n\n return (\n <Field\n label={label}\n required={required}\n labelTooltip={labelTooltip}\n controlFirst={controlFirst}\n >\n {switchControl}\n </Field>\n );\n }\n);\n\nSwitchBase.displayName = \"Switch\";\n\n// Switch.Item for use within Switch.Group\nconst SwitchItem = forwardRef<HTMLButtonElement, SwitchItemProps>(\n (\n {\n className,\n checked,\n disabled,\n size = \"base\",\n variant = \"default\",\n label,\n onCheckedChange,\n transitioning,\n },\n ref\n ) => {\n const { controlFirst } = useContext(SwitchGroupContext);\n\n return (\n <label\n className={cn(\n \"relative inline-flex items-center gap-2\",\n // Control first (default): switch before label\n // Label first: label before switch using flex-row-reverse\n !controlFirst && \"flex-row-reverse justify-end\",\n disabled ? \"cursor-not-allowed opacity-50\" : \"cursor-pointer\",\n className\n )}\n >\n <BaseSwitch.Root\n ref={ref}\n checked={checked}\n disabled={disabled}\n onCheckedChange={onCheckedChange}\n nativeButton\n render={(rootProps, state) => {\n const {\n ref: rootRef,\n className: baseClassName,\n role: baseRole,\n \"aria-checked\": _ariaChecked,\n \"aria-pressed\": _ariaPressed,\n ...restRootProps\n } = rootProps as typeof rootProps & {\n ref?: Ref<HTMLButtonElement>;\n className?: string;\n role?: string;\n \"aria-checked\"?: boolean;\n \"aria-pressed\"?: boolean;\n };\n\n const mergedClassName = cn(\n \"interactive flex items-center gap-2 rounded-full border border-transparent bg-sf-recessed p-1 transition-colors\",\n switchVariants({ size, variant }),\n {\n \"bg-sf-brand\":\n state.checked && !disabled && variant !== \"error\",\n \"bg-sf-danger\":\n state.checked && !disabled && variant === \"error\",\n \"hover:bg-sf-brand-hover\":\n state.checked &&\n !transitioning &&\n !disabled &&\n variant !== \"error\",\n \"hover:bg-sf-danger/90\":\n state.checked &&\n !transitioning &&\n !disabled &&\n variant === \"error\",\n \"hover:bg-sf-interact\":\n !state.checked && !transitioning && !disabled,\n \"cursor-not-allowed opacity-50\": disabled,\n },\n transitioning ? \"cursor-wait\" : !disabled ? \"cursor-pointer\" : \"\",\n baseClassName\n );\n\n const role = baseRole ?? \"switch\";\n const checkedA11yProps =\n role === \"switch\"\n ? { \"aria-checked\": state.checked }\n : { \"aria-pressed\": state.checked };\n\n return (\n <button\n {...restRootProps}\n ref={rootRef}\n type=\"button\"\n role={role}\n {...checkedA11yProps}\n aria-busy={transitioning || undefined}\n className={mergedClassName}\n >\n <BaseSwitch.Thumb\n className={cn(\n \"pointer-events-none aspect-square h-full rounded-full bg-white transition-all\",\n {\n \"translate-x-full rtl:translate-x-[-100%]\": state.checked,\n }\n )}\n />\n </button>\n );\n }}\n />\n <span className=\"text-base font-medium text-sf-default\">{label}</span>\n </label>\n );\n }\n);\n\nSwitchItem.displayName = \"Switch.Item\";\n\n// Switch.Group with built-in Fieldset\nfunction SwitchGroup({\n legend,\n children,\n error,\n description,\n disabled,\n controlFirst = true,\n className,\n}: SwitchGroupProps) {\n return (\n <SwitchGroupContext.Provider value={{ controlFirst }}>\n <Fieldset.Root\n className={cn(\n \"flex flex-col gap-4 rounded-lg border border-sf-line p-4\",\n className\n )}\n disabled={disabled}\n >\n <Fieldset.Legend className=\"text-lg font-medium text-sf-default\">\n {legend}\n </Fieldset.Legend>\n <div className=\"flex flex-col gap-2\">{children}</div>\n {error && <p className=\"text-sm text-sf-danger\">{error}</p>}\n {description && <p className=\"text-sm text-sf-subtle\">{description}</p>}\n </Fieldset.Root>\n </SwitchGroupContext.Provider>\n );\n}\n\n// Compound component\nexport const Switch = Object.assign(SwitchBase, {\n Item: SwitchItem,\n Group: SwitchGroup,\n});\n\nSwitch.displayName = \"Switch\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"switch-BxAMfHdt.js","names":[],"sources":["../src/components/switch/switch.tsx"],"sourcesContent":["import { Fieldset } from \"@base-ui/react/fieldset\";\nimport { Switch as BaseSwitch } from \"@base-ui/react/switch\";\nimport {\n forwardRef,\n type ButtonHTMLAttributes,\n type Ref,\n type ReactNode,\n createContext,\n useContext,\n} from \"react\";\n\nimport { cn } from \"../../utils/cn\";\nimport { Field } from \"../field/field\";\n\n/** Switch size and variant definitions mapping names to their Tailwind classes. */\nexport const SF_SWITCH_VARIANTS = {\n size: {\n sm: {\n classes: \"h-5.5 w-8.5\",\n description: \"Small switch for compact UIs\",\n },\n base: {\n classes: \"h-6.5 w-10.5\",\n description: \"Default switch size\",\n },\n lg: {\n classes: \"h-7.5 w-12.5\",\n description: \"Large switch for prominent toggles\",\n },\n },\n variant: {\n default: {\n classes: \"\",\n description: \"Default switch appearance\",\n },\n error: {\n classes: \"ring-sf-danger\",\n description: \"Error state for validation failures\",\n },\n },\n} as const;\n\nexport const SF_SWITCH_DEFAULT_VARIANTS = {\n size: \"base\",\n variant: \"default\",\n} as const;\n\n// Derived types from SF_SWITCH_VARIANTS\nexport type SFSwitchSize = keyof typeof SF_SWITCH_VARIANTS.size;\nexport type SFSwitchVariant = keyof typeof SF_SWITCH_VARIANTS.variant;\n\nexport interface SFSwitchVariantsProps {\n /**\n * Switch size.\n * - `\"sm\"` — Small for compact UIs\n * - `\"base\"` — Default size\n * - `\"lg\"` — Large for prominent toggles\n * @default \"base\"\n */\n size?: SFSwitchSize;\n /**\n * Visual variant.\n * - `\"default\"` — Standard switch appearance\n * - `\"error\"` — Error state for validation failures\n * @default \"default\"\n */\n variant?: SFSwitchVariant;\n}\n\nexport function switchVariants({\n size = SF_SWITCH_DEFAULT_VARIANTS.size,\n variant = SF_SWITCH_DEFAULT_VARIANTS.variant,\n}: SFSwitchVariantsProps = {}) {\n return cn(\n SF_SWITCH_VARIANTS.size[size].classes,\n SF_SWITCH_VARIANTS.variant[variant].classes\n );\n}\n\n// Legacy type aliases for backwards compatibility\nexport type SwitchSize = SFSwitchSize;\nexport type SwitchVariant = SFSwitchVariant;\n\n// Context for passing controlFirst from Group to Items\nconst SwitchGroupContext = createContext<{ controlFirst: boolean }>({\n controlFirst: true,\n});\n\n/**\n * Single switch component props (with built-in Field)\n *\n * Usage patterns:\n *\n * Basic usage:\n * ```tsx\n * <Switch label=\"Enable notifications\" checked={true} onCheckedChange={setChecked} />\n * ```\n *\n * Label first layout:\n * ```tsx\n * <Switch label=\"Dark mode\" checked={false} onCheckedChange={setChecked} controlFirst={false} />\n * ```\n *\n * Error variant (visual only, no error text):\n * ```tsx\n * <Switch label=\"Required setting\" variant=\"error\" checked={false} onCheckedChange={setChecked} />\n * ```\n *\n * @property {string} label - Label text for the switch (Field wrapper is built-in)\n * @property {boolean} [controlFirst] - When true (default), switch appears before label\n */\nexport type SwitchProps = Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n \"children\"\n> & {\n /** Visual variant: \"default\" or \"error\" for validation failures (visual only, no error text) */\n variant?: SwitchVariant;\n /** Label content for the switch (Field wrapper is built-in) - can be a string or any React node. Optional when used standalone for visual-only purposes. */\n label?: ReactNode;\n /** Tooltip content to display next to the label via an info icon */\n labelTooltip?: ReactNode;\n /**\n * Whether the switch is required.\n * When explicitly false, shows \"(optional)\" text after the label.\n */\n required?: boolean;\n /** When true (default), switch appears before label. When false, label appears before switch. */\n controlFirst?: boolean;\n size?: SFSwitchSize;\n checked?: boolean;\n disabled?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n transitioning?: boolean;\n};\n\n/**\n * Switch group component props (with built-in Fieldset)\n *\n * Usage:\n * ```tsx\n * <Switch.Group\n * legend=\"Notification settings\"\n * error=\"You must enable at least one notification type\"\n * >\n * <Switch.Item label=\"Email notifications\" value=\"email\" />\n * <Switch.Item label=\"SMS notifications\" value=\"sms\" />\n * </Switch.Group>\n * ```\n */\nexport interface SwitchGroupProps {\n /** Legend text for the group */\n legend: string;\n /** Child Switch.Item components */\n children: ReactNode;\n /** Error message for the group (only appears in groups, not single switches) */\n error?: string;\n /** Helper text for the group */\n description?: ReactNode;\n /** Whether all switches in the group are disabled */\n disabled?: boolean;\n /** When true (default), switch appears before label. When false, label appears before switch. */\n controlFirst?: boolean;\n /** Additional CSS classes */\n className?: string;\n}\n\n/**\n * Individual switch item within a group\n */\nexport type SwitchItemProps = {\n /** Visual variant: \"default\" or \"error\" for validation failures */\n variant?: SwitchVariant;\n /** Label text displayed next to switch */\n label: string;\n /** Additional CSS classes for the label wrapper */\n className?: string;\n checked?: boolean;\n disabled?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n size?: SFSwitchSize;\n transitioning?: boolean;\n};\n\n// Single switch with built-in Field\nconst SwitchBase = forwardRef<HTMLButtonElement, SwitchProps>(\n (\n {\n className,\n checked,\n disabled,\n size = \"base\",\n variant = \"default\",\n label,\n labelTooltip,\n required,\n controlFirst = true,\n onCheckedChange,\n transitioning,\n ...props\n },\n ref\n ) => {\n // For aria-label, only use string labels (ReactNode labels can't be used for aria-label)\n const ariaLabelFallback = typeof label === \"string\" ? label : \"Switch\";\n const switchControl = (\n <BaseSwitch.Root\n ref={ref}\n checked={checked}\n disabled={disabled}\n onCheckedChange={onCheckedChange}\n nativeButton\n render={(rootProps, state) => {\n const {\n ref: rootRef,\n className: baseClassName,\n role: baseRole,\n \"aria-checked\": _ariaChecked,\n \"aria-pressed\": _ariaPressed,\n ...restRootProps\n } = rootProps as typeof rootProps & {\n ref?: Ref<HTMLButtonElement>;\n className?: string;\n role?: string;\n \"aria-checked\"?: boolean;\n \"aria-pressed\"?: boolean;\n };\n\n const mergedClassName = cn(\n \"interactive flex items-center gap-2 rounded-full border border-transparent bg-sf-recessed p-1 transition-colors\",\n switchVariants({ size, variant }),\n {\n \"bg-sf-brand\": state.checked && !disabled && variant !== \"error\",\n \"bg-sf-danger\": state.checked && !disabled && variant === \"error\",\n \"hover:bg-sf-brand-hover\":\n state.checked &&\n !transitioning &&\n !disabled &&\n variant !== \"error\",\n \"hover:bg-sf-danger/90\":\n state.checked &&\n !transitioning &&\n !disabled &&\n variant === \"error\",\n \"hover:bg-sf-interact\":\n !state.checked && !transitioning && !disabled,\n \"cursor-not-allowed opacity-50\": disabled,\n },\n transitioning ? \"cursor-wait\" : !disabled ? \"cursor-pointer\" : \"\",\n className,\n baseClassName\n );\n\n const role =\n (props.role as string | undefined) ?? baseRole ?? \"switch\";\n const checkedA11yProps =\n role === \"switch\"\n ? { \"aria-checked\": state.checked }\n : { \"aria-pressed\": state.checked };\n\n return (\n <button\n {...restRootProps}\n {...props}\n ref={rootRef}\n type=\"button\"\n role={role}\n {...checkedA11yProps}\n aria-busy={transitioning || undefined}\n aria-label={props[\"aria-label\"] ?? ariaLabelFallback}\n className={mergedClassName}\n >\n <BaseSwitch.Thumb\n className={cn(\n \"pointer-events-none aspect-square h-full rounded-full bg-white transition-all\",\n {\n \"translate-x-full rtl:translate-x-[-100%]\": state.checked,\n }\n )}\n />\n </button>\n );\n }}\n />\n );\n\n // Wrap in Field (built-in) - no description for single switches\n // If no label provided, return bare switch (for use in other components)\n if (!label) {\n return switchControl;\n }\n\n return (\n <Field\n label={label}\n required={required}\n labelTooltip={labelTooltip}\n controlFirst={controlFirst}\n >\n {switchControl}\n </Field>\n );\n }\n);\n\nSwitchBase.displayName = \"Switch\";\n\n// Switch.Item for use within Switch.Group\nconst SwitchItem = forwardRef<HTMLButtonElement, SwitchItemProps>(\n (\n {\n className,\n checked,\n disabled,\n size = \"base\",\n variant = \"default\",\n label,\n onCheckedChange,\n transitioning,\n },\n ref\n ) => {\n const { controlFirst } = useContext(SwitchGroupContext);\n\n return (\n <label\n className={cn(\n \"relative inline-flex items-center gap-2\",\n // Control first (default): switch before label\n // Label first: label before switch using flex-row-reverse\n !controlFirst && \"flex-row-reverse justify-end\",\n disabled ? \"cursor-not-allowed opacity-50\" : \"cursor-pointer\",\n className\n )}\n >\n <BaseSwitch.Root\n ref={ref}\n checked={checked}\n disabled={disabled}\n onCheckedChange={onCheckedChange}\n nativeButton\n render={(rootProps, state) => {\n const {\n ref: rootRef,\n className: baseClassName,\n role: baseRole,\n \"aria-checked\": _ariaChecked,\n \"aria-pressed\": _ariaPressed,\n ...restRootProps\n } = rootProps as typeof rootProps & {\n ref?: Ref<HTMLButtonElement>;\n className?: string;\n role?: string;\n \"aria-checked\"?: boolean;\n \"aria-pressed\"?: boolean;\n };\n\n const mergedClassName = cn(\n \"interactive flex items-center gap-2 rounded-full border border-transparent bg-sf-recessed p-1 transition-colors\",\n switchVariants({ size, variant }),\n {\n \"bg-sf-brand\":\n state.checked && !disabled && variant !== \"error\",\n \"bg-sf-danger\":\n state.checked && !disabled && variant === \"error\",\n \"hover:bg-sf-brand-hover\":\n state.checked &&\n !transitioning &&\n !disabled &&\n variant !== \"error\",\n \"hover:bg-sf-danger/90\":\n state.checked &&\n !transitioning &&\n !disabled &&\n variant === \"error\",\n \"hover:bg-sf-interact\":\n !state.checked && !transitioning && !disabled,\n \"cursor-not-allowed opacity-50\": disabled,\n },\n transitioning ? \"cursor-wait\" : !disabled ? \"cursor-pointer\" : \"\",\n baseClassName\n );\n\n const role = baseRole ?? \"switch\";\n const checkedA11yProps =\n role === \"switch\"\n ? { \"aria-checked\": state.checked }\n : { \"aria-pressed\": state.checked };\n\n return (\n <button\n {...restRootProps}\n ref={rootRef}\n type=\"button\"\n role={role}\n {...checkedA11yProps}\n aria-busy={transitioning || undefined}\n className={mergedClassName}\n >\n <BaseSwitch.Thumb\n className={cn(\n \"pointer-events-none aspect-square h-full rounded-full bg-white transition-all\",\n {\n \"translate-x-full rtl:translate-x-[-100%]\": state.checked,\n }\n )}\n />\n </button>\n );\n }}\n />\n <span className=\"text-base font-medium text-sf-default\">{label}</span>\n </label>\n );\n }\n);\n\nSwitchItem.displayName = \"Switch.Item\";\n\n// Switch.Group with built-in Fieldset\nfunction SwitchGroup({\n legend,\n children,\n error,\n description,\n disabled,\n controlFirst = true,\n className,\n}: SwitchGroupProps) {\n return (\n <SwitchGroupContext.Provider value={{ controlFirst }}>\n <Fieldset.Root\n className={cn(\n \"flex flex-col gap-4 rounded-lg border border-sf-line p-4\",\n className\n )}\n disabled={disabled}\n >\n <Fieldset.Legend className=\"text-lg font-medium text-sf-default\">\n {legend}\n </Fieldset.Legend>\n <div className=\"flex flex-col gap-2\">{children}</div>\n {error && <p className=\"text-sm text-sf-danger\">{error}</p>}\n {description && <p className=\"text-sm text-sf-subtle\">{description}</p>}\n </Fieldset.Root>\n </SwitchGroupContext.Provider>\n );\n}\n\n// Compound component\nexport const Switch = Object.assign(SwitchBase, {\n Item: SwitchItem,\n Group: SwitchGroup,\n});\n\nSwitch.displayName = \"Switch\";\n"],"mappings":";;;;;;;;;AAeA,IAAa,qBAAqB;CAChC,MAAM;EACJ,IAAI;GACF,SAAS;GACT,aAAa;GACd;EACD,MAAM;GACJ,SAAS;GACT,aAAa;GACd;EACD,IAAI;GACF,SAAS;GACT,aAAa;GACd;EACF;CACD,SAAS;EACP,SAAS;GACP,SAAS;GACT,aAAa;GACd;EACD,OAAO;GACL,SAAS;GACT,aAAa;GACd;EACF;CACF;AAED,IAAa,6BAA6B;CACxC,MAAM;CACN,SAAS;CACV;AAwBD,SAAgB,eAAe,EAC7B,OAAO,2BAA2B,MAClC,UAAU,2BAA2B,YACZ,EAAE,EAAE;AAC7B,QAAO,GACL,mBAAmB,KAAK,MAAM,SAC9B,mBAAmB,QAAQ,SAAS,QACrC;;AAQH,IAAM,qBAAqB,cAAyC,EAClE,cAAc,MACf,CAAC;AAkGF,IAAM,aAAa,YAEf,EACE,WACA,SACA,UACA,OAAO,QACP,UAAU,WACV,OACA,cACA,UACA,eAAe,MACf,iBACA,eACA,GAAG,SAEL,QACG;CAEH,MAAM,oBAAoB,OAAO,UAAU,WAAW,QAAQ;CAC9D,MAAM,gBACJ,oBAAC,OAAW,MAAZ;EACO;EACI;EACC;EACO;EACjB,cAAA;EACA,SAAS,WAAW,UAAU;GAC5B,MAAM,EACJ,KAAK,SACL,WAAW,eACX,MAAM,UACN,gBAAgB,cAChB,gBAAgB,cAChB,GAAG,kBACD;GAQJ,MAAM,kBAAkB,GACtB,mHACA,eAAe;IAAE;IAAM;IAAS,CAAC,EACjC;IACE,eAAe,MAAM,WAAW,CAAC,YAAY,YAAY;IACzD,gBAAgB,MAAM,WAAW,CAAC,YAAY,YAAY;IAC1D,2BACE,MAAM,WACN,CAAC,iBACD,CAAC,YACD,YAAY;IACd,yBACE,MAAM,WACN,CAAC,iBACD,CAAC,YACD,YAAY;IACd,wBACE,CAAC,MAAM,WAAW,CAAC,iBAAiB,CAAC;IACvC,iCAAiC;IAClC,EACD,gBAAgB,gBAAgB,CAAC,WAAW,mBAAmB,IAC/D,WACA,cACD;GAED,MAAM,OACH,MAAM,QAA+B,YAAY;GACpD,MAAM,mBACJ,SAAS,WACL,EAAE,gBAAgB,MAAM,SAAS,GACjC,EAAE,gBAAgB,MAAM,SAAS;AAEvC,UACE,oBAAC,UAAD;IACE,GAAI;IACJ,GAAI;IACJ,KAAK;IACL,MAAK;IACC;IACN,GAAI;IACJ,aAAW,iBAAiB,KAAA;IAC5B,cAAY,MAAM,iBAAiB;IACnC,WAAW;cAEX,oBAAC,OAAW,OAAZ,EACE,WAAW,GACT,iFACA,EACE,4CAA4C,MAAM,SACnD,CACF,EACD,CAAA;IACK,CAAA;;EAGb,CAAA;AAKJ,KAAI,CAAC,MACH,QAAO;AAGT,QACE,oBAAC,OAAD;EACS;EACG;EACI;EACA;YAEb;EACK,CAAA;EAGb;AAED,WAAW,cAAc;AAGzB,IAAM,aAAa,YAEf,EACE,WACA,SACA,UACA,OAAO,QACP,UAAU,WACV,OACA,iBACA,iBAEF,QACG;CACH,MAAM,EAAE,iBAAiB,WAAW,mBAAmB;AAEvD,QACE,qBAAC,SAAD;EACE,WAAW,GACT,2CAGA,CAAC,gBAAgB,gCACjB,WAAW,kCAAkC,kBAC7C,UACD;YARH,CAUE,oBAAC,OAAW,MAAZ;GACO;GACI;GACC;GACO;GACjB,cAAA;GACA,SAAS,WAAW,UAAU;IAC5B,MAAM,EACJ,KAAK,SACL,WAAW,eACX,MAAM,UACN,gBAAgB,cAChB,gBAAgB,cAChB,GAAG,kBACD;IAQJ,MAAM,kBAAkB,GACtB,mHACA,eAAe;KAAE;KAAM;KAAS,CAAC,EACjC;KACE,eACE,MAAM,WAAW,CAAC,YAAY,YAAY;KAC5C,gBACE,MAAM,WAAW,CAAC,YAAY,YAAY;KAC5C,2BACE,MAAM,WACN,CAAC,iBACD,CAAC,YACD,YAAY;KACd,yBACE,MAAM,WACN,CAAC,iBACD,CAAC,YACD,YAAY;KACd,wBACE,CAAC,MAAM,WAAW,CAAC,iBAAiB,CAAC;KACvC,iCAAiC;KAClC,EACD,gBAAgB,gBAAgB,CAAC,WAAW,mBAAmB,IAC/D,cACD;IAED,MAAM,OAAO,YAAY;IACzB,MAAM,mBACJ,SAAS,WACL,EAAE,gBAAgB,MAAM,SAAS,GACjC,EAAE,gBAAgB,MAAM,SAAS;AAEvC,WACE,oBAAC,UAAD;KACE,GAAI;KACJ,KAAK;KACL,MAAK;KACC;KACN,GAAI;KACJ,aAAW,iBAAiB,KAAA;KAC5B,WAAW;eAEX,oBAAC,OAAW,OAAZ,EACE,WAAW,GACT,iFACA,EACE,4CAA4C,MAAM,SACnD,CACF,EACD,CAAA;KACK,CAAA;;GAGb,CAAA,EACF,oBAAC,QAAD;GAAM,WAAU;aAAyC;GAAa,CAAA,CAChE;;EAGb;AAED,WAAW,cAAc;AAGzB,SAAS,YAAY,EACnB,QACA,UACA,OACA,aACA,UACA,eAAe,MACf,aACmB;AACnB,QACE,oBAAC,mBAAmB,UAApB;EAA6B,OAAO,EAAE,cAAc;YAClD,qBAAC,SAAS,MAAV;GACE,WAAW,GACT,4DACA,UACD;GACS;aALZ;IAOE,oBAAC,SAAS,QAAV;KAAiB,WAAU;eACxB;KACe,CAAA;IAClB,oBAAC,OAAD;KAAK,WAAU;KAAuB;KAAe,CAAA;IACpD,SAAS,oBAAC,KAAD;KAAG,WAAU;eAA0B;KAAU,CAAA;IAC1D,eAAe,oBAAC,KAAD;KAAG,WAAU;eAA0B;KAAgB,CAAA;IACzD;;EACY,CAAA;;AAKlC,IAAa,WAAS,OAAO,OAAO,YAAY;CAC9C,MAAM;CACN,OAAO;CACR,CAAC;AAEF,SAAO,cAAc"}
@@ -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-DYhUmZNw.js";
3
+ import { t as Checkbox } from "./checkbox-D7p4QKsC.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-Rv4JMy0B.js.map
200
+ //# sourceMappingURL=table-BBeAtYVZ.js.map