@wow-two-beta/ui 0.0.6 → 0.0.8

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 (307) hide show
  1. package/dist/actions/button/Button.variants.d.ts +2 -2
  2. package/dist/actions/buttonGroup/ButtonGroup.d.ts +14 -0
  3. package/dist/actions/buttonGroup/ButtonGroup.d.ts.map +1 -0
  4. package/dist/actions/buttonGroup/index.d.ts +2 -0
  5. package/dist/actions/buttonGroup/index.d.ts.map +1 -0
  6. package/dist/actions/copyButton/CopyButton.d.ts +20 -0
  7. package/dist/actions/copyButton/CopyButton.d.ts.map +1 -0
  8. package/dist/actions/copyButton/index.d.ts +2 -0
  9. package/dist/actions/copyButton/index.d.ts.map +1 -0
  10. package/dist/actions/disclosureButton/DisclosureButton.d.ts +20 -0
  11. package/dist/actions/disclosureButton/DisclosureButton.d.ts.map +1 -0
  12. package/dist/actions/disclosureButton/index.d.ts +2 -0
  13. package/dist/actions/disclosureButton/index.d.ts.map +1 -0
  14. package/dist/actions/fab/FAB.d.ts +13 -0
  15. package/dist/actions/fab/FAB.d.ts.map +1 -0
  16. package/dist/actions/fab/FAB.variants.d.ts +130 -0
  17. package/dist/actions/fab/FAB.variants.d.ts.map +1 -0
  18. package/dist/actions/fab/index.d.ts +3 -0
  19. package/dist/actions/fab/index.d.ts.map +1 -0
  20. package/dist/actions/iconButton/IconButton.variants.d.ts +2 -2
  21. package/dist/actions/index.d.ts +8 -0
  22. package/dist/actions/index.d.ts.map +1 -1
  23. package/dist/actions/index.js +4 -1
  24. package/dist/actions/link/Link.variants.d.ts +2 -2
  25. package/dist/actions/overlayButton/OverlayButton.d.ts +16 -0
  26. package/dist/actions/overlayButton/OverlayButton.d.ts.map +1 -0
  27. package/dist/actions/overlayButton/OverlayButton.variants.d.ts +123 -0
  28. package/dist/actions/overlayButton/OverlayButton.variants.d.ts.map +1 -0
  29. package/dist/actions/overlayButton/index.d.ts +3 -0
  30. package/dist/actions/overlayButton/index.d.ts.map +1 -0
  31. package/dist/actions/segmentedControl/SegmentedControl.d.ts +9 -0
  32. package/dist/actions/segmentedControl/SegmentedControl.d.ts.map +1 -0
  33. package/dist/actions/segmentedControl/index.d.ts +2 -0
  34. package/dist/actions/segmentedControl/index.d.ts.map +1 -0
  35. package/dist/actions/toggleButton/ToggleButton.d.ts +16 -0
  36. package/dist/actions/toggleButton/ToggleButton.d.ts.map +1 -0
  37. package/dist/actions/toggleButton/ToggleButton.variants.d.ts +81 -0
  38. package/dist/actions/toggleButton/ToggleButton.variants.d.ts.map +1 -0
  39. package/dist/actions/toggleButton/index.d.ts +3 -0
  40. package/dist/actions/toggleButton/index.d.ts.map +1 -0
  41. package/dist/actions/toggleButtonGroup/ToggleButtonGroup.d.ts +25 -0
  42. package/dist/actions/toggleButtonGroup/ToggleButtonGroup.d.ts.map +1 -0
  43. package/dist/actions/toggleButtonGroup/index.d.ts +2 -0
  44. package/dist/actions/toggleButtonGroup/index.d.ts.map +1 -0
  45. package/dist/{chunk-6NYTRHP7.js → chunk-4P2TFUVW.js} +39 -5
  46. package/dist/chunk-4P2TFUVW.js.map +1 -0
  47. package/dist/chunk-7SGLT2LM.js +774 -0
  48. package/dist/chunk-7SGLT2LM.js.map +1 -0
  49. package/dist/chunk-D5CHR6RX.js +423 -0
  50. package/dist/chunk-D5CHR6RX.js.map +1 -0
  51. package/dist/{chunk-77WSI427.js → chunk-KDXJQNB6.js} +9 -5
  52. package/dist/chunk-KDXJQNB6.js.map +1 -0
  53. package/dist/chunk-L32PXXQL.js +126 -0
  54. package/dist/chunk-L32PXXQL.js.map +1 -0
  55. package/dist/{chunk-SYG6ZE42.js → chunk-NKGNOOXJ.js} +116 -4
  56. package/dist/chunk-NKGNOOXJ.js.map +1 -0
  57. package/dist/chunk-RIW2V3N4.js +596 -0
  58. package/dist/chunk-RIW2V3N4.js.map +1 -0
  59. package/dist/{chunk-JCMV6IT4.js → chunk-SL5YJADS.js} +4 -4
  60. package/dist/{chunk-JCMV6IT4.js.map → chunk-SL5YJADS.js.map} +1 -1
  61. package/dist/{chunk-Q27NAHVB.js → chunk-WEM32VIJ.js} +3 -3
  62. package/dist/{chunk-Q27NAHVB.js.map → chunk-WEM32VIJ.js.map} +1 -1
  63. package/dist/chunk-X2LTOZ7F.js +1119 -0
  64. package/dist/chunk-X2LTOZ7F.js.map +1 -0
  65. package/dist/display/avatar/Avatar.variants.d.ts +2 -2
  66. package/dist/display/avatarGroup/AvatarGroup.d.ts +16 -0
  67. package/dist/display/avatarGroup/AvatarGroup.d.ts.map +1 -0
  68. package/dist/display/avatarGroup/index.d.ts +2 -0
  69. package/dist/display/avatarGroup/index.d.ts.map +1 -0
  70. package/dist/display/badgeOverlay/BadgeOverlay.d.ts +18 -0
  71. package/dist/display/badgeOverlay/BadgeOverlay.d.ts.map +1 -0
  72. package/dist/display/badgeOverlay/index.d.ts +2 -0
  73. package/dist/display/badgeOverlay/index.d.ts.map +1 -0
  74. package/dist/display/card/Card.d.ts +20 -0
  75. package/dist/display/card/Card.d.ts.map +1 -0
  76. package/dist/display/card/index.d.ts +2 -0
  77. package/dist/display/card/index.d.ts.map +1 -0
  78. package/dist/display/countBadge/CountBadge.d.ts +18 -0
  79. package/dist/display/countBadge/CountBadge.d.ts.map +1 -0
  80. package/dist/display/countBadge/index.d.ts +2 -0
  81. package/dist/display/countBadge/index.d.ts.map +1 -0
  82. package/dist/display/descriptionList/DescriptionList.d.ts +18 -0
  83. package/dist/display/descriptionList/DescriptionList.d.ts.map +1 -0
  84. package/dist/display/descriptionList/index.d.ts +2 -0
  85. package/dist/display/descriptionList/index.d.ts.map +1 -0
  86. package/dist/display/emptyState/EmptyState.d.ts +19 -0
  87. package/dist/display/emptyState/EmptyState.d.ts.map +1 -0
  88. package/dist/display/emptyState/index.d.ts +2 -0
  89. package/dist/display/emptyState/index.d.ts.map +1 -0
  90. package/dist/display/heading/Heading.variants.d.ts +2 -2
  91. package/dist/display/highlight/Highlight.d.ts +16 -0
  92. package/dist/display/highlight/Highlight.d.ts.map +1 -0
  93. package/dist/display/highlight/index.d.ts +2 -0
  94. package/dist/display/highlight/index.d.ts.map +1 -0
  95. package/dist/display/index.d.ts +15 -0
  96. package/dist/display/index.d.ts.map +1 -1
  97. package/dist/display/index.js +7 -2
  98. package/dist/display/infoRow/InfoRow.d.ts +16 -0
  99. package/dist/display/infoRow/InfoRow.d.ts.map +1 -0
  100. package/dist/display/infoRow/index.d.ts +2 -0
  101. package/dist/display/infoRow/index.d.ts.map +1 -0
  102. package/dist/display/keyboardShortcut/KeyboardShortcut.d.ts +13 -0
  103. package/dist/display/keyboardShortcut/KeyboardShortcut.d.ts.map +1 -0
  104. package/dist/display/keyboardShortcut/index.d.ts +2 -0
  105. package/dist/display/keyboardShortcut/index.d.ts.map +1 -0
  106. package/dist/display/notificationDot/NotificationDot.d.ts +15 -0
  107. package/dist/display/notificationDot/NotificationDot.d.ts.map +1 -0
  108. package/dist/display/notificationDot/index.d.ts +2 -0
  109. package/dist/display/notificationDot/index.d.ts.map +1 -0
  110. package/dist/display/sectionHeader/SectionHeader.d.ts +21 -0
  111. package/dist/display/sectionHeader/SectionHeader.d.ts.map +1 -0
  112. package/dist/display/sectionHeader/index.d.ts +2 -0
  113. package/dist/display/sectionHeader/index.d.ts.map +1 -0
  114. package/dist/display/snippet/Snippet.d.ts +15 -0
  115. package/dist/display/snippet/Snippet.d.ts.map +1 -0
  116. package/dist/display/snippet/index.d.ts +2 -0
  117. package/dist/display/snippet/index.d.ts.map +1 -0
  118. package/dist/display/stat/Stat.d.ts +22 -0
  119. package/dist/display/stat/Stat.d.ts.map +1 -0
  120. package/dist/display/stat/index.d.ts +2 -0
  121. package/dist/display/stat/index.d.ts.map +1 -0
  122. package/dist/display/status/Status.d.ts +14 -0
  123. package/dist/display/status/Status.d.ts.map +1 -0
  124. package/dist/display/status/index.d.ts +2 -0
  125. package/dist/display/status/index.d.ts.map +1 -0
  126. package/dist/display/tag/Tag.variants.d.ts +2 -2
  127. package/dist/display/tooltip/Tooltip.d.ts +25 -0
  128. package/dist/display/tooltip/Tooltip.d.ts.map +1 -0
  129. package/dist/display/tooltip/index.d.ts +2 -0
  130. package/dist/display/tooltip/index.d.ts.map +1 -0
  131. package/dist/feedback/alert/Alert.d.ts +22 -0
  132. package/dist/feedback/alert/Alert.d.ts.map +1 -0
  133. package/dist/feedback/alert/index.d.ts +2 -0
  134. package/dist/feedback/alert/index.d.ts.map +1 -0
  135. package/dist/feedback/banner/Banner.d.ts +16 -0
  136. package/dist/feedback/banner/Banner.d.ts.map +1 -0
  137. package/dist/feedback/banner/index.d.ts +2 -0
  138. package/dist/feedback/banner/index.d.ts.map +1 -0
  139. package/dist/feedback/callout/Callout.d.ts +13 -0
  140. package/dist/feedback/callout/Callout.d.ts.map +1 -0
  141. package/dist/feedback/callout/index.d.ts +2 -0
  142. package/dist/feedback/callout/index.d.ts.map +1 -0
  143. package/dist/feedback/index.d.ts +10 -0
  144. package/dist/feedback/index.d.ts.map +1 -1
  145. package/dist/feedback/index.js +2 -1
  146. package/dist/feedback/inlineSpinner/InlineSpinner.d.ts +14 -0
  147. package/dist/feedback/inlineSpinner/InlineSpinner.d.ts.map +1 -0
  148. package/dist/feedback/inlineSpinner/index.d.ts +2 -0
  149. package/dist/feedback/inlineSpinner/index.d.ts.map +1 -0
  150. package/dist/feedback/loadingState/LoadingState.d.ts +15 -0
  151. package/dist/feedback/loadingState/LoadingState.d.ts.map +1 -0
  152. package/dist/feedback/loadingState/index.d.ts +2 -0
  153. package/dist/feedback/loadingState/index.d.ts.map +1 -0
  154. package/dist/feedback/meterBar/MeterBar.d.ts +18 -0
  155. package/dist/feedback/meterBar/MeterBar.d.ts.map +1 -0
  156. package/dist/feedback/meterBar/index.d.ts +2 -0
  157. package/dist/feedback/meterBar/index.d.ts.map +1 -0
  158. package/dist/feedback/progressBar/ProgressBar.variants.d.ts +2 -2
  159. package/dist/feedback/progressSteps/ProgressSteps.d.ts +16 -0
  160. package/dist/feedback/progressSteps/ProgressSteps.d.ts.map +1 -0
  161. package/dist/feedback/progressSteps/index.d.ts +2 -0
  162. package/dist/feedback/progressSteps/index.d.ts.map +1 -0
  163. package/dist/feedback/skeleton/Skeleton.variants.d.ts +2 -2
  164. package/dist/feedback/statusIndicator/StatusIndicator.d.ts +17 -0
  165. package/dist/feedback/statusIndicator/StatusIndicator.d.ts.map +1 -0
  166. package/dist/feedback/statusIndicator/index.d.ts +2 -0
  167. package/dist/feedback/statusIndicator/index.d.ts.map +1 -0
  168. package/dist/feedback/toast/Toast.d.ts +16 -0
  169. package/dist/feedback/toast/Toast.d.ts.map +1 -0
  170. package/dist/feedback/toast/index.d.ts +2 -0
  171. package/dist/feedback/toast/index.d.ts.map +1 -0
  172. package/dist/feedback/toastSimple/ToastSimple.variants.d.ts +2 -2
  173. package/dist/feedback/trendIndicator/TrendIndicator.d.ts +18 -0
  174. package/dist/feedback/trendIndicator/TrendIndicator.d.ts.map +1 -0
  175. package/dist/feedback/trendIndicator/index.d.ts +2 -0
  176. package/dist/feedback/trendIndicator/index.d.ts.map +1 -0
  177. package/dist/forms/_styles.d.ts +2 -2
  178. package/dist/forms/characterCount/CharacterCount.d.ts +15 -0
  179. package/dist/forms/characterCount/CharacterCount.d.ts.map +1 -0
  180. package/dist/forms/characterCount/index.d.ts +2 -0
  181. package/dist/forms/characterCount/index.d.ts.map +1 -0
  182. package/dist/forms/checkboxField/CheckboxField.d.ts +16 -0
  183. package/dist/forms/checkboxField/CheckboxField.d.ts.map +1 -0
  184. package/dist/forms/checkboxField/index.d.ts +2 -0
  185. package/dist/forms/checkboxField/index.d.ts.map +1 -0
  186. package/dist/forms/checkboxGroup/CheckboxGroup.d.ts +24 -0
  187. package/dist/forms/checkboxGroup/CheckboxGroup.d.ts.map +1 -0
  188. package/dist/forms/checkboxGroup/index.d.ts +2 -0
  189. package/dist/forms/checkboxGroup/index.d.ts.map +1 -0
  190. package/dist/forms/choiceCard/ChoiceCard.d.ts +17 -0
  191. package/dist/forms/choiceCard/ChoiceCard.d.ts.map +1 -0
  192. package/dist/forms/choiceCard/index.d.ts +2 -0
  193. package/dist/forms/choiceCard/index.d.ts.map +1 -0
  194. package/dist/forms/currencyInput/CurrencyInput.d.ts +11 -0
  195. package/dist/forms/currencyInput/CurrencyInput.d.ts.map +1 -0
  196. package/dist/forms/currencyInput/index.d.ts +2 -0
  197. package/dist/forms/currencyInput/index.d.ts.map +1 -0
  198. package/dist/forms/filePicker/FilePicker.d.ts +18 -0
  199. package/dist/forms/filePicker/FilePicker.d.ts.map +1 -0
  200. package/dist/forms/filePicker/index.d.ts +2 -0
  201. package/dist/forms/filePicker/index.d.ts.map +1 -0
  202. package/dist/forms/formField/FormField.d.ts +24 -0
  203. package/dist/forms/formField/FormField.d.ts.map +1 -0
  204. package/dist/forms/formField/index.d.ts +2 -0
  205. package/dist/forms/formField/index.d.ts.map +1 -0
  206. package/dist/forms/index.d.ts +17 -0
  207. package/dist/forms/index.d.ts.map +1 -1
  208. package/dist/forms/index.js +5 -4
  209. package/dist/forms/inputAddon/InputAddon.d.ts +16 -0
  210. package/dist/forms/inputAddon/InputAddon.d.ts.map +1 -0
  211. package/dist/forms/inputAddon/index.d.ts +2 -0
  212. package/dist/forms/inputAddon/index.d.ts.map +1 -0
  213. package/dist/forms/inputGroup/InputGroup.d.ts +11 -0
  214. package/dist/forms/inputGroup/InputGroup.d.ts.map +1 -0
  215. package/dist/forms/inputGroup/index.d.ts +2 -0
  216. package/dist/forms/inputGroup/index.d.ts.map +1 -0
  217. package/dist/forms/labeledInput/LabeledInput.d.ts +17 -0
  218. package/dist/forms/labeledInput/LabeledInput.d.ts.map +1 -0
  219. package/dist/forms/labeledInput/index.d.ts +2 -0
  220. package/dist/forms/labeledInput/index.d.ts.map +1 -0
  221. package/dist/forms/maskedInput/MaskedInput.d.ts +17 -0
  222. package/dist/forms/maskedInput/MaskedInput.d.ts.map +1 -0
  223. package/dist/forms/maskedInput/index.d.ts +2 -0
  224. package/dist/forms/maskedInput/index.d.ts.map +1 -0
  225. package/dist/forms/passwordStrength/PasswordStrength.d.ts +15 -0
  226. package/dist/forms/passwordStrength/PasswordStrength.d.ts.map +1 -0
  227. package/dist/forms/passwordStrength/index.d.ts +2 -0
  228. package/dist/forms/passwordStrength/index.d.ts.map +1 -0
  229. package/dist/forms/percentInput/PercentInput.d.ts +8 -0
  230. package/dist/forms/percentInput/PercentInput.d.ts.map +1 -0
  231. package/dist/forms/percentInput/index.d.ts +2 -0
  232. package/dist/forms/percentInput/index.d.ts.map +1 -0
  233. package/dist/forms/pinInput/PinInput.d.ts +26 -0
  234. package/dist/forms/pinInput/PinInput.d.ts.map +1 -0
  235. package/dist/forms/pinInput/index.d.ts +2 -0
  236. package/dist/forms/pinInput/index.d.ts.map +1 -0
  237. package/dist/forms/radioField/RadioField.d.ts +12 -0
  238. package/dist/forms/radioField/RadioField.d.ts.map +1 -0
  239. package/dist/forms/radioField/index.d.ts +2 -0
  240. package/dist/forms/radioField/index.d.ts.map +1 -0
  241. package/dist/forms/radioGroup/RadioGroup.d.ts +19 -0
  242. package/dist/forms/radioGroup/RadioGroup.d.ts.map +1 -0
  243. package/dist/forms/radioGroup/index.d.ts +2 -0
  244. package/dist/forms/radioGroup/index.d.ts.map +1 -0
  245. package/dist/forms/switchField/SwitchField.d.ts +15 -0
  246. package/dist/forms/switchField/SwitchField.d.ts.map +1 -0
  247. package/dist/forms/switchField/index.d.ts +2 -0
  248. package/dist/forms/switchField/index.d.ts.map +1 -0
  249. package/dist/hooks/index.d.ts +1 -0
  250. package/dist/hooks/index.d.ts.map +1 -1
  251. package/dist/hooks/index.js +2 -3
  252. package/dist/hooks/useClipboard.d.ts +21 -0
  253. package/dist/hooks/useClipboard.d.ts.map +1 -0
  254. package/dist/index.css +112 -5
  255. package/dist/index.d.ts +1 -0
  256. package/dist/index.d.ts.map +1 -1
  257. package/dist/index.js +11 -11
  258. package/dist/layout/cluster/Cluster.d.ts +13 -0
  259. package/dist/layout/cluster/Cluster.d.ts.map +1 -0
  260. package/dist/layout/cluster/index.d.ts +2 -0
  261. package/dist/layout/cluster/index.d.ts.map +1 -0
  262. package/dist/layout/frame/Frame.d.ts +17 -0
  263. package/dist/layout/frame/Frame.d.ts.map +1 -0
  264. package/dist/layout/frame/index.d.ts +2 -0
  265. package/dist/layout/frame/index.d.ts.map +1 -0
  266. package/dist/layout/index.d.ts +4 -0
  267. package/dist/layout/index.d.ts.map +1 -1
  268. package/dist/layout/index.js +1 -1
  269. package/dist/layout/inline/Inline.d.ts +13 -0
  270. package/dist/layout/inline/Inline.d.ts.map +1 -0
  271. package/dist/layout/inline/index.d.ts +2 -0
  272. package/dist/layout/inline/index.d.ts.map +1 -0
  273. package/dist/layout/twoColumn/TwoColumn.d.ts +19 -0
  274. package/dist/layout/twoColumn/TwoColumn.d.ts.map +1 -0
  275. package/dist/layout/twoColumn/index.d.ts +2 -0
  276. package/dist/layout/twoColumn/index.d.ts.map +1 -0
  277. package/dist/nav/breadcrumb/Breadcrumb.d.ts +18 -0
  278. package/dist/nav/breadcrumb/Breadcrumb.d.ts.map +1 -0
  279. package/dist/nav/breadcrumb/index.d.ts +2 -0
  280. package/dist/nav/breadcrumb/index.d.ts.map +1 -0
  281. package/dist/nav/index.d.ts +4 -0
  282. package/dist/nav/index.d.ts.map +1 -0
  283. package/dist/nav/index.js +12 -0
  284. package/dist/nav/index.js.map +1 -0
  285. package/dist/nav/navItem/NavItem.d.ts +22 -0
  286. package/dist/nav/navItem/NavItem.d.ts.map +1 -0
  287. package/dist/nav/navItem/index.d.ts +2 -0
  288. package/dist/nav/navItem/index.d.ts.map +1 -0
  289. package/dist/nav/pagination/Pagination.d.ts +19 -0
  290. package/dist/nav/pagination/Pagination.d.ts.map +1 -0
  291. package/dist/nav/pagination/index.d.ts +2 -0
  292. package/dist/nav/pagination/index.d.ts.map +1 -0
  293. package/dist/primitives/index.js +3 -4
  294. package/package.json +5 -1
  295. package/dist/chunk-6NYTRHP7.js.map +0 -1
  296. package/dist/chunk-77WSI427.js.map +0 -1
  297. package/dist/chunk-JTJEI6MF.js +0 -11
  298. package/dist/chunk-JTJEI6MF.js.map +0 -1
  299. package/dist/chunk-L2RYQWZZ.js +0 -120
  300. package/dist/chunk-L2RYQWZZ.js.map +0 -1
  301. package/dist/chunk-MP4OTUFA.js +0 -318
  302. package/dist/chunk-MP4OTUFA.js.map +0 -1
  303. package/dist/chunk-NJZS7RIH.js +0 -604
  304. package/dist/chunk-NJZS7RIH.js.map +0 -1
  305. package/dist/chunk-SYG6ZE42.js.map +0 -1
  306. package/dist/chunk-YLN7VMYU.js +0 -275
  307. package/dist/chunk-YLN7VMYU.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/display/heading/Heading.variants.ts","../src/display/heading/Heading.tsx","../src/display/text/Text.variants.ts","../src/display/text/Text.tsx","../src/display/code/Code.variants.ts","../src/display/code/Code.tsx","../src/display/kbd/Kbd.tsx","../src/display/image/Image.tsx","../src/display/avatar/Avatar.variants.ts","../src/display/avatar/Avatar.tsx","../src/display/badge/Badge.variants.ts","../src/display/badge/Badge.tsx","../src/display/tag/Tag.variants.ts","../src/display/tag/Tag.tsx","../src/display/separator/Separator.tsx","../src/display/mark/Mark.tsx","../src/display/quote/Quote.tsx","../src/display/card/Card.tsx","../src/display/avatarGroup/AvatarGroup.tsx","../src/display/tooltip/Tooltip.tsx","../src/display/emptyState/EmptyState.tsx","../src/display/stat/Stat.tsx","../src/display/snippet/Snippet.tsx","../src/display/notificationDot/NotificationDot.tsx","../src/display/countBadge/CountBadge.tsx","../src/display/status/Status.tsx","../src/display/keyboardShortcut/KeyboardShortcut.tsx","../src/display/descriptionList/DescriptionList.tsx","../src/display/infoRow/InfoRow.tsx","../src/display/badgeOverlay/BadgeOverlay.tsx","../src/display/sectionHeader/SectionHeader.tsx","../src/display/highlight/Highlight.tsx"],"names":["Tag","forwardRef","jsx","useState","jsxs","isValidElement","Fragment","SIZE","TONE","POS"],"mappings":"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","file":"chunk-7SGLT2LM.js","sourcesContent":["import { tv, type VariantProps } from '../../utils';\n\nexport const headingVariants = tv({\n base: 'font-semibold tracking-tight text-foreground',\n variants: {\n size: {\n xs: 'text-sm',\n sm: 'text-base',\n md: 'text-lg',\n lg: 'text-xl',\n xl: 'text-2xl',\n '2xl': 'text-3xl',\n '3xl': 'text-4xl',\n '4xl': 'text-5xl',\n },\n weight: {\n normal: 'font-normal',\n medium: 'font-medium',\n semibold: 'font-semibold',\n bold: 'font-bold',\n },\n align: {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n },\n },\n defaultVariants: {\n size: 'lg',\n weight: 'semibold',\n },\n});\n\nexport type HeadingVariants = VariantProps<typeof headingVariants>;\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\nimport { headingVariants, type HeadingVariants } from './Heading.variants';\n\ntype HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface HeadingProps\n extends Omit<ComponentPropsWithoutRef<'h2'>, 'size'>,\n HeadingVariants {\n /** Semantic heading level (1–6). Default 2. Visual size is independent — set via `size`. */\n level?: HeadingLevel;\n}\n\n/**\n * Semantic heading. `level` controls the rendered tag (`h1`–`h6`); `size`\n * controls the visual scale independently — so a visually-large heading\n * can still be the right outline level.\n */\nexport const Heading = forwardRef<HTMLHeadingElement, HeadingProps>(\n ({ level = 2, className, size, weight, align, ...props }, ref) => {\n const Tag = `h${level}` as 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n return (\n <Tag\n ref={ref}\n className={cn(headingVariants({ size, weight, align }), className)}\n {...props}\n />\n );\n },\n);\nHeading.displayName = 'Heading';\n","import { tv, type VariantProps } from '../../utils';\n\nexport const textVariants = tv({\n base: '',\n variants: {\n size: {\n xs: 'text-xs',\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n xl: 'text-xl',\n },\n weight: {\n normal: 'font-normal',\n medium: 'font-medium',\n semibold: 'font-semibold',\n bold: 'font-bold',\n },\n color: {\n default: 'text-foreground',\n muted: 'text-muted-foreground',\n subtle: 'text-subtle-foreground',\n brand: 'text-primary',\n success: 'text-success',\n warning: 'text-warning',\n danger: 'text-destructive',\n },\n align: {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n justify: 'text-justify',\n },\n truncate: {\n true: 'truncate',\n },\n },\n defaultVariants: {\n size: 'md',\n weight: 'normal',\n color: 'default',\n },\n});\n\nexport type TextVariants = VariantProps<typeof textVariants>;\n","import {\n forwardRef,\n type ComponentPropsWithoutRef,\n type ElementType,\n type Ref,\n} from 'react';\nimport { cn } from '../../utils';\nimport { textVariants, type TextVariants } from './Text.variants';\n\nexport interface TextProps\n extends Omit<ComponentPropsWithoutRef<'p'>, 'as' | 'color'>,\n TextVariants {\n as?: ElementType;\n}\n\n/**\n * Body text. Renders as `<p>` by default; pass `as=\"span\"` (or any element)\n * to keep semantics consistent with the surrounding markup.\n */\nexport const Text = forwardRef<HTMLElement, TextProps>(\n ({ as: Component = 'p', className, size, weight, color, align, truncate, ...props }, ref) => (\n <Component\n ref={ref as Ref<HTMLElement>}\n className={cn(textVariants({ size, weight, color, align, truncate }), className)}\n {...props}\n />\n ),\n);\nText.displayName = 'Text';\n","import { tv, type VariantProps } from '../../utils';\n\nexport const codeVariants = tv({\n base: 'font-mono text-sm',\n variants: {\n variant: {\n inline: 'rounded-sm bg-muted px-1 py-0.5 text-foreground',\n block: 'block w-full overflow-x-auto rounded-md bg-muted p-4 text-foreground',\n },\n },\n defaultVariants: {\n variant: 'inline',\n },\n});\n\nexport type CodeVariants = VariantProps<typeof codeVariants>;\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\nimport { codeVariants, type CodeVariants } from './Code.variants';\n\nexport interface CodeProps extends ComponentPropsWithoutRef<'code'>, CodeVariants {}\n\n/**\n * Inline or block code. For block, wrap children in a `<pre>` if you need\n * pre-wrap whitespace; this atom only styles. Syntax highlighting is L5.\n */\nexport const Code = forwardRef<HTMLElement, CodeProps>(\n ({ className, variant, ...props }, ref) => (\n <code ref={ref} className={cn(codeVariants({ variant }), className)} {...props} />\n ),\n);\nCode.displayName = 'Code';\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\n\nexport type KbdProps = ComponentPropsWithoutRef<'kbd'>;\n\n/**\n * Keyboard key affordance — `<kbd>` styled with subtle border and inset\n * shadow. Single key per `<Kbd>`; chain via `<Kbd>⌘</Kbd> + <Kbd>K</Kbd>`.\n */\nexport const Kbd = forwardRef<HTMLElement, KbdProps>(({ className, ...props }, ref) => (\n <kbd\n ref={ref}\n className={cn(\n 'inline-flex h-5 min-w-5 items-center justify-center rounded-sm border border-border',\n 'bg-muted px-1.5 font-mono text-xs text-muted-foreground shadow-[inset_0_-1px_0_0_rgb(0_0_0/0.05)]',\n className,\n )}\n {...props}\n />\n));\nKbd.displayName = 'Kbd';\n","import { forwardRef, useState, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport { cn } from '../../utils';\n\nexport interface ImageProps extends ComponentPropsWithoutRef<'img'> {\n /** Element rendered when the image fails to load. */\n fallback?: ReactNode;\n}\n\n/**\n * Image with built-in error fallback. The fallback element replaces the\n * `<img>` on error (broken `src`, network failure). For aspect-locked\n * images, wrap in `AspectRatio`.\n */\nexport const Image = forwardRef<HTMLImageElement, ImageProps>(\n ({ fallback, onError, alt = '', className, ...props }, ref) => {\n const [errored, setErrored] = useState(false);\n if (errored && fallback !== undefined) return <>{fallback}</>;\n return (\n <img\n ref={ref}\n alt={alt}\n className={cn('block max-w-full', className)}\n onError={(e) => {\n setErrored(true);\n onError?.(e);\n }}\n {...props}\n />\n );\n },\n);\nImage.displayName = 'Image';\n","import { tv, type VariantProps } from '../../utils';\n\nexport const avatarVariants = tv({\n base: 'inline-flex shrink-0 select-none items-center justify-center overflow-hidden rounded-full bg-muted text-muted-foreground font-medium',\n variants: {\n size: {\n xs: 'h-6 w-6 text-xs',\n sm: 'h-8 w-8 text-sm',\n md: 'h-10 w-10 text-base',\n lg: 'h-12 w-12 text-lg',\n xl: 'h-16 w-16 text-xl',\n '2xl': 'h-20 w-20 text-2xl',\n },\n shape: {\n circle: 'rounded-full',\n square: 'rounded-md',\n },\n },\n defaultVariants: {\n size: 'md',\n shape: 'circle',\n },\n});\n\nexport type AvatarVariants = VariantProps<typeof avatarVariants>;\n","import {\n forwardRef,\n useState,\n type ComponentPropsWithoutRef,\n type ReactNode,\n} from 'react';\nimport { cn } from '../../utils';\nimport { avatarVariants, type AvatarVariants } from './Avatar.variants';\n\nexport interface AvatarProps\n extends Omit<ComponentPropsWithoutRef<'span'>, 'children'>,\n AvatarVariants {\n /** Image source. Falls back to `name` initials or `fallback` on error. */\n src?: string;\n /** Person/entity name — used to derive initials when no image. */\n name?: string;\n /** Custom fallback (overrides initials). */\n fallback?: ReactNode;\n /** Alt text for the underlying `<img>`. Defaults to `name`. */\n alt?: string;\n}\n\nfunction getInitials(name: string): string {\n const parts = name.trim().split(/\\s+/);\n if (parts.length === 0) return '';\n const first = parts[0]?.[0] ?? '';\n const last = parts.length > 1 ? parts[parts.length - 1]?.[0] ?? '' : '';\n return (first + last).toUpperCase();\n}\n\n/**\n * Image avatar with initials fallback. Strict atom — fallback is rendered\n * inline (raw text), not via the `Text` atom, to keep this self-contained.\n */\nexport const Avatar = forwardRef<HTMLSpanElement, AvatarProps>(\n ({ src, name = '', fallback, alt, className, size, shape, ...props }, ref) => {\n const [errored, setErrored] = useState(false);\n const showImage = src && !errored;\n return (\n <span\n ref={ref}\n className={cn(avatarVariants({ size, shape }), className)}\n {...props}\n >\n {showImage ? (\n <img\n src={src}\n alt={alt ?? name}\n className=\"h-full w-full object-cover\"\n onError={() => setErrored(true)}\n />\n ) : (\n fallback ?? getInitials(name)\n )}\n </span>\n );\n },\n);\nAvatar.displayName = 'Avatar';\n","import { tv, type VariantProps } from '../../utils';\n\nexport const badgeVariants = tv({\n base: 'inline-flex items-center rounded-full font-medium',\n variants: {\n variant: {\n neutral: 'bg-muted text-foreground',\n brand: 'bg-primary-soft text-primary-soft-foreground',\n success: 'bg-success-soft text-success-soft-foreground',\n warning: 'bg-warning-soft text-warning-soft-foreground',\n danger: 'bg-destructive-soft text-destructive-soft-foreground',\n info: 'bg-info-soft text-info-soft-foreground',\n outline: 'border border-border text-foreground',\n },\n size: {\n sm: 'h-5 px-2 text-xs',\n md: 'h-6 px-2.5 text-xs',\n lg: 'h-7 px-3 text-sm',\n },\n },\n defaultVariants: {\n variant: 'neutral',\n size: 'md',\n },\n});\n\nexport type BadgeVariants = VariantProps<typeof badgeVariants>;\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\nimport { badgeVariants, type BadgeVariants } from './Badge.variants';\n\nexport interface BadgeProps extends ComponentPropsWithoutRef<'span'>, BadgeVariants {}\n\n/**\n * Pill-shaped status / category indicator. Non-interactive — for clickable\n * use `Tag`. For severity-tinted callouts at message scale, use `Alert*`.\n */\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, variant, size, ...props }, ref) => (\n <span ref={ref} className={cn(badgeVariants({ variant, size }), className)} {...props} />\n ),\n);\nBadge.displayName = 'Badge';\n","import { tv, type VariantProps } from '../../utils';\n\nexport const tagVariants = tv({\n base: 'inline-flex items-center gap-1 rounded-md border border-border bg-card px-2 py-0.5 text-xs font-medium text-card-foreground',\n variants: {\n variant: {\n neutral: '',\n brand: 'border-transparent bg-primary-soft text-primary-soft-foreground',\n success: 'border-transparent bg-success-soft text-success-soft-foreground',\n warning: 'border-transparent bg-warning-soft text-warning-soft-foreground',\n danger: 'border-transparent bg-destructive-soft text-destructive-soft-foreground',\n info: 'border-transparent bg-info-soft text-info-soft-foreground',\n },\n },\n defaultVariants: {\n variant: 'neutral',\n },\n});\n\nexport type TagVariants = VariantProps<typeof tagVariants>;\n","import { forwardRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport { X } from 'lucide-react';\nimport { cn } from '../../utils';\nimport { Icon } from '../../icons';\nimport { tagVariants, type TagVariants } from './Tag.variants';\n\nexport interface TagProps\n extends Omit<ComponentPropsWithoutRef<'span'>, 'children'>,\n TagVariants {\n children?: ReactNode;\n /** Show a close (×) button. Pass a handler to receive the click. */\n onClose?: () => void;\n /** Accessible label for the close button. Default `\"Remove\"`. */\n closeLabel?: string;\n}\n\n/**\n * Pill with an optional close button. The close button is a raw `<button>`\n * (not `IconButton`) so this stays a strict atom.\n */\nexport const Tag = forwardRef<HTMLSpanElement, TagProps>(\n ({ children, onClose, closeLabel = 'Remove', variant, className, ...props }, ref) => (\n <span ref={ref} className={cn(tagVariants({ variant }), className)} {...props}>\n {children}\n {onClose && (\n <button\n type=\"button\"\n aria-label={closeLabel}\n onClick={onClose}\n className=\"-mr-1 inline-flex h-4 w-4 items-center justify-center rounded-sm text-muted-foreground hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring\"\n >\n <Icon icon={X} size={12} />\n </button>\n )}\n </span>\n ),\n);\nTag.displayName = 'Tag';\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\n\nexport interface SeparatorProps extends ComponentPropsWithoutRef<'div'> {\n orientation?: 'horizontal' | 'vertical';\n /** When `true`, the separator is purely decorative — `role=\"none\"` and\n * unannounced. Default `true`. Set `false` when meaningful in context. */\n decorative?: boolean;\n}\n\n/**\n * Visual divider. Defaults to a horizontal hairline; pass `orientation=\"vertical\"`\n * for column dividers (use inside a flex/grid with explicit height).\n */\nexport const Separator = forwardRef<HTMLDivElement, SeparatorProps>(\n ({ orientation = 'horizontal', decorative = true, className, ...props }, ref) => (\n <div\n ref={ref}\n role={decorative ? 'none' : 'separator'}\n aria-orientation={decorative ? undefined : orientation}\n className={cn(\n 'bg-border',\n orientation === 'horizontal' ? 'h-px w-full' : 'w-px self-stretch',\n className,\n )}\n {...props}\n />\n ),\n);\nSeparator.displayName = 'Separator';\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\n\nexport type MarkProps = ComponentPropsWithoutRef<'mark'>;\n\n/**\n * Highlighted text — semantic `<mark>` with a yellow tint. Use for search\n * matches and \"you mentioned this\" affordances.\n */\nexport const Mark = forwardRef<HTMLElement, MarkProps>(({ className, ...props }, ref) => (\n <mark\n ref={ref}\n className={cn('rounded-sm bg-warning-soft px-0.5 text-warning-soft-foreground', className)}\n {...props}\n />\n));\nMark.displayName = 'Mark';\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\n\nexport type QuoteProps = ComponentPropsWithoutRef<'blockquote'>;\n\n/**\n * Block quote with subtle left border and italic body text.\n */\nexport const Quote = forwardRef<HTMLQuoteElement, QuoteProps>(\n ({ className, ...props }, ref) => (\n <blockquote\n ref={ref}\n className={cn(\n 'border-l-4 border-border pl-4 italic text-muted-foreground',\n className,\n )}\n {...props}\n />\n ),\n);\nQuote.displayName = 'Quote';\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\n\ntype DivProps = ComponentPropsWithoutRef<'div'>;\n\nexport interface CardProps extends DivProps {\n padding?: 'none' | 'sm' | 'md' | 'lg';\n}\n\nconst PADDING: Record<NonNullable<CardProps['padding']>, string> = {\n none: '',\n sm: 'p-3',\n md: 'p-4',\n lg: 'p-6',\n};\n\nconst CardRoot = forwardRef<HTMLDivElement, CardProps>(\n ({ className, padding = 'none', ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'rounded-lg border border-border bg-card text-card-foreground shadow-xs',\n PADDING[padding],\n className,\n )}\n {...props}\n />\n ),\n);\nCardRoot.displayName = 'Card';\n\nconst CardHeader = forwardRef<HTMLDivElement, DivProps>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex flex-col gap-1 p-4 pb-2', className)} {...props} />\n));\nCardHeader.displayName = 'Card.Header';\n\nconst CardTitle = forwardRef<HTMLHeadingElement, ComponentPropsWithoutRef<'h3'>>(\n ({ className, ...props }, ref) => (\n <h3 ref={ref} className={cn('text-lg font-semibold tracking-tight', className)} {...props} />\n ),\n);\nCardTitle.displayName = 'Card.Title';\n\nconst CardDescription = forwardRef<HTMLParagraphElement, ComponentPropsWithoutRef<'p'>>(\n ({ className, ...props }, ref) => (\n <p ref={ref} className={cn('text-sm text-muted-foreground', className)} {...props} />\n ),\n);\nCardDescription.displayName = 'Card.Description';\n\nconst CardBody = forwardRef<HTMLDivElement, DivProps>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('p-4 pt-2', className)} {...props} />\n));\nCardBody.displayName = 'Card.Body';\n\nconst CardFooter = forwardRef<HTMLDivElement, DivProps>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center gap-2 border-t border-border p-4', className)} {...props} />\n));\nCardFooter.displayName = 'Card.Footer';\n\n/**\n * Compound `Card` — raised surface for grouped content. Use sub-components\n * for structure: `<Card.Header>` (with optional `<Card.Title>` /\n * `<Card.Description>`), `<Card.Body>`, `<Card.Footer>`. Or pass\n * `padding=\"md\"` and free-form children for the simplest case.\n */\nexport const Card = Object.assign(CardRoot, {\n Header: CardHeader,\n Title: CardTitle,\n Description: CardDescription,\n Body: CardBody,\n Footer: CardFooter,\n});\n","import { Children, forwardRef, isValidElement, type ComponentPropsWithoutRef, type ReactElement } from 'react';\nimport { cn } from '../../utils';\nimport { Avatar, type AvatarProps } from '../avatar/Avatar';\n\nexport interface AvatarGroupProps extends ComponentPropsWithoutRef<'div'> {\n /** Maximum avatars to render. Excess is shown as a \"+N\" tile. */\n max?: number;\n /** Avatar size applied to all children. Default `md`. */\n size?: AvatarProps['size'];\n /** Negative-margin overlap class applied between avatars. Default `-ml-2`. */\n overlap?: string;\n}\n\n/**\n * Stacked group of `Avatar` children with overlap and an optional \"+N more\"\n * indicator when children exceed `max`.\n */\nexport const AvatarGroup = forwardRef<HTMLDivElement, AvatarGroupProps>(\n ({ max, size = 'md', overlap = '-ml-2', className, children, ...props }, ref) => {\n const all = Children.toArray(children).filter(isValidElement) as ReactElement<AvatarProps>[];\n const visible = max ? all.slice(0, max) : all;\n const overflow = max ? Math.max(0, all.length - max) : 0;\n\n return (\n <div\n ref={ref}\n className={cn('inline-flex items-center', className)}\n {...props}\n >\n {visible.map((child, i) => (\n <div\n key={i}\n className={cn('ring-2 ring-background rounded-full', i > 0 && overlap)}\n >\n {/* Force consistent size */}\n <Avatar {...child.props} size={size} />\n </div>\n ))}\n {overflow > 0 && (\n <Avatar\n size={size}\n name={`+${overflow}`}\n className={cn(overlap, 'ring-2 ring-background')}\n />\n )}\n </div>\n );\n },\n);\nAvatarGroup.displayName = 'AvatarGroup';\n","import {\n cloneElement,\n isValidElement,\n useRef,\n useState,\n type ReactElement,\n type ReactNode,\n type Ref,\n} from 'react';\nimport { cn, composeRefs } from '../../utils';\nimport {\n AnchoredPositioner,\n Portal,\n type AnchoredPositionerProps,\n} from '../../primitives';\n\nexport interface TooltipProps {\n /** Tooltip body. */\n content: ReactNode;\n /** Single child element — the trigger. Receives event handlers + ref. */\n children: ReactElement;\n /** Floating UI placement. Default `top`. */\n placement?: AnchoredPositionerProps['placement'];\n /** Delay before opening on hover, in ms. Default 700. */\n openDelay?: number;\n /** Delay before closing on leave, in ms. Default 0. */\n closeDelay?: number;\n /** Controlled open state. */\n open?: boolean;\n /** Disable rendering even on hover (e.g. when content is empty). */\n disabled?: boolean;\n}\n\n/**\n * Hover-/focus-triggered tooltip. Wraps a single child as the trigger; the\n * tooltip body renders into a Portal positioned by Floating UI. Default\n * delays mirror the OS pattern (700ms in, 0 out).\n */\nexport function Tooltip({\n content,\n children,\n placement = 'top',\n openDelay = 700,\n closeDelay = 0,\n open: controlledOpen,\n disabled,\n}: TooltipProps) {\n const [uncontrolledOpen, setUncontrolledOpen] = useState(false);\n const open = controlledOpen ?? uncontrolledOpen;\n const [anchor, setAnchor] = useState<HTMLElement | null>(null);\n const openTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n const closeTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const clear = () => {\n if (openTimer.current) clearTimeout(openTimer.current);\n if (closeTimer.current) clearTimeout(closeTimer.current);\n openTimer.current = null;\n closeTimer.current = null;\n };\n const show = () => {\n clear();\n openTimer.current = setTimeout(() => setUncontrolledOpen(true), openDelay);\n };\n const hide = () => {\n clear();\n closeTimer.current = setTimeout(() => setUncontrolledOpen(false), closeDelay);\n };\n\n if (!isValidElement(children)) return children;\n const trigger = children as ReactElement<{\n ref?: Ref<HTMLElement>;\n onPointerEnter?: (e: React.PointerEvent) => void;\n onPointerLeave?: (e: React.PointerEvent) => void;\n onFocus?: (e: React.FocusEvent) => void;\n onBlur?: (e: React.FocusEvent) => void;\n }> & { ref?: Ref<HTMLElement> };\n\n const cloned = cloneElement(trigger, {\n ref: composeRefs(setAnchor, trigger.ref),\n onPointerEnter: (e: React.PointerEvent) => {\n trigger.props.onPointerEnter?.(e);\n show();\n },\n onPointerLeave: (e: React.PointerEvent) => {\n trigger.props.onPointerLeave?.(e);\n hide();\n },\n onFocus: (e: React.FocusEvent) => {\n trigger.props.onFocus?.(e);\n show();\n },\n onBlur: (e: React.FocusEvent) => {\n trigger.props.onBlur?.(e);\n hide();\n },\n });\n\n return (\n <>\n {cloned}\n {!disabled && open && content && (\n <Portal>\n <AnchoredPositioner anchor={anchor} placement={placement} offset={6}>\n <div\n role=\"tooltip\"\n className={cn(\n 'z-tooltip rounded-md bg-inverse px-2.5 py-1.5 text-xs text-inverse-foreground shadow-md',\n 'animate-in fade-in-0 zoom-in-95',\n )}\n >\n {content}\n </div>\n </AnchoredPositioner>\n </Portal>\n )}\n </>\n );\n}\n","import { forwardRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport { cn } from '../../utils';\nimport { Heading } from '../heading/Heading';\nimport { Text } from '../text/Text';\n\nexport interface EmptyStateProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title'> {\n /** Optional icon (lucide or custom). */\n icon?: ReactNode;\n /** Heading copy. */\n title: ReactNode;\n /** Body copy below the title. */\n description?: ReactNode;\n /** Action(s) — usually one or two `<Button>` elements. */\n actions?: ReactNode;\n /** Visual size. Default `md`. */\n size?: 'sm' | 'md' | 'lg';\n}\n\nconst SIZE: Record<NonNullable<EmptyStateProps['size']>, { wrap: string; iconBox: string }> = {\n sm: { wrap: 'gap-2 py-6', iconBox: 'h-10 w-10' },\n md: { wrap: 'gap-3 py-10', iconBox: 'h-14 w-14' },\n lg: { wrap: 'gap-4 py-16', iconBox: 'h-20 w-20' },\n};\n\n/**\n * Empty-list / no-results affordance: icon + title + description + actions.\n * Pass any subset; the component centers everything vertically.\n */\nexport const EmptyState = forwardRef<HTMLDivElement, EmptyStateProps>(\n ({ icon, title, description, actions, size = 'md', className, ...props }, ref) => {\n const sz = SIZE[size];\n return (\n <div\n ref={ref}\n className={cn('flex flex-col items-center text-center', sz.wrap, className)}\n {...props}\n >\n {icon && (\n <div\n className={cn(\n 'flex items-center justify-center rounded-full bg-muted text-muted-foreground',\n sz.iconBox,\n )}\n >\n {icon}\n </div>\n )}\n <Heading level={3} size={size === 'sm' ? 'md' : size === 'lg' ? 'xl' : 'lg'}>\n {title}\n </Heading>\n {description && <Text color=\"muted\" size={size === 'lg' ? 'md' : 'sm'}>{description}</Text>}\n {actions && <div className=\"mt-2 flex items-center gap-2\">{actions}</div>}\n </div>\n );\n },\n);\nEmptyState.displayName = 'EmptyState';\n","import { forwardRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport { TrendingDown, TrendingUp } from 'lucide-react';\nimport { cn } from '../../utils';\nimport { Icon } from '../../icons';\nimport { Heading } from '../heading/Heading';\nimport { Text } from '../text/Text';\n\nexport interface StatProps extends ComponentPropsWithoutRef<'div'> {\n /** Label above the value. */\n label: ReactNode;\n /** Primary value (large). */\n value: ReactNode;\n /** Optional trend — positive = up/green, negative = down/red. */\n trend?: { value: number; label?: ReactNode };\n /** Optional helper / supporting text below. */\n helper?: ReactNode;\n /** Visual size. Default `md`. */\n size?: 'sm' | 'md' | 'lg';\n}\n\nconst VALUE_SIZE: Record<NonNullable<StatProps['size']>, '2xl' | '3xl' | '4xl'> = {\n sm: '2xl',\n md: '3xl',\n lg: '4xl',\n};\n\n/**\n * Single metric tile — label + big value + optional trend + helper. Use\n * inside dashboards / KPI grids.\n */\nexport const Stat = forwardRef<HTMLDivElement, StatProps>(\n ({ label, value, trend, helper, size = 'md', className, ...props }, ref) => {\n const trendUp = trend ? trend.value >= 0 : false;\n return (\n <div ref={ref} className={cn('flex flex-col gap-1', className)} {...props}>\n <Text size=\"sm\" color=\"muted\">{label}</Text>\n <Heading level={3} size={VALUE_SIZE[size]} weight=\"bold\">{value}</Heading>\n {(trend || helper) && (\n <div className=\"mt-1 flex items-center gap-2\">\n {trend && (\n <span\n className={cn(\n 'inline-flex items-center gap-0.5 text-xs font-medium',\n trendUp ? 'text-success' : 'text-destructive',\n )}\n >\n <Icon icon={trendUp ? TrendingUp : TrendingDown} size={12} />\n {trend.value > 0 ? '+' : ''}{trend.value}%\n {trend.label && <span className=\"text-muted-foreground\"> {trend.label}</span>}\n </span>\n )}\n {helper && !trend && <Text size=\"xs\" color=\"muted\">{helper}</Text>}\n </div>\n )}\n </div>\n );\n },\n);\nStat.displayName = 'Stat';\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { Check, Copy } from 'lucide-react';\nimport { cn } from '../../utils';\nimport { Icon } from '../../icons';\nimport { useClipboard } from '../../hooks';\nimport { Code } from '../code/Code';\n\nexport interface SnippetProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children'> {\n /** Code text to display + copy. */\n text: string;\n /** Visual variant — `inline` (single line) or `block` (multi-line). Default `inline`. */\n variant?: 'inline' | 'block';\n}\n\n/**\n * Code text with a built-in copy button. Inline variant for one-liners,\n * block variant for multi-line snippets. Copy logic uses the L1\n * `useClipboard` hook directly (Snippet stays in display, can't import the\n * actions/CopyButton component).\n */\nexport const Snippet = forwardRef<HTMLDivElement, SnippetProps>(\n ({ text, variant = 'inline', className, ...props }, ref) => {\n const { copied, copy } = useClipboard();\n return (\n <div\n ref={ref}\n className={cn(\n 'group relative inline-flex w-full items-start',\n variant === 'inline' ? 'gap-2' : 'flex-col gap-0',\n className,\n )}\n {...props}\n >\n <Code variant={variant} className=\"flex-1 pr-10\">{text}</Code>\n <button\n type=\"button\"\n aria-label={copied ? 'Copied' : 'Copy'}\n onClick={() => void copy(text)}\n className={cn(\n 'absolute right-2 grid h-7 w-7 place-items-center rounded text-muted-foreground transition-colors hover:bg-background hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n variant === 'inline' ? 'top-1/2 -translate-y-1/2' : 'top-2',\n )}\n >\n <Icon icon={copied ? Check : Copy} size={14} />\n </button>\n </div>\n );\n },\n);\nSnippet.displayName = 'Snippet';\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\n\nexport interface NotificationDotProps extends ComponentPropsWithoutRef<'span'> {\n tone?: 'destructive' | 'success' | 'warning' | 'info' | 'primary' | 'neutral';\n size?: 'xs' | 'sm' | 'md';\n /** Adds a pulsing ring around the dot. */\n pulse?: boolean;\n /** When set, the dot is positioned absolutely relative to its parent. */\n position?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';\n}\n\nconst TONE: Record<NonNullable<NotificationDotProps['tone']>, string> = {\n destructive: 'bg-destructive',\n success: 'bg-success',\n warning: 'bg-warning',\n info: 'bg-info',\n primary: 'bg-primary',\n neutral: 'bg-muted-foreground',\n};\n\nconst SIZE: Record<NonNullable<NotificationDotProps['size']>, string> = {\n xs: 'h-1.5 w-1.5',\n sm: 'h-2 w-2',\n md: 'h-2.5 w-2.5',\n};\n\nconst POS: Record<NonNullable<NotificationDotProps['position']>, string> = {\n 'top-right': 'absolute -top-0.5 -right-0.5',\n 'top-left': 'absolute -top-0.5 -left-0.5',\n 'bottom-right': 'absolute -bottom-0.5 -right-0.5',\n 'bottom-left': 'absolute -bottom-0.5 -left-0.5',\n};\n\n/**\n * Tiny colored dot — unread/notification indicator. Pass `position` to\n * absolutely-place over a parent (e.g. on an Avatar or IconButton).\n */\nexport const NotificationDot = forwardRef<HTMLSpanElement, NotificationDotProps>(\n ({ tone = 'destructive', size = 'sm', pulse, position, className, ...props }, ref) => (\n <span\n ref={ref}\n aria-hidden=\"true\"\n className={cn(\n 'inline-flex rounded-full ring-2 ring-background',\n TONE[tone],\n SIZE[size],\n position && POS[position],\n pulse && 'after:absolute after:inset-0 after:animate-ping after:rounded-full after:opacity-75 after:content-[\"\"] ' + TONE[tone],\n className,\n )}\n {...props}\n />\n ),\n);\nNotificationDot.displayName = 'NotificationDot';\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\nimport { Badge, type BadgeProps } from '../badge/Badge';\n\nexport interface CountBadgeProps extends Omit<ComponentPropsWithoutRef<'span'>, 'children'> {\n /** The numeric count. */\n value: number;\n /** Cap value — shows \"max+\" when exceeded. Default 99. */\n max?: number;\n /** Hide entirely when count is 0. Default true. */\n hideZero?: boolean;\n variant?: BadgeProps['variant'];\n}\n\n/**\n * Numeric badge for notification / inbox counts. Displays \"{value}\" or\n * \"{max}+\" once the cap is exceeded. Hides when `value === 0` unless\n * `hideZero={false}`.\n */\nexport const CountBadge = forwardRef<HTMLSpanElement, CountBadgeProps>(\n ({ value, max = 99, hideZero = true, variant = 'danger', className, ...props }, ref) => {\n if (value === 0 && hideZero) return null;\n const display = value > max ? `${max}+` : `${value}`;\n return (\n <Badge\n ref={ref}\n variant={variant}\n size=\"sm\"\n className={cn('min-w-5 justify-center px-1.5', className)}\n {...props}\n >\n {display}\n </Badge>\n );\n },\n);\nCountBadge.displayName = 'CountBadge';\n","import { forwardRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport { cn } from '../../utils';\n\nexport interface StatusProps extends Omit<ComponentPropsWithoutRef<'span'>, 'children'> {\n tone?: 'success' | 'warning' | 'destructive' | 'info' | 'neutral';\n /** Optional pulsing ring around the dot. */\n pulse?: boolean;\n children?: ReactNode;\n}\n\nconst TONE: Record<NonNullable<StatusProps['tone']>, string> = {\n success: 'bg-success',\n warning: 'bg-warning',\n destructive: 'bg-destructive',\n info: 'bg-info',\n neutral: 'bg-muted-foreground',\n};\n\n/**\n * Colored dot + text label — server status, online presence, build state.\n * Use `Status` (with text) for labelled indicators; `NotificationDot` for\n * the bare positioned dot.\n */\nexport const Status = forwardRef<HTMLSpanElement, StatusProps>(\n ({ tone = 'success', pulse, className, children, ...props }, ref) => (\n <span\n ref={ref}\n className={cn('inline-flex items-center gap-2 text-sm text-foreground', className)}\n {...props}\n >\n <span className=\"relative inline-flex\">\n <span className={cn('inline-block h-2 w-2 rounded-full', TONE[tone])} />\n {pulse && (\n <span\n className={cn(\n 'absolute inset-0 inline-block rounded-full opacity-75 animate-ping',\n TONE[tone],\n )}\n />\n )}\n </span>\n {children}\n </span>\n ),\n);\nStatus.displayName = 'Status';\n","import { forwardRef, Fragment, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\nimport { Kbd } from '../kbd/Kbd';\n\nexport interface KeyboardShortcutProps extends ComponentPropsWithoutRef<'span'> {\n /** Keys in order — e.g. `['⌘', 'K']` or `['Ctrl', 'Shift', 'P']`. */\n keys: string[];\n /** Connector between keys. Default `'+'`; pass `' '` for spaced keys. */\n separator?: string;\n}\n\n/**\n * Render a sequence of `Kbd` keys with connectors between them — e.g.\n * `<KeyboardShortcut keys={['⌘', 'K']} />` → ⌘ + K.\n */\nexport const KeyboardShortcut = forwardRef<HTMLSpanElement, KeyboardShortcutProps>(\n ({ keys, separator = '+', className, ...props }, ref) => (\n <span\n ref={ref}\n className={cn('inline-flex items-center gap-1 text-muted-foreground', className)}\n {...props}\n >\n {keys.map((key, i) => (\n <Fragment key={i}>\n {i > 0 && <span aria-hidden=\"true\">{separator}</span>}\n <Kbd>{key}</Kbd>\n </Fragment>\n ))}\n </span>\n ),\n);\nKeyboardShortcut.displayName = 'KeyboardShortcut';\n","import { forwardRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport { cn } from '../../utils';\n\nexport interface DescriptionListItem {\n label: ReactNode;\n value: ReactNode;\n}\n\nexport interface DescriptionListProps extends Omit<ComponentPropsWithoutRef<'dl'>, 'children'> {\n items: DescriptionListItem[];\n /** Layout direction. `inline` renders label/value on the same line; `stacked` puts label above. */\n layout?: 'inline' | 'stacked';\n /** Density between rows. Default `md`. */\n density?: 'sm' | 'md' | 'lg';\n}\n\nconst ROW_GAP: Record<NonNullable<DescriptionListProps['density']>, string> = {\n sm: 'gap-y-1',\n md: 'gap-y-2',\n lg: 'gap-y-3',\n};\n\n/**\n * Semantic `<dl>` for label-value pairs (settings panels, property lists).\n * Inline layout uses a 2-column grid; stacked puts each value below its label.\n */\nexport const DescriptionList = forwardRef<HTMLDListElement, DescriptionListProps>(\n ({ items, layout = 'inline', density = 'md', className, ...props }, ref) => (\n <dl\n ref={ref}\n className={cn(\n 'text-sm',\n layout === 'inline' ? 'grid grid-cols-[max-content_1fr] gap-x-4' : 'flex flex-col gap-1',\n ROW_GAP[density],\n className,\n )}\n {...props}\n >\n {items.map((item, i) => (\n <div key={i} className={cn('contents', layout === 'stacked' && 'flex flex-col gap-0.5')}>\n <dt className=\"text-muted-foreground\">{item.label}</dt>\n <dd className=\"text-foreground\">{item.value}</dd>\n </div>\n ))}\n </dl>\n ),\n);\nDescriptionList.displayName = 'DescriptionList';\n","import { forwardRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport { cn } from '../../utils';\n\nexport interface InfoRowProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children'> {\n label: ReactNode;\n value: ReactNode;\n /** Optional icon rendered before the label. */\n icon?: ReactNode;\n /** Layout: `inline` puts label-value on one line; `stacked` puts value below. Default `inline`. */\n layout?: 'inline' | 'stacked';\n}\n\n/**\n * Single row of label + value, with optional leading icon. Reach for this\n * when you have one or two pairs to show (e.g. inside a Card row); use\n * `DescriptionList` for many pairs.\n */\nexport const InfoRow = forwardRef<HTMLDivElement, InfoRowProps>(\n ({ label, value, icon, layout = 'inline', className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'flex text-sm',\n layout === 'inline' ? 'items-center justify-between gap-3' : 'flex-col gap-0.5',\n className,\n )}\n {...props}\n >\n <span className=\"inline-flex items-center gap-1.5 text-muted-foreground\">\n {icon}\n {label}\n </span>\n <span className=\"text-foreground\">{value}</span>\n </div>\n ),\n);\nInfoRow.displayName = 'InfoRow';\n","import { forwardRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport { cn } from '../../utils';\n\nexport interface BadgeOverlayProps extends ComponentPropsWithoutRef<'div'> {\n /** Element to overlay on (avatar, button, image). */\n children: ReactNode;\n /** Badge content (count, dot, icon). */\n badge: ReactNode;\n /** Position of the badge relative to the wrapper. Default `top-right`. */\n position?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';\n /** Hide badge when truthy (e.g. when count is 0). */\n hidden?: boolean;\n}\n\nconst POS: Record<NonNullable<BadgeOverlayProps['position']>, string> = {\n 'top-right': 'top-0 right-0 -translate-y-1/2 translate-x-1/2',\n 'top-left': 'top-0 left-0 -translate-y-1/2 -translate-x-1/2',\n 'bottom-right': 'bottom-0 right-0 translate-y-1/2 translate-x-1/2',\n 'bottom-left': 'bottom-0 left-0 translate-y-1/2 -translate-x-1/2',\n};\n\n/**\n * Decorator that overlays a badge / dot on top of any child. Use to\n * attach `CountBadge`, `NotificationDot`, or arbitrary `Badge` to an\n * `Avatar`, `IconButton`, or icon.\n */\nexport const BadgeOverlay = forwardRef<HTMLDivElement, BadgeOverlayProps>(\n ({ children, badge, position = 'top-right', hidden, className, ...props }, ref) => (\n <div ref={ref} className={cn('relative inline-flex', className)} {...props}>\n {children}\n {!hidden && (\n <span className={cn('absolute z-10', POS[position])}>{badge}</span>\n )}\n </div>\n ),\n);\nBadgeOverlay.displayName = 'BadgeOverlay';\n","import { forwardRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport { cn } from '../../utils';\nimport { Heading } from '../heading/Heading';\nimport { Text } from '../text/Text';\n\nexport interface SectionHeaderProps extends Omit<ComponentPropsWithoutRef<'header'>, 'title'> {\n /** Heading copy. */\n title: ReactNode;\n /** Optional description below the title. */\n description?: ReactNode;\n /** Right-aligned actions slot — typically Button(s). Cross-domain by design,\n * passed as content. */\n actions?: ReactNode;\n /** Heading element / size. Default level 2, size lg. */\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n size?: 'md' | 'lg' | 'xl' | '2xl';\n /** Add a bottom border. Default true. */\n bordered?: boolean;\n}\n\n/**\n * Section / page header — title + optional description + actions row.\n * Wraps `Heading` (semantic) + `Text` (description) + slot for actions.\n */\nexport const SectionHeader = forwardRef<HTMLElement, SectionHeaderProps>(\n (\n { title, description, actions, level = 2, size = 'lg', bordered = true, className, ...props },\n ref,\n ) => (\n <header\n ref={ref}\n className={cn(\n 'flex items-start justify-between gap-4 pb-3',\n bordered && 'border-b border-border',\n className,\n )}\n {...props}\n >\n <div className=\"flex min-w-0 flex-col gap-1\">\n <Heading level={level} size={size}>{title}</Heading>\n {description && <Text size=\"sm\" color=\"muted\">{description}</Text>}\n </div>\n {actions && <div className=\"flex shrink-0 items-center gap-2\">{actions}</div>}\n </header>\n ),\n);\nSectionHeader.displayName = 'SectionHeader';\n","import { Fragment, forwardRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport { cn } from '../../utils';\nimport { Mark } from '../mark/Mark';\n\nexport interface HighlightProps extends Omit<ComponentPropsWithoutRef<'span'>, 'children'> {\n /** Source text to render. */\n children: string;\n /** Substring(s) to highlight. Match is case-insensitive. */\n query: string | string[];\n /** When `true`, only highlights whole-word matches. Default `false`. */\n wholeWord?: boolean;\n}\n\nfunction escape(re: string) {\n return re.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\n/**\n * Wraps each occurrence of `query` (or any of `query[]`) inside the\n * `children` text in a `<Mark>`. Case-insensitive; pass `wholeWord` to\n * avoid partial matches.\n */\nexport const Highlight = forwardRef<HTMLSpanElement, HighlightProps>(\n ({ children, query, wholeWord, className, ...props }, ref) => {\n const queries = (Array.isArray(query) ? query : [query]).filter(Boolean);\n if (queries.length === 0) return <span ref={ref} className={cn(className)} {...props}>{children}</span>;\n const pattern = queries.map(escape).join('|');\n const regex = new RegExp(wholeWord ? `\\\\b(${pattern})\\\\b` : `(${pattern})`, 'gi');\n const parts = children.split(regex);\n\n const nodes: ReactNode[] = [];\n parts.forEach((part, i) => {\n if (queries.some((q) => part.toLowerCase() === q.toLowerCase())) {\n nodes.push(<Mark key={i}>{part}</Mark>);\n } else if (part) {\n nodes.push(<Fragment key={i}>{part}</Fragment>);\n }\n });\n\n return (\n <span ref={ref} className={cn(className)} {...props}>\n {nodes}\n </span>\n );\n },\n);\nHighlight.displayName = 'Highlight';\n"]}
@@ -0,0 +1,423 @@
1
+ import { useControlled, useClipboard } from './chunk-4P2TFUVW.js';
2
+ import { Slot } from './chunk-33IOXQYO.js';
3
+ import { tv as tv$1, dataAttr } from './chunk-BMBIZLO4.js';
4
+ import { Icon } from './chunk-TDX22OWF.js';
5
+ import { cn } from './chunk-KZ4VFY2T.js';
6
+ import { forwardRef, Children, isValidElement, cloneElement } from 'react';
7
+ import { tv } from 'tailwind-variants';
8
+ import { jsx, jsxs } from 'react/jsx-runtime';
9
+ import { Check, Copy, ChevronDown } from 'lucide-react';
10
+
11
+ var buttonVariants = tv({
12
+ base: "inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",
13
+ variants: {
14
+ variant: {
15
+ primary: "bg-primary text-primary-foreground hover:bg-primary/90",
16
+ secondary: "bg-muted text-foreground hover:bg-muted/80",
17
+ ghost: "bg-transparent text-foreground hover:bg-muted"
18
+ },
19
+ size: {
20
+ sm: "h-8 px-3 text-sm rounded-md",
21
+ md: "h-10 px-4 text-sm rounded-md",
22
+ lg: "h-12 px-6 text-base rounded-lg"
23
+ }
24
+ },
25
+ defaultVariants: {
26
+ variant: "primary",
27
+ size: "md"
28
+ }
29
+ });
30
+ var Button = forwardRef(
31
+ ({ className, variant, size, ...props }, ref) => {
32
+ return /* @__PURE__ */ jsx(
33
+ "button",
34
+ {
35
+ ref,
36
+ className: cn(buttonVariants({ variant, size }), className),
37
+ ...props
38
+ }
39
+ );
40
+ }
41
+ );
42
+ Button.displayName = "Button";
43
+
44
+ // src/actions/iconButton/IconButton.variants.ts
45
+ var iconButtonVariants = tv$1({
46
+ base: "inline-flex items-center justify-center transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",
47
+ variants: {
48
+ variant: {
49
+ solid: "bg-primary text-primary-foreground hover:bg-primary/90",
50
+ soft: "bg-primary-soft text-primary-soft-foreground hover:bg-primary-soft/80",
51
+ outline: "border border-input bg-background text-foreground hover:bg-muted",
52
+ ghost: "bg-transparent text-foreground hover:bg-muted",
53
+ danger: "bg-destructive text-destructive-foreground hover:bg-destructive/90"
54
+ },
55
+ size: {
56
+ xs: "h-6 w-6 rounded-sm",
57
+ sm: "h-8 w-8 rounded-md",
58
+ md: "h-10 w-10 rounded-md",
59
+ lg: "h-12 w-12 rounded-lg"
60
+ },
61
+ shape: {
62
+ square: "",
63
+ circle: "rounded-full"
64
+ }
65
+ },
66
+ defaultVariants: {
67
+ variant: "ghost",
68
+ size: "md",
69
+ shape: "square"
70
+ }
71
+ });
72
+ var IconButton = forwardRef(
73
+ ({ className, variant, size, shape, type = "button", ...props }, ref) => /* @__PURE__ */ jsx(
74
+ "button",
75
+ {
76
+ ref,
77
+ type,
78
+ className: cn(iconButtonVariants({ variant, size, shape }), className),
79
+ ...props
80
+ }
81
+ )
82
+ );
83
+ IconButton.displayName = "IconButton";
84
+
85
+ // src/actions/link/Link.variants.ts
86
+ var linkVariants = tv$1({
87
+ base: "inline-flex items-center transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm",
88
+ variants: {
89
+ variant: {
90
+ default: "text-primary hover:text-primary/85 hover:underline",
91
+ subtle: "text-foreground hover:underline",
92
+ muted: "text-muted-foreground hover:text-foreground hover:underline",
93
+ inherit: "text-current underline-offset-2 hover:underline"
94
+ },
95
+ size: {
96
+ sm: "text-sm",
97
+ md: "text-base",
98
+ lg: "text-lg"
99
+ }
100
+ },
101
+ defaultVariants: {
102
+ variant: "default",
103
+ size: "md"
104
+ }
105
+ });
106
+ var Link = forwardRef(
107
+ ({ className, variant, size, asChild = false, ...props }, ref) => {
108
+ const Comp = asChild ? Slot : "a";
109
+ return /* @__PURE__ */ jsx(
110
+ Comp,
111
+ {
112
+ ref,
113
+ className: cn(linkVariants({ variant, size }), className),
114
+ ...props
115
+ }
116
+ );
117
+ }
118
+ );
119
+ Link.displayName = "Link";
120
+ var ButtonGroup = forwardRef(
121
+ ({ orientation = "horizontal", attached = true, className, ...props }, ref) => /* @__PURE__ */ jsx(
122
+ "div",
123
+ {
124
+ ref,
125
+ role: "group",
126
+ "data-orientation": orientation,
127
+ className: cn(
128
+ "inline-flex",
129
+ orientation === "horizontal" ? "flex-row" : "flex-col",
130
+ attached ? orientation === "horizontal" ? "[&>*]:rounded-none [&>*:first-child]:rounded-l-md [&>*:last-child]:rounded-r-md [&>*:not(:first-child)]:-ml-px" : "[&>*]:rounded-none [&>*:first-child]:rounded-t-md [&>*:last-child]:rounded-b-md [&>*:not(:first-child)]:-mt-px" : "gap-2",
131
+ className
132
+ ),
133
+ ...props
134
+ }
135
+ )
136
+ );
137
+ ButtonGroup.displayName = "ButtonGroup";
138
+
139
+ // src/actions/toggleButton/ToggleButton.variants.ts
140
+ var toggleButtonVariants = tv$1({
141
+ base: "inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-primary data-[state=on]:text-primary-foreground",
142
+ variants: {
143
+ variant: {
144
+ solid: "bg-muted text-foreground hover:bg-muted/80",
145
+ outline: "border border-input bg-background text-foreground hover:bg-muted",
146
+ ghost: "bg-transparent text-foreground hover:bg-muted"
147
+ },
148
+ size: {
149
+ sm: "h-8 px-3 text-sm rounded-md",
150
+ md: "h-10 px-4 text-sm rounded-md",
151
+ lg: "h-12 px-6 text-base rounded-lg"
152
+ }
153
+ },
154
+ defaultVariants: {
155
+ variant: "ghost",
156
+ size: "md"
157
+ }
158
+ });
159
+ var ToggleButton = forwardRef(
160
+ ({
161
+ pressed,
162
+ defaultPressed = false,
163
+ onPressedChange,
164
+ onClick,
165
+ className,
166
+ variant,
167
+ size,
168
+ disabled,
169
+ type = "button",
170
+ ...props
171
+ }, ref) => {
172
+ const [value, setValue] = useControlled({
173
+ controlled: pressed,
174
+ default: defaultPressed,
175
+ onChange: onPressedChange
176
+ });
177
+ return /* @__PURE__ */ jsx(
178
+ "button",
179
+ {
180
+ ref,
181
+ type,
182
+ "aria-pressed": value,
183
+ "data-state": value ? "on" : "off",
184
+ "data-disabled": dataAttr(disabled),
185
+ disabled,
186
+ onClick: (e) => {
187
+ onClick?.(e);
188
+ if (!e.defaultPrevented) setValue(!value);
189
+ },
190
+ className: cn(toggleButtonVariants({ variant, size }), className),
191
+ ...props
192
+ }
193
+ );
194
+ }
195
+ );
196
+ ToggleButton.displayName = "ToggleButton";
197
+ var ToggleButtonGroup = forwardRef(
198
+ (props, ref) => {
199
+ const { orientation = "horizontal", attached = true, className, children, ...rest } = props;
200
+ const mode = props.type === "multi" ? "multi" : "single";
201
+ const [singleValue, setSingleValue] = useControlled({
202
+ controlled: mode === "single" ? rest.value : void 0,
203
+ default: mode === "single" ? rest.defaultValue ?? null : null,
204
+ onChange: mode === "single" ? rest.onValueChange : void 0
205
+ });
206
+ const [multiValue, setMultiValue] = useControlled({
207
+ controlled: mode === "multi" ? rest.value : void 0,
208
+ default: mode === "multi" ? rest.defaultValue ?? [] : [],
209
+ onChange: mode === "multi" ? rest.onValueChange : void 0
210
+ });
211
+ const isPressed = (childValue) => {
212
+ if (childValue === void 0) return false;
213
+ return mode === "single" ? singleValue === childValue : multiValue.includes(childValue);
214
+ };
215
+ const togglePressed = (childValue) => {
216
+ if (childValue === void 0) return;
217
+ if (mode === "single") {
218
+ setSingleValue(singleValue === childValue ? null : childValue);
219
+ } else {
220
+ setMultiValue(
221
+ multiValue.includes(childValue) ? multiValue.filter((v) => v !== childValue) : [...multiValue, childValue]
222
+ );
223
+ }
224
+ };
225
+ return /* @__PURE__ */ jsx(
226
+ "div",
227
+ {
228
+ ref,
229
+ role: mode === "single" ? "radiogroup" : "group",
230
+ "data-orientation": orientation,
231
+ className: cn(
232
+ "inline-flex",
233
+ orientation === "horizontal" ? "flex-row" : "flex-col",
234
+ attached ? orientation === "horizontal" ? "[&>*]:rounded-none [&>*:first-child]:rounded-l-md [&>*:last-child]:rounded-r-md [&>*:not(:first-child)]:-ml-px" : "[&>*]:rounded-none [&>*:first-child]:rounded-t-md [&>*:last-child]:rounded-b-md [&>*:not(:first-child)]:-mt-px" : "gap-2",
235
+ className
236
+ ),
237
+ children: Children.map(children, (child) => {
238
+ if (!isValidElement(child)) return child;
239
+ const c = child;
240
+ const childValue = c.props.value;
241
+ return cloneElement(c, {
242
+ pressed: isPressed(childValue),
243
+ onPressedChange: () => togglePressed(childValue)
244
+ });
245
+ })
246
+ }
247
+ );
248
+ }
249
+ );
250
+ ToggleButtonGroup.displayName = "ToggleButtonGroup";
251
+ var SegmentedControl = forwardRef(
252
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
253
+ ToggleButtonGroup,
254
+ {
255
+ ref,
256
+ attached: true,
257
+ className: cn(
258
+ "rounded-md bg-muted p-1",
259
+ "[&>*]:!rounded-md [&>*]:!ml-0 [&>*]:border-transparent [&>*]:bg-transparent",
260
+ "[&>*[data-state=on]]:!bg-background [&>*[data-state=on]]:!text-foreground [&>*[data-state=on]]:shadow-sm",
261
+ className
262
+ ),
263
+ ...props
264
+ }
265
+ )
266
+ );
267
+ SegmentedControl.displayName = "SegmentedControl";
268
+
269
+ // src/actions/fab/FAB.variants.ts
270
+ var fabVariants = tv$1({
271
+ base: "fixed inline-flex items-center justify-center rounded-full shadow-lg transition-all hover:shadow-xl focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",
272
+ variants: {
273
+ variant: {
274
+ primary: "bg-primary text-primary-foreground hover:bg-primary/90",
275
+ secondary: "bg-card text-card-foreground border border-border hover:bg-muted",
276
+ destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90"
277
+ },
278
+ size: {
279
+ sm: "h-10 w-10",
280
+ md: "h-14 w-14",
281
+ lg: "h-16 w-16"
282
+ },
283
+ position: {
284
+ "bottom-right": "bottom-6 right-6",
285
+ "bottom-left": "bottom-6 left-6",
286
+ "bottom-center": "bottom-6 left-1/2 -translate-x-1/2",
287
+ "top-right": "top-6 right-6",
288
+ "top-left": "top-6 left-6"
289
+ }
290
+ },
291
+ defaultVariants: {
292
+ variant: "primary",
293
+ size: "md",
294
+ position: "bottom-right"
295
+ }
296
+ });
297
+ var FAB = forwardRef(
298
+ ({ className, variant, size, position, type = "button", ...props }, ref) => /* @__PURE__ */ jsx(
299
+ "button",
300
+ {
301
+ ref,
302
+ type,
303
+ className: cn(fabVariants({ variant, size, position }), className),
304
+ ...props
305
+ }
306
+ )
307
+ );
308
+ FAB.displayName = "FAB";
309
+ var CopyButton = forwardRef(
310
+ ({ text, resetAfter = 2e3, children, variant = "ghost", "aria-label": ariaLabel, ...props }, ref) => {
311
+ const { copied, copy } = useClipboard({ resetAfter });
312
+ const label = copied ? "Copied" : ariaLabel ?? "Copy";
313
+ const content = typeof children === "function" ? children({ copied }) : children ?? /* @__PURE__ */ jsx(Icon, { icon: copied ? Check : Copy, size: 16 });
314
+ return /* @__PURE__ */ jsx(
315
+ Button,
316
+ {
317
+ ref,
318
+ variant,
319
+ "aria-label": label,
320
+ onClick: () => void copy(text),
321
+ ...props,
322
+ children: content
323
+ }
324
+ );
325
+ }
326
+ );
327
+ CopyButton.displayName = "CopyButton";
328
+ var DisclosureButton = forwardRef(
329
+ ({
330
+ children,
331
+ open,
332
+ defaultOpen = false,
333
+ onOpenChange,
334
+ onClick,
335
+ chevronSide = "right",
336
+ className,
337
+ type = "button",
338
+ ...props
339
+ }, ref) => {
340
+ const [value, setValue] = useControlled({
341
+ controlled: open,
342
+ default: defaultOpen,
343
+ onChange: onOpenChange
344
+ });
345
+ const chevron = /* @__PURE__ */ jsx(
346
+ Icon,
347
+ {
348
+ icon: ChevronDown,
349
+ size: 16,
350
+ className: cn("transition-transform", value && "rotate-180")
351
+ }
352
+ );
353
+ return /* @__PURE__ */ jsxs(
354
+ "button",
355
+ {
356
+ ref,
357
+ type,
358
+ "aria-expanded": value,
359
+ "data-state": value ? "open" : "closed",
360
+ "data-disabled": dataAttr(props.disabled),
361
+ onClick: (e) => {
362
+ onClick?.(e);
363
+ if (!e.defaultPrevented) setValue(!value);
364
+ },
365
+ className: cn(
366
+ "inline-flex w-full items-center justify-between gap-2 rounded-md px-3 py-2 text-sm font-medium text-foreground transition-colors hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",
367
+ className
368
+ ),
369
+ ...props,
370
+ children: [
371
+ chevronSide === "left" && chevron,
372
+ /* @__PURE__ */ jsx("span", { className: "flex-1 text-left", children }),
373
+ chevronSide === "right" && chevron
374
+ ]
375
+ }
376
+ );
377
+ }
378
+ );
379
+ DisclosureButton.displayName = "DisclosureButton";
380
+
381
+ // src/actions/overlayButton/OverlayButton.variants.ts
382
+ var overlayButtonVariants = tv$1({
383
+ base: "absolute z-10 inline-flex items-center justify-center rounded-full bg-inverse/70 text-inverse-foreground backdrop-blur-sm transition-opacity hover:bg-inverse/90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
384
+ variants: {
385
+ size: {
386
+ xs: "h-6 w-6",
387
+ sm: "h-8 w-8",
388
+ md: "h-10 w-10"
389
+ },
390
+ position: {
391
+ "top-right": "top-2 right-2",
392
+ "top-left": "top-2 left-2",
393
+ "bottom-right": "bottom-2 right-2",
394
+ "bottom-left": "bottom-2 left-2",
395
+ center: "top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2"
396
+ },
397
+ appearOn: {
398
+ always: "opacity-100",
399
+ hover: "opacity-0 group-hover:opacity-100"
400
+ }
401
+ },
402
+ defaultVariants: {
403
+ size: "sm",
404
+ position: "top-right",
405
+ appearOn: "always"
406
+ }
407
+ });
408
+ var OverlayButton = forwardRef(
409
+ ({ className, size, position, appearOn, type = "button", ...props }, ref) => /* @__PURE__ */ jsx(
410
+ "button",
411
+ {
412
+ ref,
413
+ type,
414
+ className: cn(overlayButtonVariants({ size, position, appearOn }), className),
415
+ ...props
416
+ }
417
+ )
418
+ );
419
+ OverlayButton.displayName = "OverlayButton";
420
+
421
+ export { Button, ButtonGroup, CopyButton, DisclosureButton, FAB, IconButton, Link, OverlayButton, SegmentedControl, ToggleButton, ToggleButtonGroup, buttonVariants, fabVariants, iconButtonVariants, linkVariants, overlayButtonVariants, toggleButtonVariants };
422
+ //# sourceMappingURL=chunk-D5CHR6RX.js.map
423
+ //# sourceMappingURL=chunk-D5CHR6RX.js.map