@hua-labs/ui 2.0.2 → 2.1.1

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 (214) hide show
  1. package/README.md +34 -161
  2. package/dist/{ComponentLayout-btJq4TjA.d.mts → ComponentLayout-DrZpz0yv.d.mts} +1 -1
  3. package/dist/Section-BWzyshgX.d.mts +67 -0
  4. package/dist/advanced/dashboard.d.ts.map +1 -1
  5. package/dist/advanced-dashboard.d.mts +1 -1
  6. package/dist/advanced-dashboard.js +4 -4
  7. package/dist/advanced-dashboard.js.map +1 -1
  8. package/dist/advanced-dashboard.mjs +3 -3
  9. package/dist/advanced-dashboard.mjs.map +1 -1
  10. package/dist/advanced-emotion.mjs +1 -1
  11. package/dist/advanced-motion.d.mts +65 -1
  12. package/dist/advanced-motion.js +14 -14
  13. package/dist/advanced-motion.js.map +1 -1
  14. package/dist/advanced-motion.mjs +1 -1
  15. package/dist/advanced.d.mts +4 -4
  16. package/dist/advanced.js +16 -16
  17. package/dist/advanced.js.map +1 -1
  18. package/dist/advanced.mjs +3 -3
  19. package/dist/advanced.mjs.map +1 -1
  20. package/dist/chunk-3CCF7U3P.mjs +3 -0
  21. package/dist/{chunk-IFSEJVOR.mjs.map → chunk-3CCF7U3P.mjs.map} +1 -1
  22. package/dist/chunk-3GAUTZXQ.mjs +3 -0
  23. package/dist/{chunk-X7ZIWYRC.mjs.map → chunk-3GAUTZXQ.mjs.map} +1 -1
  24. package/dist/chunk-42RGFEL2.mjs +3 -0
  25. package/dist/chunk-42RGFEL2.mjs.map +1 -0
  26. package/dist/chunk-4NJE7D6X.mjs +3 -0
  27. package/dist/chunk-4NJE7D6X.mjs.map +1 -0
  28. package/dist/chunk-6HVJFEDA.mjs +3 -0
  29. package/dist/{chunk-FSL373O6.mjs.map → chunk-6HVJFEDA.mjs.map} +1 -1
  30. package/dist/chunk-7OYT3QSY.mjs +3 -0
  31. package/dist/chunk-7OYT3QSY.mjs.map +1 -0
  32. package/dist/chunk-ANYZ56VB.mjs +3 -0
  33. package/dist/{chunk-QQCELXFD.mjs.map → chunk-ANYZ56VB.mjs.map} +1 -1
  34. package/dist/chunk-AOSXB5JJ.mjs +4 -0
  35. package/dist/{chunk-GLZKT7JN.mjs.map → chunk-AOSXB5JJ.mjs.map} +1 -1
  36. package/dist/chunk-B544MRF7.mjs +3 -0
  37. package/dist/{chunk-SDFHJ4GB.mjs.map → chunk-B544MRF7.mjs.map} +1 -1
  38. package/dist/chunk-CVWWS25A.mjs +3 -0
  39. package/dist/chunk-CVWWS25A.mjs.map +1 -0
  40. package/dist/chunk-DYNBM24D.mjs +3 -0
  41. package/dist/{chunk-OSCMSA2Q.mjs.map → chunk-DYNBM24D.mjs.map} +1 -1
  42. package/dist/{chunk-NBJUE7NR.mjs → chunk-FX57OSYG.mjs} +2 -2
  43. package/dist/{chunk-NBJUE7NR.mjs.map → chunk-FX57OSYG.mjs.map} +1 -1
  44. package/dist/chunk-IJSYSNM5.mjs +3 -0
  45. package/dist/{chunk-IN7RWQCJ.mjs.map → chunk-IJSYSNM5.mjs.map} +1 -1
  46. package/dist/chunk-KJZGOL2Z.mjs +3 -0
  47. package/dist/{chunk-LOYAJIWO.mjs.map → chunk-KJZGOL2Z.mjs.map} +1 -1
  48. package/dist/chunk-KYRIUUQP.mjs +3 -0
  49. package/dist/{chunk-PAEKNQWW.mjs.map → chunk-KYRIUUQP.mjs.map} +1 -1
  50. package/dist/chunk-LSA7DU3N.mjs +73 -0
  51. package/dist/chunk-LSA7DU3N.mjs.map +1 -0
  52. package/dist/chunk-MDLCJASB.mjs +3 -0
  53. package/dist/{chunk-LH77I6HO.mjs.map → chunk-MDLCJASB.mjs.map} +1 -1
  54. package/dist/chunk-N56BUOCD.mjs +3 -0
  55. package/dist/{chunk-XV3Y7QVU.mjs.map → chunk-N56BUOCD.mjs.map} +1 -1
  56. package/dist/chunk-OFYITQXI.mjs +13 -0
  57. package/dist/chunk-OFYITQXI.mjs.map +1 -0
  58. package/dist/chunk-OZNST3EZ.mjs +3 -0
  59. package/dist/{chunk-SGEP3CQE.mjs.map → chunk-OZNST3EZ.mjs.map} +1 -1
  60. package/dist/chunk-RS6RKW5U.mjs +13 -0
  61. package/dist/{chunk-6KTHJ3EL.mjs.map → chunk-RS6RKW5U.mjs.map} +1 -1
  62. package/dist/{chunk-C4OACMTB.mjs → chunk-TXBZZJNR.mjs} +2 -2
  63. package/dist/{chunk-C4OACMTB.mjs.map → chunk-TXBZZJNR.mjs.map} +1 -1
  64. package/dist/chunk-TZ4YSHMC.mjs +3 -0
  65. package/dist/{chunk-UWHCM3S6.mjs.map → chunk-TZ4YSHMC.mjs.map} +1 -1
  66. package/dist/chunk-U6CTBZ2U.mjs +3 -0
  67. package/dist/chunk-U6CTBZ2U.mjs.map +1 -0
  68. package/dist/{chunk-5BMH7223.mjs → chunk-WP7VFE77.mjs} +2 -2
  69. package/dist/{chunk-5BMH7223.mjs.map → chunk-WP7VFE77.mjs.map} +1 -1
  70. package/dist/{chunk-FFH4ZFKS.mjs → chunk-XCZMLKPK.mjs} +2 -2
  71. package/dist/{chunk-FFH4ZFKS.mjs.map → chunk-XCZMLKPK.mjs.map} +1 -1
  72. package/dist/chunk-XGHT7WMO.mjs +3 -0
  73. package/dist/chunk-XGHT7WMO.mjs.map +1 -0
  74. package/dist/chunk-XL4KTJ4L.mjs +3 -0
  75. package/dist/{chunk-VWSBJUNI.mjs.map → chunk-XL4KTJ4L.mjs.map} +1 -1
  76. package/dist/chunk-Z74YUUVT.mjs +3 -0
  77. package/dist/chunk-Z74YUUVT.mjs.map +1 -0
  78. package/dist/chunk-ZXZIHU7J.mjs +8 -0
  79. package/dist/{chunk-N7M6RIN4.mjs.map → chunk-ZXZIHU7J.mjs.map} +1 -1
  80. package/dist/components/DatePicker.d.ts.map +1 -1
  81. package/dist/components/Modal.d.ts.map +1 -1
  82. package/dist/components/Popover.d.ts +2 -0
  83. package/dist/components/Popover.d.ts.map +1 -1
  84. package/dist/components/Progress.d.ts +1 -0
  85. package/dist/components/Progress.d.ts.map +1 -1
  86. package/dist/components/Section.d.ts +44 -0
  87. package/dist/components/Section.d.ts.map +1 -0
  88. package/dist/components/advanced/AnimatedGradient.d.ts.map +1 -1
  89. package/dist/components/advanced/DotNav.d.ts +26 -0
  90. package/dist/components/advanced/DotNav.d.ts.map +1 -0
  91. package/dist/components/advanced/HorizontalScroll.d.ts +20 -0
  92. package/dist/components/advanced/HorizontalScroll.d.ts.map +1 -0
  93. package/dist/components/advanced/ImageReveal.d.ts +24 -0
  94. package/dist/components/advanced/ImageReveal.d.ts.map +1 -0
  95. package/dist/components/advanced/index.d.ts +6 -0
  96. package/dist/components/advanced/index.d.ts.map +1 -1
  97. package/dist/data.mjs +2 -2
  98. package/dist/data.mjs.map +1 -1
  99. package/dist/feedback.mjs +1 -1
  100. package/dist/form.js +3 -3
  101. package/dist/form.js.map +1 -1
  102. package/dist/form.mjs +4 -4
  103. package/dist/form.mjs.map +1 -1
  104. package/dist/{icons-Bj_nr8Ba.d.mts → icons-DmhQEH_E.d.mts} +6 -1
  105. package/dist/index.d.mts +9 -27
  106. package/dist/index.d.ts +4 -0
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +6 -6
  109. package/dist/index.js.map +1 -1
  110. package/dist/index.mjs +2 -2
  111. package/dist/index.mjs.map +1 -1
  112. package/dist/interactive.js +1 -1
  113. package/dist/interactive.js.map +1 -1
  114. package/dist/interactive.mjs +1 -1
  115. package/dist/interactive.mjs.map +1 -1
  116. package/dist/landing/LandingAbout.d.ts +3 -0
  117. package/dist/landing/LandingAbout.d.ts.map +1 -0
  118. package/dist/landing/LandingCTA.d.ts +3 -0
  119. package/dist/landing/LandingCTA.d.ts.map +1 -0
  120. package/dist/landing/LandingContact.d.ts +3 -0
  121. package/dist/landing/LandingContact.d.ts.map +1 -0
  122. package/dist/landing/LandingExperience.d.ts +3 -0
  123. package/dist/landing/LandingExperience.d.ts.map +1 -0
  124. package/dist/landing/LandingFeatures.d.ts +3 -0
  125. package/dist/landing/LandingFeatures.d.ts.map +1 -0
  126. package/dist/landing/LandingHero.d.ts +3 -0
  127. package/dist/landing/LandingHero.d.ts.map +1 -0
  128. package/dist/landing/LandingLogoCloud.d.ts +3 -0
  129. package/dist/landing/LandingLogoCloud.d.ts.map +1 -0
  130. package/dist/landing/LandingMetrics.d.ts +3 -0
  131. package/dist/landing/LandingMetrics.d.ts.map +1 -0
  132. package/dist/landing/LandingProjects.d.ts +3 -0
  133. package/dist/landing/LandingProjects.d.ts.map +1 -0
  134. package/dist/landing/LandingProvider.d.ts +4 -0
  135. package/dist/landing/LandingProvider.d.ts.map +1 -0
  136. package/dist/landing/LandingShowcase.d.ts +3 -0
  137. package/dist/landing/LandingShowcase.d.ts.map +1 -0
  138. package/dist/landing/LandingSkills.d.ts +3 -0
  139. package/dist/landing/LandingSkills.d.ts.map +1 -0
  140. package/dist/landing/LandingStats.d.ts +3 -0
  141. package/dist/landing/LandingStats.d.ts.map +1 -0
  142. package/dist/landing/LandingTestimonials.d.ts +3 -0
  143. package/dist/landing/LandingTestimonials.d.ts.map +1 -0
  144. package/dist/landing/index.d.ts +47 -0
  145. package/dist/landing/index.d.ts.map +1 -0
  146. package/dist/landing/themes/app.d.ts +3 -0
  147. package/dist/landing/themes/app.d.ts.map +1 -0
  148. package/dist/landing/themes/corporate.d.ts +3 -0
  149. package/dist/landing/themes/corporate.d.ts.map +1 -0
  150. package/dist/landing/themes/dashboard.d.ts +3 -0
  151. package/dist/landing/themes/dashboard.d.ts.map +1 -0
  152. package/dist/landing/themes/immersive.d.ts +3 -0
  153. package/dist/landing/themes/immersive.d.ts.map +1 -0
  154. package/dist/landing/themes/index.d.ts +15 -0
  155. package/dist/landing/themes/index.d.ts.map +1 -0
  156. package/dist/landing/themes/marketing.d.ts +3 -0
  157. package/dist/landing/themes/marketing.d.ts.map +1 -0
  158. package/dist/landing/themes/portfolio.d.ts +3 -0
  159. package/dist/landing/themes/portfolio.d.ts.map +1 -0
  160. package/dist/landing/themes/product.d.ts +3 -0
  161. package/dist/landing/themes/product.d.ts.map +1 -0
  162. package/dist/landing/types.d.ts +346 -0
  163. package/dist/landing/types.d.ts.map +1 -0
  164. package/dist/landing.d.mts +417 -0
  165. package/dist/landing.js +100 -0
  166. package/dist/landing.js.map +1 -0
  167. package/dist/landing.mjs +31 -0
  168. package/dist/landing.mjs.map +1 -0
  169. package/dist/lib/icons.d.ts +6 -1
  170. package/dist/lib/icons.d.ts.map +1 -1
  171. package/dist/navigation.d.mts +1 -1
  172. package/dist/navigation.js +2 -2
  173. package/dist/navigation.js.map +1 -1
  174. package/dist/navigation.mjs +1 -1
  175. package/dist/navigation.mjs.map +1 -1
  176. package/dist/overlay.d.mts +2 -0
  177. package/dist/overlay.js +1 -1
  178. package/dist/overlay.js.map +1 -1
  179. package/dist/overlay.mjs +1 -1
  180. package/dist/overlay.mjs.map +1 -1
  181. package/dist/sdui.js +4 -4
  182. package/dist/sdui.js.map +1 -1
  183. package/dist/sdui.mjs +1 -1
  184. package/dist/sdui.mjs.map +1 -1
  185. package/package.json +18 -7
  186. package/src/styles/landing.css +107 -0
  187. package/src/styles/utilities.css +58 -0
  188. package/dist/chunk-6KTHJ3EL.mjs +0 -13
  189. package/dist/chunk-COR6CDMA.mjs +0 -83
  190. package/dist/chunk-COR6CDMA.mjs.map +0 -1
  191. package/dist/chunk-FSL373O6.mjs +0 -3
  192. package/dist/chunk-GLZKT7JN.mjs +0 -4
  193. package/dist/chunk-HN5LSP6L.mjs +0 -3
  194. package/dist/chunk-HN5LSP6L.mjs.map +0 -1
  195. package/dist/chunk-IFSEJVOR.mjs +0 -3
  196. package/dist/chunk-IN7RWQCJ.mjs +0 -3
  197. package/dist/chunk-LH77I6HO.mjs +0 -3
  198. package/dist/chunk-LOYAJIWO.mjs +0 -3
  199. package/dist/chunk-LPAG7DCA.mjs +0 -3
  200. package/dist/chunk-LPAG7DCA.mjs.map +0 -1
  201. package/dist/chunk-N7M6RIN4.mjs +0 -8
  202. package/dist/chunk-OSCMSA2Q.mjs +0 -3
  203. package/dist/chunk-PAEKNQWW.mjs +0 -3
  204. package/dist/chunk-QQCELXFD.mjs +0 -3
  205. package/dist/chunk-RPUS7G7Q.mjs +0 -3
  206. package/dist/chunk-RPUS7G7Q.mjs.map +0 -1
  207. package/dist/chunk-SDFHJ4GB.mjs +0 -3
  208. package/dist/chunk-SGEP3CQE.mjs +0 -3
  209. package/dist/chunk-UUHAXGMO.mjs +0 -3
  210. package/dist/chunk-UUHAXGMO.mjs.map +0 -1
  211. package/dist/chunk-UWHCM3S6.mjs +0 -3
  212. package/dist/chunk-VWSBJUNI.mjs +0 -3
  213. package/dist/chunk-X7ZIWYRC.mjs +0 -3
  214. package/dist/chunk-XV3Y7QVU.mjs +0 -3
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/utils.ts"],"names":["merge","inputs","twMerge","clsx","mergeIf","condition","trueClass","falseClass","formatRelativeTime","timestamp","locale","date","diff","minutes","hours","days","mergeMap","classMap","classes","className","cn"],"mappings":"6DAiBO,SAASA,CAAAA,CAAAA,GAASC,EAAsB,CAC7C,OAAOC,OAAAA,CAAQC,IAAAA,CAAKF,CAAM,CAAC,CAC7B,CAiBO,SAASG,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACA,CACA,OAAOP,CAAAA,CAAMK,CAAAA,CAAYC,CAAAA,CAAYC,GAAc,EAAE,CACvD,CAwBO,SAASC,EAAmBC,CAAAA,CAA0BC,CAAAA,CAAS,OAAA,CAAiB,CACrF,IAAMC,CAAAA,CAAO,OAAOF,CAAAA,EAAc,SAAW,IAAI,IAAA,CAAKA,CAAS,CAAA,CAAIA,EAE7DG,CAAAA,CADM,IAAI,IAAA,EAAK,CACJ,SAAQ,CAAID,CAAAA,CAAK,OAAA,EAAQ,CACpCE,CAAAA,CAAU,IAAA,CAAK,KAAA,CAAMD,CAAAA,CAAO,GAAK,CAAA,CACjCE,CAAAA,CAAQ,IAAA,CAAK,KAAA,CAAMF,EAAO,IAAO,CAAA,CACjCG,CAAAA,CAAO,IAAA,CAAK,MAAMH,CAAAA,CAAO,KAAQ,CAAA,CAEvC,OAAIC,CAAAA,CAAU,CAAA,CAAUH,CAAAA,GAAW,OAAA,CAAU,sBAAS,UAAA,CAClDG,CAAAA,CAAU,EAAA,CAAWH,CAAAA,GAAW,QAAU,CAAA,EAAGG,CAAO,CAAA,aAAA,CAAA,CAAQ,CAAA,EAAGA,CAAO,CAAA,KAAA,CAAA,CACtEC,CAAAA,CAAQ,EAAA,CAAWJ,CAAAA,GAAW,OAAA,CAAU,CAAA,EAAGI,CAAK,CAAA,mBAAA,CAAA,CAAS,GAAGA,CAAK,CAAA,KAAA,CAAA,CACjEC,CAAAA,CAAO,CAAA,CAAUL,IAAW,OAAA,CAAU,CAAA,EAAGK,CAAI,CAAA,aAAA,CAAA,CAAQ,GAAGA,CAAI,CAAA,KAAA,CAAA,CACzDJ,CAAAA,CAAK,kBAAA,CAAmBD,CAAM,CACvC,CAmBO,SAASM,EAASC,CAAAA,CAAsD,CAC7E,IAAMC,CAAAA,CAAU,OAAO,OAAA,CAAQD,CAAQ,CAAA,CACpC,MAAA,CAAO,CAAC,EAAGZ,CAAS,CAAA,GAAMA,CAAS,CAAA,CACnC,GAAA,CAAI,CAAC,CAACc,CAAS,CAAA,GAAMA,CAAS,CAAA,CAEjC,OAAOnB,EAAM,GAAGkB,CAAO,CACzB,KAGaE,CAAAA,CAAKpB","file":"chunk-UUHAXGMO.mjs","sourcesContent":["import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\n/**\n * HUA UI의 스마트 클래스 병합 유틸리티\n * clsx와 tailwind-merge를 결합하여 중복 클래스를 자동으로 해결합니다.\n * \n * @param inputs - 병합할 클래스 값들\n * @returns 병합된 클래스 문자열\n * \n * @example\n * ```tsx\n * merge(\"px-2 py-1\", \"px-4\") // \"py-1 px-4\"\n * merge(\"text-red-500\", \"text-blue-500\") // \"text-blue-500\"\n * merge(\"bg-white\", \"dark:bg-slate-900\") // \"bg-white dark:bg-slate-900\"\n * ```\n */\nexport function merge(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n\n/**\n * 조건부 클래스 병합 유틸리티\n * 조건에 따라 클래스를 선택적으로 병합합니다.\n * \n * @param condition - 클래스를 적용할 조건\n * @param trueClass - 조건이 true일 때 적용할 클래스\n * @param falseClass - 조건이 false일 때 적용할 클래스 (선택사항)\n * @returns 병합된 클래스 문자열\n * \n * @example\n * ```tsx\n * mergeIf(isActive, \"bg-blue-500\", \"bg-gray-200\")\n * mergeIf(isLoading, \"opacity-50 cursor-not-allowed\")\n * ```\n */\nexport function mergeIf(\n condition: boolean,\n trueClass: ClassValue,\n falseClass?: ClassValue\n) {\n return merge(condition ? trueClass : falseClass || \"\")\n}\n\n/**\n * 상대 시간 포맷팅 유틸리티\n * \n * 날짜를 상대 시간 형식으로 포맷팅합니다 (예: \"방금 전\", \"5분 전\", \"2시간 전\", \"3일 전\").\n * 7일 이상 경과한 경우 절대 날짜를 반환합니다.\n * \n * Formats a date as relative time (e.g., \"방금 전\", \"5분 전\", \"2시간 전\", \"3일 전\").\n * Returns absolute date for dates older than 7 days.\n * \n * @param timestamp - 포맷팅할 날짜 (Date 객체 또는 ISO 문자열) / Date to format (Date object or ISO string)\n * @param locale - 로케일 (기본값: \"ko-KR\") / Locale (default: \"ko-KR\")\n * @returns 포맷팅된 상대 시간 문자열 / Formatted relative time string\n * \n * @example\n * ```tsx\n * formatRelativeTime(new Date()) // \"방금 전\"\n * formatRelativeTime(new Date(Date.now() - 5 * 60000)) // \"5분 전\"\n * formatRelativeTime(new Date(Date.now() - 2 * 3600000)) // \"2시간 전\"\n * formatRelativeTime(new Date(Date.now() - 3 * 86400000)) // \"3일 전\"\n * formatRelativeTime(new Date(\"2024-01-01\")) // \"2024. 1. 1.\" (7일 이상 경과)\n * ```\n */\nexport function formatRelativeTime(timestamp: Date | string, locale = \"ko-KR\"): string {\n const date = typeof timestamp === \"string\" ? new Date(timestamp) : timestamp;\n const now = new Date();\n const diff = now.getTime() - date.getTime();\n const minutes = Math.floor(diff / 60000);\n const hours = Math.floor(diff / 3600000);\n const days = Math.floor(diff / 86400000);\n\n if (minutes < 1) return locale === \"ko-KR\" ? \"방금 전\" : \"just now\";\n if (minutes < 60) return locale === \"ko-KR\" ? `${minutes}분 전` : `${minutes}m ago`;\n if (hours < 24) return locale === \"ko-KR\" ? `${hours}시간 전` : `${hours}h ago`;\n if (days < 7) return locale === \"ko-KR\" ? `${days}일 전` : `${days}d ago`;\n return date.toLocaleDateString(locale);\n}\n\n/**\n * 객체 기반 클래스 병합 유틸리티\n * 객체의 키-값 쌍을 기반으로 조건부 클래스를 병합합니다.\n * \n * @param classMap - 클래스 맵 객체\n * @returns 병합된 클래스 문자열\n * \n * @example\n * ```tsx\n * mergeMap({\n * \"bg-blue-500\": isPrimary,\n * \"bg-gray-500\": !isPrimary,\n * \"text-white\": true,\n * \"opacity-50\": isDisabled\n * })\n * ```\n */\nexport function mergeMap(classMap: Record<string, boolean | undefined | null>) {\n const classes = Object.entries(classMap)\n .filter(([, condition]) => condition)\n .map(([className]) => className)\n \n return merge(...classes)\n}\n\n// 하위 호환성을 위해 cn도 export (점진적 마이그레이션 지원)\nexport const cn = merge "]}
@@ -1,3 +0,0 @@
1
- "use client";
2
- import {a as a$1}from'./chunk-SGEP3CQE.mjs';import {l}from'./chunk-HN5LSP6L.mjs';import {a}from'./chunk-UUHAXGMO.mjs';import w from'react';import {cva}from'class-variance-authority';import {jsx,jsxs}from'react/jsx-runtime';var L=cva("flex w-full rounded-md border transition-all duration-200 focus:outline-none focus:ring-1 focus:ring-offset-2 hover:border-accent-foreground hover:shadow-sm disabled:cursor-not-allowed disabled:opacity-50 placeholder:text-muted-foreground",{variants:{variant:{default:"border-input bg-background text-foreground focus:border-ring focus:ring-ring",outline:"border-2 border-input bg-transparent text-foreground focus:border-ring focus:ring-ring",filled:"border-transparent bg-secondary/50 text-foreground focus:bg-background focus:border-ring focus:ring-ring",ghost:"border-transparent bg-transparent text-foreground focus:bg-muted focus:border-border focus:ring-muted-foreground",glass:"border-white/30 bg-white/10 backdrop-blur-sm text-white placeholder:text-white/60 focus:border-ring/50 focus:ring-ring/20 focus:bg-white/20"},size:{sm:"px-3 py-2 text-sm min-h-[80px]",md:"px-4 py-3 text-base min-h-[100px]",lg:"px-4 py-3 text-lg min-h-[120px]"},resize:{none:"resize-none",vertical:"resize-y",horizontal:"resize-x",both:"resize"}},defaultVariants:{variant:"default",size:"md",resize:"vertical"}}),O=w.forwardRef(({className:l,variant:c="default",size:i="md",error:a$2=false,success:u=false,resize:r="vertical",...t},f)=>{let e=t["aria-invalid"],g=a$2||(e!==void 0?e:false);return jsx("textarea",{className:a(L({variant:c,size:i,resize:r}),a$2&&a$1.error,u&&a$1.success,l),ref:f,"aria-invalid":g||void 0,...t})});O.displayName="Textarea";var E=w.forwardRef(({className:l$1,variant:c="default",size:i="md",error:a$1=false,success:u=false,label:r,description:t,id:f,...e},g)=>{var h,v;let k=w.useId(),s=f||k,p=r?`${s}-label`:void 0,x=t?`${s}-description`:void 0,z={sm:"w-4 h-4",md:"w-5 h-5",lg:"w-6 h-6"},T={sm:12,md:14,lg:16},C={default:"border-input bg-background text-primary focus:ring-ring",outline:"border-2 border-input bg-transparent text-primary focus:ring-ring",filled:"border-transparent bg-muted text-primary focus:bg-background focus:ring-ring",glass:"border-white/30 bg-white/10 backdrop-blur-sm text-white focus:ring-ring/50 focus:bg-white/20"},I=a$1?"border-destructive focus:ring-destructive":u?"border-green-500 focus:ring-green-500":"",N=e.checked!==void 0,d=(v=(h=e.checked)!=null?h:e.defaultChecked)!=null?v:false,R=N&&!e.onChange&&!e.readOnly;return jsxs("div",{className:"flex items-start space-x-3",children:[jsxs("div",{className:"relative",children:[jsx("input",{type:"checkbox",id:s,className:a("peer absolute inset-0 w-full h-full opacity-0 cursor-pointer z-10",l$1),ref:g,"aria-checked":d,"aria-invalid":a$1,"aria-label":r?void 0:e["aria-label"],"aria-labelledby":r?p:void 0,"aria-describedby":x,role:"checkbox",readOnly:R||e.readOnly,...e}),jsx("div",{className:a("flex items-center justify-center rounded border transition-all duration-200 cursor-pointer relative","peer-focus:outline-none peer-focus:ring-1 peer-focus:ring-offset-2","peer-hover:border-accent-foreground peer-hover:shadow-sm","peer-disabled:cursor-not-allowed peer-disabled:opacity-50",z[i],C[c],I,d&&"bg-primary border-primary shadow-md shadow-primary/20",!d&&"bg-background"),children:jsx(l,{name:"check",size:T[i],className:a("text-white transition-all duration-200",d?"opacity-100 scale-100":"opacity-0 scale-0")})})]}),(r||t)&&jsxs("div",{className:"flex flex-col",children:[r&&jsx("label",{htmlFor:s,id:p,className:"text-sm font-medium text-foreground cursor-pointer",children:r}),t&&jsx("p",{id:x,className:"text-sm text-muted-foreground",children:t})]})]})});E.displayName="Checkbox";export{O as a,E as b};//# sourceMappingURL=chunk-UWHCM3S6.mjs.map
3
- //# sourceMappingURL=chunk-UWHCM3S6.mjs.map
@@ -1,3 +0,0 @@
1
- "use client";
2
- import {a}from'./chunk-UUHAXGMO.mjs';import w from'react';import {jsxs,jsx}from'react/jsx-runtime';var R=w.forwardRef(({value:r,defaultValue:B=0,min:n,max:a$1,step:k=1,onChange:p,disabled:s=false,size:E="md",showButtons:N=true,buttonLayout:H="horizontal",className:y,...c},x)=>{let[V,z]=w.useState(B),f=r!==void 0,i=f?r:V,l=w.useCallback(o=>{let t=o;n!==void 0&&(t=Math.max(n,t)),a$1!==void 0&&(t=Math.min(a$1,t)),f||z(t),p==null||p(t);},[f,n,a$1,p]),v=()=>{s||l(i+k);},m=()=>{s||l(i-k);},C=o=>{let t=o.target.value;if(t===""||t==="-")return;let g=parseFloat(t);isNaN(g)||(n!==void 0&&g<n?l(n):l(g));},I=o=>{var t;n!==void 0&&i<n&&l(n),a$1!==void 0&&i>a$1&&l(a$1),(t=c.onBlur)==null||t.call(c,o);},L=o=>{o.key==="ArrowUp"?(o.preventDefault(),v()):o.key==="ArrowDown"&&(o.preventDefault(),m());},d={sm:{input:"h-8 text-sm px-2 py-1",button:"w-8 h-8 text-sm",wrapper:"gap-1"},md:{input:"h-10 text-sm px-3 py-2",button:"w-10 h-10 text-sm",wrapper:"gap-2"},lg:{input:"h-12 text-base px-4 py-2.5",button:"w-12 h-12 text-base",wrapper:"gap-2"}}[E],b=a("flex items-center justify-center rounded-md border border-input bg-background","hover:bg-secondary hover:border-primary/50 active:scale-95","transition-all duration-150","disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:bg-background","focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2",d.button),M=n===void 0||i>n,D=a$1===void 0||i<a$1;return H==="vertical"?jsxs("div",{className:a("inline-flex items-center",d.wrapper,y),children:[jsxs("div",{className:"flex flex-col gap-0.5",children:[jsx("button",{type:"button",onClick:v,disabled:s||!D,className:a(b,"rounded-b-none h-[calc(50%-1px)]"),"aria-label":"Increase",children:jsx(K,{className:"w-3 h-3"})}),jsx("button",{type:"button",onClick:m,disabled:s||!M,className:a(b,"rounded-t-none h-[calc(50%-1px)]"),"aria-label":"Decrease",children:jsx(W,{className:"w-3 h-3"})})]}),jsx("input",{ref:x,type:"text",inputMode:"numeric",pattern:n!==void 0&&n>=0?"[0-9]*":"-?[0-9]*",value:i,onChange:C,onKeyDown:L,onBlur:I,disabled:s,className:a("w-16 text-center rounded-md border border-input bg-background","focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50","[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none",d.input),...c})]}):jsxs("div",{className:a("inline-flex items-center",d.wrapper,y),children:[N&&jsx("button",{type:"button",onClick:m,disabled:s||!M,className:b,"aria-label":"Decrease",children:jsx(T,{className:"w-3.5 h-3.5"})}),jsx("input",{ref:x,type:"text",inputMode:"numeric",pattern:n!==void 0&&n>=0?"[0-9]*":"-?[0-9]*",value:i,onChange:C,onKeyDown:L,onBlur:I,disabled:s,className:a("w-16 text-center rounded-md border border-input bg-background","focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50","[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none",d.input),...c}),N&&jsx("button",{type:"button",onClick:v,disabled:s||!D,className:b,"aria-label":"Increase",children:jsx(j,{className:"w-3.5 h-3.5"})})]})});R.displayName="NumberInput";function T({className:r}){return jsx("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M20 12H4"})})}function j({className:r}){return jsx("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})})}function K({className:r}){return jsx("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 15l7-7 7 7"})})}function W({className:r}){return jsx("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})}export{R as a};//# sourceMappingURL=chunk-VWSBJUNI.mjs.map
3
- //# sourceMappingURL=chunk-VWSBJUNI.mjs.map
@@ -1,3 +0,0 @@
1
- "use client";
2
- import {a}from'./chunk-UUHAXGMO.mjs';import e from'react';import {jsxs,jsx}from'react/jsx-runtime';var c=e.forwardRef(({className:r,content:o,children:a$1,position:d="top",variant:h="default",delay:y=300,disabled:T=false,...v},w)=>{let[x,f]=e.useState(false),[p,k]=e.useState({x:0,y:0}),l=e.useRef(void 0),g=e.useRef(null),R=E=>{var b;if(T)return;let t=E.currentTarget.getBoundingClientRect();(b=g.current)==null?void 0:b.getBoundingClientRect();let s=0,n=0;switch(d){case "top":s=t.left+t.width/2,n=t.top-8;break;case "bottom":s=t.left+t.width/2,n=t.bottom+8;break;case "left":s=t.left-8,n=t.top+t.height/2;break;case "right":s=t.right+8,n=t.top+t.height/2;break}k({x:s,y:n}),l.current=window.setTimeout(()=>{f(true);},y);},L=()=>{l.current&&clearTimeout(l.current),f(false);};e.useEffect(()=>()=>{l.current&&clearTimeout(l.current);},[]);let M=()=>{switch(h){case "light":return "bg-popover text-popover-foreground border border-border shadow-lg";case "dark":return "bg-gray-900 text-white shadow-lg";default:return "bg-gray-800 text-white shadow-lg"}},N=()=>{switch(d){case "top":return "top-full left-1/2 -translate-x-1/2 border-t-gray-800 dark:border-t-gray-800";case "bottom":return "bottom-full left-1/2 -translate-x-1/2 border-b-gray-800 dark:border-b-gray-800";case "left":return "left-full top-1/2 -translate-y-1/2 border-l-gray-800 dark:border-l-gray-800";case "right":return "right-full top-1/2 -translate-y-1/2 border-r-gray-800 dark:border-r-gray-800";default:return "top-full left-1/2 -translate-x-1/2 border-t-gray-800 dark:border-t-gray-800"}};return jsxs("div",{ref:w,className:a("relative inline-block",r),onMouseEnter:R,onMouseLeave:L,...v,children:[a$1,x&&jsxs("div",{ref:g,className:a("fixed z-50 px-3 py-2 text-sm rounded-lg whitespace-nowrap pointer-events-none",M()),style:{left:`${p.x}px`,top:`${p.y}px`,transform:"translate(-50%, -50%)"},children:[o,jsx("div",{className:a("absolute w-0 h-0 border-4 border-transparent",N())})]})]})});c.displayName="Tooltip";var D=e.forwardRef(({className:r,...o},a)=>jsx(c,{ref:a,variant:"light",className:r,...o}));D.displayName="TooltipLight";var C=e.forwardRef(({className:r,...o},a)=>jsx(c,{ref:a,variant:"dark",className:r,...o}));C.displayName="TooltipDark";export{c as a,D as b,C as c};//# sourceMappingURL=chunk-X7ZIWYRC.mjs.map
3
- //# sourceMappingURL=chunk-X7ZIWYRC.mjs.map
@@ -1,3 +0,0 @@
1
- "use client";
2
- import {l}from'./chunk-HN5LSP6L.mjs';import {a}from'./chunk-UUHAXGMO.mjs';import f from'react';import {jsx,jsxs}from'react/jsx-runtime';var M=f.forwardRef(({children:s,className:r,type:o="single",defaultValue:a$1,value:n,onValueChange:c,collapsible:u=false,...v},m)=>{let[l,d]=f.useState(n?Array.isArray(n)?n:[n]:a$1?Array.isArray(a$1)?a$1:[a$1]:[]);f.useEffect(()=>{n!==void 0&&d(Array.isArray(n)?n:[n]);},[n]);let y=e=>{let t;o==="single"?l.includes(e)?t=u?[]:l:t=[e]:l.includes(e)?t=l.filter(i=>i!==e):t=[...l,e],d(t),c==null||c(o==="single"?t[0]||"":t);},p=f.useMemo(()=>{let e=[];return f.Children.forEach(s,t=>{if(f.isValidElement(t)){let i=t.props;i.value&&e.push(i.value);}}),e},[s]),h=e=>{var D;let t=e.target;if(!t.hasAttribute("data-accordion-trigger"))return;let i=t.getAttribute("data-accordion-value");if(!i)return;let x=p.indexOf(i);if(x===-1)return;let T=x;if(e.key==="ArrowDown"?(e.preventDefault(),T=x<p.length-1?x+1:0):e.key==="ArrowUp"?(e.preventDefault(),T=x>0?x-1:p.length-1):e.key==="Home"?(e.preventDefault(),T=0):e.key==="End"&&(e.preventDefault(),T=p.length-1),T!==x&&p[T]){let P=(D=t.closest("[data-accordion-item]"))==null?void 0:D.querySelector(`[data-accordion-value="${p[T]}"]`);P==null||P.focus();}};return jsx("div",{ref:m,className:a("space-y-2",r),onKeyDown:h,...v,children:f.Children.map(s,e=>f.isValidElement(e)?f.cloneElement(e,{openItems:l,onToggle:y}):e)})});M.displayName="Accordion";var k=f.forwardRef(({value:s,children:r,className:o,disabled:a$1=false,openItems:n=[],onToggle:c,...u},v)=>{let m=n.includes(s);return jsx("div",{ref:v,"data-accordion-item":true,className:a("border border-border/50 rounded-lg overflow-hidden",a$1&&"opacity-50 pointer-events-none",o),...u,children:f.Children.map(r,l=>f.isValidElement(l)?f.cloneElement(l,{value:s,isOpen:m,disabled:a$1,onToggle:()=>c==null?void 0:c(s),"data-accordion-value":s}):l)})});k.displayName="AccordionItem";var I=f.forwardRef(({children:s,className:r,icon:o,iconPosition:a$1="right",value:n,isOpen:c=false,disabled:u=false,onToggle:v,...m},l$1)=>{let d=jsx(l,{name:"chevronDown",size:20,className:a("transition-transform duration-300 ease-out text-muted-foreground",c&&"rotate-180")}),y=`accordion-content-${n}`,p=`accordion-trigger-${n}`;return jsxs("button",{ref:l$1,id:p,"data-accordion-trigger":true,"data-accordion-value":n,"aria-expanded":c,"aria-controls":y,onClick:v,disabled:u,className:a("flex w-full items-center justify-between px-6 py-4 text-left font-medium transition-all hover:bg-muted/80 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring/50 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",r),...m,children:[jsxs("div",{className:"flex items-center gap-3 flex-1",children:[a$1==="left"&&(o||d),jsx("span",{className:"flex-1",children:s})]}),a$1==="right"&&(o||d)]})});I.displayName="AccordionTrigger";var C=f.forwardRef(({children:s,className:r,isOpen:o=false,value:a$1,"data-accordion-value":n,...c},u)=>{let[v,m]=f.useState(0),l=f.useRef(null),d=a$1||n||"unknown";f.useEffect(()=>{l.current&&m(o?l.current.scrollHeight:0);},[o,s]);let y=`accordion-trigger-${d}`,p=`accordion-content-${d}`;return jsx("div",{ref:u,id:p,role:"region","aria-labelledby":y,hidden:!o,className:"overflow-hidden transition-all duration-300 ease-out",style:{height:`${v}px`},...c,children:jsx("div",{ref:l,className:a("px-6 pt-2 pb-4",r),children:s})})});C.displayName="AccordionContent";var L=f.forwardRef(({className:s,value:r,active:o,children:a$1,...n},c)=>o===false?null:jsx("div",{ref:c,role:"tabpanel",id:`tabpanel-${r}`,"aria-labelledby":`tab-${r}`,hidden:!o,className:a("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2",s),...n,children:a$1}));L.displayName="TabsContent";var A=f.forwardRef(({className:s,value:r,defaultValue:o,onValueChange:a$1,orientation:n="horizontal",variant:c="default",size:u="md",children:v,...m},l)=>{let[d,y]=f.useState(r||o||""),p=r!==void 0,h=p?r:d,e=t=>{p||y(t),a$1==null||a$1(t);};return f.useEffect(()=>{r!==void 0&&y(r);},[r]),jsx("div",{ref:l,className:a("w-full",n==="vertical"&&"flex",s),...m,children:f.Children.map(v,t=>{if(f.isValidElement(t)){if(t.type===L){let i=t.props;return f.cloneElement(t,{active:i.value===h})}if(t.type===N)return f.cloneElement(t,{value:h,onValueChange:e,orientation:n,variant:c,size:u});if(typeof t.type!="string")return f.cloneElement(t,{value:h,onValueChange:e,orientation:n,variant:c,size:u})}return t})})});A.displayName="Tabs";var N=f.forwardRef(({className:s,value:r,onValueChange:o,orientation:a$1="horizontal",variant:n="default",size:c="md",children:u,...v},m)=>{let l=f.useRef(null);f.useImperativeHandle(m,()=>l.current);let d=f.useMemo(()=>{let e=[];return f.Children.forEach(u,t=>{if(f.isValidElement(t)){let i=t.props;i.value&&e.push(i.value);}}),e},[u]),y=e=>{var x;if(!r||d.length===0)return;let t=d.indexOf(r);if(t===-1)return;let i=t;if(a$1==="horizontal"?e.key==="ArrowLeft"?(e.preventDefault(),i=t>0?t-1:d.length-1):e.key==="ArrowRight"?(e.preventDefault(),i=t<d.length-1?t+1:0):e.key==="Home"?(e.preventDefault(),i=0):e.key==="End"&&(e.preventDefault(),i=d.length-1):e.key==="ArrowUp"?(e.preventDefault(),i=t>0?t-1:d.length-1):e.key==="ArrowDown"?(e.preventDefault(),i=t<d.length-1?t+1:0):e.key==="Home"?(e.preventDefault(),i=0):e.key==="End"&&(e.preventDefault(),i=d.length-1),i!==t&&d[i]){o==null||o(d[i]);let T=(x=l.current)==null?void 0:x.querySelector(`[data-tab-value="${d[i]}"]`);T==null||T.focus();}},p=()=>{switch(n){case "pills":return "bg-muted p-3 rounded-xl border border-border/50";case "underline":return "border-b border-border";case "cards":return "bg-muted/80 p-3 rounded-xl border border-border/50";default:return "bg-muted p-3 rounded-xl border border-border/50"}},h=()=>{switch(c){case "sm":return "h-12";case "lg":return "h-16";default:return "h-14"}};return jsx("div",{ref:l,role:"tablist","aria-orientation":a$1,onKeyDown:y,className:a("flex items-center justify-center",a$1==="vertical"&&"flex-col",p(),h(),s),...v,children:f.Children.map(u,e=>{if(f.isValidElement(e)){if(typeof e.type=="string")return e;let t=e.props;return f.cloneElement(e,{onValueChange:o,orientation:a$1,variant:n,size:c,active:t.value===r})}return e})})});N.displayName="TabsList";var z=f.forwardRef(({className:s,value:r,onValueChange:o,orientation:a$1="horizontal",variant:n="default",size:c="md",active:u=false,children:v,...m},l)=>{let d=()=>{switch(n){case "pills":return a("inline-flex items-center justify-center whitespace-nowrap rounded-lg px-4 py-2.5 text-sm font-medium ring-offset-background transition-all duration-200 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",u?"bg-background text-foreground shadow-md":"text-muted-foreground hover:text-foreground hover:bg-muted");case "underline":return a("inline-flex items-center justify-center whitespace-nowrap border-b-2 px-4 py-2.5 text-sm font-medium ring-offset-background transition-all duration-200 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",u?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground");case "cards":return a("inline-flex items-center justify-center whitespace-nowrap rounded-lg px-4 py-2.5 text-sm font-medium ring-offset-background transition-all duration-200 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",u?"bg-background text-foreground shadow-md":"text-muted-foreground hover:text-foreground hover:bg-muted");default:return a("inline-flex items-center justify-center whitespace-nowrap rounded-lg px-4 py-2.5 text-sm font-medium ring-offset-background transition-all duration-200 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",u?"bg-background text-foreground shadow-md":"text-muted-foreground hover:text-foreground hover:bg-muted")}},y=()=>{switch(c){case "sm":return "h-10 px-4 py-2 text-xs";case "lg":return "h-14 px-6 py-3 text-base";default:return "h-12 px-5 py-2.5 text-sm"}},p=()=>{o&&o(r);};return jsx("button",{ref:l,role:"tab","aria-selected":u,"aria-controls":`tabpanel-${r}`,id:`tab-${r}`,"data-tab-value":r,tabIndex:u?0:-1,className:a(d(),y(),s),onClick:p,type:"button",...m,children:v})});z.displayName="TabsTrigger";var $=f.forwardRef((s,r)=>jsx(A,{ref:r,variant:"pills",...s}));$.displayName="TabsPills";var S=f.forwardRef((s,r)=>jsx(A,{ref:r,variant:"underline",...s}));S.displayName="TabsUnderline";var K=f.forwardRef((s,r)=>jsx(A,{ref:r,variant:"cards",...s}));K.displayName="TabsCards";export{M as a,k as b,I as c,C as d,L as e,A as f,N as g,z as h,$ as i,S as j,K as k};//# sourceMappingURL=chunk-XV3Y7QVU.mjs.map
3
- //# sourceMappingURL=chunk-XV3Y7QVU.mjs.map