@fragments-sdk/ui 0.12.0 → 0.14.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 (675) hide show
  1. package/dist/assets/ui.css +1642 -1679
  2. package/dist/chart.cjs.map +1 -1
  3. package/dist/chart.js.map +1 -1
  4. package/dist/codeblock.cjs +26 -18
  5. package/dist/codeblock.cjs.map +1 -1
  6. package/dist/codeblock.js +26 -18
  7. package/dist/codeblock.js.map +1 -1
  8. package/dist/components/Accordion/Accordion.module.scss.cjs +8 -8
  9. package/dist/components/Accordion/Accordion.module.scss.js +8 -8
  10. package/dist/components/Accordion/index.cjs +17 -6
  11. package/dist/components/Accordion/index.cjs.map +1 -1
  12. package/dist/components/Accordion/index.d.ts +25 -12
  13. package/dist/components/Accordion/index.d.ts.map +1 -1
  14. package/dist/components/Accordion/index.js +17 -6
  15. package/dist/components/Accordion/index.js.map +1 -1
  16. package/dist/components/Alert/Alert.module.scss.cjs +12 -12
  17. package/dist/components/Alert/Alert.module.scss.js +12 -12
  18. package/dist/components/Alert/index.cjs +37 -15
  19. package/dist/components/Alert/index.cjs.map +1 -1
  20. package/dist/components/Alert/index.d.ts +15 -22
  21. package/dist/components/Alert/index.d.ts.map +1 -1
  22. package/dist/components/Alert/index.js +37 -15
  23. package/dist/components/Alert/index.js.map +1 -1
  24. package/dist/components/AppShell/AppShell.module.scss.cjs +14 -14
  25. package/dist/components/AppShell/AppShell.module.scss.js +14 -14
  26. package/dist/components/AppShell/index.cjs +3 -1
  27. package/dist/components/AppShell/index.cjs.map +1 -1
  28. package/dist/components/AppShell/index.d.ts.map +1 -1
  29. package/dist/components/AppShell/index.js +3 -1
  30. package/dist/components/AppShell/index.js.map +1 -1
  31. package/dist/components/Avatar/index.cjs +9 -1
  32. package/dist/components/Avatar/index.cjs.map +1 -1
  33. package/dist/components/Avatar/index.d.ts +2 -0
  34. package/dist/components/Avatar/index.d.ts.map +1 -1
  35. package/dist/components/Avatar/index.js +9 -1
  36. package/dist/components/Avatar/index.js.map +1 -1
  37. package/dist/components/Badge/index.cjs +4 -2
  38. package/dist/components/Badge/index.cjs.map +1 -1
  39. package/dist/components/Badge/index.d.ts +3 -0
  40. package/dist/components/Badge/index.d.ts.map +1 -1
  41. package/dist/components/Badge/index.js +4 -2
  42. package/dist/components/Badge/index.js.map +1 -1
  43. package/dist/components/BentoGrid/BentoGrid.module.scss.cjs +11 -11
  44. package/dist/components/BentoGrid/BentoGrid.module.scss.js +11 -11
  45. package/dist/components/BentoGrid/index.cjs +8 -5
  46. package/dist/components/BentoGrid/index.cjs.map +1 -1
  47. package/dist/components/BentoGrid/index.d.ts +2 -8
  48. package/dist/components/BentoGrid/index.d.ts.map +1 -1
  49. package/dist/components/BentoGrid/index.js +8 -5
  50. package/dist/components/BentoGrid/index.js.map +1 -1
  51. package/dist/components/Box/index.cjs +12 -2
  52. package/dist/components/Box/index.cjs.map +1 -1
  53. package/dist/components/Box/index.d.ts +1 -1
  54. package/dist/components/Box/index.d.ts.map +1 -1
  55. package/dist/components/Box/index.js +12 -2
  56. package/dist/components/Box/index.js.map +1 -1
  57. package/dist/components/Breadcrumbs/index.cjs +3 -1
  58. package/dist/components/Breadcrumbs/index.cjs.map +1 -1
  59. package/dist/components/Breadcrumbs/index.d.ts +3 -1
  60. package/dist/components/Breadcrumbs/index.d.ts.map +1 -1
  61. package/dist/components/Breadcrumbs/index.js +3 -1
  62. package/dist/components/Breadcrumbs/index.js.map +1 -1
  63. package/dist/components/Button/Button.module.scss.cjs +11 -11
  64. package/dist/components/Button/Button.module.scss.js +11 -11
  65. package/dist/components/Button/index.cjs +5 -2
  66. package/dist/components/Button/index.cjs.map +1 -1
  67. package/dist/components/Button/index.d.ts +3 -3
  68. package/dist/components/Button/index.d.ts.map +1 -1
  69. package/dist/components/Button/index.js +5 -2
  70. package/dist/components/Button/index.js.map +1 -1
  71. package/dist/components/ButtonGroup/index.cjs +3 -2
  72. package/dist/components/ButtonGroup/index.cjs.map +1 -1
  73. package/dist/components/ButtonGroup/index.d.ts +1 -2
  74. package/dist/components/ButtonGroup/index.d.ts.map +1 -1
  75. package/dist/components/ButtonGroup/index.js +3 -2
  76. package/dist/components/ButtonGroup/index.js.map +1 -1
  77. package/dist/components/Card/Card.module.scss.cjs +14 -14
  78. package/dist/components/Card/Card.module.scss.js +14 -14
  79. package/dist/components/Card/index.cjs +3 -22
  80. package/dist/components/Card/index.cjs.map +1 -1
  81. package/dist/components/Card/index.d.ts +6 -11
  82. package/dist/components/Card/index.d.ts.map +1 -1
  83. package/dist/components/Card/index.js +3 -22
  84. package/dist/components/Card/index.js.map +1 -1
  85. package/dist/components/Chart/Chart.module.scss.cjs +15 -15
  86. package/dist/components/Chart/Chart.module.scss.js +15 -15
  87. package/dist/components/Chart/index.d.ts +3 -3
  88. package/dist/components/Chart/index.d.ts.map +1 -1
  89. package/dist/components/Checkbox/Checkbox.module.scss.cjs +10 -10
  90. package/dist/components/Checkbox/Checkbox.module.scss.js +10 -10
  91. package/dist/components/Checkbox/index.cjs +11 -4
  92. package/dist/components/Checkbox/index.cjs.map +1 -1
  93. package/dist/components/Checkbox/index.d.ts +6 -0
  94. package/dist/components/Checkbox/index.d.ts.map +1 -1
  95. package/dist/components/Checkbox/index.js +11 -4
  96. package/dist/components/Checkbox/index.js.map +1 -1
  97. package/dist/components/Chip/index.cjs +11 -3
  98. package/dist/components/Chip/index.cjs.map +1 -1
  99. package/dist/components/Chip/index.d.ts +1 -2
  100. package/dist/components/Chip/index.d.ts.map +1 -1
  101. package/dist/components/Chip/index.js +11 -3
  102. package/dist/components/Chip/index.js.map +1 -1
  103. package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +20 -20
  104. package/dist/components/CodeBlock/CodeBlock.module.scss.js +20 -20
  105. package/dist/components/CodeBlock/index.d.ts +8 -2
  106. package/dist/components/CodeBlock/index.d.ts.map +1 -1
  107. package/dist/components/Collapsible/Collapsible.module.scss.cjs +10 -10
  108. package/dist/components/Collapsible/Collapsible.module.scss.js +10 -10
  109. package/dist/components/Collapsible/index.cjs +45 -10
  110. package/dist/components/Collapsible/index.cjs.map +1 -1
  111. package/dist/components/Collapsible/index.d.ts +6 -12
  112. package/dist/components/Collapsible/index.d.ts.map +1 -1
  113. package/dist/components/Collapsible/index.js +45 -10
  114. package/dist/components/Collapsible/index.js.map +1 -1
  115. package/dist/components/Combobox/Combobox.module.scss.cjs +15 -15
  116. package/dist/components/Combobox/Combobox.module.scss.js +15 -15
  117. package/dist/components/Combobox/index.cjs +86 -27
  118. package/dist/components/Combobox/index.cjs.map +1 -1
  119. package/dist/components/Combobox/index.d.ts +40 -23
  120. package/dist/components/Combobox/index.d.ts.map +1 -1
  121. package/dist/components/Combobox/index.js +86 -27
  122. package/dist/components/Combobox/index.js.map +1 -1
  123. package/dist/components/Command/Command.module.scss.cjs +11 -11
  124. package/dist/components/Command/Command.module.scss.js +11 -11
  125. package/dist/components/Command/index.cjs +55 -22
  126. package/dist/components/Command/index.cjs.map +1 -1
  127. package/dist/components/Command/index.d.ts +3 -3
  128. package/dist/components/Command/index.d.ts.map +1 -1
  129. package/dist/components/Command/index.js +55 -22
  130. package/dist/components/Command/index.js.map +1 -1
  131. package/dist/components/ConversationList/ConversationList.module.scss.cjs +10 -10
  132. package/dist/components/ConversationList/ConversationList.module.scss.js +10 -10
  133. package/dist/components/ConversationList/index.cjs +6 -3
  134. package/dist/components/ConversationList/index.cjs.map +1 -1
  135. package/dist/components/ConversationList/index.d.ts +1 -1
  136. package/dist/components/ConversationList/index.d.ts.map +1 -1
  137. package/dist/components/ConversationList/index.js +6 -3
  138. package/dist/components/ConversationList/index.js.map +1 -1
  139. package/dist/components/DataTable/DataTable.module.scss.cjs +26 -26
  140. package/dist/components/DataTable/DataTable.module.scss.js +26 -26
  141. package/dist/components/DataTable/index.cjs +25 -4
  142. package/dist/components/DataTable/index.cjs.map +1 -1
  143. package/dist/components/DataTable/index.d.ts +7 -2
  144. package/dist/components/DataTable/index.d.ts.map +1 -1
  145. package/dist/components/DataTable/index.js +25 -4
  146. package/dist/components/DataTable/index.js.map +1 -1
  147. package/dist/components/DatePicker/DatePicker.module.scss.cjs +26 -26
  148. package/dist/components/DatePicker/DatePicker.module.scss.js +26 -26
  149. package/dist/components/DatePicker/index.d.ts +4 -5
  150. package/dist/components/DatePicker/index.d.ts.map +1 -1
  151. package/dist/components/Dialog/Dialog.module.scss.cjs +14 -14
  152. package/dist/components/Dialog/Dialog.module.scss.js +14 -14
  153. package/dist/components/Dialog/index.cjs +14 -10
  154. package/dist/components/Dialog/index.cjs.map +1 -1
  155. package/dist/components/Dialog/index.d.ts +26 -17
  156. package/dist/components/Dialog/index.d.ts.map +1 -1
  157. package/dist/components/Dialog/index.js +14 -10
  158. package/dist/components/Dialog/index.js.map +1 -1
  159. package/dist/components/Drawer/Drawer.module.scss.cjs +26 -26
  160. package/dist/components/Drawer/Drawer.module.scss.js +26 -26
  161. package/dist/components/Drawer/index.cjs +41 -11
  162. package/dist/components/Drawer/index.cjs.map +1 -1
  163. package/dist/components/Drawer/index.d.ts +11 -13
  164. package/dist/components/Drawer/index.d.ts.map +1 -1
  165. package/dist/components/Drawer/index.js +24 -11
  166. package/dist/components/Drawer/index.js.map +1 -1
  167. package/dist/components/Editor/Editor.module.scss.cjs +17 -17
  168. package/dist/components/Editor/Editor.module.scss.js +17 -17
  169. package/dist/components/Editor/index.cjs +32 -7
  170. package/dist/components/Editor/index.cjs.map +1 -1
  171. package/dist/components/Editor/index.d.ts +16 -3
  172. package/dist/components/Editor/index.d.ts.map +1 -1
  173. package/dist/components/Editor/index.js +32 -7
  174. package/dist/components/Editor/index.js.map +1 -1
  175. package/dist/components/EmptyState/EmptyState.module.scss.cjs +8 -8
  176. package/dist/components/EmptyState/EmptyState.module.scss.js +8 -8
  177. package/dist/components/EmptyState/index.cjs +12 -8
  178. package/dist/components/EmptyState/index.cjs.map +1 -1
  179. package/dist/components/EmptyState/index.d.ts +8 -12
  180. package/dist/components/EmptyState/index.d.ts.map +1 -1
  181. package/dist/components/EmptyState/index.js +12 -8
  182. package/dist/components/EmptyState/index.js.map +1 -1
  183. package/dist/components/Fieldset/index.cjs +2 -2
  184. package/dist/components/Fieldset/index.cjs.map +1 -1
  185. package/dist/components/Fieldset/index.d.ts +2 -3
  186. package/dist/components/Fieldset/index.d.ts.map +1 -1
  187. package/dist/components/Fieldset/index.js +2 -2
  188. package/dist/components/Fieldset/index.js.map +1 -1
  189. package/dist/components/Form/index.cjs +13 -13
  190. package/dist/components/Form/index.cjs.map +1 -1
  191. package/dist/components/Form/index.d.ts +5 -2
  192. package/dist/components/Form/index.d.ts.map +1 -1
  193. package/dist/components/Form/index.js +13 -13
  194. package/dist/components/Form/index.js.map +1 -1
  195. package/dist/components/Grid/Grid.module.scss.cjs +57 -57
  196. package/dist/components/Grid/Grid.module.scss.js +57 -57
  197. package/dist/components/Grid/index.cjs +7 -4
  198. package/dist/components/Grid/index.cjs.map +1 -1
  199. package/dist/components/Grid/index.d.ts +5 -3
  200. package/dist/components/Grid/index.d.ts.map +1 -1
  201. package/dist/components/Grid/index.js +7 -4
  202. package/dist/components/Grid/index.js.map +1 -1
  203. package/dist/components/Header/Header.module.scss.cjs +21 -21
  204. package/dist/components/Header/Header.module.scss.js +21 -21
  205. package/dist/components/Header/index.cjs +61 -23
  206. package/dist/components/Header/index.cjs.map +1 -1
  207. package/dist/components/Header/index.d.ts +27 -34
  208. package/dist/components/Header/index.d.ts.map +1 -1
  209. package/dist/components/Header/index.js +61 -23
  210. package/dist/components/Header/index.js.map +1 -1
  211. package/dist/components/Icon/index.cjs +11 -1
  212. package/dist/components/Icon/index.cjs.map +1 -1
  213. package/dist/components/Icon/index.d.ts +28 -9
  214. package/dist/components/Icon/index.d.ts.map +1 -1
  215. package/dist/components/Icon/index.js +11 -1
  216. package/dist/components/Icon/index.js.map +1 -1
  217. package/dist/components/Image/index.cjs +15 -4
  218. package/dist/components/Image/index.cjs.map +1 -1
  219. package/dist/components/Image/index.d.ts +7 -1
  220. package/dist/components/Image/index.d.ts.map +1 -1
  221. package/dist/components/Image/index.js +15 -4
  222. package/dist/components/Image/index.js.map +1 -1
  223. package/dist/components/Input/Input.module.scss.cjs +13 -13
  224. package/dist/components/Input/Input.module.scss.js +13 -13
  225. package/dist/components/Input/index.cjs +79 -31
  226. package/dist/components/Input/index.cjs.map +1 -1
  227. package/dist/components/Input/index.d.ts +17 -3
  228. package/dist/components/Input/index.d.ts.map +1 -1
  229. package/dist/components/Input/index.js +79 -31
  230. package/dist/components/Input/index.js.map +1 -1
  231. package/dist/components/Link/index.cjs +17 -0
  232. package/dist/components/Link/index.cjs.map +1 -1
  233. package/dist/components/Link/index.d.ts.map +1 -1
  234. package/dist/components/Link/index.js +17 -0
  235. package/dist/components/Link/index.js.map +1 -1
  236. package/dist/components/Listbox/Listbox.module.scss.cjs +8 -8
  237. package/dist/components/Listbox/Listbox.module.scss.js +8 -8
  238. package/dist/components/Listbox/index.cjs +10 -6
  239. package/dist/components/Listbox/index.cjs.map +1 -1
  240. package/dist/components/Listbox/index.d.ts +2 -2
  241. package/dist/components/Listbox/index.d.ts.map +1 -1
  242. package/dist/components/Listbox/index.js +10 -6
  243. package/dist/components/Listbox/index.js.map +1 -1
  244. package/dist/components/Markdown/Markdown.module.scss.cjs +1 -1
  245. package/dist/components/Markdown/Markdown.module.scss.js +1 -1
  246. package/dist/components/Markdown/index.d.ts +4 -2
  247. package/dist/components/Markdown/index.d.ts.map +1 -1
  248. package/dist/components/Menu/Menu.module.scss.cjs +13 -13
  249. package/dist/components/Menu/Menu.module.scss.js +13 -13
  250. package/dist/components/Menu/index.cjs +41 -16
  251. package/dist/components/Menu/index.cjs.map +1 -1
  252. package/dist/components/Menu/index.d.ts +24 -27
  253. package/dist/components/Menu/index.d.ts.map +1 -1
  254. package/dist/components/Menu/index.js +41 -16
  255. package/dist/components/Menu/index.js.map +1 -1
  256. package/dist/components/Message/Message.module.scss.cjs +18 -18
  257. package/dist/components/Message/Message.module.scss.js +18 -18
  258. package/dist/components/NavigationMenu/NavigationMenu.module.scss.cjs +28 -28
  259. package/dist/components/NavigationMenu/NavigationMenu.module.scss.js +28 -28
  260. package/dist/components/NavigationMenu/NavigationMenuContext.cjs.map +1 -1
  261. package/dist/components/NavigationMenu/NavigationMenuContext.d.ts +9 -0
  262. package/dist/components/NavigationMenu/NavigationMenuContext.d.ts.map +1 -1
  263. package/dist/components/NavigationMenu/NavigationMenuContext.js.map +1 -1
  264. package/dist/components/NavigationMenu/index.cjs +92 -21
  265. package/dist/components/NavigationMenu/index.cjs.map +1 -1
  266. package/dist/components/NavigationMenu/index.d.ts +5 -1
  267. package/dist/components/NavigationMenu/index.d.ts.map +1 -1
  268. package/dist/components/NavigationMenu/index.js +92 -21
  269. package/dist/components/NavigationMenu/index.js.map +1 -1
  270. package/dist/components/NavigationMenu/useNavigationMenu.cjs +2 -0
  271. package/dist/components/NavigationMenu/useNavigationMenu.cjs.map +1 -1
  272. package/dist/components/NavigationMenu/useNavigationMenu.d.ts +1 -0
  273. package/dist/components/NavigationMenu/useNavigationMenu.d.ts.map +1 -1
  274. package/dist/components/NavigationMenu/useNavigationMenu.js +2 -0
  275. package/dist/components/NavigationMenu/useNavigationMenu.js.map +1 -1
  276. package/dist/components/Pagination/index.cjs +37 -9
  277. package/dist/components/Pagination/index.cjs.map +1 -1
  278. package/dist/components/Pagination/index.d.ts +2 -3
  279. package/dist/components/Pagination/index.d.ts.map +1 -1
  280. package/dist/components/Pagination/index.js +37 -9
  281. package/dist/components/Pagination/index.js.map +1 -1
  282. package/dist/components/Popover/Popover.module.scss.cjs +10 -10
  283. package/dist/components/Popover/Popover.module.scss.js +10 -10
  284. package/dist/components/Popover/index.cjs +52 -10
  285. package/dist/components/Popover/index.cjs.map +1 -1
  286. package/dist/components/Popover/index.d.ts +22 -16
  287. package/dist/components/Popover/index.d.ts.map +1 -1
  288. package/dist/components/Popover/index.js +35 -10
  289. package/dist/components/Popover/index.js.map +1 -1
  290. package/dist/components/Progress/index.cjs +3 -1
  291. package/dist/components/Progress/index.cjs.map +1 -1
  292. package/dist/components/Progress/index.d.ts.map +1 -1
  293. package/dist/components/Progress/index.js +3 -1
  294. package/dist/components/Progress/index.js.map +1 -1
  295. package/dist/components/Prompt/Prompt.module.scss.cjs +14 -14
  296. package/dist/components/Prompt/Prompt.module.scss.js +14 -14
  297. package/dist/components/Prompt/index.cjs +14 -2
  298. package/dist/components/Prompt/index.cjs.map +1 -1
  299. package/dist/components/Prompt/index.d.ts +8 -5
  300. package/dist/components/Prompt/index.d.ts.map +1 -1
  301. package/dist/components/Prompt/index.js +14 -2
  302. package/dist/components/Prompt/index.js.map +1 -1
  303. package/dist/components/RadioGroup/index.cjs +14 -6
  304. package/dist/components/RadioGroup/index.cjs.map +1 -1
  305. package/dist/components/RadioGroup/index.d.ts +12 -2
  306. package/dist/components/RadioGroup/index.d.ts.map +1 -1
  307. package/dist/components/RadioGroup/index.js +14 -6
  308. package/dist/components/RadioGroup/index.js.map +1 -1
  309. package/dist/components/Select/Select.module.scss.cjs +10 -10
  310. package/dist/components/Select/Select.module.scss.js +10 -10
  311. package/dist/components/Select/index.cjs +43 -29
  312. package/dist/components/Select/index.cjs.map +1 -1
  313. package/dist/components/Select/index.d.ts +12 -11
  314. package/dist/components/Select/index.d.ts.map +1 -1
  315. package/dist/components/Select/index.js +43 -29
  316. package/dist/components/Select/index.js.map +1 -1
  317. package/dist/components/Sidebar/Sidebar.module.scss.cjs +42 -42
  318. package/dist/components/Sidebar/Sidebar.module.scss.js +42 -42
  319. package/dist/components/Sidebar/index.cjs +73 -26
  320. package/dist/components/Sidebar/index.cjs.map +1 -1
  321. package/dist/components/Sidebar/index.d.ts +23 -35
  322. package/dist/components/Sidebar/index.d.ts.map +1 -1
  323. package/dist/components/Sidebar/index.js +73 -26
  324. package/dist/components/Sidebar/index.js.map +1 -1
  325. package/dist/components/Skeleton/index.cjs +6 -3
  326. package/dist/components/Skeleton/index.cjs.map +1 -1
  327. package/dist/components/Skeleton/index.d.ts +3 -7
  328. package/dist/components/Skeleton/index.d.ts.map +1 -1
  329. package/dist/components/Skeleton/index.js +6 -3
  330. package/dist/components/Skeleton/index.js.map +1 -1
  331. package/dist/components/Slider/Slider.module.scss.cjs +13 -10
  332. package/dist/components/Slider/Slider.module.scss.cjs.map +1 -1
  333. package/dist/components/Slider/Slider.module.scss.js +13 -10
  334. package/dist/components/Slider/Slider.module.scss.js.map +1 -1
  335. package/dist/components/Slider/index.cjs +33 -1
  336. package/dist/components/Slider/index.cjs.map +1 -1
  337. package/dist/components/Slider/index.d.ts +2 -0
  338. package/dist/components/Slider/index.d.ts.map +1 -1
  339. package/dist/components/Slider/index.js +33 -1
  340. package/dist/components/Slider/index.js.map +1 -1
  341. package/dist/components/Stack/index.cjs +12 -2
  342. package/dist/components/Stack/index.cjs.map +1 -1
  343. package/dist/components/Stack/index.d.ts +3 -2
  344. package/dist/components/Stack/index.d.ts.map +1 -1
  345. package/dist/components/Stack/index.js +12 -2
  346. package/dist/components/Stack/index.js.map +1 -1
  347. package/dist/components/Table/Table.module.scss.cjs +16 -16
  348. package/dist/components/Table/Table.module.scss.js +16 -16
  349. package/dist/components/Table/index.d.ts +10 -4
  350. package/dist/components/Table/index.d.ts.map +1 -1
  351. package/dist/components/TableOfContents/index.cjs +8 -5
  352. package/dist/components/TableOfContents/index.cjs.map +1 -1
  353. package/dist/components/TableOfContents/index.d.ts +2 -2
  354. package/dist/components/TableOfContents/index.d.ts.map +1 -1
  355. package/dist/components/TableOfContents/index.js +8 -5
  356. package/dist/components/TableOfContents/index.js.map +1 -1
  357. package/dist/components/Tabs/Tabs.module.scss.cjs +9 -9
  358. package/dist/components/Tabs/Tabs.module.scss.js +9 -9
  359. package/dist/components/Tabs/index.cjs +9 -6
  360. package/dist/components/Tabs/index.cjs.map +1 -1
  361. package/dist/components/Tabs/index.d.ts +4 -1
  362. package/dist/components/Tabs/index.d.ts.map +1 -1
  363. package/dist/components/Tabs/index.js +9 -6
  364. package/dist/components/Tabs/index.js.map +1 -1
  365. package/dist/components/Textarea/index.cjs +61 -43
  366. package/dist/components/Textarea/index.cjs.map +1 -1
  367. package/dist/components/Textarea/index.d.ts +9 -1
  368. package/dist/components/Textarea/index.d.ts.map +1 -1
  369. package/dist/components/Textarea/index.js +61 -43
  370. package/dist/components/Textarea/index.js.map +1 -1
  371. package/dist/components/Theme/index.cjs +3 -1
  372. package/dist/components/Theme/index.cjs.map +1 -1
  373. package/dist/components/Theme/index.d.ts +2 -4
  374. package/dist/components/Theme/index.d.ts.map +1 -1
  375. package/dist/components/Theme/index.js +3 -1
  376. package/dist/components/Theme/index.js.map +1 -1
  377. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.cjs +22 -22
  378. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.js +22 -22
  379. package/dist/components/Toast/Toast.module.scss.cjs +20 -20
  380. package/dist/components/Toast/Toast.module.scss.js +20 -20
  381. package/dist/components/Toast/index.cjs +15 -14
  382. package/dist/components/Toast/index.cjs.map +1 -1
  383. package/dist/components/Toast/index.d.ts +9 -5
  384. package/dist/components/Toast/index.d.ts.map +1 -1
  385. package/dist/components/Toast/index.js +15 -14
  386. package/dist/components/Toast/index.js.map +1 -1
  387. package/dist/components/Toggle/Toggle.module.scss.cjs +11 -11
  388. package/dist/components/Toggle/Toggle.module.scss.js +11 -11
  389. package/dist/components/Toggle/index.cjs +1 -1
  390. package/dist/components/Toggle/index.cjs.map +1 -1
  391. package/dist/components/Toggle/index.js +1 -1
  392. package/dist/components/Toggle/index.js.map +1 -1
  393. package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +17 -17
  394. package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +17 -17
  395. package/dist/components/ToggleGroup/index.cjs +27 -8
  396. package/dist/components/ToggleGroup/index.cjs.map +1 -1
  397. package/dist/components/ToggleGroup/index.d.ts +8 -3
  398. package/dist/components/ToggleGroup/index.d.ts.map +1 -1
  399. package/dist/components/ToggleGroup/index.js +27 -8
  400. package/dist/components/ToggleGroup/index.js.map +1 -1
  401. package/dist/components/Tooltip/Tooltip.module.scss.cjs +3 -3
  402. package/dist/components/Tooltip/Tooltip.module.scss.js +3 -3
  403. package/dist/components/Tooltip/index.cjs +32 -10
  404. package/dist/components/Tooltip/index.cjs.map +1 -1
  405. package/dist/components/Tooltip/index.d.ts +3 -1
  406. package/dist/components/Tooltip/index.d.ts.map +1 -1
  407. package/dist/components/Tooltip/index.js +32 -10
  408. package/dist/components/Tooltip/index.js.map +1 -1
  409. package/dist/components/VisuallyHidden/index.cjs +10 -2
  410. package/dist/components/VisuallyHidden/index.cjs.map +1 -1
  411. package/dist/components/VisuallyHidden/index.d.ts +1 -1
  412. package/dist/components/VisuallyHidden/index.d.ts.map +1 -1
  413. package/dist/components/VisuallyHidden/index.js +10 -2
  414. package/dist/components/VisuallyHidden/index.js.map +1 -1
  415. package/dist/datepicker.cjs +32 -11
  416. package/dist/datepicker.cjs.map +1 -1
  417. package/dist/datepicker.js +32 -11
  418. package/dist/datepicker.js.map +1 -1
  419. package/dist/index.cjs.map +1 -1
  420. package/dist/index.d.ts +2 -1
  421. package/dist/index.d.ts.map +1 -1
  422. package/dist/index.js.map +1 -1
  423. package/dist/markdown.cjs +5 -5
  424. package/dist/markdown.cjs.map +1 -1
  425. package/dist/markdown.js +5 -5
  426. package/dist/markdown.js.map +1 -1
  427. package/dist/table.cjs +19 -3
  428. package/dist/table.cjs.map +1 -1
  429. package/dist/table.js +19 -3
  430. package/dist/table.js.map +1 -1
  431. package/fragments.json +1 -1
  432. package/package.json +2 -2
  433. package/src/blocks/AccountSettings.block.ts +1 -1
  434. package/src/blocks/ActivityFeed.block.ts +1 -1
  435. package/src/blocks/ActivityFeedSkeleton.block.ts +1 -1
  436. package/src/blocks/BlogEditor.block.ts +1 -1
  437. package/src/blocks/ChatInterface.block.ts +1 -1
  438. package/src/blocks/ChatMessages.block.ts +1 -1
  439. package/src/blocks/CheckoutForm.block.ts +1 -1
  440. package/src/blocks/CommandPalette.block.ts +1 -1
  441. package/src/blocks/ContactForm.block.ts +1 -1
  442. package/src/blocks/DashboardLayout.block.ts +1 -1
  443. package/src/blocks/DashboardPage.block.ts +1 -1
  444. package/src/blocks/DashboardSkeleton.block.ts +1 -1
  445. package/src/blocks/DataTable.block.ts +1 -1
  446. package/src/blocks/EmptyState.block.ts +1 -1
  447. package/src/blocks/FAQSection.block.ts +1 -1
  448. package/src/blocks/FeatureGrid.block.ts +1 -1
  449. package/src/blocks/HeroSection.block.ts +1 -1
  450. package/src/blocks/LoginForm.block.ts +1 -1
  451. package/src/blocks/NavigationHeader.block.ts +1 -1
  452. package/src/blocks/PaginatedTable.block.ts +1 -1
  453. package/src/blocks/PricingComparison.block.ts +1 -1
  454. package/src/blocks/ProductCard.block.ts +1 -1
  455. package/src/blocks/RegistrationForm.block.ts +1 -1
  456. package/src/blocks/SettingsDrawer.block.ts +1 -1
  457. package/src/blocks/SettingsPanel.block.ts +1 -1
  458. package/src/blocks/ShoppingCart.block.ts +1 -1
  459. package/src/blocks/StatsCard.block.ts +1 -1
  460. package/src/blocks/StatsCardSkeleton.block.ts +1 -1
  461. package/src/blocks/TableSkeleton.block.ts +1 -1
  462. package/src/blocks/ThinkingStates.block.ts +1 -1
  463. package/src/components/Accordion/Accordion.fragment.tsx +7 -7
  464. package/src/components/Accordion/Accordion.module.scss +2 -2
  465. package/src/components/Accordion/Accordion.test.tsx +41 -5
  466. package/src/components/Accordion/index.tsx +41 -14
  467. package/src/components/Alert/Alert.fragment.tsx +5 -1
  468. package/src/components/Alert/Alert.module.scss +1 -1
  469. package/src/components/Alert/Alert.test.tsx +25 -0
  470. package/src/components/Alert/index.tsx +49 -30
  471. package/src/components/AppShell/AppShell.fragment.tsx +1 -1
  472. package/src/components/AppShell/AppShell.module.scss +5 -5
  473. package/src/components/AppShell/AppShell.test.tsx +12 -0
  474. package/src/components/AppShell/index.tsx +2 -0
  475. package/src/components/Avatar/Avatar.fragment.tsx +7 -1
  476. package/src/components/Avatar/Avatar.test.tsx +24 -2
  477. package/src/components/Avatar/index.tsx +13 -1
  478. package/src/components/Badge/Badge.fragment.tsx +16 -1
  479. package/src/components/Badge/Badge.test.tsx +8 -1
  480. package/src/components/Badge/index.tsx +7 -2
  481. package/src/components/BentoGrid/BentoGrid.fragment.tsx +3 -1
  482. package/src/components/BentoGrid/BentoGrid.module.scss +52 -16
  483. package/src/components/BentoGrid/BentoGrid.test.tsx +20 -0
  484. package/src/components/BentoGrid/index.tsx +9 -12
  485. package/src/components/Box/Box.fragment.tsx +3 -1
  486. package/src/components/Box/Box.test.tsx +14 -0
  487. package/src/components/Box/index.tsx +8 -2
  488. package/src/components/Breadcrumbs/Breadcrumbs.fragment.tsx +19 -1
  489. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +13 -0
  490. package/src/components/Breadcrumbs/index.tsx +5 -1
  491. package/src/components/Button/Button.fragment.tsx +28 -6
  492. package/src/components/Button/Button.module.scss +3 -3
  493. package/src/components/Button/Button.test.tsx +11 -0
  494. package/src/components/Button/index.tsx +16 -6
  495. package/src/components/ButtonGroup/ButtonGroup.fragment.tsx +4 -2
  496. package/src/components/ButtonGroup/ButtonGroup.test.tsx +10 -0
  497. package/src/components/ButtonGroup/index.tsx +3 -3
  498. package/src/components/Card/Card.fragment.tsx +24 -9
  499. package/src/components/Card/Card.module.scss +8 -8
  500. package/src/components/Card/Card.test.tsx +4 -5
  501. package/src/components/Card/index.tsx +8 -38
  502. package/src/components/Chart/Chart.fragment.tsx +5 -3
  503. package/src/components/Chart/Chart.module.scss +1 -1
  504. package/src/components/Chart/index.tsx +12 -10
  505. package/src/components/Checkbox/Checkbox.fragment.tsx +27 -1
  506. package/src/components/Checkbox/Checkbox.module.scss +3 -3
  507. package/src/components/Checkbox/index.tsx +16 -3
  508. package/src/components/Chip/Chip.fragment.tsx +20 -3
  509. package/src/components/Chip/Chip.test.tsx +28 -0
  510. package/src/components/Chip/index.tsx +14 -6
  511. package/src/components/CodeBlock/CodeBlock.fragment.tsx +3 -1
  512. package/src/components/CodeBlock/CodeBlock.module.scss +9 -9
  513. package/src/components/CodeBlock/CodeBlock.test.tsx +21 -0
  514. package/src/components/CodeBlock/index.tsx +23 -9
  515. package/src/components/Collapsible/Collapsible.fragment.tsx +1 -1
  516. package/src/components/Collapsible/Collapsible.module.scss +1 -1
  517. package/src/components/Collapsible/Collapsible.test.tsx +41 -0
  518. package/src/components/Collapsible/index.tsx +53 -16
  519. package/src/components/ColorPicker/ColorPicker.fragment.tsx +1 -1
  520. package/src/components/Combobox/Combobox.fragment.tsx +63 -9
  521. package/src/components/Combobox/Combobox.module.scss +4 -7
  522. package/src/components/Combobox/Combobox.test.tsx +79 -3
  523. package/src/components/Combobox/index.tsx +140 -51
  524. package/src/components/Command/Command.fragment.tsx +3 -3
  525. package/src/components/Command/Command.module.scss +5 -5
  526. package/src/components/Command/Command.test.tsx +110 -0
  527. package/src/components/Command/index.tsx +66 -20
  528. package/src/components/ConversationList/ConversationList.fragment.tsx +4 -3
  529. package/src/components/ConversationList/ConversationList.module.scss +5 -5
  530. package/src/components/ConversationList/ConversationList.test.tsx +21 -0
  531. package/src/components/ConversationList/index.tsx +8 -4
  532. package/src/components/DataTable/DataTable.fragment.tsx +12 -2
  533. package/src/components/DataTable/DataTable.module.scss +3 -3
  534. package/src/components/DataTable/DataTable.test.tsx +34 -4
  535. package/src/components/DataTable/index.tsx +44 -6
  536. package/src/components/DatePicker/DatePicker.fragment.tsx +3 -1
  537. package/src/components/DatePicker/DatePicker.module.scss +1 -1
  538. package/src/components/DatePicker/DatePicker.test.tsx +96 -0
  539. package/src/components/DatePicker/index.tsx +38 -16
  540. package/src/components/Dialog/Dialog.fragment.tsx +28 -1
  541. package/src/components/Dialog/Dialog.module.scss +6 -6
  542. package/src/components/Dialog/Dialog.test.tsx +23 -0
  543. package/src/components/Dialog/index.tsx +38 -21
  544. package/src/components/Drawer/Drawer.fragment.tsx +4 -1
  545. package/src/components/Drawer/Drawer.module.scss +3 -3
  546. package/src/components/Drawer/Drawer.test.tsx +35 -0
  547. package/src/components/Drawer/index.tsx +29 -18
  548. package/src/components/Editor/Editor.fragment.tsx +10 -3
  549. package/src/components/Editor/Editor.module.scss +4 -4
  550. package/src/components/Editor/Editor.test.tsx +68 -1
  551. package/src/components/Editor/index.tsx +60 -9
  552. package/src/components/EmptyState/EmptyState.fragment.tsx +3 -1
  553. package/src/components/EmptyState/EmptyState.module.scss +3 -3
  554. package/src/components/EmptyState/EmptyState.test.tsx +18 -0
  555. package/src/components/EmptyState/index.tsx +16 -16
  556. package/src/components/Field/Field.fragment.tsx +1 -1
  557. package/src/components/Fieldset/Fieldset.fragment.tsx +3 -1
  558. package/src/components/Fieldset/Fieldset.test.tsx +14 -0
  559. package/src/components/Fieldset/index.tsx +3 -4
  560. package/src/components/Form/Form.fragment.tsx +12 -7
  561. package/src/components/Form/index.tsx +13 -17
  562. package/src/components/Grid/Grid.fragment.tsx +4 -3
  563. package/src/components/Grid/Grid.module.scss +3 -3
  564. package/src/components/Grid/index.tsx +11 -6
  565. package/src/components/Header/Header.fragment.tsx +31 -1
  566. package/src/components/Header/Header.module.scss +6 -6
  567. package/src/components/Header/Header.test.tsx +95 -1
  568. package/src/components/Header/index.tsx +95 -46
  569. package/src/components/Icon/Icon.fragment.tsx +21 -8
  570. package/src/components/Icon/Icon.test.tsx +27 -3
  571. package/src/components/Icon/index.tsx +39 -15
  572. package/src/components/Image/Image.fragment.tsx +15 -1
  573. package/src/components/Image/Image.test.tsx +32 -1
  574. package/src/components/Image/index.tsx +24 -4
  575. package/src/components/Input/Input.fragment.tsx +49 -1
  576. package/src/components/Input/Input.module.scss +4 -2
  577. package/src/components/Input/Input.test.tsx +3 -3
  578. package/src/components/Input/index.tsx +103 -37
  579. package/src/components/Link/Link.fragment.tsx +7 -6
  580. package/src/components/Link/Link.test.tsx +17 -1
  581. package/src/components/Link/index.tsx +22 -0
  582. package/src/components/List/List.fragment.tsx +1 -1
  583. package/src/components/Listbox/Listbox.fragment.tsx +3 -3
  584. package/src/components/Listbox/Listbox.module.scss +4 -4
  585. package/src/components/Listbox/Listbox.test.tsx +14 -0
  586. package/src/components/Listbox/index.tsx +12 -2
  587. package/src/components/Loading/Loading.fragment.tsx +1 -1
  588. package/src/components/Markdown/Markdown.fragment.tsx +5 -3
  589. package/src/components/Markdown/Markdown.module.scss +5 -5
  590. package/src/components/Markdown/Markdown.test.tsx +6 -0
  591. package/src/components/Markdown/index.tsx +12 -9
  592. package/src/components/Menu/Menu.fragment.tsx +19 -1
  593. package/src/components/Menu/Menu.module.scss +11 -11
  594. package/src/components/Menu/index.tsx +50 -33
  595. package/src/components/Message/Message.fragment.tsx +1 -1
  596. package/src/components/Message/Message.module.scss +3 -3
  597. package/src/components/NavigationMenu/NavigationMenu.fragment.tsx +10 -2
  598. package/src/components/NavigationMenu/NavigationMenu.module.scss +7 -7
  599. package/src/components/NavigationMenu/NavigationMenu.test.tsx +88 -4
  600. package/src/components/NavigationMenu/NavigationMenuContext.ts +17 -0
  601. package/src/components/NavigationMenu/index.tsx +119 -20
  602. package/src/components/NavigationMenu/useNavigationMenu.ts +4 -0
  603. package/src/components/Pagination/Pagination.fragment.tsx +4 -1
  604. package/src/components/Pagination/Pagination.test.tsx +39 -0
  605. package/src/components/Pagination/index.tsx +36 -10
  606. package/src/components/Popover/Popover.fragment.tsx +18 -1
  607. package/src/components/Popover/Popover.module.scss +13 -13
  608. package/src/components/Popover/Popover.test.tsx +23 -0
  609. package/src/components/Popover/index.tsx +44 -22
  610. package/src/components/Progress/Progress.fragment.tsx +3 -1
  611. package/src/components/Progress/Progress.test.tsx +8 -0
  612. package/src/components/Progress/index.tsx +9 -1
  613. package/src/components/Prompt/Prompt.fragment.tsx +4 -1
  614. package/src/components/Prompt/Prompt.module.scss +3 -3
  615. package/src/components/Prompt/Prompt.test.tsx +19 -0
  616. package/src/components/Prompt/index.tsx +24 -6
  617. package/src/components/RadioGroup/RadioGroup.fragment.tsx +31 -1
  618. package/src/components/RadioGroup/index.tsx +22 -3
  619. package/src/components/ScrollArea/ScrollArea.fragment.tsx +1 -1
  620. package/src/components/Select/Select.fragment.tsx +30 -3
  621. package/src/components/Select/Select.module.scss +3 -3
  622. package/src/components/Select/Select.test.tsx +41 -0
  623. package/src/components/Select/index.tsx +55 -44
  624. package/src/components/Separator/Separator.fragment.tsx +1 -1
  625. package/src/components/Sidebar/Sidebar.fragment.tsx +3 -1
  626. package/src/components/Sidebar/Sidebar.module.scss +20 -20
  627. package/src/components/Sidebar/Sidebar.test.tsx +108 -4
  628. package/src/components/Sidebar/index.tsx +93 -51
  629. package/src/components/Skeleton/Skeleton.fragment.tsx +3 -1
  630. package/src/components/Skeleton/Skeleton.test.tsx +12 -0
  631. package/src/components/Skeleton/index.tsx +6 -7
  632. package/src/components/Slider/Slider.fragment.tsx +21 -1
  633. package/src/components/Slider/Slider.module.scss +31 -0
  634. package/src/components/Slider/Slider.test.tsx +16 -0
  635. package/src/components/Slider/index.tsx +40 -1
  636. package/src/components/Stack/Stack.fragment.tsx +3 -1
  637. package/src/components/Stack/index.tsx +13 -6
  638. package/src/components/Table/Table.fragment.tsx +43 -2
  639. package/src/components/Table/Table.module.scss +2 -2
  640. package/src/components/Table/index.tsx +23 -5
  641. package/src/components/TableOfContents/TableOfContents.fragment.tsx +4 -2
  642. package/src/components/TableOfContents/TableOfContents.test.tsx +34 -9
  643. package/src/components/TableOfContents/index.tsx +9 -5
  644. package/src/components/Tabs/Tabs.fragment.tsx +33 -8
  645. package/src/components/Tabs/Tabs.module.scss +8 -8
  646. package/src/components/Tabs/index.tsx +22 -14
  647. package/src/components/Text/Text.fragment.tsx +1 -1
  648. package/src/components/Textarea/Textarea.fragment.tsx +27 -1
  649. package/src/components/Textarea/index.tsx +39 -14
  650. package/src/components/Theme/Theme.fragment.tsx +3 -1
  651. package/src/components/Theme/Theme.test.tsx +11 -0
  652. package/src/components/Theme/index.tsx +3 -3
  653. package/src/components/ThinkingIndicator/ThinkingIndicator.fragment.tsx +1 -1
  654. package/src/components/ThinkingIndicator/ThinkingIndicator.module.scss +1 -1
  655. package/src/components/Toast/Toast.fragment.tsx +6 -3
  656. package/src/components/Toast/Toast.module.scss +8 -6
  657. package/src/components/Toast/index.tsx +24 -20
  658. package/src/components/Toggle/Toggle.fragment.tsx +1 -1
  659. package/src/components/Toggle/Toggle.module.scss +61 -21
  660. package/src/components/Toggle/index.tsx +3 -3
  661. package/src/components/ToggleGroup/ToggleGroup.fragment.tsx +33 -8
  662. package/src/components/ToggleGroup/ToggleGroup.module.scss +3 -3
  663. package/src/components/ToggleGroup/index.tsx +29 -9
  664. package/src/components/Tooltip/Tooltip.fragment.tsx +16 -1
  665. package/src/components/Tooltip/Tooltip.module.scss +1 -1
  666. package/src/components/Tooltip/Tooltip.test.tsx +17 -0
  667. package/src/components/Tooltip/index.tsx +60 -31
  668. package/src/components/VisuallyHidden/VisuallyHidden.fragment.tsx +3 -1
  669. package/src/components/VisuallyHidden/VisuallyHidden.test.tsx +12 -0
  670. package/src/components/VisuallyHidden/index.tsx +7 -3
  671. package/src/index.ts +3 -2
  672. package/src/tokens/_computed.scss +1 -19
  673. package/src/tokens/_density.scss +0 -42
  674. package/src/tokens/_mixins.scss +4 -0
  675. package/src/tokens/_variables.scss +12 -114
@@ -4,13 +4,14 @@
4
4
  .root {
5
5
  display: flex;
6
6
  align-items: center;
7
- gap: var(--fui-space-3, $fui-space-3);
7
+ gap: var(--fui-space-2, $fui-space-2);
8
8
  cursor: pointer;
9
9
  font-family: var(--fui-font-sans, $fui-font-sans);
10
+ -webkit-tap-highlight-color: transparent;
10
11
 
11
12
  &[data-disabled] {
12
13
  cursor: not-allowed;
13
- opacity: 0.5;
14
+ opacity: 0.38;
14
15
  }
15
16
  }
16
17
 
@@ -22,64 +23,103 @@
22
23
  }
23
24
  }
24
25
 
26
+ // iOS-style track: solid fill, clean pill shape
25
27
  .track {
26
- @include button-reset;
27
- @include interactive-base;
28
- @include min-target-size;
29
-
30
28
  position: relative;
29
+ display: inline-flex;
30
+ align-items: center;
31
31
  flex-shrink: 0;
32
+ box-sizing: content-box;
32
33
  border-radius: var(--fui-radius-full, $fui-radius-full);
33
- background-color: var(--fui-border-strong, $fui-border-strong);
34
- transition: background-color var(--fui-transition-normal, $fui-transition-normal);
34
+ border: none;
35
+ // iOS unchecked: semi-transparent gray — visible in both light and dark
36
+ background-color: var(--fui-bg-active, $fui-bg-active);
37
+ overflow: hidden;
38
+ transition: background-color 250ms cubic-bezier(0.4, 0.0, 0.2, 1);
35
39
 
40
+ // Checked: accent fill
36
41
  .root[data-checked] & {
37
42
  background-color: var(--fui-color-accent, $fui-color-accent);
38
43
  }
39
44
 
40
- .root:not([data-disabled]) &:hover {
41
- opacity: 0.9;
45
+ // Hover (unchecked): slightly more opaque
46
+ .root:not([data-disabled]):not([data-checked]) &:hover {
47
+ background-color: var(--fui-border, $fui-border);
48
+ }
49
+
50
+ // Hover (checked): accent hover
51
+ .root:not([data-disabled])[data-checked] &:hover {
52
+ background-color: var(--fui-color-accent-hover, $fui-color-accent-hover);
53
+ }
54
+
55
+ // Focus ring
56
+ .root:focus-visible & {
57
+ outline: var(--fui-focus-ring-width, $fui-focus-ring-width) solid
58
+ var(--fui-focus-ring-color, $fui-focus-ring-color);
59
+ outline-offset: var(--fui-focus-ring-offset, $fui-focus-ring-offset);
42
60
  }
43
61
  }
44
62
 
63
+ // Sm: 40×24
45
64
  .trackSm {
46
65
  width: var(--fui-toggle-width-sm, $fui-toggle-width-sm);
47
66
  height: var(--fui-toggle-height-sm, $fui-toggle-height-sm);
48
- --_toggle-thumb-size: calc(var(--fui-toggle-height-sm, #{$fui-toggle-height-sm}) - 0.5rem);
49
- --_toggle-inset: calc((var(--fui-toggle-height-sm, #{$fui-toggle-height-sm}) - var(--_toggle-thumb-size)) / 2);
67
+ --_toggle-thumb-size: calc(var(--fui-toggle-height-sm, #{$fui-toggle-height-sm}) - 4px);
68
+ --_toggle-inset: 2px;
50
69
  --_toggle-translate: calc(
51
70
  var(--fui-toggle-width-sm, #{$fui-toggle-width-sm}) -
52
71
  var(--_toggle-thumb-size) -
53
- (var(--_toggle-inset) * 2)
72
+ 4px
54
73
  );
55
74
  }
56
75
 
76
+ // Md: 51×31 (iOS standard)
57
77
  .trackMd {
58
78
  width: var(--fui-toggle-width-md, $fui-toggle-width-md);
59
79
  height: var(--fui-toggle-height-md, $fui-toggle-height-md);
60
- --_toggle-thumb-size: calc(var(--fui-toggle-height-md, #{$fui-toggle-height-md}) - 0.5rem);
61
- --_toggle-inset: calc((var(--fui-toggle-height-md, #{$fui-toggle-height-md}) - var(--_toggle-thumb-size)) / 2);
80
+ --_toggle-thumb-size: calc(var(--fui-toggle-height-md, #{$fui-toggle-height-md}) - 4px);
81
+ --_toggle-inset: 2px;
62
82
  --_toggle-translate: calc(
63
83
  var(--fui-toggle-width-md, #{$fui-toggle-width-md}) -
64
84
  var(--_toggle-thumb-size) -
65
- (var(--_toggle-inset) * 2)
85
+ 4px
66
86
  );
67
87
  }
68
88
 
89
+ // iOS-style thumb: always white, multi-layer shadow
69
90
  .thumb {
70
91
  position: absolute;
71
92
  top: var(--_toggle-inset, $fui-toggle-thumb-offset);
72
93
  left: var(--_toggle-inset, $fui-toggle-thumb-offset);
94
+ box-sizing: border-box;
73
95
  width: var(--_toggle-thumb-size, $fui-toggle-thumb-md);
74
96
  height: var(--_toggle-thumb-size, $fui-toggle-thumb-md);
75
97
  border-radius: 50%;
76
- background-color: var(--fui-bg-primary, $fui-bg-primary);
77
- box-shadow: var(--fui-shadow-sm, $fui-shadow-sm);
78
- transition: transform var(--fui-transition-normal, $fui-transition-normal);
79
-
98
+ pointer-events: none;
99
+ background-color: #fff;
100
+ box-shadow:
101
+ 0 3px 8px rgba(0, 0, 0, 0.15),
102
+ 0 1px 1px rgba(0, 0, 0, 0.06),
103
+ 0 3px 1px rgba(0, 0, 0, 0.06);
104
+ transition:
105
+ transform 250ms cubic-bezier(0.4, 0.0, 0.2, 1),
106
+ background-color 250ms cubic-bezier(0.4, 0.0, 0.2, 1),
107
+ width 120ms cubic-bezier(0.4, 0.0, 0.2, 1);
108
+
109
+ // Slide right when checked — inverse color for contrast against accent
80
110
  .root[data-checked] & {
81
- // Move thumb to the right when checked
82
111
  transform: translateX(var(--_toggle-translate, 0));
112
+ background-color: var(--fui-text-inverse, $fui-text-inverse);
113
+ }
114
+
115
+ // Press: stretch thumb wider (iOS 17+)
116
+ .root:active:not([data-disabled]) & {
117
+ width: calc(var(--_toggle-thumb-size, #{$fui-toggle-thumb-md}) + 4px);
118
+ }
119
+
120
+ // Press + checked: compensate translate for wider thumb
121
+ .root:active:not([data-disabled])[data-checked] & {
122
+ transform: translateX(calc(var(--_toggle-translate, 0) - 4px));
83
123
  }
84
124
  }
85
125
 
@@ -91,9 +91,9 @@ const SwitchRoot = React.forwardRef<HTMLButtonElement, SwitchProps>(
91
91
  aria-labelledby={ariaLabelledBy}
92
92
  aria-describedby={ariaDescribedBy}
93
93
  >
94
- <BaseSwitch.Thumb className={trackClasses}>
95
- <span className={thumbClasses} aria-hidden="true" />
96
- </BaseSwitch.Thumb>
94
+ <span className={trackClasses} aria-hidden="true">
95
+ <BaseSwitch.Thumb className={thumbClasses} />
96
+ </span>
97
97
 
98
98
  {(label || description) && (
99
99
  <div className={styles.content}>
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { defineFragment } from "@fragments-sdk/cli/core";
2
+ import { defineFragment } from "@fragments-sdk/core";
3
3
  import { ToggleGroup } from ".";
4
4
 
5
5
  function DefaultExample() {
@@ -30,7 +30,7 @@ function OutlineExample() {
30
30
  const [value, setValue] = React.useState("day");
31
31
 
32
32
  return (
33
- <ToggleGroup value={value} onChange={setValue} variant="outline">
33
+ <ToggleGroup value={value} onChange={setValue} variant="outlined">
34
34
  <ToggleGroup.Item value="day">Day</ToggleGroup.Item>
35
35
  <ToggleGroup.Item value="week">Week</ToggleGroup.Item>
36
36
  <ToggleGroup.Item value="month">Month</ToggleGroup.Item>
@@ -141,7 +141,7 @@ export default defineFragment({
141
141
  "Ensure adequate touch targets on mobile",
142
142
  ],
143
143
  accessibility: [
144
- 'Uses role="group" for semantic grouping',
144
+ 'Uses role="radiogroup" for single-selection semantics',
145
145
  'Each item has role="radio" with aria-checked',
146
146
  "Keyboard navigable with Tab and arrow keys",
147
147
  "Focus visible on active item",
@@ -152,7 +152,10 @@ export default defineFragment({
152
152
  value: {
153
153
  type: "string",
154
154
  description: "Currently selected value",
155
- required: true,
155
+ },
156
+ defaultValue: {
157
+ type: "string",
158
+ description: "Initial selected value (uncontrolled)",
156
159
  },
157
160
  onChange: {
158
161
  type: "function",
@@ -170,7 +173,7 @@ export default defineFragment({
170
173
  variant: {
171
174
  type: "enum",
172
175
  description: "Visual style",
173
- values: ["default", "pills", "outline"],
176
+ values: ["default", "pills", "outline", "outlined"],
174
177
  default: "default",
175
178
  },
176
179
  size: {
@@ -185,6 +188,12 @@ export default defineFragment({
185
188
  values: ["none", "xs", "sm"],
186
189
  default: "xs",
187
190
  },
191
+ selectionMode: {
192
+ type: "enum",
193
+ description: "Selection behavior",
194
+ values: ["single"],
195
+ default: "single",
196
+ },
188
197
  },
189
198
 
190
199
  relations: [
@@ -199,12 +208,14 @@ export default defineFragment({
199
208
 
200
209
  contract: {
201
210
  propsSummary: [
202
- "value: string - selected value (required)",
211
+ "value?: string - controlled selected value",
212
+ "defaultValue?: string - initial selected value (uncontrolled)",
203
213
  "onChange: (value: string) => void - change handler (or onValueChange)",
204
214
  "children: ToggleGroup.Item[] - toggle items",
205
- "variant: default|pills|outline - visual style",
215
+ "variant: default|pills|outline|outlined - visual style (outlined aliases outline)",
206
216
  "size: sm|md - size variant",
207
217
  "gap: none|xs|sm - spacing",
218
+ "selectionMode: single (default: single)",
208
219
  ],
209
220
  scenarioTags: ["forms.selection", "input.toggle", "control.fragmented"],
210
221
  a11yRules: ["A11Y_GROUP_ROLE", "A11Y_KEYBOARD_ACCESSIBLE"],
@@ -234,13 +245,27 @@ export default defineFragment({
234
245
  {
235
246
  name: "Outline Variant",
236
247
  description: "Outlined toggle buttons",
237
- code: `<ToggleGroup value={value} onChange={setValue} variant="outline">
248
+ code: `<ToggleGroup value={value} onChange={setValue} variant="outlined">
238
249
  <ToggleGroup.Item value="day">Day</ToggleGroup.Item>
239
250
  <ToggleGroup.Item value="week">Week</ToggleGroup.Item>
240
251
  <ToggleGroup.Item value="month">Month</ToggleGroup.Item>
241
252
  </ToggleGroup>`,
242
253
  render: () => <OutlineExample />,
243
254
  },
255
+ {
256
+ name: "Uncontrolled",
257
+ description: "Use defaultValue for simple single-select state",
258
+ code: `<ToggleGroup defaultValue="list">
259
+ <ToggleGroup.Item value="grid">Grid</ToggleGroup.Item>
260
+ <ToggleGroup.Item value="list">List</ToggleGroup.Item>
261
+ </ToggleGroup>`,
262
+ render: () => (
263
+ <ToggleGroup defaultValue="list">
264
+ <ToggleGroup.Item value="grid">Grid</ToggleGroup.Item>
265
+ <ToggleGroup.Item value="list">List</ToggleGroup.Item>
266
+ </ToggleGroup>
267
+ ),
268
+ },
244
269
  {
245
270
  name: "Sizes",
246
271
  description: "Different size variants",
@@ -12,7 +12,7 @@
12
12
 
13
13
  // Gap variants
14
14
  .gap-xs {
15
- gap: 2px;
15
+ gap: calc(var(--fui-space-px, $fui-space-px) * 2);
16
16
  }
17
17
 
18
18
  .gap-sm {
@@ -26,8 +26,8 @@
26
26
  .default {
27
27
  background-color: var(--fui-bg-secondary, $fui-bg-secondary);
28
28
  border-radius: var(--fui-radius-md, $fui-radius-md);
29
- padding: 2px;
30
- gap: 2px;
29
+ padding: calc(var(--fui-space-px, $fui-space-px) * 2);
30
+ gap: calc(var(--fui-space-px, $fui-space-px) * 2);
31
31
 
32
32
  .item {
33
33
  background-color: transparent;
@@ -13,7 +13,9 @@ import styles from './ToggleGroup.module.scss';
13
13
  */
14
14
  export interface ToggleGroupProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {
15
15
  /** Current selected value */
16
- value: string;
16
+ value?: string;
17
+ /** Default selected value (uncontrolled) */
18
+ defaultValue?: string;
17
19
  /** Callback when selection changes */
18
20
  onChange?: (value: string) => void;
19
21
  /** Alias for onChange (Radix convention) */
@@ -23,12 +25,15 @@ export interface ToggleGroupProps extends Omit<React.HTMLAttributes<HTMLDivEleme
23
25
  /** Visual variant.
24
26
  * @default "default"
25
27
  * @see https://usefragments.com/components/togglegroup#variants */
26
- variant?: 'default' | 'pills' | 'outline';
28
+ variant?: 'default' | 'pills' | 'outline' | 'outlined';
27
29
  /** Size.
28
30
  * @default "md" */
29
31
  size?: 'sm' | 'md' | 'lg';
30
32
  /** Gap between items (for pills/outline variants) */
31
33
  gap?: 'none' | 'xs' | 'sm';
34
+ /** Selection mode for this control. Currently only single-select is supported.
35
+ * @default "single" */
36
+ selectionMode?: 'single';
32
37
  }
33
38
 
34
39
  export interface ToggleGroupItemProps extends Omit<React.HTMLAttributes<HTMLButtonElement>, 'onClick'> {
@@ -71,19 +76,30 @@ function useToggleGroupContext() {
71
76
 
72
77
  function ToggleGroupRoot({
73
78
  value,
79
+ defaultValue,
74
80
  onChange,
75
81
  onValueChange,
76
82
  children,
77
83
  variant = 'default',
78
84
  size = 'md',
79
85
  gap = 'xs',
86
+ selectionMode = 'single',
80
87
  className,
81
88
  ...htmlProps
82
89
  }: ToggleGroupProps) {
83
- const resolvedOnChange = onChange ?? onValueChange ?? (() => {});
90
+ const normalizedVariant = variant === 'outlined' ? 'outline' : variant;
91
+ const [internalValue, setInternalValue] = React.useState(defaultValue ?? '');
92
+ const isControlled = value !== undefined;
93
+ const currentValue = isControlled ? value ?? '' : internalValue;
94
+ const emitChange = React.useCallback((nextValue: string) => {
95
+ if (!isControlled) {
96
+ setInternalValue(nextValue);
97
+ }
98
+ (onChange ?? onValueChange)?.(nextValue);
99
+ }, [isControlled, onChange, onValueChange]);
84
100
  const classes = [
85
101
  styles.group,
86
- styles[variant],
102
+ styles[normalizedVariant],
87
103
  styles[`size-${size}`],
88
104
  gap !== 'none' && styles[`gap-${gap}`],
89
105
  className,
@@ -97,13 +113,13 @@ function ToggleGroupRoot({
97
113
  );
98
114
  const firstEnabledValue = childItems.find((item) => !item.props.disabled)?.props.value ?? null;
99
115
  const hasFocusableSelection = childItems.some(
100
- (item) => !item.props.disabled && item.props.value === value
116
+ (item) => !item.props.disabled && item.props.value === currentValue
101
117
  );
102
118
 
103
119
  const contextValue: ToggleGroupContextValue = {
104
- value,
105
- onChange: resolvedOnChange,
106
- variant,
120
+ value: currentValue,
121
+ onChange: emitChange,
122
+ variant: normalizedVariant,
107
123
  size,
108
124
  hasFocusableSelection,
109
125
  firstEnabledValue,
@@ -111,7 +127,11 @@ function ToggleGroupRoot({
111
127
 
112
128
  return (
113
129
  <ToggleGroupContext.Provider value={contextValue}>
114
- <div {...htmlProps} role="radiogroup" className={classes}>
130
+ <div
131
+ {...htmlProps}
132
+ role={selectionMode === 'single' ? 'radiogroup' : 'radiogroup'}
133
+ className={classes}
134
+ >
115
135
  {children}
116
136
  </div>
117
137
  </ToggleGroupContext.Provider>
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { defineFragment } from '@fragments-sdk/cli/core';
2
+ import { defineFragment } from '@fragments-sdk/core';
3
3
  import { Tooltip } from '.';
4
4
  import { Button } from '../Button';
5
5
 
@@ -33,6 +33,7 @@ export default defineFragment({
33
33
  'Use sentence case, no period for single sentences',
34
34
  'Avoid duplicating visible label text',
35
35
  'Consider mobile users who cannot hover',
36
+ 'Use contentProps for tooltip popup attributes/styling; top-level HTML attrs are applied to the popup for backward compatibility',
36
37
  ],
37
38
  accessibility: [
38
39
  'Accessible via focus as well as hover',
@@ -102,6 +103,10 @@ export default defineFragment({
102
103
  type: 'function',
103
104
  description: 'Callback when open state changes',
104
105
  },
106
+ contentProps: {
107
+ type: 'object',
108
+ description: 'Props forwarded to the tooltip popup element (preferred way to pass popup attrs/className/style)',
109
+ },
105
110
  },
106
111
 
107
112
  relations: [
@@ -115,6 +120,7 @@ export default defineFragment({
115
120
  'side: top|bottom|left|right - position',
116
121
  'delay: number - show delay in ms (default: 400)',
117
122
  'arrow: boolean - show arrow (default: true)',
123
+ 'contentProps: HTMLAttributes<HTMLDivElement> - popup element props',
118
124
  ],
119
125
  scenarioTags: [
120
126
  'help.tooltip',
@@ -172,5 +178,14 @@ export default defineFragment({
172
178
  </Tooltip>
173
179
  ),
174
180
  },
181
+ {
182
+ name: 'With Content Props',
183
+ description: 'Pass popup attributes/styling using contentProps',
184
+ render: () => (
185
+ <Tooltip content="Custom popup attrs" contentProps={{ id: 'custom-tooltip-popup' }}>
186
+ <Button variant="secondary">Hover me</Button>
187
+ </Tooltip>
188
+ ),
189
+ },
175
190
  ],
176
191
  });
@@ -11,7 +11,7 @@
11
11
  .popup {
12
12
  @include text-base;
13
13
 
14
- padding: var(--fui-padding-item-xs) var(--fui-padding-item-sm);
14
+ padding: var(--fui-space-1) var(--fui-space-2);
15
15
  font-size: var(--fui-font-size-xs, $fui-font-size-xs);
16
16
  line-height: var(--fui-line-height-tight, $fui-line-height-tight);
17
17
  // Tooltips use inverted colors - always dark bg with light text
@@ -91,6 +91,23 @@ describe('Tooltip', () => {
91
91
  });
92
92
  });
93
93
 
94
+ it('respects shared Tooltip.Provider delay settings', async () => {
95
+ const user = userEvent.setup({ advanceTimers: vi.advanceTimersByTime });
96
+ render(
97
+ <Tooltip.Provider delay={0}>
98
+ <Tooltip content="Provider tooltip">
99
+ <button>Provider Trigger</button>
100
+ </Tooltip>
101
+ </Tooltip.Provider>
102
+ );
103
+
104
+ await user.hover(screen.getByRole('button', { name: /provider trigger/i }));
105
+
106
+ await waitFor(() => {
107
+ expect(screen.getByText('Provider tooltip')).toBeInTheDocument();
108
+ });
109
+ });
110
+
94
111
  it('has no accessibility violations when open', async () => {
95
112
  const { container } = render(
96
113
  <Tooltip content="Accessible tooltip" open={true} delay={0}>
@@ -36,6 +36,8 @@ export interface TooltipProps extends Omit<React.HTMLAttributes<HTMLDivElement>,
36
36
  defaultOpen?: boolean;
37
37
  /** Callback when open state changes */
38
38
  onOpenChange?: (open: boolean) => void;
39
+ /** Explicit props for the tooltip popup element (preferred over top-level HTMLAttributes for clarity) */
40
+ contentProps?: React.HTMLAttributes<HTMLDivElement>;
39
41
  }
40
42
 
41
43
  export interface TooltipProviderProps {
@@ -56,6 +58,8 @@ export interface TooltipProviderProps {
56
58
  // Components
57
59
  // ============================================
58
60
 
61
+ const TooltipProviderContext = React.createContext(false);
62
+
59
63
  /**
60
64
  * Tooltip - Shows contextual information on hover/focus
61
65
  *
@@ -72,16 +76,19 @@ function TooltipRoot({
72
76
  side = 'top',
73
77
  align = 'center',
74
78
  sideOffset = 6,
75
- delay = 400,
76
- closeDelay = 0,
79
+ delay,
80
+ closeDelay,
77
81
  disabled = false,
78
82
  arrow = true,
79
83
  open,
80
84
  defaultOpen,
81
85
  onOpenChange,
86
+ contentProps,
82
87
  className,
88
+ style,
83
89
  ...htmlProps
84
90
  }: TooltipProps) {
91
+ const hasExternalProvider = React.useContext(TooltipProviderContext);
85
92
  const renderTrigger = React.useCallback(
86
93
  (triggerProps: React.HTMLAttributes<HTMLElement> & { ref?: React.Ref<HTMLElement> }) => {
87
94
  const childProps = children.props as Record<string, unknown>;
@@ -110,30 +117,50 @@ function TooltipRoot({
110
117
  return children;
111
118
  }
112
119
 
113
- return (
114
- <BaseTooltip.Provider delay={delay} closeDelay={closeDelay}>
115
- <BaseTooltip.Root
116
- open={open}
117
- defaultOpen={defaultOpen}
118
- onOpenChange={onOpenChange}
119
- >
120
- <BaseTooltip.Trigger render={renderTrigger} />
121
- <BaseTooltip.Portal>
122
- <BaseTooltip.Positioner
123
- side={side}
124
- align={align}
125
- sideOffset={sideOffset}
126
- className={styles.positioner}
120
+ const {
121
+ className: contentClassName,
122
+ style: contentStyle,
123
+ ...contentHtmlProps
124
+ } = contentProps ?? {};
125
+
126
+ const tooltipNode = (
127
+ <BaseTooltip.Root
128
+ open={open}
129
+ defaultOpen={defaultOpen}
130
+ onOpenChange={onOpenChange}
131
+ >
132
+ <BaseTooltip.Trigger render={renderTrigger} />
133
+ <BaseTooltip.Portal>
134
+ <BaseTooltip.Positioner
135
+ side={side}
136
+ align={align}
137
+ sideOffset={sideOffset}
138
+ className={styles.positioner}
139
+ >
140
+ <BaseTooltip.Popup
141
+ {...htmlProps}
142
+ {...contentHtmlProps}
143
+ className={[styles.popup, className, contentClassName].filter(Boolean).join(' ')}
144
+ style={{ ...(style ?? {}), ...(contentStyle ?? {}) }}
127
145
  >
128
- <BaseTooltip.Popup {...htmlProps} className={[styles.popup, className].filter(Boolean).join(' ')}>
129
- {content}
130
- {arrow && <BaseTooltip.Arrow className={styles.arrow} />}
131
- </BaseTooltip.Popup>
132
- </BaseTooltip.Positioner>
133
- </BaseTooltip.Portal>
134
- </BaseTooltip.Root>
135
- </BaseTooltip.Provider>
146
+ {content}
147
+ {arrow && <BaseTooltip.Arrow className={styles.arrow} />}
148
+ </BaseTooltip.Popup>
149
+ </BaseTooltip.Positioner>
150
+ </BaseTooltip.Portal>
151
+ </BaseTooltip.Root>
136
152
  );
153
+
154
+ // Only create a local provider when no shared provider exists, or when a local delay override is requested.
155
+ if (!hasExternalProvider || delay !== undefined || closeDelay !== undefined) {
156
+ return (
157
+ <BaseTooltip.Provider delay={delay ?? 400} closeDelay={closeDelay ?? 0}>
158
+ {tooltipNode}
159
+ </BaseTooltip.Provider>
160
+ );
161
+ }
162
+
163
+ return tooltipNode;
137
164
  }
138
165
 
139
166
  /**
@@ -160,13 +187,15 @@ export function TooltipProvider({
160
187
  const resolvedTimeout = timeout ?? skipDelayDuration ?? 400;
161
188
 
162
189
  return (
163
- <BaseTooltip.Provider
164
- delay={resolvedDelay}
165
- closeDelay={closeDelay}
166
- timeout={resolvedTimeout}
167
- >
168
- {children}
169
- </BaseTooltip.Provider>
190
+ <TooltipProviderContext.Provider value={true}>
191
+ <BaseTooltip.Provider
192
+ delay={resolvedDelay}
193
+ closeDelay={closeDelay}
194
+ timeout={resolvedTimeout}
195
+ >
196
+ {children}
197
+ </BaseTooltip.Provider>
198
+ </TooltipProviderContext.Provider>
170
199
  );
171
200
  }
172
201
 
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { defineFragment } from '@fragments-sdk/cli/core';
2
+ import { defineFragment } from '@fragments-sdk/core';
3
3
  import { VisuallyHidden } from '.';
4
4
 
5
5
  export default defineFragment({
@@ -32,6 +32,7 @@ export default defineFragment({
32
32
  'Keep hidden text concise but descriptive',
33
33
  'Test with screen readers to verify announcements',
34
34
  'Don\'t overuse; visible text is often better',
35
+ 'VisuallyHidden forwards DOM props and className to the rendered element',
35
36
  ],
36
37
  accessibility: [
37
38
  'Content is announced by screen readers',
@@ -64,6 +65,7 @@ export default defineFragment({
64
65
  propsSummary: [
65
66
  'children: ReactNode - hidden text (required)',
66
67
  'as: span|div - HTML element',
68
+ 'Forwards standard DOM props (id, aria-*, data-*, className, handlers)',
67
69
  ],
68
70
  scenarioTags: [
69
71
  'accessibility.label',
@@ -28,4 +28,16 @@ describe('VisuallyHidden', () => {
28
28
  const { container } = render(<VisuallyHidden>Accessible hidden text</VisuallyHidden>);
29
29
  await expectNoA11yViolations(container);
30
30
  });
31
+
32
+ it('forwards DOM props and composes className', () => {
33
+ render(
34
+ <VisuallyHidden data-testid="vh" id="vh-id" className="extra">
35
+ Hidden
36
+ </VisuallyHidden>
37
+ );
38
+ const el = screen.getByTestId('vh');
39
+ expect(el).toHaveAttribute('id', 'vh-id');
40
+ expect(el).toHaveClass('visuallyHidden');
41
+ expect(el).toHaveClass('extra');
42
+ });
31
43
  });
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import styles from './VisuallyHidden.module.scss';
3
3
 
4
- export interface VisuallyHiddenProps {
4
+ export interface VisuallyHiddenProps extends React.HTMLAttributes<HTMLElement> {
5
5
  children: React.ReactNode;
6
6
  /** HTML element to render */
7
7
  as?: 'span' | 'div';
@@ -19,9 +19,13 @@ export interface VisuallyHiddenProps {
19
19
  * </Button>
20
20
  */
21
21
  const VisuallyHiddenRoot = React.forwardRef<HTMLElement, VisuallyHiddenProps>(
22
- function VisuallyHidden({ children, as: Component = 'span' }, ref) {
22
+ function VisuallyHidden({ children, as: Component = 'span', className, ...htmlProps }, ref) {
23
23
  return (
24
- <Component ref={ref as React.Ref<never>} className={styles.visuallyHidden}>
24
+ <Component
25
+ ref={ref as React.Ref<never>}
26
+ {...htmlProps}
27
+ className={[styles.visuallyHidden, className].filter(Boolean).join(' ')}
28
+ >
25
29
  {children}
26
30
  </Component>
27
31
  );
package/src/index.ts CHANGED
@@ -30,8 +30,6 @@ export {
30
30
  export {
31
31
  Switch,
32
32
  type SwitchProps,
33
- Switch as Toggle,
34
- type SwitchProps as ToggleProps,
35
33
  } from './components/Switch';
36
34
  export {
37
35
  Alert,
@@ -665,3 +663,6 @@ export {
665
663
  type ShortcutName,
666
664
  type UseKeyboardShortcutOptions,
667
665
  } from './utils/keyboard-shortcuts';
666
+
667
+ // Legacy aliases (deprecated)
668
+ export { Switch as Toggle, type SwitchProps as ToggleProps } from './components/Switch';