@tosui/react 0.1.1 → 0.1.2

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 (275) hide show
  1. package/dist/components/Accordion/Accordion.d.ts.map +1 -1
  2. package/dist/components/Accordion/Accordion.js +109 -0
  3. package/dist/components/Accordion/Accordion.js.map +1 -0
  4. package/dist/components/Accordion/accordion.module.css +36 -0
  5. package/dist/components/Accordion/accordion.module.css.js +27 -0
  6. package/dist/components/Accordion/accordion.module.css.js.map +1 -0
  7. package/dist/components/Alert/Alert.js +109 -0
  8. package/dist/components/Alert/Alert.js.map +1 -0
  9. package/dist/components/Alert/alert.module.css +27 -0
  10. package/dist/components/Alert/alert.module.css.js +24 -0
  11. package/dist/components/Alert/alert.module.css.js.map +1 -0
  12. package/dist/components/Avatar/Avatar.d.ts.map +1 -1
  13. package/dist/components/Avatar/Avatar.js +72 -0
  14. package/dist/components/Avatar/Avatar.js.map +1 -0
  15. package/dist/components/Avatar/avatar.module.css +14 -0
  16. package/dist/components/Avatar/avatar.module.css.js +15 -0
  17. package/dist/components/Avatar/avatar.module.css.js.map +1 -0
  18. package/dist/components/Badge/Badge.js +66 -0
  19. package/dist/components/Badge/Badge.js.map +1 -0
  20. package/dist/components/Badge/badge.module.css +3 -0
  21. package/dist/components/Badge/badge.module.css.js +9 -0
  22. package/dist/components/Badge/badge.module.css.js.map +1 -0
  23. package/dist/components/Box/Box.js +217 -0
  24. package/dist/components/Box/Box.js.map +1 -0
  25. package/dist/components/Box/borders/borders.js +91 -0
  26. package/dist/components/Box/borders/borders.js.map +1 -0
  27. package/dist/components/Box/borders/borders.module.css +49 -0
  28. package/dist/components/Box/borders/borders.module.css.js +46 -0
  29. package/dist/components/Box/borders/borders.module.css.js.map +1 -0
  30. package/dist/components/Box/colors/colors.js +45 -0
  31. package/dist/components/Box/colors/colors.js.map +1 -0
  32. package/dist/components/Box/colors/colors.module.css +113 -0
  33. package/dist/components/Box/colors/colors.module.css.js +114 -0
  34. package/dist/components/Box/colors/colors.module.css.js.map +1 -0
  35. package/dist/components/Box/display/display.js +52 -0
  36. package/dist/components/Box/display/display.js.map +1 -0
  37. package/dist/components/Box/display/display.module.css +375 -0
  38. package/dist/components/Box/display/display.module.css.js +318 -0
  39. package/dist/components/Box/display/display.module.css.js.map +1 -0
  40. package/dist/components/Box/flexbox/flexbox.js +139 -0
  41. package/dist/components/Box/flexbox/flexbox.js.map +1 -0
  42. package/dist/components/Box/flexbox/flexbox.module.css +65 -0
  43. package/dist/components/Box/flexbox/flexbox.module.css.js +62 -0
  44. package/dist/components/Box/flexbox/flexbox.module.css.js.map +1 -0
  45. package/dist/components/Box/grid/grid.js +49 -0
  46. package/dist/components/Box/grid/grid.js.map +1 -0
  47. package/dist/components/Box/grid/grid.module.css +19 -0
  48. package/dist/components/Box/grid/grid.module.css.js +20 -0
  49. package/dist/components/Box/grid/grid.module.css.js.map +1 -0
  50. package/dist/components/Box/inset/inset.js +96 -0
  51. package/dist/components/Box/inset/inset.js.map +1 -0
  52. package/dist/components/Box/inset/inset.module.css +187 -0
  53. package/dist/components/Box/inset/inset.module.css.js +174 -0
  54. package/dist/components/Box/inset/inset.module.css.js.map +1 -0
  55. package/dist/components/Box/interactions/interactions.js +45 -0
  56. package/dist/components/Box/interactions/interactions.js.map +1 -0
  57. package/dist/components/Box/interactions/interactions.module.css +43 -0
  58. package/dist/components/Box/interactions/interactions.module.css.js +44 -0
  59. package/dist/components/Box/interactions/interactions.module.css.js.map +1 -0
  60. package/dist/components/Box/margin/margin.js +96 -0
  61. package/dist/components/Box/margin/margin.js.map +1 -0
  62. package/dist/components/Box/margin/margin.module.css +187 -0
  63. package/dist/components/Box/margin/margin.module.css.js +174 -0
  64. package/dist/components/Box/margin/margin.module.css.js.map +1 -0
  65. package/dist/components/Box/opacity/opacity.js +52 -0
  66. package/dist/components/Box/opacity/opacity.js.map +1 -0
  67. package/dist/components/Box/opacity/opacity.module.css +51 -0
  68. package/dist/components/Box/opacity/opacity.module.css.js +174 -0
  69. package/dist/components/Box/opacity/opacity.module.css.js.map +1 -0
  70. package/dist/components/Box/overflow/overflow.js +69 -0
  71. package/dist/components/Box/overflow/overflow.js.map +1 -0
  72. package/dist/components/Box/overflow/overflow.module.css +155 -0
  73. package/dist/components/Box/overflow/overflow.module.css.js +510 -0
  74. package/dist/components/Box/overflow/overflow.module.css.js.map +1 -0
  75. package/dist/components/Box/padding/padding.js +96 -0
  76. package/dist/components/Box/padding/padding.js.map +1 -0
  77. package/dist/components/Box/padding/padding.module.css +187 -0
  78. package/dist/components/Box/padding/padding.module.css.js +174 -0
  79. package/dist/components/Box/padding/padding.module.css.js.map +1 -0
  80. package/dist/components/Box/position/position.js +52 -0
  81. package/dist/components/Box/position/position.js.map +1 -0
  82. package/dist/components/Box/position/position.module.css +234 -0
  83. package/dist/components/Box/position/position.module.css.js +214 -0
  84. package/dist/components/Box/position/position.module.css.js.map +1 -0
  85. package/dist/components/Box/reset/reset.js +6 -0
  86. package/dist/components/Box/reset/reset.js.map +1 -0
  87. package/dist/components/Box/reset/reset.module.css +23 -0
  88. package/dist/components/Box/reset/reset.module.css.js +9 -0
  89. package/dist/components/Box/reset/reset.module.css.js.map +1 -0
  90. package/dist/components/Box/roundness/roundness.js +92 -0
  91. package/dist/components/Box/roundness/roundness.js.map +1 -0
  92. package/dist/components/Box/roundness/roundness.module.css +47 -0
  93. package/dist/components/Box/roundness/roundness.module.css.js +46 -0
  94. package/dist/components/Box/roundness/roundness.module.css.js.map +1 -0
  95. package/dist/components/Box/shadows/shadows.js +52 -0
  96. package/dist/components/Box/shadows/shadows.js.map +1 -0
  97. package/dist/components/Box/shadows/shadows.module.css +51 -0
  98. package/dist/components/Box/shadows/shadows.module.css.js +174 -0
  99. package/dist/components/Box/shadows/shadows.module.css.js.map +1 -0
  100. package/dist/components/Box/shared/constants.js +21 -0
  101. package/dist/components/Box/shared/constants.js.map +1 -0
  102. package/dist/components/Box/shared/spacing.js +10 -0
  103. package/dist/components/Box/shared/spacing.js.map +1 -0
  104. package/dist/components/Box/sizing/sizing.js +75 -0
  105. package/dist/components/Box/sizing/sizing.js.map +1 -0
  106. package/dist/components/Box/sizing/sizing.module.css +281 -0
  107. package/dist/components/Box/sizing/sizing.module.css.js +258 -0
  108. package/dist/components/Box/sizing/sizing.module.css.js.map +1 -0
  109. package/dist/components/Box/text/text.js +45 -0
  110. package/dist/components/Box/text/text.js.map +1 -0
  111. package/dist/components/Box/text/text.module.css +29 -0
  112. package/dist/components/Box/text/text.module.css.js +30 -0
  113. package/dist/components/Box/text/text.module.css.js.map +1 -0
  114. package/dist/components/Box/typography/typography.js +27 -0
  115. package/dist/components/Box/typography/typography.js.map +1 -0
  116. package/dist/components/Box/typography/typography.module.css +26 -0
  117. package/dist/components/Box/typography/typography.module.css.js +25 -0
  118. package/dist/components/Box/typography/typography.module.css.js.map +1 -0
  119. package/dist/components/Box/zIndex/zIndex.js +52 -0
  120. package/dist/components/Box/zIndex/zIndex.js.map +1 -0
  121. package/dist/components/Box/zIndex/zIndex.module.css +90 -0
  122. package/dist/components/Box/zIndex/zIndex.module.css.js +300 -0
  123. package/dist/components/Box/zIndex/zIndex.module.css.js.map +1 -0
  124. package/dist/components/Breadcrumb/Breadcrumb.js +78 -0
  125. package/dist/components/Breadcrumb/Breadcrumb.js.map +1 -0
  126. package/dist/components/Breadcrumb/breadcrumb.module.css +25 -0
  127. package/dist/components/Breadcrumb/breadcrumb.module.css.js +21 -0
  128. package/dist/components/Breadcrumb/breadcrumb.module.css.js.map +1 -0
  129. package/dist/components/Button/Button.js +129 -0
  130. package/dist/components/Button/Button.js.map +1 -0
  131. package/dist/components/Button/button.module.css +17 -0
  132. package/dist/components/Button/button.module.css.js +18 -0
  133. package/dist/components/Button/button.module.css.js.map +1 -0
  134. package/dist/components/Card/Card.js +60 -0
  135. package/dist/components/Card/Card.js.map +1 -0
  136. package/dist/components/Card/card.module.css +16 -0
  137. package/dist/components/Card/card.module.css.js +18 -0
  138. package/dist/components/Card/card.module.css.js.map +1 -0
  139. package/dist/components/Checkbox/Checkbox.js +74 -0
  140. package/dist/components/Checkbox/Checkbox.js.map +1 -0
  141. package/dist/components/Checkbox/checkbox.module.css +65 -0
  142. package/dist/components/Checkbox/checkbox.module.css.js +15 -0
  143. package/dist/components/Checkbox/checkbox.module.css.js.map +1 -0
  144. package/dist/components/Code/Code.js +32 -0
  145. package/dist/components/Code/Code.js.map +1 -0
  146. package/dist/components/Container/Container.js +44 -0
  147. package/dist/components/Container/Container.js.map +1 -0
  148. package/dist/components/Divider/Divider.js +48 -0
  149. package/dist/components/Divider/Divider.js.map +1 -0
  150. package/dist/components/Flex/Flex.js +48 -0
  151. package/dist/components/Flex/Flex.js.map +1 -0
  152. package/dist/components/FormField/FormField.js +52 -0
  153. package/dist/components/FormField/FormField.js.map +1 -0
  154. package/dist/components/Grid/Grid.js +41 -0
  155. package/dist/components/Grid/Grid.js.map +1 -0
  156. package/dist/components/HStack/HStack.js +17 -0
  157. package/dist/components/HStack/HStack.js.map +1 -0
  158. package/dist/components/Heading/Heading.js +42 -0
  159. package/dist/components/Heading/Heading.js.map +1 -0
  160. package/dist/components/IconButton/IconButton.js +93 -0
  161. package/dist/components/IconButton/IconButton.js.map +1 -0
  162. package/dist/components/IconButton/iconbutton.module.css +18 -0
  163. package/dist/components/IconButton/iconbutton.module.css.js +18 -0
  164. package/dist/components/IconButton/iconbutton.module.css.js.map +1 -0
  165. package/dist/components/Image/Image.d.ts.map +1 -1
  166. package/dist/components/Image/Image.js +101 -0
  167. package/dist/components/Image/Image.js.map +1 -0
  168. package/dist/components/Image/image.module.css +44 -0
  169. package/dist/components/Image/image.module.css.js +36 -0
  170. package/dist/components/Image/image.module.css.js.map +1 -0
  171. package/dist/components/Input/Input.js +57 -0
  172. package/dist/components/Input/Input.js.map +1 -0
  173. package/dist/components/Input/input.module.css +29 -0
  174. package/dist/components/Input/input.module.css.js +12 -0
  175. package/dist/components/Input/input.module.css.js.map +1 -0
  176. package/dist/components/Label/Label.js +36 -0
  177. package/dist/components/Label/Label.js.map +1 -0
  178. package/dist/components/Link/Link.js +38 -0
  179. package/dist/components/Link/Link.js.map +1 -0
  180. package/dist/components/Link/link.module.css +28 -0
  181. package/dist/components/Link/link.module.css.js +16 -0
  182. package/dist/components/Link/link.module.css.js.map +1 -0
  183. package/dist/components/List/List.js +51 -0
  184. package/dist/components/List/List.js.map +1 -0
  185. package/dist/components/List/list.module.css +45 -0
  186. package/dist/components/List/list.module.css.js +24 -0
  187. package/dist/components/List/list.module.css.js.map +1 -0
  188. package/dist/components/Menu/Menu.d.ts.map +1 -1
  189. package/dist/components/Menu/Menu.js +143 -0
  190. package/dist/components/Menu/Menu.js.map +1 -0
  191. package/dist/components/Menu/menu.module.css +24 -0
  192. package/dist/components/Menu/menu.module.css.js +18 -0
  193. package/dist/components/Menu/menu.module.css.js.map +1 -0
  194. package/dist/components/Modal/Modal.d.ts.map +1 -1
  195. package/dist/components/Modal/Modal.js +130 -0
  196. package/dist/components/Modal/Modal.js.map +1 -0
  197. package/dist/components/Modal/modal.module.css +26 -0
  198. package/dist/components/Modal/modal.module.css.js +21 -0
  199. package/dist/components/Modal/modal.module.css.js.map +1 -0
  200. package/dist/components/Pagination/Pagination.js +125 -0
  201. package/dist/components/Pagination/Pagination.js.map +1 -0
  202. package/dist/components/Pagination/pagination.module.css +3 -0
  203. package/dist/components/Pagination/pagination.module.css.js +9 -0
  204. package/dist/components/Pagination/pagination.module.css.js.map +1 -0
  205. package/dist/components/Popover/Popover.d.ts.map +1 -1
  206. package/dist/components/Popover/Popover.js +144 -0
  207. package/dist/components/Popover/Popover.js.map +1 -0
  208. package/dist/components/Popover/popover.module.css +11 -0
  209. package/dist/components/Popover/popover.module.css.js +15 -0
  210. package/dist/components/Popover/popover.module.css.js.map +1 -0
  211. package/dist/components/Progress/Progress.js +54 -0
  212. package/dist/components/Progress/Progress.js.map +1 -0
  213. package/dist/components/Progress/progress.module.css +24 -0
  214. package/dist/components/Progress/progress.module.css.js +15 -0
  215. package/dist/components/Progress/progress.module.css.js.map +1 -0
  216. package/dist/components/Radio/Radio.js +70 -0
  217. package/dist/components/Radio/Radio.js.map +1 -0
  218. package/dist/components/Radio/radio.module.css +48 -0
  219. package/dist/components/Radio/radio.module.css.js +12 -0
  220. package/dist/components/Radio/radio.module.css.js.map +1 -0
  221. package/dist/components/Select/Select.js +57 -0
  222. package/dist/components/Select/Select.js.map +1 -0
  223. package/dist/components/Select/select.module.css +43 -0
  224. package/dist/components/Select/select.module.css.js +12 -0
  225. package/dist/components/Select/select.module.css.js.map +1 -0
  226. package/dist/components/Skeleton/Skeleton.js +37 -0
  227. package/dist/components/Skeleton/Skeleton.js.map +1 -0
  228. package/dist/components/Skeleton/skeleton.module.css +26 -0
  229. package/dist/components/Skeleton/skeleton.module.css.js +9 -0
  230. package/dist/components/Skeleton/skeleton.module.css.js.map +1 -0
  231. package/dist/components/Spacer/Spacer.js +16 -0
  232. package/dist/components/Spacer/Spacer.js.map +1 -0
  233. package/dist/components/Spinner/Spinner.js +41 -0
  234. package/dist/components/Spinner/Spinner.js.map +1 -0
  235. package/dist/components/Spinner/spinner.module.css +21 -0
  236. package/dist/components/Spinner/spinner.module.css.js +9 -0
  237. package/dist/components/Spinner/spinner.module.css.js.map +1 -0
  238. package/dist/components/Stack/Stack.js +35 -0
  239. package/dist/components/Stack/Stack.js.map +1 -0
  240. package/dist/components/Switch/Switch.js +83 -0
  241. package/dist/components/Switch/Switch.js.map +1 -0
  242. package/dist/components/Switch/switch.module.css +48 -0
  243. package/dist/components/Switch/switch.module.css.js +15 -0
  244. package/dist/components/Switch/switch.module.css.js.map +1 -0
  245. package/dist/components/Tabs/Tabs.d.ts.map +1 -1
  246. package/dist/components/Tabs/Tabs.js +87 -0
  247. package/dist/components/Tabs/Tabs.js.map +1 -0
  248. package/dist/components/Tabs/tabs.module.css +55 -0
  249. package/dist/components/Tabs/tabs.module.css.js +27 -0
  250. package/dist/components/Tabs/tabs.module.css.js.map +1 -0
  251. package/dist/components/Text/Text.js +40 -0
  252. package/dist/components/Text/Text.js.map +1 -0
  253. package/dist/components/Text/text.module.css +9 -0
  254. package/dist/components/Text/text.module.css.js +12 -0
  255. package/dist/components/Text/text.module.css.js.map +1 -0
  256. package/dist/components/Textarea/Textarea.js +70 -0
  257. package/dist/components/Textarea/Textarea.js.map +1 -0
  258. package/dist/components/Textarea/textarea.module.css +46 -0
  259. package/dist/components/Textarea/textarea.module.css.js +24 -0
  260. package/dist/components/Textarea/textarea.module.css.js.map +1 -0
  261. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  262. package/dist/components/Tooltip/Tooltip.js +135 -0
  263. package/dist/components/Tooltip/Tooltip.js.map +1 -0
  264. package/dist/components/Tooltip/tooltip.module.css +4 -0
  265. package/dist/components/Tooltip/tooltip.module.css.js +9 -0
  266. package/dist/components/Tooltip/tooltip.module.css.js.map +1 -0
  267. package/dist/components/VStack/VStack.js +17 -0
  268. package/dist/components/VStack/VStack.js.map +1 -0
  269. package/dist/fonts.css +23 -1
  270. package/dist/index.css +3320 -1
  271. package/dist/index.d.ts.map +1 -1
  272. package/dist/index.js +99 -5521
  273. package/dist/index.js.map +1 -1
  274. package/dist/styles/styles.css +353 -0
  275. package/package.json +8 -4
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../src/components/Accordion/Accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAuC,MAAM,OAAO,CAAC;AA4B5E,MAAM,MAAM,cAAc,GAAG;IAC3B,iCAAiC;IACjC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,oCAAoC;IACpC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAMF;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,EACxB,YAAY,EACZ,aAAqB,EACrB,SAAS,EACT,QAAQ,GACT,EAAE,cAAc,2CAgChB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,KAAK,EACL,QAAgB,EAChB,SAAS,EACT,QAAQ,GACT,EAAE,kBAAkB,2CAkDpB"}
1
+ {"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../src/components/Accordion/Accordion.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAuC,MAAM,OAAO,CAAC;AA4B5E,MAAM,MAAM,cAAc,GAAG;IAC3B,iCAAiC;IACjC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,oCAAoC;IACpC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAMF;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,EACxB,YAAY,EACZ,aAAqB,EACrB,SAAS,EACT,QAAQ,GACT,EAAE,cAAc,2CAgChB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,KAAK,EACL,QAAgB,EAChB,SAAS,EACT,QAAQ,GACT,EAAE,kBAAkB,2CAkDpB"}
@@ -0,0 +1,109 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { createContext, useState, useContext } from "react";
4
+ import clsx from "clsx";
5
+ import { Box } from "../Box/Box.js";
6
+ import styles from "./accordion.module.css.js";
7
+ const AccordionContext = createContext(null);
8
+ function useAccordionContext() {
9
+ const context = useContext(AccordionContext);
10
+ if (!context)
11
+ throw new Error("AccordionItem must be used within Accordion");
12
+ return context;
13
+ }
14
+ function Accordion({
15
+ defaultIndex,
16
+ allowMultiple = false,
17
+ className,
18
+ children
19
+ }) {
20
+ const [expandedIndex, setExpandedIndex] = useState(defaultIndex ?? (allowMultiple ? [] : null));
21
+ const toggleIndex = (index) => {
22
+ if (allowMultiple) {
23
+ const current = expandedIndex || [];
24
+ const newExpanded = current.includes(index) ? current.filter((i) => i !== index) : [...current, index];
25
+ setExpandedIndex(newExpanded);
26
+ } else {
27
+ setExpandedIndex(expandedIndex === index ? null : index);
28
+ }
29
+ };
30
+ return /* @__PURE__ */ jsx(
31
+ AccordionContext.Provider,
32
+ {
33
+ value: { expandedIndex, toggleIndex, allowMultiple },
34
+ children: /* @__PURE__ */ jsx(
35
+ Box,
36
+ {
37
+ border: "thin",
38
+ borderColor: "border",
39
+ rounded: "md",
40
+ overflow: "hidden",
41
+ className: clsx(styles.accordion, className),
42
+ children
43
+ }
44
+ )
45
+ }
46
+ );
47
+ }
48
+ function AccordionItem({
49
+ index,
50
+ title,
51
+ disabled = false,
52
+ className,
53
+ children
54
+ }) {
55
+ const { expandedIndex, toggleIndex, allowMultiple } = useAccordionContext();
56
+ const isExpanded = allowMultiple ? (expandedIndex || []).includes(index) : expandedIndex === index;
57
+ return /* @__PURE__ */ jsxs(
58
+ Box,
59
+ {
60
+ className: clsx(
61
+ styles.item,
62
+ isExpanded && styles.expanded,
63
+ disabled && styles.disabled,
64
+ className
65
+ ),
66
+ children: [
67
+ /* @__PURE__ */ jsxs(
68
+ Box,
69
+ {
70
+ as: "button",
71
+ type: "button",
72
+ display: "flex",
73
+ alignItems: "center",
74
+ justifyContent: "space-between",
75
+ w: "100%",
76
+ p: 4,
77
+ bg: "transparent",
78
+ border: "none",
79
+ borderBottom: isExpanded ? "thin" : "none",
80
+ borderColor: "border",
81
+ cursor: disabled ? "not-allowed" : "pointer",
82
+ opacity: disabled ? "faint" : void 0,
83
+ onClick: () => !disabled && toggleIndex(index),
84
+ "aria-expanded": isExpanded,
85
+ "aria-disabled": disabled,
86
+ className: styles.button,
87
+ children: [
88
+ /* @__PURE__ */ jsx(Box, { fontWeight: "medium", children: title }),
89
+ /* @__PURE__ */ jsx(
90
+ Box,
91
+ {
92
+ as: "span",
93
+ className: clsx(styles.icon, isExpanded && styles.rotated),
94
+ children: "▾"
95
+ }
96
+ )
97
+ ]
98
+ }
99
+ ),
100
+ isExpanded && /* @__PURE__ */ jsx(Box, { p: 4, className: styles.content, children })
101
+ ]
102
+ }
103
+ );
104
+ }
105
+ export {
106
+ Accordion,
107
+ AccordionItem
108
+ };
109
+ //# sourceMappingURL=Accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.js","sources":["../../../src/components/Accordion/Accordion.tsx"],"sourcesContent":["\"use client\";\n\nimport { type ReactNode, createContext, useContext, useState } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./accordion.module.css\";\n\n// ============================================================================\n// Context\n// ============================================================================\n\ntype AccordionContextValue = {\n expandedIndex: number | number[] | null;\n toggleIndex: (index: number) => void;\n allowMultiple: boolean;\n};\n\nconst AccordionContext = createContext<AccordionContextValue | null>(null);\n\nfunction useAccordionContext() {\n const context = useContext(AccordionContext);\n if (!context)\n throw new Error(\"AccordionItem must be used within Accordion\");\n return context;\n}\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type AccordionProps = {\n /** Default expanded index(es) */\n defaultIndex?: number | number[];\n /** Allow multiple items expanded */\n allowMultiple?: boolean;\n /** Additional class name */\n className?: string;\n /** Accordion items */\n children?: ReactNode;\n};\n\nexport type AccordionItemProps = {\n /** Item index (set manually) */\n index: number;\n /** Item title */\n title: ReactNode;\n /** Whether disabled */\n disabled?: boolean;\n /** Additional class name */\n className?: string;\n /** Item content */\n children?: ReactNode;\n};\n\n// ============================================================================\n// Components\n// ============================================================================\n\n/**\n * Accordion - Collapsible sections container\n *\n * An accordion component that:\n * - Supports single or multiple expanded items\n * - Uses context for state management\n * - Animated expand/collapse\n */\nexport function Accordion({\n defaultIndex,\n allowMultiple = false,\n className,\n children,\n}: AccordionProps) {\n const [expandedIndex, setExpandedIndex] = useState<\n number | number[] | null\n >(defaultIndex ?? (allowMultiple ? [] : null));\n\n const toggleIndex = (index: number) => {\n if (allowMultiple) {\n const current = (expandedIndex as number[]) || [];\n const newExpanded = current.includes(index)\n ? current.filter((i) => i !== index)\n : [...current, index];\n setExpandedIndex(newExpanded);\n } else {\n setExpandedIndex(expandedIndex === index ? null : index);\n }\n };\n\n return (\n <AccordionContext.Provider\n value={{ expandedIndex, toggleIndex, allowMultiple }}\n >\n <Box\n border=\"thin\"\n borderColor=\"border\"\n rounded=\"md\"\n overflow=\"hidden\"\n className={clsx(styles.accordion, className)}\n >\n {children}\n </Box>\n </AccordionContext.Provider>\n );\n}\n\n/**\n * AccordionItem - Individual collapsible section\n */\nexport function AccordionItem({\n index,\n title,\n disabled = false,\n className,\n children,\n}: AccordionItemProps) {\n const { expandedIndex, toggleIndex, allowMultiple } = useAccordionContext();\n\n const isExpanded = allowMultiple\n ? ((expandedIndex as number[]) || []).includes(index)\n : expandedIndex === index;\n\n return (\n <Box\n className={clsx(\n styles.item,\n isExpanded && styles.expanded,\n disabled && styles.disabled,\n className\n )}\n >\n <Box\n as=\"button\"\n type=\"button\"\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n w=\"100%\"\n p={4}\n bg=\"transparent\"\n border=\"none\"\n borderBottom={isExpanded ? \"thin\" : \"none\"}\n borderColor=\"border\"\n cursor={disabled ? \"not-allowed\" : \"pointer\"}\n opacity={disabled ? \"faint\" : undefined}\n onClick={() => !disabled && toggleIndex(index)}\n aria-expanded={isExpanded}\n aria-disabled={disabled}\n className={styles.button}\n >\n <Box fontWeight=\"medium\">{title}</Box>\n <Box\n as=\"span\"\n className={clsx(styles.icon, isExpanded && styles.rotated)}\n >\n ▾\n </Box>\n </Box>\n {isExpanded && (\n <Box p={4} className={styles.content}>\n {children}\n </Box>\n )}\n </Box>\n );\n}\n"],"names":[],"mappings":";;;;;;AAiBA,MAAM,mBAAmB,cAA4C,IAAI;AAEzE,SAAS,sBAAsB;AAC7B,QAAM,UAAU,WAAW,gBAAgB;AAC3C,MAAI,CAAC;AACH,UAAM,IAAI,MAAM,6CAA6C;AAC/D,SAAO;AACT;AA0CO,SAAS,UAAU;AAAA,EACxB;AAAA,EACA,gBAAgB;AAAA,EAChB;AAAA,EACA;AACF,GAAmB;AACjB,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAExC,iBAAiB,gBAAgB,KAAK,KAAK;AAE7C,QAAM,cAAc,CAAC,UAAkB;AACrC,QAAI,eAAe;AACjB,YAAM,UAAW,iBAA8B,CAAA;AAC/C,YAAM,cAAc,QAAQ,SAAS,KAAK,IACtC,QAAQ,OAAO,CAAC,MAAM,MAAM,KAAK,IACjC,CAAC,GAAG,SAAS,KAAK;AACtB,uBAAiB,WAAW;AAAA,IAC9B,OAAO;AACL,uBAAiB,kBAAkB,QAAQ,OAAO,KAAK;AAAA,IACzD;AAAA,EACF;AAEA,SACE;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC,OAAO,EAAE,eAAe,aAAa,cAAA;AAAA,MAErC,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,SAAQ;AAAA,UACR,UAAS;AAAA,UACT,WAAW,KAAK,OAAO,WAAW,SAAS;AAAA,UAE1C;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN;AAKO,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA;AACF,GAAuB;AACrB,QAAM,EAAE,eAAe,aAAa,cAAA,IAAkB,oBAAA;AAEtD,QAAM,aAAa,iBACb,iBAA8B,CAAA,GAAI,SAAS,KAAK,IAClD,kBAAkB;AAEtB,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT,OAAO;AAAA,QACP,cAAc,OAAO;AAAA,QACrB,YAAY,OAAO;AAAA,QACnB;AAAA,MAAA;AAAA,MAGF,UAAA;AAAA,QAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAG;AAAA,YACH,MAAK;AAAA,YACL,SAAQ;AAAA,YACR,YAAW;AAAA,YACX,gBAAe;AAAA,YACf,GAAE;AAAA,YACF,GAAG;AAAA,YACH,IAAG;AAAA,YACH,QAAO;AAAA,YACP,cAAc,aAAa,SAAS;AAAA,YACpC,aAAY;AAAA,YACZ,QAAQ,WAAW,gBAAgB;AAAA,YACnC,SAAS,WAAW,UAAU;AAAA,YAC9B,SAAS,MAAM,CAAC,YAAY,YAAY,KAAK;AAAA,YAC7C,iBAAe;AAAA,YACf,iBAAe;AAAA,YACf,WAAW,OAAO;AAAA,YAElB,UAAA;AAAA,cAAA,oBAAC,KAAA,EAAI,YAAW,UAAU,UAAA,OAAM;AAAA,cAChC;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,IAAG;AAAA,kBACH,WAAW,KAAK,OAAO,MAAM,cAAc,OAAO,OAAO;AAAA,kBAC1D,UAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,YAED;AAAA,UAAA;AAAA,QAAA;AAAA,QAED,kCACE,KAAA,EAAI,GAAG,GAAG,WAAW,OAAO,SAC1B,SAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;"}
@@ -0,0 +1,36 @@
1
+ ._accordion_173dk_1 {
2
+ /* Container */
3
+ }
4
+
5
+ ._item_173dk_5 {
6
+ border-bottom: 1px solid var(--t-color-border);
7
+ }
8
+
9
+ ._item_173dk_5:last-child {
10
+ border-bottom: none;
11
+ }
12
+
13
+ ._button_173dk_13 {
14
+ transition: background-color 0.15s ease;
15
+ text-align: left;
16
+ }
17
+
18
+ ._button_173dk_13:hover:not(:disabled) {
19
+ background-color: var(--t-color-surface-hover, rgba(0, 0, 0, 0.02));
20
+ }
21
+
22
+ ._icon_173dk_22 {
23
+ transition: transform 0.2s ease;
24
+ }
25
+
26
+ ._rotated_173dk_26 {
27
+ transform: rotate(180deg);
28
+ }
29
+
30
+ ._content_173dk_30 {
31
+ /* Content panel */
32
+ }
33
+
34
+ ._disabled_173dk_34 {
35
+ opacity: 0.5;
36
+ }
@@ -0,0 +1,27 @@
1
+ const accordion = "_accordion_173dk_1";
2
+ const item = "_item_173dk_5";
3
+ const button = "_button_173dk_13";
4
+ const icon = "_icon_173dk_22";
5
+ const rotated = "_rotated_173dk_26";
6
+ const content = "_content_173dk_30";
7
+ const disabled = "_disabled_173dk_34";
8
+ const styles = {
9
+ accordion,
10
+ item,
11
+ button,
12
+ icon,
13
+ rotated,
14
+ content,
15
+ disabled
16
+ };
17
+ export {
18
+ accordion,
19
+ button,
20
+ content,
21
+ styles as default,
22
+ disabled,
23
+ icon,
24
+ item,
25
+ rotated
26
+ };
27
+ //# sourceMappingURL=accordion.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
@@ -0,0 +1,109 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import "react";
3
+ import clsx from "clsx";
4
+ import { Box } from "../Box/Box.js";
5
+ import { HStack } from "../HStack/HStack.js";
6
+ import { VStack } from "../VStack/VStack.js";
7
+ import styles from "./alert.module.css.js";
8
+ const defaultIcons = {
9
+ success: /* @__PURE__ */ jsx("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "currentColor", children: /* @__PURE__ */ jsx(
10
+ "path",
11
+ {
12
+ fillRule: "evenodd",
13
+ d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",
14
+ clipRule: "evenodd"
15
+ }
16
+ ) }),
17
+ warning: /* @__PURE__ */ jsx("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "currentColor", children: /* @__PURE__ */ jsx(
18
+ "path",
19
+ {
20
+ fillRule: "evenodd",
21
+ d: "M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",
22
+ clipRule: "evenodd"
23
+ }
24
+ ) }),
25
+ error: /* @__PURE__ */ jsx("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "currentColor", children: /* @__PURE__ */ jsx(
26
+ "path",
27
+ {
28
+ fillRule: "evenodd",
29
+ d: "M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z",
30
+ clipRule: "evenodd"
31
+ }
32
+ ) }),
33
+ info: /* @__PURE__ */ jsx("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "currentColor", children: /* @__PURE__ */ jsx(
34
+ "path",
35
+ {
36
+ fillRule: "evenodd",
37
+ d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z",
38
+ clipRule: "evenodd"
39
+ }
40
+ ) })
41
+ };
42
+ const CloseIcon = /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "currentColor", children: /* @__PURE__ */ jsx(
43
+ "path",
44
+ {
45
+ fillRule: "evenodd",
46
+ d: "M4.293 4.293a1 1 0 011.414 0L8 6.586l2.293-2.293a1 1 0 111.414 1.414L9.414 8l2.293 2.293a1 1 0 01-1.414 1.414L8 9.414l-2.293 2.293a1 1 0 01-1.414-1.414L6.586 8 4.293 5.707a1 1 0 010-1.414z",
47
+ clipRule: "evenodd"
48
+ }
49
+ ) });
50
+ function Alert({
51
+ status = "info",
52
+ title,
53
+ children,
54
+ icon,
55
+ onClose,
56
+ className
57
+ }) {
58
+ const displayIcon = icon ?? defaultIcons[status];
59
+ return /* @__PURE__ */ jsx(
60
+ Box,
61
+ {
62
+ role: "alert",
63
+ p: 4,
64
+ rounded: "md",
65
+ bg: `${status}-subtle`,
66
+ className: clsx(styles.alert, styles[status], className),
67
+ children: /* @__PURE__ */ jsxs(HStack, { gap: 3, align: "start", children: [
68
+ /* @__PURE__ */ jsx(
69
+ Box,
70
+ {
71
+ as: "span",
72
+ display: "inline-flex",
73
+ alignItems: "center",
74
+ flexShrink: 0,
75
+ color: status,
76
+ "aria-hidden": "true",
77
+ children: displayIcon
78
+ }
79
+ ),
80
+ /* @__PURE__ */ jsxs(VStack, { gap: 1, flexGrow: 1, children: [
81
+ title && /* @__PURE__ */ jsx(Box, { as: "span", fontWeight: "semibold", color: "foreground", children: title }),
82
+ children && /* @__PURE__ */ jsx(Box, { as: "span", color: "foreground-muted", fontSize: "sm", children })
83
+ ] }),
84
+ onClose && /* @__PURE__ */ jsx(
85
+ Box,
86
+ {
87
+ as: "button",
88
+ display: "inline-flex",
89
+ alignItems: "center",
90
+ justifyContent: "center",
91
+ p: 1,
92
+ rounded: "sm",
93
+ bg: "transparent",
94
+ color: "foreground-muted",
95
+ cursor: "pointer",
96
+ className: styles.closeButton,
97
+ onClick: onClose,
98
+ "aria-label": "Dismiss",
99
+ children: CloseIcon
100
+ }
101
+ )
102
+ ] })
103
+ }
104
+ );
105
+ }
106
+ export {
107
+ Alert
108
+ };
109
+ //# sourceMappingURL=Alert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Alert.js","sources":["../../../src/components/Alert/Alert.tsx"],"sourcesContent":["import { type ReactNode } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport { HStack } from \"@/components/HStack/HStack\";\nimport { VStack } from \"@/components/VStack/VStack\";\nimport styles from \"./alert.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type AlertStatus = \"success\" | \"warning\" | \"error\" | \"info\";\n\nexport type AlertProps = {\n /** Status determines colors and default icon */\n status?: AlertStatus;\n /** Optional title displayed above description */\n title?: ReactNode;\n /** Description content */\n children?: ReactNode;\n /** Custom icon (overrides default per-status icon) */\n icon?: ReactNode;\n /** Callback when close button is clicked (omit to hide close button) */\n onClose?: () => void;\n /** Additional class name */\n className?: string;\n};\n\n// ============================================================================\n// Default icons per status (simple SVG)\n// ============================================================================\n\nconst defaultIcons: Record<AlertStatus, ReactNode> = {\n success: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n fillRule=\"evenodd\"\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\"\n clipRule=\"evenodd\"\n />\n </svg>\n ),\n warning: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n fillRule=\"evenodd\"\n d=\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n ),\n error: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n fillRule=\"evenodd\"\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\"\n clipRule=\"evenodd\"\n />\n </svg>\n ),\n info: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\"\n clipRule=\"evenodd\"\n />\n </svg>\n ),\n};\n\n// ============================================================================\n// Close button icon\n// ============================================================================\n\nconst CloseIcon = (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\">\n <path\n fillRule=\"evenodd\"\n d=\"M4.293 4.293a1 1 0 011.414 0L8 6.586l2.293-2.293a1 1 0 111.414 1.414L9.414 8l2.293 2.293a1 1 0 01-1.414 1.414L8 9.414l-2.293 2.293a1 1 0 01-1.414-1.414L6.586 8 4.293 5.707a1 1 0 010-1.414z\"\n clipRule=\"evenodd\"\n />\n </svg>\n);\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Alert - Status notification banner\n *\n * A contextual feedback component that provides:\n * - Four status variants: success, warning, error, info\n * - Optional title and description\n * - Default icons per status (customizable)\n * - Optional close button\n * - Accessible with role=\"alert\"\n */\nexport function Alert({\n status = \"info\",\n title,\n children,\n icon,\n onClose,\n className,\n}: AlertProps) {\n const displayIcon = icon ?? defaultIcons[status];\n\n return (\n <Box\n role=\"alert\"\n p={4}\n rounded=\"md\"\n bg={`${status}-subtle` as any}\n className={clsx(styles.alert, styles[status], className)}\n >\n <HStack gap={3} align=\"start\">\n {/* Icon */}\n <Box\n as=\"span\"\n display=\"inline-flex\"\n alignItems=\"center\"\n flexShrink={0}\n color={status as any}\n aria-hidden=\"true\"\n >\n {displayIcon}\n </Box>\n\n {/* Content */}\n <VStack gap={1} flexGrow={1}>\n {title && (\n <Box as=\"span\" fontWeight=\"semibold\" color=\"foreground\">\n {title}\n </Box>\n )}\n {children && (\n <Box as=\"span\" color=\"foreground-muted\" fontSize=\"sm\">\n {children}\n </Box>\n )}\n </VStack>\n\n {/* Close button */}\n {onClose && (\n <Box\n as=\"button\"\n display=\"inline-flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n p={1}\n rounded=\"sm\"\n bg=\"transparent\"\n color=\"foreground-muted\"\n cursor=\"pointer\"\n className={styles.closeButton}\n onClick={onClose}\n aria-label=\"Dismiss\"\n >\n {CloseIcon}\n </Box>\n )}\n </HStack>\n </Box>\n );\n}\n"],"names":[],"mappings":";;;;;;;AAgCA,MAAM,eAA+C;AAAA,EACnD,SACE,oBAAC,OAAA,EAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,gBACnD,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,UAAS;AAAA,MACT,GAAE;AAAA,MACF,UAAS;AAAA,IAAA;AAAA,EAAA,GAEb;AAAA,EAEF,SACE,oBAAC,OAAA,EAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,gBACnD,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,UAAS;AAAA,MACT,GAAE;AAAA,MACF,UAAS;AAAA,IAAA;AAAA,EAAA,GAEb;AAAA,EAEF,OACE,oBAAC,OAAA,EAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,gBACnD,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,UAAS;AAAA,MACT,GAAE;AAAA,MACF,UAAS;AAAA,IAAA;AAAA,EAAA,GAEb;AAAA,EAEF,MACE,oBAAC,OAAA,EAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,gBACnD,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,UAAS;AAAA,MACT,GAAE;AAAA,MACF,UAAS;AAAA,IAAA;AAAA,EAAA,EACX,CACF;AAEJ;AAMA,MAAM,YACJ,oBAAC,OAAA,EAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,gBACnD,UAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,UAAS;AAAA,IACT,GAAE;AAAA,IACF,UAAS;AAAA,EAAA;AACX,GACF;AAiBK,SAAS,MAAM;AAAA,EACpB,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAe;AACb,QAAM,cAAc,QAAQ,aAAa,MAAM;AAE/C,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,GAAG;AAAA,MACH,SAAQ;AAAA,MACR,IAAI,GAAG,MAAM;AAAA,MACb,WAAW,KAAK,OAAO,OAAO,OAAO,MAAM,GAAG,SAAS;AAAA,MAEvD,UAAA,qBAAC,QAAA,EAAO,KAAK,GAAG,OAAM,SAEpB,UAAA;AAAA,QAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAG;AAAA,YACH,SAAQ;AAAA,YACR,YAAW;AAAA,YACX,YAAY;AAAA,YACZ,OAAO;AAAA,YACP,eAAY;AAAA,YAEX,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAIH,qBAAC,QAAA,EAAO,KAAK,GAAG,UAAU,GACvB,UAAA;AAAA,UAAA,SACC,oBAAC,OAAI,IAAG,QAAO,YAAW,YAAW,OAAM,cACxC,UAAA,MAAA,CACH;AAAA,UAED,gCACE,KAAA,EAAI,IAAG,QAAO,OAAM,oBAAmB,UAAS,MAC9C,SAAA,CACH;AAAA,QAAA,GAEJ;AAAA,QAGC,WACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAG;AAAA,YACH,SAAQ;AAAA,YACR,YAAW;AAAA,YACX,gBAAe;AAAA,YACf,GAAG;AAAA,YACH,SAAQ;AAAA,YACR,IAAG;AAAA,YACH,OAAM;AAAA,YACN,QAAO;AAAA,YACP,WAAW,OAAO;AAAA,YAClB,SAAS;AAAA,YACT,cAAW;AAAA,YAEV,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACH,EAAA,CAEJ;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -0,0 +1,27 @@
1
+ ._alert_1ulex_1 {
2
+ border-left: 4px solid;
3
+ }
4
+
5
+ ._success_1ulex_5 {
6
+ border-left-color: var(--t-color-success-default);
7
+ }
8
+
9
+ ._warning_1ulex_9 {
10
+ border-left-color: var(--t-color-warning-default);
11
+ }
12
+
13
+ ._error_1ulex_13 {
14
+ border-left-color: var(--t-color-error-default);
15
+ }
16
+
17
+ ._info_1ulex_17 {
18
+ border-left-color: var(--t-color-info-default);
19
+ }
20
+
21
+ ._closeButton_1ulex_21 {
22
+ transition: background-color 150ms ease-in-out;
23
+ }
24
+
25
+ ._closeButton_1ulex_21:hover {
26
+ background-color: var(--t-color-border-muted);
27
+ }
@@ -0,0 +1,24 @@
1
+ const alert = "_alert_1ulex_1";
2
+ const success = "_success_1ulex_5";
3
+ const warning = "_warning_1ulex_9";
4
+ const error = "_error_1ulex_13";
5
+ const info = "_info_1ulex_17";
6
+ const closeButton = "_closeButton_1ulex_21";
7
+ const styles = {
8
+ alert,
9
+ success,
10
+ warning,
11
+ error,
12
+ info,
13
+ closeButton
14
+ };
15
+ export {
16
+ alert,
17
+ closeButton,
18
+ styles as default,
19
+ error,
20
+ info,
21
+ success,
22
+ warning
23
+ };
24
+ //# sourceMappingURL=alert.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/Avatar.tsx"],"names":[],"mappings":"AASA,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEnD,MAAM,MAAM,WAAW,GAAG;IACxB,uBAAuB;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mBAAmB;IACnB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,yBAAyB;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AA4BF;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CAAC,EACrB,GAAG,EACH,IAAI,EACJ,IAAW,EACX,OAAgB,EAChB,GAAG,EACH,SAAS,GACV,EAAE,WAAW,2CA4Cb"}
1
+ {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/Avatar.tsx"],"names":[],"mappings":"AAWA,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEnD,MAAM,MAAM,WAAW,GAAG;IACxB,uBAAuB;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mBAAmB;IACnB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,yBAAyB;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AA4BF;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CAAC,EACrB,GAAG,EACH,IAAI,EACJ,IAAW,EACX,OAAgB,EAChB,GAAG,EACH,SAAS,GACV,EAAE,WAAW,2CA4Cb"}
@@ -0,0 +1,72 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ import clsx from "clsx";
5
+ import { Box } from "../Box/Box.js";
6
+ import styles from "./avatar.module.css.js";
7
+ const sizeConfig = {
8
+ sm: { dimension: "32px", fontSize: "xs" },
9
+ md: { dimension: "40px", fontSize: "sm" },
10
+ lg: { dimension: "48px", fontSize: "md" },
11
+ xl: { dimension: "64px", fontSize: "lg" }
12
+ };
13
+ function getInitials(name) {
14
+ const words = name.trim().split(/\s+/);
15
+ if (words.length === 0) return "";
16
+ if (words.length === 1) return words[0].charAt(0).toUpperCase();
17
+ return (words[0].charAt(0) + words[words.length - 1].charAt(0)).toUpperCase();
18
+ }
19
+ function Avatar({
20
+ src,
21
+ name,
22
+ size = "md",
23
+ rounded = "full",
24
+ alt,
25
+ className
26
+ }) {
27
+ const [hasError, setHasError] = useState(false);
28
+ const sizeProps = sizeConfig[size];
29
+ const showImage = src && !hasError;
30
+ const initials = name ? getInitials(name) : "";
31
+ return /* @__PURE__ */ jsx(
32
+ Box,
33
+ {
34
+ display: "inline-flex",
35
+ alignItems: "center",
36
+ justifyContent: "center",
37
+ flexShrink: 0,
38
+ overflow: "hidden",
39
+ rounded,
40
+ bg: "primary-subtle",
41
+ color: "primary",
42
+ fontWeight: "medium",
43
+ fontSize: sizeProps.fontSize,
44
+ className: clsx(styles.avatar, className),
45
+ style: {
46
+ width: sizeProps.dimension,
47
+ height: sizeProps.dimension
48
+ },
49
+ children: showImage ? /* @__PURE__ */ jsx(
50
+ "img",
51
+ {
52
+ src,
53
+ alt: alt || name || "Avatar",
54
+ className: styles.image,
55
+ onError: () => setHasError(true)
56
+ }
57
+ ) : initials ? /* @__PURE__ */ jsx("span", { children: initials }) : /* @__PURE__ */ jsx(
58
+ "svg",
59
+ {
60
+ viewBox: "0 0 24 24",
61
+ fill: "currentColor",
62
+ className: styles.placeholder,
63
+ children: /* @__PURE__ */ jsx("path", { d: "M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z" })
64
+ }
65
+ )
66
+ }
67
+ );
68
+ }
69
+ export {
70
+ Avatar
71
+ };
72
+ //# sourceMappingURL=Avatar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar.js","sources":["../../../src/components/Avatar/Avatar.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./avatar.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type AvatarSize = \"sm\" | \"md\" | \"lg\" | \"xl\";\n\nexport type AvatarProps = {\n /** Image source URL */\n src?: string;\n /** Name for generating initials fallback */\n name?: string;\n /** Size variant */\n size?: AvatarSize;\n /** Border radius */\n rounded?: \"full\" | \"md\";\n /** Alt text for image */\n alt?: string;\n /** Additional class name */\n className?: string;\n};\n\n// ============================================================================\n// Size configurations\n// ============================================================================\n\nconst sizeConfig = {\n sm: { dimension: \"32px\", fontSize: \"xs\" },\n md: { dimension: \"40px\", fontSize: \"sm\" },\n lg: { dimension: \"48px\", fontSize: \"md\" },\n xl: { dimension: \"64px\", fontSize: \"lg\" },\n} as const;\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\nfunction getInitials(name: string): string {\n const words = name.trim().split(/\\s+/);\n if (words.length === 0) return \"\";\n if (words.length === 1) return words[0].charAt(0).toUpperCase();\n return (words[0].charAt(0) + words[words.length - 1].charAt(0)).toUpperCase();\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Avatar - User/entity display\n *\n * A circular or rounded avatar component:\n * - Shows image when src is provided\n * - Falls back to initials from name\n * - Falls back to generic placeholder if neither\n *\n * Features:\n * - 4 sizes: sm (32px), md (40px), lg (48px), xl (64px)\n * - 2 rounded variants: full (circle), md (rounded corners)\n * - Graceful image loading with error fallback\n */\nexport function Avatar({\n src,\n name,\n size = \"md\",\n rounded = \"full\",\n alt,\n className,\n}: AvatarProps) {\n const [hasError, setHasError] = useState(false);\n const sizeProps = sizeConfig[size];\n const showImage = src && !hasError;\n const initials = name ? getInitials(name) : \"\";\n\n return (\n <Box\n display=\"inline-flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n flexShrink={0}\n overflow=\"hidden\"\n rounded={rounded}\n bg=\"primary-subtle\"\n color=\"primary\"\n fontWeight=\"medium\"\n fontSize={sizeProps.fontSize}\n className={clsx(styles.avatar, className)}\n style={{\n width: sizeProps.dimension,\n height: sizeProps.dimension,\n }}\n >\n {showImage ? (\n <img\n src={src}\n alt={alt || name || \"Avatar\"}\n className={styles.image}\n onError={() => setHasError(true)}\n />\n ) : initials ? (\n <span>{initials}</span>\n ) : (\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n className={styles.placeholder}\n >\n <path d=\"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\" />\n </svg>\n )}\n </Box>\n );\n}\n"],"names":[],"mappings":";;;;;;AAgCA,MAAM,aAAa;AAAA,EACjB,IAAI,EAAE,WAAW,QAAQ,UAAU,KAAA;AAAA,EACnC,IAAI,EAAE,WAAW,QAAQ,UAAU,KAAA;AAAA,EACnC,IAAI,EAAE,WAAW,QAAQ,UAAU,KAAA;AAAA,EACnC,IAAI,EAAE,WAAW,QAAQ,UAAU,KAAA;AACrC;AAMA,SAAS,YAAY,MAAsB;AACzC,QAAM,QAAQ,KAAK,KAAA,EAAO,MAAM,KAAK;AACrC,MAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,MAAI,MAAM,WAAW,EAAG,QAAO,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,YAAA;AAClD,UAAQ,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,MAAM,MAAM,SAAS,CAAC,EAAE,OAAO,CAAC,GAAG,YAAA;AAClE;AAmBO,SAAS,OAAO;AAAA,EACrB;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,UAAU;AAAA,EACV;AAAA,EACA;AACF,GAAgB;AACd,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,KAAK;AAC9C,QAAM,YAAY,WAAW,IAAI;AACjC,QAAM,YAAY,OAAO,CAAC;AAC1B,QAAM,WAAW,OAAO,YAAY,IAAI,IAAI;AAE5C,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,SAAQ;AAAA,MACR,YAAW;AAAA,MACX,gBAAe;AAAA,MACf,YAAY;AAAA,MACZ,UAAS;AAAA,MACT;AAAA,MACA,IAAG;AAAA,MACH,OAAM;AAAA,MACN,YAAW;AAAA,MACX,UAAU,UAAU;AAAA,MACpB,WAAW,KAAK,OAAO,QAAQ,SAAS;AAAA,MACxC,OAAO;AAAA,QACL,OAAO,UAAU;AAAA,QACjB,QAAQ,UAAU;AAAA,MAAA;AAAA,MAGnB,UAAA,YACC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC;AAAA,UACA,KAAK,OAAO,QAAQ;AAAA,UACpB,WAAW,OAAO;AAAA,UAClB,SAAS,MAAM,YAAY,IAAI;AAAA,QAAA;AAAA,MAAA,IAE/B,WACF,oBAAC,QAAA,EAAM,oBAAS,IAEhB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,WAAW,OAAO;AAAA,UAElB,UAAA,oBAAC,QAAA,EAAK,GAAE,gHAAA,CAAgH;AAAA,QAAA;AAAA,MAAA;AAAA,IAC1H;AAAA,EAAA;AAIR;"}
@@ -0,0 +1,14 @@
1
+ ._avatar_1suzu_1 {
2
+ user-select: none;
3
+ }
4
+
5
+ ._image_1suzu_5 {
6
+ width: 100%;
7
+ height: 100%;
8
+ object-fit: cover;
9
+ }
10
+
11
+ ._placeholder_1suzu_11 {
12
+ width: 60%;
13
+ height: 60%;
14
+ }
@@ -0,0 +1,15 @@
1
+ const avatar = "_avatar_1suzu_1";
2
+ const image = "_image_1suzu_5";
3
+ const placeholder = "_placeholder_1suzu_11";
4
+ const styles = {
5
+ avatar,
6
+ image,
7
+ placeholder
8
+ };
9
+ export {
10
+ avatar,
11
+ styles as default,
12
+ image,
13
+ placeholder
14
+ };
15
+ //# sourceMappingURL=avatar.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -0,0 +1,66 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import "react";
3
+ import clsx from "clsx";
4
+ import { Box } from "../Box/Box.js";
5
+ import styles from "./badge.module.css.js";
6
+ const sizeConfig = {
7
+ sm: { fontSize: "xs", px: 1.5, py: 0.5 },
8
+ md: { fontSize: "sm", px: 2, py: 0.5 }
9
+ };
10
+ function getColorConfig(variant, colorScheme) {
11
+ if (colorScheme === "gray") {
12
+ if (variant === "solid") {
13
+ return {
14
+ bg: "foreground",
15
+ color: "foreground-inverted"
16
+ };
17
+ }
18
+ return {
19
+ bg: "surface",
20
+ color: "foreground-muted"
21
+ };
22
+ }
23
+ if (variant === "solid") {
24
+ return {
25
+ bg: `${colorScheme}-default`,
26
+ color: "foreground-inverted"
27
+ };
28
+ }
29
+ return {
30
+ bg: `${colorScheme}-subtle`,
31
+ color: colorScheme
32
+ };
33
+ }
34
+ function Badge({
35
+ colorScheme = "gray",
36
+ variant = "subtle",
37
+ size = "md",
38
+ children,
39
+ className
40
+ }) {
41
+ const colorConfig = getColorConfig(variant, colorScheme);
42
+ const sizeProps = sizeConfig[size];
43
+ return /* @__PURE__ */ jsx(
44
+ Box,
45
+ {
46
+ as: "span",
47
+ display: "inline-flex",
48
+ alignItems: "center",
49
+ justifyContent: "center",
50
+ px: sizeProps.px,
51
+ py: sizeProps.py,
52
+ fontSize: sizeProps.fontSize,
53
+ fontWeight: "medium",
54
+ lineHeight: "tight",
55
+ rounded: "full",
56
+ bg: colorConfig.bg,
57
+ color: colorConfig.color,
58
+ className: clsx(styles.badge, className),
59
+ children
60
+ }
61
+ );
62
+ }
63
+ export {
64
+ Badge
65
+ };
66
+ //# sourceMappingURL=Badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.js","sources":["../../../src/components/Badge/Badge.tsx"],"sourcesContent":["import { type ReactNode } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./badge.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type BadgeColorScheme =\n | \"primary\"\n | \"accent\"\n | \"success\"\n | \"warning\"\n | \"error\"\n | \"info\"\n | \"gray\";\n\nexport type BadgeVariant = \"solid\" | \"subtle\";\nexport type BadgeSize = \"sm\" | \"md\";\n\nexport type BadgeProps = {\n /** Color scheme */\n colorScheme?: BadgeColorScheme;\n /** Visual variant */\n variant?: BadgeVariant;\n /** Size */\n size?: BadgeSize;\n /** Badge content */\n children?: ReactNode;\n /** Additional class name */\n className?: string;\n};\n\n// ============================================================================\n// Size configurations\n// ============================================================================\n\nconst sizeConfig = {\n sm: { fontSize: \"xs\", px: 1.5, py: 0.5 },\n md: { fontSize: \"sm\", px: 2, py: 0.5 },\n} as const;\n\n// ============================================================================\n// Color configurations\n// ============================================================================\n\ntype ColorConfig = {\n bg: string;\n color: string;\n};\n\nfunction getColorConfig(\n variant: BadgeVariant,\n colorScheme: BadgeColorScheme\n): ColorConfig {\n // Handle \"gray\" colorScheme specially since it uses different token names\n if (colorScheme === \"gray\") {\n if (variant === \"solid\") {\n return {\n bg: \"foreground\",\n color: \"foreground-inverted\",\n };\n }\n return {\n bg: \"surface\",\n color: \"foreground-muted\",\n };\n }\n\n if (variant === \"solid\") {\n return {\n bg: `${colorScheme}-default`,\n color: \"foreground-inverted\",\n };\n }\n\n return {\n bg: `${colorScheme}-subtle`,\n color: colorScheme,\n };\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Badge - Small status indicator\n *\n * A compact label component for displaying:\n * - Counts and numbers\n * - Status indicators\n * - Categories and tags\n *\n * Features:\n * - 7 color schemes: primary, accent, success, warning, error, info, gray\n * - 2 variants: solid (bold) and subtle (muted)\n * - 2 sizes: sm and md\n * - Pill shape (fully rounded)\n */\nexport function Badge({\n colorScheme = \"gray\",\n variant = \"subtle\",\n size = \"md\",\n children,\n className,\n}: BadgeProps) {\n const colorConfig = getColorConfig(variant, colorScheme);\n const sizeProps = sizeConfig[size];\n\n return (\n <Box\n as=\"span\"\n display=\"inline-flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n px={sizeProps.px}\n py={sizeProps.py}\n fontSize={sizeProps.fontSize}\n fontWeight=\"medium\"\n lineHeight=\"tight\"\n rounded=\"full\"\n bg={colorConfig.bg as any}\n color={colorConfig.color as any}\n className={clsx(styles.badge, className)}\n >\n {children}\n </Box>\n );\n}\n"],"names":[],"mappings":";;;;;AAsCA,MAAM,aAAa;AAAA,EACjB,IAAI,EAAE,UAAU,MAAM,IAAI,KAAK,IAAI,IAAA;AAAA,EACnC,IAAI,EAAE,UAAU,MAAM,IAAI,GAAG,IAAI,IAAA;AACnC;AAWA,SAAS,eACP,SACA,aACa;AAEb,MAAI,gBAAgB,QAAQ;AAC1B,QAAI,YAAY,SAAS;AACvB,aAAO;AAAA,QACL,IAAI;AAAA,QACJ,OAAO;AAAA,MAAA;AAAA,IAEX;AACA,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,OAAO;AAAA,IAAA;AAAA,EAEX;AAEA,MAAI,YAAY,SAAS;AACvB,WAAO;AAAA,MACL,IAAI,GAAG,WAAW;AAAA,MAClB,OAAO;AAAA,IAAA;AAAA,EAEX;AAEA,SAAO;AAAA,IACL,IAAI,GAAG,WAAW;AAAA,IAClB,OAAO;AAAA,EAAA;AAEX;AAoBO,SAAS,MAAM;AAAA,EACpB,cAAc;AAAA,EACd,UAAU;AAAA,EACV,OAAO;AAAA,EACP;AAAA,EACA;AACF,GAAe;AACb,QAAM,cAAc,eAAe,SAAS,WAAW;AACvD,QAAM,YAAY,WAAW,IAAI;AAEjC,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,IAAG;AAAA,MACH,SAAQ;AAAA,MACR,YAAW;AAAA,MACX,gBAAe;AAAA,MACf,IAAI,UAAU;AAAA,MACd,IAAI,UAAU;AAAA,MACd,UAAU,UAAU;AAAA,MACpB,YAAW;AAAA,MACX,YAAW;AAAA,MACX,SAAQ;AAAA,MACR,IAAI,YAAY;AAAA,MAChB,OAAO,YAAY;AAAA,MACnB,WAAW,KAAK,OAAO,OAAO,SAAS;AAAA,MAEtC;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -0,0 +1,3 @@
1
+ ._badge_ezs42_1 {
2
+ white-space: nowrap;
3
+ }
@@ -0,0 +1,9 @@
1
+ const badge = "_badge_ezs42_1";
2
+ const styles = {
3
+ badge
4
+ };
5
+ export {
6
+ badge,
7
+ styles as default
8
+ };
9
+ //# sourceMappingURL=badge.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}