@k8o/arte-odyssey 3.0.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (556) hide show
  1. package/README.md +103 -75
  2. package/dist/components/buttons/button/button.d.mts +14 -0
  3. package/dist/components/buttons/button/button.mjs +29 -0
  4. package/dist/components/buttons/button/index.d.mts +2 -0
  5. package/dist/components/buttons/button/index.mjs +2 -0
  6. package/dist/components/buttons/icon-button/icon-button.d.mts +11 -0
  7. package/dist/components/buttons/icon-button/icon-button.mjs +17 -0
  8. package/dist/components/buttons/icon-button/index.d.mts +2 -0
  9. package/dist/components/buttons/icon-button/index.mjs +2 -0
  10. package/dist/components/buttons/icon-link/icon-link.d.mts +27 -0
  11. package/dist/components/buttons/icon-link/icon-link.mjs +24 -0
  12. package/dist/components/buttons/icon-link/index.d.mts +2 -0
  13. package/dist/components/buttons/icon-link/index.mjs +2 -0
  14. package/dist/components/buttons/link-button/index.d.mts +2 -0
  15. package/dist/components/buttons/link-button/index.mjs +2 -0
  16. package/dist/components/buttons/link-button/link-button.d.mts +35 -0
  17. package/dist/components/buttons/link-button/link-button.mjs +32 -0
  18. package/dist/components/data-display/accordion/accordion-button.d.mts +6 -0
  19. package/dist/components/data-display/accordion/accordion-button.mjs +25 -0
  20. package/dist/components/data-display/accordion/accordion-item.d.mts +8 -0
  21. package/dist/components/data-display/accordion/accordion-item.mjs +14 -0
  22. package/dist/components/data-display/accordion/accordion-panel.d.mts +6 -0
  23. package/dist/components/data-display/accordion/accordion-panel.mjs +18 -0
  24. package/dist/components/data-display/accordion/accordion.d.mts +6 -0
  25. package/dist/components/data-display/accordion/accordion.mjs +10 -0
  26. package/dist/components/data-display/accordion/context.d.mts +13 -0
  27. package/dist/components/data-display/accordion/context.mjs +35 -0
  28. package/dist/components/data-display/accordion/index.d.mts +19 -0
  29. package/dist/components/data-display/accordion/index.mjs +13 -0
  30. package/dist/components/data-display/avatar/avatar.d.mts +13 -0
  31. package/dist/components/data-display/avatar/avatar.mjs +35 -0
  32. package/dist/components/data-display/avatar/index.d.mts +2 -0
  33. package/dist/components/data-display/avatar/index.mjs +2 -0
  34. package/dist/components/data-display/badge/badge.d.mts +13 -0
  35. package/dist/components/data-display/badge/badge.mjs +18 -0
  36. package/dist/components/data-display/badge/index.d.mts +2 -0
  37. package/dist/components/data-display/badge/index.mjs +2 -0
  38. package/dist/components/data-display/baseline-status/baseline-status.d.mts +20 -0
  39. package/dist/components/data-display/baseline-status/baseline-status.mjs +25 -0
  40. package/dist/components/data-display/baseline-status/index.d.mts +2 -0
  41. package/dist/components/data-display/baseline-status/index.mjs +2 -0
  42. package/dist/components/data-display/card/card.d.mts +7 -0
  43. package/dist/components/data-display/card/card.mjs +9 -0
  44. package/dist/components/data-display/card/index.d.mts +3 -0
  45. package/dist/components/data-display/card/index.mjs +3 -0
  46. package/dist/components/data-display/card/interactive-card.d.mts +7 -0
  47. package/dist/components/data-display/card/interactive-card.mjs +9 -0
  48. package/dist/components/data-display/card/type.d.mts +10 -0
  49. package/dist/components/data-display/card/type.mjs +1 -0
  50. package/dist/components/data-display/code/code.d.mts +8 -0
  51. package/dist/components/data-display/code/code.mjs +30 -0
  52. package/dist/components/data-display/code/index.d.mts +2 -0
  53. package/dist/components/data-display/code/index.mjs +2 -0
  54. package/dist/components/data-display/heading/heading.d.mts +11 -0
  55. package/dist/components/data-display/heading/heading.mjs +37 -0
  56. package/dist/components/data-display/heading/index.d.mts +2 -0
  57. package/dist/components/data-display/heading/index.mjs +2 -0
  58. package/dist/components/data-display/table/index.d.mts +2 -0
  59. package/dist/components/data-display/table/index.mjs +2 -0
  60. package/dist/components/data-display/table/table.d.mts +44 -0
  61. package/dist/components/data-display/table/table.mjs +70 -0
  62. package/dist/components/feedback/alert/alert.d.mts +11 -0
  63. package/dist/components/feedback/alert/alert.mjs +37 -0
  64. package/dist/components/feedback/alert/index.d.mts +2 -0
  65. package/dist/components/feedback/alert/index.mjs +2 -0
  66. package/dist/components/feedback/progress/index.d.mts +2 -0
  67. package/dist/components/feedback/progress/index.mjs +2 -0
  68. package/dist/components/feedback/progress/progress.d.mts +11 -0
  69. package/dist/components/feedback/progress/progress.mjs +19 -0
  70. package/dist/components/feedback/skeleton/index.d.mts +2 -0
  71. package/dist/components/feedback/skeleton/index.mjs +2 -0
  72. package/dist/components/feedback/skeleton/skeleton.d.mts +11 -0
  73. package/dist/components/feedback/skeleton/skeleton.mjs +11 -0
  74. package/dist/components/feedback/spinner/index.d.mts +2 -0
  75. package/dist/components/feedback/spinner/index.mjs +2 -0
  76. package/dist/components/feedback/spinner/spinner.d.mts +10 -0
  77. package/dist/components/feedback/spinner/spinner.mjs +19 -0
  78. package/dist/components/feedback/toast/index.d.mts +2 -0
  79. package/dist/components/feedback/toast/index.mjs +2 -0
  80. package/dist/components/feedback/toast/provider.d.mts +15 -0
  81. package/dist/components/feedback/toast/provider.mjs +99 -0
  82. package/dist/components/feedback/toast/toast.d.mts +12 -0
  83. package/dist/components/feedback/toast/toast.mjs +20 -0
  84. package/dist/components/form/autocomplete/autocomplete.d.mts +26 -0
  85. package/dist/components/form/autocomplete/autocomplete.mjs +177 -0
  86. package/dist/components/form/autocomplete/index.d.mts +2 -0
  87. package/dist/components/form/autocomplete/index.mjs +2 -0
  88. package/dist/components/form/checkbox/checkbox.d.mts +22 -0
  89. package/dist/components/form/checkbox/checkbox.mjs +52 -0
  90. package/dist/components/form/checkbox/index.d.mts +2 -0
  91. package/dist/components/form/checkbox/index.mjs +2 -0
  92. package/dist/components/form/checkbox-card/checkbox-card.d.mts +30 -0
  93. package/dist/components/form/checkbox-card/checkbox-card.mjs +66 -0
  94. package/dist/components/form/checkbox-card/index.d.mts +2 -0
  95. package/dist/components/form/checkbox-card/index.mjs +2 -0
  96. package/dist/components/form/checkbox-group/checkbox-group.d.mts +34 -0
  97. package/dist/components/form/checkbox-group/checkbox-group.mjs +35 -0
  98. package/dist/components/form/checkbox-group/index.d.mts +56 -0
  99. package/dist/components/form/checkbox-group/index.mjs +6 -0
  100. package/dist/components/form/file-field/file-field.d.mts +46 -0
  101. package/dist/components/form/file-field/file-field.mjs +128 -0
  102. package/dist/components/form/file-field/index.d.mts +2 -0
  103. package/dist/components/form/file-field/index.mjs +2 -0
  104. package/dist/components/form/form-control/form-control.d.mts +23 -0
  105. package/dist/components/form/form-control/form-control.mjs +49 -0
  106. package/dist/components/form/form-control/index.d.mts +2 -0
  107. package/dist/components/form/form-control/index.mjs +2 -0
  108. package/dist/components/form/number-field/index.d.mts +2 -0
  109. package/dist/components/form/number-field/index.mjs +2 -0
  110. package/dist/components/form/number-field/number-field.d.mts +29 -0
  111. package/dist/components/form/number-field/number-field.mjs +102 -0
  112. package/dist/components/form/password-input/index.d.mts +2 -0
  113. package/dist/components/form/password-input/index.mjs +2 -0
  114. package/dist/components/form/password-input/password-input.d.mts +29 -0
  115. package/dist/components/form/password-input/password-input.mjs +39 -0
  116. package/dist/components/form/radio/index.d.mts +2 -0
  117. package/dist/components/form/radio/index.mjs +2 -0
  118. package/dist/components/form/radio/radio.d.mts +23 -0
  119. package/dist/components/form/radio/radio.mjs +44 -0
  120. package/dist/components/form/radio-card/index.d.mts +2 -0
  121. package/dist/components/form/radio-card/index.mjs +2 -0
  122. package/dist/components/form/radio-card/radio-card.d.mts +30 -0
  123. package/dist/components/form/radio-card/radio-card.mjs +86 -0
  124. package/dist/components/form/select/index.d.mts +2 -0
  125. package/dist/components/form/select/index.mjs +2 -0
  126. package/dist/components/form/select/select.d.mts +26 -0
  127. package/dist/components/form/select/select.mjs +32 -0
  128. package/dist/components/form/slider/index.d.mts +2 -0
  129. package/dist/components/form/slider/index.mjs +2 -0
  130. package/dist/components/form/slider/slider.d.mts +28 -0
  131. package/dist/components/form/slider/slider.mjs +44 -0
  132. package/dist/components/form/switch/index.d.mts +2 -0
  133. package/dist/components/form/switch/index.mjs +2 -0
  134. package/dist/components/form/switch/switch.d.mts +26 -0
  135. package/dist/components/form/switch/switch.mjs +44 -0
  136. package/dist/components/form/text-field/index.d.mts +2 -0
  137. package/dist/components/form/text-field/index.mjs +2 -0
  138. package/dist/components/form/text-field/text-field.d.mts +26 -0
  139. package/dist/components/form/text-field/text-field.mjs +21 -0
  140. package/dist/components/form/textarea/index.d.mts +2 -0
  141. package/dist/components/form/textarea/index.mjs +2 -0
  142. package/dist/components/form/textarea/textarea.d.mts +29 -0
  143. package/dist/components/form/textarea/textarea.mjs +34 -0
  144. package/dist/components/icons/arte-odyssey.d.mts +7 -0
  145. package/dist/components/icons/arte-odyssey.mjs +297 -0
  146. package/dist/components/icons/base.d.mts +13 -0
  147. package/dist/components/icons/base.mjs +7 -0
  148. package/dist/components/icons/github-mark.d.mts +7 -0
  149. package/dist/components/icons/github-mark.mjs +24 -0
  150. package/dist/components/icons/index.d.mts +7 -0
  151. package/dist/components/icons/index.mjs +7 -0
  152. package/dist/components/icons/logo.d.mts +10 -0
  153. package/dist/components/icons/logo.mjs +34 -0
  154. package/dist/components/icons/lucide.d.mts +59 -0
  155. package/dist/components/icons/lucide.mjs +392 -0
  156. package/dist/components/icons/qiita.d.mts +7 -0
  157. package/dist/components/icons/qiita.mjs +33 -0
  158. package/dist/components/icons/twitter.d.mts +7 -0
  159. package/dist/components/icons/twitter.mjs +25 -0
  160. package/dist/components/index.d.mts +56 -0
  161. package/dist/components/index.mjs +56 -0
  162. package/dist/components/layout/scroll-linked/index.d.mts +2 -0
  163. package/dist/components/layout/scroll-linked/index.mjs +2 -0
  164. package/dist/components/layout/scroll-linked/scroll-linked.d.mts +8 -0
  165. package/dist/components/layout/scroll-linked/scroll-linked.mjs +18 -0
  166. package/dist/components/layout/separator/index.d.mts +2 -0
  167. package/dist/components/layout/separator/index.mjs +2 -0
  168. package/dist/components/layout/separator/separator.d.mts +9 -0
  169. package/dist/components/layout/separator/separator.mjs +16 -0
  170. package/dist/components/navigation/anchor/anchor.d.mts +23 -0
  171. package/dist/components/navigation/anchor/anchor.mjs +26 -0
  172. package/dist/components/navigation/anchor/index.d.mts +2 -0
  173. package/dist/components/navigation/anchor/index.mjs +2 -0
  174. package/dist/components/navigation/breadcrumb/breadcrumb.d.mts +29 -0
  175. package/dist/components/navigation/breadcrumb/breadcrumb.mjs +46 -0
  176. package/dist/components/navigation/breadcrumb/index.d.mts +2 -0
  177. package/dist/components/navigation/breadcrumb/index.mjs +2 -0
  178. package/dist/components/navigation/tabs/index.d.mts +2 -0
  179. package/dist/components/navigation/tabs/index.mjs +2 -0
  180. package/dist/components/navigation/tabs/tabs.d.mts +20 -0
  181. package/dist/components/navigation/tabs/tabs.mjs +113 -0
  182. package/dist/components/overlays/dialog/dialog.d.mts +21 -0
  183. package/dist/components/overlays/dialog/dialog.mjs +69 -0
  184. package/dist/components/overlays/dialog/index.d.mts +2 -0
  185. package/dist/components/overlays/dialog/index.mjs +2 -0
  186. package/dist/components/overlays/drawer/drawer.d.mts +11 -0
  187. package/dist/components/overlays/drawer/drawer.mjs +50 -0
  188. package/dist/components/overlays/drawer/index.d.mts +2 -0
  189. package/dist/components/overlays/drawer/index.mjs +2 -0
  190. package/dist/components/overlays/dropdown-menu/dropdown-menu.d.mts +28 -0
  191. package/dist/components/overlays/dropdown-menu/dropdown-menu.mjs +89 -0
  192. package/dist/components/overlays/dropdown-menu/hooks.d.mts +29 -0
  193. package/dist/components/overlays/dropdown-menu/hooks.mjs +45 -0
  194. package/dist/components/overlays/dropdown-menu/index.d.mts +2 -0
  195. package/dist/components/overlays/dropdown-menu/index.mjs +2 -0
  196. package/dist/components/overlays/list-box/hooks.d.mts +41 -0
  197. package/dist/components/overlays/list-box/hooks.mjs +56 -0
  198. package/dist/components/overlays/list-box/index.d.mts +2 -0
  199. package/dist/components/overlays/list-box/index.mjs +2 -0
  200. package/dist/components/overlays/list-box/list-box.d.mts +26 -0
  201. package/dist/components/overlays/list-box/list-box.mjs +111 -0
  202. package/dist/components/overlays/modal/index.d.mts +2 -0
  203. package/dist/components/overlays/modal/index.mjs +2 -0
  204. package/dist/components/overlays/modal/modal.d.mts +12 -0
  205. package/dist/components/overlays/modal/modal.mjs +160 -0
  206. package/dist/components/overlays/popover/hooks.d.mts +69 -0
  207. package/dist/components/overlays/popover/hooks.mjs +168 -0
  208. package/dist/components/overlays/popover/index.d.mts +3 -0
  209. package/dist/components/overlays/popover/index.mjs +3 -0
  210. package/dist/components/overlays/popover/popover.d.mts +22 -0
  211. package/dist/components/overlays/popover/popover.mjs +105 -0
  212. package/dist/components/overlays/tooltip/index.d.mts +2 -0
  213. package/dist/components/overlays/tooltip/index.mjs +2 -0
  214. package/dist/components/overlays/tooltip/tooltip.d.mts +18 -0
  215. package/dist/components/overlays/tooltip/tooltip.mjs +53 -0
  216. package/dist/components/providers/arte-odyssey-provider.d.mts +6 -0
  217. package/dist/components/providers/arte-odyssey-provider.mjs +13 -0
  218. package/dist/components/providers/index.d.mts +3 -0
  219. package/dist/components/providers/index.mjs +3 -0
  220. package/dist/components/providers/portal-root.d.mts +9 -0
  221. package/dist/components/providers/portal-root.mjs +16 -0
  222. package/dist/components/{error-boundary/index.js → utility/error-boundary/index.d.mts} +1 -3
  223. package/dist/components/utility/error-boundary/index.mjs +2 -0
  224. package/dist/helpers/cn.d.mts +6 -0
  225. package/dist/helpers/{cn.js → cn.mjs} +4 -4
  226. package/dist/helpers/color/{find-all-colors.d.ts → find-all-colors.d.mts} +7 -4
  227. package/dist/helpers/color/find-all-colors.mjs +251 -0
  228. package/dist/helpers/index.d.mts +9 -0
  229. package/dist/helpers/index.mjs +9 -0
  230. package/dist/helpers/is-internal-route.d.mts +4 -0
  231. package/dist/helpers/is-internal-route.mjs +12 -0
  232. package/dist/helpers/number/between.d.mts +4 -0
  233. package/dist/helpers/number/between.mjs +17 -0
  234. package/dist/helpers/number/cast.d.mts +4 -0
  235. package/dist/helpers/number/cast.mjs +36 -0
  236. package/dist/helpers/number/commalize.d.mts +4 -0
  237. package/dist/helpers/number/commalize.mjs +20 -0
  238. package/dist/helpers/number/index.d.mts +5 -0
  239. package/dist/helpers/number/index.mjs +5 -0
  240. package/dist/helpers/number/to-precision.d.mts +4 -0
  241. package/dist/helpers/number/to-precision.mjs +15 -0
  242. package/dist/helpers/uuid-v4.d.mts +4 -0
  243. package/dist/helpers/uuid-v4.mjs +28 -0
  244. package/dist/hooks/click-away/index.d.mts +6 -0
  245. package/dist/hooks/click-away/index.mjs +22 -0
  246. package/dist/hooks/client/index.d.mts +4 -0
  247. package/dist/hooks/client/index.mjs +8 -0
  248. package/dist/hooks/clipboard/index.d.mts +7 -0
  249. package/dist/hooks/clipboard/index.mjs +15 -0
  250. package/dist/hooks/hash/index.d.mts +4 -0
  251. package/dist/hooks/hash/index.mjs +24 -0
  252. package/dist/hooks/index.d.mts +13 -0
  253. package/dist/hooks/index.mjs +13 -0
  254. package/dist/hooks/interval/index.d.mts +4 -0
  255. package/dist/hooks/interval/index.mjs +16 -0
  256. package/dist/hooks/local-storage/index.d.mts +4 -0
  257. package/dist/hooks/local-storage/index.mjs +45 -0
  258. package/dist/hooks/resize/index.d.mts +10 -0
  259. package/dist/hooks/resize/index.mjs +33 -0
  260. package/dist/hooks/scroll-direction/index.d.mts +8 -0
  261. package/dist/hooks/scroll-direction/index.mjs +37 -0
  262. package/dist/hooks/step/index.d.mts +15 -0
  263. package/dist/hooks/step/index.mjs +39 -0
  264. package/dist/hooks/timeout/index.d.mts +4 -0
  265. package/dist/hooks/timeout/index.mjs +16 -0
  266. package/dist/hooks/window-resize/index.d.mts +12 -0
  267. package/dist/hooks/window-resize/index.mjs +33 -0
  268. package/dist/hooks/window-size/index.d.mts +8 -0
  269. package/dist/hooks/window-size/index.mjs +25 -0
  270. package/dist/index.d.mts +77 -0
  271. package/dist/index.mjs +76 -0
  272. package/dist/styles/index.css +31 -0
  273. package/dist/types/index.d.mts +2 -0
  274. package/dist/types/index.mjs +1 -0
  275. package/dist/types/variables.d.mts +9 -0
  276. package/dist/types/variables.mjs +1 -0
  277. package/package.json +43 -57
  278. package/dist/components/accordion/accordion-button.d.ts +0 -2
  279. package/dist/components/accordion/accordion-button.js +0 -41
  280. package/dist/components/accordion/accordion-item.d.ts +0 -4
  281. package/dist/components/accordion/accordion-item.js +0 -11
  282. package/dist/components/accordion/accordion-panel.d.ts +0 -2
  283. package/dist/components/accordion/accordion-panel.js +0 -21
  284. package/dist/components/accordion/accordion.d.ts +0 -2
  285. package/dist/components/accordion/accordion.js +0 -7
  286. package/dist/components/accordion/accordion.stories.js +0 -86
  287. package/dist/components/accordion/context.d.ts +0 -10
  288. package/dist/components/accordion/context.js +0 -39
  289. package/dist/components/accordion/index.d.ts +0 -14
  290. package/dist/components/accordion/index.js +0 -13
  291. package/dist/components/alert/alert.d.ts +0 -8
  292. package/dist/components/alert/alert.js +0 -45
  293. package/dist/components/alert/alert.stories.js +0 -55
  294. package/dist/components/alert/index.d.ts +0 -1
  295. package/dist/components/alert/index.js +0 -4
  296. package/dist/components/anchor/anchor.d.ts +0 -14
  297. package/dist/components/anchor/anchor.js +0 -32
  298. package/dist/components/anchor/anchor.stories.js +0 -23
  299. package/dist/components/anchor/index.d.ts +0 -1
  300. package/dist/components/anchor/index.js +0 -4
  301. package/dist/components/baseline-status/baseline-status.d.ts +0 -16
  302. package/dist/components/baseline-status/baseline-status.js +0 -39
  303. package/dist/components/baseline-status/baseline-status.stories.js +0 -15
  304. package/dist/components/baseline-status/index.d.ts +0 -1
  305. package/dist/components/baseline-status/index.js +0 -4
  306. package/dist/components/breadcrumb/breadcrumb.d.ts +0 -18
  307. package/dist/components/breadcrumb/breadcrumb.js +0 -48
  308. package/dist/components/breadcrumb/breadcrumb.stories.js +0 -40
  309. package/dist/components/breadcrumb/index.d.ts +0 -1
  310. package/dist/components/breadcrumb/index.js +0 -4
  311. package/dist/components/button/button.d.ts +0 -10
  312. package/dist/components/button/button.js +0 -55
  313. package/dist/components/button/button.stories.js +0 -96
  314. package/dist/components/button/index.d.ts +0 -1
  315. package/dist/components/button/index.js +0 -4
  316. package/dist/components/card/card.d.ts +0 -3
  317. package/dist/components/card/card.js +0 -22
  318. package/dist/components/card/card.stories.js +0 -45
  319. package/dist/components/card/index.d.ts +0 -2
  320. package/dist/components/card/index.js +0 -6
  321. package/dist/components/card/interactive-card.d.ts +0 -3
  322. package/dist/components/card/interactive-card.js +0 -22
  323. package/dist/components/card/type.d.ts +0 -5
  324. package/dist/components/card/type.js +0 -0
  325. package/dist/components/code/code.d.ts +0 -4
  326. package/dist/components/code/code.js +0 -38
  327. package/dist/components/code/code.stories.js +0 -60
  328. package/dist/components/code/index.d.ts +0 -1
  329. package/dist/components/code/index.js +0 -4
  330. package/dist/components/dialog/dialog.d.ts +0 -17
  331. package/dist/components/dialog/dialog.js +0 -86
  332. package/dist/components/dialog/dialog.stories.js +0 -98
  333. package/dist/components/dialog/index.d.ts +0 -1
  334. package/dist/components/dialog/index.js +0 -5
  335. package/dist/components/drawer/drawer.d.ts +0 -6
  336. package/dist/components/drawer/drawer.js +0 -56
  337. package/dist/components/drawer/drawer.stories.js +0 -25
  338. package/dist/components/drawer/index.d.ts +0 -1
  339. package/dist/components/drawer/index.js +0 -4
  340. package/dist/components/dropdown-menu/dropdown-menu.d.ts +0 -24
  341. package/dist/components/dropdown-menu/dropdown-menu.js +0 -130
  342. package/dist/components/dropdown-menu/dropdown-menu.stories.js +0 -111
  343. package/dist/components/dropdown-menu/hooks.d.ts +0 -23
  344. package/dist/components/dropdown-menu/hooks.js +0 -56
  345. package/dist/components/dropdown-menu/index.d.ts +0 -1
  346. package/dist/components/dropdown-menu/index.js +0 -4
  347. package/dist/components/error-boundary/index.d.ts +0 -1
  348. package/dist/components/form/autocomplete/autocomplete.d.ts +0 -23
  349. package/dist/components/form/autocomplete/autocomplete.js +0 -245
  350. package/dist/components/form/autocomplete/autocomplete.stories.js +0 -63
  351. package/dist/components/form/autocomplete/index.d.ts +0 -1
  352. package/dist/components/form/autocomplete/index.js +0 -4
  353. package/dist/components/form/checkbox/checkbox.d.ts +0 -17
  354. package/dist/components/form/checkbox/checkbox.js +0 -57
  355. package/dist/components/form/checkbox/checkbox.stories.js +0 -27
  356. package/dist/components/form/checkbox/index.d.ts +0 -1
  357. package/dist/components/form/checkbox/index.js +0 -4
  358. package/dist/components/form/file-field/file-field.d.ts +0 -42
  359. package/dist/components/form/file-field/file-field.js +0 -153
  360. package/dist/components/form/file-field/file-field.stories.js +0 -137
  361. package/dist/components/form/file-field/index.d.ts +0 -1
  362. package/dist/components/form/file-field/index.js +0 -5
  363. package/dist/components/form/form-control/form-control.d.ts +0 -20
  364. package/dist/components/form/form-control/form-control.js +0 -54
  365. package/dist/components/form/form-control/form-control.stories.js +0 -94
  366. package/dist/components/form/form-control/index.d.ts +0 -1
  367. package/dist/components/form/form-control/index.js +0 -4
  368. package/dist/components/form/number-field/index.d.ts +0 -1
  369. package/dist/components/form/number-field/index.js +0 -4
  370. package/dist/components/form/number-field/number-field.d.ts +0 -26
  371. package/dist/components/form/number-field/number-field.js +0 -164
  372. package/dist/components/form/number-field/number-field.stories.js +0 -101
  373. package/dist/components/form/radio/index.d.ts +0 -1
  374. package/dist/components/form/radio/index.js +0 -4
  375. package/dist/components/form/radio/radio.d.ts +0 -21
  376. package/dist/components/form/radio/radio.js +0 -55
  377. package/dist/components/form/radio/radio.stories.js +0 -30
  378. package/dist/components/form/range-field/index.d.ts +0 -1
  379. package/dist/components/form/range-field/index.js +0 -4
  380. package/dist/components/form/range-field/range-field.d.ts +0 -26
  381. package/dist/components/form/range-field/range-field.js +0 -67
  382. package/dist/components/form/range-field/range-field.stories.js +0 -69
  383. package/dist/components/form/select/index.d.ts +0 -1
  384. package/dist/components/form/select/index.js +0 -4
  385. package/dist/components/form/select/select.d.ts +0 -23
  386. package/dist/components/form/select/select.js +0 -41
  387. package/dist/components/form/select/select.stories.js +0 -55
  388. package/dist/components/form/text-field/index.d.ts +0 -1
  389. package/dist/components/form/text-field/index.js +0 -4
  390. package/dist/components/form/text-field/text-field.d.ts +0 -23
  391. package/dist/components/form/text-field/text-field.js +0 -40
  392. package/dist/components/form/text-field/text-field.stories.js +0 -57
  393. package/dist/components/form/textarea/index.d.ts +0 -1
  394. package/dist/components/form/textarea/index.js +0 -4
  395. package/dist/components/form/textarea/textarea.d.ts +0 -26
  396. package/dist/components/form/textarea/textarea.js +0 -57
  397. package/dist/components/form/textarea/textarea.stories.js +0 -88
  398. package/dist/components/heading/heading.d.ts +0 -8
  399. package/dist/components/heading/heading.js +0 -77
  400. package/dist/components/heading/heading.stories.js +0 -52
  401. package/dist/components/heading/index.d.ts +0 -1
  402. package/dist/components/heading/index.js +0 -4
  403. package/dist/components/icon-button/icon-button.d.ts +0 -8
  404. package/dist/components/icon-button/icon-button.js +0 -38
  405. package/dist/components/icon-button/icon-button.stories.js +0 -51
  406. package/dist/components/icon-button/index.d.ts +0 -1
  407. package/dist/components/icon-button/index.js +0 -4
  408. package/dist/components/icon-link/icon-link.d.ts +0 -15
  409. package/dist/components/icon-link/icon-link.js +0 -38
  410. package/dist/components/icon-link/icon-link.stories.js +0 -46
  411. package/dist/components/icon-link/index.d.ts +0 -1
  412. package/dist/components/icon-link/index.js +0 -4
  413. package/dist/components/icons/arte-odyssey.d.ts +0 -3
  414. package/dist/components/icons/arte-odyssey.js +0 -463
  415. package/dist/components/icons/base.d.ts +0 -9
  416. package/dist/components/icons/base.js +0 -13
  417. package/dist/components/icons/github-mark.d.ts +0 -3
  418. package/dist/components/icons/github-mark.js +0 -33
  419. package/dist/components/icons/icons.stories.js +0 -271
  420. package/dist/components/icons/index.d.ts +0 -6
  421. package/dist/components/icons/index.js +0 -97
  422. package/dist/components/icons/logo.d.ts +0 -6
  423. package/dist/components/icons/logo.js +0 -50
  424. package/dist/components/icons/lucide.d.ts +0 -50
  425. package/dist/components/icons/lucide.js +0 -569
  426. package/dist/components/icons/qiita.d.ts +0 -3
  427. package/dist/components/icons/qiita.js +0 -48
  428. package/dist/components/icons/twitter.d.ts +0 -3
  429. package/dist/components/icons/twitter.js +0 -34
  430. package/dist/components/index.d.ts +0 -38
  431. package/dist/components/index.js +0 -183
  432. package/dist/components/link-button/index.d.ts +0 -1
  433. package/dist/components/link-button/index.js +0 -4
  434. package/dist/components/link-button/link-button.d.ts +0 -20
  435. package/dist/components/link-button/link-button.js +0 -49
  436. package/dist/components/link-button/link-button.stories.js +0 -70
  437. package/dist/components/list-box/hooks.d.ts +0 -37
  438. package/dist/components/list-box/hooks.js +0 -70
  439. package/dist/components/list-box/index.d.ts +0 -1
  440. package/dist/components/list-box/index.js +0 -4
  441. package/dist/components/list-box/list-box.d.ts +0 -22
  442. package/dist/components/list-box/list-box.js +0 -143
  443. package/dist/components/list-box/list-box.stories.js +0 -60
  444. package/dist/components/modal/index.d.ts +0 -1
  445. package/dist/components/modal/index.js +0 -4
  446. package/dist/components/modal/modal.d.ts +0 -8
  447. package/dist/components/modal/modal.js +0 -120
  448. package/dist/components/modal/modal.stories.js +0 -22
  449. package/dist/components/popover/hooks.d.ts +0 -65
  450. package/dist/components/popover/hooks.js +0 -187
  451. package/dist/components/popover/index.d.ts +0 -1
  452. package/dist/components/popover/index.js +0 -5
  453. package/dist/components/popover/popover.d.ts +0 -18
  454. package/dist/components/popover/popover.js +0 -141
  455. package/dist/components/popover/popover.stories.js +0 -45
  456. package/dist/components/progress/index.d.ts +0 -1
  457. package/dist/components/progress/index.js +0 -4
  458. package/dist/components/progress/progress.d.ts +0 -7
  459. package/dist/components/progress/progress.js +0 -21
  460. package/dist/components/progress/progress.stories.js +0 -16
  461. package/dist/components/providers/arte-odyssey-provider.d.ts +0 -2
  462. package/dist/components/providers/arte-odyssey-provider.js +0 -10
  463. package/dist/components/providers/index.d.ts +0 -2
  464. package/dist/components/providers/index.js +0 -7
  465. package/dist/components/providers/portal-root.d.ts +0 -5
  466. package/dist/components/providers/portal-root.js +0 -17
  467. package/dist/components/scroll-linked/index.d.ts +0 -1
  468. package/dist/components/scroll-linked/index.js +0 -4
  469. package/dist/components/scroll-linked/scroll-linked.d.ts +0 -4
  470. package/dist/components/scroll-linked/scroll-linked.js +0 -21
  471. package/dist/components/scroll-linked/scroll-linked.stories.js +0 -51
  472. package/dist/components/separator/index.d.ts +0 -1
  473. package/dist/components/separator/index.js +0 -4
  474. package/dist/components/separator/separator.d.ts +0 -5
  475. package/dist/components/separator/separator.js +0 -29
  476. package/dist/components/separator/separator.stories.js +0 -39
  477. package/dist/components/tabs/index.d.ts +0 -1
  478. package/dist/components/tabs/index.js +0 -4
  479. package/dist/components/tabs/tabs.d.ts +0 -16
  480. package/dist/components/tabs/tabs.js +0 -145
  481. package/dist/components/tabs/tabs.stories.js +0 -56
  482. package/dist/components/text-tag/index.d.ts +0 -1
  483. package/dist/components/text-tag/index.js +0 -4
  484. package/dist/components/text-tag/text-tag.d.ts +0 -5
  485. package/dist/components/text-tag/text-tag.js +0 -23
  486. package/dist/components/text-tag/text-tag.stories.js +0 -30
  487. package/dist/components/toast/index.d.ts +0 -1
  488. package/dist/components/toast/index.js +0 -5
  489. package/dist/components/toast/provider.d.ts +0 -11
  490. package/dist/components/toast/provider.js +0 -125
  491. package/dist/components/toast/toast.d.ts +0 -9
  492. package/dist/components/toast/toast.js +0 -20
  493. package/dist/components/toast/toast.stories.js +0 -45
  494. package/dist/components/tooltip/index.d.ts +0 -1
  495. package/dist/components/tooltip/index.js +0 -4
  496. package/dist/components/tooltip/tooltip.d.ts +0 -13
  497. package/dist/components/tooltip/tooltip.js +0 -60
  498. package/dist/components/tooltip/tooltip.stories.js +0 -40
  499. package/dist/helpers/cn.d.ts +0 -2
  500. package/dist/helpers/color/find-all-colors.js +0 -223
  501. package/dist/helpers/is-internal-route.d.ts +0 -1
  502. package/dist/helpers/is-internal-route.js +0 -12
  503. package/dist/helpers/number/between.d.ts +0 -1
  504. package/dist/helpers/number/between.js +0 -19
  505. package/dist/helpers/number/cast.d.ts +0 -1
  506. package/dist/helpers/number/cast.js +0 -41
  507. package/dist/helpers/number/commalize.d.ts +0 -1
  508. package/dist/helpers/number/commalize.js +0 -22
  509. package/dist/helpers/number/index.d.ts +0 -4
  510. package/dist/helpers/number/index.js +0 -10
  511. package/dist/helpers/number/to-precision.d.ts +0 -1
  512. package/dist/helpers/number/to-precision.js +0 -17
  513. package/dist/helpers/uuid-v4.d.ts +0 -1
  514. package/dist/helpers/uuid-v4.js +0 -32
  515. package/dist/hooks/click-away/index.d.ts +0 -2
  516. package/dist/hooks/click-away/index.js +0 -24
  517. package/dist/hooks/click-away/index.test.js +0 -26
  518. package/dist/hooks/client/index.d.ts +0 -1
  519. package/dist/hooks/client/index.js +0 -13
  520. package/dist/hooks/clipboard/index.d.ts +0 -4
  521. package/dist/hooks/clipboard/index.js +0 -18
  522. package/dist/hooks/clipboard/index.test.js +0 -31
  523. package/dist/hooks/hash/index.d.ts +0 -1
  524. package/dist/hooks/hash/index.js +0 -29
  525. package/dist/hooks/hash/index.test.js +0 -45
  526. package/dist/hooks/index.d.ts +0 -12
  527. package/dist/hooks/index.js +0 -26
  528. package/dist/hooks/interval/index.d.ts +0 -1
  529. package/dist/hooks/interval/index.js +0 -18
  530. package/dist/hooks/interval/index.test.js +0 -32
  531. package/dist/hooks/local-storage/index.d.ts +0 -1
  532. package/dist/hooks/local-storage/index.js +0 -49
  533. package/dist/hooks/local-storage/index.test.js +0 -96
  534. package/dist/hooks/resize/index.d.ts +0 -7
  535. package/dist/hooks/resize/index.js +0 -37
  536. package/dist/hooks/resize/index.test.js +0 -68
  537. package/dist/hooks/scroll-direction/index.d.ts +0 -6
  538. package/dist/hooks/scroll-direction/index.js +0 -40
  539. package/dist/hooks/scroll-direction/index.test.js +0 -174
  540. package/dist/hooks/step/index.d.ts +0 -13
  541. package/dist/hooks/step/index.js +0 -39
  542. package/dist/hooks/step/index.test.js +0 -95
  543. package/dist/hooks/timeout/index.d.ts +0 -1
  544. package/dist/hooks/timeout/index.js +0 -18
  545. package/dist/hooks/timeout/index.test.js +0 -31
  546. package/dist/hooks/window-resize/index.d.ts +0 -10
  547. package/dist/hooks/window-resize/index.js +0 -35
  548. package/dist/hooks/window-resize/index.test.js +0 -43
  549. package/dist/hooks/window-size/index.d.ts +0 -6
  550. package/dist/hooks/window-size/index.js +0 -22
  551. package/dist/hooks/window-size/index.test.js +0 -18
  552. package/dist/index.d.ts +0 -2
  553. package/dist/index.js +0 -212
  554. package/dist/package.json +0 -6
  555. package/dist/types/variables.d.ts +0 -6
  556. package/dist/types/variables.js +0 -0
package/README.md CHANGED
@@ -21,29 +21,44 @@ npm install react react-dom typescript tailwindcss
21
21
  ```
22
22
 
23
23
  Required versions:
24
+
24
25
  - React ≥19.0.0
25
26
  - TypeScript ≥5.9.0
26
27
  - Tailwind CSS ≥4.0.0
27
28
 
28
29
  ## Quick Start
29
30
 
30
- 1. Install the package and import the CSS:
31
+ 1. Import the CSS and set up the provider:
32
+
33
+ ```css
34
+ /* In your main CSS file (recommended for Tailwind CSS 4) */
35
+ @import 'tailwindcss';
36
+ @import '@k8o/arte-odyssey/styles.css';
37
+ ```
31
38
 
32
39
  ```tsx
33
- // In your main CSS file or component
34
- import '@k8o/arte-odyssey/styles.css';
40
+ // In your app entry point
41
+ import { ArteOdysseyProvider } from '@k8o/arte-odyssey';
42
+
43
+ function App() {
44
+ return (
45
+ <ArteOdysseyProvider>
46
+ <YourApp />
47
+ </ArteOdysseyProvider>
48
+ );
49
+ }
35
50
  ```
36
51
 
37
- 2. Use components in your React app:
52
+ 2. Use components:
38
53
 
39
54
  ```tsx
40
- import { Button, Card } from '@k8o/arte-odyssey';
55
+ import { Button } from '@k8o/arte-odyssey';
56
+ import { Card } from '@k8o/arte-odyssey';
41
57
 
42
- function App() {
58
+ function MyPage() {
43
59
  return (
44
- <Card>
45
- <h1>Welcome to ArteOdyssey</h1>
46
- <Button variant="primary" onClick={() => alert('Hello!')}>
60
+ <Card title="Welcome to ArteOdyssey">
61
+ <Button color="primary" variant="contained" onClick={() => alert('Hello!')}>
47
62
  Click me
48
63
  </Button>
49
64
  </Card>
@@ -51,92 +66,122 @@ function App() {
51
66
  }
52
67
  ```
53
68
 
69
+ ## AI Agent Skills
70
+
71
+ ArteOdyssey provides an Agent Skill for AI coding assistants. It gives your agent knowledge of the design system, component APIs, and design principles.
72
+
73
+ ```bash
74
+ npx skills add k35o/ArteOdyssey --skill arte-odyssey-usage
75
+ ```
76
+
77
+ Compatible with Claude Code, Cursor, GitHub Copilot, and other [Agent Skills](https://agentskills.io/) compatible tools.
78
+
54
79
  ## Component Categories
55
80
 
56
81
  ### Layout & Navigation
82
+
57
83
  - **Accordion** - Collapsible content panels
58
84
  - **Breadcrumb** - Navigation path indicator
59
- - **Card** - Flexible content container
85
+ - **Card** / **InteractiveCard** - Flexible content container (with hover interaction)
60
86
  - **Separator** - Visual content divider
61
87
  - **Tabs** - Tab-based content organization
88
+ - **ScrollLinked** - Scroll progress indicator
62
89
 
63
90
  ### Form Controls
91
+
64
92
  - **Autocomplete** - Search with suggestions
65
- - **Checkbox** - Multi-selection input
66
- - **Form Control** - Form field wrapper with label and validation
67
- - **Number Field** - Numeric input with controls
93
+ - **Checkbox** - Binary selection input
94
+ - **FileField** - File upload with composite pattern
95
+ - **FormControl** - Form field wrapper with label and validation
96
+ - **NumberField** - Numeric input with controls
68
97
  - **Radio** - Single selection from options
69
- - **Range Field** - Slider input control
98
+ - **Slider** - Slider input control
70
99
  - **Select** - Dropdown selection
71
- - **Text Field** - Single-line text input
100
+ - **TextField** - Single-line text input
72
101
  - **Textarea** - Multi-line text input
73
102
 
74
103
  ### Buttons & Links
104
+
75
105
  - **Button** - Primary action button
76
- - **Icon Button** - Button with icon only
77
- - **Link Button** - Button styled as link
106
+ - **IconButton** - Button with icon only
107
+ - **LinkButton** - Button styled as link
78
108
  - **Anchor** - External link component
79
- - **Icon Link** - Link with icon
109
+ - **IconLink** - Link with icon
80
110
 
81
111
  ### Feedback & Status
112
+
82
113
  - **Alert** - Important messages and notifications
83
114
  - **Toast** - Temporary notification messages
84
115
  - **Progress** - Progress indication
85
- - **Baseline Status** - Web standard support indicator
116
+ - **BaselineStatus** - Web standard support indicator
86
117
 
87
118
  ### Overlays & Modals
119
+
88
120
  - **Dialog** - Modal dialog boxes
89
121
  - **Drawer** - Slide-out panel
90
122
  - **Modal** - Overlay modal component
91
123
  - **Popover** - Floating content container
92
124
  - **Tooltip** - Contextual help text
93
- - **Dropdown Menu** - Action menu component
125
+ - **DropdownMenu** - Action menu component
94
126
 
95
127
  ### Data Display
128
+
96
129
  - **Code** - Formatted code display
97
130
  - **Heading** - Typography heading component
98
- - **List Box** - Selectable list component
99
- - **Text Tag** - Labeled text elements
131
+ - **ListBox** - Selectable list component
100
132
 
101
133
  ### Utilities
102
- - **Error Boundary** - Error handling wrapper
103
- - **Providers** - Context providers for the library
104
- - **Scroll Linked** - Scroll-triggered animations
134
+
135
+ - **ErrorBoundary** - Error handling wrapper
136
+ - **ArteOdysseyProvider** - Context providers for the library
105
137
  - **Icons** - Icon component collection
106
138
 
107
139
  ## Usage Examples
108
140
 
109
- ### Basic Button
141
+ ### Button
110
142
 
111
143
  ```tsx
112
144
  import { Button } from '@k8o/arte-odyssey';
113
145
 
114
- <Button variant="primary" size="medium">
115
- Primary Button
146
+ // Primary action
147
+ <Button color="primary" variant="contained" size="md">
148
+ Save
149
+ </Button>
150
+
151
+ // Secondary action
152
+ <Button color="gray" variant="outlined">
153
+ Cancel
154
+ </Button>
155
+
156
+ // Text-only
157
+ <Button variant="skeleton">
158
+ Learn more
116
159
  </Button>
117
160
  ```
118
161
 
119
162
  ### Form with Validation
120
163
 
121
164
  ```tsx
122
- import { FormControl, TextField, Button } from '@k8o/arte-odyssey';
165
+ import { FormControl } from '@k8o/arte-odyssey';
166
+ import { TextField } from '@k8o/arte-odyssey';
167
+ import { Button } from '@k8o/arte-odyssey';
123
168
 
124
169
  <form>
125
- <FormControl label="Email" required>
126
- <TextField
127
- type="email"
128
- placeholder="Enter your email"
129
- required
130
- />
131
- </FormControl>
170
+ <FormControl
171
+ label="Email"
172
+ isRequired
173
+ errorText={error}
174
+ renderInput={(props) => <TextField {...props} id="email" placeholder="Enter your email" />}
175
+ />
132
176
  <Button type="submit">Submit</Button>
133
- </form>
177
+ </form>;
134
178
  ```
135
179
 
136
- ### Modal Dialog
180
+ ### Dialog
137
181
 
138
182
  ```tsx
139
- import { Dialog, Button } from '@k8o/arte-odyssey';
183
+ import { Dialog } from '@k8o/arte-odyssey';
184
+ import { Button } from '@k8o/arte-odyssey';
140
185
  import { useState } from 'react';
141
186
 
142
187
  function MyComponent() {
@@ -144,19 +189,16 @@ function MyComponent() {
144
189
 
145
190
  return (
146
191
  <>
147
- <Button onClick={() => setIsOpen(true)}>
148
- Open Dialog
149
- </Button>
150
- <Dialog
151
- isOpen={isOpen}
152
- onClose={() => setIsOpen(false)}
153
- title="Confirm Action"
154
- >
155
- <p>Are you sure you want to continue?</p>
156
- <Button onClick={() => setIsOpen(false)}>
157
- Confirm
158
- </Button>
159
- </Dialog>
192
+ <Button onClick={() => setIsOpen(true)}>Open Dialog</Button>
193
+ {isOpen && (
194
+ <Dialog.Root>
195
+ <Dialog.Header title="Confirm Action" onClose={() => setIsOpen(false)} />
196
+ <Dialog.Content>
197
+ <p>Are you sure you want to continue?</p>
198
+ <Button onClick={() => setIsOpen(false)}>Confirm</Button>
199
+ </Dialog.Content>
200
+ </Dialog.Root>
201
+ )}
160
202
  </>
161
203
  );
162
204
  }
@@ -168,12 +210,12 @@ ArteOdyssey supports granular imports to optimize your bundle size:
168
210
 
169
211
  ```tsx
170
212
  // Import specific components
171
- import { Button } from '@k8o/arte-odyssey/button';
172
- import { Card } from '@k8o/arte-odyssey/card';
213
+ import { Button } from '@k8o/arte-odyssey';
214
+ import { Card } from '@k8o/arte-odyssey';
173
215
 
174
216
  // Import specific hooks
175
- import { useClickAway } from '@k8o/arte-odyssey/hooks/click-away';
176
- import { useLocalStorage } from '@k8o/arte-odyssey/hooks/local-storage';
217
+ import { useClickAway } from '@k8o/arte-odyssey';
218
+ import { useLocalStorage } from '@k8o/arte-odyssey';
177
219
  ```
178
220
 
179
221
  ## Custom Hooks
@@ -181,27 +223,18 @@ import { useLocalStorage } from '@k8o/arte-odyssey/hooks/local-storage';
181
223
  The library includes several useful hooks:
182
224
 
183
225
  - **useClickAway** - Detect clicks outside an element
226
+ - **useClient** - Client-side rendering detection
184
227
  - **useClipboard** - Clipboard operations
185
228
  - **useHash** - URL hash management
186
229
  - **useInterval** - Interval timer management
187
230
  - **useLocalStorage** - Local storage with React state
231
+ - **useResize** - Element resize detection
188
232
  - **useScrollDirection** - Scroll direction detection
189
233
  - **useStep** - Step-based state management
190
234
  - **useTimeout** - Timeout management
235
+ - **useWindowResize** - Window resize events
191
236
  - **useWindowSize** - Window size tracking
192
237
 
193
- ## TypeScript Support
194
-
195
- All components are fully typed with TypeScript. The library exports comprehensive type definitions for all props and APIs.
196
-
197
- ```tsx
198
- import type { ButtonProps } from '@k8o/arte-odyssey';
199
-
200
- const CustomButton: React.FC<ButtonProps> = (props) => {
201
- return <Button {...props} />;
202
- };
203
- ```
204
-
205
238
  ## Accessibility
206
239
 
207
240
  All components follow WCAG accessibility guidelines:
@@ -217,10 +250,9 @@ All components follow WCAG accessibility guidelines:
217
250
 
218
251
  Components are built with Tailwind CSS and support customization through:
219
252
 
220
- - CSS custom properties
253
+ - CSS custom properties (semantic design tokens)
221
254
  - Tailwind utility classes
222
- - Theme configuration
223
- - Style overrides
255
+ - Light / Dark mode via semantic color tokens
224
256
 
225
257
  ## Development
226
258
 
@@ -260,7 +292,3 @@ MIT License - see [LICENSE](../../LICENSE) for details.
260
292
  ## Contributing
261
293
 
262
294
  Contributions are welcome! Please see the [main repository](../../README.md) for contribution guidelines.
263
-
264
- ---
265
-
266
- Built with ❤️ using React, TypeScript, and Tailwind CSS.
@@ -0,0 +1,14 @@
1
+ import { FC, HTMLProps, ReactNode } from "react";
2
+
3
+ //#region src/components/buttons/button/button.d.ts
4
+ declare const Button: FC<{
5
+ type?: 'button' | 'submit';
6
+ size?: 'sm' | 'md' | 'lg';
7
+ color?: 'primary' | 'gray';
8
+ variant?: 'contained' | 'outlined' | 'skeleton';
9
+ fullWidth?: boolean;
10
+ startIcon?: ReactNode;
11
+ endIcon?: ReactNode;
12
+ } & Omit<HTMLProps<HTMLButtonElement>, 'size' | 'type'>>;
13
+ //#endregion
14
+ export { Button };
@@ -0,0 +1,29 @@
1
+ import { cn } from "../../../helpers/cn.mjs";
2
+ import { jsxs } from "react/jsx-runtime";
3
+ //#region src/components/buttons/button/button.tsx
4
+ const Button = ({ ref, children, type = "button", size = "md", color = "primary", variant = "contained", disabled = false, fullWidth = false, onClick, startIcon, endIcon, ...rest }) => {
5
+ return /* @__PURE__ */ jsxs("button", {
6
+ className: cn("cursor-pointer rounded-lg border-2 text-center font-bold transition-colors", {
7
+ "border-transparent bg-primary-bg text-fg hover:bg-primary-bg/90 active:bg-primary-bg/80": variant === "contained" && color === "primary",
8
+ "border-transparent bg-bg-subtle text-fg-base hover:bg-bg-mute active:bg-bg-emphasize": variant === "contained" && color === "gray",
9
+ "cursor-not-allowed opacity-35 hover:bg-primary-bg active:bg-primary-bg": disabled && variant === "contained",
10
+ "border-primary-border bg-bg-base text-primary-fg hover:bg-bg-subtle active:bg-bg-emphasize": variant === "outlined" && color === "primary",
11
+ "border-border-base bg-bg-base text-fg-base hover:bg-bg-subtle active:bg-bg-emphasize": variant === "outlined" && color === "gray",
12
+ "cursor-not-allowed bg-bg-base opacity-35 hover:bg-bg-base active:bg-bg-base": disabled && variant === "outlined",
13
+ "border-transparent bg-transparent text-fg-mute hover:text-fg-base active:text-fg-base": variant === "skeleton",
14
+ "cursor-not-allowed bg-transparent text-fg-mute opacity-35 hover:text-fg-mute active:text-fg-mute": disabled && variant === "skeleton"
15
+ }, "focus-visible:border-transparent focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-border-info", size === "sm" && "px-3 py-1 text-sm", size === "md" && "px-4 py-2 text-md", size === "lg" && "px-6 py-3 text-lg", fullWidth && "w-full", Boolean(startIcon ?? endIcon) && "flex items-center gap-2", startIcon && endIcon ? "justify-between" : startIcon && variant !== "skeleton" ? "justify-center" : endIcon && "justify-between"),
16
+ disabled,
17
+ onClick,
18
+ ref,
19
+ type,
20
+ ...rest,
21
+ children: [
22
+ startIcon,
23
+ children,
24
+ endIcon
25
+ ]
26
+ });
27
+ };
28
+ //#endregion
29
+ export { Button };
@@ -0,0 +1,2 @@
1
+ import { Button } from "./button.mjs";
2
+ export { Button };
@@ -0,0 +1,2 @@
1
+ import { Button } from "./button.mjs";
2
+ export { Button };
@@ -0,0 +1,11 @@
1
+ import { FC, HTMLProps } from "react";
2
+
3
+ //#region src/components/buttons/icon-button/icon-button.d.ts
4
+ type Props = {
5
+ size?: 'sm' | 'md' | 'lg';
6
+ bg?: 'transparent' | 'base' | 'primary';
7
+ label: string;
8
+ } & Omit<HTMLProps<HTMLButtonElement>, 'size' | 'type'>;
9
+ declare const IconButton: FC<Props>;
10
+ //#endregion
11
+ export { IconButton };
@@ -0,0 +1,17 @@
1
+ import { cn } from "../../../helpers/cn.mjs";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ //#region src/components/buttons/icon-button/icon-button.tsx
4
+ const IconButton = ({ ref, size = "md", bg = "transparent", label, children, ...props }) => {
5
+ return /* @__PURE__ */ jsxs("button", {
6
+ "aria-label": props.role ? label : void 0,
7
+ className: cn("inline-flex cursor-pointer rounded-full bg-transparent transition-colors", "hover:bg-bg-subtle", "focus-visible:border-transparent focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-border-info active:bg-bg-emphasize", bg === "base" && "bg-bg-base", bg === "transparent" && "bg-transparent", bg === "primary" && "bg-primary-bg hover:bg-primary-bg/90 active:bg-primary-bg-emphasize", size === "sm" && "p-1", size === "md" && "p-2", size === "lg" && "p-3", props.disabled && "cursor-not-allowed opacity-50 hover:bg-transparent active:bg-transparent"),
8
+ ref,
9
+ ...props,
10
+ children: [!props.role && /* @__PURE__ */ jsx("span", {
11
+ className: "sr-only",
12
+ children: label
13
+ }), children]
14
+ });
15
+ };
16
+ //#endregion
17
+ export { IconButton };
@@ -0,0 +1,2 @@
1
+ import { IconButton } from "./icon-button.mjs";
2
+ export { IconButton };
@@ -0,0 +1,2 @@
1
+ import { IconButton } from "./icon-button.mjs";
2
+ export { IconButton };
@@ -0,0 +1,27 @@
1
+ import { PropsWithChildren, ReactNode } from "react";
2
+
3
+ //#region src/components/buttons/icon-link/icon-link.d.ts
4
+ declare const IconLink: <T extends string>({
5
+ size,
6
+ bg,
7
+ label,
8
+ href,
9
+ children,
10
+ openInNewTab,
11
+ renderAnchor
12
+ }: PropsWithChildren<{
13
+ size?: "sm" | "md" | "lg";
14
+ bg?: "transparent" | "base" | "primary";
15
+ label?: string;
16
+ href: T;
17
+ openInNewTab?: boolean;
18
+ renderAnchor?: (props: {
19
+ href: NoInfer<T>;
20
+ className: string;
21
+ target?: string;
22
+ rel?: string;
23
+ children: ReactNode;
24
+ }) => ReactNode;
25
+ }>) => ReactNode;
26
+ //#endregion
27
+ export { IconLink };
@@ -0,0 +1,24 @@
1
+ import { cn } from "../../../helpers/cn.mjs";
2
+ import { isInternalRoute } from "../../../helpers/is-internal-route.mjs";
3
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
4
+ //#region src/components/buttons/icon-link/icon-link.tsx
5
+ const IconLink = ({ size = "md", bg = "transparent", label, href, children, openInNewTab = false, renderAnchor = ({ children, ...props }) => /* @__PURE__ */ jsx("a", {
6
+ ...props,
7
+ children
8
+ }) }) => {
9
+ const props = (isInternalRoute(href) && !openInNewTab ? "internal" : "external") === "internal" ? {} : {
10
+ target: "_blank",
11
+ rel: "noopener noreferrer"
12
+ };
13
+ return renderAnchor({
14
+ href,
15
+ className: cn("inline-flex rounded-full transition-colors hover:bg-bg-subtle active:bg-bg-emphasize focus-visible:ring-2 focus-visible:ring-border-info", bg === "base" && "bg-bg-base", bg === "transparent" && "bg-transparent", bg === "primary" && "bg-primary-bg hover:bg-primary-bg/90 active:bg-primary-bg-emphasize", size === "sm" && "p-1", size === "md" && "p-2", size === "lg" && "p-3"),
16
+ ...props,
17
+ children: /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("span", {
18
+ className: "sr-only",
19
+ children: label
20
+ }), children] })
21
+ });
22
+ };
23
+ //#endregion
24
+ export { IconLink };
@@ -0,0 +1,2 @@
1
+ import { IconLink } from "./icon-link.mjs";
2
+ export { IconLink };
@@ -0,0 +1,2 @@
1
+ import { IconLink } from "./icon-link.mjs";
2
+ export { IconLink };
@@ -0,0 +1,2 @@
1
+ import { LinkButton } from "./link-button.mjs";
2
+ export { LinkButton };
@@ -0,0 +1,2 @@
1
+ import { LinkButton } from "./link-button.mjs";
2
+ export { LinkButton };
@@ -0,0 +1,35 @@
1
+ import { ReactNode } from "react";
2
+
3
+ //#region src/components/buttons/link-button/link-button.d.ts
4
+ declare const LinkButton: <T extends string>({
5
+ children,
6
+ size,
7
+ color,
8
+ variant,
9
+ href,
10
+ startIcon,
11
+ endIcon,
12
+ active,
13
+ openInNewTab,
14
+ renderAnchor
15
+ }: {
16
+ variant?: "contained" | "outlined" | "skeleton";
17
+ size?: "sm" | "md" | "lg";
18
+ color?: "primary" | "gray";
19
+ href: T;
20
+ startIcon?: ReactNode;
21
+ endIcon?: ReactNode;
22
+ active?: boolean;
23
+ openInNewTab?: boolean;
24
+ children: string;
25
+ renderAnchor?: (props: {
26
+ "aria-label"?: string;
27
+ href: NoInfer<T>;
28
+ className: string;
29
+ target?: string;
30
+ rel?: string;
31
+ children: ReactNode;
32
+ }) => ReactNode;
33
+ }) => ReactNode;
34
+ //#endregion
35
+ export { LinkButton };
@@ -0,0 +1,32 @@
1
+ import { cn } from "../../../helpers/cn.mjs";
2
+ import { isInternalRoute } from "../../../helpers/is-internal-route.mjs";
3
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
4
+ //#region src/components/buttons/link-button/link-button.tsx
5
+ const LinkButton = ({ children, size = "md", color = "primary", variant = "contained", href, startIcon, endIcon, active = false, openInNewTab = false, renderAnchor = ({ children, ...props }) => /* @__PURE__ */ jsx("a", {
6
+ ...props,
7
+ children
8
+ }) }) => {
9
+ const props = (isInternalRoute(href) && !openInNewTab ? "internal" : "external") === "internal" ? {} : {
10
+ target: "_blank",
11
+ rel: "noopener noreferrer"
12
+ };
13
+ return renderAnchor({
14
+ href,
15
+ className: cn("rounded-lg border-2 text-center font-bold transition-colors", {
16
+ "border-transparent bg-primary-bg text-fg hover:bg-primary-bg/90 active:bg-primary-bg/80": variant === "contained" && color === "primary",
17
+ "border-transparent bg-bg-subtle text-fg-base hover:bg-bg-mute active:bg-bg-emphasize": variant === "contained" && color === "gray",
18
+ "border-primary-border bg-bg-base text-primary-fg hover:bg-bg-subtle active:bg-bg-emphasize": variant === "outlined" && color === "primary",
19
+ "border-border-base bg-bg-base text-fg-base hover:bg-bg-subtle active:bg-bg-emphasize": variant === "outlined" && color === "gray",
20
+ "border-transparent bg-transparent text-fg-mute hover:text-fg-base active:text-fg-base": variant === "skeleton"
21
+ }, "focus-visible:border-transparent focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-border-info", size === "sm" && "px-3 py-1 text-sm", size === "md" && "px-4 py-2 text-md", size === "lg" && "px-6 py-3 text-lg", Boolean(startIcon ?? endIcon) && "flex items-center gap-2", Boolean(endIcon) && "justify-between", active && "text-fg-info hover:text-fg-info active:text-fg-info"),
22
+ "aria-label": children,
23
+ ...props,
24
+ children: /* @__PURE__ */ jsxs(Fragment, { children: [
25
+ startIcon,
26
+ children,
27
+ endIcon
28
+ ] })
29
+ });
30
+ };
31
+ //#endregion
32
+ export { LinkButton };
@@ -0,0 +1,6 @@
1
+ import { FC, PropsWithChildren } from "react";
2
+
3
+ //#region src/components/data-display/accordion/accordion-button.d.ts
4
+ declare const AccordionButton: FC<PropsWithChildren>;
5
+ //#endregion
6
+ export { AccordionButton };
@@ -0,0 +1,25 @@
1
+ "use client";
2
+ import { cn } from "../../../helpers/cn.mjs";
3
+ import { ChevronIcon } from "../../icons/lucide.mjs";
4
+ import { useItemId, useOpen, useToggleOpen } from "./context.mjs";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ //#region src/components/data-display/accordion/accordion-button.tsx
7
+ const AccordionButton = ({ children }) => {
8
+ const id = useItemId();
9
+ const open = useOpen();
10
+ const toggleOpen = useToggleOpen();
11
+ return /* @__PURE__ */ jsxs("button", {
12
+ "aria-controls": `${id}-panel`,
13
+ "aria-expanded": open,
14
+ className: cn("flex w-full cursor-pointer items-center justify-between rounded-md py-4 text-fg-base", "hover:text-primary-fg", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-info"),
15
+ id: `${id}-button`,
16
+ onClick: toggleOpen,
17
+ type: "button",
18
+ children: [children, /* @__PURE__ */ jsx("span", {
19
+ className: cn("transition-transform duration-150", open && "rotate-180"),
20
+ children: /* @__PURE__ */ jsx(ChevronIcon, { direction: "down" })
21
+ })]
22
+ });
23
+ };
24
+ //#endregion
25
+ export { AccordionButton };
@@ -0,0 +1,8 @@
1
+ import { FC, PropsWithChildren } from "react";
2
+
3
+ //#region src/components/data-display/accordion/accordion-item.d.ts
4
+ declare const AccordionItem: FC<PropsWithChildren<{
5
+ defaultOpen?: boolean;
6
+ }>>;
7
+ //#endregion
8
+ export { AccordionItem };
@@ -0,0 +1,14 @@
1
+ "use client";
2
+ import { AccordionItemProvider } from "./context.mjs";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { useId } from "react";
5
+ //#region src/components/data-display/accordion/accordion-item.tsx
6
+ const AccordionItem = ({ children, defaultOpen = false }) => {
7
+ return /* @__PURE__ */ jsx(AccordionItemProvider, {
8
+ defaultOpen,
9
+ id: useId(),
10
+ children: /* @__PURE__ */ jsx("div", { children })
11
+ });
12
+ };
13
+ //#endregion
14
+ export { AccordionItem };
@@ -0,0 +1,6 @@
1
+ import { FC, PropsWithChildren } from "react";
2
+
3
+ //#region src/components/data-display/accordion/accordion-panel.d.ts
4
+ declare const AccordionPanel: FC<PropsWithChildren>;
5
+ //#endregion
6
+ export { AccordionPanel };
@@ -0,0 +1,18 @@
1
+ "use client";
2
+ import { cn } from "../../../helpers/cn.mjs";
3
+ import { useItemId, useOpen } from "./context.mjs";
4
+ import { jsx } from "react/jsx-runtime";
5
+ //#region src/components/data-display/accordion/accordion-panel.tsx
6
+ const AccordionPanel = ({ children }) => {
7
+ const id = useItemId();
8
+ const open = useOpen();
9
+ return /* @__PURE__ */ jsx("section", {
10
+ "aria-labelledby": `${id}-button`,
11
+ className: cn({ hidden: !open }, "pb-4"),
12
+ hidden: !open,
13
+ id: `${id}-panel`,
14
+ children
15
+ });
16
+ };
17
+ //#endregion
18
+ export { AccordionPanel };
@@ -0,0 +1,6 @@
1
+ import { FC, PropsWithChildren } from "react";
2
+
3
+ //#region src/components/data-display/accordion/accordion.d.ts
4
+ declare const Accordion: FC<PropsWithChildren>;
5
+ //#endregion
6
+ export { Accordion };
@@ -0,0 +1,10 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ //#region src/components/data-display/accordion/accordion.tsx
3
+ const Accordion = ({ children }) => {
4
+ return /* @__PURE__ */ jsx("div", {
5
+ className: "divide-y divide-border-mute",
6
+ children
7
+ });
8
+ };
9
+ //#endregion
10
+ export { Accordion };
@@ -0,0 +1,13 @@
1
+ import { FC, PropsWithChildren } from "react";
2
+
3
+ //#region src/components/data-display/accordion/context.d.ts
4
+ type ToggleOpen = () => void;
5
+ declare const useOpen: () => boolean;
6
+ declare const useToggleOpen: () => ToggleOpen;
7
+ declare const useItemId: () => string;
8
+ declare const AccordionItemProvider: FC<PropsWithChildren<{
9
+ defaultOpen?: boolean;
10
+ id: string;
11
+ }>>;
12
+ //#endregion
13
+ export { AccordionItemProvider, useItemId, useOpen, useToggleOpen };