@tribepad/themis 1.0.0 → 1.0.1

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 (326) hide show
  1. package/dist/elements/Accordion/index.js +325 -66
  2. package/dist/elements/Accordion/index.js.map +1 -1
  3. package/dist/elements/Accordion/index.mjs +317 -3
  4. package/dist/elements/Accordion/index.mjs.map +1 -1
  5. package/dist/elements/Avatar/index.js +461 -45
  6. package/dist/elements/Avatar/index.js.map +1 -1
  7. package/dist/elements/Avatar/index.mjs +456 -3
  8. package/dist/elements/Avatar/index.mjs.map +1 -1
  9. package/dist/elements/Badge/index.js +238 -36
  10. package/dist/elements/Badge/index.js.map +1 -1
  11. package/dist/elements/Badge/index.mjs +234 -4
  12. package/dist/elements/Badge/index.mjs.map +1 -1
  13. package/dist/elements/Breadcrumbs/index.js +808 -39
  14. package/dist/elements/Breadcrumbs/index.js.map +1 -1
  15. package/dist/elements/Breadcrumbs/index.mjs +810 -7
  16. package/dist/elements/Breadcrumbs/index.mjs.map +1 -1
  17. package/dist/elements/Button/index.js +282 -19
  18. package/dist/elements/Button/index.js.map +1 -1
  19. package/dist/elements/Button/index.mjs +283 -4
  20. package/dist/elements/Button/index.mjs.map +1 -1
  21. package/dist/elements/ButtonGroup/index.js +229 -56
  22. package/dist/elements/ButtonGroup/index.js.map +1 -1
  23. package/dist/elements/ButtonGroup/index.mjs +222 -3
  24. package/dist/elements/ButtonGroup/index.mjs.map +1 -1
  25. package/dist/elements/Card/Card.d.ts.map +1 -1
  26. package/dist/elements/Card/index.js +563 -67
  27. package/dist/elements/Card/index.js.map +1 -1
  28. package/dist/elements/Card/index.mjs +560 -6
  29. package/dist/elements/Card/index.mjs.map +1 -1
  30. package/dist/elements/Carousel/index.js +782 -14
  31. package/dist/elements/Carousel/index.js.map +1 -1
  32. package/dist/elements/Carousel/index.mjs +786 -8
  33. package/dist/elements/Carousel/index.mjs.map +1 -1
  34. package/dist/elements/Chart/index.js +1833 -36
  35. package/dist/elements/Chart/index.js.map +1 -1
  36. package/dist/elements/Chart/index.mjs +1832 -4
  37. package/dist/elements/Chart/index.mjs.map +1 -1
  38. package/dist/elements/Checkbox/index.js +310 -39
  39. package/dist/elements/Checkbox/index.js.map +1 -1
  40. package/dist/elements/Checkbox/index.mjs +306 -4
  41. package/dist/elements/Checkbox/index.mjs.map +1 -1
  42. package/dist/elements/CheckboxGroup/index.js +445 -59
  43. package/dist/elements/CheckboxGroup/index.js.map +1 -1
  44. package/dist/elements/CheckboxGroup/index.mjs +439 -4
  45. package/dist/elements/CheckboxGroup/index.mjs.map +1 -1
  46. package/dist/elements/DatePicker/index.js +871 -89
  47. package/dist/elements/DatePicker/index.js.map +1 -1
  48. package/dist/elements/DatePicker/index.mjs +853 -4
  49. package/dist/elements/DatePicker/index.mjs.map +1 -1
  50. package/dist/elements/Dropdown/index.js +189 -35
  51. package/dist/elements/Dropdown/index.js.map +1 -1
  52. package/dist/elements/Dropdown/index.mjs +184 -2
  53. package/dist/elements/Dropdown/index.mjs.map +1 -1
  54. package/dist/elements/FileField/index.js +1532 -129
  55. package/dist/elements/FileField/index.js.map +1 -1
  56. package/dist/elements/FileField/index.mjs +1507 -7
  57. package/dist/elements/FileField/index.mjs.map +1 -1
  58. package/dist/elements/FormLayout/index.js +166 -11
  59. package/dist/elements/FormLayout/index.js.map +1 -1
  60. package/dist/elements/FormLayout/index.mjs +167 -2
  61. package/dist/elements/FormLayout/index.mjs.map +1 -1
  62. package/dist/elements/Modal/index.js +228 -46
  63. package/dist/elements/Modal/index.js.map +1 -1
  64. package/dist/elements/Modal/index.mjs +220 -1
  65. package/dist/elements/Modal/index.mjs.map +1 -1
  66. package/dist/elements/NumberField/index.js +659 -48
  67. package/dist/elements/NumberField/index.js.map +1 -1
  68. package/dist/elements/NumberField/index.mjs +654 -6
  69. package/dist/elements/NumberField/index.mjs.map +1 -1
  70. package/dist/elements/OTPInput/index.js +729 -6
  71. package/dist/elements/OTPInput/index.js.map +1 -1
  72. package/dist/elements/OTPInput/index.mjs +732 -2
  73. package/dist/elements/OTPInput/index.mjs.map +1 -1
  74. package/dist/elements/Panel/index.js +326 -27
  75. package/dist/elements/Panel/index.js.map +1 -1
  76. package/dist/elements/Panel/index.mjs +323 -2
  77. package/dist/elements/Panel/index.mjs.map +1 -1
  78. package/dist/elements/Progress/index.js +181 -22
  79. package/dist/elements/Progress/index.js.map +1 -1
  80. package/dist/elements/Progress/index.mjs +181 -3
  81. package/dist/elements/Progress/index.mjs.map +1 -1
  82. package/dist/elements/RadioGroup/index.js +358 -34
  83. package/dist/elements/RadioGroup/index.js.map +1 -1
  84. package/dist/elements/RadioGroup/index.mjs +359 -4
  85. package/dist/elements/RadioGroup/index.mjs.map +1 -1
  86. package/dist/elements/Resizable/components/ResizableHandle.d.ts +0 -8
  87. package/dist/elements/Resizable/components/ResizableHandle.d.ts.map +1 -1
  88. package/dist/elements/Resizable/components/ResizablePanel.d.ts +0 -8
  89. package/dist/elements/Resizable/components/ResizablePanel.d.ts.map +1 -1
  90. package/dist/elements/Resizable/components/ResizablePanelGroup.d.ts +0 -8
  91. package/dist/elements/Resizable/components/ResizablePanelGroup.d.ts.map +1 -1
  92. package/dist/elements/Resizable/components/ResizablePopover.d.ts +0 -8
  93. package/dist/elements/Resizable/components/ResizablePopover.d.ts.map +1 -1
  94. package/dist/elements/Resizable/index.js +1568 -51
  95. package/dist/elements/Resizable/index.js.map +1 -1
  96. package/dist/elements/Resizable/index.mjs +1566 -6
  97. package/dist/elements/Resizable/index.mjs.map +1 -1
  98. package/dist/elements/Select/index.js +580 -22
  99. package/dist/elements/Select/index.js.map +1 -1
  100. package/dist/elements/Select/index.mjs +582 -2
  101. package/dist/elements/Select/index.mjs.map +1 -1
  102. package/dist/elements/Skeleton/index.js +77 -15
  103. package/dist/elements/Skeleton/index.js.map +1 -1
  104. package/dist/elements/Skeleton/index.mjs +78 -3
  105. package/dist/elements/Skeleton/index.mjs.map +1 -1
  106. package/dist/elements/Switch/index.js +153 -21
  107. package/dist/elements/Switch/index.js.map +1 -1
  108. package/dist/elements/Switch/index.mjs +149 -5
  109. package/dist/elements/Switch/index.mjs.map +1 -1
  110. package/dist/elements/Table/index.js +589 -68
  111. package/dist/elements/Table/index.js.map +1 -1
  112. package/dist/elements/Table/index.mjs +578 -5
  113. package/dist/elements/Table/index.mjs.map +1 -1
  114. package/dist/elements/Tabs/index.js +328 -63
  115. package/dist/elements/Tabs/index.js.map +1 -1
  116. package/dist/elements/Tabs/index.mjs +320 -3
  117. package/dist/elements/Tabs/index.mjs.map +1 -1
  118. package/dist/elements/TextField/index.js +695 -51
  119. package/dist/elements/TextField/index.js.map +1 -1
  120. package/dist/elements/TextField/index.mjs +684 -7
  121. package/dist/elements/TextField/index.mjs.map +1 -1
  122. package/dist/elements/TimeField/index.js +244 -33
  123. package/dist/elements/TimeField/index.js.map +1 -1
  124. package/dist/elements/TimeField/index.mjs +238 -2
  125. package/dist/elements/TimeField/index.mjs.map +1 -1
  126. package/dist/elements/Toast/index.js +727 -48
  127. package/dist/elements/Toast/index.js.map +1 -1
  128. package/dist/elements/Toast/index.mjs +724 -5
  129. package/dist/elements/Toast/index.mjs.map +1 -1
  130. package/dist/elements/Tooltip/index.js +315 -49
  131. package/dist/elements/Tooltip/index.js.map +1 -1
  132. package/dist/elements/Tooltip/index.mjs +310 -4
  133. package/dist/elements/Tooltip/index.mjs.map +1 -1
  134. package/dist/elements/index.js +12417 -799
  135. package/dist/elements/index.js.map +1 -1
  136. package/dist/elements/index.mjs +12233 -40
  137. package/dist/elements/index.mjs.map +1 -1
  138. package/dist/index.js +12452 -825
  139. package/dist/index.js.map +1 -1
  140. package/dist/index.mjs +12262 -42
  141. package/dist/index.mjs.map +1 -1
  142. package/dist/schemas/index.js +47 -21
  143. package/dist/schemas/index.js.map +1 -1
  144. package/dist/schemas/index.mjs +47 -2
  145. package/dist/schemas/index.mjs.map +1 -1
  146. package/dist/styles/index.js +161 -147
  147. package/dist/styles/index.js.map +1 -1
  148. package/dist/styles/index.mjs +128 -2
  149. package/dist/styles/index.mjs.map +1 -1
  150. package/dist/utils/index.js +7 -7
  151. package/dist/utils/index.js.map +1 -1
  152. package/dist/utils/index.mjs +9 -2
  153. package/dist/utils/index.mjs.map +1 -1
  154. package/package.json +1 -1
  155. package/dist/Carousel-NTZX5TOW.js +0 -16
  156. package/dist/Carousel-NTZX5TOW.js.map +0 -1
  157. package/dist/Carousel-YH3DOQJU.mjs +0 -7
  158. package/dist/Carousel-YH3DOQJU.mjs.map +0 -1
  159. package/dist/chunk-2HIUTHMU.mjs +0 -234
  160. package/dist/chunk-2HIUTHMU.mjs.map +0 -1
  161. package/dist/chunk-34GTFTDO.js +0 -431
  162. package/dist/chunk-34GTFTDO.js.map +0 -1
  163. package/dist/chunk-3H7ASYR7.js +0 -250
  164. package/dist/chunk-3H7ASYR7.js.map +0 -1
  165. package/dist/chunk-3IEN7JOP.js +0 -316
  166. package/dist/chunk-3IEN7JOP.js.map +0 -1
  167. package/dist/chunk-3JHN4GAL.js +0 -326
  168. package/dist/chunk-3JHN4GAL.js.map +0 -1
  169. package/dist/chunk-3MJPASQU.js +0 -232
  170. package/dist/chunk-3MJPASQU.js.map +0 -1
  171. package/dist/chunk-3XD2JUL3.js +0 -572
  172. package/dist/chunk-3XD2JUL3.js.map +0 -1
  173. package/dist/chunk-3YOY2VJ6.js +0 -189
  174. package/dist/chunk-3YOY2VJ6.js.map +0 -1
  175. package/dist/chunk-4DU5JSXB.js +0 -408
  176. package/dist/chunk-4DU5JSXB.js.map +0 -1
  177. package/dist/chunk-4E4E2GSS.js +0 -352
  178. package/dist/chunk-4E4E2GSS.js.map +0 -1
  179. package/dist/chunk-4NHAP4AN.mjs +0 -3
  180. package/dist/chunk-4NHAP4AN.mjs.map +0 -1
  181. package/dist/chunk-4S33J5NY.mjs +0 -415
  182. package/dist/chunk-4S33J5NY.mjs.map +0 -1
  183. package/dist/chunk-5SMGRT3G.mjs +0 -354
  184. package/dist/chunk-5SMGRT3G.mjs.map +0 -1
  185. package/dist/chunk-5SVLJN2C.mjs +0 -22
  186. package/dist/chunk-5SVLJN2C.mjs.map +0 -1
  187. package/dist/chunk-66WTU4EB.mjs +0 -299
  188. package/dist/chunk-66WTU4EB.mjs.map +0 -1
  189. package/dist/chunk-6S25NMOT.mjs +0 -335
  190. package/dist/chunk-6S25NMOT.mjs.map +0 -1
  191. package/dist/chunk-6SP7UB3D.js +0 -4
  192. package/dist/chunk-6SP7UB3D.js.map +0 -1
  193. package/dist/chunk-6TYWWQHM.mjs +0 -565
  194. package/dist/chunk-6TYWWQHM.mjs.map +0 -1
  195. package/dist/chunk-A3YUJA6W.mjs +0 -384
  196. package/dist/chunk-A3YUJA6W.mjs.map +0 -1
  197. package/dist/chunk-A6KEDVUR.js +0 -61
  198. package/dist/chunk-A6KEDVUR.js.map +0 -1
  199. package/dist/chunk-A77RUEWL.js +0 -730
  200. package/dist/chunk-A77RUEWL.js.map +0 -1
  201. package/dist/chunk-AA4IKMPE.mjs +0 -3
  202. package/dist/chunk-AA4IKMPE.mjs.map +0 -1
  203. package/dist/chunk-AKIA6GW6.mjs +0 -163
  204. package/dist/chunk-AKIA6GW6.mjs.map +0 -1
  205. package/dist/chunk-AL6P275L.mjs +0 -435
  206. package/dist/chunk-AL6P275L.mjs.map +0 -1
  207. package/dist/chunk-AZ3RJYTB.js +0 -37
  208. package/dist/chunk-AZ3RJYTB.js.map +0 -1
  209. package/dist/chunk-B5Q4UPL6.js +0 -32
  210. package/dist/chunk-B5Q4UPL6.js.map +0 -1
  211. package/dist/chunk-B6DHPMDP.mjs +0 -335
  212. package/dist/chunk-B6DHPMDP.mjs.map +0 -1
  213. package/dist/chunk-BDXKKMBZ.mjs +0 -184
  214. package/dist/chunk-BDXKKMBZ.mjs.map +0 -1
  215. package/dist/chunk-BL6E2DLZ.mjs +0 -52
  216. package/dist/chunk-BL6E2DLZ.mjs.map +0 -1
  217. package/dist/chunk-CGFDS4XS.mjs +0 -121
  218. package/dist/chunk-CGFDS4XS.mjs.map +0 -1
  219. package/dist/chunk-CJIW5TKI.js +0 -139
  220. package/dist/chunk-CJIW5TKI.js.map +0 -1
  221. package/dist/chunk-CKNISJOQ.js +0 -314
  222. package/dist/chunk-CKNISJOQ.js.map +0 -1
  223. package/dist/chunk-D6CBOECS.mjs +0 -1757
  224. package/dist/chunk-D6CBOECS.mjs.map +0 -1
  225. package/dist/chunk-DDWEVC2S.js +0 -166
  226. package/dist/chunk-DDWEVC2S.js.map +0 -1
  227. package/dist/chunk-DZ556D2F.mjs +0 -176
  228. package/dist/chunk-DZ556D2F.mjs.map +0 -1
  229. package/dist/chunk-E2KQFV3O.mjs +0 -10
  230. package/dist/chunk-E2KQFV3O.mjs.map +0 -1
  231. package/dist/chunk-EMMLADSC.js +0 -126
  232. package/dist/chunk-EMMLADSC.js.map +0 -1
  233. package/dist/chunk-EP4WOI5D.mjs +0 -926
  234. package/dist/chunk-EP4WOI5D.mjs.map +0 -1
  235. package/dist/chunk-FJRXLJC2.mjs +0 -160
  236. package/dist/chunk-FJRXLJC2.mjs.map +0 -1
  237. package/dist/chunk-FKQI434R.js +0 -345
  238. package/dist/chunk-FKQI434R.js.map +0 -1
  239. package/dist/chunk-FPKEAJRZ.mjs +0 -100
  240. package/dist/chunk-FPKEAJRZ.mjs.map +0 -1
  241. package/dist/chunk-FWQYB22U.js +0 -183
  242. package/dist/chunk-FWQYB22U.js.map +0 -1
  243. package/dist/chunk-GD5GHTMA.js +0 -189
  244. package/dist/chunk-GD5GHTMA.js.map +0 -1
  245. package/dist/chunk-GE5XTSDZ.js +0 -447
  246. package/dist/chunk-GE5XTSDZ.js.map +0 -1
  247. package/dist/chunk-GVE47ZAX.mjs +0 -32
  248. package/dist/chunk-GVE47ZAX.mjs.map +0 -1
  249. package/dist/chunk-HK46BT5U.mjs +0 -18
  250. package/dist/chunk-HK46BT5U.mjs.map +0 -1
  251. package/dist/chunk-HQVRMR6N.js +0 -365
  252. package/dist/chunk-HQVRMR6N.js.map +0 -1
  253. package/dist/chunk-HSGBJPJO.mjs +0 -398
  254. package/dist/chunk-HSGBJPJO.mjs.map +0 -1
  255. package/dist/chunk-I3AUTOMZ.mjs +0 -125
  256. package/dist/chunk-I3AUTOMZ.mjs.map +0 -1
  257. package/dist/chunk-IEI5LD5C.mjs +0 -1161
  258. package/dist/chunk-IEI5LD5C.mjs.map +0 -1
  259. package/dist/chunk-IIPTC2X7.mjs +0 -118
  260. package/dist/chunk-IIPTC2X7.mjs.map +0 -1
  261. package/dist/chunk-J7TLHF2Q.js +0 -4
  262. package/dist/chunk-J7TLHF2Q.js.map +0 -1
  263. package/dist/chunk-JJOWXFXQ.mjs +0 -765
  264. package/dist/chunk-JJOWXFXQ.mjs.map +0 -1
  265. package/dist/chunk-JPTSS2OA.mjs +0 -3
  266. package/dist/chunk-JPTSS2OA.mjs.map +0 -1
  267. package/dist/chunk-KFXXRLTP.js +0 -396
  268. package/dist/chunk-KFXXRLTP.js.map +0 -1
  269. package/dist/chunk-KPRRBSG6.mjs +0 -272
  270. package/dist/chunk-KPRRBSG6.mjs.map +0 -1
  271. package/dist/chunk-NFSBGRDB.mjs +0 -57
  272. package/dist/chunk-NFSBGRDB.mjs.map +0 -1
  273. package/dist/chunk-NGJVCFTM.js +0 -219
  274. package/dist/chunk-NGJVCFTM.js.map +0 -1
  275. package/dist/chunk-NSQ6MZJ6.mjs +0 -728
  276. package/dist/chunk-NSQ6MZJ6.mjs.map +0 -1
  277. package/dist/chunk-NYQYHT76.mjs +0 -296
  278. package/dist/chunk-NYQYHT76.mjs.map +0 -1
  279. package/dist/chunk-OLJJGI5B.js +0 -1193
  280. package/dist/chunk-OLJJGI5B.js.map +0 -1
  281. package/dist/chunk-Q3572X2J.js +0 -292
  282. package/dist/chunk-Q3572X2J.js.map +0 -1
  283. package/dist/chunk-QH7N7D4I.mjs +0 -210
  284. package/dist/chunk-QH7N7D4I.mjs.map +0 -1
  285. package/dist/chunk-R7XUIV25.js +0 -466
  286. package/dist/chunk-R7XUIV25.js.map +0 -1
  287. package/dist/chunk-RFFO4KPM.js +0 -135
  288. package/dist/chunk-RFFO4KPM.js.map +0 -1
  289. package/dist/chunk-RFX7QKA7.mjs +0 -180
  290. package/dist/chunk-RFX7QKA7.mjs.map +0 -1
  291. package/dist/chunk-SN5LFAP3.js +0 -940
  292. package/dist/chunk-SN5LFAP3.js.map +0 -1
  293. package/dist/chunk-T4COXKQ3.js +0 -24
  294. package/dist/chunk-T4COXKQ3.js.map +0 -1
  295. package/dist/chunk-TS54QM27.js +0 -125
  296. package/dist/chunk-TS54QM27.js.map +0 -1
  297. package/dist/chunk-UE2S4PCX.mjs +0 -220
  298. package/dist/chunk-UE2S4PCX.mjs.map +0 -1
  299. package/dist/chunk-UTW3QX2A.mjs +0 -282
  300. package/dist/chunk-UTW3QX2A.mjs.map +0 -1
  301. package/dist/chunk-V74LGMAE.js +0 -1767
  302. package/dist/chunk-V74LGMAE.js.map +0 -1
  303. package/dist/chunk-VIREG536.js +0 -12
  304. package/dist/chunk-VIREG536.js.map +0 -1
  305. package/dist/chunk-VY7M7346.js +0 -4
  306. package/dist/chunk-VY7M7346.js.map +0 -1
  307. package/dist/chunk-W3TJOO7H.mjs +0 -319
  308. package/dist/chunk-W3TJOO7H.mjs.map +0 -1
  309. package/dist/chunk-WIUOB36M.js +0 -54
  310. package/dist/chunk-WIUOB36M.js.map +0 -1
  311. package/dist/chunk-WJGLM4CY.js +0 -291
  312. package/dist/chunk-WJGLM4CY.js.map +0 -1
  313. package/dist/chunk-WNURH5OO.mjs +0 -453
  314. package/dist/chunk-WNURH5OO.mjs.map +0 -1
  315. package/dist/chunk-X25TNRSD.mjs +0 -364
  316. package/dist/chunk-X25TNRSD.mjs.map +0 -1
  317. package/dist/chunk-Y3GT7ETK.js +0 -108
  318. package/dist/chunk-Y3GT7ETK.js.map +0 -1
  319. package/dist/chunk-Z4FRNOF6.mjs +0 -115
  320. package/dist/chunk-Z4FRNOF6.mjs.map +0 -1
  321. package/dist/chunk-ZMYLD3BN.js +0 -166
  322. package/dist/chunk-ZMYLD3BN.js.map +0 -1
  323. package/dist/chunk-ZP2KV6EX.js +0 -815
  324. package/dist/chunk-ZP2KV6EX.js.map +0 -1
  325. package/dist/chunk-ZVKXFELU.js +0 -366
  326. package/dist/chunk-ZVKXFELU.js.map +0 -1
@@ -1,176 +0,0 @@
1
- import { cn } from './chunk-E2KQFV3O.mjs';
2
- import { TooltipTrigger as TooltipTrigger$1, Tooltip as Tooltip$1, OverlayArrow, composeRenderProps } from 'react-aria-components';
3
- import { cva } from 'class-variance-authority';
4
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
5
-
6
- var tooltipContentVariants = cva(
7
- // Base styles
8
- [
9
- "z-50 overflow-hidden rounded-md px-3 py-1.5 text-sm shadow-md",
10
- // Inverted colors for high contrast (7:1 ratio)
11
- "bg-[var(--content-foreground)] text-[var(--content-background)]",
12
- // Entry animation base
13
- "animate-in fade-in-0",
14
- // Exit animation
15
- "data-[exiting]:animate-out data-[exiting]:fade-out-0"
16
- ],
17
- {
18
- variants: {
19
- side: {
20
- top: [
21
- "motion-safe:slide-in-from-bottom-2",
22
- "data-[exiting]:motion-safe:slide-out-to-bottom-2"
23
- ],
24
- bottom: [
25
- "motion-safe:slide-in-from-top-2",
26
- "data-[exiting]:motion-safe:slide-out-to-top-2"
27
- ],
28
- left: [
29
- "motion-safe:slide-in-from-right-2",
30
- "data-[exiting]:motion-safe:slide-out-to-right-2"
31
- ],
32
- right: [
33
- "motion-safe:slide-in-from-left-2",
34
- "data-[exiting]:motion-safe:slide-out-to-left-2"
35
- ]
36
- }
37
- },
38
- defaultVariants: {
39
- side: "top"
40
- }
41
- }
42
- );
43
- var tooltipArrowVariants = cva(
44
- // Base arrow styles
45
- "fill-[var(--content-foreground)]",
46
- {
47
- variants: {
48
- side: {
49
- top: "rotate-180",
50
- bottom: "rotate-0",
51
- left: "rotate-90",
52
- right: "-rotate-90"
53
- }
54
- },
55
- defaultVariants: {
56
- side: "top"
57
- }
58
- }
59
- );
60
- function placementToSide(placement) {
61
- if (!placement) return "top";
62
- const basePlacement = placement.split(" ")[0];
63
- if (basePlacement === "top" || basePlacement === "bottom" || basePlacement === "left" || basePlacement === "right") {
64
- return basePlacement;
65
- }
66
- return "top";
67
- }
68
- function TooltipRoot({
69
- children,
70
- delay = 700,
71
- closeDelay = 300,
72
- trigger = "hover",
73
- isOpen,
74
- defaultOpen = false,
75
- onOpenChange,
76
- isDisabled = false
77
- }) {
78
- const effectiveDelay = trigger === "focus" ? 99999999 : delay;
79
- return /* @__PURE__ */ jsx(
80
- TooltipTrigger$1,
81
- {
82
- delay: effectiveDelay,
83
- closeDelay,
84
- isOpen,
85
- defaultOpen,
86
- onOpenChange,
87
- isDisabled,
88
- children
89
- }
90
- );
91
- }
92
- TooltipRoot.displayName = "Tooltip";
93
- function TooltipTriggerComponent({
94
- children
95
- }) {
96
- return children;
97
- }
98
- TooltipTriggerComponent.displayName = "TooltipTrigger";
99
- function TooltipContentComponent({
100
- children,
101
- side = "top",
102
- sideOffset = 4,
103
- alignOffset = 0,
104
- shouldFlip = true,
105
- showArrow = false,
106
- arrowSize = 8,
107
- className,
108
- ...restProps
109
- }) {
110
- return /* @__PURE__ */ jsx(
111
- Tooltip$1,
112
- {
113
- placement: side,
114
- offset: sideOffset,
115
- crossOffset: alignOffset,
116
- shouldFlip,
117
- ...restProps,
118
- className: composeRenderProps(className, (className2, renderProps) => {
119
- const actualSide = placementToSide(renderProps.placement);
120
- return cn(
121
- tooltipContentVariants({ side: actualSide }),
122
- className2
123
- );
124
- }),
125
- children: (renderProps) => {
126
- const actualSide = placementToSide(renderProps.placement);
127
- return /* @__PURE__ */ jsxs(Fragment, { children: [
128
- showArrow && /* @__PURE__ */ jsx(OverlayArrow, { children: /* @__PURE__ */ jsx(
129
- "svg",
130
- {
131
- width: arrowSize,
132
- height: arrowSize,
133
- viewBox: "0 0 8 8",
134
- className: tooltipArrowVariants({ side: actualSide }),
135
- "data-testid": "tooltip-arrow",
136
- children: /* @__PURE__ */ jsx("path", { d: "M0 0 L4 4 L8 0" })
137
- }
138
- ) }),
139
- children
140
- ] });
141
- }
142
- }
143
- );
144
- }
145
- TooltipContentComponent.displayName = "TooltipContent";
146
- function TooltipArrowComponent({
147
- size = 8,
148
- className,
149
- "data-testid": dataTestId = "tooltip-arrow",
150
- ...restProps
151
- }) {
152
- return /* @__PURE__ */ jsx(OverlayArrow, { children: ({ placement }) => {
153
- const side = placementToSide(placement);
154
- return /* @__PURE__ */ jsx(
155
- "svg",
156
- {
157
- width: size,
158
- height: size,
159
- viewBox: "0 0 8 8",
160
- className: cn(tooltipArrowVariants({ side }), className),
161
- "data-testid": dataTestId,
162
- ...restProps,
163
- children: /* @__PURE__ */ jsx("path", { d: "M0 0 L4 4 L8 0" })
164
- }
165
- );
166
- } });
167
- }
168
- TooltipArrowComponent.displayName = "TooltipArrow";
169
- var Tooltip = TooltipRoot;
170
- var TooltipTrigger = TooltipTriggerComponent;
171
- var TooltipContent = TooltipContentComponent;
172
- var TooltipArrow = TooltipArrowComponent;
173
-
174
- export { Tooltip, TooltipArrow, TooltipContent, TooltipTrigger, tooltipArrowVariants, tooltipContentVariants };
175
- //# sourceMappingURL=chunk-DZ556D2F.mjs.map
176
- //# sourceMappingURL=chunk-DZ556D2F.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/elements/Tooltip/Tooltip.tsx"],"names":["AriaTooltipTrigger","AriaTooltip","className"],"mappings":"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","file":"chunk-DZ556D2F.mjs","sourcesContent":["\"use client\";\n\n/**\n * Tooltip Component - Implementation\n *\n * Accessible tooltip component combining React Aria primitives with ShadCN styling.\n * Follows Themis library patterns with compound component structure.\n *\n * @see plan.md (Implementation plan)\n * @see Tooltip.types.ts (Zod schemas)\n * @see tooltip-prd.md (Full requirements)\n */\n\nimport { type ReactElement } from 'react';\nimport {\n TooltipTrigger as AriaTooltipTrigger,\n Tooltip as AriaTooltip,\n OverlayArrow,\n composeRenderProps,\n} from 'react-aria-components';\nimport { cva } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport type {\n TooltipProps,\n TooltipTriggerProps,\n TooltipContentProps,\n TooltipArrowProps,\n TooltipSide,\n} from './Tooltip.types';\n\n/**\n * CVA Variants for TooltipContent\n *\n * Placement-based animations and high-contrast inverted colors.\n *\n * @see plan.md (CVA Variant Structure)\n * @see tooltip-prd.md US-2 (Configurable Placement)\n */\nexport const tooltipContentVariants = cva(\n // Base styles\n [\n \"z-50 overflow-hidden rounded-md px-3 py-1.5 text-sm shadow-md\",\n // Inverted colors for high contrast (7:1 ratio)\n \"bg-[var(--content-foreground)] text-[var(--content-background)]\",\n // Entry animation base\n \"animate-in fade-in-0\",\n // Exit animation\n \"data-[exiting]:animate-out data-[exiting]:fade-out-0\",\n ],\n {\n variants: {\n side: {\n top: [\n \"motion-safe:slide-in-from-bottom-2\",\n \"data-[exiting]:motion-safe:slide-out-to-bottom-2\",\n ],\n bottom: [\n \"motion-safe:slide-in-from-top-2\",\n \"data-[exiting]:motion-safe:slide-out-to-top-2\",\n ],\n left: [\n \"motion-safe:slide-in-from-right-2\",\n \"data-[exiting]:motion-safe:slide-out-to-right-2\",\n ],\n right: [\n \"motion-safe:slide-in-from-left-2\",\n \"data-[exiting]:motion-safe:slide-out-to-left-2\",\n ],\n },\n },\n defaultVariants: {\n side: \"top\",\n },\n }\n);\n\n/**\n * CVA Variants for TooltipArrow\n *\n * Rotation based on placement for correct arrow pointing direction.\n *\n * @see tooltip-prd.md US-2 (Arrow Indicator)\n */\nexport const tooltipArrowVariants = cva(\n // Base arrow styles\n \"fill-[var(--content-foreground)]\",\n {\n variants: {\n side: {\n top: \"rotate-180\",\n bottom: \"rotate-0\",\n left: \"rotate-90\",\n right: \"-rotate-90\",\n },\n },\n defaultVariants: {\n side: \"top\",\n },\n }\n);\n\n/**\n * Map React Aria placement to our side prop\n * React Aria uses placement prop with values like 'top', 'bottom', etc.\n * PlacementAxis can be 'top' | 'bottom' | 'left' | 'right' | null\n */\nfunction placementToSide(placement: string | null | undefined): TooltipSide {\n if (!placement) return 'top';\n // Extract the base placement (e.g., 'top start' -> 'top')\n const basePlacement = placement.split(' ')[0];\n if (basePlacement === 'top' || basePlacement === 'bottom' ||\n basePlacement === 'left' || basePlacement === 'right') {\n return basePlacement;\n }\n return 'top';\n}\n\n/**\n * Tooltip Root Component\n *\n * Manages tooltip open/close state, delays, and trigger behavior.\n * Wraps React Aria's TooltipTrigger with delay configuration.\n *\n * @see tooltip-prd.md US-1 (Basic Usage)\n * @see tooltip-prd.md US-3 (Delay Configuration)\n * @see tooltip-prd.md US-7 (Controlled State)\n */\nfunction TooltipRoot({\n children,\n delay = 700,\n closeDelay = 300,\n trigger = 'hover',\n isOpen,\n defaultOpen = false,\n onOpenChange,\n isDisabled = false,\n}: TooltipProps): ReactElement {\n // React Aria doesn't have a direct trigger mode prop\n // 'focus' mode is achieved by setting delay to a very high value\n // and relying on focus to trigger immediately\n const effectiveDelay = trigger === 'focus' ? 99999999 : delay;\n\n return (\n <AriaTooltipTrigger\n delay={effectiveDelay}\n closeDelay={closeDelay}\n isOpen={isOpen}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n isDisabled={isDisabled}\n >\n {children}\n </AriaTooltipTrigger>\n );\n}\n\nTooltipRoot.displayName = 'Tooltip';\n\n/**\n * TooltipTrigger Component\n *\n * Wrapper for the element that triggers the tooltip.\n * The child element must be focusable (or wrapped with Focusable).\n *\n * React Aria's TooltipTrigger automatically applies:\n * - aria-describedby linking to tooltip\n * - Hover and focus event handlers\n *\n * @see tooltip-prd.md US-5 (Non-Button Triggers)\n */\nfunction TooltipTriggerComponent({\n children,\n}: TooltipTriggerProps): ReactElement {\n // React Aria's TooltipTrigger expects the trigger element as a direct child\n // We pass through the child element directly\n return children as ReactElement;\n}\n\nTooltipTriggerComponent.displayName = 'TooltipTrigger';\n\n/**\n * TooltipContent Component\n *\n * The actual tooltip overlay that appears.\n * Supports placement, offset, and optional arrow.\n *\n * @see tooltip-prd.md US-2 (Placement and Arrow)\n * @see tooltip-prd.md Technical Implementation Details\n */\nfunction TooltipContentComponent({\n children,\n side = 'top',\n sideOffset = 4,\n alignOffset = 0,\n shouldFlip = true,\n showArrow = false,\n arrowSize = 8,\n className,\n ...restProps\n}: TooltipContentProps & { 'data-testid'?: string }): ReactElement {\n return (\n <AriaTooltip\n placement={side}\n offset={sideOffset}\n crossOffset={alignOffset}\n shouldFlip={shouldFlip}\n {...restProps}\n className={composeRenderProps(className, (className, renderProps) => {\n // Get actual placement from render props for animation direction\n const actualSide = placementToSide(renderProps.placement);\n return cn(\n tooltipContentVariants({ side: actualSide }),\n className\n );\n })}\n >\n {(renderProps) => {\n const actualSide = placementToSide(renderProps.placement);\n return (\n <>\n {showArrow && (\n <OverlayArrow>\n <svg\n width={arrowSize}\n height={arrowSize}\n viewBox=\"0 0 8 8\"\n className={tooltipArrowVariants({ side: actualSide })}\n data-testid=\"tooltip-arrow\"\n >\n <path d=\"M0 0 L4 4 L8 0\" />\n </svg>\n </OverlayArrow>\n )}\n {children}\n </>\n );\n }}\n </AriaTooltip>\n );\n}\n\nTooltipContentComponent.displayName = 'TooltipContent';\n\n/**\n * TooltipArrow Component\n *\n * Optional arrow component for custom arrow rendering.\n * Automatically positioned based on tooltip placement.\n *\n * Note: This is an alternative to using showArrow prop on TooltipContent.\n * Use this when you need custom arrow styling or rendering.\n *\n * @see tooltip-prd.md US-2 (Arrow Indicator)\n */\nfunction TooltipArrowComponent({\n size = 8,\n className,\n 'data-testid': dataTestId = 'tooltip-arrow',\n ...restProps\n}: TooltipArrowProps & { 'data-testid'?: string }): ReactElement {\n // This component is designed to be used inside TooltipContent\n // The actual positioning is handled by OverlayArrow from React Aria\n return (\n <OverlayArrow>\n {({ placement }) => {\n const side = placementToSide(placement);\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 8 8\"\n className={cn(tooltipArrowVariants({ side }), className)}\n data-testid={dataTestId}\n {...restProps}\n >\n <path d=\"M0 0 L4 4 L8 0\" />\n </svg>\n );\n }}\n </OverlayArrow>\n );\n}\n\nTooltipArrowComponent.displayName = 'TooltipArrow';\n\n/**\n * Export all components\n *\n * Following Themis pattern - export individual components\n * No Object.assign compound pattern for Tooltip since React Aria\n * expects specific component hierarchy.\n */\nexport const Tooltip = TooltipRoot;\nexport const TooltipTrigger = TooltipTriggerComponent;\nexport const TooltipContent = TooltipContentComponent;\nexport const TooltipArrow = TooltipArrowComponent;\n"]}
@@ -1,10 +0,0 @@
1
- import { clsx } from 'clsx';
2
- import { twMerge } from 'tailwind-merge';
3
-
4
- function cn(...inputs) {
5
- return twMerge(clsx(inputs));
6
- }
7
-
8
- export { cn };
9
- //# sourceMappingURL=chunk-E2KQFV3O.mjs.map
10
- //# sourceMappingURL=chunk-E2KQFV3O.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/cn.ts"],"names":[],"mappings":";;;AAcO,SAAS,MAAM,MAAA,EAA8B;AAClD,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B","file":"chunk-E2KQFV3O.mjs","sourcesContent":["/**\n * Class Name Utility\n * Merges Tailwind CSS classes with conflict resolution\n *\n * Combines clsx for conditional classes and tailwind-merge for deduplication\n *\n * @example\n * cn('px-2 py-1', 'px-4') // => 'py-1 px-4' (px-4 overrides px-2)\n * cn('text-red-500', condition && 'text-blue-500') // => conditional application\n */\n\nimport { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n"]}
@@ -1,126 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkB5Q4UPL6_js = require('./chunk-B5Q4UPL6.js');
4
- var chunkVIREG536_js = require('./chunk-VIREG536.js');
5
- var react = require('react');
6
- var reactAriaComponents = require('react-aria-components');
7
- var classVarianceAuthority = require('class-variance-authority');
8
- var jsxRuntime = require('react/jsx-runtime');
9
-
10
- var switchOuterVariants = classVarianceAuthority.cva(
11
- // Base styles - WCAG 2.2 AAA: 44x44px minimum touch target
12
- "inline-flex shrink-0 cursor-pointer items-center justify-center min-h-[44px] min-w-[44px] disabled:cursor-not-allowed disabled:opacity-50 data-[readonly]:cursor-default",
13
- {
14
- variants: {},
15
- defaultVariants: {}
16
- }
17
- );
18
- var switchTrackVariants = classVarianceAuthority.cva(
19
- // Base styles - visual track with transitions and focus states
20
- "relative inline-flex shrink-0 items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-background",
21
- {
22
- variants: {
23
- variant: {
24
- // Default variant: Uses primary color when selected
25
- default: "bg-[var(--input)] data-[selected]:bg-[var(--primary)]",
26
- // Destructive variant: Uses destructive/error color when selected
27
- destructive: "bg-[var(--input)] data-[selected]:bg-[var(--destructive)]"
28
- },
29
- size: {
30
- // Small: h-5 w-9 (visual track size)
31
- sm: "h-5 w-9",
32
- // Default: h-6 w-11
33
- default: "h-6 w-11",
34
- // Large: h-7 w-14
35
- lg: "h-7 w-14"
36
- }
37
- },
38
- defaultVariants: {
39
- variant: "default",
40
- size: "default"
41
- }
42
- }
43
- );
44
- var switchThumbVariants = classVarianceAuthority.cva(
45
- // Base styles: rounded circle with shadow, translates when selected
46
- "pointer-events-none absolute left-0.5 rounded-full bg-[var(--content-background)] shadow-lg ring-0 transition-transform data-[selected]:translate-x-full",
47
- {
48
- variants: {
49
- size: {
50
- // Thumb is slightly smaller than track height for proper padding
51
- sm: "h-4 w-4",
52
- default: "h-5 w-5",
53
- lg: "h-6 w-6"
54
- }
55
- },
56
- defaultVariants: {
57
- size: "default"
58
- }
59
- }
60
- );
61
- var Switch = react.memo(react.forwardRef(
62
- ({
63
- className,
64
- variant,
65
- size,
66
- label,
67
- description,
68
- isDisabled,
69
- isReadOnly,
70
- ...props
71
- }, ref) => {
72
- return /* @__PURE__ */ jsxRuntime.jsx(
73
- reactAriaComponents.Switch,
74
- {
75
- ref,
76
- isDisabled,
77
- isReadOnly,
78
- className: (_classNameProps) => chunkVIREG536_js.cn(
79
- "group inline-flex items-center gap-2",
80
- isDisabled && "cursor-not-allowed opacity-50",
81
- className
82
- ),
83
- ...props,
84
- children: (renderProps) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
85
- /* @__PURE__ */ jsxRuntime.jsx(
86
- "div",
87
- {
88
- className: chunkVIREG536_js.cn(switchOuterVariants()),
89
- "data-selected": renderProps.isSelected || void 0,
90
- "data-readonly": isReadOnly || void 0,
91
- children: /* @__PURE__ */ jsxRuntime.jsx(
92
- "div",
93
- {
94
- className: chunkVIREG536_js.cn(
95
- switchTrackVariants({ variant, size }),
96
- chunkB5Q4UPL6_js.DEFAULT_INTERACTIONS
97
- ),
98
- "data-selected": renderProps.isSelected || void 0,
99
- children: /* @__PURE__ */ jsxRuntime.jsx(
100
- "div",
101
- {
102
- className: chunkVIREG536_js.cn(switchThumbVariants({ size })),
103
- "data-selected": renderProps.isSelected || void 0
104
- }
105
- )
106
- }
107
- )
108
- }
109
- ),
110
- (label || description) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", children: [
111
- label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium text-[var(--content-foreground)]", children: label }),
112
- description && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-[var(--menu-muted)]", children: description })
113
- ] })
114
- ] })
115
- }
116
- );
117
- }
118
- ));
119
- Switch.displayName = "Switch";
120
-
121
- exports.Switch = Switch;
122
- exports.switchOuterVariants = switchOuterVariants;
123
- exports.switchThumbVariants = switchThumbVariants;
124
- exports.switchTrackVariants = switchTrackVariants;
125
- //# sourceMappingURL=chunk-EMMLADSC.js.map
126
- //# sourceMappingURL=chunk-EMMLADSC.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/elements/Switch/Switch.tsx"],"names":["cva","memo","forwardRef","jsx","AriaSwitch","cn","jsxs","Fragment","DEFAULT_INTERACTIONS"],"mappings":"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","file":"chunk-EMMLADSC.js","sourcesContent":["\"use client\";\n\n/**\n * Switch Component\n * Accessible toggle switch with React Aria primitives and CVA styling\n *\n * @see React Aria Switch: https://react-spectrum.adobe.com/react-aria/Switch.html\n * @see ShadCN Switch: https://ui.shadcn.com/docs/components/switch\n * @see spec.md (WCAG 2.2 AAA - 7:1 contrast ratio, 44x44px touch targets)\n * @see constitution.md Principle IV (Accessibility First)\n */\n\nimport { forwardRef, memo } from 'react';\nimport {\n Switch as AriaSwitch,\n type SwitchProps as AriaSwitchProps,\n} from 'react-aria-components';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { DEFAULT_INTERACTIONS } from '../../styles/interaction-states';\n\n/**\n * Layer 1: Transparent outer touch target (44x44px minimum)\n * This layer handles the WCAG 2.2 AAA touch target requirement\n * Always invisible, centers the visual switch inside\n */\nconst switchOuterVariants = cva(\n // Base styles - WCAG 2.2 AAA: 44x44px minimum touch target\n \"inline-flex shrink-0 cursor-pointer items-center justify-center min-h-[44px] min-w-[44px] disabled:cursor-not-allowed disabled:opacity-50 data-[readonly]:cursor-default\",\n {\n variants: {},\n defaultVariants: {},\n }\n);\n\n/**\n * Layer 2: Visual switch track/background (adjustable size)\n * This layer provides the visual appearance and size flexibility\n * Background color changes based on variant and selection state\n */\nconst switchTrackVariants = cva(\n // Base styles - visual track with transitions and focus states\n \"relative inline-flex shrink-0 items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n {\n variants: {\n variant: {\n // Default variant: Uses primary color when selected\n default:\n \"bg-[var(--input)] data-[selected]:bg-[var(--primary)]\",\n // Destructive variant: Uses destructive/error color when selected\n destructive:\n \"bg-[var(--input)] data-[selected]:bg-[var(--destructive)]\",\n },\n size: {\n // Small: h-5 w-9 (visual track size)\n sm: \"h-5 w-9\",\n // Default: h-6 w-11\n default: \"h-6 w-11\",\n // Large: h-7 w-14\n lg: \"h-7 w-14\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\n/**\n * Layer 3: Switch thumb (sliding circle)\n * Inner visual element that slides horizontally when switch is selected\n * Positioned absolutely within the track (Layer 2)\n */\nconst switchThumbVariants = cva(\n // Base styles: rounded circle with shadow, translates when selected\n \"pointer-events-none absolute left-0.5 rounded-full bg-[var(--content-background)] shadow-lg ring-0 transition-transform data-[selected]:translate-x-full\",\n {\n variants: {\n size: {\n // Thumb is slightly smaller than track height for proper padding\n sm: \"h-4 w-4\",\n default: \"h-5 w-5\",\n lg: \"h-6 w-6\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n);\n\nexport interface SwitchProps\n extends Omit<AriaSwitchProps, 'className' | 'children'>,\n VariantProps<typeof switchTrackVariants> {\n variant?: 'default' | 'destructive';\n size?: 'sm' | 'default' | 'lg';\n label?: string;\n description?: string;\n className?: string;\n}\n\n/**\n * Switch Component\n * Fully accessible toggle switch with React Aria and themed styling\n */\nconst Switch = memo(forwardRef<HTMLLabelElement, SwitchProps>(\n (\n {\n className,\n variant,\n size,\n label,\n description,\n isDisabled,\n isReadOnly,\n ...props\n },\n ref\n ) => {\n return (\n <AriaSwitch\n ref={ref}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n className={(_classNameProps) =>\n cn(\n \"group inline-flex items-center gap-2\",\n isDisabled && \"cursor-not-allowed opacity-50\",\n className\n )\n }\n {...props}\n >\n {(renderProps) => (\n <>\n {/* Layer 1: Transparent outer touch target (44x44px WCAG compliant) */}\n <div\n className={cn(switchOuterVariants())}\n data-selected={renderProps.isSelected || undefined}\n data-readonly={isReadOnly || undefined}\n >\n {/* Layer 2: Visual switch track (adjustable size with variants) */}\n <div\n className={cn(\n switchTrackVariants({ variant, size }),\n DEFAULT_INTERACTIONS\n )}\n data-selected={renderProps.isSelected || undefined}\n >\n {/* Layer 3: Thumb (sliding circle, absolutely positioned) */}\n <div\n className={cn(switchThumbVariants({ size }))}\n data-selected={renderProps.isSelected || undefined}\n />\n </div>\n </div>\n\n {/* Optional label and description */}\n {(label || description) && (\n <div className=\"flex flex-col\">\n {label && (\n <span className=\"text-sm font-medium text-[var(--content-foreground)]\">\n {label}\n </span>\n )}\n {description && (\n <span className=\"text-xs text-[var(--menu-muted)]\">\n {description}\n </span>\n )}\n </div>\n )}\n </>\n )}\n </AriaSwitch>\n );\n }\n));\n\nSwitch.displayName = \"Switch\";\n\nexport { Switch, switchOuterVariants, switchTrackVariants, switchThumbVariants };\n"]}