@bloomneo/uikit 1.5.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 (678) hide show
  1. package/CHANGELOG.md +222 -0
  2. package/LICENSE +21 -0
  3. package/README.md +513 -0
  4. package/bin/commands/build.js +232 -0
  5. package/bin/commands/bundle.js +587 -0
  6. package/bin/commands/create.js +768 -0
  7. package/bin/commands/deploy.js +533 -0
  8. package/bin/commands/generate.js +673 -0
  9. package/bin/commands/optimize.js +198 -0
  10. package/bin/commands/prerender.js +306 -0
  11. package/bin/commands/serve.js +216 -0
  12. package/bin/templates/fbca/README.md.template +130 -0
  13. package/bin/templates/fbca/docs/QUICKSTART_FBCA.md +368 -0
  14. package/bin/templates/fbca/docs/UIKIT_CLI_GUIDE.md +574 -0
  15. package/bin/templates/fbca/docs/UIKIT_COMPOSITE_UI_SYSTEM.md +649 -0
  16. package/bin/templates/fbca/docs/UIKIT_LLM_GUIDE.md +2055 -0
  17. package/bin/templates/fbca/docs/UIKIT_THEME_GUIDE.md +359 -0
  18. package/bin/templates/fbca/package.json.template +41 -0
  19. package/bin/templates/fbca/public/favicon.svg +10 -0
  20. package/bin/templates/fbca/public/hero_fbca.svg +1 -0
  21. package/bin/templates/fbca/src/utils/asset.ts +6 -0
  22. package/bin/templates/fbca/src/web/App.tsx.template +20 -0
  23. package/bin/templates/fbca/src/web/features/auth/pages/index.tsx.template +157 -0
  24. package/bin/templates/fbca/src/web/features/docs/pages/[...slug].tsx.template +83 -0
  25. package/bin/templates/fbca/src/web/features/gallery/hooks/useGallery.ts.template +74 -0
  26. package/bin/templates/fbca/src/web/features/gallery/pages/index.tsx.template +136 -0
  27. package/bin/templates/fbca/src/web/features/main/components/CTASection.tsx.template +43 -0
  28. package/bin/templates/fbca/src/web/features/main/pages/About.tsx.template +374 -0
  29. package/bin/templates/fbca/src/web/features/main/pages/index.tsx.template +214 -0
  30. package/bin/templates/fbca/src/web/index.html.template +15 -0
  31. package/bin/templates/fbca/src/web/lib/page-router.tsx.template +134 -0
  32. package/bin/templates/fbca/src/web/main.tsx.template +14 -0
  33. package/bin/templates/fbca/src/web/shared/components/Footer.tsx.template +57 -0
  34. package/bin/templates/fbca/src/web/shared/components/Header.tsx.template +91 -0
  35. package/bin/templates/fbca/src/web/shared/components/SEO.tsx.template +24 -0
  36. package/bin/templates/fbca/src/web/shared/components/index.ts.template +3 -0
  37. package/bin/templates/fbca/src/web/shared/hooks/useSEO.ts.template +85 -0
  38. package/bin/templates/fbca/src/web/shared/utils/asset.ts +6 -0
  39. package/bin/templates/fbca/src/web/styles/index.css.template +8 -0
  40. package/bin/templates/fbca/src/web/utils/asset.ts +6 -0
  41. package/bin/templates/fbca/tsconfig.json.template +32 -0
  42. package/bin/templates/fbca/tsconfig.node.json.template +10 -0
  43. package/bin/templates/fbca/vite.config.ts.template +38 -0
  44. package/bin/templates/generate/component/component.tsx.template +79 -0
  45. package/bin/templates/generate/component/index.ts.template +2 -0
  46. package/bin/templates/generate/component/types.ts.template +58 -0
  47. package/bin/templates/generate/feature/index.ts.template +14 -0
  48. package/bin/templates/generate/feature/list-page.tsx.template +34 -0
  49. package/bin/templates/generate/feature/main-component.tsx.template +37 -0
  50. package/bin/templates/generate/feature/main-page.tsx.template +30 -0
  51. package/bin/templates/generate/feature/types.ts.template +34 -0
  52. package/bin/templates/generate/hook/hook.ts.template +35 -0
  53. package/bin/templates/generate/index.css.template +10 -0
  54. package/bin/templates/generate/main.tsx.template +10 -0
  55. package/bin/templates/generate/page/index.ts.template +2 -0
  56. package/bin/templates/generate/page/page.tsx.template +86 -0
  57. package/bin/templates/generate/theme/README.md +31 -0
  58. package/bin/templates/generate/theme/theme.js.template +155 -0
  59. package/bin/templates/multi/README.md.template +120 -0
  60. package/bin/templates/multi/docs/QUICKSTART_MULTI.md +334 -0
  61. package/bin/templates/multi/docs/UIKIT_CLI_GUIDE.md +574 -0
  62. package/bin/templates/multi/docs/UIKIT_COMPOSITE_UI_SYSTEM.md +649 -0
  63. package/bin/templates/multi/docs/UIKIT_LLM_GUIDE.md +2055 -0
  64. package/bin/templates/multi/docs/UIKIT_THEME_GUIDE.md +359 -0
  65. package/bin/templates/multi/index.html.template +58 -0
  66. package/bin/templates/multi/package.json.template +35 -0
  67. package/bin/templates/multi/public/favicon.svg +10 -0
  68. package/bin/templates/multi/public/hero_multi.svg +1 -0
  69. package/bin/templates/multi/src/App.tsx.template +92 -0
  70. package/bin/templates/multi/src/components/Footer.tsx.template +58 -0
  71. package/bin/templates/multi/src/components/Header.tsx.template +103 -0
  72. package/bin/templates/multi/src/components/SEO.tsx.template +19 -0
  73. package/bin/templates/multi/src/components/index.ts.template +3 -0
  74. package/bin/templates/multi/src/hooks/useSEO.ts.template +38 -0
  75. package/bin/templates/multi/src/index.css.template +7 -0
  76. package/bin/templates/multi/src/main.tsx.template +14 -0
  77. package/bin/templates/multi/src/pages/About.tsx.template +276 -0
  78. package/bin/templates/multi/src/pages/Components.tsx.template +288 -0
  79. package/bin/templates/multi/src/pages/Contact.tsx.template +348 -0
  80. package/bin/templates/multi/src/pages/Dashboard.tsx.template +306 -0
  81. package/bin/templates/multi/src/pages/ErrorPage.tsx.template +37 -0
  82. package/bin/templates/multi/src/pages/Home.tsx.template +201 -0
  83. package/bin/templates/multi/src/pages/Login.tsx.template +148 -0
  84. package/bin/templates/multi/src/pages/Themes.tsx.template +207 -0
  85. package/bin/templates/multi/src/router.tsx.template +34 -0
  86. package/bin/templates/multi/src/utils/asset.ts +6 -0
  87. package/bin/templates/multi/tsconfig.json.template +30 -0
  88. package/bin/templates/multi/tsconfig.node.json +22 -0
  89. package/bin/templates/multi/vite.config.ts.template +36 -0
  90. package/bin/templates/single/README.md.template +131 -0
  91. package/bin/templates/single/docs/QUICKSTART_SINGLE.md +259 -0
  92. package/bin/templates/single/docs/UIKIT_CLI_GUIDE.md +574 -0
  93. package/bin/templates/single/docs/UIKIT_COMPOSITE_UI_SYSTEM.md +649 -0
  94. package/bin/templates/single/docs/UIKIT_LLM_GUIDE.md +2055 -0
  95. package/bin/templates/single/docs/UIKIT_THEME_GUIDE.md +359 -0
  96. package/bin/templates/single/index.html.template +37 -0
  97. package/bin/templates/single/package.json.template +34 -0
  98. package/bin/templates/single/public/favicon.svg +10 -0
  99. package/bin/templates/single/public/hero.svg +1 -0
  100. package/bin/templates/single/src/App.tsx.template +233 -0
  101. package/bin/templates/single/src/index.css.template +7 -0
  102. package/bin/templates/single/src/main.tsx.template +14 -0
  103. package/bin/templates/single/src/styles/fonts.css +99 -0
  104. package/bin/templates/single/src/utils/asset.ts +6 -0
  105. package/bin/templates/single/tsconfig.json +31 -0
  106. package/bin/templates/single/tsconfig.node.json +22 -0
  107. package/bin/templates/single/vite.config.ts.template +36 -0
  108. package/bin/templates/spa/README.md.template +105 -0
  109. package/bin/templates/spa/components/SEO.tsx.template +19 -0
  110. package/bin/templates/spa/docs/QUICKSTART_SPA.md +300 -0
  111. package/bin/templates/spa/docs/UIKIT_CLI_GUIDE.md +574 -0
  112. package/bin/templates/spa/docs/UIKIT_COMPOSITE_UI_SYSTEM.md +649 -0
  113. package/bin/templates/spa/docs/UIKIT_LLM_GUIDE.md +2055 -0
  114. package/bin/templates/spa/docs/UIKIT_THEME_GUIDE.md +359 -0
  115. package/bin/templates/spa/hooks/useSEO.ts.template +38 -0
  116. package/bin/templates/spa/index.html.template +58 -0
  117. package/bin/templates/spa/package.json.template +35 -0
  118. package/bin/templates/spa/public/favicon.svg +15 -0
  119. package/bin/templates/spa/public/hero_spa.svg +1 -0
  120. package/bin/templates/spa/src/App.tsx.template +659 -0
  121. package/bin/templates/spa/src/index.css.template +7 -0
  122. package/bin/templates/spa/src/main.tsx.template +14 -0
  123. package/bin/templates/spa/src/utils/asset.ts +6 -0
  124. package/bin/templates/spa/tsconfig.json.template +30 -0
  125. package/bin/templates/spa/tsconfig.node.json +22 -0
  126. package/bin/templates/spa/vite.config.ts.template +36 -0
  127. package/bin/uikit.js +133 -0
  128. package/cookbook/README.md +20 -0
  129. package/cookbook/crud-page.tsx +99 -0
  130. package/cookbook/dashboard.tsx +89 -0
  131. package/cookbook/delete-flow.tsx +59 -0
  132. package/cookbook/login.tsx +85 -0
  133. package/cookbook/settings.tsx +113 -0
  134. package/dist/Combination-C0DFrmJW.js +674 -0
  135. package/dist/Combination-C0DFrmJW.js.map +1 -0
  136. package/dist/accordion.js +284 -0
  137. package/dist/accordion.js.map +1 -0
  138. package/dist/admin.js +429 -0
  139. package/dist/admin.js.map +1 -0
  140. package/dist/alert.js +67 -0
  141. package/dist/alert.js.map +1 -0
  142. package/dist/auth.js +178 -0
  143. package/dist/auth.js.map +1 -0
  144. package/dist/avatar.js +249 -0
  145. package/dist/avatar.js.map +1 -0
  146. package/dist/badge.js +40 -0
  147. package/dist/badge.js.map +1 -0
  148. package/dist/blank.js +80 -0
  149. package/dist/blank.js.map +1 -0
  150. package/dist/breadcrumb.js +104 -0
  151. package/dist/breadcrumb.js.map +1 -0
  152. package/dist/button.js +50 -0
  153. package/dist/button.js.map +1 -0
  154. package/dist/calendar.js +2785 -0
  155. package/dist/calendar.js.map +1 -0
  156. package/dist/card.js +91 -0
  157. package/dist/card.js.map +1 -0
  158. package/dist/check-DXouwtzp.js +12 -0
  159. package/dist/check-DXouwtzp.js.map +1 -0
  160. package/dist/checkbox.js +268 -0
  161. package/dist/checkbox.js.map +1 -0
  162. package/dist/chevron-down-BORJtX8F.js +14 -0
  163. package/dist/chevron-down-BORJtX8F.js.map +1 -0
  164. package/dist/chevron-left-C1pkx4AF.js +14 -0
  165. package/dist/chevron-left-C1pkx4AF.js.map +1 -0
  166. package/dist/chevron-right-pz9eCjj-.js +14 -0
  167. package/dist/chevron-right-pz9eCjj-.js.map +1 -0
  168. package/dist/circle-DHOdTDQh.js +14 -0
  169. package/dist/circle-DHOdTDQh.js.map +1 -0
  170. package/dist/collapsible.js +35 -0
  171. package/dist/collapsible.js.map +1 -0
  172. package/dist/command.js +481 -0
  173. package/dist/command.js.map +1 -0
  174. package/dist/confirm-dialog.js +129 -0
  175. package/dist/confirm-dialog.js.map +1 -0
  176. package/dist/container.js +334 -0
  177. package/dist/container.js.map +1 -0
  178. package/dist/createLucideIcon-B45kRl5r.js +80 -0
  179. package/dist/createLucideIcon-B45kRl5r.js.map +1 -0
  180. package/dist/data-table.js +574 -0
  181. package/dist/data-table.js.map +1 -0
  182. package/dist/detail-page.js +454 -0
  183. package/dist/detail-page.js.map +1 -0
  184. package/dist/dialog.js +137 -0
  185. package/dist/dialog.js.map +1 -0
  186. package/dist/dropdown-menu.js +424 -0
  187. package/dist/dropdown-menu.js.map +1 -0
  188. package/dist/ellipsis-BhAoKPVk.js +16 -0
  189. package/dist/ellipsis-BhAoKPVk.js.map +1 -0
  190. package/dist/empty-state.js +54 -0
  191. package/dist/empty-state.js.map +1 -0
  192. package/dist/errors.js +36 -0
  193. package/dist/errors.js.map +1 -0
  194. package/dist/eye-DDKoW0KS.js +46 -0
  195. package/dist/eye-DDKoW0KS.js.map +1 -0
  196. package/dist/fonts/caveat-cyrillic-400-normal.woff +0 -0
  197. package/dist/fonts/caveat-cyrillic-400-normal.woff2 +0 -0
  198. package/dist/fonts/caveat-cyrillic-700-normal.woff +0 -0
  199. package/dist/fonts/caveat-cyrillic-700-normal.woff2 +0 -0
  200. package/dist/fonts/caveat-cyrillic-ext-400-normal.woff +0 -0
  201. package/dist/fonts/caveat-cyrillic-ext-400-normal.woff2 +0 -0
  202. package/dist/fonts/caveat-cyrillic-ext-700-normal.woff +0 -0
  203. package/dist/fonts/caveat-cyrillic-ext-700-normal.woff2 +0 -0
  204. package/dist/fonts/caveat-latin-400-normal.woff +0 -0
  205. package/dist/fonts/caveat-latin-400-normal.woff2 +0 -0
  206. package/dist/fonts/caveat-latin-700-normal.woff +0 -0
  207. package/dist/fonts/caveat-latin-700-normal.woff2 +0 -0
  208. package/dist/fonts/caveat-latin-ext-400-normal.woff +0 -0
  209. package/dist/fonts/caveat-latin-ext-400-normal.woff2 +0 -0
  210. package/dist/fonts/caveat-latin-ext-700-normal.woff +0 -0
  211. package/dist/fonts/caveat-latin-ext-700-normal.woff2 +0 -0
  212. package/dist/fonts/crimson-text-latin-400-normal.woff +0 -0
  213. package/dist/fonts/crimson-text-latin-400-normal.woff2 +0 -0
  214. package/dist/fonts/crimson-text-latin-600-normal.woff +0 -0
  215. package/dist/fonts/crimson-text-latin-600-normal.woff2 +0 -0
  216. package/dist/fonts/crimson-text-latin-700-normal.woff +0 -0
  217. package/dist/fonts/crimson-text-latin-700-normal.woff2 +0 -0
  218. package/dist/fonts/crimson-text-latin-ext-400-normal.woff +0 -0
  219. package/dist/fonts/crimson-text-latin-ext-400-normal.woff2 +0 -0
  220. package/dist/fonts/crimson-text-latin-ext-600-normal.woff +0 -0
  221. package/dist/fonts/crimson-text-latin-ext-600-normal.woff2 +0 -0
  222. package/dist/fonts/crimson-text-latin-ext-700-normal.woff +0 -0
  223. package/dist/fonts/crimson-text-latin-ext-700-normal.woff2 +0 -0
  224. package/dist/fonts/crimson-text-vietnamese-400-normal.woff +0 -0
  225. package/dist/fonts/crimson-text-vietnamese-400-normal.woff2 +0 -0
  226. package/dist/fonts/crimson-text-vietnamese-600-normal.woff +0 -0
  227. package/dist/fonts/crimson-text-vietnamese-600-normal.woff2 +0 -0
  228. package/dist/fonts/crimson-text-vietnamese-700-normal.woff +0 -0
  229. package/dist/fonts/crimson-text-vietnamese-700-normal.woff2 +0 -0
  230. package/dist/fonts/dm-serif-display-latin-400-normal.woff +0 -0
  231. package/dist/fonts/dm-serif-display-latin-400-normal.woff2 +0 -0
  232. package/dist/fonts/dm-serif-display-latin-ext-400-normal.woff +0 -0
  233. package/dist/fonts/dm-serif-display-latin-ext-400-normal.woff2 +0 -0
  234. package/dist/fonts/libre-baskerville-latin-400-normal.woff +0 -0
  235. package/dist/fonts/libre-baskerville-latin-400-normal.woff2 +0 -0
  236. package/dist/fonts/libre-baskerville-latin-700-normal.woff +0 -0
  237. package/dist/fonts/libre-baskerville-latin-700-normal.woff2 +0 -0
  238. package/dist/fonts/libre-baskerville-latin-ext-400-normal.woff +0 -0
  239. package/dist/fonts/libre-baskerville-latin-ext-400-normal.woff2 +0 -0
  240. package/dist/fonts/libre-baskerville-latin-ext-700-normal.woff +0 -0
  241. package/dist/fonts/libre-baskerville-latin-ext-700-normal.woff2 +0 -0
  242. package/dist/fonts/montserrat-cyrillic-400-normal.woff +0 -0
  243. package/dist/fonts/montserrat-cyrillic-400-normal.woff2 +0 -0
  244. package/dist/fonts/montserrat-cyrillic-500-normal.woff +0 -0
  245. package/dist/fonts/montserrat-cyrillic-500-normal.woff2 +0 -0
  246. package/dist/fonts/montserrat-cyrillic-600-normal.woff +0 -0
  247. package/dist/fonts/montserrat-cyrillic-600-normal.woff2 +0 -0
  248. package/dist/fonts/montserrat-cyrillic-ext-400-normal.woff +0 -0
  249. package/dist/fonts/montserrat-cyrillic-ext-400-normal.woff2 +0 -0
  250. package/dist/fonts/montserrat-cyrillic-ext-500-normal.woff +0 -0
  251. package/dist/fonts/montserrat-cyrillic-ext-500-normal.woff2 +0 -0
  252. package/dist/fonts/montserrat-cyrillic-ext-600-normal.woff +0 -0
  253. package/dist/fonts/montserrat-cyrillic-ext-600-normal.woff2 +0 -0
  254. package/dist/fonts/montserrat-latin-400-normal.woff +0 -0
  255. package/dist/fonts/montserrat-latin-400-normal.woff2 +0 -0
  256. package/dist/fonts/montserrat-latin-500-normal.woff +0 -0
  257. package/dist/fonts/montserrat-latin-500-normal.woff2 +0 -0
  258. package/dist/fonts/montserrat-latin-600-normal.woff +0 -0
  259. package/dist/fonts/montserrat-latin-600-normal.woff2 +0 -0
  260. package/dist/fonts/montserrat-latin-ext-400-normal.woff +0 -0
  261. package/dist/fonts/montserrat-latin-ext-400-normal.woff2 +0 -0
  262. package/dist/fonts/montserrat-latin-ext-500-normal.woff +0 -0
  263. package/dist/fonts/montserrat-latin-ext-500-normal.woff2 +0 -0
  264. package/dist/fonts/montserrat-latin-ext-600-normal.woff +0 -0
  265. package/dist/fonts/montserrat-latin-ext-600-normal.woff2 +0 -0
  266. package/dist/fonts/montserrat-vietnamese-400-normal.woff +0 -0
  267. package/dist/fonts/montserrat-vietnamese-400-normal.woff2 +0 -0
  268. package/dist/fonts/montserrat-vietnamese-500-normal.woff +0 -0
  269. package/dist/fonts/montserrat-vietnamese-500-normal.woff2 +0 -0
  270. package/dist/fonts/montserrat-vietnamese-600-normal.woff +0 -0
  271. package/dist/fonts/montserrat-vietnamese-600-normal.woff2 +0 -0
  272. package/dist/fonts/playfair-display-cyrillic-400-normal.woff +0 -0
  273. package/dist/fonts/playfair-display-cyrillic-400-normal.woff2 +0 -0
  274. package/dist/fonts/playfair-display-cyrillic-500-normal.woff +0 -0
  275. package/dist/fonts/playfair-display-cyrillic-500-normal.woff2 +0 -0
  276. package/dist/fonts/playfair-display-latin-400-normal.woff +0 -0
  277. package/dist/fonts/playfair-display-latin-400-normal.woff2 +0 -0
  278. package/dist/fonts/playfair-display-latin-500-normal.woff +0 -0
  279. package/dist/fonts/playfair-display-latin-500-normal.woff2 +0 -0
  280. package/dist/fonts/playfair-display-latin-ext-400-normal.woff +0 -0
  281. package/dist/fonts/playfair-display-latin-ext-400-normal.woff2 +0 -0
  282. package/dist/fonts/playfair-display-latin-ext-500-normal.woff +0 -0
  283. package/dist/fonts/playfair-display-latin-ext-500-normal.woff2 +0 -0
  284. package/dist/fonts/playfair-display-vietnamese-400-normal.woff +0 -0
  285. package/dist/fonts/playfair-display-vietnamese-400-normal.woff2 +0 -0
  286. package/dist/fonts/playfair-display-vietnamese-500-normal.woff +0 -0
  287. package/dist/fonts/playfair-display-vietnamese-500-normal.woff2 +0 -0
  288. package/dist/fonts/poppins-devanagari-400-normal.woff +0 -0
  289. package/dist/fonts/poppins-devanagari-400-normal.woff2 +0 -0
  290. package/dist/fonts/poppins-devanagari-500-normal.woff +0 -0
  291. package/dist/fonts/poppins-devanagari-500-normal.woff2 +0 -0
  292. package/dist/fonts/poppins-devanagari-600-normal.woff +0 -0
  293. package/dist/fonts/poppins-devanagari-600-normal.woff2 +0 -0
  294. package/dist/fonts/poppins-latin-400-normal.woff +0 -0
  295. package/dist/fonts/poppins-latin-400-normal.woff2 +0 -0
  296. package/dist/fonts/poppins-latin-500-normal.woff +0 -0
  297. package/dist/fonts/poppins-latin-500-normal.woff2 +0 -0
  298. package/dist/fonts/poppins-latin-600-normal.woff +0 -0
  299. package/dist/fonts/poppins-latin-600-normal.woff2 +0 -0
  300. package/dist/fonts/poppins-latin-ext-400-normal.woff +0 -0
  301. package/dist/fonts/poppins-latin-ext-400-normal.woff2 +0 -0
  302. package/dist/fonts/poppins-latin-ext-500-normal.woff +0 -0
  303. package/dist/fonts/poppins-latin-ext-500-normal.woff2 +0 -0
  304. package/dist/fonts/poppins-latin-ext-600-normal.woff +0 -0
  305. package/dist/fonts/poppins-latin-ext-600-normal.woff2 +0 -0
  306. package/dist/fonts/rubik-arabic-400-normal.woff +0 -0
  307. package/dist/fonts/rubik-arabic-400-normal.woff2 +0 -0
  308. package/dist/fonts/rubik-arabic-500-normal.woff +0 -0
  309. package/dist/fonts/rubik-arabic-500-normal.woff2 +0 -0
  310. package/dist/fonts/rubik-cyrillic-400-normal.woff +0 -0
  311. package/dist/fonts/rubik-cyrillic-400-normal.woff2 +0 -0
  312. package/dist/fonts/rubik-cyrillic-500-normal.woff +0 -0
  313. package/dist/fonts/rubik-cyrillic-500-normal.woff2 +0 -0
  314. package/dist/fonts/rubik-cyrillic-ext-400-normal.woff +0 -0
  315. package/dist/fonts/rubik-cyrillic-ext-400-normal.woff2 +0 -0
  316. package/dist/fonts/rubik-cyrillic-ext-500-normal.woff +0 -0
  317. package/dist/fonts/rubik-cyrillic-ext-500-normal.woff2 +0 -0
  318. package/dist/fonts/rubik-hebrew-400-normal.woff +0 -0
  319. package/dist/fonts/rubik-hebrew-400-normal.woff2 +0 -0
  320. package/dist/fonts/rubik-hebrew-500-normal.woff +0 -0
  321. package/dist/fonts/rubik-hebrew-500-normal.woff2 +0 -0
  322. package/dist/fonts/rubik-latin-400-normal.woff +0 -0
  323. package/dist/fonts/rubik-latin-400-normal.woff2 +0 -0
  324. package/dist/fonts/rubik-latin-500-normal.woff +0 -0
  325. package/dist/fonts/rubik-latin-500-normal.woff2 +0 -0
  326. package/dist/fonts/rubik-latin-ext-400-normal.woff +0 -0
  327. package/dist/fonts/rubik-latin-ext-400-normal.woff2 +0 -0
  328. package/dist/fonts/rubik-latin-ext-500-normal.woff +0 -0
  329. package/dist/fonts/rubik-latin-ext-500-normal.woff2 +0 -0
  330. package/dist/fonts/source-serif-pro-cyrillic-400-normal.woff +0 -0
  331. package/dist/fonts/source-serif-pro-cyrillic-400-normal.woff2 +0 -0
  332. package/dist/fonts/source-serif-pro-cyrillic-ext-400-normal.woff +0 -0
  333. package/dist/fonts/source-serif-pro-cyrillic-ext-400-normal.woff2 +0 -0
  334. package/dist/fonts/source-serif-pro-greek-400-normal.woff +0 -0
  335. package/dist/fonts/source-serif-pro-greek-400-normal.woff2 +0 -0
  336. package/dist/fonts/source-serif-pro-latin-400-normal.woff +0 -0
  337. package/dist/fonts/source-serif-pro-latin-400-normal.woff2 +0 -0
  338. package/dist/fonts/source-serif-pro-latin-ext-400-normal.woff +0 -0
  339. package/dist/fonts/source-serif-pro-latin-ext-400-normal.woff2 +0 -0
  340. package/dist/fonts/source-serif-pro-vietnamese-400-normal.woff +0 -0
  341. package/dist/fonts/source-serif-pro-vietnamese-400-normal.woff2 +0 -0
  342. package/dist/fonts/space-grotesk-latin-400-normal.woff +0 -0
  343. package/dist/fonts/space-grotesk-latin-400-normal.woff2 +0 -0
  344. package/dist/fonts/space-grotesk-latin-600-normal.woff +0 -0
  345. package/dist/fonts/space-grotesk-latin-600-normal.woff2 +0 -0
  346. package/dist/fonts/space-grotesk-latin-700-normal.woff +0 -0
  347. package/dist/fonts/space-grotesk-latin-700-normal.woff2 +0 -0
  348. package/dist/fonts/space-grotesk-latin-ext-400-normal.woff +0 -0
  349. package/dist/fonts/space-grotesk-latin-ext-400-normal.woff2 +0 -0
  350. package/dist/fonts/space-grotesk-latin-ext-600-normal.woff +0 -0
  351. package/dist/fonts/space-grotesk-latin-ext-600-normal.woff2 +0 -0
  352. package/dist/fonts/space-grotesk-latin-ext-700-normal.woff +0 -0
  353. package/dist/fonts/space-grotesk-latin-ext-700-normal.woff2 +0 -0
  354. package/dist/fonts/space-grotesk-vietnamese-400-normal.woff +0 -0
  355. package/dist/fonts/space-grotesk-vietnamese-400-normal.woff2 +0 -0
  356. package/dist/fonts/space-grotesk-vietnamese-600-normal.woff +0 -0
  357. package/dist/fonts/space-grotesk-vietnamese-600-normal.woff2 +0 -0
  358. package/dist/fonts/space-grotesk-vietnamese-700-normal.woff +0 -0
  359. package/dist/fonts/space-grotesk-vietnamese-700-normal.woff2 +0 -0
  360. package/dist/fonts/work-sans-latin-400-normal.woff +0 -0
  361. package/dist/fonts/work-sans-latin-400-normal.woff2 +0 -0
  362. package/dist/fonts/work-sans-latin-500-normal.woff +0 -0
  363. package/dist/fonts/work-sans-latin-500-normal.woff2 +0 -0
  364. package/dist/fonts/work-sans-latin-ext-400-normal.woff +0 -0
  365. package/dist/fonts/work-sans-latin-ext-400-normal.woff2 +0 -0
  366. package/dist/fonts/work-sans-latin-ext-500-normal.woff +0 -0
  367. package/dist/fonts/work-sans-latin-ext-500-normal.woff2 +0 -0
  368. package/dist/fonts/work-sans-vietnamese-400-normal.woff +0 -0
  369. package/dist/fonts/work-sans-vietnamese-400-normal.woff2 +0 -0
  370. package/dist/fonts/work-sans-vietnamese-500-normal.woff +0 -0
  371. package/dist/fonts/work-sans-vietnamese-500-normal.woff2 +0 -0
  372. package/dist/footer.js +308 -0
  373. package/dist/footer.js.map +1 -0
  374. package/dist/form-field.js +69 -0
  375. package/dist/form-field.js.map +1 -0
  376. package/dist/form.js +732 -0
  377. package/dist/form.js.map +1 -0
  378. package/dist/format.js +112 -0
  379. package/dist/format.js.map +1 -0
  380. package/dist/fouc.js +28 -0
  381. package/dist/fouc.js.map +1 -0
  382. package/dist/header.js +289 -0
  383. package/dist/header.js.map +1 -0
  384. package/dist/hooks.js +13 -0
  385. package/dist/hooks.js.map +1 -0
  386. package/dist/hover-card.js +210 -0
  387. package/dist/hover-card.js.map +1 -0
  388. package/dist/index-0ioNhtNM.js +11 -0
  389. package/dist/index-0ioNhtNM.js.map +1 -0
  390. package/dist/index-1QHKgw6D.js +55 -0
  391. package/dist/index-1QHKgw6D.js.map +1 -0
  392. package/dist/index-B6sSWi7l.js +747 -0
  393. package/dist/index-B6sSWi7l.js.map +1 -0
  394. package/dist/index-BCjJQGh8.js +71 -0
  395. package/dist/index-BCjJQGh8.js.map +1 -0
  396. package/dist/index-BGQepRFJ.js +28 -0
  397. package/dist/index-BGQepRFJ.js.map +1 -0
  398. package/dist/index-BVRIAMfe.js +37 -0
  399. package/dist/index-BVRIAMfe.js.map +1 -0
  400. package/dist/index-BY7PeRJA.js +145 -0
  401. package/dist/index-BY7PeRJA.js.map +1 -0
  402. package/dist/index-BZPx6jYI.js +9 -0
  403. package/dist/index-BZPx6jYI.js.map +1 -0
  404. package/dist/index-Ba4eHUBD.js +243 -0
  405. package/dist/index-Ba4eHUBD.js.map +1 -0
  406. package/dist/index-Bke1qZdk.js +35 -0
  407. package/dist/index-Bke1qZdk.js.map +1 -0
  408. package/dist/index-C0UREtMP.js +60 -0
  409. package/dist/index-C0UREtMP.js.map +1 -0
  410. package/dist/index-CCKe-Mpx.js +7 -0
  411. package/dist/index-CCKe-Mpx.js.map +1 -0
  412. package/dist/index-DFZozV_h.js +69 -0
  413. package/dist/index-DFZozV_h.js.map +1 -0
  414. package/dist/index-DFi6WydO.js +180 -0
  415. package/dist/index-DFi6WydO.js.map +1 -0
  416. package/dist/index-DQH6odE9.js +83 -0
  417. package/dist/index-DQH6odE9.js.map +1 -0
  418. package/dist/index-EO5flKM3.js +119 -0
  419. package/dist/index-EO5flKM3.js.map +1 -0
  420. package/dist/index-Lf7yDOXW.js +615 -0
  421. package/dist/index-Lf7yDOXW.js.map +1 -0
  422. package/dist/index-dhIqEbxW.js +1541 -0
  423. package/dist/index-dhIqEbxW.js.map +1 -0
  424. package/dist/index-pWhlqjff.js +32 -0
  425. package/dist/index-pWhlqjff.js.map +1 -0
  426. package/dist/index-rKs9bXHr.js +7 -0
  427. package/dist/index-rKs9bXHr.js.map +1 -0
  428. package/dist/index-xqkGMOJ8.js +14 -0
  429. package/dist/index-xqkGMOJ8.js.map +1 -0
  430. package/dist/index.js +247 -0
  431. package/dist/index.js.map +1 -0
  432. package/dist/input.js +22 -0
  433. package/dist/input.js.map +1 -0
  434. package/dist/label.js +36 -0
  435. package/dist/label.js.map +1 -0
  436. package/dist/layout-wrapper.js +208 -0
  437. package/dist/layout-wrapper.js.map +1 -0
  438. package/dist/llms.txt +1140 -0
  439. package/dist/menu-DBhEanGo.js +16 -0
  440. package/dist/menu-DBhEanGo.js.map +1 -0
  441. package/dist/menubar.js +565 -0
  442. package/dist/menubar.js.map +1 -0
  443. package/dist/mobile.js +183 -0
  444. package/dist/mobile.js.map +1 -0
  445. package/dist/motion.js +119 -0
  446. package/dist/motion.js.map +1 -0
  447. package/dist/page-header.js +47 -0
  448. package/dist/page-header.js.map +1 -0
  449. package/dist/page.js +214 -0
  450. package/dist/page.js.map +1 -0
  451. package/dist/pagination.js +121 -0
  452. package/dist/pagination.js.map +1 -0
  453. package/dist/platform.js +194 -0
  454. package/dist/platform.js.map +1 -0
  455. package/dist/popover.js +263 -0
  456. package/dist/popover.js.map +1 -0
  457. package/dist/popup.js +335 -0
  458. package/dist/popup.js.map +1 -0
  459. package/dist/progress.js +108 -0
  460. package/dist/progress.js.map +1 -0
  461. package/dist/radio-group.js +272 -0
  462. package/dist/radio-group.js.map +1 -0
  463. package/dist/safe-area.js +42 -0
  464. package/dist/safe-area.js.map +1 -0
  465. package/dist/search-CpUwRnG-.js +15 -0
  466. package/dist/search-CpUwRnG-.js.map +1 -0
  467. package/dist/select.js +985 -0
  468. package/dist/select.js.map +1 -0
  469. package/dist/separator.js +45 -0
  470. package/dist/separator.js.map +1 -0
  471. package/dist/sheet.js +127 -0
  472. package/dist/sheet.js.map +1 -0
  473. package/dist/skeleton.js +16 -0
  474. package/dist/skeleton.js.map +1 -0
  475. package/dist/slider.js +485 -0
  476. package/dist/slider.js.map +1 -0
  477. package/dist/sonner.js +52 -0
  478. package/dist/sonner.js.map +1 -0
  479. package/dist/styles/fonts.css +253 -0
  480. package/dist/styles.css +2 -0
  481. package/dist/switch.js +155 -0
  482. package/dist/switch.js.map +1 -0
  483. package/dist/tab-bar.js +110 -0
  484. package/dist/tab-bar.js.map +1 -0
  485. package/dist/table.js +115 -0
  486. package/dist/table.js.map +1 -0
  487. package/dist/tabs.js +218 -0
  488. package/dist/tabs.js.map +1 -0
  489. package/dist/textarea.js +19 -0
  490. package/dist/textarea.js.map +1 -0
  491. package/dist/theme-provider.js +154 -0
  492. package/dist/theme-provider.js.map +1 -0
  493. package/dist/themes.js +873 -0
  494. package/dist/themes.js.map +1 -0
  495. package/dist/toast.js +63 -0
  496. package/dist/toast.js.map +1 -0
  497. package/dist/toggle.js +70 -0
  498. package/dist/toggle.js.map +1 -0
  499. package/dist/tooltip.js +375 -0
  500. package/dist/tooltip.js.map +1 -0
  501. package/dist/types/App.d.ts +3 -0
  502. package/dist/types/App.d.ts.map +1 -0
  503. package/dist/types/components/layouts/admin.d.ts +117 -0
  504. package/dist/types/components/layouts/admin.d.ts.map +1 -0
  505. package/dist/types/components/layouts/auth.d.ts +17 -0
  506. package/dist/types/components/layouts/auth.d.ts.map +1 -0
  507. package/dist/types/components/layouts/blank.d.ts +63 -0
  508. package/dist/types/components/layouts/blank.d.ts.map +1 -0
  509. package/dist/types/components/layouts/layout-wrapper.d.ts +130 -0
  510. package/dist/types/components/layouts/layout-wrapper.d.ts.map +1 -0
  511. package/dist/types/components/layouts/mobile.d.ts +91 -0
  512. package/dist/types/components/layouts/mobile.d.ts.map +1 -0
  513. package/dist/types/components/layouts/page.d.ts +181 -0
  514. package/dist/types/components/layouts/page.d.ts.map +1 -0
  515. package/dist/types/components/layouts/popup.d.ts +100 -0
  516. package/dist/types/components/layouts/popup.d.ts.map +1 -0
  517. package/dist/types/components/sections/container.d.ts +79 -0
  518. package/dist/types/components/sections/container.d.ts.map +1 -0
  519. package/dist/types/components/sections/footer.d.ts +128 -0
  520. package/dist/types/components/sections/footer.d.ts.map +1 -0
  521. package/dist/types/components/sections/header.d.ts +72 -0
  522. package/dist/types/components/sections/header.d.ts.map +1 -0
  523. package/dist/types/components/sections/safe-area.d.ts +46 -0
  524. package/dist/types/components/sections/safe-area.d.ts.map +1 -0
  525. package/dist/types/components/sections/tab-bar.d.ts +61 -0
  526. package/dist/types/components/sections/tab-bar.d.ts.map +1 -0
  527. package/dist/types/components/ui/accordion.d.ts +8 -0
  528. package/dist/types/components/ui/accordion.d.ts.map +1 -0
  529. package/dist/types/components/ui/alert.d.ts +10 -0
  530. package/dist/types/components/ui/alert.d.ts.map +1 -0
  531. package/dist/types/components/ui/avatar.d.ts +7 -0
  532. package/dist/types/components/ui/avatar.d.ts.map +1 -0
  533. package/dist/types/components/ui/badge.d.ts +10 -0
  534. package/dist/types/components/ui/badge.d.ts.map +1 -0
  535. package/dist/types/components/ui/breadcrumb.d.ts +12 -0
  536. package/dist/types/components/ui/breadcrumb.d.ts.map +1 -0
  537. package/dist/types/components/ui/button.d.ts +11 -0
  538. package/dist/types/components/ui/button.d.ts.map +1 -0
  539. package/dist/types/components/ui/calendar.d.ts +9 -0
  540. package/dist/types/components/ui/calendar.d.ts.map +1 -0
  541. package/dist/types/components/ui/card.d.ts +10 -0
  542. package/dist/types/components/ui/card.d.ts.map +1 -0
  543. package/dist/types/components/ui/checkbox.d.ts +5 -0
  544. package/dist/types/components/ui/checkbox.d.ts.map +1 -0
  545. package/dist/types/components/ui/collapsible.d.ts +6 -0
  546. package/dist/types/components/ui/collapsible.d.ts.map +1 -0
  547. package/dist/types/components/ui/command.d.ts +19 -0
  548. package/dist/types/components/ui/command.d.ts.map +1 -0
  549. package/dist/types/components/ui/confirm-dialog.d.ts +72 -0
  550. package/dist/types/components/ui/confirm-dialog.d.ts.map +1 -0
  551. package/dist/types/components/ui/data-table.d.ts +211 -0
  552. package/dist/types/components/ui/data-table.d.ts.map +1 -0
  553. package/dist/types/components/ui/detail-page.d.ts +119 -0
  554. package/dist/types/components/ui/detail-page.d.ts.map +1 -0
  555. package/dist/types/components/ui/dialog.d.ts +16 -0
  556. package/dist/types/components/ui/dialog.d.ts.map +1 -0
  557. package/dist/types/components/ui/dropdown-menu.d.ts +26 -0
  558. package/dist/types/components/ui/dropdown-menu.d.ts.map +1 -0
  559. package/dist/types/components/ui/empty-state.d.ts +30 -0
  560. package/dist/types/components/ui/empty-state.d.ts.map +1 -0
  561. package/dist/types/components/ui/form-field.d.ts +57 -0
  562. package/dist/types/components/ui/form-field.d.ts.map +1 -0
  563. package/dist/types/components/ui/form.d.ts +185 -0
  564. package/dist/types/components/ui/form.d.ts.map +1 -0
  565. package/dist/types/components/ui/hover-card.d.ts +7 -0
  566. package/dist/types/components/ui/hover-card.d.ts.map +1 -0
  567. package/dist/types/components/ui/input.d.ts +4 -0
  568. package/dist/types/components/ui/input.d.ts.map +1 -0
  569. package/dist/types/components/ui/label.d.ts +5 -0
  570. package/dist/types/components/ui/label.d.ts.map +1 -0
  571. package/dist/types/components/ui/menubar.d.ts +27 -0
  572. package/dist/types/components/ui/menubar.d.ts.map +1 -0
  573. package/dist/types/components/ui/motion.d.ts +130 -0
  574. package/dist/types/components/ui/motion.d.ts.map +1 -0
  575. package/dist/types/components/ui/page-header.d.ts +45 -0
  576. package/dist/types/components/ui/page-header.d.ts.map +1 -0
  577. package/dist/types/components/ui/pagination.d.ts +14 -0
  578. package/dist/types/components/ui/pagination.d.ts.map +1 -0
  579. package/dist/types/components/ui/popover.d.ts +8 -0
  580. package/dist/types/components/ui/popover.d.ts.map +1 -0
  581. package/dist/types/components/ui/progress.d.ts +5 -0
  582. package/dist/types/components/ui/progress.d.ts.map +1 -0
  583. package/dist/types/components/ui/radio-group.d.ts +6 -0
  584. package/dist/types/components/ui/radio-group.d.ts.map +1 -0
  585. package/dist/types/components/ui/select.d.ts +16 -0
  586. package/dist/types/components/ui/select.d.ts.map +1 -0
  587. package/dist/types/components/ui/separator.d.ts +5 -0
  588. package/dist/types/components/ui/separator.d.ts.map +1 -0
  589. package/dist/types/components/ui/sheet.d.ts +14 -0
  590. package/dist/types/components/ui/sheet.d.ts.map +1 -0
  591. package/dist/types/components/ui/skeleton.d.ts +3 -0
  592. package/dist/types/components/ui/skeleton.d.ts.map +1 -0
  593. package/dist/types/components/ui/slider.d.ts +5 -0
  594. package/dist/types/components/ui/slider.d.ts.map +1 -0
  595. package/dist/types/components/ui/sonner.d.ts +4 -0
  596. package/dist/types/components/ui/sonner.d.ts.map +1 -0
  597. package/dist/types/components/ui/switch.d.ts +5 -0
  598. package/dist/types/components/ui/switch.d.ts.map +1 -0
  599. package/dist/types/components/ui/table.d.ts +11 -0
  600. package/dist/types/components/ui/table.d.ts.map +1 -0
  601. package/dist/types/components/ui/tabs.d.ts +8 -0
  602. package/dist/types/components/ui/tabs.d.ts.map +1 -0
  603. package/dist/types/components/ui/textarea.d.ts +4 -0
  604. package/dist/types/components/ui/textarea.d.ts.map +1 -0
  605. package/dist/types/components/ui/toast.d.ts +70 -0
  606. package/dist/types/components/ui/toast.d.ts.map +1 -0
  607. package/dist/types/components/ui/toggle.d.ts +10 -0
  608. package/dist/types/components/ui/toggle.d.ts.map +1 -0
  609. package/dist/types/components/ui/tooltip.d.ts +8 -0
  610. package/dist/types/components/ui/tooltip.d.ts.map +1 -0
  611. package/dist/types/hooks/index.d.ts +14 -0
  612. package/dist/types/hooks/index.d.ts.map +1 -0
  613. package/dist/types/hooks/useApi.d.ts +38 -0
  614. package/dist/types/hooks/useApi.d.ts.map +1 -0
  615. package/dist/types/hooks/useBreakpoint.d.ts +35 -0
  616. package/dist/types/hooks/useBreakpoint.d.ts.map +1 -0
  617. package/dist/types/hooks/useDataTable.d.ts +59 -0
  618. package/dist/types/hooks/useDataTable.d.ts.map +1 -0
  619. package/dist/types/hooks/useMediaQuery.d.ts +12 -0
  620. package/dist/types/hooks/useMediaQuery.d.ts.map +1 -0
  621. package/dist/types/hooks/useStorage.d.ts +35 -0
  622. package/dist/types/hooks/useStorage.d.ts.map +1 -0
  623. package/dist/types/index.d.ts +75 -0
  624. package/dist/types/index.d.ts.map +1 -0
  625. package/dist/types/lib/errors.d.ts +37 -0
  626. package/dist/types/lib/errors.d.ts.map +1 -0
  627. package/dist/types/lib/format.d.ts +80 -0
  628. package/dist/types/lib/format.d.ts.map +1 -0
  629. package/dist/types/lib/fouc.d.ts +64 -0
  630. package/dist/types/lib/fouc.d.ts.map +1 -0
  631. package/dist/types/lib/platform.d.ts +156 -0
  632. package/dist/types/lib/platform.d.ts.map +1 -0
  633. package/dist/types/lib/utils.d.ts +14 -0
  634. package/dist/types/lib/utils.d.ts.map +1 -0
  635. package/dist/types/main.d.ts +2 -0
  636. package/dist/types/main.d.ts.map +1 -0
  637. package/dist/types/themes/index.d.ts +499 -0
  638. package/dist/types/themes/index.d.ts.map +1 -0
  639. package/dist/types/themes/presets/base.d.ts +108 -0
  640. package/dist/types/themes/presets/base.d.ts.map +1 -0
  641. package/dist/types/themes/presets/elegant.d.ts +108 -0
  642. package/dist/types/themes/presets/elegant.d.ts.map +1 -0
  643. package/dist/types/themes/presets/metro.d.ts +114 -0
  644. package/dist/types/themes/presets/metro.d.ts.map +1 -0
  645. package/dist/types/themes/presets/studio.d.ts +115 -0
  646. package/dist/types/themes/presets/studio.d.ts.map +1 -0
  647. package/dist/types/themes/presets/vivid.d.ts +115 -0
  648. package/dist/types/themes/presets/vivid.d.ts.map +1 -0
  649. package/dist/types/themes/theme-provider.d.ts +122 -0
  650. package/dist/types/themes/theme-provider.d.ts.map +1 -0
  651. package/dist/types/types/index.d.ts +813 -0
  652. package/dist/types/types/index.d.ts.map +1 -0
  653. package/dist/uikit.css +1 -0
  654. package/dist/useDataTable-CPiBpEg-.js +254 -0
  655. package/dist/useDataTable-CPiBpEg-.js.map +1 -0
  656. package/dist/utils-CwJPJKOE.js +2278 -0
  657. package/dist/utils-CwJPJKOE.js.map +1 -0
  658. package/dist/utils.js +5 -0
  659. package/dist/utils.js.map +1 -0
  660. package/dist/wrapper.js +13 -0
  661. package/dist/wrapper.js.map +1 -0
  662. package/dist/x-BxwubQiM.js +15 -0
  663. package/dist/x-BxwubQiM.js.map +1 -0
  664. package/examples/README.md +18 -0
  665. package/examples/button.tsx +16 -0
  666. package/examples/confirm-dialog.tsx +44 -0
  667. package/examples/data-table.tsx +35 -0
  668. package/examples/dialog.tsx +34 -0
  669. package/examples/empty-state.tsx +13 -0
  670. package/examples/form-field.tsx +22 -0
  671. package/examples/format.tsx +19 -0
  672. package/examples/page-header.tsx +17 -0
  673. package/examples/skeleton.tsx +12 -0
  674. package/examples/theme-provider.tsx +33 -0
  675. package/examples/toast.tsx +32 -0
  676. package/examples/use-breakpoint.tsx +17 -0
  677. package/llms.txt +1140 -0
  678. package/package.json +430 -0
package/dist/switch.js ADDED
@@ -0,0 +1,155 @@
1
+ import { jsxs as I, jsx as i } from "react/jsx-runtime";
2
+ import * as a from "react";
3
+ import { u as M, c as H } from "./index-C0UREtMP.js";
4
+ import { u as x } from "./index-DQH6odE9.js";
5
+ import { c as j } from "./index-DFZozV_h.js";
6
+ import { u as z } from "./index-BZPx6jYI.js";
7
+ import { u as A } from "./index-BGQepRFJ.js";
8
+ import { P as y } from "./index-BVRIAMfe.js";
9
+ import { c as C } from "./utils-CwJPJKOE.js";
10
+ var m = "Switch", [U, Y] = j(m), [q, L] = U(m), P = a.forwardRef(
11
+ (e, r) => {
12
+ const {
13
+ __scopeSwitch: t,
14
+ name: s,
15
+ checked: o,
16
+ defaultChecked: b,
17
+ required: d,
18
+ disabled: n,
19
+ value: u = "on",
20
+ onCheckedChange: w,
21
+ form: c,
22
+ ...k
23
+ } = e, [l, p] = a.useState(null), v = x(r, (f) => p(f)), S = a.useRef(!1), g = l ? c || !!l.closest("form") : !0, [h, B] = M({
24
+ prop: o,
25
+ defaultProp: b ?? !1,
26
+ onChange: w,
27
+ caller: m
28
+ });
29
+ return /* @__PURE__ */ I(q, { scope: t, checked: h, disabled: n, children: [
30
+ /* @__PURE__ */ i(
31
+ y.button,
32
+ {
33
+ type: "button",
34
+ role: "switch",
35
+ "aria-checked": h,
36
+ "aria-required": d,
37
+ "data-state": N(h),
38
+ "data-disabled": n ? "" : void 0,
39
+ disabled: n,
40
+ value: u,
41
+ ...k,
42
+ ref: v,
43
+ onClick: H(e.onClick, (f) => {
44
+ B((T) => !T), g && (S.current = f.isPropagationStopped(), S.current || f.stopPropagation());
45
+ })
46
+ }
47
+ ),
48
+ g && /* @__PURE__ */ i(
49
+ _,
50
+ {
51
+ control: l,
52
+ bubbles: !S.current,
53
+ name: s,
54
+ value: u,
55
+ checked: h,
56
+ required: d,
57
+ disabled: n,
58
+ form: c,
59
+ style: { transform: "translateX(-100%)" }
60
+ }
61
+ )
62
+ ] });
63
+ }
64
+ );
65
+ P.displayName = m;
66
+ var R = "SwitchThumb", E = a.forwardRef(
67
+ (e, r) => {
68
+ const { __scopeSwitch: t, ...s } = e, o = L(R, t);
69
+ return /* @__PURE__ */ i(
70
+ y.span,
71
+ {
72
+ "data-state": N(o.checked),
73
+ "data-disabled": o.disabled ? "" : void 0,
74
+ ...s,
75
+ ref: r
76
+ }
77
+ );
78
+ }
79
+ );
80
+ E.displayName = R;
81
+ var O = "SwitchBubbleInput", _ = a.forwardRef(
82
+ ({
83
+ __scopeSwitch: e,
84
+ control: r,
85
+ checked: t,
86
+ bubbles: s = !0,
87
+ ...o
88
+ }, b) => {
89
+ const d = a.useRef(null), n = x(d, b), u = z(t), w = A(r);
90
+ return a.useEffect(() => {
91
+ const c = d.current;
92
+ if (!c) return;
93
+ const k = window.HTMLInputElement.prototype, p = Object.getOwnPropertyDescriptor(
94
+ k,
95
+ "checked"
96
+ ).set;
97
+ if (u !== t && p) {
98
+ const v = new Event("click", { bubbles: s });
99
+ p.call(c, t), c.dispatchEvent(v);
100
+ }
101
+ }, [u, t, s]), /* @__PURE__ */ i(
102
+ "input",
103
+ {
104
+ type: "checkbox",
105
+ "aria-hidden": !0,
106
+ defaultChecked: t,
107
+ ...o,
108
+ tabIndex: -1,
109
+ ref: n,
110
+ style: {
111
+ ...o.style,
112
+ ...w,
113
+ position: "absolute",
114
+ pointerEvents: "none",
115
+ opacity: 0,
116
+ margin: 0
117
+ }
118
+ }
119
+ );
120
+ }
121
+ );
122
+ _.displayName = O;
123
+ function N(e) {
124
+ return e ? "checked" : "unchecked";
125
+ }
126
+ var D = P, F = E;
127
+ function Z({
128
+ className: e,
129
+ ...r
130
+ }) {
131
+ return /* @__PURE__ */ i(
132
+ D,
133
+ {
134
+ "data-slot": "switch",
135
+ className: C(
136
+ "peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
137
+ e
138
+ ),
139
+ ...r,
140
+ children: /* @__PURE__ */ i(
141
+ F,
142
+ {
143
+ "data-slot": "switch-thumb",
144
+ className: C(
145
+ "bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0"
146
+ )
147
+ }
148
+ )
149
+ }
150
+ );
151
+ }
152
+ export {
153
+ Z as Switch
154
+ };
155
+ //# sourceMappingURL=switch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch.js","sources":["../node_modules/@radix-ui/react-switch/dist/index.mjs","../src/components/ui/switch.tsx"],"sourcesContent":["\"use client\";\n\n// src/switch.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar SWITCH_NAME = \"Switch\";\nvar [createSwitchContext, createSwitchScope] = createContextScope(SWITCH_NAME);\nvar [SwitchProvider, useSwitchContext] = createSwitchContext(SWITCH_NAME);\nvar Switch = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSwitch,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...switchProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: SWITCH_NAME\n });\n return /* @__PURE__ */ jsxs(SwitchProvider, { scope: __scopeSwitch, checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...switchProps,\n ref: composedRefs,\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n SwitchBubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" }\n }\n )\n ] });\n }\n);\nSwitch.displayName = SWITCH_NAME;\nvar THUMB_NAME = \"SwitchThumb\";\nvar SwitchThumb = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSwitch, ...thumbProps } = props;\n const context = useSwitchContext(THUMB_NAME, __scopeSwitch);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...thumbProps,\n ref: forwardedRef\n }\n );\n }\n);\nSwitchThumb.displayName = THUMB_NAME;\nvar BUBBLE_INPUT_NAME = \"SwitchBubbleInput\";\nvar SwitchBubbleInput = React.forwardRef(\n ({\n __scopeSwitch,\n control,\n checked,\n bubbles = true,\n ...props\n }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: checked,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n }\n);\nSwitchBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Switch;\nvar Thumb = SwitchThumb;\nexport {\n Root,\n Switch,\n SwitchThumb,\n Thumb,\n createSwitchScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Switch({\n className,\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n \"peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n \"bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0\"\n )}\n />\n </SwitchPrimitive.Root>\n )\n}\n\nexport { Switch }\n"],"names":["SWITCH_NAME","createSwitchContext","createSwitchScope","createContextScope","SwitchProvider","useSwitchContext","Switch","React","props","forwardedRef","__scopeSwitch","name","checkedProp","defaultChecked","required","disabled","value","onCheckedChange","form","switchProps","button","setButton","composedRefs","useComposedRefs","node","hasConsumerStoppedPropagationRef","isFormControl","checked","setChecked","useControllableState","jsxs","jsx","Primitive","getState","composeEventHandlers","event","prevChecked","SwitchBubbleInput","THUMB_NAME","SwitchThumb","thumbProps","context","BUBBLE_INPUT_NAME","control","bubbles","ref","usePrevious","controlSize","useSize","input","inputProto","Root","Thumb","className","SwitchPrimitive.Root","cn","SwitchPrimitive.Thumb"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,110 @@
1
+ import { jsxs as s, jsx as r } from "react/jsx-runtime";
2
+ import * as y from "react";
3
+ import { forwardRef as w, useState as k } from "react";
4
+ import { c as d } from "./index-Bke1qZdk.js";
5
+ import { c as n } from "./utils-CwJPJKOE.js";
6
+ import { Badge as N } from "./badge.js";
7
+ const B = d(
8
+ "fixed bottom-0 left-0 right-0 z-50 border-t bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60",
9
+ {
10
+ variants: {
11
+ tone: {
12
+ clean: "border-border",
13
+ subtle: "border-muted bg-muted/10",
14
+ brand: "border-primary/20 bg-primary/5",
15
+ contrast: "border-zinc-700 bg-zinc-900 text-zinc-100"
16
+ },
17
+ variant: {
18
+ default: "",
19
+ floating: "bottom-4 left-4 right-4 rounded-2xl border-2 shadow-lg",
20
+ minimal: "border-0 bg-transparent backdrop-blur-none"
21
+ }
22
+ },
23
+ defaultVariants: {
24
+ tone: "clean",
25
+ variant: "default"
26
+ }
27
+ }
28
+ ), j = d(
29
+ "flex flex-col items-center justify-center gap-1 rounded-lg transition-all duration-200",
30
+ {
31
+ variants: {
32
+ size: {
33
+ sm: "px-2 py-1.5 text-[10px] min-w-[50px]",
34
+ md: "px-2.5 py-2 text-xs min-w-[60px]",
35
+ lg: "px-3 py-2 text-xs min-w-[70px]",
36
+ xl: "px-4 py-2.5 text-sm min-w-[80px]",
37
+ full: "px-4 py-3 text-sm min-w-[90px]"
38
+ }
39
+ },
40
+ defaultVariants: {
41
+ size: "md"
42
+ }
43
+ }
44
+ ), T = w(({
45
+ tabs: l,
46
+ activeTab: o,
47
+ defaultActiveTab: m,
48
+ onTabClick: c,
49
+ tone: p = "clean",
50
+ size: e = "md",
51
+ variant: i = "default",
52
+ showLabels: u = !0,
53
+ className: x
54
+ }, f) => {
55
+ const [b, g] = k(m || l[0]?.key), h = o !== void 0 ? o : b, v = (t) => {
56
+ o === void 0 && g(t), c?.(t);
57
+ };
58
+ return /* @__PURE__ */ s("div", { ref: f, className: n(B({ tone: p, variant: i }), x), children: [
59
+ /* @__PURE__ */ r("div", { className: n(
60
+ "flex items-center",
61
+ i === "floating" ? "justify-around px-2 h-14" : "justify-around h-16 px-2"
62
+ ), children: l.map((t) => {
63
+ const a = h === t.key;
64
+ return /* @__PURE__ */ s(
65
+ "button",
66
+ {
67
+ onClick: () => v(t.key),
68
+ className: n(
69
+ j({ size: e }),
70
+ "relative font-medium",
71
+ a ? "text-primary" : "text-muted-foreground hover:text-foreground active:scale-95"
72
+ ),
73
+ "aria-label": t.label,
74
+ "aria-current": a ? "page" : void 0,
75
+ children: [
76
+ t.icon && /* @__PURE__ */ s("span", { className: n(
77
+ "relative transition-transform",
78
+ a && "scale-110",
79
+ e === "sm" ? "h-4 w-4" : e === "md" ? "h-5 w-5" : "h-6 w-6"
80
+ ), children: [
81
+ y.createElement(t.icon, {
82
+ className: e === "sm" ? "h-4 w-4" : e === "md" ? "h-5 w-5" : "h-6 w-6"
83
+ }),
84
+ t.badge && /* @__PURE__ */ r(
85
+ N,
86
+ {
87
+ variant: "destructive",
88
+ className: "absolute -right-2 -top-2 h-4 min-w-[16px] px-1 text-[10px] font-bold",
89
+ children: t.badge
90
+ }
91
+ )
92
+ ] }),
93
+ u && /* @__PURE__ */ r("span", { className: n(
94
+ "truncate max-w-full transition-all",
95
+ a && "font-semibold"
96
+ ), children: t.label }),
97
+ a && /* @__PURE__ */ r("span", { className: "absolute -top-px left-1/2 h-0.5 w-8 -translate-x-1/2 rounded-full bg-primary" })
98
+ ]
99
+ },
100
+ t.key
101
+ );
102
+ }) }),
103
+ i !== "floating" && /* @__PURE__ */ r("div", { className: "h-safe-bottom", style: { paddingBottom: "env(safe-area-inset-bottom)" } })
104
+ ] });
105
+ });
106
+ T.displayName = "TabBar";
107
+ export {
108
+ T as TabBar
109
+ };
110
+ //# sourceMappingURL=tab-bar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab-bar.js","sources":["../src/components/sections/tab-bar.tsx"],"sourcesContent":["/**\n * TabBar Section - Mobile bottom navigation tabs\n * @module @bloomneo/uikit\n * @file src/components/sections/tab-bar.tsx\n */\n\nimport * as React from 'react';\nimport { forwardRef, useState } from 'react';\nimport { cva } from 'class-variance-authority';\nimport { cn } from '@/lib/utils';\nimport { Badge } from '@/components/ui/badge';\nimport type { NavigationItem, Size, Tone } from '@/types';\n\n/**\n * TabBar variant styles\n */\nexport type TabBarVariant = 'default' | 'floating' | 'minimal';\n\n/**\n * TabBar container variants\n */\nconst tabBarVariants = cva(\n 'fixed bottom-0 left-0 right-0 z-50 border-t bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60',\n {\n variants: {\n tone: {\n clean: 'border-border',\n subtle: 'border-muted bg-muted/10',\n brand: 'border-primary/20 bg-primary/5',\n contrast: 'border-zinc-700 bg-zinc-900 text-zinc-100'\n },\n variant: {\n default: '',\n floating: 'bottom-4 left-4 right-4 rounded-2xl border-2 shadow-lg',\n minimal: 'border-0 bg-transparent backdrop-blur-none'\n }\n },\n defaultVariants: {\n tone: 'clean',\n variant: 'default'\n }\n }\n);\n\n/**\n * Tab button variants based on size\n */\nconst tabButtonVariants = cva(\n 'flex flex-col items-center justify-center gap-1 rounded-lg transition-all duration-200',\n {\n variants: {\n size: {\n sm: 'px-2 py-1.5 text-[10px] min-w-[50px]',\n md: 'px-2.5 py-2 text-xs min-w-[60px]',\n lg: 'px-3 py-2 text-xs min-w-[70px]',\n xl: 'px-4 py-2.5 text-sm min-w-[80px]',\n full: 'px-4 py-3 text-sm min-w-[90px]'\n }\n },\n defaultVariants: {\n size: 'md'\n }\n }\n);\n\n/**\n * TabBar Component Props\n */\nexport interface TabBarProps {\n /** REQUIRED: Navigation tabs */\n tabs: NavigationItem[];\n /** OPTIONAL: Currently active tab ID */\n activeTab?: string;\n /** OPTIONAL: Default active tab ID */\n defaultActiveTab?: string;\n /** OPTIONAL: Tab click handler */\n onTabClick?: (tabId: string) => void;\n /** OPTIONAL: Visual styling tone (default: \"clean\") */\n tone?: Tone;\n /** OPTIONAL: Tab size (default: \"md\") */\n size?: Size;\n /** OPTIONAL: Tab bar variant (default: \"default\") */\n variant?: TabBarVariant;\n /** OPTIONAL: Show labels (default: true) */\n showLabels?: boolean;\n /** OPTIONAL: Additional CSS classes */\n className?: string;\n}\n\n/**\n * TabBar - Mobile bottom navigation tabs\n * Supports icons, badges, and multiple visual variants\n *\n * @llm-usage\n * <TabBar\n * tabs={[\n * { id: 'home', label: 'Home', icon: <HomeIcon />, badge: 3 },\n * { id: 'profile', label: 'Profile', icon: <UserIcon /> }\n * ]}\n * activeTab=\"home\"\n * onTabClick={(id) => navigate(`/${id}`)}\n * tone=\"clean\"\n * size=\"md\"\n * />\n *\n * @example Default tab bar\n * <TabBar tabs={tabs} activeTab=\"home\" onTabClick={handleTabClick} />\n *\n * @example Floating variant\n * <TabBar tabs={tabs} variant=\"floating\" tone=\"brand\" />\n *\n * @example Minimal (icons only)\n * <TabBar tabs={tabs} variant=\"minimal\" showLabels={false} />\n */\nexport const TabBar = forwardRef<HTMLDivElement, TabBarProps>(({\n tabs,\n activeTab: controlledActiveTab,\n defaultActiveTab,\n onTabClick,\n tone = 'clean',\n size = 'md',\n variant = 'default',\n showLabels = true,\n className,\n}, ref) => {\n // Controlled or uncontrolled state\n const [internalActiveTab, setInternalActiveTab] = useState(defaultActiveTab || tabs[0]?.key);\n const activeTab = controlledActiveTab !== undefined ? controlledActiveTab : internalActiveTab;\n\n const handleTabClick = (tabId: string) => {\n if (controlledActiveTab === undefined) {\n setInternalActiveTab(tabId);\n }\n onTabClick?.(tabId);\n };\n\n return (\n <div ref={ref} className={cn(tabBarVariants({ tone, variant }), className)}>\n <div className={cn(\n 'flex items-center',\n variant === 'floating' ? 'justify-around px-2 h-14' : 'justify-around h-16 px-2'\n )}>\n {tabs.map((tab) => {\n const isActive = activeTab === tab.key;\n\n return (\n <button\n key={tab.key}\n onClick={() => handleTabClick(tab.key)}\n className={cn(\n tabButtonVariants({ size }),\n 'relative font-medium',\n isActive\n ? 'text-primary'\n : 'text-muted-foreground hover:text-foreground active:scale-95'\n )}\n aria-label={tab.label}\n aria-current={isActive ? 'page' : undefined}\n >\n {/* Icon */}\n {tab.icon && (\n <span className={cn(\n 'relative transition-transform',\n isActive && 'scale-110',\n size === 'sm' ? 'h-4 w-4' : size === 'md' ? 'h-5 w-5' : 'h-6 w-6'\n )}>\n {React.createElement(tab.icon, {\n className: size === 'sm' ? 'h-4 w-4' : size === 'md' ? 'h-5 w-5' : 'h-6 w-6'\n })}\n\n {/* Badge */}\n {tab.badge && (\n <Badge\n variant=\"destructive\"\n className=\"absolute -right-2 -top-2 h-4 min-w-[16px] px-1 text-[10px] font-bold\"\n >\n {tab.badge}\n </Badge>\n )}\n </span>\n )}\n\n {/* Label */}\n {showLabels && (\n <span className={cn(\n 'truncate max-w-full transition-all',\n isActive && 'font-semibold'\n )}>\n {tab.label}\n </span>\n )}\n\n {/* Active indicator */}\n {isActive && (\n <span className=\"absolute -top-px left-1/2 h-0.5 w-8 -translate-x-1/2 rounded-full bg-primary\" />\n )}\n </button>\n );\n })}\n </div>\n\n {/* Safe area for iOS home indicator */}\n {variant !== 'floating' && (\n <div className=\"h-safe-bottom\" style={{ paddingBottom: 'env(safe-area-inset-bottom)' }} />\n )}\n </div>\n );\n});\n\nTabBar.displayName = 'TabBar';\n"],"names":["tabBarVariants","cva","tabButtonVariants","TabBar","forwardRef","tabs","controlledActiveTab","defaultActiveTab","onTabClick","tone","size","variant","showLabels","className","ref","internalActiveTab","setInternalActiveTab","useState","activeTab","handleTabClick","tabId","jsxs","cn","jsx","tab","isActive","React","Badge"],"mappings":"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"}
package/dist/table.js ADDED
@@ -0,0 +1,115 @@
1
+ import { jsx as a } from "react/jsx-runtime";
2
+ import { c as o } from "./utils-CwJPJKOE.js";
3
+ function n({ className: t, ...e }) {
4
+ return /* @__PURE__ */ a(
5
+ "div",
6
+ {
7
+ "data-slot": "table-container",
8
+ className: "relative w-full overflow-x-auto",
9
+ children: /* @__PURE__ */ a(
10
+ "table",
11
+ {
12
+ "data-slot": "table",
13
+ className: o("w-full caption-bottom text-sm", t),
14
+ ...e
15
+ }
16
+ )
17
+ }
18
+ );
19
+ }
20
+ function s({ className: t, ...e }) {
21
+ return /* @__PURE__ */ a(
22
+ "thead",
23
+ {
24
+ "data-slot": "table-header",
25
+ className: o("[&_tr]:border-b", t),
26
+ ...e
27
+ }
28
+ );
29
+ }
30
+ function d({ className: t, ...e }) {
31
+ return /* @__PURE__ */ a(
32
+ "tbody",
33
+ {
34
+ "data-slot": "table-body",
35
+ className: o("[&_tr:last-child]:border-0", t),
36
+ ...e
37
+ }
38
+ );
39
+ }
40
+ function c({ className: t, ...e }) {
41
+ return /* @__PURE__ */ a(
42
+ "tfoot",
43
+ {
44
+ "data-slot": "table-footer",
45
+ className: o(
46
+ "bg-muted/50 border-t font-medium [&>tr]:last:border-b-0",
47
+ t
48
+ ),
49
+ ...e
50
+ }
51
+ );
52
+ }
53
+ function b({ className: t, ...e }) {
54
+ return /* @__PURE__ */ a(
55
+ "tr",
56
+ {
57
+ "data-slot": "table-row",
58
+ className: o(
59
+ "hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",
60
+ t
61
+ ),
62
+ ...e
63
+ }
64
+ );
65
+ }
66
+ function i({ className: t, ...e }) {
67
+ return /* @__PURE__ */ a(
68
+ "th",
69
+ {
70
+ "data-slot": "table-head",
71
+ className: o(
72
+ "text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
73
+ t
74
+ ),
75
+ ...e
76
+ }
77
+ );
78
+ }
79
+ function m({ className: t, ...e }) {
80
+ return /* @__PURE__ */ a(
81
+ "td",
82
+ {
83
+ "data-slot": "table-cell",
84
+ className: o(
85
+ "p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
86
+ t
87
+ ),
88
+ ...e
89
+ }
90
+ );
91
+ }
92
+ function u({
93
+ className: t,
94
+ ...e
95
+ }) {
96
+ return /* @__PURE__ */ a(
97
+ "caption",
98
+ {
99
+ "data-slot": "table-caption",
100
+ className: o("text-muted-foreground mt-4 text-sm", t),
101
+ ...e
102
+ }
103
+ );
104
+ }
105
+ export {
106
+ n as Table,
107
+ d as TableBody,
108
+ u as TableCaption,
109
+ m as TableCell,
110
+ c as TableFooter,
111
+ i as TableHead,
112
+ s as TableHeader,
113
+ b as TableRow
114
+ };
115
+ //# sourceMappingURL=table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.js","sources":["../src/components/ui/table.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n <div\n data-slot=\"table-container\"\n className=\"relative w-full overflow-x-auto\"\n >\n <table\n data-slot=\"table\"\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n )\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn(\"[&_tr]:border-b\", className)}\n {...props}\n />\n )\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n )\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\n \"bg-muted/50 border-t font-medium [&>tr]:last:border-b-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n \"hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n \"text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\n \"p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TableCaption({\n className,\n ...props\n}: React.ComponentProps<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"text-muted-foreground mt-4 text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n}\n"],"names":["Table","className","props","jsx","cn","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption"],"mappings":";;AAIA,SAASA,EAAM,EAAE,WAAAC,GAAW,GAAGC,KAAwC;AACrE,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAU;AAAA,MAEV,UAAA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,aAAU;AAAA,UACV,WAAWC,EAAG,iCAAiCH,CAAS;AAAA,UACvD,GAAGC;AAAA,QAAA;AAAA,MAAA;AAAA,IACN;AAAA,EAAA;AAGN;AAEA,SAASG,EAAY,EAAE,WAAAJ,GAAW,GAAGC,KAAwC;AAC3E,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWC,EAAG,mBAAmBH,CAAS;AAAA,MACzC,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASI,EAAU,EAAE,WAAAL,GAAW,GAAGC,KAAwC;AACzE,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWC,EAAG,8BAA8BH,CAAS;AAAA,MACpD,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASK,EAAY,EAAE,WAAAN,GAAW,GAAGC,KAAwC;AAC3E,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAH;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASM,EAAS,EAAE,WAAAP,GAAW,GAAGC,KAAqC;AACrE,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAH;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASO,EAAU,EAAE,WAAAR,GAAW,GAAGC,KAAqC;AACtE,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAH;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASQ,EAAU,EAAE,WAAAT,GAAW,GAAGC,KAAqC;AACtE,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAH;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASS,EAAa;AAAA,EACpB,WAAAV;AAAA,EACA,GAAGC;AACL,GAAoC;AAClC,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWC,EAAG,sCAAsCH,CAAS;AAAA,MAC5D,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;"}
package/dist/tabs.js ADDED
@@ -0,0 +1,218 @@
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import * as f from "react";
3
+ import { u as M, c as T } from "./index-C0UREtMP.js";
4
+ import { c as k } from "./index-DFZozV_h.js";
5
+ import { c as h, R as E, I as F } from "./index-DFi6WydO.js";
6
+ import { P as $ } from "./index-BCjJQGh8.js";
7
+ import { P as m } from "./index-BVRIAMfe.js";
8
+ import { u as D } from "./index-1QHKgw6D.js";
9
+ import { u as V } from "./index-xqkGMOJ8.js";
10
+ import { c as p } from "./utils-CwJPJKOE.js";
11
+ var g = "Tabs", [G, Z] = k(g, [
12
+ h
13
+ ]), C = h(), [L, x] = G(g), I = f.forwardRef(
14
+ (e, t) => {
15
+ const {
16
+ __scopeTabs: c,
17
+ value: a,
18
+ onValueChange: i,
19
+ defaultValue: d,
20
+ orientation: o = "horizontal",
21
+ dir: u,
22
+ activationMode: b = "automatic",
23
+ ...v
24
+ } = e, s = D(u), [n, l] = M({
25
+ prop: a,
26
+ onChange: i,
27
+ defaultProp: d ?? "",
28
+ caller: g
29
+ });
30
+ return /* @__PURE__ */ r(
31
+ L,
32
+ {
33
+ scope: c,
34
+ baseId: V(),
35
+ value: n,
36
+ onValueChange: l,
37
+ orientation: o,
38
+ dir: s,
39
+ activationMode: b,
40
+ children: /* @__PURE__ */ r(
41
+ m.div,
42
+ {
43
+ dir: s,
44
+ "data-orientation": o,
45
+ ...v,
46
+ ref: t
47
+ }
48
+ )
49
+ }
50
+ );
51
+ }
52
+ );
53
+ I.displayName = g;
54
+ var y = "TabsList", _ = f.forwardRef(
55
+ (e, t) => {
56
+ const { __scopeTabs: c, loop: a = !0, ...i } = e, d = x(y, c), o = C(c);
57
+ return /* @__PURE__ */ r(
58
+ E,
59
+ {
60
+ asChild: !0,
61
+ ...o,
62
+ orientation: d.orientation,
63
+ dir: d.dir,
64
+ loop: a,
65
+ children: /* @__PURE__ */ r(
66
+ m.div,
67
+ {
68
+ role: "tablist",
69
+ "aria-orientation": d.orientation,
70
+ ...i,
71
+ ref: t
72
+ }
73
+ )
74
+ }
75
+ );
76
+ }
77
+ );
78
+ _.displayName = y;
79
+ var N = "TabsTrigger", R = f.forwardRef(
80
+ (e, t) => {
81
+ const { __scopeTabs: c, value: a, disabled: i = !1, ...d } = e, o = x(N, c), u = C(c), b = P(o.baseId, a), v = S(o.baseId, a), s = a === o.value;
82
+ return /* @__PURE__ */ r(
83
+ F,
84
+ {
85
+ asChild: !0,
86
+ ...u,
87
+ focusable: !i,
88
+ active: s,
89
+ children: /* @__PURE__ */ r(
90
+ m.button,
91
+ {
92
+ type: "button",
93
+ role: "tab",
94
+ "aria-selected": s,
95
+ "aria-controls": v,
96
+ "data-state": s ? "active" : "inactive",
97
+ "data-disabled": i ? "" : void 0,
98
+ disabled: i,
99
+ id: b,
100
+ ...d,
101
+ ref: t,
102
+ onMouseDown: T(e.onMouseDown, (n) => {
103
+ !i && n.button === 0 && n.ctrlKey === !1 ? o.onValueChange(a) : n.preventDefault();
104
+ }),
105
+ onKeyDown: T(e.onKeyDown, (n) => {
106
+ [" ", "Enter"].includes(n.key) && o.onValueChange(a);
107
+ }),
108
+ onFocus: T(e.onFocus, () => {
109
+ const n = o.activationMode !== "manual";
110
+ !s && !i && n && o.onValueChange(a);
111
+ })
112
+ }
113
+ )
114
+ }
115
+ );
116
+ }
117
+ );
118
+ R.displayName = N;
119
+ var w = "TabsContent", A = f.forwardRef(
120
+ (e, t) => {
121
+ const { __scopeTabs: c, value: a, forceMount: i, children: d, ...o } = e, u = x(w, c), b = P(u.baseId, a), v = S(u.baseId, a), s = a === u.value, n = f.useRef(s);
122
+ return f.useEffect(() => {
123
+ const l = requestAnimationFrame(() => n.current = !1);
124
+ return () => cancelAnimationFrame(l);
125
+ }, []), /* @__PURE__ */ r($, { present: i || s, children: ({ present: l }) => /* @__PURE__ */ r(
126
+ m.div,
127
+ {
128
+ "data-state": s ? "active" : "inactive",
129
+ "data-orientation": u.orientation,
130
+ role: "tabpanel",
131
+ "aria-labelledby": b,
132
+ hidden: !l,
133
+ id: v,
134
+ tabIndex: 0,
135
+ ...o,
136
+ ref: t,
137
+ style: {
138
+ ...e.style,
139
+ animationDuration: n.current ? "0s" : void 0
140
+ },
141
+ children: l && d
142
+ }
143
+ ) });
144
+ }
145
+ );
146
+ A.displayName = w;
147
+ function P(e, t) {
148
+ return `${e}-trigger-${t}`;
149
+ }
150
+ function S(e, t) {
151
+ return `${e}-content-${t}`;
152
+ }
153
+ var j = I, z = _, K = R, B = A;
154
+ function ee({
155
+ className: e,
156
+ ...t
157
+ }) {
158
+ return /* @__PURE__ */ r(
159
+ j,
160
+ {
161
+ "data-slot": "tabs",
162
+ className: p("flex flex-col gap-2", e),
163
+ ...t
164
+ }
165
+ );
166
+ }
167
+ function te({
168
+ className: e,
169
+ ...t
170
+ }) {
171
+ return /* @__PURE__ */ r(
172
+ z,
173
+ {
174
+ "data-slot": "tabs-list",
175
+ className: p(
176
+ "bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",
177
+ e
178
+ ),
179
+ ...t
180
+ }
181
+ );
182
+ }
183
+ function ae({
184
+ className: e,
185
+ ...t
186
+ }) {
187
+ return /* @__PURE__ */ r(
188
+ K,
189
+ {
190
+ "data-slot": "tabs-trigger",
191
+ className: p(
192
+ "data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
193
+ e
194
+ ),
195
+ ...t
196
+ }
197
+ );
198
+ }
199
+ function oe({
200
+ className: e,
201
+ ...t
202
+ }) {
203
+ return /* @__PURE__ */ r(
204
+ B,
205
+ {
206
+ "data-slot": "tabs-content",
207
+ className: p("flex-1 outline-none", e),
208
+ ...t
209
+ }
210
+ );
211
+ }
212
+ export {
213
+ ee as Tabs,
214
+ oe as TabsContent,
215
+ te as TabsList,
216
+ ae as TabsTrigger
217
+ };
218
+ //# sourceMappingURL=tabs.js.map