@wow-two-beta/ui 0.0.4 → 0.0.6

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 (398) hide show
  1. package/dist/actions/button/Button.d.ts +6 -0
  2. package/dist/actions/button/Button.d.ts.map +1 -0
  3. package/dist/actions/button/Button.variants.d.ts +81 -0
  4. package/dist/actions/button/Button.variants.d.ts.map +1 -0
  5. package/dist/actions/button/index.d.ts +3 -0
  6. package/dist/actions/button/index.d.ts.map +1 -0
  7. package/dist/actions/iconButton/IconButton.d.ts +13 -0
  8. package/dist/actions/iconButton/IconButton.d.ts.map +1 -0
  9. package/dist/actions/iconButton/IconButton.variants.d.ts +130 -0
  10. package/dist/actions/iconButton/IconButton.variants.d.ts.map +1 -0
  11. package/dist/actions/iconButton/index.d.ts +3 -0
  12. package/dist/actions/iconButton/index.d.ts.map +1 -0
  13. package/dist/actions/index.d.ts +4 -91
  14. package/dist/actions/index.d.ts.map +1 -0
  15. package/dist/actions/index.js +2 -1
  16. package/dist/actions/link/Link.d.ts +13 -0
  17. package/dist/actions/link/Link.d.ts.map +1 -0
  18. package/dist/actions/link/Link.variants.d.ts +88 -0
  19. package/dist/actions/link/Link.variants.d.ts.map +1 -0
  20. package/dist/actions/link/index.d.ts +3 -0
  21. package/dist/actions/link/index.d.ts.map +1 -0
  22. package/dist/chunk-33IOXQYO.js +47 -0
  23. package/dist/chunk-33IOXQYO.js.map +1 -0
  24. package/dist/{chunk-AOHZGL6F.js → chunk-6NYTRHP7.js} +4 -3
  25. package/dist/chunk-6NYTRHP7.js.map +1 -0
  26. package/dist/{chunk-KDXJQNB6.js → chunk-77WSI427.js} +5 -9
  27. package/dist/chunk-77WSI427.js.map +1 -0
  28. package/dist/{chunk-T3JN5Y3E.js → chunk-JCMV6IT4.js} +7 -71
  29. package/dist/chunk-JCMV6IT4.js.map +1 -0
  30. package/dist/chunk-JTJEI6MF.js +11 -0
  31. package/dist/chunk-JTJEI6MF.js.map +1 -0
  32. package/dist/chunk-L2RYQWZZ.js +120 -0
  33. package/dist/chunk-L2RYQWZZ.js.map +1 -0
  34. package/dist/chunk-MP4OTUFA.js +318 -0
  35. package/dist/chunk-MP4OTUFA.js.map +1 -0
  36. package/dist/chunk-NJZS7RIH.js +604 -0
  37. package/dist/chunk-NJZS7RIH.js.map +1 -0
  38. package/dist/chunk-Q27NAHVB.js +34 -0
  39. package/dist/chunk-Q27NAHVB.js.map +1 -0
  40. package/dist/chunk-SYG6ZE42.js +218 -0
  41. package/dist/chunk-SYG6ZE42.js.map +1 -0
  42. package/dist/chunk-YLN7VMYU.js +275 -0
  43. package/dist/chunk-YLN7VMYU.js.map +1 -0
  44. package/dist/display/avatar/Avatar.d.ts +18 -0
  45. package/dist/display/avatar/Avatar.d.ts.map +1 -0
  46. package/dist/display/avatar/Avatar.variants.d.ts +95 -0
  47. package/dist/display/avatar/Avatar.variants.d.ts.map +1 -0
  48. package/dist/display/avatar/index.d.ts +3 -0
  49. package/dist/display/avatar/index.d.ts.map +1 -0
  50. package/dist/display/badge/Badge.d.ts +10 -0
  51. package/dist/display/badge/Badge.d.ts.map +1 -0
  52. package/dist/display/badge/Badge.variants.d.ts +109 -0
  53. package/dist/display/badge/Badge.variants.d.ts.map +1 -0
  54. package/dist/display/badge/index.d.ts +3 -0
  55. package/dist/display/badge/index.d.ts.map +1 -0
  56. package/dist/display/code/Code.d.ts +10 -0
  57. package/dist/display/code/Code.d.ts.map +1 -0
  58. package/dist/display/code/Code.variants.d.ts +39 -0
  59. package/dist/display/code/Code.variants.d.ts.map +1 -0
  60. package/dist/display/code/index.d.ts +3 -0
  61. package/dist/display/code/index.d.ts.map +1 -0
  62. package/dist/display/heading/Heading.d.ts +15 -0
  63. package/dist/display/heading/Heading.d.ts.map +1 -0
  64. package/dist/display/heading/Heading.variants.d.ts +158 -0
  65. package/dist/display/heading/Heading.variants.d.ts.map +1 -0
  66. package/dist/display/heading/index.d.ts +3 -0
  67. package/dist/display/heading/index.d.ts.map +1 -0
  68. package/dist/display/image/Image.d.ts +12 -0
  69. package/dist/display/image/Image.d.ts.map +1 -0
  70. package/dist/display/image/index.d.ts +2 -0
  71. package/dist/display/image/index.d.ts.map +1 -0
  72. package/dist/display/index.d.ts +12 -2
  73. package/dist/display/index.d.ts.map +1 -0
  74. package/dist/display/index.js +6 -1
  75. package/dist/display/kbd/Kbd.d.ts +8 -0
  76. package/dist/display/kbd/Kbd.d.ts.map +1 -0
  77. package/dist/display/kbd/index.d.ts +2 -0
  78. package/dist/display/kbd/index.d.ts.map +1 -0
  79. package/dist/display/mark/Mark.d.ts +8 -0
  80. package/dist/display/mark/Mark.d.ts.map +1 -0
  81. package/dist/display/mark/index.d.ts +2 -0
  82. package/dist/display/mark/index.d.ts.map +1 -0
  83. package/dist/display/quote/Quote.d.ts +7 -0
  84. package/dist/display/quote/Quote.d.ts.map +1 -0
  85. package/dist/display/quote/index.d.ts +2 -0
  86. package/dist/display/quote/index.d.ts.map +1 -0
  87. package/dist/display/separator/Separator.d.ts +13 -0
  88. package/dist/display/separator/Separator.d.ts.map +1 -0
  89. package/dist/display/separator/index.d.ts +2 -0
  90. package/dist/display/separator/index.d.ts.map +1 -0
  91. package/dist/display/tag/Tag.d.ts +15 -0
  92. package/dist/display/tag/Tag.d.ts.map +1 -0
  93. package/dist/display/tag/Tag.variants.d.ts +67 -0
  94. package/dist/display/tag/Tag.variants.d.ts.map +1 -0
  95. package/dist/display/tag/index.d.ts +3 -0
  96. package/dist/display/tag/index.d.ts.map +1 -0
  97. package/dist/display/text/Text.d.ts +11 -0
  98. package/dist/display/text/Text.d.ts.map +1 -0
  99. package/dist/display/text/Text.variants.d.ts +228 -0
  100. package/dist/display/text/Text.variants.d.ts.map +1 -0
  101. package/dist/display/text/index.d.ts +3 -0
  102. package/dist/display/text/index.d.ts.map +1 -0
  103. package/dist/feedback/alertSimple/AlertSimple.d.ts +13 -0
  104. package/dist/feedback/alertSimple/AlertSimple.d.ts.map +1 -0
  105. package/dist/feedback/alertSimple/AlertSimple.variants.d.ts +60 -0
  106. package/dist/feedback/alertSimple/AlertSimple.variants.d.ts.map +1 -0
  107. package/dist/feedback/alertSimple/index.d.ts +3 -0
  108. package/dist/feedback/alertSimple/index.d.ts.map +1 -0
  109. package/dist/feedback/bannerSimple/BannerSimple.d.ts +10 -0
  110. package/dist/feedback/bannerSimple/BannerSimple.d.ts.map +1 -0
  111. package/dist/feedback/bannerSimple/BannerSimple.variants.d.ts +60 -0
  112. package/dist/feedback/bannerSimple/BannerSimple.variants.d.ts.map +1 -0
  113. package/dist/feedback/bannerSimple/index.d.ts +3 -0
  114. package/dist/feedback/bannerSimple/index.d.ts.map +1 -0
  115. package/dist/feedback/index.d.ts +8 -2
  116. package/dist/feedback/index.d.ts.map +1 -0
  117. package/dist/feedback/index.js +5 -1
  118. package/dist/feedback/progressBar/ProgressBar.d.ts +15 -0
  119. package/dist/feedback/progressBar/ProgressBar.d.ts.map +1 -0
  120. package/dist/feedback/progressBar/ProgressBar.variants.d.ts +103 -0
  121. package/dist/feedback/progressBar/ProgressBar.variants.d.ts.map +1 -0
  122. package/dist/feedback/progressBar/index.d.ts +3 -0
  123. package/dist/feedback/progressBar/index.d.ts.map +1 -0
  124. package/dist/feedback/progressCircle/ProgressCircle.d.ts +16 -0
  125. package/dist/feedback/progressCircle/ProgressCircle.d.ts.map +1 -0
  126. package/dist/feedback/progressCircle/index.d.ts +2 -0
  127. package/dist/feedback/progressCircle/index.d.ts.map +1 -0
  128. package/dist/feedback/skeleton/Skeleton.d.ts +10 -0
  129. package/dist/feedback/skeleton/Skeleton.d.ts.map +1 -0
  130. package/dist/feedback/skeleton/Skeleton.variants.d.ts +46 -0
  131. package/dist/feedback/skeleton/Skeleton.variants.d.ts.map +1 -0
  132. package/dist/feedback/skeleton/index.d.ts +3 -0
  133. package/dist/feedback/skeleton/index.d.ts.map +1 -0
  134. package/dist/feedback/spinner/Spinner.d.ts +12 -0
  135. package/dist/feedback/spinner/Spinner.d.ts.map +1 -0
  136. package/dist/feedback/spinner/Spinner.variants.d.ts +102 -0
  137. package/dist/feedback/spinner/Spinner.variants.d.ts.map +1 -0
  138. package/dist/feedback/spinner/index.d.ts +3 -0
  139. package/dist/feedback/spinner/index.d.ts.map +1 -0
  140. package/dist/feedback/toastSimple/ToastSimple.d.ts +12 -0
  141. package/dist/feedback/toastSimple/ToastSimple.d.ts.map +1 -0
  142. package/dist/feedback/toastSimple/ToastSimple.variants.d.ts +60 -0
  143. package/dist/feedback/toastSimple/ToastSimple.variants.d.ts.map +1 -0
  144. package/dist/feedback/toastSimple/index.d.ts +3 -0
  145. package/dist/feedback/toastSimple/index.d.ts.map +1 -0
  146. package/dist/forms/_styles.d.ts +74 -0
  147. package/dist/forms/_styles.d.ts.map +1 -0
  148. package/dist/forms/checkbox/Checkbox.d.ts +12 -0
  149. package/dist/forms/checkbox/Checkbox.d.ts.map +1 -0
  150. package/dist/forms/checkbox/index.d.ts +2 -0
  151. package/dist/forms/checkbox/index.d.ts.map +1 -0
  152. package/dist/forms/emailInput/EmailInput.d.ts +7 -0
  153. package/dist/forms/emailInput/EmailInput.d.ts.map +1 -0
  154. package/dist/forms/emailInput/index.d.ts +2 -0
  155. package/dist/forms/emailInput/index.d.ts.map +1 -0
  156. package/dist/forms/fieldset/Fieldset.d.ts +8 -0
  157. package/dist/forms/fieldset/Fieldset.d.ts.map +1 -0
  158. package/dist/forms/fieldset/index.d.ts +2 -0
  159. package/dist/forms/fieldset/index.d.ts.map +1 -0
  160. package/dist/forms/formErrorMessage/FormErrorMessage.d.ts +8 -0
  161. package/dist/forms/formErrorMessage/FormErrorMessage.d.ts.map +1 -0
  162. package/dist/forms/formErrorMessage/index.d.ts +2 -0
  163. package/dist/forms/formErrorMessage/index.d.ts.map +1 -0
  164. package/dist/forms/formHelperText/FormHelperText.d.ts +8 -0
  165. package/dist/forms/formHelperText/FormHelperText.d.ts.map +1 -0
  166. package/dist/forms/formHelperText/index.d.ts +2 -0
  167. package/dist/forms/formHelperText/index.d.ts.map +1 -0
  168. package/dist/forms/index.d.ts +18 -2
  169. package/dist/forms/index.d.ts.map +1 -0
  170. package/dist/forms/index.js +8 -1
  171. package/dist/forms/label/Label.d.ts +11 -0
  172. package/dist/forms/label/Label.d.ts.map +1 -0
  173. package/dist/forms/label/index.d.ts +2 -0
  174. package/dist/forms/label/index.d.ts.map +1 -0
  175. package/dist/forms/legend/Legend.d.ts +7 -0
  176. package/dist/forms/legend/Legend.d.ts.map +1 -0
  177. package/dist/forms/legend/index.d.ts +2 -0
  178. package/dist/forms/legend/index.d.ts.map +1 -0
  179. package/dist/forms/numberInput/NumberInput.d.ts +11 -0
  180. package/dist/forms/numberInput/NumberInput.d.ts.map +1 -0
  181. package/dist/forms/numberInput/index.d.ts +2 -0
  182. package/dist/forms/numberInput/index.d.ts.map +1 -0
  183. package/dist/forms/passwordInput/PasswordInput.d.ts +12 -0
  184. package/dist/forms/passwordInput/PasswordInput.d.ts.map +1 -0
  185. package/dist/forms/passwordInput/index.d.ts +2 -0
  186. package/dist/forms/passwordInput/index.d.ts.map +1 -0
  187. package/dist/forms/radio/Radio.d.ts +11 -0
  188. package/dist/forms/radio/Radio.d.ts.map +1 -0
  189. package/dist/forms/radio/index.d.ts +2 -0
  190. package/dist/forms/radio/index.d.ts.map +1 -0
  191. package/dist/forms/searchInput/SearchInput.d.ts +13 -0
  192. package/dist/forms/searchInput/SearchInput.d.ts.map +1 -0
  193. package/dist/forms/searchInput/index.d.ts +2 -0
  194. package/dist/forms/searchInput/index.d.ts.map +1 -0
  195. package/dist/forms/slider/Slider.d.ts +10 -0
  196. package/dist/forms/slider/Slider.d.ts.map +1 -0
  197. package/dist/forms/slider/index.d.ts +2 -0
  198. package/dist/forms/slider/index.d.ts.map +1 -0
  199. package/dist/forms/switch/Switch.d.ts +10 -0
  200. package/dist/forms/switch/Switch.d.ts.map +1 -0
  201. package/dist/forms/switch/index.d.ts +2 -0
  202. package/dist/forms/switch/index.d.ts.map +1 -0
  203. package/dist/forms/telInput/TelInput.d.ts +7 -0
  204. package/dist/forms/telInput/TelInput.d.ts.map +1 -0
  205. package/dist/forms/telInput/index.d.ts +2 -0
  206. package/dist/forms/telInput/index.d.ts.map +1 -0
  207. package/dist/forms/textInput/TextInput.d.ts +11 -0
  208. package/dist/forms/textInput/TextInput.d.ts.map +1 -0
  209. package/dist/forms/textInput/index.d.ts +2 -0
  210. package/dist/forms/textInput/index.d.ts.map +1 -0
  211. package/dist/forms/textarea/Textarea.d.ts +10 -0
  212. package/dist/forms/textarea/Textarea.d.ts.map +1 -0
  213. package/dist/forms/textarea/index.d.ts +2 -0
  214. package/dist/forms/textarea/index.d.ts.map +1 -0
  215. package/dist/forms/urlInput/UrlInput.d.ts +7 -0
  216. package/dist/forms/urlInput/UrlInput.d.ts.map +1 -0
  217. package/dist/forms/urlInput/index.d.ts +2 -0
  218. package/dist/forms/urlInput/index.d.ts.map +1 -0
  219. package/dist/hooks/index.d.ts +11 -2
  220. package/dist/hooks/index.d.ts.map +1 -0
  221. package/dist/hooks/index.js +3 -2
  222. package/dist/hooks/useControlled.d.ts +16 -0
  223. package/dist/hooks/useControlled.d.ts.map +1 -0
  224. package/dist/hooks/useDisclosure.d.ts +14 -0
  225. package/dist/hooks/useDisclosure.d.ts.map +1 -0
  226. package/dist/hooks/useEscape.d.ts +7 -0
  227. package/dist/hooks/useEscape.d.ts.map +1 -0
  228. package/dist/hooks/useEventListener.d.ts +8 -0
  229. package/dist/hooks/useEventListener.d.ts.map +1 -0
  230. package/dist/hooks/useFocusTrap.d.ts +11 -0
  231. package/dist/hooks/useFocusTrap.d.ts.map +1 -0
  232. package/dist/hooks/useId.d.ts +6 -0
  233. package/dist/hooks/useId.d.ts.map +1 -0
  234. package/dist/hooks/useMediaQuery.d.ts +6 -0
  235. package/dist/hooks/useMediaQuery.d.ts.map +1 -0
  236. package/dist/hooks/useOutsideClick.d.ts +8 -0
  237. package/dist/hooks/useOutsideClick.d.ts.map +1 -0
  238. package/dist/hooks/useResizeObserver.d.ts +7 -0
  239. package/dist/hooks/useResizeObserver.d.ts.map +1 -0
  240. package/dist/hooks/useScrollLock.d.ts +7 -0
  241. package/dist/hooks/useScrollLock.d.ts.map +1 -0
  242. package/dist/icons/Icon.d.ts +26 -0
  243. package/dist/icons/Icon.d.ts.map +1 -0
  244. package/dist/icons/index.d.ts +2 -2
  245. package/dist/icons/index.d.ts.map +1 -0
  246. package/dist/index.css +73 -3
  247. package/dist/index.d.ts +10 -13
  248. package/dist/index.d.ts.map +1 -0
  249. package/dist/index.js +11 -9
  250. package/dist/layout/aspectRatio/AspectRatio.d.ts +12 -0
  251. package/dist/layout/aspectRatio/AspectRatio.d.ts.map +1 -0
  252. package/dist/layout/aspectRatio/index.d.ts +2 -0
  253. package/dist/layout/aspectRatio/index.d.ts.map +1 -0
  254. package/dist/layout/box/Box.d.ts +12 -0
  255. package/dist/layout/box/Box.d.ts.map +1 -0
  256. package/dist/layout/box/index.d.ts +2 -0
  257. package/dist/layout/box/index.d.ts.map +1 -0
  258. package/dist/layout/center/Center.d.ts +5 -0
  259. package/dist/layout/center/Center.d.ts.map +1 -0
  260. package/dist/layout/center/index.d.ts +2 -0
  261. package/dist/layout/center/index.d.ts.map +1 -0
  262. package/dist/layout/container/Container.d.ts +11 -0
  263. package/dist/layout/container/Container.d.ts.map +1 -0
  264. package/dist/layout/container/Container.variants.d.ts +67 -0
  265. package/dist/layout/container/Container.variants.d.ts.map +1 -0
  266. package/dist/layout/container/index.d.ts +3 -0
  267. package/dist/layout/container/index.d.ts.map +1 -0
  268. package/dist/layout/flex/Flex.d.ts +10 -0
  269. package/dist/layout/flex/Flex.d.ts.map +1 -0
  270. package/dist/layout/flex/index.d.ts +2 -0
  271. package/dist/layout/flex/index.d.ts.map +1 -0
  272. package/dist/layout/grid/Grid.d.ts +12 -0
  273. package/dist/layout/grid/Grid.d.ts.map +1 -0
  274. package/dist/layout/grid/Grid.variants.d.ts +165 -0
  275. package/dist/layout/grid/Grid.variants.d.ts.map +1 -0
  276. package/dist/layout/grid/index.d.ts +3 -0
  277. package/dist/layout/grid/index.d.ts.map +1 -0
  278. package/dist/layout/hStack/HStack.d.ts +5 -0
  279. package/dist/layout/hStack/HStack.d.ts.map +1 -0
  280. package/dist/layout/hStack/index.d.ts +2 -0
  281. package/dist/layout/hStack/index.d.ts.map +1 -0
  282. package/dist/layout/index.d.ts +12 -2
  283. package/dist/layout/index.d.ts.map +1 -0
  284. package/dist/layout/index.js +5 -1
  285. package/dist/layout/scrollArea/ScrollArea.d.ts +11 -0
  286. package/dist/layout/scrollArea/ScrollArea.d.ts.map +1 -0
  287. package/dist/layout/scrollArea/index.d.ts +2 -0
  288. package/dist/layout/scrollArea/index.d.ts.map +1 -0
  289. package/dist/layout/spacer/Spacer.d.ts +13 -0
  290. package/dist/layout/spacer/Spacer.d.ts.map +1 -0
  291. package/dist/layout/spacer/index.d.ts +2 -0
  292. package/dist/layout/spacer/index.d.ts.map +1 -0
  293. package/dist/layout/stack/Stack.d.ts +11 -0
  294. package/dist/layout/stack/Stack.d.ts.map +1 -0
  295. package/dist/layout/stack/Stack.variants.d.ts +277 -0
  296. package/dist/layout/stack/Stack.variants.d.ts.map +1 -0
  297. package/dist/layout/stack/index.d.ts +3 -0
  298. package/dist/layout/stack/index.d.ts.map +1 -0
  299. package/dist/layout/vStack/VStack.d.ts +5 -0
  300. package/dist/layout/vStack/VStack.d.ts.map +1 -0
  301. package/dist/layout/vStack/index.d.ts +2 -0
  302. package/dist/layout/vStack/index.d.ts.map +1 -0
  303. package/dist/primitives/accessibleIcon/AccessibleIcon.d.ts +13 -0
  304. package/dist/primitives/accessibleIcon/AccessibleIcon.d.ts.map +1 -0
  305. package/dist/primitives/accessibleIcon/index.d.ts +2 -0
  306. package/dist/primitives/accessibleIcon/index.d.ts.map +1 -0
  307. package/dist/primitives/anchoredPositioner/AnchoredPositioner.d.ts +20 -0
  308. package/dist/primitives/anchoredPositioner/AnchoredPositioner.d.ts.map +1 -0
  309. package/dist/primitives/anchoredPositioner/index.d.ts +2 -0
  310. package/dist/primitives/anchoredPositioner/index.d.ts.map +1 -0
  311. package/dist/primitives/collection/Collection.d.ts +19 -0
  312. package/dist/primitives/collection/Collection.d.ts.map +1 -0
  313. package/dist/primitives/collection/index.d.ts +2 -0
  314. package/dist/primitives/collection/index.d.ts.map +1 -0
  315. package/dist/primitives/directionProvider/DirectionProvider.d.ts +13 -0
  316. package/dist/primitives/directionProvider/DirectionProvider.d.ts.map +1 -0
  317. package/dist/primitives/directionProvider/index.d.ts +2 -0
  318. package/dist/primitives/directionProvider/index.d.ts.map +1 -0
  319. package/dist/primitives/dismissableLayer/DismissableLayer.d.ts +18 -0
  320. package/dist/primitives/dismissableLayer/DismissableLayer.d.ts.map +1 -0
  321. package/dist/primitives/dismissableLayer/index.d.ts +2 -0
  322. package/dist/primitives/dismissableLayer/index.d.ts.map +1 -0
  323. package/dist/primitives/focusScope/FocusScope.d.ts +11 -0
  324. package/dist/primitives/focusScope/FocusScope.d.ts.map +1 -0
  325. package/dist/primitives/focusScope/index.d.ts +2 -0
  326. package/dist/primitives/focusScope/index.d.ts.map +1 -0
  327. package/dist/primitives/formControlContext/FormControlContext.d.ts +32 -0
  328. package/dist/primitives/formControlContext/FormControlContext.d.ts.map +1 -0
  329. package/dist/primitives/formControlContext/index.d.ts +2 -0
  330. package/dist/primitives/formControlContext/index.d.ts.map +1 -0
  331. package/dist/primitives/index.d.ts +14 -5
  332. package/dist/primitives/index.d.ts.map +1 -0
  333. package/dist/primitives/index.js +5 -2
  334. package/dist/primitives/portal/Portal.d.ts +14 -0
  335. package/dist/primitives/portal/Portal.d.ts.map +1 -0
  336. package/dist/primitives/portal/index.d.ts +2 -0
  337. package/dist/primitives/portal/index.d.ts.map +1 -0
  338. package/dist/primitives/presence/Presence.d.ts +14 -0
  339. package/dist/primitives/presence/Presence.d.ts.map +1 -0
  340. package/dist/primitives/presence/index.d.ts +2 -0
  341. package/dist/primitives/presence/index.d.ts.map +1 -0
  342. package/dist/primitives/rovingFocusGroup/RovingFocusGroup.d.ts +26 -0
  343. package/dist/primitives/rovingFocusGroup/RovingFocusGroup.d.ts.map +1 -0
  344. package/dist/primitives/rovingFocusGroup/index.d.ts +2 -0
  345. package/dist/primitives/rovingFocusGroup/index.d.ts.map +1 -0
  346. package/dist/primitives/scrollLockProvider/ScrollLockProvider.d.ts +12 -0
  347. package/dist/primitives/scrollLockProvider/ScrollLockProvider.d.ts.map +1 -0
  348. package/dist/primitives/scrollLockProvider/index.d.ts +2 -0
  349. package/dist/primitives/scrollLockProvider/index.d.ts.map +1 -0
  350. package/dist/primitives/slot/Slot.d.ts +15 -0
  351. package/dist/primitives/slot/Slot.d.ts.map +1 -0
  352. package/dist/primitives/slot/index.d.ts +2 -0
  353. package/dist/primitives/slot/index.d.ts.map +1 -0
  354. package/dist/primitives/visuallyHidden/VisuallyHidden.d.ts +9 -0
  355. package/dist/primitives/visuallyHidden/VisuallyHidden.d.ts.map +1 -0
  356. package/dist/primitives/visuallyHidden/index.d.ts +2 -0
  357. package/dist/primitives/visuallyHidden/index.d.ts.map +1 -0
  358. package/dist/utils/cn.d.ts +7 -0
  359. package/dist/utils/cn.d.ts.map +1 -0
  360. package/dist/utils/composeEventHandlers.d.ts +11 -0
  361. package/dist/utils/composeEventHandlers.d.ts.map +1 -0
  362. package/dist/utils/composeRefs.d.ts +9 -0
  363. package/dist/utils/composeRefs.d.ts.map +1 -0
  364. package/dist/utils/dataAttr.d.ts +7 -0
  365. package/dist/utils/dataAttr.d.ts.map +1 -0
  366. package/dist/utils/index.d.ts +7 -4
  367. package/dist/utils/index.d.ts.map +1 -0
  368. package/dist/utils/polymorphic.d.ts +14 -0
  369. package/dist/utils/polymorphic.d.ts.map +1 -0
  370. package/dist/utils/tv.d.ts +2 -0
  371. package/dist/utils/tv.d.ts.map +1 -0
  372. package/package.json +5 -14
  373. package/dist/chunk-A2OBJDIK.js +0 -3
  374. package/dist/chunk-A2OBJDIK.js.map +0 -1
  375. package/dist/chunk-AOHZGL6F.js.map +0 -1
  376. package/dist/chunk-D67WGR7Y.js +0 -212
  377. package/dist/chunk-D67WGR7Y.js.map +0 -1
  378. package/dist/chunk-KDXJQNB6.js.map +0 -1
  379. package/dist/chunk-OEEYNBEO.js +0 -41
  380. package/dist/chunk-OEEYNBEO.js.map +0 -1
  381. package/dist/chunk-PSDQXPUE.js +0 -3
  382. package/dist/chunk-PSDQXPUE.js.map +0 -1
  383. package/dist/chunk-T3JN5Y3E.js.map +0 -1
  384. package/dist/chunk-YP4MAZRQ.js +0 -3
  385. package/dist/chunk-YP4MAZRQ.js.map +0 -1
  386. package/dist/chunk-ZDU7SROW.js +0 -3
  387. package/dist/chunk-ZDU7SROW.js.map +0 -1
  388. package/dist/index-Bk6CuDNT.d.ts +0 -247
  389. package/dist/index-C0IDphm_.d.ts +0 -61
  390. package/dist/index-CEAM9LLM.d.ts +0 -37
  391. package/dist/index-PAuwodyY.d.ts +0 -103
  392. package/dist/index-goThcZ1E.d.ts +0 -416
  393. package/dist/tailwind/index.d.ts +0 -5
  394. package/dist/tailwind/index.js +0 -23
  395. package/dist/tailwind/index.js.map +0 -1
  396. package/dist/tokens/index.d.ts +0 -1
  397. package/dist/tokens/index.js +0 -4
  398. package/dist/tokens/index.js.map +0 -1
@@ -1,8 +1,10 @@
1
- import { useId as useId$1, useScrollLock } from './chunk-KDXJQNB6.js';
1
+ import { useFormControl, FormControlProvider } from './chunk-Q27NAHVB.js';
2
+ import { useScrollLock } from './chunk-77WSI427.js';
3
+ import { Slot } from './chunk-33IOXQYO.js';
2
4
  import { composeRefs } from './chunk-DN7WBRIV.js';
3
5
  import { cn } from './chunk-KZ4VFY2T.js';
4
6
  import { __export } from './chunk-PZ5AY32C.js';
5
- import { forwardRef, isValidElement, Children, cloneElement, useState, useRef, useEffect, createContext, useContext, useCallback, useMemo, useId } from 'react';
7
+ import { forwardRef, useState, useRef, useEffect, isValidElement, cloneElement, createContext, useContext, useCallback, useMemo, useId } from 'react';
6
8
  import { createPortal } from 'react-dom';
7
9
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
8
10
  import { FocusScope as FocusScope$1 } from '@radix-ui/react-focus-scope';
@@ -28,46 +30,6 @@ __export(primitives_exports, {
28
30
  useFormControl: () => useFormControl,
29
31
  useRovingFocusItem: () => useRovingFocusItem
30
32
  });
31
- function mergeProps(slotProps, childProps) {
32
- const merged = { ...childProps };
33
- for (const key of Object.keys(slotProps)) {
34
- const slotVal = slotProps[key];
35
- const childVal = childProps[key];
36
- if (key === "className") {
37
- merged.className = [slotVal, childVal].filter(Boolean).join(" ");
38
- } else if (key === "style") {
39
- merged.style = { ...slotVal, ...childVal };
40
- } else if (/^on[A-Z]/.test(key)) {
41
- const slotFn = slotVal;
42
- const childFn = childVal;
43
- if (slotFn && childFn) {
44
- merged[key] = (...args) => {
45
- childFn(...args);
46
- slotFn(...args);
47
- };
48
- } else if (slotFn) {
49
- merged[key] = slotFn;
50
- }
51
- } else if (childVal === void 0) {
52
- merged[key] = slotVal;
53
- }
54
- }
55
- return merged;
56
- }
57
- var Slot = forwardRef(
58
- ({ children, ...slotProps }, forwardedRef) => {
59
- if (!isValidElement(children)) {
60
- return Children.count(children) > 1 ? Children.only(null) : null;
61
- }
62
- const child = children;
63
- const merged = mergeProps(slotProps, child.props ?? {});
64
- return cloneElement(child, {
65
- ...merged,
66
- ref: composeRefs(forwardedRef, child.ref)
67
- });
68
- }
69
- );
70
- Slot.displayName = "Slot";
71
33
  function Portal({ children, container, name }) {
72
34
  const target = container ?? document.body;
73
35
  return createPortal(/* @__PURE__ */ jsx("div", { "data-portal-name": name, children }), target);
@@ -296,37 +258,11 @@ function createCollection() {
296
258
  }
297
259
  return { Provider, useCollection, Context: CollectionContext };
298
260
  }
299
- var Context = createContext(null);
300
- function FormControlProvider({
301
- id: providedId,
302
- isInvalid = false,
303
- isDisabled = false,
304
- isRequired = false,
305
- isReadOnly = false,
306
- children
307
- }) {
308
- const generatedId = useId$1();
309
- const id = providedId ?? generatedId;
310
- const value = {
311
- id,
312
- labelId: `${id}-label`,
313
- helperId: `${id}-helper`,
314
- errorId: `${id}-error`,
315
- isInvalid,
316
- isDisabled,
317
- isRequired,
318
- isReadOnly
319
- };
320
- return /* @__PURE__ */ jsx(Context.Provider, { value, children });
321
- }
322
- function useFormControl() {
323
- return useContext(Context);
324
- }
325
261
  function ScrollLockProvider({ enabled = true, children }) {
326
262
  useScrollLock(enabled);
327
263
  return /* @__PURE__ */ jsx(Fragment, { children });
328
264
  }
329
265
 
330
- export { AccessibleIcon, AnchoredPositioner, DirectionProvider, DismissableLayer, FocusScope, FormControlProvider, Portal, Presence, RovingFocusGroup, ScrollLockProvider, Slot, VisuallyHidden, createCollection, primitives_exports, useDirection, useFormControl, useRovingFocusItem };
331
- //# sourceMappingURL=chunk-T3JN5Y3E.js.map
332
- //# sourceMappingURL=chunk-T3JN5Y3E.js.map
266
+ export { AccessibleIcon, AnchoredPositioner, DirectionProvider, DismissableLayer, FocusScope, Portal, Presence, RovingFocusGroup, ScrollLockProvider, VisuallyHidden, createCollection, primitives_exports, useDirection, useRovingFocusItem };
267
+ //# sourceMappingURL=chunk-JCMV6IT4.js.map
268
+ //# sourceMappingURL=chunk-JCMV6IT4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/primitives/index.ts","../src/primitives/portal/Portal.tsx","../src/primitives/visuallyHidden/VisuallyHidden.tsx","../src/primitives/presence/Presence.tsx","../src/primitives/directionProvider/DirectionProvider.tsx","../src/primitives/accessibleIcon/AccessibleIcon.tsx","../src/primitives/focusScope/FocusScope.tsx","../src/primitives/dismissableLayer/DismissableLayer.tsx","../src/primitives/anchoredPositioner/AnchoredPositioner.tsx","../src/primitives/rovingFocusGroup/RovingFocusGroup.tsx","../src/primitives/collection/Collection.tsx","../src/primitives/scrollLockProvider/ScrollLockProvider.tsx"],"names":["jsx","isValidElement","cloneElement","RadixFocusScope","forwardRef","useRef","useEffect","offset","offsetMiddleware","createContext","useState","useContext","useCallback","useMemo","Fragment"],"mappings":"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","file":"chunk-JCMV6IT4.js","sourcesContent":["// L2 — headless primitives. Behavior + a11y, no visual styling beyond layout.\n// Foundation layer; cannot import upward (enforced by ESLint boundaries).\n\nexport * from './slot';\nexport * from './portal';\nexport * from './visuallyHidden';\nexport * from './presence';\nexport * from './directionProvider';\nexport * from './accessibleIcon';\nexport * from './focusScope';\nexport * from './dismissableLayer';\nexport * from './anchoredPositioner';\nexport * from './rovingFocusGroup';\nexport * from './collection';\nexport * from './formControlContext';\nexport * from './scrollLockProvider';\n","import { type ReactNode } from 'react';\nimport { createPortal } from 'react-dom';\n\nexport interface PortalProps {\n children: ReactNode;\n /** Container to render into. Default: `document.body`. */\n container?: HTMLElement | null;\n /** Optional named layer — sets `data-portal-name` on the wrapper. */\n name?: string;\n}\n\n/**\n * Render children into a different DOM node (default `document.body`).\n * Client-only — package targets pure CSR consumers.\n */\nexport function Portal({ children, container, name }: PortalProps): ReactNode {\n const target = container ?? document.body;\n return createPortal(<div data-portal-name={name}>{children}</div>, target);\n}\n","import { forwardRef, type HTMLAttributes } from 'react';\nimport { cn } from '../../utils/cn';\n\nexport type VisuallyHiddenProps = HTMLAttributes<HTMLSpanElement>;\n\n/**\n * Visually hidden span — content removed from the visual layout but still\n * announced to screen readers. Use for accessible labels on icon-only\n * affordances and live-region announcements.\n */\nexport const VisuallyHidden = forwardRef<HTMLSpanElement, VisuallyHiddenProps>(\n ({ className, ...props }, ref) => (\n <span\n ref={ref}\n className={cn(\n 'absolute h-px w-px overflow-hidden whitespace-nowrap border-0 p-0',\n 'm-[-1px] [clip:rect(0_0_0_0)] [clip-path:inset(50%)]',\n className,\n )}\n {...props}\n />\n ),\n);\nVisuallyHidden.displayName = 'VisuallyHidden';\n","import {\n cloneElement,\n isValidElement,\n useEffect,\n useRef,\n useState,\n type ReactElement,\n type Ref,\n} from 'react';\nimport { composeRefs } from '../../utils/composeRefs';\n\nexport interface PresenceProps {\n /** Whether the content should be present. Toggle false to trigger exit. */\n present: boolean;\n /** Single React element child — receives `ref` and `data-state` (\"open\" | \"closed\"). */\n children: ReactElement;\n}\n\n/**\n * Defer unmount until the child's exit animation/transition finishes.\n * Pass `present={false}` to start the exit; the child stays mounted with\n * `data-state=\"closed\"` until `animationend`/`transitionend` fires.\n */\nexport function Presence({ present, children }: PresenceProps): ReactElement | null {\n const [rendered, setRendered] = useState(present);\n const ref = useRef<HTMLElement | null>(null);\n\n useEffect(() => {\n if (present) {\n setRendered(true);\n return;\n }\n const node = ref.current;\n if (!node) {\n setRendered(false);\n return;\n }\n const cs = getComputedStyle(node);\n const hasAnim = cs.animationName !== 'none' && cs.animationDuration !== '0s';\n const hasTrans = cs.transitionDuration !== '0s';\n if (!hasAnim && !hasTrans) {\n setRendered(false);\n return;\n }\n const onEnd = () => setRendered(false);\n node.addEventListener('animationend', onEnd);\n node.addEventListener('transitionend', onEnd);\n return () => {\n node.removeEventListener('animationend', onEnd);\n node.removeEventListener('transitionend', onEnd);\n };\n }, [present]);\n\n if (!rendered || !isValidElement(children)) return null;\n const child = children as ReactElement<{ ref?: Ref<HTMLElement> }> & { ref?: Ref<HTMLElement> };\n return cloneElement(child, {\n ref: composeRefs(ref, child.ref),\n 'data-state': present ? 'open' : 'closed',\n } as Partial<typeof child.props>);\n}\n","import { createContext, useContext, type ReactNode } from 'react';\n\nexport type Direction = 'ltr' | 'rtl';\n\nconst DirectionContext = createContext<Direction>('ltr');\n\nexport interface DirectionProviderProps {\n dir: Direction;\n children: ReactNode;\n}\n\n/**\n * Provide reading direction to descendants. Components that mirror in RTL\n * (Tabs arrow keys, Slider, Carousel, etc.) read this via `useDirection()`.\n */\nexport function DirectionProvider({ dir, children }: DirectionProviderProps) {\n return <DirectionContext.Provider value={dir}>{children}</DirectionContext.Provider>;\n}\n\nexport function useDirection(): Direction {\n return useContext(DirectionContext);\n}\n","import { cloneElement, isValidElement, type ReactElement } from 'react';\nimport { VisuallyHidden } from '../visuallyHidden/VisuallyHidden';\n\nexport interface AccessibleIconProps {\n /** Required accessible label for the icon. */\n label: string;\n /** Single icon element — will receive `aria-hidden` so SR reads only the label. */\n children: ReactElement;\n}\n\n/**\n * Wrap an icon-only element with an accessible label. The icon is hidden\n * from assistive tech and a `VisuallyHidden` sibling provides the label.\n */\nexport function AccessibleIcon({ label, children }: AccessibleIconProps) {\n const icon = isValidElement(children)\n ? cloneElement(children as ReactElement<{ 'aria-hidden'?: boolean | string; focusable?: string }>, {\n 'aria-hidden': 'true',\n focusable: 'false',\n })\n : children;\n return (\n <>\n {icon}\n <VisuallyHidden>{label}</VisuallyHidden>\n </>\n );\n}\n","import { FocusScope as RadixFocusScope } from '@radix-ui/react-focus-scope';\n\nexport type FocusScopeProps = React.ComponentProps<typeof RadixFocusScope>;\n\n/**\n * Trap focus within children. On unmount, returns focus to the previously\n * focused element. Pass `loop` to wrap Tab navigation; `trapped` to enable\n * the trap (default true while mounted).\n *\n * Wraps `@radix-ui/react-focus-scope` — battle-tested implementation.\n */\nexport const FocusScope = RadixFocusScope;\n","import {\n forwardRef,\n useEffect,\n useRef,\n type HTMLAttributes,\n} from 'react';\nimport { composeRefs } from '../../utils/composeRefs';\n\ninterface LayerEntry {\n node: HTMLElement;\n onEscape?: (event: KeyboardEvent) => void;\n onOutsidePointerDown?: (event: PointerEvent) => void;\n}\n\nconst layerStack: LayerEntry[] = [];\n\nexport interface DismissableLayerProps extends HTMLAttributes<HTMLDivElement> {\n /** Called when Escape is pressed and this is the topmost layer. */\n onEscape?: (event: KeyboardEvent) => void;\n /** Called when a pointerdown lands outside this layer's DOM and this is topmost. */\n onOutsidePointerDown?: (event: PointerEvent) => void;\n /** Disable the Escape listener for this layer. */\n disableEscape?: boolean;\n /** Disable the outside-pointer-down listener for this layer. */\n disableOutsideClick?: boolean;\n}\n\n/**\n * Stack-aware dismissal layer. Multiple layers may stack (modal > popover);\n * only the topmost reacts to Escape / outside click. Used as the base of\n * Modal, Drawer, Popover, Menu, HoverCard, ContextMenu.\n */\nexport const DismissableLayer = forwardRef<HTMLDivElement, DismissableLayerProps>(\n (\n { onEscape, onOutsidePointerDown, disableEscape, disableOutsideClick, ...props },\n forwardedRef,\n ) => {\n const ref = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n const node = ref.current;\n if (!node) return;\n const entry: LayerEntry = { node, onEscape, onOutsidePointerDown };\n layerStack.push(entry);\n return () => {\n const idx = layerStack.indexOf(entry);\n if (idx >= 0) layerStack.splice(idx, 1);\n };\n }, [onEscape, onOutsidePointerDown]);\n\n useEffect(() => {\n if (disableEscape) return;\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.key !== 'Escape') return;\n const top = layerStack[layerStack.length - 1];\n if (top && top.node === ref.current) top.onEscape?.(e);\n };\n document.addEventListener('keydown', onKeyDown);\n return () => document.removeEventListener('keydown', onKeyDown);\n }, [disableEscape]);\n\n useEffect(() => {\n if (disableOutsideClick) return;\n const onPointer = (e: PointerEvent) => {\n const top = layerStack[layerStack.length - 1];\n if (!top || top.node !== ref.current) return;\n const target = e.target as Node | null;\n if (!target || ref.current?.contains(target)) return;\n top.onOutsidePointerDown?.(e);\n };\n document.addEventListener('pointerdown', onPointer, true);\n return () => document.removeEventListener('pointerdown', onPointer, true);\n }, [disableOutsideClick]);\n\n return <div ref={composeRefs(forwardedRef, ref)} {...props} />;\n },\n);\nDismissableLayer.displayName = 'DismissableLayer';\n","import {\n autoUpdate,\n flip,\n offset as offsetMiddleware,\n shift,\n useFloating,\n type Placement,\n} from '@floating-ui/react';\nimport { forwardRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { composeRefs } from '../../utils/composeRefs';\n\nexport interface AnchoredPositionerProps extends HTMLAttributes<HTMLDivElement> {\n /** The element the floating layer should be anchored to. */\n anchor: HTMLElement | null;\n /** Floating UI placement. Default `bottom`. */\n placement?: Placement;\n /** Distance between anchor and floating element in px. Default 8. */\n offset?: number;\n /** Render the floating element only when open. */\n open?: boolean;\n children: ReactNode;\n}\n\n/**\n * Position children relative to an anchor element using Floating UI.\n * Auto-flips and shifts to stay in viewport. Use as the positioning surface\n * for Tooltip, Popover, Menu, HoverCard.\n */\nexport const AnchoredPositioner = forwardRef<HTMLDivElement, AnchoredPositionerProps>(\n (\n { anchor, placement = 'bottom', offset = 8, open = true, children, style, ...props },\n forwardedRef,\n ) => {\n const { refs, floatingStyles } = useFloating({\n open,\n placement,\n middleware: [offsetMiddleware(offset), flip(), shift({ padding: 8 })],\n whileElementsMounted: autoUpdate,\n elements: { reference: anchor },\n });\n\n if (!open) return null;\n\n return (\n <div\n ref={composeRefs(forwardedRef, refs.setFloating)}\n style={{ ...floatingStyles, ...style }}\n {...props}\n >\n {children}\n </div>\n );\n },\n);\nAnchoredPositioner.displayName = 'AnchoredPositioner';\n","import {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n type HTMLAttributes,\n type KeyboardEvent,\n type ReactNode,\n} from 'react';\n\nexport type Orientation = 'horizontal' | 'vertical' | 'both';\n\ninterface RovingFocusContextValue {\n register: (id: string) => void;\n unregister: (id: string) => void;\n focusedId: string | null;\n setFocusedId: (id: string) => void;\n onItemKeyDown: (event: KeyboardEvent, id: string) => void;\n}\n\nconst RovingFocusContext = createContext<RovingFocusContextValue | null>(null);\n\nexport interface RovingFocusGroupProps extends HTMLAttributes<HTMLDivElement> {\n orientation?: Orientation;\n loop?: boolean;\n children: ReactNode;\n}\n\n/**\n * Provide arrow-key navigation for a group of focusable children. Children\n * call `useRovingFocusItem()` to register and receive `tabIndex` / event\n * handlers. Used by Tabs, ToggleGroup, RadioGroup, Menu.\n */\nexport function RovingFocusGroup({\n orientation = 'horizontal',\n loop = true,\n children,\n ...props\n}: RovingFocusGroupProps) {\n const items = useRef<string[]>([]);\n const [focusedId, setFocusedId] = useState<string | null>(null);\n\n const register = useCallback((id: string) => {\n if (!items.current.includes(id)) items.current.push(id);\n setFocusedId((current) => current ?? id);\n }, []);\n\n const unregister = useCallback((id: string) => {\n items.current = items.current.filter((i) => i !== id);\n }, []);\n\n const onItemKeyDown = useCallback(\n (event: KeyboardEvent, id: string) => {\n const list = items.current;\n const idx = list.indexOf(id);\n if (idx === -1) return;\n const isVert = orientation === 'vertical' || orientation === 'both';\n const isHoriz = orientation === 'horizontal' || orientation === 'both';\n let next = idx;\n if ((event.key === 'ArrowRight' && isHoriz) || (event.key === 'ArrowDown' && isVert)) {\n next = idx + 1;\n if (next >= list.length) next = loop ? 0 : list.length - 1;\n } else if ((event.key === 'ArrowLeft' && isHoriz) || (event.key === 'ArrowUp' && isVert)) {\n next = idx - 1;\n if (next < 0) next = loop ? list.length - 1 : 0;\n } else if (event.key === 'Home') {\n next = 0;\n } else if (event.key === 'End') {\n next = list.length - 1;\n } else {\n return;\n }\n event.preventDefault();\n const id2 = list[next];\n if (id2) setFocusedId(id2);\n },\n [orientation, loop],\n );\n\n const value = useMemo(\n () => ({ register, unregister, focusedId, setFocusedId, onItemKeyDown }),\n [register, unregister, focusedId, onItemKeyDown],\n );\n\n return (\n <RovingFocusContext.Provider value={value}>\n <div role=\"group\" {...props}>\n {children}\n </div>\n </RovingFocusContext.Provider>\n );\n}\n\nexport interface UseRovingFocusItemReturn {\n ref: (node: HTMLElement | null) => void;\n tabIndex: 0 | -1;\n onKeyDown: (event: KeyboardEvent) => void;\n onFocus: () => void;\n 'data-roving-focus-item': boolean;\n}\n\n/**\n * Inside a `RovingFocusGroup`, returns props to spread onto a focusable item.\n * Outside, returns inert props (tabIndex 0).\n */\nexport function useRovingFocusItem(): UseRovingFocusItemReturn {\n const context = useContext(RovingFocusContext);\n const id = useId();\n const ref = useRef<HTMLElement | null>(null);\n\n useEffect(() => {\n context?.register(id);\n return () => context?.unregister(id);\n }, [context, id]);\n\n useEffect(() => {\n if (context?.focusedId === id && ref.current && document.activeElement !== ref.current) {\n ref.current.focus();\n }\n }, [context?.focusedId, id]);\n\n return {\n ref: (node) => {\n ref.current = node;\n },\n tabIndex: !context || context.focusedId === id ? 0 : -1,\n onKeyDown: (e) => context?.onItemKeyDown(e, id),\n onFocus: () => context?.setFocusedId(id),\n 'data-roving-focus-item': true,\n };\n}\n","import {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useState,\n type Context,\n type ReactNode,\n} from 'react';\n\nexport interface CollectionContextValue<T> {\n items: T[];\n register: (item: T) => void;\n unregister: (item: T) => void;\n}\n\n/**\n * Factory for a typed children-registry context. Compound components\n * (Menu, Tabs, Listbox) use this so the parent can iterate ordered children\n * without prop-drilling.\n */\nexport function createCollection<T>(): {\n Provider: (props: { children: ReactNode }) => ReactNode;\n useCollection: () => CollectionContextValue<T>;\n Context: Context<CollectionContextValue<T> | null>;\n} {\n const CollectionContext = createContext<CollectionContextValue<T> | null>(null);\n\n function Provider({ children }: { children: ReactNode }) {\n const [items, setItems] = useState<T[]>([]);\n const register = useCallback((item: T) => {\n setItems((prev) => (prev.includes(item) ? prev : [...prev, item]));\n }, []);\n const unregister = useCallback((item: T) => {\n setItems((prev) => prev.filter((i) => i !== item));\n }, []);\n const value = useMemo(() => ({ items, register, unregister }), [items, register, unregister]);\n return <CollectionContext.Provider value={value}>{children}</CollectionContext.Provider>;\n }\n\n function useCollection(): CollectionContextValue<T> {\n const ctx = useContext(CollectionContext);\n if (!ctx) {\n throw new Error('useCollection must be used inside its Provider');\n }\n return ctx;\n }\n\n return { Provider, useCollection, Context: CollectionContext };\n}\n","import { type ReactNode } from 'react';\nimport { useScrollLock } from '../../hooks/useScrollLock';\n\nexport interface ScrollLockProviderProps {\n enabled?: boolean;\n children: ReactNode;\n}\n\n/**\n * Component wrapper around `useScrollLock` — handy when scroll lock should\n * follow a child's mount lifecycle (e.g. inside a Modal's portal).\n * Multiple wrappers stack; lock releases when the count reaches zero.\n */\nexport function ScrollLockProvider({ enabled = true, children }: ScrollLockProviderProps) {\n useScrollLock(enabled);\n return <>{children}</>;\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import { useId as useId$1 } from 'react';
2
+
3
+ // src/hooks/useId.ts
4
+ function useId(prefix) {
5
+ const id = useId$1();
6
+ return prefix ? `${id}-${prefix}` : id;
7
+ }
8
+
9
+ export { useId };
10
+ //# sourceMappingURL=chunk-JTJEI6MF.js.map
11
+ //# sourceMappingURL=chunk-JTJEI6MF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/useId.ts"],"names":["useReactId"],"mappings":";;;AAMO,SAAS,MAAM,MAAA,EAAyB;AAC7C,EAAA,MAAM,KAAKA,OAAA,EAAW;AACtB,EAAA,OAAO,MAAA,GAAS,CAAA,EAAG,EAAE,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA,GAAK,EAAA;AACtC","file":"chunk-JTJEI6MF.js","sourcesContent":["import { useId as useReactId } from 'react';\n\n/**\n * Wraps React 19's `useId`. Optionally accepts a stable prefix so generated\n * IDs are easier to spot in DevTools (e.g. `useId('checkbox')` → `:r2:-checkbox`).\n */\nexport function useId(prefix?: string): string {\n const id = useReactId();\n return prefix ? `${id}-${prefix}` : id;\n}\n"]}
@@ -0,0 +1,120 @@
1
+ import { Slot } from './chunk-33IOXQYO.js';
2
+ import { tv as tv$1 } from './chunk-BMBIZLO4.js';
3
+ import { cn } from './chunk-KZ4VFY2T.js';
4
+ import { forwardRef } from 'react';
5
+ import { tv } from 'tailwind-variants';
6
+ import { jsx } from 'react/jsx-runtime';
7
+
8
+ var buttonVariants = tv({
9
+ base: "inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-500 disabled:pointer-events-none disabled:opacity-50",
10
+ variants: {
11
+ variant: {
12
+ primary: "bg-brand-600 text-white hover:bg-brand-700",
13
+ secondary: "bg-neutral-200 text-neutral-900 hover:bg-neutral-100",
14
+ ghost: "bg-transparent text-neutral-900 hover:bg-neutral-100"
15
+ },
16
+ size: {
17
+ sm: "h-8 px-3 text-sm rounded-md",
18
+ md: "h-10 px-4 text-sm rounded-md",
19
+ lg: "h-12 px-6 text-base rounded-lg"
20
+ }
21
+ },
22
+ defaultVariants: {
23
+ variant: "primary",
24
+ size: "md"
25
+ }
26
+ });
27
+ var Button = forwardRef(
28
+ ({ className, variant, size, ...props }, ref) => {
29
+ return /* @__PURE__ */ jsx(
30
+ "button",
31
+ {
32
+ ref,
33
+ className: cn(buttonVariants({ variant, size }), className),
34
+ ...props
35
+ }
36
+ );
37
+ }
38
+ );
39
+ Button.displayName = "Button";
40
+
41
+ // src/actions/iconButton/IconButton.variants.ts
42
+ var iconButtonVariants = tv$1({
43
+ base: "inline-flex items-center justify-center transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-500 disabled:pointer-events-none disabled:opacity-50",
44
+ variants: {
45
+ variant: {
46
+ solid: "bg-brand-600 text-white hover:bg-brand-700",
47
+ soft: "bg-brand-50 text-brand-700 hover:bg-brand-100",
48
+ outline: "border border-neutral-300 bg-white text-neutral-900 hover:bg-neutral-50",
49
+ ghost: "bg-transparent text-neutral-900 hover:bg-neutral-100",
50
+ danger: "bg-danger-600 text-white hover:bg-danger-700"
51
+ },
52
+ size: {
53
+ xs: "h-6 w-6 rounded-sm",
54
+ sm: "h-8 w-8 rounded-md",
55
+ md: "h-10 w-10 rounded-md",
56
+ lg: "h-12 w-12 rounded-lg"
57
+ },
58
+ shape: {
59
+ square: "",
60
+ circle: "rounded-full"
61
+ }
62
+ },
63
+ defaultVariants: {
64
+ variant: "ghost",
65
+ size: "md",
66
+ shape: "square"
67
+ }
68
+ });
69
+ var IconButton = forwardRef(
70
+ ({ className, variant, size, shape, type = "button", ...props }, ref) => /* @__PURE__ */ jsx(
71
+ "button",
72
+ {
73
+ ref,
74
+ type,
75
+ className: cn(iconButtonVariants({ variant, size, shape }), className),
76
+ ...props
77
+ }
78
+ )
79
+ );
80
+ IconButton.displayName = "IconButton";
81
+
82
+ // src/actions/link/Link.variants.ts
83
+ var linkVariants = tv$1({
84
+ base: "inline-flex items-center transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-500 rounded-sm",
85
+ variants: {
86
+ variant: {
87
+ default: "text-brand-600 hover:text-brand-700 hover:underline",
88
+ subtle: "text-neutral-700 hover:text-neutral-900 hover:underline",
89
+ muted: "text-neutral-500 hover:text-neutral-700 hover:underline",
90
+ inherit: "text-current underline-offset-2 hover:underline"
91
+ },
92
+ size: {
93
+ sm: "text-sm",
94
+ md: "text-base",
95
+ lg: "text-lg"
96
+ }
97
+ },
98
+ defaultVariants: {
99
+ variant: "default",
100
+ size: "md"
101
+ }
102
+ });
103
+ var Link = forwardRef(
104
+ ({ className, variant, size, asChild = false, ...props }, ref) => {
105
+ const Comp = asChild ? Slot : "a";
106
+ return /* @__PURE__ */ jsx(
107
+ Comp,
108
+ {
109
+ ref,
110
+ className: cn(linkVariants({ variant, size }), className),
111
+ ...props
112
+ }
113
+ );
114
+ }
115
+ );
116
+ Link.displayName = "Link";
117
+
118
+ export { Button, IconButton, Link, buttonVariants, iconButtonVariants, linkVariants };
119
+ //# sourceMappingURL=chunk-L2RYQWZZ.js.map
120
+ //# sourceMappingURL=chunk-L2RYQWZZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/actions/button/Button.variants.ts","../src/actions/button/Button.tsx","../src/actions/iconButton/IconButton.variants.ts","../src/actions/iconButton/IconButton.tsx","../src/actions/link/Link.variants.ts","../src/actions/link/Link.tsx"],"names":["tv","forwardRef","jsx"],"mappings":"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","file":"chunk-L2RYQWZZ.js","sourcesContent":["import { tv, type VariantProps } from 'tailwind-variants';\n\nexport const buttonVariants = tv({\n base: 'inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-500 disabled:pointer-events-none disabled:opacity-50',\n variants: {\n variant: {\n primary: 'bg-brand-600 text-white hover:bg-brand-700',\n secondary: 'bg-neutral-200 text-neutral-900 hover:bg-neutral-100',\n ghost: 'bg-transparent text-neutral-900 hover:bg-neutral-100',\n },\n size: {\n sm: 'h-8 px-3 text-sm rounded-md',\n md: 'h-10 px-4 text-sm rounded-md',\n lg: 'h-12 px-6 text-base rounded-lg',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n },\n});\n\nexport type ButtonVariants = VariantProps<typeof buttonVariants>;\n","import { forwardRef, type ButtonHTMLAttributes } from 'react';\nimport { cn } from '../../utils';\nimport { buttonVariants, type ButtonVariants } from './Button.variants';\n\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement>, ButtonVariants {}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, ...props }, ref) => {\n return (\n <button\n ref={ref}\n className={cn(buttonVariants({ variant, size }), className)}\n {...props}\n />\n );\n },\n);\n\nButton.displayName = 'Button';\n","import { tv, type VariantProps } from '../../utils';\n\nexport const iconButtonVariants = tv({\n base: 'inline-flex items-center justify-center transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-500 disabled:pointer-events-none disabled:opacity-50',\n variants: {\n variant: {\n solid: 'bg-brand-600 text-white hover:bg-brand-700',\n soft: 'bg-brand-50 text-brand-700 hover:bg-brand-100',\n outline: 'border border-neutral-300 bg-white text-neutral-900 hover:bg-neutral-50',\n ghost: 'bg-transparent text-neutral-900 hover:bg-neutral-100',\n danger: 'bg-danger-600 text-white hover:bg-danger-700',\n },\n size: {\n xs: 'h-6 w-6 rounded-sm',\n sm: 'h-8 w-8 rounded-md',\n md: 'h-10 w-10 rounded-md',\n lg: 'h-12 w-12 rounded-lg',\n },\n shape: {\n square: '',\n circle: 'rounded-full',\n },\n },\n defaultVariants: {\n variant: 'ghost',\n size: 'md',\n shape: 'square',\n },\n});\n\nexport type IconButtonVariants = VariantProps<typeof iconButtonVariants>;\n","import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from 'react';\nimport { cn } from '../../utils';\nimport { iconButtonVariants, type IconButtonVariants } from './IconButton.variants';\n\nexport interface IconButtonProps\n extends ButtonHTMLAttributes<HTMLButtonElement>,\n IconButtonVariants {\n /** REQUIRED accessible label. IconButton has no visible text. */\n 'aria-label': string;\n children: ReactNode;\n}\n\n/**\n * Square / circular button containing only an icon. `aria-label` is\n * required by the type — there is no visible text fallback.\n */\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(\n ({ className, variant, size, shape, type = 'button', ...props }, ref) => (\n <button\n ref={ref}\n type={type}\n className={cn(iconButtonVariants({ variant, size, shape }), className)}\n {...props}\n />\n ),\n);\nIconButton.displayName = 'IconButton';\n","import { tv, type VariantProps } from '../../utils';\n\nexport const linkVariants = tv({\n base: 'inline-flex items-center transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-500 rounded-sm',\n variants: {\n variant: {\n default: 'text-brand-600 hover:text-brand-700 hover:underline',\n subtle: 'text-neutral-700 hover:text-neutral-900 hover:underline',\n muted: 'text-neutral-500 hover:text-neutral-700 hover:underline',\n inherit: 'text-current underline-offset-2 hover:underline',\n },\n size: {\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n});\n\nexport type LinkVariants = VariantProps<typeof linkVariants>;\n","import { forwardRef, type AnchorHTMLAttributes } from 'react';\nimport { cn } from '../../utils';\nimport { Slot } from '../../primitives/slot/Slot';\nimport { linkVariants, type LinkVariants } from './Link.variants';\n\nexport interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement>, LinkVariants {\n /** When true, render the child element as the link instead of an `<a>`.\n * Use for router `<Link>` components from Next.js / React Router. */\n asChild?: boolean;\n}\n\n/**\n * Anchor with consistent focus / hover styling. Pass `asChild` to render a\n * router `<Link>` while inheriting our visuals.\n */\nexport const Link = forwardRef<HTMLAnchorElement, LinkProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a';\n return (\n <Comp\n ref={ref}\n className={cn(linkVariants({ variant, size }), className)}\n {...(props as AnchorHTMLAttributes<HTMLAnchorElement>)}\n />\n );\n },\n);\nLink.displayName = 'Link';\n"]}
@@ -0,0 +1,318 @@
1
+ import { Icon } from './chunk-TDX22OWF.js';
2
+ import { tv } from './chunk-BMBIZLO4.js';
3
+ import { cn } from './chunk-KZ4VFY2T.js';
4
+ import { forwardRef, useState } from 'react';
5
+ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
6
+ import { X } from 'lucide-react';
7
+
8
+ // src/display/heading/Heading.variants.ts
9
+ var headingVariants = tv({
10
+ base: "font-semibold tracking-tight text-neutral-900",
11
+ variants: {
12
+ size: {
13
+ xs: "text-sm",
14
+ sm: "text-base",
15
+ md: "text-lg",
16
+ lg: "text-xl",
17
+ xl: "text-2xl",
18
+ "2xl": "text-3xl",
19
+ "3xl": "text-4xl",
20
+ "4xl": "text-5xl"
21
+ },
22
+ weight: {
23
+ normal: "font-normal",
24
+ medium: "font-medium",
25
+ semibold: "font-semibold",
26
+ bold: "font-bold"
27
+ },
28
+ align: {
29
+ left: "text-left",
30
+ center: "text-center",
31
+ right: "text-right"
32
+ }
33
+ },
34
+ defaultVariants: {
35
+ size: "lg",
36
+ weight: "semibold"
37
+ }
38
+ });
39
+ var Heading = forwardRef(
40
+ ({ level = 2, className, size, weight, align, ...props }, ref) => {
41
+ const Tag2 = `h${level}`;
42
+ return /* @__PURE__ */ jsx(
43
+ Tag2,
44
+ {
45
+ ref,
46
+ className: cn(headingVariants({ size, weight, align }), className),
47
+ ...props
48
+ }
49
+ );
50
+ }
51
+ );
52
+ Heading.displayName = "Heading";
53
+
54
+ // src/display/text/Text.variants.ts
55
+ var textVariants = tv({
56
+ base: "",
57
+ variants: {
58
+ size: {
59
+ xs: "text-xs",
60
+ sm: "text-sm",
61
+ md: "text-base",
62
+ lg: "text-lg",
63
+ xl: "text-xl"
64
+ },
65
+ weight: {
66
+ normal: "font-normal",
67
+ medium: "font-medium",
68
+ semibold: "font-semibold",
69
+ bold: "font-bold"
70
+ },
71
+ color: {
72
+ default: "text-neutral-900",
73
+ muted: "text-neutral-500",
74
+ subtle: "text-neutral-400",
75
+ brand: "text-brand-600",
76
+ success: "text-success-600",
77
+ warning: "text-warning-600",
78
+ danger: "text-danger-600"
79
+ },
80
+ align: {
81
+ left: "text-left",
82
+ center: "text-center",
83
+ right: "text-right",
84
+ justify: "text-justify"
85
+ },
86
+ truncate: {
87
+ true: "truncate"
88
+ }
89
+ },
90
+ defaultVariants: {
91
+ size: "md",
92
+ weight: "normal",
93
+ color: "default"
94
+ }
95
+ });
96
+ var Text = forwardRef(
97
+ ({ as: Component = "p", className, size, weight, color, align, truncate, ...props }, ref) => /* @__PURE__ */ jsx(
98
+ Component,
99
+ {
100
+ ref,
101
+ className: cn(textVariants({ size, weight, color, align, truncate }), className),
102
+ ...props
103
+ }
104
+ )
105
+ );
106
+ Text.displayName = "Text";
107
+
108
+ // src/display/code/Code.variants.ts
109
+ var codeVariants = tv({
110
+ base: "font-mono text-sm",
111
+ variants: {
112
+ variant: {
113
+ inline: "rounded-sm bg-neutral-100 px-1 py-0.5 text-neutral-900",
114
+ block: "block w-full overflow-x-auto rounded-md bg-neutral-100 p-4 text-neutral-900"
115
+ }
116
+ },
117
+ defaultVariants: {
118
+ variant: "inline"
119
+ }
120
+ });
121
+ var Code = forwardRef(
122
+ ({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx("code", { ref, className: cn(codeVariants({ variant }), className), ...props })
123
+ );
124
+ Code.displayName = "Code";
125
+ var Kbd = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
126
+ "kbd",
127
+ {
128
+ ref,
129
+ className: cn(
130
+ "inline-flex h-5 min-w-5 items-center justify-center rounded-sm border border-neutral-300",
131
+ "bg-neutral-100 px-1.5 font-mono text-xs text-neutral-700 shadow-[inset_0_-1px_0_0_rgb(0_0_0/0.05)]",
132
+ className
133
+ ),
134
+ ...props
135
+ }
136
+ ));
137
+ Kbd.displayName = "Kbd";
138
+ var Image = forwardRef(
139
+ ({ fallback, onError, alt = "", className, ...props }, ref) => {
140
+ const [errored, setErrored] = useState(false);
141
+ if (errored && fallback !== void 0) return /* @__PURE__ */ jsx(Fragment, { children: fallback });
142
+ return /* @__PURE__ */ jsx(
143
+ "img",
144
+ {
145
+ ref,
146
+ alt,
147
+ className: cn("block max-w-full", className),
148
+ onError: (e) => {
149
+ setErrored(true);
150
+ onError?.(e);
151
+ },
152
+ ...props
153
+ }
154
+ );
155
+ }
156
+ );
157
+ Image.displayName = "Image";
158
+
159
+ // src/display/avatar/Avatar.variants.ts
160
+ var avatarVariants = tv({
161
+ base: "inline-flex shrink-0 select-none items-center justify-center overflow-hidden rounded-full bg-neutral-200 text-neutral-700 font-medium",
162
+ variants: {
163
+ size: {
164
+ xs: "h-6 w-6 text-xs",
165
+ sm: "h-8 w-8 text-sm",
166
+ md: "h-10 w-10 text-base",
167
+ lg: "h-12 w-12 text-lg",
168
+ xl: "h-16 w-16 text-xl",
169
+ "2xl": "h-20 w-20 text-2xl"
170
+ },
171
+ shape: {
172
+ circle: "rounded-full",
173
+ square: "rounded-md"
174
+ }
175
+ },
176
+ defaultVariants: {
177
+ size: "md",
178
+ shape: "circle"
179
+ }
180
+ });
181
+ function getInitials(name) {
182
+ const parts = name.trim().split(/\s+/);
183
+ if (parts.length === 0) return "";
184
+ const first = parts[0]?.[0] ?? "";
185
+ const last = parts.length > 1 ? parts[parts.length - 1]?.[0] ?? "" : "";
186
+ return (first + last).toUpperCase();
187
+ }
188
+ var Avatar = forwardRef(
189
+ ({ src, name = "", fallback, alt, className, size, shape, ...props }, ref) => {
190
+ const [errored, setErrored] = useState(false);
191
+ const showImage = src && !errored;
192
+ return /* @__PURE__ */ jsx(
193
+ "span",
194
+ {
195
+ ref,
196
+ className: cn(avatarVariants({ size, shape }), className),
197
+ ...props,
198
+ children: showImage ? /* @__PURE__ */ jsx(
199
+ "img",
200
+ {
201
+ src,
202
+ alt: alt ?? name,
203
+ className: "h-full w-full object-cover",
204
+ onError: () => setErrored(true)
205
+ }
206
+ ) : fallback ?? getInitials(name)
207
+ }
208
+ );
209
+ }
210
+ );
211
+ Avatar.displayName = "Avatar";
212
+
213
+ // src/display/badge/Badge.variants.ts
214
+ var badgeVariants = tv({
215
+ base: "inline-flex items-center rounded-full font-medium",
216
+ variants: {
217
+ variant: {
218
+ neutral: "bg-neutral-100 text-neutral-800",
219
+ brand: "bg-brand-100 text-brand-800",
220
+ success: "bg-success-100 text-success-700",
221
+ warning: "bg-warning-100 text-warning-700",
222
+ danger: "bg-danger-100 text-danger-700",
223
+ info: "bg-info-100 text-info-700",
224
+ outline: "border border-neutral-300 text-neutral-800"
225
+ },
226
+ size: {
227
+ sm: "h-5 px-2 text-xs",
228
+ md: "h-6 px-2.5 text-xs",
229
+ lg: "h-7 px-3 text-sm"
230
+ }
231
+ },
232
+ defaultVariants: {
233
+ variant: "neutral",
234
+ size: "md"
235
+ }
236
+ });
237
+ var Badge = forwardRef(
238
+ ({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx("span", { ref, className: cn(badgeVariants({ variant, size }), className), ...props })
239
+ );
240
+ Badge.displayName = "Badge";
241
+
242
+ // src/display/tag/Tag.variants.ts
243
+ var tagVariants = tv({
244
+ base: "inline-flex items-center gap-1 rounded-md border border-neutral-200 bg-white px-2 py-0.5 text-xs font-medium text-neutral-800",
245
+ variants: {
246
+ variant: {
247
+ neutral: "",
248
+ brand: "border-brand-200 bg-brand-50 text-brand-800",
249
+ success: "border-success-100 bg-success-50 text-success-700",
250
+ warning: "border-warning-100 bg-warning-50 text-warning-700",
251
+ danger: "border-danger-100 bg-danger-50 text-danger-700",
252
+ info: "border-info-100 bg-info-50 text-info-700"
253
+ }
254
+ },
255
+ defaultVariants: {
256
+ variant: "neutral"
257
+ }
258
+ });
259
+ var Tag = forwardRef(
260
+ ({ children, onClose, closeLabel = "Remove", variant, className, ...props }, ref) => /* @__PURE__ */ jsxs("span", { ref, className: cn(tagVariants({ variant }), className), ...props, children: [
261
+ children,
262
+ onClose && /* @__PURE__ */ jsx(
263
+ "button",
264
+ {
265
+ type: "button",
266
+ "aria-label": closeLabel,
267
+ onClick: onClose,
268
+ className: "-mr-1 inline-flex h-4 w-4 items-center justify-center rounded-sm text-neutral-500 hover:bg-neutral-100 hover:text-neutral-900 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-brand-500",
269
+ children: /* @__PURE__ */ jsx(Icon, { icon: X, size: 12 })
270
+ }
271
+ )
272
+ ] })
273
+ );
274
+ Tag.displayName = "Tag";
275
+ var Separator = forwardRef(
276
+ ({ orientation = "horizontal", decorative = true, className, ...props }, ref) => /* @__PURE__ */ jsx(
277
+ "div",
278
+ {
279
+ ref,
280
+ role: decorative ? "none" : "separator",
281
+ "aria-orientation": decorative ? void 0 : orientation,
282
+ className: cn(
283
+ "bg-neutral-200",
284
+ orientation === "horizontal" ? "h-px w-full" : "w-px self-stretch",
285
+ className
286
+ ),
287
+ ...props
288
+ }
289
+ )
290
+ );
291
+ Separator.displayName = "Separator";
292
+ var Mark = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
293
+ "mark",
294
+ {
295
+ ref,
296
+ className: cn("rounded-sm bg-warning-100 px-0.5 text-warning-900", className),
297
+ ...props
298
+ }
299
+ ));
300
+ Mark.displayName = "Mark";
301
+ var Quote = forwardRef(
302
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
303
+ "blockquote",
304
+ {
305
+ ref,
306
+ className: cn(
307
+ "border-l-4 border-neutral-200 pl-4 italic text-neutral-700",
308
+ className
309
+ ),
310
+ ...props
311
+ }
312
+ )
313
+ );
314
+ Quote.displayName = "Quote";
315
+
316
+ export { Avatar, Badge, Code, Heading, Image, Kbd, Mark, Quote, Separator, Tag, Text, avatarVariants, badgeVariants, codeVariants, headingVariants, tagVariants, textVariants };
317
+ //# sourceMappingURL=chunk-MP4OTUFA.js.map
318
+ //# sourceMappingURL=chunk-MP4OTUFA.js.map