@jarllyng/nostromo 3.2.0 → 3.3.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 (175) hide show
  1. package/dist/chunk-35I2BJC3.js +3 -0
  2. package/dist/chunk-35I2BJC3.js.map +1 -0
  3. package/dist/chunk-35RWQSO2.cjs +3 -0
  4. package/dist/chunk-35RWQSO2.cjs.map +1 -0
  5. package/dist/chunk-3QVQ2TNE.cjs +3 -0
  6. package/dist/chunk-3QVQ2TNE.cjs.map +1 -0
  7. package/dist/{chunk-ZC4HJSII.cjs → chunk-5Z3MYAVM.cjs} +2 -2
  8. package/dist/{chunk-ZC4HJSII.cjs.map → chunk-5Z3MYAVM.cjs.map} +1 -1
  9. package/dist/{chunk-ZQDFYSZB.cjs → chunk-AYEM2M4H.cjs} +2 -2
  10. package/dist/{chunk-ZQDFYSZB.cjs.map → chunk-AYEM2M4H.cjs.map} +1 -1
  11. package/dist/chunk-BL2TM4YT.js +3 -0
  12. package/dist/chunk-BL2TM4YT.js.map +1 -0
  13. package/dist/{chunk-BSUHBLZO.cjs → chunk-BZ5ZCZJX.cjs} +2 -2
  14. package/dist/{chunk-BSUHBLZO.cjs.map → chunk-BZ5ZCZJX.cjs.map} +1 -1
  15. package/dist/chunk-C7HZAQBX.cjs +3 -0
  16. package/dist/chunk-C7HZAQBX.cjs.map +1 -0
  17. package/dist/chunk-DNTPD3PJ.js +3 -0
  18. package/dist/chunk-DNTPD3PJ.js.map +1 -0
  19. package/dist/{chunk-TGPWW7FC.js → chunk-HRJXPCGF.js} +2 -2
  20. package/dist/{chunk-TGPWW7FC.js.map → chunk-HRJXPCGF.js.map} +1 -1
  21. package/dist/chunk-JCETHQ55.cjs +3 -0
  22. package/dist/chunk-JCETHQ55.cjs.map +1 -0
  23. package/dist/chunk-MDXW6IRM.cjs +3 -0
  24. package/dist/chunk-MDXW6IRM.cjs.map +1 -0
  25. package/dist/chunk-MOPCE5RA.js +3 -0
  26. package/dist/chunk-MOPCE5RA.js.map +1 -0
  27. package/dist/chunk-MY2KMTUS.js +3 -0
  28. package/dist/chunk-MY2KMTUS.js.map +1 -0
  29. package/dist/chunk-NBX6FKCA.cjs +3 -0
  30. package/dist/chunk-NBX6FKCA.cjs.map +1 -0
  31. package/dist/chunk-NC27D5Y3.cjs +3 -0
  32. package/dist/chunk-NC27D5Y3.cjs.map +1 -0
  33. package/dist/chunk-NPSIDFOF.cjs +3 -0
  34. package/dist/chunk-NPSIDFOF.cjs.map +1 -0
  35. package/dist/chunk-QKM5LPRW.js +3 -0
  36. package/dist/chunk-QKM5LPRW.js.map +1 -0
  37. package/dist/chunk-SVWQWRPZ.js +3 -0
  38. package/dist/chunk-SVWQWRPZ.js.map +1 -0
  39. package/dist/chunk-UIEGBT4T.js +3 -0
  40. package/dist/chunk-UIEGBT4T.js.map +1 -0
  41. package/dist/chunk-VNDL67OG.cjs +3 -0
  42. package/dist/chunk-VNDL67OG.cjs.map +1 -0
  43. package/dist/chunk-WK6LNC2E.cjs +3 -0
  44. package/dist/chunk-WK6LNC2E.cjs.map +1 -0
  45. package/dist/{chunk-M5IBD3KV.js → chunk-WO3KCAN6.js} +2 -2
  46. package/dist/{chunk-M5IBD3KV.js.map → chunk-WO3KCAN6.js.map} +1 -1
  47. package/dist/{chunk-7W456HZL.js → chunk-XJJJEWSU.js} +2 -2
  48. package/dist/{chunk-7W456HZL.js.map → chunk-XJJJEWSU.js.map} +1 -1
  49. package/dist/chunk-XLZJ6HBL.js +3 -0
  50. package/dist/chunk-XLZJ6HBL.js.map +1 -0
  51. package/dist/chunk-XRVHMGMD.js +3 -0
  52. package/dist/chunk-XRVHMGMD.js.map +1 -0
  53. package/dist/components/core/alert.d.cts +1 -1
  54. package/dist/components/core/alert.d.ts +1 -1
  55. package/dist/components/core/badge.d.cts +1 -1
  56. package/dist/components/core/badge.d.ts +1 -1
  57. package/dist/components/core/breadcrumb.cjs +1 -1
  58. package/dist/components/core/breadcrumb.d.cts +8 -2
  59. package/dist/components/core/breadcrumb.d.ts +8 -2
  60. package/dist/components/core/breadcrumb.js +1 -1
  61. package/dist/components/core/button.d.cts +2 -2
  62. package/dist/components/core/button.d.ts +2 -2
  63. package/dist/components/core/calendar.cjs +1 -1
  64. package/dist/components/core/calendar.js +1 -1
  65. package/dist/components/core/charts-lazy.cjs +1 -1
  66. package/dist/components/core/charts-lazy.js +1 -1
  67. package/dist/components/core/charts.cjs +1 -1
  68. package/dist/components/core/charts.js +1 -1
  69. package/dist/components/core/checkbox.cjs +1 -1
  70. package/dist/components/core/checkbox.d.cts +1 -1
  71. package/dist/components/core/checkbox.d.ts +1 -1
  72. package/dist/components/core/checkbox.js +1 -1
  73. package/dist/components/core/data-table.cjs +1 -1
  74. package/dist/components/core/data-table.js +1 -1
  75. package/dist/components/core/dialog.cjs +1 -1
  76. package/dist/components/core/dialog.d.cts +21 -3
  77. package/dist/components/core/dialog.d.ts +21 -3
  78. package/dist/components/core/dialog.js +1 -1
  79. package/dist/components/core/error-message.d.cts +1 -1
  80. package/dist/components/core/error-message.d.ts +1 -1
  81. package/dist/components/core/helper-text.d.cts +1 -1
  82. package/dist/components/core/helper-text.d.ts +1 -1
  83. package/dist/components/core/icon.cjs +1 -1
  84. package/dist/components/core/icon.d.cts +3 -3
  85. package/dist/components/core/icon.d.ts +3 -3
  86. package/dist/components/core/icon.js +1 -1
  87. package/dist/components/core/input.d.cts +1 -1
  88. package/dist/components/core/input.d.ts +1 -1
  89. package/dist/components/core/label.d.cts +1 -1
  90. package/dist/components/core/label.d.ts +1 -1
  91. package/dist/components/core/pagination.d.cts +1 -1
  92. package/dist/components/core/pagination.d.ts +1 -1
  93. package/dist/components/core/progress.d.cts +3 -3
  94. package/dist/components/core/progress.d.ts +3 -3
  95. package/dist/components/core/radio-group.d.cts +1 -1
  96. package/dist/components/core/radio-group.d.ts +1 -1
  97. package/dist/components/core/select.d.cts +3 -3
  98. package/dist/components/core/select.d.ts +3 -3
  99. package/dist/components/core/separator.cjs +1 -1
  100. package/dist/components/core/separator.js +1 -1
  101. package/dist/components/core/skeleton.cjs +1 -1
  102. package/dist/components/core/skeleton.d.cts +1 -1
  103. package/dist/components/core/skeleton.d.ts +1 -1
  104. package/dist/components/core/skeleton.js +1 -1
  105. package/dist/components/core/switch.d.cts +1 -1
  106. package/dist/components/core/switch.d.ts +1 -1
  107. package/dist/components/core/table.cjs +1 -1
  108. package/dist/components/core/table.d.cts +11 -1
  109. package/dist/components/core/table.d.ts +11 -1
  110. package/dist/components/core/table.js +1 -1
  111. package/dist/components/core/textarea.d.cts +1 -1
  112. package/dist/components/core/textarea.d.ts +1 -1
  113. package/dist/components/core/toast.cjs +1 -1
  114. package/dist/components/core/toast.d.cts +2 -2
  115. package/dist/components/core/toast.d.ts +2 -2
  116. package/dist/components/core/toast.js +1 -1
  117. package/dist/components/core/tooltip.cjs +1 -1
  118. package/dist/components/core/tooltip.d.cts +2 -2
  119. package/dist/components/core/tooltip.d.ts +2 -2
  120. package/dist/components/core/tooltip.js +1 -1
  121. package/dist/components/marketing/features.d.cts +2 -2
  122. package/dist/components/marketing/features.d.ts +2 -2
  123. package/dist/components/marketing/gallery.d.cts +1 -1
  124. package/dist/components/marketing/gallery.d.ts +1 -1
  125. package/dist/components/marketing/pricing.d.cts +1 -1
  126. package/dist/components/marketing/pricing.d.ts +1 -1
  127. package/dist/components/marketing/testimonials.d.cts +1 -1
  128. package/dist/components/marketing/testimonials.d.ts +1 -1
  129. package/dist/index.cjs +1 -1
  130. package/dist/index.cjs.map +1 -1
  131. package/dist/index.d.cts +3 -3
  132. package/dist/index.d.ts +3 -3
  133. package/dist/index.js +1 -1
  134. package/dist/index.js.map +1 -1
  135. package/package.json +2 -2
  136. package/dist/chunk-4PN7OGLX.cjs +0 -3
  137. package/dist/chunk-4PN7OGLX.cjs.map +0 -1
  138. package/dist/chunk-4TYVEXRA.cjs +0 -3
  139. package/dist/chunk-4TYVEXRA.cjs.map +0 -1
  140. package/dist/chunk-B2BWBKZA.cjs +0 -3
  141. package/dist/chunk-B2BWBKZA.cjs.map +0 -1
  142. package/dist/chunk-CVOSWGQZ.js +0 -3
  143. package/dist/chunk-CVOSWGQZ.js.map +0 -1
  144. package/dist/chunk-EGQ2Q37R.cjs +0 -3
  145. package/dist/chunk-EGQ2Q37R.cjs.map +0 -1
  146. package/dist/chunk-EIXD3Y4R.js +0 -3
  147. package/dist/chunk-EIXD3Y4R.js.map +0 -1
  148. package/dist/chunk-G5ZSOVJY.cjs +0 -3
  149. package/dist/chunk-G5ZSOVJY.cjs.map +0 -1
  150. package/dist/chunk-G6TR5RGR.js +0 -3
  151. package/dist/chunk-G6TR5RGR.js.map +0 -1
  152. package/dist/chunk-GUJB555L.js +0 -3
  153. package/dist/chunk-GUJB555L.js.map +0 -1
  154. package/dist/chunk-JZROH43C.js +0 -3
  155. package/dist/chunk-JZROH43C.js.map +0 -1
  156. package/dist/chunk-MRZOLUSF.js +0 -3
  157. package/dist/chunk-MRZOLUSF.js.map +0 -1
  158. package/dist/chunk-OZ3RIKZO.cjs +0 -3
  159. package/dist/chunk-OZ3RIKZO.cjs.map +0 -1
  160. package/dist/chunk-PEYPRWZP.js +0 -3
  161. package/dist/chunk-PEYPRWZP.js.map +0 -1
  162. package/dist/chunk-PVHTEE5T.cjs +0 -3
  163. package/dist/chunk-PVHTEE5T.cjs.map +0 -1
  164. package/dist/chunk-QF5CRDZI.js +0 -3
  165. package/dist/chunk-QF5CRDZI.js.map +0 -1
  166. package/dist/chunk-RPRISB7O.cjs +0 -3
  167. package/dist/chunk-RPRISB7O.cjs.map +0 -1
  168. package/dist/chunk-SD4IIQ2I.cjs +0 -3
  169. package/dist/chunk-SD4IIQ2I.cjs.map +0 -1
  170. package/dist/chunk-TJFZAMBB.js +0 -3
  171. package/dist/chunk-TJFZAMBB.js.map +0 -1
  172. package/dist/chunk-VXMDVKAD.js +0 -3
  173. package/dist/chunk-VXMDVKAD.js.map +0 -1
  174. package/dist/chunk-ZYP2PDSX.cjs +0 -3
  175. package/dist/chunk-ZYP2PDSX.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/themes/utils.ts","../src/themes/index.ts"],"names":["themes","applyTheme","theme","getCurrentTheme","toggleDarkMode","newScheme","setDarkMode","isDark","getColorScheme","prefersDarkMode","onSystemColorSchemeChange","callback","mediaQuery","handler","e","initializeTheme","defaultTheme","themeInfo"],"mappings":"qgEAIO,IAAMA,EAAAA,CAAoC,CAC/C,QAAA,CAAU,UAAA,CACV,MAAA,CAAQ,SACR,QAAA,CAAU,QAAA,CACV,MAAA,CAAQ,QACV,EAKO,SAASC,GAAWC,CAAAA,CAAwB,CAC7C,OAAO,QAAA,CAAa,GAAA,EACtB,QAAA,CAAS,eAAA,CAAgB,YAAA,CAAa,YAAA,CAAcA,CAAK,EAE7D,CAKO,SAASC,EAAAA,EAAoC,CAClD,OAAI,OAAO,QAAA,CAAa,GAAA,CAAoB,IAAA,CAE9B,QAAA,CAAS,eAAA,CAAgB,YAAA,CAAa,YAAY,CAElE,CAKO,SAASC,EAAAA,EAAuB,CACrC,GAAI,OAAO,QAAA,CAAa,GAAA,CAAa,OAGrC,IAAMC,CAAAA,CADgB,QAAA,CAAS,eAAA,CAAgB,YAAA,CAAa,mBAAmB,CAAA,GAC3C,MAAA,CAAS,OAAA,CAAU,MAAA,CACvD,SAAS,eAAA,CAAgB,YAAA,CAAa,mBAAA,CAAqBA,CAAS,EACtE,CAKO,SAASC,EAAAA,CAAYC,CAAAA,CAAuB,CAC7C,OAAO,QAAA,CAAa,GAAA,EAExB,QAAA,CAAS,gBAAgB,YAAA,CAAa,mBAAA,CAAqBA,CAAAA,CAAS,MAAA,CAAS,OAAO,EACtF,CAKO,SAASC,EAAAA,EAA0C,CACxD,OAAI,OAAO,QAAA,CAAa,GAAA,CAAoB,KAE7B,QAAA,CAAS,eAAA,CAAgB,YAAA,CAAa,mBAAmB,CAE1E,CAKO,SAASC,EAAAA,EAA2B,CACzC,OAAI,OAAO,MAAA,CAAW,GAAA,CAAoB,KAAA,CAEnC,OAAO,UAAA,CAAW,8BAA8B,CAAA,CAAE,OAC3D,CAKO,SAASC,EAAAA,CAA0BC,CAAAA,CAAiD,CACzF,GAAI,OAAO,MAAA,CAAW,GAAA,CAAa,OAAO,IAAM,CAAC,CAAA,CAEjD,IAAMC,CAAAA,CAAa,MAAA,CAAO,UAAA,CAAW,8BAA8B,CAAA,CAE7DC,CAAAA,CAAWC,CAAAA,EAA2B,CAC1CH,CAAAA,CAASG,CAAAA,CAAE,OAAO,EACpB,CAAA,CAEA,OAAAF,CAAAA,CAAW,gBAAA,CAAiB,QAAA,CAAUC,CAAO,CAAA,CAGtC,IAAM,CACXD,CAAAA,CAAW,mBAAA,CAAoB,QAAA,CAAUC,CAAO,EAClD,CACF,CAKO,SAASE,EAAAA,CAAgBC,CAAAA,CAA0B,UAAA,CAAkB,CACtE,OAAO,QAAA,CAAa,GAAA,GAGnBb,EAAAA,EAAgB,EACnBF,EAAAA,CAAWe,CAAY,CAAA,CAIpBR,IAAe,EAClBF,EAAAA,CAAYG,EAAAA,EAAiB,CAAA,EAEjC,CC9FO,IAAMQ,EAAAA,CAAY,CACvB,QAAA,CAAU,CACR,IAAA,CAAM,UAAA,CACN,WAAA,CAAa,gEACb,MAAA,CAAQ,CACN,OAAA,CAAS,aAAA,CACT,SAAA,CAAW,WAAA,CACX,MAAA,CAAQ,OACV,CACF,CAAA,CACA,MAAA,CAAQ,CACN,IAAA,CAAM,QAAA,CACN,YAAa,6DAAA,CACb,MAAA,CAAQ,CACN,OAAA,CAAS,gBAAA,CACT,SAAA,CAAW,gBAAA,CACX,MAAA,CAAQ,OACV,CACF,CAAA,CACA,QAAA,CAAU,CACR,IAAA,CAAM,SACN,WAAA,CAAa,sDAAA,CACb,MAAA,CAAQ,CACN,OAAA,CAAS,kBAAA,CACT,SAAA,CAAW,aAAA,CACX,MAAA,CAAQ,OACV,CACF,CAAA,CACA,MAAA,CAAQ,CACN,KAAM,QAAA,CACN,WAAA,CAAa,yDAAA,CACb,MAAA,CAAQ,CACN,OAAA,CAAS,oBAAA,CACT,SAAA,CAAW,aAAA,CACX,MAAA,CAAQ,OACV,CACF,CACF","file":"index.cjs","sourcesContent":["// Theme utilities and helpers\n\nexport type ThemeName = 'nostromo' | 'mother' | 'lv-426' | 'sulaco';\n\nexport const themes: Record<ThemeName, string> = {\n nostromo: 'nostromo',\n mother: 'mother',\n 'lv-426': 'lv-426',\n sulaco: 'sulaco',\n} as const;\n\n/**\n * Apply a theme to the document\n */\nexport function applyTheme(theme: ThemeName): void {\n if (typeof document !== 'undefined') {\n document.documentElement.setAttribute('data-theme', theme);\n }\n}\n\n/**\n * Get the current theme from the document\n */\nexport function getCurrentTheme(): ThemeName | null {\n if (typeof document === 'undefined') return null;\n \n const theme = document.documentElement.getAttribute('data-theme');\n return theme as ThemeName | null;\n}\n\n/**\n * Toggle between light and dark mode\n */\nexport function toggleDarkMode(): void {\n if (typeof document === 'undefined') return;\n \n const currentScheme = document.documentElement.getAttribute('data-color-scheme');\n const newScheme = currentScheme === 'dark' ? 'light' : 'dark';\n document.documentElement.setAttribute('data-color-scheme', newScheme);\n}\n\n/**\n * Set dark mode\n */\nexport function setDarkMode(isDark: boolean): void {\n if (typeof document === 'undefined') return;\n \n document.documentElement.setAttribute('data-color-scheme', isDark ? 'dark' : 'light');\n}\n\n/**\n * Get current color scheme\n */\nexport function getColorScheme(): 'light' | 'dark' | null {\n if (typeof document === 'undefined') return null;\n \n const scheme = document.documentElement.getAttribute('data-color-scheme');\n return scheme as 'light' | 'dark' | null;\n}\n\n/**\n * Check if system prefers dark mode\n */\nexport function prefersDarkMode(): boolean {\n if (typeof window === 'undefined') return false;\n \n return window.matchMedia('(prefers-color-scheme: dark)').matches;\n}\n\n/**\n * Listen for system color scheme changes\n */\nexport function onSystemColorSchemeChange(callback: (isDark: boolean) => void): () => void {\n if (typeof window === 'undefined') return () => {};\n \n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n \n const handler = (e: MediaQueryListEvent) => {\n callback(e.matches);\n };\n \n mediaQuery.addEventListener('change', handler);\n \n // Return cleanup function\n return () => {\n mediaQuery.removeEventListener('change', handler);\n };\n}\n\n/**\n * Initialize theme system\n */\nexport function initializeTheme(defaultTheme: ThemeName = 'nostromo'): void {\n if (typeof document === 'undefined') return;\n \n // Set default theme if none is set\n if (!getCurrentTheme()) {\n applyTheme(defaultTheme);\n }\n \n // Set initial color scheme based on system preference\n if (!getColorScheme()) {\n setDarkMode(prefersDarkMode());\n }\n}\n","// Theme exports\nexport * from './utils';\n\n// Theme CSS imports (for bundlers that support CSS imports)\nimport './nostromo.css';\nimport './mother.css';\nimport './lv-426.css';\nimport './sulaco.css';\n\n// Theme names and descriptions\nexport const themeInfo = {\n nostromo: {\n name: 'Nostromo',\n description: 'Classic space industrial theme inspired by the USCSS Nostromo',\n colors: {\n primary: 'Purple/Blue',\n secondary: 'Dark Gray',\n accent: 'Green'\n }\n },\n mother: {\n name: 'Mother',\n description: 'Cold, clinical AI aesthetic inspired by the ship\\'s computer',\n colors: {\n primary: 'Cold Blue/Cyan',\n secondary: 'Clinical White',\n accent: 'Green'\n }\n },\n 'lv-426': {\n name: 'LV-426',\n description: 'Warm, rusty atmosphere inspired by the planet LV-426',\n colors: {\n primary: 'Warm Orange/Rust',\n secondary: 'Earth Tones',\n accent: 'Green'\n }\n },\n sulaco: {\n name: 'Sulaco',\n description: 'Modern, military-inspired aesthetic from the USS Sulaco',\n colors: {\n primary: 'Military Blue/Gray',\n secondary: 'Steel Tones',\n accent: 'Green'\n }\n }\n} as const;\n\nexport type ThemeInfo = typeof themeInfo;\n"]}
1
+ {"version":3,"sources":["../src/themes/utils.ts","../src/themes/index.ts"],"names":["themes","applyTheme","theme","getCurrentTheme","toggleDarkMode","newScheme","setDarkMode","isDark","getColorScheme","prefersDarkMode","onSystemColorSchemeChange","callback","mediaQuery","handler","initializeTheme","defaultTheme","themeInfo"],"mappings":"qgEAIO,IAAMA,EAAAA,CAAoC,CAC/C,QAAA,CAAU,UAAA,CACV,MAAA,CAAQ,SACR,QAAA,CAAU,QAAA,CACV,MAAA,CAAQ,QACV,EAKO,SAASC,GAAWC,CAAAA,CAAwB,CAC7C,OAAO,QAAA,CAAa,GAAA,EACtB,QAAA,CAAS,eAAA,CAAgB,YAAA,CAAa,YAAA,CAAcA,CAAK,EAE7D,CAKO,SAASC,EAAAA,EAAoC,CAClD,OAAI,OAAO,QAAA,CAAa,GAAA,CAAoB,IAAA,CAE9B,QAAA,CAAS,eAAA,CAAgB,YAAA,CAAa,YAAY,CAElE,CAKO,SAASC,EAAAA,EAAuB,CACrC,GAAI,OAAO,QAAA,CAAa,GAAA,CAAa,OAGrC,IAAMC,CAAAA,CADgB,QAAA,CAAS,eAAA,CAAgB,YAAA,CAAa,mBAAmB,CAAA,GAC3C,MAAA,CAAS,OAAA,CAAU,MAAA,CACvD,SAAS,eAAA,CAAgB,YAAA,CAAa,mBAAA,CAAqBA,CAAS,EACtE,CAKO,SAASC,EAAAA,CAAYC,CAAAA,CAAuB,CAC7C,OAAO,QAAA,CAAa,GAAA,EAExB,QAAA,CAAS,gBAAgB,YAAA,CAAa,mBAAA,CAAqBA,CAAAA,CAAS,MAAA,CAAS,OAAO,EACtF,CAKO,SAASC,EAAAA,EAA0C,CACxD,OAAI,OAAO,QAAA,CAAa,GAAA,CAAoB,KAE7B,QAAA,CAAS,eAAA,CAAgB,YAAA,CAAa,mBAAmB,CAE1E,CAKO,SAASC,EAAAA,EAA2B,CACzC,OAAI,OAAO,MAAA,CAAW,GAAA,CAAoB,KAAA,CAEnC,OAAO,UAAA,CAAW,8BAA8B,CAAA,CAAE,OAC3D,CAKO,SAASC,EAAAA,CAA0BC,CAAAA,CAAiD,CACzF,GAAI,OAAO,MAAA,CAAW,GAAA,CAAa,OAAO,IAAM,CAAC,CAAA,CAEjD,IAAMC,CAAAA,CAAa,MAAA,CAAO,UAAA,CAAW,8BAA8B,CAAA,CAE7DC,CAAAA,CAAW,CAAA,EAA2B,CAC1CF,CAAAA,CAAS,CAAA,CAAE,OAAO,EACpB,CAAA,CAEA,OAAAC,CAAAA,CAAW,gBAAA,CAAiB,QAAA,CAAUC,CAAO,CAAA,CAGtC,IAAM,CACXD,CAAAA,CAAW,mBAAA,CAAoB,QAAA,CAAUC,CAAO,EAClD,CACF,CAKO,SAASC,EAAAA,CAAgBC,CAAAA,CAA0B,UAAA,CAAkB,CACtE,OAAO,QAAA,CAAa,GAAA,GAGnBZ,EAAAA,EAAgB,EACnBF,EAAAA,CAAWc,CAAY,CAAA,CAIpBP,IAAe,EAClBF,EAAAA,CAAYG,EAAAA,EAAiB,CAAA,EAEjC,CC9FO,IAAMO,EAAAA,CAAY,CACvB,QAAA,CAAU,CACR,IAAA,CAAM,UAAA,CACN,WAAA,CAAa,gEACb,MAAA,CAAQ,CACN,OAAA,CAAS,aAAA,CACT,SAAA,CAAW,WAAA,CACX,MAAA,CAAQ,OACV,CACF,CAAA,CACA,MAAA,CAAQ,CACN,IAAA,CAAM,QAAA,CACN,YAAa,6DAAA,CACb,MAAA,CAAQ,CACN,OAAA,CAAS,gBAAA,CACT,SAAA,CAAW,gBAAA,CACX,MAAA,CAAQ,OACV,CACF,CAAA,CACA,QAAA,CAAU,CACR,IAAA,CAAM,SACN,WAAA,CAAa,sDAAA,CACb,MAAA,CAAQ,CACN,OAAA,CAAS,kBAAA,CACT,SAAA,CAAW,aAAA,CACX,MAAA,CAAQ,OACV,CACF,CAAA,CACA,MAAA,CAAQ,CACN,KAAM,QAAA,CACN,WAAA,CAAa,yDAAA,CACb,MAAA,CAAQ,CACN,OAAA,CAAS,oBAAA,CACT,SAAA,CAAW,aAAA,CACX,MAAA,CAAQ,OACV,CACF,CACF","file":"index.cjs","sourcesContent":["// Theme utilities and helpers\n\nexport type ThemeName = 'nostromo' | 'mother' | 'lv-426' | 'sulaco';\n\nexport const themes: Record<ThemeName, string> = {\n nostromo: 'nostromo',\n mother: 'mother',\n 'lv-426': 'lv-426',\n sulaco: 'sulaco',\n} as const;\n\n/**\n * Apply a theme to the document\n */\nexport function applyTheme(theme: ThemeName): void {\n if (typeof document !== 'undefined') {\n document.documentElement.setAttribute('data-theme', theme);\n }\n}\n\n/**\n * Get the current theme from the document\n */\nexport function getCurrentTheme(): ThemeName | null {\n if (typeof document === 'undefined') return null;\n \n const theme = document.documentElement.getAttribute('data-theme');\n return theme as ThemeName | null;\n}\n\n/**\n * Toggle between light and dark mode\n */\nexport function toggleDarkMode(): void {\n if (typeof document === 'undefined') return;\n \n const currentScheme = document.documentElement.getAttribute('data-color-scheme');\n const newScheme = currentScheme === 'dark' ? 'light' : 'dark';\n document.documentElement.setAttribute('data-color-scheme', newScheme);\n}\n\n/**\n * Set dark mode\n */\nexport function setDarkMode(isDark: boolean): void {\n if (typeof document === 'undefined') return;\n \n document.documentElement.setAttribute('data-color-scheme', isDark ? 'dark' : 'light');\n}\n\n/**\n * Get current color scheme\n */\nexport function getColorScheme(): 'light' | 'dark' | null {\n if (typeof document === 'undefined') return null;\n \n const scheme = document.documentElement.getAttribute('data-color-scheme');\n return scheme as 'light' | 'dark' | null;\n}\n\n/**\n * Check if system prefers dark mode\n */\nexport function prefersDarkMode(): boolean {\n if (typeof window === 'undefined') return false;\n \n return window.matchMedia('(prefers-color-scheme: dark)').matches;\n}\n\n/**\n * Listen for system color scheme changes\n */\nexport function onSystemColorSchemeChange(callback: (isDark: boolean) => void): () => void {\n if (typeof window === 'undefined') return () => {};\n \n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n \n const handler = (e: MediaQueryListEvent) => {\n callback(e.matches);\n };\n \n mediaQuery.addEventListener('change', handler);\n \n // Return cleanup function\n return () => {\n mediaQuery.removeEventListener('change', handler);\n };\n}\n\n/**\n * Initialize theme system\n */\nexport function initializeTheme(defaultTheme: ThemeName = 'nostromo'): void {\n if (typeof document === 'undefined') return;\n \n // Set default theme if none is set\n if (!getCurrentTheme()) {\n applyTheme(defaultTheme);\n }\n \n // Set initial color scheme based on system preference\n if (!getColorScheme()) {\n setDarkMode(prefersDarkMode());\n }\n}\n","// Theme exports\nexport * from './utils';\n\n// Theme CSS imports (for bundlers that support CSS imports)\nimport './nostromo.css';\nimport './mother.css';\nimport './lv-426.css';\nimport './sulaco.css';\n\n// Theme names and descriptions\nexport const themeInfo = {\n nostromo: {\n name: 'Nostromo',\n description: 'Classic space industrial theme inspired by the USCSS Nostromo',\n colors: {\n primary: 'Purple/Blue',\n secondary: 'Dark Gray',\n accent: 'Green'\n }\n },\n mother: {\n name: 'Mother',\n description: 'Cold, clinical AI aesthetic inspired by the ship\\'s computer',\n colors: {\n primary: 'Cold Blue/Cyan',\n secondary: 'Clinical White',\n accent: 'Green'\n }\n },\n 'lv-426': {\n name: 'LV-426',\n description: 'Warm, rusty atmosphere inspired by the planet LV-426',\n colors: {\n primary: 'Warm Orange/Rust',\n secondary: 'Earth Tones',\n accent: 'Green'\n }\n },\n sulaco: {\n name: 'Sulaco',\n description: 'Modern, military-inspired aesthetic from the USS Sulaco',\n colors: {\n primary: 'Military Blue/Gray',\n secondary: 'Steel Tones',\n accent: 'Green'\n }\n }\n} as const;\n\nexport type ThemeInfo = typeof themeInfo;\n"]}
package/dist/index.d.cts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { Button, ButtonProps, buttonVariants } from './components/core/button.cjs';
2
2
  export { Input, InputProps } from './components/core/input.cjs';
3
3
  export { Checkbox, CheckboxProps, checkboxVariants } from './components/core/checkbox.cjs';
4
- export { RadioGroup, RadioGroupProps, RadioItem, RadioItemProps, radioGroupVariants, radioItemVariants } from './components/core/radio-group.cjs';
4
+ export { RadioGroup, RadioItem as RadioGroupItem, RadioGroupProps, RadioItem, RadioItemProps, radioGroupVariants, radioItemVariants } from './components/core/radio-group.cjs';
5
5
  export { Switch, SwitchProps, switchThumbVariants, switchVariants } from './components/core/switch.cjs';
6
6
  export { Textarea, TextareaProps, textareaVariants } from './components/core/textarea.cjs';
7
7
  export { Alert, AlertDescription, AlertProps, AlertTitle, alertCloseVariants, alertDescriptionVariants, alertTitleVariants, alertVariants } from './components/core/alert.cjs';
@@ -11,7 +11,7 @@ export { Separator, SeparatorProps, separatorVariants } from './components/core/
11
11
  export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './components/core/card.cjs';
12
12
  export { Badge, BadgeProps, badgeVariants } from './components/core/badge.cjs';
13
13
  export { Avatar, AvatarFallback, AvatarImage, AvatarProps, avatarVariants } from './components/core/avatar.cjs';
14
- export { Dialog, DialogContent, DialogContentProps, DialogDescription, DialogDescriptionProps, DialogHeader, DialogHeaderProps, DialogProps, DialogTitle, DialogTitleProps } from './components/core/dialog.cjs';
14
+ export { Dialog, DialogContent, DialogContentProps, DialogDescription, DialogDescriptionProps, DialogHeader, DialogHeaderProps, DialogProps, DialogTitle, DialogTitleProps, DialogTrigger, DialogTriggerProps } from './components/core/dialog.cjs';
15
15
  export { ErrorMessage, ErrorMessageProps, errorMessageVariants } from './components/core/error-message.cjs';
16
16
  export { HelperText, HelperTextProps, helperTextVariants } from './components/core/helper-text.cjs';
17
17
  export { Label, LabelProps, labelVariants } from './components/core/label.cjs';
@@ -24,7 +24,7 @@ export { ColumnFilter, DataTable, DataTableProps, FilterType } from './component
24
24
  export { Calendar, CalendarMode, CalendarProps, calendarDayVariants, calendarVariants } from './components/core/calendar.cjs';
25
25
  export { Chart, ChartDataPoint, ChartProps, ChartType, chartContainerVariants } from './components/core/charts.cjs';
26
26
  export { LazyChart, LazyChartProps } from './components/core/charts-lazy.cjs';
27
- export { Toast, ToastContextType, ToastProps, ToastProvider, toastIconVariants, toastVariants, useToastNotification } from './components/core/toast.cjs';
27
+ export { Toast, ToastContextType, ToastProps, ToastProvider, toastIconVariants, toastVariants, useToast, useToastNotification } from './components/core/toast.cjs';
28
28
  export { Tooltip, TooltipContent, TooltipContentProps, TooltipProps, TooltipProvider, TooltipProviderProps, TooltipTrigger, TooltipTriggerProps, arrowVariants, tooltipVariants } from './components/core/tooltip.cjs';
29
29
  export { Accordion, AccordionContent, AccordionContentProps, AccordionItem, AccordionItemProps, AccordionProps, AccordionTrigger, AccordionTriggerProps, accordionChevronVariants, accordionContentVariants, accordionItemVariants, accordionTriggerVariants, accordionVariants } from './components/core/accordion.cjs';
30
30
  export { Skeleton, SkeletonAvatar, SkeletonAvatarProps, SkeletonButton, SkeletonButtonProps, SkeletonCard, SkeletonCardProps, SkeletonList, SkeletonProps, SkeletonTable, SkeletonText, SkeletonTextProps, skeletonVariants } from './components/core/skeleton.cjs';
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { Button, ButtonProps, buttonVariants } from './components/core/button.js';
2
2
  export { Input, InputProps } from './components/core/input.js';
3
3
  export { Checkbox, CheckboxProps, checkboxVariants } from './components/core/checkbox.js';
4
- export { RadioGroup, RadioGroupProps, RadioItem, RadioItemProps, radioGroupVariants, radioItemVariants } from './components/core/radio-group.js';
4
+ export { RadioGroup, RadioItem as RadioGroupItem, RadioGroupProps, RadioItem, RadioItemProps, radioGroupVariants, radioItemVariants } from './components/core/radio-group.js';
5
5
  export { Switch, SwitchProps, switchThumbVariants, switchVariants } from './components/core/switch.js';
6
6
  export { Textarea, TextareaProps, textareaVariants } from './components/core/textarea.js';
7
7
  export { Alert, AlertDescription, AlertProps, AlertTitle, alertCloseVariants, alertDescriptionVariants, alertTitleVariants, alertVariants } from './components/core/alert.js';
@@ -11,7 +11,7 @@ export { Separator, SeparatorProps, separatorVariants } from './components/core/
11
11
  export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './components/core/card.js';
12
12
  export { Badge, BadgeProps, badgeVariants } from './components/core/badge.js';
13
13
  export { Avatar, AvatarFallback, AvatarImage, AvatarProps, avatarVariants } from './components/core/avatar.js';
14
- export { Dialog, DialogContent, DialogContentProps, DialogDescription, DialogDescriptionProps, DialogHeader, DialogHeaderProps, DialogProps, DialogTitle, DialogTitleProps } from './components/core/dialog.js';
14
+ export { Dialog, DialogContent, DialogContentProps, DialogDescription, DialogDescriptionProps, DialogHeader, DialogHeaderProps, DialogProps, DialogTitle, DialogTitleProps, DialogTrigger, DialogTriggerProps } from './components/core/dialog.js';
15
15
  export { ErrorMessage, ErrorMessageProps, errorMessageVariants } from './components/core/error-message.js';
16
16
  export { HelperText, HelperTextProps, helperTextVariants } from './components/core/helper-text.js';
17
17
  export { Label, LabelProps, labelVariants } from './components/core/label.js';
@@ -24,7 +24,7 @@ export { ColumnFilter, DataTable, DataTableProps, FilterType } from './component
24
24
  export { Calendar, CalendarMode, CalendarProps, calendarDayVariants, calendarVariants } from './components/core/calendar.js';
25
25
  export { Chart, ChartDataPoint, ChartProps, ChartType, chartContainerVariants } from './components/core/charts.js';
26
26
  export { LazyChart, LazyChartProps } from './components/core/charts-lazy.js';
27
- export { Toast, ToastContextType, ToastProps, ToastProvider, toastIconVariants, toastVariants, useToastNotification } from './components/core/toast.js';
27
+ export { Toast, ToastContextType, ToastProps, ToastProvider, toastIconVariants, toastVariants, useToast, useToastNotification } from './components/core/toast.js';
28
28
  export { Tooltip, TooltipContent, TooltipContentProps, TooltipProps, TooltipProvider, TooltipProviderProps, TooltipTrigger, TooltipTriggerProps, arrowVariants, tooltipVariants } from './components/core/tooltip.js';
29
29
  export { Accordion, AccordionContent, AccordionContentProps, AccordionItem, AccordionItemProps, AccordionProps, AccordionTrigger, AccordionTriggerProps, accordionChevronVariants, accordionContentVariants, accordionItemVariants, accordionTriggerVariants, accordionVariants } from './components/core/accordion.js';
30
30
  export { Skeleton, SkeletonAvatar, SkeletonAvatarProps, SkeletonButton, SkeletonButtonProps, SkeletonCard, SkeletonCardProps, SkeletonList, SkeletonProps, SkeletonTable, SkeletonText, SkeletonTextProps, skeletonVariants } from './components/core/skeleton.js';
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- export{e as Toast,d as ToastProvider,b as toastIconVariants,a as toastVariants,f as useToastNotification}from'./chunk-M5IBD3KV.js';export{f as Tooltip,d as TooltipContent,e as TooltipProvider,c as TooltipTrigger,b as arrowVariants,a as tooltipVariants}from'./chunk-MRZOLUSF.js';export{a as Features}from'./chunk-CEMOHO3Z.js';export{a as Gallery}from'./chunk-2JQROMCM.js';export{a as Hero}from'./chunk-JEHIMQQZ.js';export{a as LogoWall}from'./chunk-RC2THAIA.js';export{a as Pricing}from'./chunk-44HISN45.js';export{a as Testimonials}from'./chunk-LR4VUFOQ.js';export{c as RadioGroup,d as RadioItem,a as radioGroupVariants,b as radioItemVariants}from'./chunk-WW2DDHCI.js';export{d as Select,h as SelectContent,e as SelectGroup,j as SelectItem,i as SelectLabel,k as SelectSeparator,g as SelectTrigger,f as SelectValue,b as selectContentVariants,c as selectItemVariants,a as selectTriggerVariants}from'./chunk-BZF3ZOAN.js';export{b as Separator,a as separatorVariants}from'./chunk-CVOSWGQZ.js';export{c as Switch,b as switchThumbVariants,a as switchVariants}from'./chunk-OUWOPYAX.js';export{d as Tabs,g as TabsContent,e as TabsList,f as TabsTrigger,c as tabsContentVariants,a as tabsListVariants,b as tabsTriggerVariants}from'./chunk-ZEJAFIOC.js';export{b as Textarea,a as textareaVariants}from'./chunk-2HYJSYQX.js';export{b as ErrorMessage,a as errorMessageVariants}from'./chunk-XQUZ7DUN.js';export{b as HelperText,a as helperTextVariants}from'./chunk-ABA7B5DE.js';export{a as Icon,b as iconNames}from'./chunk-TJFZAMBB.js';export{b as Label,a as labelVariants}from'./chunk-LYVCB45L.js';export{c as Pagination,d as PaginationContent,i as PaginationEllipsis,e as PaginationItem,f as PaginationLink,h as PaginationNext,g as PaginationPrevious,b as paginationItemVariants,a as paginationVariants}from'./chunk-Q6QMSAJR.js';export{e as CircularProgress,d as Progress,b as progressBarVariants,c as progressLabelVariants,a as progressVariants}from'./chunk-NLD4R74T.js';export{c as Calendar,b as calendarDayVariants,a as calendarVariants}from'./chunk-PEYPRWZP.js';export{b as Button,a as buttonVariants}from'./chunk-AVTJE2O2.js';export{g as Card,e as CardContent,d as CardDescription,f as CardFooter,b as CardHeader,c as CardTitle}from'./chunk-VD6S2PE4.js';export{a as LazyChart}from'./chunk-TGPWW7FC.js';export{b as Skeleton,d as SkeletonAvatar,e as SkeletonButton,f as SkeletonCard,h as SkeletonList,g as SkeletonTable,c as SkeletonText,a as skeletonVariants}from'./chunk-EIXD3Y4R.js';export{b as Chart,a as chartContainerVariants}from'./chunk-JZROH43C.js';export{b as Checkbox,a as checkboxVariants}from'./chunk-G6TR5RGR.js';export{a as DataTable}from'./chunk-7W456HZL.js';export{d as Table,f as TableBody,h as TableCell,i as TableHead,e as TableHeader,g as TableRow,c as tableCellVariants,b as tableHeaderVariants,a as tableVariants}from'./chunk-GUJB555L.js';export{b as Input}from'./chunk-HD3TMQPR.js';export{c as Dialog,d as DialogContent,g as DialogDescription,e as DialogHeader,f as DialogTitle}from'./chunk-QF5CRDZI.js';export{a as LazyComponent,d as LazyInView,c as useLazyLoading,b as withLazyLoading}from'./chunk-QBAURT3I.js';export{a as ErrorBoundary,b as useErrorHandler}from'./chunk-MVCGR7JQ.js';export{d as performanceUtils,c as useMemoryMonitor,a as usePerformanceMonitor,b as withPerformanceMonitoring}from'./chunk-3BNGK67W.js';export{f as Accordion,i as AccordionContent,g as AccordionItem,h as AccordionTrigger,e as accordionChevronVariants,d as accordionContentVariants,b as accordionItemVariants,c as accordionTriggerVariants,a as accordionVariants}from'./chunk-6QAYHUNV.js';export{g as Alert,f as AlertDescription,e as AlertTitle,d as alertCloseVariants,c as alertDescriptionVariants,b as alertTitleVariants,a as alertVariants}from'./chunk-AHRTNKXE.js';export{d as Avatar,c as AvatarFallback,b as AvatarImage,a as avatarVariants}from'./chunk-YNSODGYK.js';export{b as Badge,a as badgeVariants}from'./chunk-UL6MF7ES.js';import'./chunk-COXN6XBA.js';export{d as Breadcrumb,j as BreadcrumbEllipsis,f as BreadcrumbItem,g as BreadcrumbLink,e as BreadcrumbList,h as BreadcrumbPage,i as BreadcrumbSeparator,b as breadcrumbItemVariants,c as breadcrumbSeparatorVariants,a as breadcrumbVariants}from'./chunk-VXMDVKAD.js';export{a as cn}from'./chunk-AC2JBXHQ.js';var $r={nostromo:"nostromo",mother:"mother","lv-426":"lv-426",sulaco:"sulaco"};function Wr(o){typeof document<"u"&&document.documentElement.setAttribute("data-theme",o);}function Or(){return typeof document>"u"?null:document.documentElement.getAttribute("data-theme")}function ot(){if(typeof document>"u")return;let r=document.documentElement.getAttribute("data-color-scheme")==="dark"?"light":"dark";document.documentElement.setAttribute("data-color-scheme",r);}function jr(o){typeof document>"u"||document.documentElement.setAttribute("data-color-scheme",o?"dark":"light");}function Yr(){return typeof document>"u"?null:document.documentElement.getAttribute("data-color-scheme")}function Zr(){return typeof window>"u"?false:window.matchMedia("(prefers-color-scheme: dark)").matches}function rt(o){if(typeof window>"u")return ()=>{};let r=window.matchMedia("(prefers-color-scheme: dark)"),t=n=>{o(n.matches);};return r.addEventListener("change",t),()=>{r.removeEventListener("change",t);}}function tt(o="nostromo"){typeof document>"u"||(Or()||Wr(o),Yr()||jr(Zr()));}var xt={nostromo:{name:"Nostromo",description:"Classic space industrial theme inspired by the USCSS Nostromo",colors:{primary:"Purple/Blue",secondary:"Dark Gray",accent:"Green"}},mother:{name:"Mother",description:"Cold, clinical AI aesthetic inspired by the ship's computer",colors:{primary:"Cold Blue/Cyan",secondary:"Clinical White",accent:"Green"}},"lv-426":{name:"LV-426",description:"Warm, rusty atmosphere inspired by the planet LV-426",colors:{primary:"Warm Orange/Rust",secondary:"Earth Tones",accent:"Green"}},sulaco:{name:"Sulaco",description:"Modern, military-inspired aesthetic from the USS Sulaco",colors:{primary:"Military Blue/Gray",secondary:"Steel Tones",accent:"Green"}}};export{Wr as applyTheme,Yr as getColorScheme,Or as getCurrentTheme,tt as initializeTheme,rt as onSystemColorSchemeChange,Zr as prefersDarkMode,jr as setDarkMode,xt as themeInfo,$r as themes,ot as toggleDarkMode};//# sourceMappingURL=index.js.map
2
+ export{e as Toast,d as ToastProvider,b as toastIconVariants,a as toastVariants,c as useToast,f as useToastNotification}from'./chunk-WO3KCAN6.js';export{f as Tooltip,d as TooltipContent,e as TooltipProvider,c as TooltipTrigger,b as arrowVariants,a as tooltipVariants}from'./chunk-MOPCE5RA.js';export{a as Features}from'./chunk-CEMOHO3Z.js';export{a as Gallery}from'./chunk-2JQROMCM.js';export{a as Hero}from'./chunk-JEHIMQQZ.js';export{a as LogoWall}from'./chunk-RC2THAIA.js';export{a as Pricing}from'./chunk-44HISN45.js';export{a as Testimonials}from'./chunk-LR4VUFOQ.js';export{c as RadioGroup,d as RadioGroupItem,d as RadioItem,a as radioGroupVariants,b as radioItemVariants}from'./chunk-WW2DDHCI.js';export{d as Select,h as SelectContent,e as SelectGroup,j as SelectItem,i as SelectLabel,k as SelectSeparator,g as SelectTrigger,f as SelectValue,b as selectContentVariants,c as selectItemVariants,a as selectTriggerVariants}from'./chunk-BZF3ZOAN.js';export{b as Separator,a as separatorVariants}from'./chunk-XRVHMGMD.js';export{c as Switch,b as switchThumbVariants,a as switchVariants}from'./chunk-OUWOPYAX.js';export{d as Tabs,g as TabsContent,e as TabsList,f as TabsTrigger,c as tabsContentVariants,a as tabsListVariants,b as tabsTriggerVariants}from'./chunk-ZEJAFIOC.js';export{b as Textarea,a as textareaVariants}from'./chunk-2HYJSYQX.js';export{b as ErrorMessage,a as errorMessageVariants}from'./chunk-XQUZ7DUN.js';export{b as HelperText,a as helperTextVariants}from'./chunk-ABA7B5DE.js';export{a as Icon,b as iconNames}from'./chunk-BL2TM4YT.js';export{b as Label,a as labelVariants}from'./chunk-LYVCB45L.js';export{c as Pagination,d as PaginationContent,i as PaginationEllipsis,e as PaginationItem,f as PaginationLink,h as PaginationNext,g as PaginationPrevious,b as paginationItemVariants,a as paginationVariants}from'./chunk-Q6QMSAJR.js';export{e as CircularProgress,d as Progress,b as progressBarVariants,c as progressLabelVariants,a as progressVariants}from'./chunk-NLD4R74T.js';export{c as Calendar,b as calendarDayVariants,a as calendarVariants}from'./chunk-35I2BJC3.js';export{b as Button,a as buttonVariants}from'./chunk-AVTJE2O2.js';export{g as Card,e as CardContent,d as CardDescription,f as CardFooter,b as CardHeader,c as CardTitle}from'./chunk-VD6S2PE4.js';export{a as LazyChart}from'./chunk-HRJXPCGF.js';export{b as Skeleton,d as SkeletonAvatar,e as SkeletonButton,f as SkeletonCard,h as SkeletonList,g as SkeletonTable,c as SkeletonText,a as skeletonVariants}from'./chunk-QKM5LPRW.js';export{b as Chart,a as chartContainerVariants}from'./chunk-XLZJ6HBL.js';export{b as Checkbox,a as checkboxVariants}from'./chunk-DNTPD3PJ.js';export{a as DataTable}from'./chunk-XJJJEWSU.js';export{d as Table,f as TableBody,h as TableCell,i as TableHead,e as TableHeader,g as TableRow,c as tableCellVariants,b as tableHeaderVariants,a as tableVariants}from'./chunk-UIEGBT4T.js';export{b as Input}from'./chunk-HD3TMQPR.js';export{c as Dialog,e as DialogContent,h as DialogDescription,f as DialogHeader,g as DialogTitle,d as DialogTrigger}from'./chunk-MY2KMTUS.js';export{a as LazyComponent,d as LazyInView,c as useLazyLoading,b as withLazyLoading}from'./chunk-QBAURT3I.js';export{a as ErrorBoundary,b as useErrorHandler}from'./chunk-MVCGR7JQ.js';export{d as performanceUtils,c as useMemoryMonitor,a as usePerformanceMonitor,b as withPerformanceMonitoring}from'./chunk-3BNGK67W.js';export{f as Accordion,i as AccordionContent,g as AccordionItem,h as AccordionTrigger,e as accordionChevronVariants,d as accordionContentVariants,b as accordionItemVariants,c as accordionTriggerVariants,a as accordionVariants}from'./chunk-6QAYHUNV.js';export{g as Alert,f as AlertDescription,e as AlertTitle,d as alertCloseVariants,c as alertDescriptionVariants,b as alertTitleVariants,a as alertVariants}from'./chunk-AHRTNKXE.js';export{d as Avatar,c as AvatarFallback,b as AvatarImage,a as avatarVariants}from'./chunk-YNSODGYK.js';export{b as Badge,a as badgeVariants}from'./chunk-UL6MF7ES.js';import'./chunk-COXN6XBA.js';export{d as Breadcrumb,j as BreadcrumbEllipsis,f as BreadcrumbItem,g as BreadcrumbLink,e as BreadcrumbList,h as BreadcrumbPage,i as BreadcrumbSeparator,b as breadcrumbItemVariants,c as breadcrumbSeparatorVariants,a as breadcrumbVariants}from'./chunk-SVWQWRPZ.js';export{a as cn}from'./chunk-AC2JBXHQ.js';var rt={nostromo:"nostromo",mother:"mother","lv-426":"lv-426",sulaco:"sulaco"};function jr(o){typeof document<"u"&&document.documentElement.setAttribute("data-theme",o);}function Yr(){return typeof document>"u"?null:document.documentElement.getAttribute("data-theme")}function tt(){if(typeof document>"u")return;let r=document.documentElement.getAttribute("data-color-scheme")==="dark"?"light":"dark";document.documentElement.setAttribute("data-color-scheme",r);}function Zr(o){typeof document>"u"||document.documentElement.setAttribute("data-color-scheme",o?"dark":"light");}function Qr(){return typeof document>"u"?null:document.documentElement.getAttribute("data-color-scheme")}function Jr(){return typeof window>"u"?false:window.matchMedia("(prefers-color-scheme: dark)").matches}function nt(o){if(typeof window>"u")return ()=>{};let r=window.matchMedia("(prefers-color-scheme: dark)"),t=e=>{o(e.matches);};return r.addEventListener("change",t),()=>{r.removeEventListener("change",t);}}function et(o="nostromo"){typeof document>"u"||(Yr()||jr(o),Qr()||Zr(Jr()));}var bt={nostromo:{name:"Nostromo",description:"Classic space industrial theme inspired by the USCSS Nostromo",colors:{primary:"Purple/Blue",secondary:"Dark Gray",accent:"Green"}},mother:{name:"Mother",description:"Cold, clinical AI aesthetic inspired by the ship's computer",colors:{primary:"Cold Blue/Cyan",secondary:"Clinical White",accent:"Green"}},"lv-426":{name:"LV-426",description:"Warm, rusty atmosphere inspired by the planet LV-426",colors:{primary:"Warm Orange/Rust",secondary:"Earth Tones",accent:"Green"}},sulaco:{name:"Sulaco",description:"Modern, military-inspired aesthetic from the USS Sulaco",colors:{primary:"Military Blue/Gray",secondary:"Steel Tones",accent:"Green"}}};export{jr as applyTheme,Qr as getColorScheme,Yr as getCurrentTheme,et as initializeTheme,nt as onSystemColorSchemeChange,Jr as prefersDarkMode,Zr as setDarkMode,bt as themeInfo,rt as themes,tt as toggleDarkMode};//# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/themes/utils.ts","../src/themes/index.ts"],"names":["themes","applyTheme","theme","getCurrentTheme","toggleDarkMode","newScheme","setDarkMode","isDark","getColorScheme","prefersDarkMode","onSystemColorSchemeChange","callback","mediaQuery","handler","e","initializeTheme","defaultTheme","themeInfo"],"mappings":"oqIAIO,IAAMA,EAAAA,CAAoC,CAC/C,QAAA,CAAU,UAAA,CACV,MAAA,CAAQ,SACR,QAAA,CAAU,QAAA,CACV,MAAA,CAAQ,QACV,EAKO,SAASC,GAAWC,CAAAA,CAAwB,CAC7C,OAAO,QAAA,CAAa,GAAA,EACtB,QAAA,CAAS,eAAA,CAAgB,YAAA,CAAa,YAAA,CAAcA,CAAK,EAE7D,CAKO,SAASC,EAAAA,EAAoC,CAClD,OAAI,OAAO,QAAA,CAAa,GAAA,CAAoB,IAAA,CAE9B,QAAA,CAAS,eAAA,CAAgB,YAAA,CAAa,YAAY,CAElE,CAKO,SAASC,EAAAA,EAAuB,CACrC,GAAI,OAAO,QAAA,CAAa,GAAA,CAAa,OAGrC,IAAMC,CAAAA,CADgB,QAAA,CAAS,eAAA,CAAgB,YAAA,CAAa,mBAAmB,CAAA,GAC3C,MAAA,CAAS,OAAA,CAAU,MAAA,CACvD,SAAS,eAAA,CAAgB,YAAA,CAAa,mBAAA,CAAqBA,CAAS,EACtE,CAKO,SAASC,EAAAA,CAAYC,CAAAA,CAAuB,CAC7C,OAAO,QAAA,CAAa,GAAA,EAExB,QAAA,CAAS,gBAAgB,YAAA,CAAa,mBAAA,CAAqBA,CAAAA,CAAS,MAAA,CAAS,OAAO,EACtF,CAKO,SAASC,EAAAA,EAA0C,CACxD,OAAI,OAAO,QAAA,CAAa,GAAA,CAAoB,KAE7B,QAAA,CAAS,eAAA,CAAgB,YAAA,CAAa,mBAAmB,CAE1E,CAKO,SAASC,EAAAA,EAA2B,CACzC,OAAI,OAAO,MAAA,CAAW,GAAA,CAAoB,KAAA,CAEnC,OAAO,UAAA,CAAW,8BAA8B,CAAA,CAAE,OAC3D,CAKO,SAASC,EAAAA,CAA0BC,CAAAA,CAAiD,CACzF,GAAI,OAAO,MAAA,CAAW,GAAA,CAAa,OAAO,IAAM,CAAC,CAAA,CAEjD,IAAMC,CAAAA,CAAa,MAAA,CAAO,UAAA,CAAW,8BAA8B,CAAA,CAE7DC,CAAAA,CAAWC,CAAAA,EAA2B,CAC1CH,CAAAA,CAASG,CAAAA,CAAE,OAAO,EACpB,CAAA,CAEA,OAAAF,CAAAA,CAAW,gBAAA,CAAiB,QAAA,CAAUC,CAAO,CAAA,CAGtC,IAAM,CACXD,CAAAA,CAAW,mBAAA,CAAoB,QAAA,CAAUC,CAAO,EAClD,CACF,CAKO,SAASE,EAAAA,CAAgBC,CAAAA,CAA0B,UAAA,CAAkB,CACtE,OAAO,QAAA,CAAa,GAAA,GAGnBb,EAAAA,EAAgB,EACnBF,EAAAA,CAAWe,CAAY,CAAA,CAIpBR,IAAe,EAClBF,EAAAA,CAAYG,EAAAA,EAAiB,CAAA,EAEjC,CC9FO,IAAMQ,EAAAA,CAAY,CACvB,QAAA,CAAU,CACR,IAAA,CAAM,UAAA,CACN,WAAA,CAAa,gEACb,MAAA,CAAQ,CACN,OAAA,CAAS,aAAA,CACT,SAAA,CAAW,WAAA,CACX,MAAA,CAAQ,OACV,CACF,CAAA,CACA,MAAA,CAAQ,CACN,IAAA,CAAM,QAAA,CACN,YAAa,6DAAA,CACb,MAAA,CAAQ,CACN,OAAA,CAAS,gBAAA,CACT,SAAA,CAAW,gBAAA,CACX,MAAA,CAAQ,OACV,CACF,CAAA,CACA,QAAA,CAAU,CACR,IAAA,CAAM,SACN,WAAA,CAAa,sDAAA,CACb,MAAA,CAAQ,CACN,OAAA,CAAS,kBAAA,CACT,SAAA,CAAW,aAAA,CACX,MAAA,CAAQ,OACV,CACF,CAAA,CACA,MAAA,CAAQ,CACN,KAAM,QAAA,CACN,WAAA,CAAa,yDAAA,CACb,MAAA,CAAQ,CACN,OAAA,CAAS,oBAAA,CACT,SAAA,CAAW,aAAA,CACX,MAAA,CAAQ,OACV,CACF,CACF","file":"index.js","sourcesContent":["// Theme utilities and helpers\n\nexport type ThemeName = 'nostromo' | 'mother' | 'lv-426' | 'sulaco';\n\nexport const themes: Record<ThemeName, string> = {\n nostromo: 'nostromo',\n mother: 'mother',\n 'lv-426': 'lv-426',\n sulaco: 'sulaco',\n} as const;\n\n/**\n * Apply a theme to the document\n */\nexport function applyTheme(theme: ThemeName): void {\n if (typeof document !== 'undefined') {\n document.documentElement.setAttribute('data-theme', theme);\n }\n}\n\n/**\n * Get the current theme from the document\n */\nexport function getCurrentTheme(): ThemeName | null {\n if (typeof document === 'undefined') return null;\n \n const theme = document.documentElement.getAttribute('data-theme');\n return theme as ThemeName | null;\n}\n\n/**\n * Toggle between light and dark mode\n */\nexport function toggleDarkMode(): void {\n if (typeof document === 'undefined') return;\n \n const currentScheme = document.documentElement.getAttribute('data-color-scheme');\n const newScheme = currentScheme === 'dark' ? 'light' : 'dark';\n document.documentElement.setAttribute('data-color-scheme', newScheme);\n}\n\n/**\n * Set dark mode\n */\nexport function setDarkMode(isDark: boolean): void {\n if (typeof document === 'undefined') return;\n \n document.documentElement.setAttribute('data-color-scheme', isDark ? 'dark' : 'light');\n}\n\n/**\n * Get current color scheme\n */\nexport function getColorScheme(): 'light' | 'dark' | null {\n if (typeof document === 'undefined') return null;\n \n const scheme = document.documentElement.getAttribute('data-color-scheme');\n return scheme as 'light' | 'dark' | null;\n}\n\n/**\n * Check if system prefers dark mode\n */\nexport function prefersDarkMode(): boolean {\n if (typeof window === 'undefined') return false;\n \n return window.matchMedia('(prefers-color-scheme: dark)').matches;\n}\n\n/**\n * Listen for system color scheme changes\n */\nexport function onSystemColorSchemeChange(callback: (isDark: boolean) => void): () => void {\n if (typeof window === 'undefined') return () => {};\n \n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n \n const handler = (e: MediaQueryListEvent) => {\n callback(e.matches);\n };\n \n mediaQuery.addEventListener('change', handler);\n \n // Return cleanup function\n return () => {\n mediaQuery.removeEventListener('change', handler);\n };\n}\n\n/**\n * Initialize theme system\n */\nexport function initializeTheme(defaultTheme: ThemeName = 'nostromo'): void {\n if (typeof document === 'undefined') return;\n \n // Set default theme if none is set\n if (!getCurrentTheme()) {\n applyTheme(defaultTheme);\n }\n \n // Set initial color scheme based on system preference\n if (!getColorScheme()) {\n setDarkMode(prefersDarkMode());\n }\n}\n","// Theme exports\nexport * from './utils';\n\n// Theme CSS imports (for bundlers that support CSS imports)\nimport './nostromo.css';\nimport './mother.css';\nimport './lv-426.css';\nimport './sulaco.css';\n\n// Theme names and descriptions\nexport const themeInfo = {\n nostromo: {\n name: 'Nostromo',\n description: 'Classic space industrial theme inspired by the USCSS Nostromo',\n colors: {\n primary: 'Purple/Blue',\n secondary: 'Dark Gray',\n accent: 'Green'\n }\n },\n mother: {\n name: 'Mother',\n description: 'Cold, clinical AI aesthetic inspired by the ship\\'s computer',\n colors: {\n primary: 'Cold Blue/Cyan',\n secondary: 'Clinical White',\n accent: 'Green'\n }\n },\n 'lv-426': {\n name: 'LV-426',\n description: 'Warm, rusty atmosphere inspired by the planet LV-426',\n colors: {\n primary: 'Warm Orange/Rust',\n secondary: 'Earth Tones',\n accent: 'Green'\n }\n },\n sulaco: {\n name: 'Sulaco',\n description: 'Modern, military-inspired aesthetic from the USS Sulaco',\n colors: {\n primary: 'Military Blue/Gray',\n secondary: 'Steel Tones',\n accent: 'Green'\n }\n }\n} as const;\n\nexport type ThemeInfo = typeof themeInfo;\n"]}
1
+ {"version":3,"sources":["../src/themes/utils.ts","../src/themes/index.ts"],"names":["themes","applyTheme","theme","getCurrentTheme","toggleDarkMode","newScheme","setDarkMode","isDark","getColorScheme","prefersDarkMode","onSystemColorSchemeChange","callback","mediaQuery","handler","initializeTheme","defaultTheme","themeInfo"],"mappings":"ytIAIO,IAAMA,EAAAA,CAAoC,CAC/C,QAAA,CAAU,UAAA,CACV,MAAA,CAAQ,SACR,QAAA,CAAU,QAAA,CACV,MAAA,CAAQ,QACV,EAKO,SAASC,GAAWC,CAAAA,CAAwB,CAC7C,OAAO,QAAA,CAAa,GAAA,EACtB,QAAA,CAAS,eAAA,CAAgB,YAAA,CAAa,YAAA,CAAcA,CAAK,EAE7D,CAKO,SAASC,EAAAA,EAAoC,CAClD,OAAI,OAAO,QAAA,CAAa,GAAA,CAAoB,IAAA,CAE9B,QAAA,CAAS,eAAA,CAAgB,YAAA,CAAa,YAAY,CAElE,CAKO,SAASC,EAAAA,EAAuB,CACrC,GAAI,OAAO,QAAA,CAAa,GAAA,CAAa,OAGrC,IAAMC,CAAAA,CADgB,QAAA,CAAS,eAAA,CAAgB,YAAA,CAAa,mBAAmB,CAAA,GAC3C,MAAA,CAAS,OAAA,CAAU,MAAA,CACvD,SAAS,eAAA,CAAgB,YAAA,CAAa,mBAAA,CAAqBA,CAAS,EACtE,CAKO,SAASC,EAAAA,CAAYC,CAAAA,CAAuB,CAC7C,OAAO,QAAA,CAAa,GAAA,EAExB,QAAA,CAAS,gBAAgB,YAAA,CAAa,mBAAA,CAAqBA,CAAAA,CAAS,MAAA,CAAS,OAAO,EACtF,CAKO,SAASC,EAAAA,EAA0C,CACxD,OAAI,OAAO,QAAA,CAAa,GAAA,CAAoB,KAE7B,QAAA,CAAS,eAAA,CAAgB,YAAA,CAAa,mBAAmB,CAE1E,CAKO,SAASC,EAAAA,EAA2B,CACzC,OAAI,OAAO,MAAA,CAAW,GAAA,CAAoB,KAAA,CAEnC,OAAO,UAAA,CAAW,8BAA8B,CAAA,CAAE,OAC3D,CAKO,SAASC,EAAAA,CAA0BC,CAAAA,CAAiD,CACzF,GAAI,OAAO,MAAA,CAAW,GAAA,CAAa,OAAO,IAAM,CAAC,CAAA,CAEjD,IAAMC,CAAAA,CAAa,MAAA,CAAO,UAAA,CAAW,8BAA8B,CAAA,CAE7DC,CAAAA,CAAW,CAAA,EAA2B,CAC1CF,CAAAA,CAAS,CAAA,CAAE,OAAO,EACpB,CAAA,CAEA,OAAAC,CAAAA,CAAW,gBAAA,CAAiB,QAAA,CAAUC,CAAO,CAAA,CAGtC,IAAM,CACXD,CAAAA,CAAW,mBAAA,CAAoB,QAAA,CAAUC,CAAO,EAClD,CACF,CAKO,SAASC,EAAAA,CAAgBC,CAAAA,CAA0B,UAAA,CAAkB,CACtE,OAAO,QAAA,CAAa,GAAA,GAGnBZ,EAAAA,EAAgB,EACnBF,EAAAA,CAAWc,CAAY,CAAA,CAIpBP,IAAe,EAClBF,EAAAA,CAAYG,EAAAA,EAAiB,CAAA,EAEjC,CC9FO,IAAMO,EAAAA,CAAY,CACvB,QAAA,CAAU,CACR,IAAA,CAAM,UAAA,CACN,WAAA,CAAa,gEACb,MAAA,CAAQ,CACN,OAAA,CAAS,aAAA,CACT,SAAA,CAAW,WAAA,CACX,MAAA,CAAQ,OACV,CACF,CAAA,CACA,MAAA,CAAQ,CACN,IAAA,CAAM,QAAA,CACN,YAAa,6DAAA,CACb,MAAA,CAAQ,CACN,OAAA,CAAS,gBAAA,CACT,SAAA,CAAW,gBAAA,CACX,MAAA,CAAQ,OACV,CACF,CAAA,CACA,QAAA,CAAU,CACR,IAAA,CAAM,SACN,WAAA,CAAa,sDAAA,CACb,MAAA,CAAQ,CACN,OAAA,CAAS,kBAAA,CACT,SAAA,CAAW,aAAA,CACX,MAAA,CAAQ,OACV,CACF,CAAA,CACA,MAAA,CAAQ,CACN,KAAM,QAAA,CACN,WAAA,CAAa,yDAAA,CACb,MAAA,CAAQ,CACN,OAAA,CAAS,oBAAA,CACT,SAAA,CAAW,aAAA,CACX,MAAA,CAAQ,OACV,CACF,CACF","file":"index.js","sourcesContent":["// Theme utilities and helpers\n\nexport type ThemeName = 'nostromo' | 'mother' | 'lv-426' | 'sulaco';\n\nexport const themes: Record<ThemeName, string> = {\n nostromo: 'nostromo',\n mother: 'mother',\n 'lv-426': 'lv-426',\n sulaco: 'sulaco',\n} as const;\n\n/**\n * Apply a theme to the document\n */\nexport function applyTheme(theme: ThemeName): void {\n if (typeof document !== 'undefined') {\n document.documentElement.setAttribute('data-theme', theme);\n }\n}\n\n/**\n * Get the current theme from the document\n */\nexport function getCurrentTheme(): ThemeName | null {\n if (typeof document === 'undefined') return null;\n \n const theme = document.documentElement.getAttribute('data-theme');\n return theme as ThemeName | null;\n}\n\n/**\n * Toggle between light and dark mode\n */\nexport function toggleDarkMode(): void {\n if (typeof document === 'undefined') return;\n \n const currentScheme = document.documentElement.getAttribute('data-color-scheme');\n const newScheme = currentScheme === 'dark' ? 'light' : 'dark';\n document.documentElement.setAttribute('data-color-scheme', newScheme);\n}\n\n/**\n * Set dark mode\n */\nexport function setDarkMode(isDark: boolean): void {\n if (typeof document === 'undefined') return;\n \n document.documentElement.setAttribute('data-color-scheme', isDark ? 'dark' : 'light');\n}\n\n/**\n * Get current color scheme\n */\nexport function getColorScheme(): 'light' | 'dark' | null {\n if (typeof document === 'undefined') return null;\n \n const scheme = document.documentElement.getAttribute('data-color-scheme');\n return scheme as 'light' | 'dark' | null;\n}\n\n/**\n * Check if system prefers dark mode\n */\nexport function prefersDarkMode(): boolean {\n if (typeof window === 'undefined') return false;\n \n return window.matchMedia('(prefers-color-scheme: dark)').matches;\n}\n\n/**\n * Listen for system color scheme changes\n */\nexport function onSystemColorSchemeChange(callback: (isDark: boolean) => void): () => void {\n if (typeof window === 'undefined') return () => {};\n \n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n \n const handler = (e: MediaQueryListEvent) => {\n callback(e.matches);\n };\n \n mediaQuery.addEventListener('change', handler);\n \n // Return cleanup function\n return () => {\n mediaQuery.removeEventListener('change', handler);\n };\n}\n\n/**\n * Initialize theme system\n */\nexport function initializeTheme(defaultTheme: ThemeName = 'nostromo'): void {\n if (typeof document === 'undefined') return;\n \n // Set default theme if none is set\n if (!getCurrentTheme()) {\n applyTheme(defaultTheme);\n }\n \n // Set initial color scheme based on system preference\n if (!getColorScheme()) {\n setDarkMode(prefersDarkMode());\n }\n}\n","// Theme exports\nexport * from './utils';\n\n// Theme CSS imports (for bundlers that support CSS imports)\nimport './nostromo.css';\nimport './mother.css';\nimport './lv-426.css';\nimport './sulaco.css';\n\n// Theme names and descriptions\nexport const themeInfo = {\n nostromo: {\n name: 'Nostromo',\n description: 'Classic space industrial theme inspired by the USCSS Nostromo',\n colors: {\n primary: 'Purple/Blue',\n secondary: 'Dark Gray',\n accent: 'Green'\n }\n },\n mother: {\n name: 'Mother',\n description: 'Cold, clinical AI aesthetic inspired by the ship\\'s computer',\n colors: {\n primary: 'Cold Blue/Cyan',\n secondary: 'Clinical White',\n accent: 'Green'\n }\n },\n 'lv-426': {\n name: 'LV-426',\n description: 'Warm, rusty atmosphere inspired by the planet LV-426',\n colors: {\n primary: 'Warm Orange/Rust',\n secondary: 'Earth Tones',\n accent: 'Green'\n }\n },\n sulaco: {\n name: 'Sulaco',\n description: 'Modern, military-inspired aesthetic from the USS Sulaco',\n colors: {\n primary: 'Military Blue/Gray',\n secondary: 'Steel Tones',\n accent: 'Green'\n }\n }\n} as const;\n\nexport type ThemeInfo = typeof themeInfo;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jarllyng/nostromo",
3
- "version": "3.2.0",
3
+ "version": "3.3.0",
4
4
  "description": "Accessible React component library with CSS-first Tailwind v4 theming",
5
5
  "keywords": [
6
6
  "react",
@@ -285,7 +285,7 @@
285
285
  "@testing-library/react": "^16.3.2",
286
286
  "@testing-library/user-event": "^14.6.1",
287
287
  "@types/jest-axe": "^3.5.9",
288
- "@types/node": "25.0.10",
288
+ "@types/node": "26.2.0",
289
289
  "@types/react": "19.2.18",
290
290
  "@types/react-dom": "19.2.4",
291
291
  "@typescript-eslint/eslint-plugin": "^8.65.0",
@@ -1,3 +0,0 @@
1
- "use client";
2
- 'use strict';var chunkITRGJNWL_cjs=require('./chunk-ITRGJNWL.cjs'),e=require('react'),classVarianceAuthority=require('class-variance-authority'),phosphorReact=require('phosphor-react');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var e__namespace=/*#__PURE__*/_interopNamespace(e);var v=classVarianceAuthority.cva("flex items-center space-x-1 text-sm text-muted-foreground",{variants:{variant:{default:"text-muted-foreground",compact:"text-xs"},separator:{default:"",slash:"",arrow:"",dot:""}},defaultVariants:{variant:"default",separator:"default"}}),H=classVarianceAuthority.cva("flex items-center",{variants:{variant:{default:"",current:"text-foreground font-medium",link:"hover:text-foreground transition-colors"}},defaultVariants:{variant:"default"}}),b=classVarianceAuthority.cva("flex-shrink-0 text-muted-foreground",{variants:{variant:{default:"mx-1",compact:"mx-0.5"}},defaultVariants:{variant:"default"}}),y=e__namespace.forwardRef(({className:a,variant:r,separator:t="default",items:c,showHome:u=false,homeHref:h="/",onItemClick:f,...x},g)=>{let p=()=>{switch(t){case "slash":return "/";case "arrow":return "\u2192";case "dot":return "\u2022";default:return e__namespace.createElement(phosphorReact.CaretRight,{className:"h-4 w-4"})}},N=(n,o)=>{f&&f(n,o);},L=(n,o,i)=>{let l=n.current||i,m=e__namespace.createElement("span",{className:chunkITRGJNWL_cjs.a(H({variant:l?"current":n.href?"link":"default"}))},n.label);return n.href&&!l?e__namespace.createElement("a",{href:n.href,className:"hover:text-foreground transition-colors",onClick:()=>N(n,o)},m):n.href&&l?e__namespace.createElement("a",{href:n.href,"aria-current":"page","aria-disabled":"true",tabIndex:-1,className:"hover:text-foreground transition-colors pointer-events-none"},m):e__namespace.createElement("span",{"aria-current":l?"page":void 0,className:l?"text-foreground font-medium":""},m)};return e__namespace.createElement("nav",{ref:g,"aria-label":"Breadcrumb",className:chunkITRGJNWL_cjs.a(v({variant:r,separator:t}),a),...x},e__namespace.createElement("ol",{className:"flex items-center space-x-1"},u&&e__namespace.createElement(e__namespace.Fragment,null,e__namespace.createElement("li",null,e__namespace.createElement("a",{href:h,className:"hover:text-foreground transition-colors","aria-label":"Home"},e__namespace.createElement(phosphorReact.House,{className:"h-4 w-4"}))),e__namespace.createElement("li",null,e__namespace.createElement("span",{role:"presentation","aria-hidden":"true",className:chunkITRGJNWL_cjs.a(b({variant:r}))},p()))),c.map((n,o)=>{let i=o===c.length-1;return e__namespace.createElement("li",{key:o,className:"flex items-center"},L(n,o,i),!i&&e__namespace.createElement("span",{role:"presentation","aria-hidden":"true",className:chunkITRGJNWL_cjs.a(b({variant:r}))},p()))})))});y.displayName="Breadcrumb";var E=e__namespace.forwardRef(({className:a,...r},t)=>e__namespace.createElement("ol",{ref:t,className:chunkITRGJNWL_cjs.a("flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5",a),...r}));E.displayName="BreadcrumbList";var M=e__namespace.forwardRef(({className:a,...r},t)=>e__namespace.createElement("li",{ref:t,className:chunkITRGJNWL_cjs.a("inline-flex items-center gap-1.5",a),...r}));M.displayName="BreadcrumbItem";var w=e__namespace.forwardRef(({asChild:a,className:r,...t},c)=>e__namespace.createElement(a?e__namespace.Fragment:"a",{ref:c,className:chunkITRGJNWL_cjs.a("transition-colors hover:text-foreground",r),...t}));w.displayName="BreadcrumbLink";var T=e__namespace.forwardRef(({className:a,...r},t)=>e__namespace.createElement("span",{ref:t,role:"link","aria-disabled":"true","aria-current":"page",className:chunkITRGJNWL_cjs.a("font-normal text-foreground",a),...r}));T.displayName="BreadcrumbPage";var k=({children:a,className:r,...t})=>e__namespace.createElement("li",{role:"presentation","aria-hidden":"true",className:chunkITRGJNWL_cjs.a("[&>svg]:size-3.5",r),...t},a);k.displayName="BreadcrumbSeparator";var C=({className:a,...r})=>e__namespace.createElement("span",{role:"presentation","aria-hidden":"true",className:chunkITRGJNWL_cjs.a("flex h-9 w-9 items-center justify-center",a),...r},e__namespace.createElement("span",{className:"sr-only"},"More"),e__namespace.createElement("span",null,"\u22EF"));C.displayName="BreadcrumbEllipsis";exports.a=v;exports.b=H;exports.c=b;exports.d=y;exports.e=E;exports.f=M;exports.g=w;exports.h=T;exports.i=k;exports.j=C;//# sourceMappingURL=chunk-4PN7OGLX.cjs.map
3
- //# sourceMappingURL=chunk-4PN7OGLX.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/core/breadcrumb.tsx"],"names":["breadcrumbVariants","cva","breadcrumbItemVariants","breadcrumbSeparatorVariants","Breadcrumb","e","className","variant","separator","items","showHome","homeHref","onItemClick","props","ref","getSeparator","CaretRight","handleItemClick","item","index","renderItem","isLast","isCurrent","itemContent","cn","House","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","asChild","BreadcrumbPage","BreadcrumbSeparator","children","BreadcrumbEllipsis"],"mappings":"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","file":"chunk-4PN7OGLX.cjs","sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\nimport { CaretRight, House } from \"phosphor-react\";\n\nconst breadcrumbVariants = cva(\n \"flex items-center space-x-1 text-sm text-muted-foreground\",\n {\n variants: {\n variant: {\n default: \"text-muted-foreground\",\n compact: \"text-xs\",\n },\n separator: {\n default: \"\",\n slash: \"\",\n arrow: \"\",\n dot: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n separator: \"default\",\n },\n }\n);\n\nconst breadcrumbItemVariants = cva(\n \"flex items-center\",\n {\n variants: {\n variant: {\n default: \"\",\n current: \"text-foreground font-medium\",\n link: \"hover:text-foreground transition-colors\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nconst breadcrumbSeparatorVariants = cva(\n \"flex-shrink-0 text-muted-foreground\",\n {\n variants: {\n variant: {\n default: \"mx-1\",\n compact: \"mx-0.5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport interface BreadcrumbEntry {\n label: string;\n href?: string;\n current?: boolean;\n}\n\nexport interface BreadcrumbProps\n extends React.HTMLAttributes<HTMLElement>,\n VariantProps<typeof breadcrumbVariants> {\n items: BreadcrumbEntry[];\n separator?: \"default\" | \"slash\" | \"arrow\" | \"dot\";\n showHome?: boolean;\n homeHref?: string;\n onItemClick?: (item: BreadcrumbEntry, index: number) => void;\n}\n\nconst Breadcrumb = React.forwardRef<HTMLElement, BreadcrumbProps>(\n (\n {\n className,\n variant,\n separator = \"default\",\n items,\n showHome = false,\n homeHref = \"/\",\n onItemClick,\n ...props\n },\n ref\n ) => {\n const getSeparator = () => {\n switch (separator) {\n case \"slash\":\n return \"/\";\n case \"arrow\":\n return \"→\";\n case \"dot\":\n return \"•\";\n default:\n return <CaretRight className=\"h-4 w-4\" />;\n }\n };\n\n const handleItemClick = (item: BreadcrumbEntry, index: number) => {\n if (onItemClick) {\n onItemClick(item, index);\n }\n };\n\n const renderItem = (item: BreadcrumbEntry, index: number, isLast: boolean) => {\n const isCurrent = item.current || isLast;\n const itemContent = (\n <span\n className={cn(\n breadcrumbItemVariants({\n variant: isCurrent ? \"current\" : item.href ? \"link\" : \"default\",\n })\n )}\n >\n {item.label}\n </span>\n );\n\n if (item.href && !isCurrent) {\n return (\n <a\n href={item.href}\n className=\"hover:text-foreground transition-colors\"\n onClick={() => handleItemClick(item, index)}\n >\n {itemContent}\n </a>\n );\n }\n\n if (item.href && isCurrent) {\n return (\n <a\n href={item.href}\n aria-current=\"page\"\n aria-disabled=\"true\"\n tabIndex={-1}\n className=\"hover:text-foreground transition-colors pointer-events-none\"\n >\n {itemContent}\n </a>\n );\n }\n\n return (\n <span\n aria-current={isCurrent ? \"page\" : undefined}\n className={isCurrent ? \"text-foreground font-medium\" : \"\"}\n >\n {itemContent}\n </span>\n );\n };\n\n return (\n <nav\n ref={ref}\n aria-label=\"Breadcrumb\"\n className={cn(breadcrumbVariants({ variant, separator }), className)}\n {...props}\n >\n <ol className=\"flex items-center space-x-1\">\n {showHome && (\n <>\n <li>\n <a\n href={homeHref}\n className=\"hover:text-foreground transition-colors\"\n aria-label=\"Home\"\n >\n <House className=\"h-4 w-4\" />\n </a>\n </li>\n <li>\n <span role=\"presentation\" aria-hidden=\"true\" className={cn(breadcrumbSeparatorVariants({ variant }))}>\n {getSeparator()}\n </span>\n </li>\n </>\n )}\n {items.map((item, index) => {\n const isLast = index === items.length - 1;\n return (\n <li key={index} className=\"flex items-center\">\n {renderItem(item, index, isLast)}\n {!isLast && (\n <span role=\"presentation\" aria-hidden=\"true\" className={cn(breadcrumbSeparatorVariants({ variant }))}>\n {getSeparator()}\n </span>\n )}\n </li>\n );\n })}\n </ol>\n </nav>\n );\n }\n);\nBreadcrumb.displayName = \"Breadcrumb\";\n\n// Individual components for more flexibility\nconst BreadcrumbList = React.forwardRef<\n HTMLOListElement,\n React.HTMLAttributes<HTMLOListElement>\n>(({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5\", className)}\n {...props}\n />\n));\nBreadcrumbList.displayName = \"BreadcrumbList\";\n\nconst BreadcrumbItem = React.forwardRef<\n HTMLLIElement,\n React.HTMLAttributes<HTMLLIElement>\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n));\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.AnchorHTMLAttributes<HTMLAnchorElement> & {\n asChild?: boolean;\n }\n>(({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? React.Fragment : \"a\";\n return (\n <Comp\n ref={ref}\n className={cn(\"transition-colors hover:text-foreground\", className)}\n {...props}\n />\n );\n});\nBreadcrumbLink.displayName = \"BreadcrumbLink\";\n\nconst BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes<HTMLSpanElement>\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"font-normal text-foreground\", className)}\n {...props}\n />\n));\nBreadcrumbPage.displayName = \"BreadcrumbPage\";\n\nconst BreadcrumbSeparator = ({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:size-3.5\", className)}\n {...props}\n >\n {children}\n </li>\n);\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\";\n\nconst BreadcrumbEllipsis = ({\n className,\n ...props\n}: React.ComponentProps<\"span\">) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\n {...props}\n >\n <span className=\"sr-only\">More</span>\n <span>⋯</span>\n </span>\n);\nBreadcrumbEllipsis.displayName = \"BreadcrumbEllipsis\";\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n breadcrumbVariants,\n breadcrumbItemVariants,\n breadcrumbSeparatorVariants,\n};\n"]}
@@ -1,3 +0,0 @@
1
- "use client";
2
- 'use strict';var chunkITRGJNWL_cjs=require('./chunk-ITRGJNWL.cjs'),r=require('react'),classVarianceAuthority=require('class-variance-authority'),phosphorReact=require('phosphor-react');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var r__default=/*#__PURE__*/_interopDefault(r);var n={house:phosphorReact.House,user:phosphorReact.User,settings:phosphorReact.Gear,search:phosphorReact.MagnifyingGlass,menu:phosphorReact.List,x:phosphorReact.X,"chevron-left":phosphorReact.CaretLeft,"chevron-right":phosphorReact.CaretRight,"chevron-up":phosphorReact.CaretUp,"chevron-down":phosphorReact.CaretDown,"arrow-left":phosphorReact.ArrowLeft,"arrow-right":phosphorReact.ArrowRight,"arrow-up":phosphorReact.ArrowUp,"arrow-down":phosphorReact.ArrowDown,plus:phosphorReact.Plus,minus:phosphorReact.Minus,check:phosphorReact.Check,"x-icon":phosphorReact.X,trash:phosphorReact.Trash,edit:phosphorReact.PencilSimple,copy:phosphorReact.Copy,download:phosphorReact.Download,upload:phosphorReact.Upload,share:phosphorReact.Share,heart:phosphorReact.Heart,star:phosphorReact.Star,bookmark:phosphorReact.Bookmark,mail:phosphorReact.Envelope,phone:phosphorReact.Phone,"message-circle":phosphorReact.ChatCircle,bell:phosphorReact.Bell,"bell-slash":phosphorReact.BellSlash,play:phosphorReact.Play,pause:phosphorReact.Pause,stop:phosphorReact.Stop,"volume-high":phosphorReact.SpeakerHigh,"volume-low":phosphorReact.SpeakerLow,"volume-x":phosphorReact.SpeakerX,camera:phosphorReact.Camera,image:phosphorReact.Image,video:phosphorReact.VideoCamera,file:phosphorReact.File,folder:phosphorReact.Folder,"folder-open":phosphorReact.FolderOpen,"file-text":phosphorReact.FileText,"file-pdf":phosphorReact.FilePdf,"file-image":phosphorReact.FileImage,"check-circle":phosphorReact.CheckCircle,"x-circle":phosphorReact.XCircle,warning:phosphorReact.Warning,info:phosphorReact.Info,question:phosphorReact.Question,clock:phosphorReact.Clock,calendar:phosphorReact.Calendar,timer:phosphorReact.Timer,lock:phosphorReact.Lock,"lock-open":phosphorReact.LockOpen,eye:phosphorReact.Eye,"eye-slash":phosphorReact.EyeSlash,shield:phosphorReact.Shield,"shield-check":phosphorReact.ShieldCheck,wifi:phosphorReact.WifiHigh,"wifi-slash":phosphorReact.WifiX,"battery-warning":phosphorReact.BatteryWarning,cpu:phosphorReact.Cpu,"hard-drive":phosphorReact.HardDrive,sun:phosphorReact.Sun,moon:phosphorReact.Moon,cloud:phosphorReact.Cloud,"cloud-rain":phosphorReact.CloudRain,"cloud-snow":phosphorReact.CloudSnow,"cloud-lightning":phosphorReact.CloudLightning,github:phosphorReact.GithubLogo,twitter:phosphorReact.TwitterLogo,facebook:phosphorReact.FacebookLogo,instagram:phosphorReact.InstagramLogo,linkedin:phosphorReact.LinkedinLogo,youtube:phosphorReact.YoutubeLogo,"shopping-cart":phosphorReact.ShoppingCart,"shopping-bag":phosphorReact.ShoppingBag,"credit-card":phosphorReact.CreditCard,money:phosphorReact.Money,"heart-icon":phosphorReact.Heart,activity:phosphorReact.Activity,car:phosphorReact.Car,bus:phosphorReact.Bus,train:phosphorReact.Train,plane:phosphorReact.Airplane,ship:phosphorReact.Boat,bicycle:phosphorReact.Bicycle,coffee:phosphorReact.Coffee,pizza:phosphorReact.Pizza,hamburger:phosphorReact.Hamburger,basketball:phosphorReact.Basketball,football:phosphorReact.Football,soccer:phosphorReact.SoccerBall,tennis:phosphorReact.TennisBall,"music-note":phosphorReact.MusicNote,"play-circle":phosphorReact.PlayCircle,"pause-circle":phosphorReact.PauseCircle,"stop-circle":phosphorReact.StopCircle,book:phosphorReact.Book,"book-open":phosphorReact.BookOpen,"graduation-cap":phosphorReact.GraduationCap,lightbulb:phosphorReact.Lightbulb,briefcase:phosphorReact.Briefcase,building:phosphorReact.Buildings,"chart-line":phosphorReact.ChartLine,"chart-bar":phosphorReact.ChartBar,"chart-pie":phosphorReact.ChartPie,wrench:phosphorReact.Wrench,"paint-brush":phosphorReact.PaintBrush,tree:phosphorReact.Tree,flower:phosphorReact.Flower,leaf:phosphorReact.Leaf,mountain:phosphorReact.Mountains,rocket:phosphorReact.Rocket,planet:phosphorReact.Planet,"star-icon":phosphorReact.Star,"moon-icon":phosphorReact.Moon,"game-controller":phosphorReact.GameController,puzzle:phosphorReact.PuzzlePiece,gift:phosphorReact.Gift,key:phosphorReact.Key,"map-pin":phosphorReact.MapPin,compass:phosphorReact.Compass,flag:phosphorReact.Flag,trophy:phosphorReact.Trophy,medal:phosphorReact.Medal,crown:phosphorReact.Crown,sparkle:phosphorReact.Sparkle,zap:phosphorReact.Lightning,fire:phosphorReact.Fire,snowflake:phosphorReact.Snowflake,umbrella:phosphorReact.Umbrella,anchor:phosphorReact.Anchor,bug:phosphorReact.Bug,butterfly:phosphorReact.Butterfly,cat:phosphorReact.Cat,dog:phosphorReact.Dog,fish:phosphorReact.Fish,bird:phosphorReact.Bird,"paw-print":phosphorReact.PawPrint,alien:phosphorReact.Alien,spaceship:phosphorReact.Rocket,atom:phosphorReact.Atom,flask:phosphorReact.Flask,"test-tube":phosphorReact.TestTube,syringe:phosphorReact.Syringe,pill:phosphorReact.Pill,skull:phosphorReact.Skull,ghost:phosphorReact.Ghost,scroll:phosphorReact.Scroll,"bookmark-icon":phosphorReact.Bookmark,"compass-icon":phosphorReact.Compass,"flag-icon":phosphorReact.Flag,"trophy-icon":phosphorReact.Trophy,"medal-icon":phosphorReact.Medal,"crown-icon":phosphorReact.Crown,"sparkle-icon":phosphorReact.Sparkle,"zap-icon":phosphorReact.Lightning,"fire-icon":phosphorReact.Fire,"snowflake-icon":phosphorReact.Snowflake,"umbrella-icon":phosphorReact.Umbrella,"anchor-icon":phosphorReact.Anchor,"bug-icon":phosphorReact.Bug,"butterfly-icon":phosphorReact.Butterfly,"cat-icon":phosphorReact.Cat,"dog-icon":phosphorReact.Dog,"fish-icon":phosphorReact.Fish,"bird-icon":phosphorReact.Bird,"paw-print-icon":phosphorReact.PawPrint},Sa=classVarianceAuthority.cva("",{variants:{size:{xs:"w-3 h-3",sm:"w-4 h-4",md:"w-5 h-5",lg:"w-6 h-6",xl:"w-8 h-8","2xl":"w-10 h-10","3xl":"w-12 h-12"},weight:{thin:"",light:"",regular:"",bold:"",fill:"",duotone:""},color:{current:"text-current",primary:"text-blue-600",secondary:"text-gray-600",success:"text-green-600",warning:"text-yellow-600",error:"text-red-600",muted:"text-gray-400"}},defaultVariants:{size:"md",weight:"regular",color:"current"}}),Ba=r__default.default.forwardRef(({name:i,size:t,weight:e,color:l,className:c,...s},p)=>{let o=n[i];return o?r__default.default.createElement(o,{ref:p,weight:e,className:chunkITRGJNWL_cjs.a(Sa({size:t,weight:e,color:l}),c),...s}):null});Ba.displayName="Icon";var Ma=Object.keys(n);exports.a=Ba;exports.b=Ma;//# sourceMappingURL=chunk-4TYVEXRA.cjs.map
3
- //# sourceMappingURL=chunk-4TYVEXRA.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/core/icon.tsx"],"names":["iconMap","House","User","Gear","MagnifyingGlass","List","X","CaretLeft","CaretRight","CaretUp","CaretDown","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Plus","Minus","Check","XIcon","Trash","PencilSimple","Copy","Download","Upload","Share","Heart","Star","Bookmark","Envelope","Phone","ChatCircle","Bell","BellSlash","Play","Pause","Stop","SpeakerHigh","SpeakerLow","SpeakerX","Camera","Image","VideoCamera","File","Folder","FolderOpen","FileText","FilePdf","FileImage","CheckCircle","XCircle","Warning","Info","Question","Clock","Calendar","Timer","Lock","LockOpen","Eye","EyeSlash","Shield","ShieldCheck","WifiHigh","WifiX","BatteryWarning","Cpu","HardDrive","Sun","Moon","Cloud","CloudRain","CloudSnow","CloudLightning","GithubLogo","TwitterLogo","FacebookLogo","InstagramLogo","LinkedinLogo","YoutubeLogo","ShoppingCart","ShoppingBag","CreditCard","Money","HeartIcon","Activity","Car","Bus","Train","Airplane","Boat","Bicycle","Coffee","Pizza","Hamburger","Basketball","Football","SoccerBall","TennisBall","MusicNote","PlayCircle","PauseCircle","StopCircle","Book","BookOpen","GraduationCap","Lightbulb","Briefcase","Buildings","ChartLine","ChartBar","ChartPie","Wrench","PaintBrush","Tree","Flower","Leaf","Mountains","Rocket","Planet","StarIcon","MoonIcon","GameController","PuzzlePiece","Gift","Key","MapPin","Compass","Flag","Trophy","Medal","Crown","Sparkle","Lightning","Fire","Snowflake","Umbrella","Anchor","Bug","Butterfly","Cat","Dog","Fish","Bird","PawPrint","Alien","Spaceship","Atom","Flask","TestTube","Syringe","Pill","Skull","Ghost","Scroll","BookmarkIcon","CompassIcon","FlagIcon","TrophyIcon","MedalIcon","CrownIcon","SparkleIcon","ZapIcon","FireIcon","SnowflakeIcon","UmbrellaIcon","AnchorIcon","BugIcon","ButterflyIcon","CatIcon","DogIcon","FishIcon","BirdIcon","PawPrintIcon","iconVariants","cva","Icon","React","name","size","weight","color","className","props","ref","IconComponent","cn","iconNames"],"mappings":"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","file":"chunk-4TYVEXRA.cjs","sourcesContent":["import React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\n\n// Import commonly used Phosphor icons\nimport {\n // Navigation\n House,\n User,\n Gear,\n MagnifyingGlass,\n List,\n X,\n CaretLeft,\n CaretRight,\n CaretUp,\n CaretDown,\n ArrowLeft,\n ArrowRight,\n ArrowUp,\n ArrowDown,\n \n // Actions\n Plus,\n Minus,\n Check,\n X as XIcon,\n Trash,\n PencilSimple,\n Copy,\n Download,\n Upload,\n Share,\n Heart,\n Star,\n Bookmark,\n \n // Communication\n Envelope,\n Phone,\n ChatCircle,\n Bell,\n BellSlash,\n \n // Media\n Play,\n Pause,\n Stop,\n SpeakerHigh,\n SpeakerLow,\n SpeakerX,\n Camera,\n Image,\n VideoCamera,\n \n // Files\n File,\n Folder,\n FolderOpen,\n FileText,\n FilePdf,\n FileImage,\n \n // Status\n CheckCircle,\n XCircle,\n Warning,\n Info,\n Question,\n \n // Time\n Clock,\n Calendar,\n Timer,\n \n // Security\n Lock,\n LockOpen,\n Eye,\n EyeSlash,\n Shield,\n ShieldCheck,\n \n // Technology\n WifiHigh,\n WifiX,\n BatteryWarning,\n Cpu,\n HardDrive,\n \n // Weather\n Sun,\n Moon,\n Cloud,\n CloudRain,\n CloudSnow,\n CloudLightning,\n \n // Social\n GithubLogo,\n TwitterLogo,\n FacebookLogo,\n InstagramLogo,\n LinkedinLogo,\n YoutubeLogo,\n \n // Shopping\n ShoppingCart,\n ShoppingBag,\n CreditCard,\n Money,\n \n // Health\n Heart as HeartIcon,\n Activity,\n \n // Transportation\n Car,\n Bus,\n Train,\n Airplane,\n Boat,\n Bicycle,\n \n // Food\n Coffee,\n Pizza,\n Hamburger,\n \n // Sports\n Basketball,\n Football,\n SoccerBall,\n TennisBall,\n \n // Music\n MusicNote,\n PlayCircle,\n PauseCircle,\n StopCircle,\n \n // Education\n Book,\n BookOpen,\n GraduationCap,\n Lightbulb,\n \n // Business\n Briefcase,\n Buildings,\n ChartLine,\n ChartBar,\n ChartPie,\n \n // Tools\n Wrench,\n PaintBrush,\n \n // Nature\n Tree,\n Flower,\n Leaf,\n Mountains,\n \n // Space\n Rocket,\n Planet,\n Star as StarIcon,\n Moon as MoonIcon,\n \n // Gaming\n GameController,\n PuzzlePiece,\n \n // Miscellaneous\n Gift,\n Key,\n MapPin,\n Compass,\n Flag,\n Trophy,\n Medal,\n Crown,\n Sparkle,\n Lightning,\n Fire,\n Snowflake,\n Umbrella,\n Anchor,\n Bug,\n Butterfly,\n Cat,\n Dog,\n Fish,\n Bird,\n PawPrint,\n \n // Nostromo themed\n Alien,\n Rocket as Spaceship,\n Atom,\n Flask,\n TestTube,\n Syringe,\n Pill,\n Skull,\n Ghost,\n Scroll,\n Bookmark as BookmarkIcon,\n Compass as CompassIcon,\n Flag as FlagIcon,\n Trophy as TrophyIcon,\n Medal as MedalIcon,\n Crown as CrownIcon,\n Sparkle as SparkleIcon,\n Lightning as ZapIcon,\n Fire as FireIcon,\n Snowflake as SnowflakeIcon,\n Umbrella as UmbrellaIcon,\n Anchor as AnchorIcon,\n Bug as BugIcon,\n Butterfly as ButterflyIcon,\n Cat as CatIcon,\n Dog as DogIcon,\n Fish as FishIcon,\n Bird as BirdIcon,\n PawPrint as PawPrintIcon,\n} from 'phosphor-react';\n\n// Create a mapping of icon names to components\nconst iconMap: Record<string, React.ElementType> = {\n // Navigation\n house: House,\n user: User,\n settings: Gear,\n search: MagnifyingGlass,\n menu: List,\n x: X,\n 'chevron-left': CaretLeft,\n 'chevron-right': CaretRight,\n 'chevron-up': CaretUp,\n 'chevron-down': CaretDown,\n 'arrow-left': ArrowLeft,\n 'arrow-right': ArrowRight,\n 'arrow-up': ArrowUp,\n 'arrow-down': ArrowDown,\n \n // Actions\n plus: Plus,\n minus: Minus,\n check: Check,\n 'x-icon': XIcon,\n trash: Trash,\n edit: PencilSimple,\n copy: Copy,\n download: Download,\n upload: Upload,\n share: Share,\n heart: Heart,\n star: Star,\n bookmark: Bookmark,\n \n // Communication\n mail: Envelope,\n phone: Phone,\n 'message-circle': ChatCircle,\n bell: Bell,\n 'bell-slash': BellSlash,\n \n // Media\n play: Play,\n pause: Pause,\n stop: Stop,\n 'volume-high': SpeakerHigh,\n 'volume-low': SpeakerLow,\n 'volume-x': SpeakerX,\n camera: Camera,\n image: Image,\n video: VideoCamera,\n \n // Files\n file: File,\n folder: Folder,\n 'folder-open': FolderOpen,\n 'file-text': FileText,\n 'file-pdf': FilePdf,\n 'file-image': FileImage,\n \n // Status\n 'check-circle': CheckCircle,\n 'x-circle': XCircle,\n warning: Warning,\n info: Info,\n question: Question,\n \n // Time\n clock: Clock,\n calendar: Calendar,\n timer: Timer,\n \n // Security\n lock: Lock,\n 'lock-open': LockOpen,\n eye: Eye,\n 'eye-slash': EyeSlash,\n shield: Shield,\n 'shield-check': ShieldCheck,\n \n // Technology\n wifi: WifiHigh,\n 'wifi-slash': WifiX,\n 'battery-warning': BatteryWarning,\n cpu: Cpu,\n 'hard-drive': HardDrive,\n \n // Weather\n sun: Sun,\n moon: Moon,\n cloud: Cloud,\n 'cloud-rain': CloudRain,\n 'cloud-snow': CloudSnow,\n 'cloud-lightning': CloudLightning,\n \n // Social\n github: GithubLogo,\n twitter: TwitterLogo,\n facebook: FacebookLogo,\n instagram: InstagramLogo,\n linkedin: LinkedinLogo,\n youtube: YoutubeLogo,\n \n // Shopping\n 'shopping-cart': ShoppingCart,\n 'shopping-bag': ShoppingBag,\n 'credit-card': CreditCard,\n money: Money,\n \n // Health\n 'heart-icon': HeartIcon,\n activity: Activity,\n \n // Transportation\n car: Car,\n bus: Bus,\n train: Train,\n plane: Airplane,\n ship: Boat,\n bicycle: Bicycle,\n \n // Food\n coffee: Coffee,\n pizza: Pizza,\n hamburger: Hamburger,\n \n // Sports\n basketball: Basketball,\n football: Football,\n soccer: SoccerBall,\n tennis: TennisBall,\n \n // Music\n 'music-note': MusicNote,\n 'play-circle': PlayCircle,\n 'pause-circle': PauseCircle,\n 'stop-circle': StopCircle,\n \n // Education\n book: Book,\n 'book-open': BookOpen,\n 'graduation-cap': GraduationCap,\n lightbulb: Lightbulb,\n \n // Business\n briefcase: Briefcase,\n building: Buildings,\n 'chart-line': ChartLine,\n 'chart-bar': ChartBar,\n 'chart-pie': ChartPie,\n \n // Tools\n wrench: Wrench,\n 'paint-brush': PaintBrush,\n \n // Nature\n tree: Tree,\n flower: Flower,\n leaf: Leaf,\n mountain: Mountains,\n \n // Space\n rocket: Rocket,\n planet: Planet,\n 'star-icon': StarIcon,\n 'moon-icon': MoonIcon,\n \n // Gaming\n 'game-controller': GameController,\n puzzle: PuzzlePiece,\n \n // Miscellaneous\n gift: Gift,\n key: Key,\n 'map-pin': MapPin,\n compass: Compass,\n flag: Flag,\n trophy: Trophy,\n medal: Medal,\n crown: Crown,\n sparkle: Sparkle,\n zap: Lightning,\n fire: Fire,\n snowflake: Snowflake,\n umbrella: Umbrella,\n anchor: Anchor,\n bug: Bug,\n butterfly: Butterfly,\n cat: Cat,\n dog: Dog,\n fish: Fish,\n bird: Bird,\n 'paw-print': PawPrint,\n \n // Nostromo themed\n alien: Alien,\n spaceship: Spaceship,\n atom: Atom,\n flask: Flask,\n 'test-tube': TestTube,\n syringe: Syringe,\n pill: Pill,\n skull: Skull,\n ghost: Ghost,\n scroll: Scroll,\n 'bookmark-icon': BookmarkIcon,\n 'compass-icon': CompassIcon,\n 'flag-icon': FlagIcon,\n 'trophy-icon': TrophyIcon,\n 'medal-icon': MedalIcon,\n 'crown-icon': CrownIcon,\n 'sparkle-icon': SparkleIcon,\n 'zap-icon': ZapIcon,\n 'fire-icon': FireIcon,\n 'snowflake-icon': SnowflakeIcon,\n 'umbrella-icon': UmbrellaIcon,\n 'anchor-icon': AnchorIcon,\n 'bug-icon': BugIcon,\n 'butterfly-icon': ButterflyIcon,\n 'cat-icon': CatIcon,\n 'dog-icon': DogIcon,\n 'fish-icon': FishIcon,\n 'bird-icon': BirdIcon,\n 'paw-print-icon': PawPrintIcon,\n} as const;\n\nexport type IconName = keyof typeof iconMap;\n\nconst iconVariants = cva('', {\n variants: {\n size: {\n xs: 'w-3 h-3',\n sm: 'w-4 h-4',\n md: 'w-5 h-5',\n lg: 'w-6 h-6',\n xl: 'w-8 h-8',\n '2xl': 'w-10 h-10',\n '3xl': 'w-12 h-12',\n },\n weight: {\n thin: '',\n light: '',\n regular: '',\n bold: '',\n fill: '',\n duotone: '',\n },\n color: {\n current: 'text-current',\n primary: 'text-blue-600',\n secondary: 'text-gray-600',\n success: 'text-green-600',\n warning: 'text-yellow-600',\n error: 'text-red-600',\n muted: 'text-gray-400',\n },\n },\n defaultVariants: {\n size: 'md',\n weight: 'regular',\n color: 'current',\n },\n});\n\nexport interface IconProps\n extends Omit<React.HTMLAttributes<SVGSVGElement>, 'color'>,\n VariantProps<typeof iconVariants> {\n name: IconName;\n className?: string;\n}\n\nexport const Icon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ name, size, weight, color, className, ...props }, ref) => {\n const IconComponent = iconMap[name];\n \n if (!IconComponent) {\n console.warn(`Icon \"${name}\" not found in iconMap`);\n return null;\n }\n\n return (\n <IconComponent\n ref={ref}\n weight={weight as 'thin' | 'light' | 'regular' | 'bold' | 'fill' | 'duotone'}\n className={cn(iconVariants({ size, weight, color }), className)}\n {...props}\n />\n );\n }\n);\n\nIcon.displayName = 'Icon';\n\n// Export icon names for TypeScript autocomplete\nexport const iconNames = Object.keys(iconMap) as IconName[];\n\n// Note: For additional icons, import directly from 'phosphor-react' to avoid bundling unused icons\n// Example: import { CustomIcon } from 'phosphor-react'\n"]}
@@ -1,3 +0,0 @@
1
- "use client";
2
- 'use strict';var chunkITRGJNWL_cjs=require('./chunk-ITRGJNWL.cjs'),a=require('react'),classVarianceAuthority=require('class-variance-authority');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var a__namespace=/*#__PURE__*/_interopNamespace(a);var d=classVarianceAuthority.cva("shrink-0 bg-border",{variants:{orientation:{horizontal:"h-[1px] w-full",vertical:"h-full w-[1px]"},variant:{default:"bg-border",muted:"bg-muted",subtle:"bg-muted/50"},size:{default:"",sm:"h-px",lg:"h-0.5"}},defaultVariants:{orientation:"horizontal",variant:"default",size:"default"}}),f=a__namespace.forwardRef(({className:o,orientation:t="horizontal",variant:i="default",size:n="default",decorative:r=true,...l},s)=>a__namespace.createElement("div",{ref:s,role:r?"none":"separator",...r?{}:{"aria-orientation":t||void 0},className:chunkITRGJNWL_cjs.a(d({orientation:t,variant:i,size:n}),o),...l}));f.displayName="Separator";exports.a=d;exports.b=f;//# sourceMappingURL=chunk-B2BWBKZA.cjs.map
3
- //# sourceMappingURL=chunk-B2BWBKZA.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/core/separator.tsx"],"names":["separatorVariants","cva","Separator","a","className","orientation","variant","size","decorative","props","ref","cn"],"mappings":"ufAIA,IAAMA,CAAAA,CAAoBC,0BAAAA,CACxB,oBAAA,CACA,CACE,QAAA,CAAU,CACR,WAAA,CAAa,CACX,UAAA,CAAY,gBAAA,CACZ,QAAA,CAAU,gBACZ,EACA,OAAA,CAAS,CACP,OAAA,CAAS,WAAA,CACT,KAAA,CAAO,UAAA,CACP,OAAQ,aACV,CAAA,CACA,IAAA,CAAM,CACJ,OAAA,CAAS,EAAA,CACT,GAAI,MAAA,CACJ,EAAA,CAAI,OACN,CACF,CAAA,CACA,eAAA,CAAiB,CACf,WAAA,CAAa,YAAA,CACb,OAAA,CAAS,SAAA,CACT,IAAA,CAAM,SACR,CACF,CACF,CAAA,CASMC,CAAAA,CAAkBC,YAAA,CAAA,UAAA,CACtB,CACE,CACE,UAAAC,CAAAA,CACA,WAAA,CAAAC,CAAAA,CAAc,YAAA,CACd,OAAA,CAAAC,CAAAA,CAAU,UACV,IAAA,CAAAC,CAAAA,CAAO,SAAA,CACP,UAAA,CAAAC,CAAAA,CAAa,IAAA,CACb,GAAGC,CACL,CAAA,CACAC,CAAAA,GAGEP,YAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CACC,GAAA,CAAKO,EACL,IAAA,CAAMF,CAAAA,CAAa,MAAA,CAAS,WAAA,CAC3B,GAAIA,CAAAA,CAAa,EAAC,CAAI,CAAE,kBAAA,CAAoBH,CAAAA,EAAe,MAAU,CAAA,CACtE,UAAWM,mBAAAA,CAAGX,CAAAA,CAAkB,CAAE,WAAA,CAAAK,CAAAA,CAAa,OAAA,CAAAC,EAAS,IAAA,CAAAC,CAAK,CAAC,CAAA,CAAGH,CAAS,CAAA,CACzE,GAAGK,CAAAA,CACN,CAGN,EACAP,CAAAA,CAAU,WAAA,CAAc,WAAA","file":"chunk-B2BWBKZA.cjs","sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\n\nconst separatorVariants = cva(\n \"shrink-0 bg-border\",\n {\n variants: {\n orientation: {\n horizontal: \"h-[1px] w-full\",\n vertical: \"h-full w-[1px]\",\n },\n variant: {\n default: \"bg-border\",\n muted: \"bg-muted\",\n subtle: \"bg-muted/50\",\n },\n size: {\n default: \"\",\n sm: \"h-px\",\n lg: \"h-0.5\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nexport interface SeparatorProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"aria-orientation\">,\n VariantProps<typeof separatorVariants> {\n decorative?: boolean;\n \"aria-orientation\"?: \"horizontal\" | \"vertical\";\n}\n\nconst Separator = React.forwardRef<HTMLDivElement, SeparatorProps>(\n (\n {\n className,\n orientation = \"horizontal\",\n variant = \"default\",\n size = \"default\",\n decorative = true,\n ...props\n },\n ref\n ) => {\n return (\n <div\n ref={ref}\n role={decorative ? \"none\" : \"separator\"}\n {...(decorative ? {} : { \"aria-orientation\": orientation || undefined })}\n className={cn(separatorVariants({ orientation, variant, size }), className)}\n {...props}\n />\n );\n }\n);\nSeparator.displayName = \"Separator\";\n\nexport { Separator, separatorVariants };\n"]}
@@ -1,3 +0,0 @@
1
- "use client";
2
- import {a as a$1}from'./chunk-AC2JBXHQ.js';import*as a from'react';import {cva}from'class-variance-authority';var d=cva("shrink-0 bg-border",{variants:{orientation:{horizontal:"h-[1px] w-full",vertical:"h-full w-[1px]"},variant:{default:"bg-border",muted:"bg-muted",subtle:"bg-muted/50"},size:{default:"",sm:"h-px",lg:"h-0.5"}},defaultVariants:{orientation:"horizontal",variant:"default",size:"default"}}),f=a.forwardRef(({className:o,orientation:t="horizontal",variant:i="default",size:n="default",decorative:r=true,...l},s)=>a.createElement("div",{ref:s,role:r?"none":"separator",...r?{}:{"aria-orientation":t||void 0},className:a$1(d({orientation:t,variant:i,size:n}),o),...l}));f.displayName="Separator";export{d as a,f as b};//# sourceMappingURL=chunk-CVOSWGQZ.js.map
3
- //# sourceMappingURL=chunk-CVOSWGQZ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/core/separator.tsx"],"names":["separatorVariants","cva","Separator","className","orientation","variant","size","decorative","props","ref","cn"],"mappings":"8GAIA,IAAMA,CAAAA,CAAoBC,GAAAA,CACxB,oBAAA,CACA,CACE,QAAA,CAAU,CACR,WAAA,CAAa,CACX,UAAA,CAAY,gBAAA,CACZ,QAAA,CAAU,gBACZ,EACA,OAAA,CAAS,CACP,OAAA,CAAS,WAAA,CACT,KAAA,CAAO,UAAA,CACP,OAAQ,aACV,CAAA,CACA,IAAA,CAAM,CACJ,OAAA,CAAS,EAAA,CACT,GAAI,MAAA,CACJ,EAAA,CAAI,OACN,CACF,CAAA,CACA,eAAA,CAAiB,CACf,WAAA,CAAa,YAAA,CACb,OAAA,CAAS,SAAA,CACT,IAAA,CAAM,SACR,CACF,CACF,CAAA,CASMC,CAAAA,CAAkB,CAAA,CAAA,UAAA,CACtB,CACE,CACE,UAAAC,CAAAA,CACA,WAAA,CAAAC,CAAAA,CAAc,YAAA,CACd,OAAA,CAAAC,CAAAA,CAAU,UACV,IAAA,CAAAC,CAAAA,CAAO,SAAA,CACP,UAAA,CAAAC,CAAAA,CAAa,IAAA,CACb,GAAGC,CACL,CAAA,CACAC,CAAAA,GAGE,CAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CACC,GAAA,CAAKA,EACL,IAAA,CAAMF,CAAAA,CAAa,MAAA,CAAS,WAAA,CAC3B,GAAIA,CAAAA,CAAa,EAAC,CAAI,CAAE,kBAAA,CAAoBH,CAAAA,EAAe,MAAU,CAAA,CACtE,UAAWM,GAAAA,CAAGV,CAAAA,CAAkB,CAAE,WAAA,CAAAI,CAAAA,CAAa,OAAA,CAAAC,EAAS,IAAA,CAAAC,CAAK,CAAC,CAAA,CAAGH,CAAS,CAAA,CACzE,GAAGK,CAAAA,CACN,CAGN,EACAN,CAAAA,CAAU,WAAA,CAAc,WAAA","file":"chunk-CVOSWGQZ.js","sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\n\nconst separatorVariants = cva(\n \"shrink-0 bg-border\",\n {\n variants: {\n orientation: {\n horizontal: \"h-[1px] w-full\",\n vertical: \"h-full w-[1px]\",\n },\n variant: {\n default: \"bg-border\",\n muted: \"bg-muted\",\n subtle: \"bg-muted/50\",\n },\n size: {\n default: \"\",\n sm: \"h-px\",\n lg: \"h-0.5\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nexport interface SeparatorProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"aria-orientation\">,\n VariantProps<typeof separatorVariants> {\n decorative?: boolean;\n \"aria-orientation\"?: \"horizontal\" | \"vertical\";\n}\n\nconst Separator = React.forwardRef<HTMLDivElement, SeparatorProps>(\n (\n {\n className,\n orientation = \"horizontal\",\n variant = \"default\",\n size = \"default\",\n decorative = true,\n ...props\n },\n ref\n ) => {\n return (\n <div\n ref={ref}\n role={decorative ? \"none\" : \"separator\"}\n {...(decorative ? {} : { \"aria-orientation\": orientation || undefined })}\n className={cn(separatorVariants({ orientation, variant, size }), className)}\n {...props}\n />\n );\n }\n);\nSeparator.displayName = \"Separator\";\n\nexport { Separator, separatorVariants };\n"]}
@@ -1,3 +0,0 @@
1
- "use client";
2
- 'use strict';var chunk5PVFLXPO_cjs=require('./chunk-5PVFLXPO.cjs'),chunkITRGJNWL_cjs=require('./chunk-ITRGJNWL.cjs'),a=require('react'),v=require('@radix-ui/react-popover'),classVarianceAuthority=require('class-variance-authority'),dateFns=require('date-fns');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var a__default=/*#__PURE__*/_interopDefault(a);var v__namespace=/*#__PURE__*/_interopNamespace(v);var ye=classVarianceAuthority.cva("inline-block rounded-lg border bg-background shadow-lg",{variants:{variant:{default:"border-border bg-card",outline:"border-2 border-border",ghost:"border-transparent bg-transparent shadow-none"},size:{sm:"p-2",md:"p-3",lg:"p-4"}},defaultVariants:{variant:"default",size:"md"}}),we=classVarianceAuthority.cva("flex items-center justify-center rounded-md font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"hover:bg-muted text-foreground",selected:"bg-primary text-primary-foreground hover:bg-primary/90 font-semibold",range:"bg-primary/10 text-primary hover:bg-primary/20 font-medium",today:"border-2 border-primary text-foreground font-semibold",outside:"text-muted-foreground",disabled:"text-muted-foreground/50 cursor-not-allowed"},size:{sm:"h-7 w-7 text-xs",md:"h-9 w-9 text-sm",lg:"h-11 w-11 text-base"}},defaultVariants:{variant:"default",size:"md"}}),W=n=>dateFns.getDaysInMonth(n),xe=(n,o)=>{let s=dateFns.getDay(dateFns.startOfMonth(n));return o===1?s===0?6:s-1:s},h=(n,o)=>!n||!o?false:dateFns.isSameDay(n,o),Ce=(n,o,s)=>!o&&!s?false:o&&s?dateFns.isWithinInterval(dateFns.startOfDay(n),{start:dateFns.startOfDay(o),end:dateFns.endOfDay(s)}):o?!dateFns.isBefore(dateFns.startOfDay(n),dateFns.startOfDay(o)):s?!dateFns.isAfter(dateFns.startOfDay(n),dateFns.endOfDay(s)):false,_=(n,o,s,V,N)=>!!(o&&dateFns.isBefore(dateFns.startOfDay(n),dateFns.startOfDay(o))||s&&dateFns.isAfter(dateFns.startOfDay(n),dateFns.endOfDay(s))||V?.some(Y=>h(Y,n))||N?.includes(dateFns.getDay(n))),C=(n,o="en-US")=>n?dateFns.format(n,"MMM d, yyyy"):"",ke=(n,o,s="en-US")=>!n&&!o?"":n&&o?`${C(n,s)} - ${C(o,s)}`:n?C(n,s):o?C(o,s):"",Fe=(n,o="en-US")=>n.length===0?"":n.length===1?C(n[0],o):`${n.length} dates selected`,Ne=a__default.default.forwardRef(({mode:n="single",value:o,defaultValue:s,onChange:V,minDate:N,maxDate:Y,disabledDates:A,disabledDays:H,locale:y="en-US",placeholder:X,label:I,error:L,helperText:U,className:Z,inputClassName:R,calendarClassName:ee,variant:te,size:K,showOutsideDays:k=true,firstDayOfWeek:P=1,...ne},re)=>{let[F,w]=a.useState(false),[i,D]=a.useState(new Date),[p,m]=a.useState(null),ae=a.useRef(null),$=a.useRef(new Map),[oe,se]=a.useState(s),j=o!==void 0,l=j?o:oe;a__default.default.useLayoutEffect(()=>{if(F&&!p){let e=new Date;e.setHours(0,0,0,0),m(e);}},[F,p]);let x=e=>{j||se(e),V?.(e);},z=e=>{if(!_(e,N,Y,A,H)){if(n==="single")x(e),w(false);else if(n==="range"){let r=l;if(!r?.from||r.from&&r.to)x({from:e});else {let t=r.from,d=e;d<t?x({from:d,to:t}):x({from:t,to:d}),w(false);}}else if(n==="multiple"){let r=l||[],t=r.findIndex(d=>h(d,e));t>=0?x(r.filter((d,u)=>u!==t)):x([...r,e]);}}},ie=a.useMemo(()=>{if(!l)return "";if(n==="single")return C(l,y);if(n==="range"){let e=l;return ke(e.from,e.to,y)}else return Fe(l,y)},[l,n,y]),le=a.useMemo(()=>{let e=[],r=new Date;r.setHours(0,0,0,0);let t=xe(i,P),d=W(i);if(k&&t>0){let u=new Date(i.getFullYear(),i.getMonth()-1),g=W(u);for(let c=g-t+1;c<=g;c++){let f=new Date(u.getFullYear(),u.getMonth(),c);e.push({date:f,isCurrentMonth:false,isToday:h(f,r)});}}for(let u=1;u<=d;u++){let g=new Date(i.getFullYear(),i.getMonth(),u);e.push({date:g,isCurrentMonth:true,isToday:h(g,r)});}if(k){let u=42-e.length,g=new Date(i.getFullYear(),i.getMonth()+1);for(let c=1;c<=u;c++){let f=new Date(g.getFullYear(),g.getMonth(),c);e.push({date:f,isCurrentMonth:false,isToday:h(f,r)});}}return e},[i,k,P]),ue=()=>{D(new Date(i.getFullYear(),i.getMonth()-1,1));},de=()=>{D(new Date(i.getFullYear(),i.getMonth()+1,1));},fe=()=>{let e=new Date;D(e),m(e);},ge=(e,r)=>{if(e.key==="Enter"||e.key===" "){e.preventDefault(),z(r);return}if(e.key==="ArrowRight"){e.preventDefault();let t=new Date(r);t.setDate(t.getDate()+1),m(t),t.getMonth()!==i.getMonth()&&D(new Date(t.getFullYear(),t.getMonth(),1));return}if(e.key==="ArrowLeft"){e.preventDefault();let t=new Date(r);t.setDate(t.getDate()-1),m(t),t.getMonth()!==i.getMonth()&&D(new Date(t.getFullYear(),t.getMonth(),1));return}if(e.key==="ArrowDown"){e.preventDefault();let t=new Date(r);t.setDate(t.getDate()+7),m(t),t.getMonth()!==i.getMonth()&&D(new Date(t.getFullYear(),t.getMonth(),1));return}if(e.key==="ArrowUp"){e.preventDefault();let t=new Date(r);t.setDate(t.getDate()-7),m(t),t.getMonth()!==i.getMonth()&&D(new Date(t.getFullYear(),t.getMonth(),1));return}if(e.key==="Home"){e.preventDefault();let t=new Date(r.getFullYear(),r.getMonth(),1);m(t);return}if(e.key==="End"){e.preventDefault();let t=new Date(r.getFullYear(),r.getMonth()+1,0);m(t);return}if(e.key==="PageUp"){e.preventDefault();let t=new Date(r.getFullYear(),r.getMonth()-1,r.getDate());m(t),D(new Date(t.getFullYear(),t.getMonth(),1));return}if(e.key==="PageDown"){e.preventDefault();let t=new Date(r.getFullYear(),r.getMonth()+1,r.getDate());m(t),D(new Date(t.getFullYear(),t.getMonth(),1));return}if(e.key==="Escape"){e.preventDefault(),w(false);return}};a.useEffect(()=>{if(p&&F){let e=`${p.getFullYear()}-${p.getMonth()}-${p.getDate()}`,r=$.current.get(e);r&&r.focus();}},[p,F]);let De=a.useMemo(()=>{let e=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];return P===1?[...e.slice(1),e[0]]:e},[P]),me=i.toLocaleDateString(y,{month:"long",year:"numeric"});return a__default.default.createElement("div",{ref:re,className:chunkITRGJNWL_cjs.a("w-full",Z),...ne},a__default.default.createElement(v__namespace.Root,{open:F,onOpenChange:w},a__default.default.createElement("div",{className:"space-y-2"},I&&a__default.default.createElement("label",{className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"},I),a__default.default.createElement(v__namespace.Trigger,{asChild:true},a__default.default.createElement("button",{type:"button",className:chunkITRGJNWL_cjs.a("flex w-full rounded-md border bg-background px-3 py-2 text-sm ring-offset-background","placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50 transition-all duration-200 text-left",L?"border-error-500 shadow-sm hover:border-error-600 focus-visible:ring-error-500/20 focus-visible:border-error-500":"border-border shadow-sm hover:border-primary focus-visible:ring-ring/20 focus-visible:border-primary","h-10",R),onClick:()=>w(true),onFocus:()=>w(true),"aria-label":I||"Open calendar","aria-invalid":L},ie||a__default.default.createElement("span",{className:"text-muted-foreground"},X||"Select date..."))),U&&a__default.default.createElement("p",{className:chunkITRGJNWL_cjs.a("text-sm text-muted-foreground",L&&"text-error-600")},U)),a__default.default.createElement(v__namespace.Portal,null,a__default.default.createElement(v__namespace.Content,{className:chunkITRGJNWL_cjs.a("z-50 w-auto rounded-lg border bg-popover p-4 shadow-lg","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2"),sideOffset:5,align:"start"},a__default.default.createElement("div",{ref:ae,className:chunkITRGJNWL_cjs.a(ye({variant:te,size:K}),ee),role:"application","aria-label":"Calendar"},a__default.default.createElement("div",{className:"flex items-center justify-between mb-4"},a__default.default.createElement("div",{className:"flex items-center gap-2"},a__default.default.createElement(chunk5PVFLXPO_cjs.b,{variant:"ghost",size:"sm",onClick:ue,"aria-label":"Previous month"},a__default.default.createElement("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},a__default.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"}))),a__default.default.createElement("h3",{className:"text-sm font-semibold text-popover-foreground","data-testid":"calendar-month-year"},me),a__default.default.createElement(chunk5PVFLXPO_cjs.b,{variant:"ghost",size:"sm",onClick:de,"aria-label":"Next month"},a__default.default.createElement("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},a__default.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})))),a__default.default.createElement(chunk5PVFLXPO_cjs.b,{variant:"ghost",size:"sm",onClick:fe,className:"text-xs"},"Today")),a__default.default.createElement("div",{className:"grid grid-cols-7 gap-1 mb-2"},De.map(e=>a__default.default.createElement("div",{key:e,className:"text-center text-xs font-medium text-muted-foreground"},e))),a__default.default.createElement("div",{className:"grid grid-cols-7 gap-1"},le.map((e,r)=>{let t=n==="single"?h(e.date,l):n==="range"?Ce(e.date,l?.from,l?.to):l?.some(f=>h(f,e.date)),d=_(e.date,N,Y,A,H),u=n==="range"&&l?.from&&!l?.to&&e.date>=l.from,g=`${e.date.getFullYear()}-${e.date.getMonth()}-${e.date.getDate()}`,c=p&&h(e.date,p);return a__default.default.createElement("button",{key:`${e.date.getTime()}-${r}`,ref:f=>{f?$.current.set(g,f):$.current.delete(g);},type:"button",onClick:()=>{k&&!e.isCurrentMonth?(D(new Date(e.date.getFullYear(),e.date.getMonth(),1)),setTimeout(()=>z(e.date),0)):z(e.date);},onKeyDown:f=>ge(f,e.date),disabled:d||(k?false:!e.isCurrentMonth),className:chunkITRGJNWL_cjs.a(we({variant:t?"selected":u?"range":e.isToday?"today":e.isCurrentMonth?d?"disabled":"default":"outside",size:K}),!e.isCurrentMonth&&"opacity-50",c&&"ring-2 ring-brand-500 ring-offset-2 z-10"),"aria-label":e.date.toLocaleDateString(y,{weekday:"long",year:"numeric",month:"long",day:"numeric"}),"aria-selected":t,"aria-disabled":d,tabIndex:c?0:-1},e.date.getDate())})),n==="range"&&l?.from&&!l?.to&&a__default.default.createElement("div",{className:"mt-4 pt-4 border-t border-border"},a__default.default.createElement("p",{className:"text-xs text-muted-foreground text-center"},"Select end date")))))))});Ne.displayName="Calendar";exports.a=ye;exports.b=we;exports.c=Ne;//# sourceMappingURL=chunk-EGQ2Q37R.cjs.map
3
- //# sourceMappingURL=chunk-EGQ2Q37R.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/core/calendar.tsx"],"names":["calendarVariants","cva","calendarDayVariants","getDaysInMonth","date","dateFnsGetDaysInMonth","getFirstDayOfMonth","firstDayOfWeek","firstDay","getDay","startOfMonth","isSameDay","date1","date2","dateFnsIsSameDay","isDateInRange","from","to","isWithinInterval","startOfDay","endOfDay","isBefore","isAfter","isDateDisabled","minDate","maxDate","disabledDates","disabledDays","d","formatDate","_locale","dateFnsFormat","formatDateRange","locale","formatMultipleDates","dates","Calendar","React","mode","value","defaultValue","onChange","placeholder","label","error","helperText","className","inputClassName","calendarClassName","variant","size","showOutsideDays","props","ref","open","setOpen","useState","currentMonth","setCurrentMonth","focusedDate","setFocusedDate","calendarRef","useRef","dayButtonRefs","internalValue","setInternalValue","isControlled","calendarValue","today","handleValueChange","newValue","handleDateClick","rangeValue","multipleValue","dateIndex","_","i","displayValue","useMemo","range","calendarDays","days","daysInMonth","prevMonth","daysInPrevMonth","remainingDays","nextMonth","goToPreviousMonth","goToNextMonth","goToToday","handleKeyDown","nextDate","prevDate","lastDay","useEffect","dateKey","button","dayNames","names","monthYearDisplay","cn","v","Button","day","index","isSelected","isDisabled","isInRange","isFocused","el","e"],"mappings":"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","file":"chunk-EGQ2Q37R.cjs","sourcesContent":["import React, { useState, useMemo, useRef, useEffect } from \"react\";\nimport * as Popover from \"@radix-ui/react-popover\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport {\n getDaysInMonth as dateFnsGetDaysInMonth,\n startOfMonth,\n getDay,\n isSameDay as dateFnsIsSameDay,\n isWithinInterval,\n isBefore,\n isAfter,\n format as dateFnsFormat,\n startOfDay,\n endOfDay,\n} from \"date-fns\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"./button\";\n\n// Calendar variants\nconst calendarVariants = cva(\n \"inline-block rounded-lg border bg-background shadow-lg\",\n {\n variants: {\n variant: {\n default: \"border-border bg-card\",\n outline: \"border-2 border-border\",\n ghost: \"border-transparent bg-transparent shadow-none\",\n },\n size: {\n sm: \"p-2\",\n md: \"p-3\",\n lg: \"p-4\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n },\n);\n\nconst calendarDayVariants = cva(\n \"flex items-center justify-center rounded-md font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"hover:bg-muted text-foreground\",\n selected:\n \"bg-primary text-primary-foreground hover:bg-primary/90 font-semibold\",\n range: \"bg-primary/10 text-primary hover:bg-primary/20 font-medium\",\n today: \"border-2 border-primary text-foreground font-semibold\",\n outside: \"text-muted-foreground\",\n disabled: \"text-muted-foreground/50 cursor-not-allowed\",\n },\n size: {\n sm: \"h-7 w-7 text-xs\",\n md: \"h-9 w-9 text-sm\",\n lg: \"h-11 w-11 text-base\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n },\n);\n\nexport type CalendarMode = \"single\" | \"range\" | \"multiple\";\n\nexport interface CalendarProps extends VariantProps<typeof calendarVariants> {\n mode?: CalendarMode;\n value?: Date | Date[] | { from?: Date; to?: Date };\n defaultValue?: Date | Date[] | { from?: Date; to?: Date };\n onChange?: (\n value: Date | Date[] | { from?: Date; to?: Date } | undefined,\n ) => void;\n minDate?: Date;\n maxDate?: Date;\n disabledDates?: Date[];\n disabledDays?: number[]; // 0 = Sunday, 1 = Monday, etc.\n locale?: string;\n placeholder?: string;\n label?: string;\n error?: boolean;\n helperText?: string;\n className?: string;\n inputClassName?: string;\n calendarClassName?: string;\n showOutsideDays?: boolean;\n firstDayOfWeek?: 0 | 1; // 0 = Sunday, 1 = Monday\n}\n\n// Helper functions using date-fns for robust date manipulation\nconst getDaysInMonth = (date: Date): number => {\n return dateFnsGetDaysInMonth(date);\n};\n\nconst getFirstDayOfMonth = (date: Date, firstDayOfWeek: 0 | 1): number => {\n // Use date-fns getDay for consistent day-of-week calculation\n const firstDay = getDay(startOfMonth(date));\n // Convert Sunday (0) to Monday-first (6) if needed\n // Sunday = 0, Monday = 1, ..., Saturday = 6\n // For Monday-first: Sunday becomes 6, Monday becomes 0, etc.\n return firstDayOfWeek === 1 ? (firstDay === 0 ? 6 : firstDay - 1) : firstDay;\n};\n\nconst isSameDay = (\n date1: Date | undefined,\n date2: Date | undefined,\n): boolean => {\n if (!date1 || !date2) return false;\n return dateFnsIsSameDay(date1, date2);\n};\n\nconst isDateInRange = (date: Date, from?: Date, to?: Date): boolean => {\n if (!from && !to) return false;\n if (from && to) {\n // Use date-fns isWithinInterval for proper date range checking\n return isWithinInterval(startOfDay(date), {\n start: startOfDay(from),\n end: endOfDay(to),\n });\n }\n if (from) return !isBefore(startOfDay(date), startOfDay(from));\n if (to) return !isAfter(startOfDay(date), endOfDay(to));\n return false;\n};\n\nconst isDateDisabled = (\n date: Date,\n minDate?: Date,\n maxDate?: Date,\n disabledDates?: Date[],\n disabledDays?: number[],\n): boolean => {\n if (minDate && isBefore(startOfDay(date), startOfDay(minDate))) return true;\n if (maxDate && isAfter(startOfDay(date), endOfDay(maxDate))) return true;\n if (disabledDates?.some((d) => isSameDay(d, date))) return true;\n if (disabledDays?.includes(getDay(date))) return true;\n return false;\n};\n\nconst formatDate = (\n date: Date | undefined,\n _locale: string = \"en-US\",\n): string => {\n if (!date) return \"\";\n // Use date-fns format for consistent formatting\n // Note: date-fns uses locale objects, but we'll use a simple format for now\n // For full locale support, import locale from 'date-fns/locale'\n // Locale parameter is kept for API compatibility but not yet used\n return dateFnsFormat(date, \"MMM d, yyyy\");\n};\n\nconst formatDateRange = (\n from?: Date,\n to?: Date,\n locale: string = \"en-US\",\n): string => {\n if (!from && !to) return \"\";\n if (from && to) {\n return `${formatDate(from, locale)} - ${formatDate(to, locale)}`;\n }\n if (from) return formatDate(from, locale);\n if (to) return formatDate(to, locale);\n return \"\";\n};\n\nconst formatMultipleDates = (\n dates: Date[],\n _locale: string = \"en-US\",\n): string => {\n if (dates.length === 0) return \"\";\n if (dates.length === 1) return formatDate(dates[0], _locale);\n return `${dates.length} dates selected`;\n};\n\nexport const Calendar = React.forwardRef<HTMLDivElement, CalendarProps>(\n (\n {\n mode = \"single\",\n value,\n defaultValue,\n onChange,\n minDate,\n maxDate,\n disabledDates,\n disabledDays,\n locale = \"en-US\",\n placeholder,\n label,\n error,\n helperText,\n className,\n inputClassName,\n calendarClassName,\n variant,\n size,\n showOutsideDays = true,\n firstDayOfWeek = 1,\n ...props\n },\n ref,\n ) => {\n const [open, setOpen] = useState(false);\n const [currentMonth, setCurrentMonth] = useState(new Date());\n const [focusedDate, setFocusedDate] = useState<Date | null>(null);\n const calendarRef = useRef<HTMLDivElement>(null);\n const dayButtonRefs = useRef<Map<string, HTMLButtonElement>>(new Map());\n\n // Controlled vs uncontrolled\n const [internalValue, setInternalValue] = useState<\n Date | Date[] | { from?: Date; to?: Date } | undefined\n >(defaultValue);\n\n const isControlled = value !== undefined;\n const calendarValue = isControlled ? value : internalValue;\n\n // Set focused date when calendar opens\n React.useLayoutEffect(() => {\n if (open && !focusedDate) {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n setFocusedDate(today);\n }\n }, [open, focusedDate]);\n\n // Handle value changes\n const handleValueChange = (\n newValue: Date | Date[] | { from?: Date; to?: Date } | undefined,\n ) => {\n if (!isControlled) {\n setInternalValue(newValue);\n }\n onChange?.(newValue);\n };\n\n // Handle date selection\n const handleDateClick = (date: Date) => {\n if (isDateDisabled(date, minDate, maxDate, disabledDates, disabledDays)) {\n return;\n }\n\n if (mode === \"single\") {\n handleValueChange(date);\n setOpen(false);\n } else if (mode === \"range\") {\n const rangeValue = calendarValue as\n | { from?: Date; to?: Date }\n | undefined;\n if (!rangeValue?.from || (rangeValue.from && rangeValue.to)) {\n // Start new range\n handleValueChange({ from: date });\n } else {\n // Complete range\n const from = rangeValue.from;\n const to = date;\n if (to < from) {\n handleValueChange({ from: to, to: from });\n } else {\n handleValueChange({ from, to });\n }\n setOpen(false);\n }\n } else if (mode === \"multiple\") {\n const multipleValue = (calendarValue as Date[]) || [];\n const dateIndex = multipleValue.findIndex((d) => isSameDay(d, date));\n if (dateIndex >= 0) {\n // Remove date\n handleValueChange(multipleValue.filter((_, i) => i !== dateIndex));\n } else {\n // Add date\n handleValueChange([...multipleValue, date]);\n }\n }\n };\n\n // Get display value\n const displayValue = useMemo(() => {\n if (!calendarValue) return \"\";\n\n if (mode === \"single\") {\n return formatDate(calendarValue as Date, locale);\n } else if (mode === \"range\") {\n const range = calendarValue as { from?: Date; to?: Date };\n return formatDateRange(range.from, range.to, locale);\n } else {\n return formatMultipleDates(calendarValue as Date[], locale);\n }\n }, [calendarValue, mode, locale]);\n\n // Generate calendar days\n const calendarDays = useMemo(() => {\n const days: Array<{\n date: Date;\n isCurrentMonth: boolean;\n isToday: boolean;\n }> = [];\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n\n const firstDay = getFirstDayOfMonth(currentMonth, firstDayOfWeek);\n const daysInMonth = getDaysInMonth(currentMonth);\n\n // Previous month days\n if (showOutsideDays && firstDay > 0) {\n const prevMonth = new Date(\n currentMonth.getFullYear(),\n currentMonth.getMonth() - 1,\n );\n const daysInPrevMonth = getDaysInMonth(prevMonth);\n for (\n let i = daysInPrevMonth - firstDay + 1;\n i <= daysInPrevMonth;\n i++\n ) {\n const date = new Date(\n prevMonth.getFullYear(),\n prevMonth.getMonth(),\n i,\n );\n days.push({\n date,\n isCurrentMonth: false,\n isToday: isSameDay(date, today),\n });\n }\n }\n\n // Current month days\n for (let i = 1; i <= daysInMonth; i++) {\n const date = new Date(\n currentMonth.getFullYear(),\n currentMonth.getMonth(),\n i,\n );\n days.push({\n date,\n isCurrentMonth: true,\n isToday: isSameDay(date, today),\n });\n }\n\n // Next month days\n if (showOutsideDays) {\n const remainingDays = 42 - days.length; // 6 weeks * 7 days\n const nextMonth = new Date(\n currentMonth.getFullYear(),\n currentMonth.getMonth() + 1,\n );\n for (let i = 1; i <= remainingDays; i++) {\n const date = new Date(\n nextMonth.getFullYear(),\n nextMonth.getMonth(),\n i,\n );\n days.push({\n date,\n isCurrentMonth: false,\n isToday: isSameDay(date, today),\n });\n }\n }\n\n return days;\n }, [currentMonth, showOutsideDays, firstDayOfWeek]);\n\n // Navigate months\n const goToPreviousMonth = () => {\n setCurrentMonth(\n new Date(currentMonth.getFullYear(), currentMonth.getMonth() - 1, 1),\n );\n };\n\n const goToNextMonth = () => {\n setCurrentMonth(\n new Date(currentMonth.getFullYear(), currentMonth.getMonth() + 1, 1),\n );\n };\n\n const goToToday = () => {\n const today = new Date();\n setCurrentMonth(today);\n setFocusedDate(today);\n };\n\n // Keyboard navigation\n const handleKeyDown = (e: React.KeyboardEvent, date: Date) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n handleDateClick(date);\n return;\n }\n\n if (e.key === \"ArrowRight\") {\n e.preventDefault();\n const nextDate = new Date(date);\n nextDate.setDate(nextDate.getDate() + 1);\n setFocusedDate(nextDate);\n // Update month if needed\n if (nextDate.getMonth() !== currentMonth.getMonth()) {\n setCurrentMonth(\n new Date(nextDate.getFullYear(), nextDate.getMonth(), 1),\n );\n }\n return;\n }\n\n if (e.key === \"ArrowLeft\") {\n e.preventDefault();\n const prevDate = new Date(date);\n prevDate.setDate(prevDate.getDate() - 1);\n setFocusedDate(prevDate);\n // Update month if needed\n if (prevDate.getMonth() !== currentMonth.getMonth()) {\n setCurrentMonth(\n new Date(prevDate.getFullYear(), prevDate.getMonth(), 1),\n );\n }\n return;\n }\n\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n const nextDate = new Date(date);\n nextDate.setDate(nextDate.getDate() + 7);\n setFocusedDate(nextDate);\n // Update month if needed\n if (nextDate.getMonth() !== currentMonth.getMonth()) {\n setCurrentMonth(\n new Date(nextDate.getFullYear(), nextDate.getMonth(), 1),\n );\n }\n return;\n }\n\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n const prevDate = new Date(date);\n prevDate.setDate(prevDate.getDate() - 7);\n setFocusedDate(prevDate);\n // Update month if needed\n if (prevDate.getMonth() !== currentMonth.getMonth()) {\n setCurrentMonth(\n new Date(prevDate.getFullYear(), prevDate.getMonth(), 1),\n );\n }\n return;\n }\n\n if (e.key === \"Home\") {\n e.preventDefault();\n const firstDay = new Date(date.getFullYear(), date.getMonth(), 1);\n setFocusedDate(firstDay);\n return;\n }\n\n if (e.key === \"End\") {\n e.preventDefault();\n const lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);\n setFocusedDate(lastDay);\n return;\n }\n\n if (e.key === \"PageUp\") {\n e.preventDefault();\n const prevMonth = new Date(\n date.getFullYear(),\n date.getMonth() - 1,\n date.getDate(),\n );\n setFocusedDate(prevMonth);\n setCurrentMonth(\n new Date(prevMonth.getFullYear(), prevMonth.getMonth(), 1),\n );\n return;\n }\n\n if (e.key === \"PageDown\") {\n e.preventDefault();\n const nextMonth = new Date(\n date.getFullYear(),\n date.getMonth() + 1,\n date.getDate(),\n );\n setFocusedDate(nextMonth);\n setCurrentMonth(\n new Date(nextMonth.getFullYear(), nextMonth.getMonth(), 1),\n );\n return;\n }\n\n if (e.key === \"Escape\") {\n e.preventDefault();\n setOpen(false);\n return;\n }\n };\n\n // Focus management\n useEffect(() => {\n if (focusedDate && open) {\n const dateKey = `${focusedDate.getFullYear()}-${focusedDate.getMonth()}-${focusedDate.getDate()}`;\n const button = dayButtonRefs.current.get(dateKey);\n if (button) {\n button.focus();\n }\n }\n }, [focusedDate, open]);\n\n // Day names\n const dayNames = useMemo(() => {\n const names = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n if (firstDayOfWeek === 1) {\n return [...names.slice(1), names[0]];\n }\n return names;\n }, [firstDayOfWeek]);\n\n // Month/year display\n const monthYearDisplay = currentMonth.toLocaleDateString(locale, {\n month: \"long\",\n year: \"numeric\",\n });\n\n return (\n <div ref={ref} className={cn(\"w-full\", className)} {...props}>\n <Popover.Root open={open} onOpenChange={setOpen}>\n <div className=\"space-y-2\">\n {label && (\n <label className=\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\">\n {label}\n </label>\n )}\n <Popover.Trigger asChild>\n <button\n type=\"button\"\n className={cn(\n \"flex w-full rounded-md border bg-background px-3 py-2 text-sm ring-offset-background\",\n \"placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2\",\n \"disabled:cursor-not-allowed disabled:opacity-50 transition-all duration-200 text-left\",\n error\n ? \"border-error-500 shadow-sm hover:border-error-600 focus-visible:ring-error-500/20 focus-visible:border-error-500\"\n : \"border-border shadow-sm hover:border-primary focus-visible:ring-ring/20 focus-visible:border-primary\",\n \"h-10\",\n inputClassName,\n )}\n onClick={() => setOpen(true)}\n onFocus={() => setOpen(true)}\n aria-label={label || \"Open calendar\"}\n aria-invalid={error}\n >\n {displayValue || (\n <span className=\"text-muted-foreground\">\n {placeholder || \"Select date...\"}\n </span>\n )}\n </button>\n </Popover.Trigger>\n {helperText && (\n <p\n className={cn(\n \"text-sm text-muted-foreground\",\n error && \"text-error-600\",\n )}\n >\n {helperText}\n </p>\n )}\n </div>\n\n <Popover.Portal>\n <Popover.Content\n className={cn(\n \"z-50 w-auto rounded-lg border bg-popover p-4 shadow-lg\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2\",\n \"data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n )}\n sideOffset={5}\n align=\"start\"\n >\n <div\n ref={calendarRef}\n className={cn(\n calendarVariants({ variant, size }),\n calendarClassName,\n )}\n role=\"application\"\n aria-label=\"Calendar\"\n >\n {/* Header */}\n <div className=\"flex items-center justify-between mb-4\">\n <div className=\"flex items-center gap-2\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={goToPreviousMonth}\n aria-label=\"Previous month\"\n >\n <svg\n className=\"h-4 w-4\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M15 19l-7-7 7-7\"\n />\n </svg>\n </Button>\n\n <h3\n className=\"text-sm font-semibold text-popover-foreground\"\n data-testid=\"calendar-month-year\"\n >\n {monthYearDisplay}\n </h3>\n\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={goToNextMonth}\n aria-label=\"Next month\"\n >\n <svg\n className=\"h-4 w-4\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M9 5l7 7-7 7\"\n />\n </svg>\n </Button>\n </div>\n\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={goToToday}\n className=\"text-xs\"\n >\n Today\n </Button>\n </div>\n\n {/* Day names */}\n <div className=\"grid grid-cols-7 gap-1 mb-2\">\n {dayNames.map((day) => (\n <div\n key={day}\n className=\"text-center text-xs font-medium text-muted-foreground\"\n >\n {day}\n </div>\n ))}\n </div>\n\n {/* Calendar grid */}\n <div className=\"grid grid-cols-7 gap-1\">\n {calendarDays.map((day, index) => {\n const isSelected =\n mode === \"single\"\n ? isSameDay(day.date, calendarValue as Date | undefined)\n : mode === \"range\"\n ? isDateInRange(\n day.date,\n (calendarValue as { from?: Date; to?: Date })\n ?.from,\n (calendarValue as { from?: Date; to?: Date })?.to,\n )\n : (calendarValue as Date[])?.some((d) =>\n isSameDay(d, day.date),\n );\n\n const isDisabled = isDateDisabled(\n day.date,\n minDate,\n maxDate,\n disabledDates,\n disabledDays,\n );\n\n const isInRange =\n mode === \"range\" &&\n (calendarValue as { from?: Date; to?: Date })?.from &&\n !(calendarValue as { from?: Date; to?: Date })?.to &&\n day.date >=\n (calendarValue as { from?: Date; to?: Date }).from!;\n\n const dateKey = `${day.date.getFullYear()}-${day.date.getMonth()}-${day.date.getDate()}`;\n const isFocused =\n focusedDate && isSameDay(day.date, focusedDate);\n\n return (\n <button\n key={`${day.date.getTime()}-${index}`}\n ref={(el) => {\n if (el) {\n dayButtonRefs.current.set(dateKey, el);\n } else {\n dayButtonRefs.current.delete(dateKey);\n }\n }}\n type=\"button\"\n onClick={() => {\n if (showOutsideDays && !day.isCurrentMonth) {\n // Navigate to the month of the clicked date\n setCurrentMonth(\n new Date(\n day.date.getFullYear(),\n day.date.getMonth(),\n 1,\n ),\n );\n // Then select the date\n setTimeout(() => handleDateClick(day.date), 0);\n } else {\n handleDateClick(day.date);\n }\n }}\n onKeyDown={(e) => handleKeyDown(e, day.date)}\n disabled={\n isDisabled ||\n (showOutsideDays ? false : !day.isCurrentMonth)\n }\n className={cn(\n calendarDayVariants({\n variant: isSelected\n ? \"selected\"\n : isInRange\n ? \"range\"\n : day.isToday\n ? \"today\"\n : !day.isCurrentMonth\n ? \"outside\"\n : isDisabled\n ? \"disabled\"\n : \"default\",\n size,\n }),\n !day.isCurrentMonth && \"opacity-50\",\n isFocused &&\n \"ring-2 ring-brand-500 ring-offset-2 z-10\",\n )}\n aria-label={day.date.toLocaleDateString(locale, {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n })}\n aria-selected={isSelected}\n aria-disabled={isDisabled}\n tabIndex={isFocused ? 0 : -1}\n >\n {day.date.getDate()}\n </button>\n );\n })}\n </div>\n\n {/* Footer for range mode */}\n {mode === \"range\" &&\n (calendarValue as { from?: Date; to?: Date })?.from &&\n !(calendarValue as { from?: Date; to?: Date })?.to && (\n <div className=\"mt-4 pt-4 border-t border-border\">\n <p className=\"text-xs text-muted-foreground text-center\">\n Select end date\n </p>\n </div>\n )}\n </div>\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n </div>\n );\n },\n);\n\nCalendar.displayName = \"Calendar\";\n\nexport { calendarVariants, calendarDayVariants };\n"]}
@@ -1,3 +0,0 @@
1
- "use client";
2
- import {a as a$1}from'./chunk-COXN6XBA.js';import {a}from'./chunk-AC2JBXHQ.js';import e from'react';import {cva}from'class-variance-authority';var c=cva("animate-pulse rounded-md bg-muted",{variants:{variant:{default:"bg-muted",light:"bg-muted/50",dark:"bg-muted",primary:"bg-primary/10",success:"bg-success-200",warning:"bg-warning-200",error:"bg-error-200"},size:{xs:"h-2",sm:"h-3",md:"h-4",lg:"h-6",xl:"h-8","2xl":"h-12","3xl":"h-16"},shape:{rectangle:"rounded-md",circle:"rounded-full",square:"rounded-lg",pill:"rounded-full"},animation:{pulse:"animate-pulse",wave:"animate-wave",none:"animate-none"}},defaultVariants:{variant:"default",size:"md",shape:"rectangle",animation:"pulse"}}),N=e.forwardRef(({className:n,children:s,width:a$1,height:r,variant:t="default",size:o="md",shape:i="rectangle",animation:d="pulse",loading:u=true,...f},h)=>{if(!u&&s)return e.createElement(e.Fragment,null,s);let p={width:a$1||void 0,height:r||void 0};return e.createElement("div",{ref:h,className:a(c({variant:t,size:o,shape:i,animation:d}),n),style:p,"aria-label":"Loading content",role:"status",...f})});N.displayName="Skeleton";var l=a$1(N),k=e.forwardRef(({className:n,lines:s=3,lastLineWidth:a$1="75%",spacing:r="md",variant:t="default",animation:o="pulse",loading:i=true,...d},u)=>i?e.createElement("div",{ref:u,className:a("space-y-2",{none:"space-y-0",sm:"space-y-1",md:"space-y-2",lg:"space-y-3"}[r],n),"aria-label":"Loading text content",role:"status",...d},Array.from({length:s},(h,p)=>e.createElement("div",{key:p,className:a(c({variant:t,animation:o}),"h-4 rounded-md",p===s-1&&"w-3/4"),style:{width:p===s-1?a$1:"100%"}}))):null);k.displayName="SkeletonText";var v=e.forwardRef(({className:n,size:s="md",variant:a$1="default",animation:r="pulse",loading:t=true,...o},i)=>{if(!t)return null;let d={xs:"h-6 w-6",sm:"h-8 w-8",md:"h-10 w-10",lg:"h-12 w-12",xl:"h-16 w-16","2xl":"h-20 w-20"};return e.createElement("div",{ref:i,className:a(c({variant:a$1,animation:r}),"rounded-full",d[s],n),"aria-label":"Loading avatar",role:"status",...o})});v.displayName="SkeletonAvatar";var g=e.forwardRef(({className:n,size:s="md",variant:a$1="default",animation:r="pulse",loading:t=true,...o},i)=>{if(!t)return null;let d={sm:"h-8 px-3",md:"h-10 px-4",lg:"h-12 px-6"},u={default:"bg-muted",primary:"bg-primary/10",secondary:"bg-secondary",outline:"bg-muted/50 border border-border",ghost:"bg-muted/50"},f=a$1||"default";return e.createElement("div",{ref:i,className:a(c({animation:r}),"rounded-md",d[s],u[f],n),"aria-label":"Loading button",role:"status",...o})});g.displayName="SkeletonButton";var y=e.forwardRef(({className:n,showAvatar:s=true,showActions:a$1=true,variant:r="default",animation:t="pulse",loading:o=true,...i},d)=>o?e.createElement("div",{ref:d,className:a("p-6 border border-border rounded-lg bg-card",n),"aria-label":"Loading card content",role:"status",...i},e.createElement("div",{className:"space-y-4"},e.createElement("div",{className:"flex items-center space-x-3"},s&&e.createElement(v,{size:"md",variant:r,animation:t}),e.createElement("div",{className:"flex-1 space-y-2"},e.createElement(l,{className:"h-4 w-3/4",variant:r,animation:t}),e.createElement(l,{className:"h-3 w-1/2",variant:r,animation:t}))),e.createElement("div",{className:"space-y-2"},e.createElement(l,{className:"h-4 w-full",variant:r,animation:t}),e.createElement(l,{className:"h-4 w-5/6",variant:r,animation:t}),e.createElement(l,{className:"h-4 w-4/5",variant:r,animation:t})),a$1&&e.createElement("div",{className:"flex space-x-2 pt-4"},e.createElement(g,{size:"sm",animation:t}),e.createElement(g,{size:"sm",animation:t})))):null);y.displayName="SkeletonCard";var S=e.forwardRef(({className:n,variant:s="default",animation:a$1="pulse",loading:r=true,...t},o)=>r?e.createElement("div",{ref:o,className:a("space-y-3",n),"aria-label":"Loading table content",role:"status",...t},e.createElement("div",{className:"grid grid-cols-4 gap-4"},e.createElement(l,{className:"h-4",variant:s,animation:a$1}),e.createElement(l,{className:"h-4",variant:s,animation:a$1}),e.createElement(l,{className:"h-4",variant:s,animation:a$1}),e.createElement(l,{className:"h-4",variant:s,animation:a$1})),Array.from({length:5},(i,d)=>e.createElement("div",{key:d,className:"grid grid-cols-4 gap-4"},e.createElement(l,{className:"h-4",variant:s,animation:a$1}),e.createElement(l,{className:"h-4",variant:s,animation:a$1}),e.createElement(l,{className:"h-4",variant:s,animation:a$1}),e.createElement(l,{className:"h-4",variant:s,animation:a$1})))):null);S.displayName="SkeletonTable";var w=e.forwardRef(({className:n,items:s=5,variant:a$1="default",animation:r="pulse",loading:t=true,...o},i)=>t?e.createElement("div",{ref:i,className:a("space-y-3",n),"aria-label":"Loading list content",role:"status",...o},Array.from({length:s},(d,u)=>e.createElement("div",{key:u,className:"flex items-center space-x-3"},e.createElement(v,{size:"sm",variant:a$1,animation:r}),e.createElement("div",{className:"flex-1 space-y-2"},e.createElement(l,{className:"h-4 w-3/4",variant:a$1,animation:r}),e.createElement(l,{className:"h-3 w-1/2",variant:a$1,animation:r}))))):null);w.displayName="SkeletonList";export{c as a,l as b,k as c,v as d,g as e,y as f,S as g,w as h};//# sourceMappingURL=chunk-EIXD3Y4R.js.map
3
- //# sourceMappingURL=chunk-EIXD3Y4R.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/core/skeleton.tsx"],"names":["skeletonVariants","cva","SkeletonComponent","React","className","children","width","height","variant","size","shape","animation","loading","props","ref","style","cn","Skeleton","memo","SkeletonText","lines","lastLineWidth","spacing","_","index","SkeletonAvatar","sizeClasses","SkeletonButton","variantClasses","finalVariant","SkeletonCard","showAvatar","showActions","SkeletonTable","SkeletonList","items"],"mappings":"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","file":"chunk-EIXD3Y4R.js","sourcesContent":["import React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\nimport { memo } from \"../../lib/memo\";\n\n// Skeleton variants\nconst skeletonVariants = cva(\"animate-pulse rounded-md bg-muted\", {\n variants: {\n variant: {\n default: \"bg-muted\",\n light: \"bg-muted/50\",\n dark: \"bg-muted\",\n primary: \"bg-primary/10\",\n success: \"bg-success-200\",\n warning: \"bg-warning-200\",\n error: \"bg-error-200\",\n },\n size: {\n xs: \"h-2\",\n sm: \"h-3\",\n md: \"h-4\",\n lg: \"h-6\",\n xl: \"h-8\",\n \"2xl\": \"h-12\",\n \"3xl\": \"h-16\",\n },\n shape: {\n rectangle: \"rounded-md\",\n circle: \"rounded-full\",\n square: \"rounded-lg\",\n pill: \"rounded-full\",\n },\n animation: {\n pulse: \"animate-pulse\",\n wave: \"animate-wave\",\n none: \"animate-none\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n shape: \"rectangle\",\n animation: \"pulse\",\n },\n});\n\n// Types\nexport interface SkeletonProps extends VariantProps<typeof skeletonVariants> {\n className?: string;\n children?: React.ReactNode;\n width?: string | number;\n height?: string | number;\n lines?: number;\n spacing?: \"none\" | \"sm\" | \"md\" | \"lg\";\n loading?: boolean;\n}\n\nexport interface SkeletonTextProps extends Omit<\n SkeletonProps,\n \"shape\" | \"size\"\n> {\n lines?: number;\n lastLineWidth?: string | number;\n}\n\nexport interface SkeletonAvatarProps extends Omit<\n SkeletonProps,\n \"shape\" | \"size\"\n> {\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\n}\n\nexport interface SkeletonButtonProps extends Omit<\n SkeletonProps,\n \"shape\" | \"size\" | \"variant\"\n> {\n size?: \"sm\" | \"md\" | \"lg\";\n variant?: \"default\" | \"primary\" | \"secondary\" | \"outline\" | \"ghost\";\n}\n\nexport interface SkeletonCardProps extends Omit<\n SkeletonProps,\n \"shape\" | \"size\"\n> {\n showAvatar?: boolean;\n showActions?: boolean;\n}\n\n// Main Skeleton Component\nconst SkeletonComponent = React.forwardRef<HTMLDivElement, SkeletonProps>(\n (\n {\n className,\n children,\n width,\n height,\n variant = \"default\",\n size = \"md\",\n shape = \"rectangle\",\n animation = \"pulse\",\n loading = true,\n ...props\n },\n ref,\n ) => {\n if (!loading && children) {\n return <>{children}</>;\n }\n\n const style = {\n width: width || undefined,\n height: height || undefined,\n };\n\n return (\n <div\n ref={ref}\n className={cn(\n skeletonVariants({ variant, size, shape, animation }),\n className,\n )}\n style={style}\n aria-label=\"Loading content\"\n role=\"status\"\n {...props}\n />\n );\n },\n);\n\nSkeletonComponent.displayName = \"Skeleton\";\n\n// Memoize Skeleton for performance optimization\nexport const Skeleton = memo(SkeletonComponent) as typeof SkeletonComponent;\n\n// Skeleton Text Component\nexport const SkeletonText = React.forwardRef<HTMLDivElement, SkeletonTextProps>(\n (\n {\n className,\n lines = 3,\n lastLineWidth = \"75%\",\n spacing = \"md\",\n variant = \"default\",\n animation = \"pulse\",\n loading = true,\n ...props\n },\n ref,\n ) => {\n if (!loading) {\n return null;\n }\n\n const spacingClasses = {\n none: \"space-y-0\",\n sm: \"space-y-1\",\n md: \"space-y-2\",\n lg: \"space-y-3\",\n };\n\n return (\n <div\n ref={ref}\n className={cn(\"space-y-2\", spacingClasses[spacing], className)}\n aria-label=\"Loading text content\"\n role=\"status\"\n {...props}\n >\n {Array.from({ length: lines }, (_, index) => (\n <div\n key={index}\n className={cn(\n skeletonVariants({ variant, animation }),\n \"h-4 rounded-md\",\n index === lines - 1 && \"w-3/4\",\n )}\n style={{\n width: index === lines - 1 ? lastLineWidth : \"100%\",\n }}\n />\n ))}\n </div>\n );\n },\n);\n\nSkeletonText.displayName = \"SkeletonText\";\n\n// Skeleton Avatar Component\nexport const SkeletonAvatar = React.forwardRef<\n HTMLDivElement,\n SkeletonAvatarProps\n>(\n (\n {\n className,\n size = \"md\",\n variant = \"default\",\n animation = \"pulse\",\n loading = true,\n ...props\n },\n ref,\n ) => {\n if (!loading) {\n return null;\n }\n\n const sizeClasses = {\n xs: \"h-6 w-6\",\n sm: \"h-8 w-8\",\n md: \"h-10 w-10\",\n lg: \"h-12 w-12\",\n xl: \"h-16 w-16\",\n \"2xl\": \"h-20 w-20\",\n };\n\n return (\n <div\n ref={ref}\n className={cn(\n skeletonVariants({ variant, animation }),\n \"rounded-full\",\n sizeClasses[size],\n className,\n )}\n aria-label=\"Loading avatar\"\n role=\"status\"\n {...props}\n />\n );\n },\n);\n\nSkeletonAvatar.displayName = \"SkeletonAvatar\";\n\n// Skeleton Button Component\nexport const SkeletonButton = React.forwardRef<\n HTMLDivElement,\n SkeletonButtonProps\n>(\n (\n {\n className,\n size = \"md\",\n variant = \"default\",\n animation = \"pulse\",\n loading = true,\n ...props\n },\n ref,\n ) => {\n if (!loading) {\n return null;\n }\n\n const sizeClasses = {\n sm: \"h-8 px-3\",\n md: \"h-10 px-4\",\n lg: \"h-12 px-6\",\n };\n\n const variantClasses = {\n default: \"bg-muted\",\n primary: \"bg-primary/10\",\n secondary: \"bg-secondary\",\n outline: \"bg-muted/50 border border-border\",\n ghost: \"bg-muted/50\",\n };\n\n const finalVariant = variant || \"default\";\n\n return (\n <div\n ref={ref}\n className={cn(\n skeletonVariants({ animation }),\n \"rounded-md\",\n sizeClasses[size],\n variantClasses[finalVariant],\n className,\n )}\n aria-label=\"Loading button\"\n role=\"status\"\n {...props}\n />\n );\n },\n);\n\nSkeletonButton.displayName = \"SkeletonButton\";\n\n// Skeleton Card Component\nexport const SkeletonCard = React.forwardRef<HTMLDivElement, SkeletonCardProps>(\n (\n {\n className,\n showAvatar = true,\n showActions = true,\n variant = \"default\",\n animation = \"pulse\",\n loading = true,\n ...props\n },\n ref,\n ) => {\n if (!loading) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n className={cn(\"p-6 border border-border rounded-lg bg-card\", className)}\n aria-label=\"Loading card content\"\n role=\"status\"\n {...props}\n >\n <div className=\"space-y-4\">\n {/* Header with avatar and title */}\n <div className=\"flex items-center space-x-3\">\n {showAvatar && (\n <SkeletonAvatar\n size=\"md\"\n variant={variant}\n animation={animation}\n />\n )}\n <div className=\"flex-1 space-y-2\">\n <Skeleton\n className=\"h-4 w-3/4\"\n variant={variant}\n animation={animation}\n />\n <Skeleton\n className=\"h-3 w-1/2\"\n variant={variant}\n animation={animation}\n />\n </div>\n </div>\n\n {/* Content */}\n <div className=\"space-y-2\">\n <Skeleton\n className=\"h-4 w-full\"\n variant={variant}\n animation={animation}\n />\n <Skeleton\n className=\"h-4 w-5/6\"\n variant={variant}\n animation={animation}\n />\n <Skeleton\n className=\"h-4 w-4/5\"\n variant={variant}\n animation={animation}\n />\n </div>\n\n {/* Actions */}\n {showActions && (\n <div className=\"flex space-x-2 pt-4\">\n <SkeletonButton size=\"sm\" animation={animation} />\n <SkeletonButton size=\"sm\" animation={animation} />\n </div>\n )}\n </div>\n </div>\n );\n },\n);\n\nSkeletonCard.displayName = \"SkeletonCard\";\n\n// Skeleton Table Component\nexport const SkeletonTable = React.forwardRef<HTMLDivElement, SkeletonProps>(\n (\n {\n className,\n variant = \"default\",\n animation = \"pulse\",\n loading = true,\n ...props\n },\n ref,\n ) => {\n if (!loading) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n className={cn(\"space-y-3\", className)}\n aria-label=\"Loading table content\"\n role=\"status\"\n {...props}\n >\n {/* Header */}\n <div className=\"grid grid-cols-4 gap-4\">\n <Skeleton className=\"h-4\" variant={variant} animation={animation} />\n <Skeleton className=\"h-4\" variant={variant} animation={animation} />\n <Skeleton className=\"h-4\" variant={variant} animation={animation} />\n <Skeleton className=\"h-4\" variant={variant} animation={animation} />\n </div>\n\n {/* Rows */}\n {Array.from({ length: 5 }, (_, index) => (\n <div key={index} className=\"grid grid-cols-4 gap-4\">\n <Skeleton className=\"h-4\" variant={variant} animation={animation} />\n <Skeleton className=\"h-4\" variant={variant} animation={animation} />\n <Skeleton className=\"h-4\" variant={variant} animation={animation} />\n <Skeleton className=\"h-4\" variant={variant} animation={animation} />\n </div>\n ))}\n </div>\n );\n },\n);\n\nSkeletonTable.displayName = \"SkeletonTable\";\n\n// Skeleton List Component\nexport const SkeletonList = React.forwardRef<\n HTMLDivElement,\n SkeletonProps & { items?: number }\n>(\n (\n {\n className,\n items = 5,\n variant = \"default\",\n animation = \"pulse\",\n loading = true,\n ...props\n },\n ref,\n ) => {\n if (!loading) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n className={cn(\"space-y-3\", className)}\n aria-label=\"Loading list content\"\n role=\"status\"\n {...props}\n >\n {Array.from({ length: items }, (_, index) => (\n <div key={index} className=\"flex items-center space-x-3\">\n <SkeletonAvatar size=\"sm\" variant={variant} animation={animation} />\n <div className=\"flex-1 space-y-2\">\n <Skeleton\n className=\"h-4 w-3/4\"\n variant={variant}\n animation={animation}\n />\n <Skeleton\n className=\"h-3 w-1/2\"\n variant={variant}\n animation={animation}\n />\n </div>\n </div>\n ))}\n </div>\n );\n },\n);\n\nSkeletonList.displayName = \"SkeletonList\";\n\n// Export variants for external use\nexport { skeletonVariants };\n"]}