@zentauri-ui/zentauri-components 2.1.5 → 2.1.7

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 (149) hide show
  1. package/README.md +12 -8
  2. package/cli/cli.integration.test.ts +36 -0
  3. package/cli/index.mjs +91 -12
  4. package/cli/index.test.ts +180 -0
  5. package/cli/props.json +609 -14
  6. package/cli/registry.json +22 -0
  7. package/cli/rewrite-imports.mjs +29 -4
  8. package/cli/rewrite-imports.test.ts +35 -0
  9. package/dist/{chunk-RENXBUZY.js → chunk-5ELR6MIN.js} +6 -6
  10. package/dist/{chunk-RENXBUZY.js.map → chunk-5ELR6MIN.js.map} +1 -1
  11. package/dist/chunk-5FU57ZVQ.js +19 -0
  12. package/dist/{chunk-D2GISTDL.js.map → chunk-5FU57ZVQ.js.map} +1 -1
  13. package/dist/chunk-74SKXGTM.js +4 -0
  14. package/dist/chunk-74SKXGTM.js.map +1 -0
  15. package/dist/{chunk-WBZKMSXW.mjs → chunk-7UXPXCKV.mjs} +3 -3
  16. package/dist/{chunk-WBZKMSXW.mjs.map → chunk-7UXPXCKV.mjs.map} +1 -1
  17. package/dist/chunk-COCPCZMR.mjs +77 -0
  18. package/dist/chunk-COCPCZMR.mjs.map +1 -0
  19. package/dist/chunk-CYKSS5S5.mjs +128 -0
  20. package/dist/chunk-CYKSS5S5.mjs.map +1 -0
  21. package/dist/chunk-DBNGLT5U.mjs +221 -0
  22. package/dist/chunk-DBNGLT5U.mjs.map +1 -0
  23. package/dist/{chunk-BL6UVCV7.mjs → chunk-FUCW5GPE.mjs} +36 -11
  24. package/dist/chunk-FUCW5GPE.mjs.map +1 -0
  25. package/dist/chunk-G7FVHZRB.js +225 -0
  26. package/dist/chunk-G7FVHZRB.js.map +1 -0
  27. package/dist/chunk-HMDH4BQJ.js +123 -0
  28. package/dist/chunk-HMDH4BQJ.js.map +1 -0
  29. package/dist/chunk-I7EBE7BD.js +98 -0
  30. package/dist/chunk-I7EBE7BD.js.map +1 -0
  31. package/dist/{chunk-PAG5CTLN.mjs → chunk-KVSRUAXP.mjs} +3 -3
  32. package/dist/{chunk-PAG5CTLN.mjs.map → chunk-KVSRUAXP.mjs.map} +1 -1
  33. package/dist/chunk-LHBJD57K.mjs +143 -0
  34. package/dist/chunk-LHBJD57K.mjs.map +1 -0
  35. package/dist/chunk-OYAJG2BO.js +83 -0
  36. package/dist/chunk-OYAJG2BO.js.map +1 -0
  37. package/dist/chunk-PG7LQVU6.js +86 -0
  38. package/dist/chunk-PG7LQVU6.js.map +1 -0
  39. package/dist/chunk-PTU5ZAYX.js +145 -0
  40. package/dist/chunk-PTU5ZAYX.js.map +1 -0
  41. package/dist/chunk-QKO5DA4N.mjs +81 -0
  42. package/dist/chunk-QKO5DA4N.mjs.map +1 -0
  43. package/dist/chunk-T7PIKDUZ.js +130 -0
  44. package/dist/chunk-T7PIKDUZ.js.map +1 -0
  45. package/dist/chunk-TDK5TVJE.mjs +3 -0
  46. package/dist/chunk-TDK5TVJE.mjs.map +1 -0
  47. package/dist/{chunk-NZSZE36T.js → chunk-TJ2EWPER.js} +42 -10
  48. package/dist/chunk-TJ2EWPER.js.map +1 -0
  49. package/dist/chunk-VBNW2B4D.mjs +3 -0
  50. package/dist/chunk-VBNW2B4D.mjs.map +1 -0
  51. package/dist/chunk-W6DO36XD.mjs +96 -0
  52. package/dist/chunk-W6DO36XD.mjs.map +1 -0
  53. package/dist/chunk-XR3J46TZ.js +4 -0
  54. package/dist/chunk-XR3J46TZ.js.map +1 -0
  55. package/dist/chunk-ZOHCADDL.mjs +121 -0
  56. package/dist/chunk-ZOHCADDL.mjs.map +1 -0
  57. package/dist/design-system/audio-player.d.ts +61 -0
  58. package/dist/design-system/audio-player.d.ts.map +1 -0
  59. package/dist/design-system/data-table.d.ts +8 -0
  60. package/dist/design-system/data-table.d.ts.map +1 -0
  61. package/dist/design-system/facade.js +11 -10
  62. package/dist/design-system/facade.js.map +1 -1
  63. package/dist/design-system/facade.mjs +10 -9
  64. package/dist/design-system/facade.mjs.map +1 -1
  65. package/dist/design-system/index.d.ts +2 -0
  66. package/dist/design-system/index.d.ts.map +1 -1
  67. package/dist/hooks/useTableFilter.js +6 -116
  68. package/dist/hooks/useTableFilter.js.map +1 -1
  69. package/dist/hooks/useTableFilter.mjs +1 -118
  70. package/dist/hooks/useTableFilter.mjs.map +1 -1
  71. package/dist/hooks/useTableSort.js +6 -91
  72. package/dist/hooks/useTableSort.js.map +1 -1
  73. package/dist/hooks/useTableSort.mjs +1 -93
  74. package/dist/hooks/useTableSort.mjs.map +1 -1
  75. package/dist/hooks/useVirtualList.js +6 -76
  76. package/dist/hooks/useVirtualList.js.map +1 -1
  77. package/dist/hooks/useVirtualList.mjs +1 -78
  78. package/dist/hooks/useVirtualList.mjs.map +1 -1
  79. package/dist/ui/audio-player/audio-player-base.d.ts +20 -0
  80. package/dist/ui/audio-player/audio-player-base.d.ts.map +1 -0
  81. package/dist/ui/audio-player/audio-player.d.ts +6 -0
  82. package/dist/ui/audio-player/audio-player.d.ts.map +1 -0
  83. package/dist/ui/audio-player/index.d.ts +5 -0
  84. package/dist/ui/audio-player/index.d.ts.map +1 -0
  85. package/dist/ui/audio-player/types.d.ts +44 -0
  86. package/dist/ui/audio-player/types.d.ts.map +1 -0
  87. package/dist/ui/audio-player/variants.d.ts +12 -0
  88. package/dist/ui/audio-player/variants.d.ts.map +1 -0
  89. package/dist/ui/audio-player.js +556 -0
  90. package/dist/ui/audio-player.js.map +1 -0
  91. package/dist/ui/audio-player.mjs +545 -0
  92. package/dist/ui/audio-player.mjs.map +1 -0
  93. package/dist/ui/buttons/animated.js +13 -12
  94. package/dist/ui/buttons/animated.js.map +1 -1
  95. package/dist/ui/buttons/animated.mjs +11 -10
  96. package/dist/ui/buttons/animated.mjs.map +1 -1
  97. package/dist/ui/buttons.js +15 -13
  98. package/dist/ui/buttons.mjs +13 -11
  99. package/dist/ui/checkbox.js +7 -123
  100. package/dist/ui/checkbox.js.map +1 -1
  101. package/dist/ui/checkbox.mjs +2 -126
  102. package/dist/ui/checkbox.mjs.map +1 -1
  103. package/dist/ui/data-table/data-table-base.d.ts +6 -0
  104. package/dist/ui/data-table/data-table-base.d.ts.map +1 -0
  105. package/dist/ui/data-table/data-table.d.ts +6 -0
  106. package/dist/ui/data-table/data-table.d.ts.map +1 -0
  107. package/dist/ui/data-table/index.d.ts +4 -0
  108. package/dist/ui/data-table/index.d.ts.map +1 -0
  109. package/dist/ui/data-table/types.d.ts +92 -0
  110. package/dist/ui/data-table/types.d.ts.map +1 -0
  111. package/dist/ui/data-table/variants.d.ts +8 -0
  112. package/dist/ui/data-table/variants.d.ts.map +1 -0
  113. package/dist/ui/data-table.js +620 -0
  114. package/dist/ui/data-table.js.map +1 -0
  115. package/dist/ui/data-table.mjs +611 -0
  116. package/dist/ui/data-table.mjs.map +1 -0
  117. package/dist/ui/dynamic-stepper.js +23 -22
  118. package/dist/ui/dynamic-stepper.js.map +1 -1
  119. package/dist/ui/dynamic-stepper.mjs +12 -11
  120. package/dist/ui/dynamic-stepper.mjs.map +1 -1
  121. package/dist/ui/inputs.js +7 -138
  122. package/dist/ui/inputs.js.map +1 -1
  123. package/dist/ui/inputs.mjs +2 -141
  124. package/dist/ui/inputs.mjs.map +1 -1
  125. package/dist/ui/pagination.js +25 -225
  126. package/dist/ui/pagination.js.map +1 -1
  127. package/dist/ui/pagination.mjs +13 -227
  128. package/dist/ui/pagination.mjs.map +1 -1
  129. package/dist/ui/table.js +1 -0
  130. package/dist/ui/table.mjs +1 -0
  131. package/package.json +1 -1
  132. package/src/design-system/audio-player.ts +109 -0
  133. package/src/design-system/data-table.ts +20 -0
  134. package/src/design-system/index.ts +2 -0
  135. package/src/ui/audio-player/audio-player-base.tsx +557 -0
  136. package/src/ui/audio-player/audio-player.test.tsx +485 -0
  137. package/src/ui/audio-player/audio-player.tsx +8 -0
  138. package/src/ui/audio-player/index.ts +24 -0
  139. package/src/ui/audio-player/types.ts +57 -0
  140. package/src/ui/audio-player/variants.ts +43 -0
  141. package/src/ui/data-table/data-table-base.tsx +701 -0
  142. package/src/ui/data-table/data-table.test.tsx +389 -0
  143. package/src/ui/data-table/data-table.tsx +11 -0
  144. package/src/ui/data-table/index.ts +24 -0
  145. package/src/ui/data-table/types.ts +121 -0
  146. package/src/ui/data-table/variants.ts +21 -0
  147. package/dist/chunk-BL6UVCV7.mjs.map +0 -1
  148. package/dist/chunk-D2GISTDL.js +0 -19
  149. package/dist/chunk-NZSZE36T.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/design-system/audio-player.ts"],"names":[],"mappings":";;;AAAO,IAAM,kBAAA,GAAqB;AAAA,EAChC,QAAA;AAAA,EACA,oEAAA;AAAA,EACA,sIAAA;AAAA,EACA,2JAAA;AAAA,EACA,4KAAA;AAAA,EACA;AACF;AAEO,IAAM,yBAAA,GAA4B;AAAA,EACvC,OAAA,EACE,0KAAA;AAAA,EACF,SAAA,EACE,wKAAA;AAAA,EACF,WAAA,EACE,gMAAA;AAAA,EACF,IAAA,EAAM,8KAAA;AAAA,EACN,IAAA,EAAM,8KAAA;AAAA,EACN,KAAA,EACE,kLAAA;AAAA,EACF,IAAA,EAAM,8KAAA;AAAA,EACN,IAAA,EAAM,8KAAA;AAAA,EACN,KAAA,EACE,kLAAA;AAAA,EACF,QAAA,EACE,8LAAA;AAAA,EACF,QAAA,EACE,8LAAA;AAAA,EACF,IAAA,EAAM,8KAAA;AAAA,EACN,GAAA,EAAK,0KAAA;AAAA,EACL,KAAA,EACE,kLAAA;AAAA,EACF,IAAA,EAAM,8KAAA;AAAA,EACN,KAAA,EACE,kLAAA;AAAA,EACF,QAAA,EACE,8LAAA;AAAA,EACF,MAAA,EACE,sLAAA;AAAA,EACF,MAAA,EACE,sLAAA;AAAA,EACF,OAAA,EACE,0LAAA;AAAA,EACF,OAAA,EACE,0LAAA;AAAA,EACF,OAAA,EACE,0LAAA;AAAA,EACF,MAAA,EACE,sLAAA;AAAA,EACF,MAAA,EACE,sLAAA;AAAA,EACF,IAAA,EAAM,8KAAA;AAAA,EACN,IAAA,EAAM,8KAAA;AAAA,EACN,GAAA,EAAK,0KAAA;AAAA,EACL,IAAA,EAAM,8KAAA;AAAA,EACN,MAAA,EACE,sLAAA;AAAA,EACF,MAAA,EACE,sLAAA;AAAA,EACF,eAAA,EACE,6MAAA;AAAA,EACF,gBAAA,EACE,+MAAA;AAAA,EACF,cAAA,EACE,2MAAA;AAAA,EACF,iBAAA,EACE,iNAAA;AAAA,EACF,iBAAA,EACE,iNAAA;AAAA,EACF,eAAA,EACE,6MAAA;AAAA,EACF,iBAAA,EACE,iNAAA;AAAA,EACF,eAAA,EACE,6MAAA;AAAA,EACF,iBAAA,EACE;AACJ;AAEO,IAAM,mBAAA,GAAsB;AAAA,EACjC,EAAA,EAAI,mBAAA;AAAA,EACJ,EAAA,EAAI,mBAAA;AAAA,EACJ,EAAA,EAAI;AACN;AAEO,IAAM,oBAAA,GAAuB;AAAA,EAClC,IAAA,EAAM,cAAA;AAAA,EACN,OAAA,EAAS,YAAA;AAAA,EACT,IAAA,EAAM;AACR;AAEO,IAAM,uBAAA,GAA0B;AAAA,EACrC,gDAAA;AAAA,EACA,mBAAA;AAAA,EACA,kKAAA;AAAA,EACA;AACF;AAEO,IAAM,wBAAA,GAA2B;AAAA,EACtC,EAAA,EAAI,KAAA;AAAA,EACJ,EAAA,EAAI,OAAA;AAAA,EACJ,EAAA,EAAI;AACN;AAEO,IAAM,qBAAA,GACX;AAEK,IAAM,sBAAA,GACX","file":"chunk-PG7LQVU6.js","sourcesContent":["export const zuiAudioPlayerBase = [\n \"w-full\",\n \"rounded-[var(--zui-audio-player-radius,var(--zui-radius,0.75rem))]\",\n \"bg-[var(--zui-audio-player-bg,var(--zui-surface,#ffffff))] dark:bg-[var(--zui-audio-player-bg-dark,var(--zui-surface-dark,#0f172a))]\",\n \"border border-[var(--zui-audio-player-border,var(--zui-border,#e2e8f0))] dark:border-[var(--zui-audio-player-border-dark,var(--zui-border-dark,#1e293b))]\",\n \"shadow-[var(--zui-audio-player-shadow,var(--zui-shadow,0_1px_2px_#0f172a14))] dark:shadow-[var(--zui-audio-player-shadow-dark,var(--zui-shadow-dark,0_1px_2px_#0f172a1f))]\",\n \"text-[color:var(--zui-audio-player-fg,var(--zui-fg,#0f172a))] dark:text-[color:var(--zui-audio-player-fg-dark,var(--zui-fg-dark,#f8fafc))]\",\n] as const;\n\nexport const zuiAudioPlayerAppearances = {\n default:\n \"[--audio-fill:var(--zui-audio-player-default-fill,var(--zui-brand,#0f172a))] dark:[--audio-fill:var(--zui-audio-player-default-fill-dark,var(--zui-brand-dark,#f8fafc))]\",\n secondary:\n \"[--audio-fill:var(--zui-audio-player-secondary-fill,var(--zui-fg,#475569))] dark:[--audio-fill:var(--zui-audio-player-secondary-fill-dark,var(--zui-fg-dark,#94a3b8))]\",\n destructive:\n \"[--audio-fill:var(--zui-audio-player-destructive-fill,var(--zui-status-error,#dc2626))] dark:[--audio-fill:var(--zui-audio-player-destructive-fill-dark,var(--zui-status-error-dark,#ef4444))]\",\n blue: \"[--audio-fill:var(--zui-audio-player-blue-fill,var(--zui-color-blue,#2563eb))] dark:[--audio-fill:var(--zui-audio-player-blue-fill-dark,var(--zui-color-blue-dark,#3b82f6))]\",\n cyan: \"[--audio-fill:var(--zui-audio-player-cyan-fill,var(--zui-color-cyan,#0891b2))] dark:[--audio-fill:var(--zui-audio-player-cyan-fill-dark,var(--zui-color-cyan-dark,#22d3ee))]\",\n green:\n \"[--audio-fill:var(--zui-audio-player-green-fill,var(--zui-color-green,#16a34a))] dark:[--audio-fill:var(--zui-audio-player-green-fill-dark,var(--zui-color-green-dark,#22c55e))]\",\n lime: \"[--audio-fill:var(--zui-audio-player-lime-fill,var(--zui-color-lime,#65a30d))] dark:[--audio-fill:var(--zui-audio-player-lime-fill-dark,var(--zui-color-lime-dark,#a3e635))]\",\n mint: \"[--audio-fill:var(--zui-audio-player-mint-fill,var(--zui-color-mint,#10b981))] dark:[--audio-fill:var(--zui-audio-player-mint-fill-dark,var(--zui-color-mint-dark,#6ee7b7))]\",\n ocean:\n \"[--audio-fill:var(--zui-audio-player-ocean-fill,var(--zui-color-ocean,#0284c7))] dark:[--audio-fill:var(--zui-audio-player-ocean-fill-dark,var(--zui-color-ocean-dark,#38bdf8))]\",\n sapphire:\n \"[--audio-fill:var(--zui-audio-player-sapphire-fill,var(--zui-color-sapphire,#1d4ed8))] dark:[--audio-fill:var(--zui-audio-player-sapphire-fill-dark,var(--zui-color-sapphire-dark,#60a5fa))]\",\n lavender:\n \"[--audio-fill:var(--zui-audio-player-lavender-fill,var(--zui-color-lavender,#8b5cf6))] dark:[--audio-fill:var(--zui-audio-player-lavender-fill-dark,var(--zui-color-lavender-dark,#a78bfa))]\",\n ruby: \"[--audio-fill:var(--zui-audio-player-ruby-fill,var(--zui-color-ruby,#be123c))] dark:[--audio-fill:var(--zui-audio-player-ruby-fill-dark,var(--zui-color-ruby-dark,#fb7185))]\",\n red: \"[--audio-fill:var(--zui-audio-player-red-fill,var(--zui-color-red,#dc2626))] dark:[--audio-fill:var(--zui-audio-player-red-fill-dark,var(--zui-color-red-dark,#ef4444))]\",\n slate:\n \"[--audio-fill:var(--zui-audio-player-slate-fill,var(--zui-color-slate,#475569))] dark:[--audio-fill:var(--zui-audio-player-slate-fill-dark,var(--zui-color-slate-dark,#64748b))]\",\n zinc: \"[--audio-fill:var(--zui-audio-player-zinc-fill,var(--zui-color-zinc,#52525b))] dark:[--audio-fill:var(--zui-audio-player-zinc-fill-dark,var(--zui-color-zinc-dark,#71717a))]\",\n royal:\n \"[--audio-fill:var(--zui-audio-player-royal-fill,var(--zui-color-royal,#4338ca))] dark:[--audio-fill:var(--zui-audio-player-royal-fill-dark,var(--zui-color-royal-dark,#818cf8))]\",\n electric:\n \"[--audio-fill:var(--zui-audio-player-electric-fill,var(--zui-color-electric,#0ea5e9))] dark:[--audio-fill:var(--zui-audio-player-electric-fill-dark,var(--zui-color-electric-dark,#38bdf8))]\",\n forest:\n \"[--audio-fill:var(--zui-audio-player-forest-fill,var(--zui-color-forest,#166534))] dark:[--audio-fill:var(--zui-audio-player-forest-fill-dark,var(--zui-color-forest-dark,#4ade80))]\",\n sunset:\n \"[--audio-fill:var(--zui-audio-player-sunset-fill,var(--zui-color-sunset,#ea580c))] dark:[--audio-fill:var(--zui-audio-player-sunset-fill-dark,var(--zui-color-sunset-dark,#fb923c))]\",\n magenta:\n \"[--audio-fill:var(--zui-audio-player-magenta-fill,var(--zui-color-magenta,#c026d3))] dark:[--audio-fill:var(--zui-audio-player-magenta-fill-dark,var(--zui-color-magenta-dark,#e879f9))]\",\n crimson:\n \"[--audio-fill:var(--zui-audio-player-crimson-fill,var(--zui-color-crimson,#b91c1c))] dark:[--audio-fill:var(--zui-audio-player-crimson-fill-dark,var(--zui-color-crimson-dark,#f87171))]\",\n emerald:\n \"[--audio-fill:var(--zui-audio-player-emerald-fill,var(--zui-color-emerald,#059669))] dark:[--audio-fill:var(--zui-audio-player-emerald-fill-dark,var(--zui-color-emerald-dark,#34d399))]\",\n indigo:\n \"[--audio-fill:var(--zui-audio-player-indigo-fill,var(--zui-color-indigo,#4f46e5))] dark:[--audio-fill:var(--zui-audio-player-indigo-fill-dark,var(--zui-color-indigo-dark,#6366f1))]\",\n purple:\n \"[--audio-fill:var(--zui-audio-player-purple-fill,var(--zui-color-purple,#7c3aed))] dark:[--audio-fill:var(--zui-audio-player-purple-fill-dark,var(--zui-color-purple-dark,#8b5cf6))]\",\n pink: \"[--audio-fill:var(--zui-audio-player-pink-fill,var(--zui-color-pink,#db2777))] dark:[--audio-fill:var(--zui-audio-player-pink-fill-dark,var(--zui-color-pink-dark,#ec4899))]\",\n rose: \"[--audio-fill:var(--zui-audio-player-rose-fill,var(--zui-color-rose,#e11d48))] dark:[--audio-fill:var(--zui-audio-player-rose-fill-dark,var(--zui-color-rose-dark,#f43f5e))]\",\n sky: \"[--audio-fill:var(--zui-audio-player-sky-fill,var(--zui-color-sky,#0284c7))] dark:[--audio-fill:var(--zui-audio-player-sky-fill-dark,var(--zui-color-sky-dark,#38bdf8))]\",\n teal: \"[--audio-fill:var(--zui-audio-player-teal-fill,var(--zui-color-teal,#0d9488))] dark:[--audio-fill:var(--zui-audio-player-teal-fill-dark,var(--zui-color-teal-dark,#2dd4bf))]\",\n yellow:\n \"[--audio-fill:var(--zui-audio-player-yellow-fill,var(--zui-color-yellow,#ca8a04))] dark:[--audio-fill:var(--zui-audio-player-yellow-fill-dark,var(--zui-color-yellow-dark,#eab308))]\",\n orange:\n \"[--audio-fill:var(--zui-audio-player-orange-fill,var(--zui-color-orange,#ea580c))] dark:[--audio-fill:var(--zui-audio-player-orange-fill-dark,var(--zui-color-orange-dark,#f97316))]\",\n \"gradient-blue\":\n \"[--audio-fill:var(--zui-audio-player-gradient-blue-fill,linear-gradient(90deg,#2563eb,#7c3aed))] dark:[--audio-fill:var(--zui-audio-player-gradient-blue-fill-dark,linear-gradient(90deg,#3b82f6,#8b5cf6))]\",\n \"gradient-green\":\n \"[--audio-fill:var(--zui-audio-player-gradient-green-fill,linear-gradient(90deg,#16a34a,#0d9488))] dark:[--audio-fill:var(--zui-audio-player-gradient-green-fill-dark,linear-gradient(90deg,#22c55e,#2dd4bf))]\",\n \"gradient-red\":\n \"[--audio-fill:var(--zui-audio-player-gradient-red-fill,linear-gradient(90deg,#dc2626,#db2777))] dark:[--audio-fill:var(--zui-audio-player-gradient-red-fill-dark,linear-gradient(90deg,#ef4444,#ec4899))]\",\n \"gradient-yellow\":\n \"[--audio-fill:var(--zui-audio-player-gradient-yellow-fill,linear-gradient(90deg,#ca8a04,#ea580c))] dark:[--audio-fill:var(--zui-audio-player-gradient-yellow-fill-dark,linear-gradient(90deg,#eab308,#f97316))]\",\n \"gradient-purple\":\n \"[--audio-fill:var(--zui-audio-player-gradient-purple-fill,linear-gradient(90deg,#7c3aed,#db2777))] dark:[--audio-fill:var(--zui-audio-player-gradient-purple-fill-dark,linear-gradient(90deg,#8b5cf6,#ec4899))]\",\n \"gradient-teal\":\n \"[--audio-fill:var(--zui-audio-player-gradient-teal-fill,linear-gradient(90deg,#0d9488,#0284c7))] dark:[--audio-fill:var(--zui-audio-player-gradient-teal-fill-dark,linear-gradient(90deg,#2dd4bf,#38bdf8))]\",\n \"gradient-indigo\":\n \"[--audio-fill:var(--zui-audio-player-gradient-indigo-fill,linear-gradient(90deg,#4f46e5,#7c3aed))] dark:[--audio-fill:var(--zui-audio-player-gradient-indigo-fill-dark,linear-gradient(90deg,#6366f1,#8b5cf6))]\",\n \"gradient-pink\":\n \"[--audio-fill:var(--zui-audio-player-gradient-pink-fill,linear-gradient(90deg,#db2777,#e11d48))] dark:[--audio-fill:var(--zui-audio-player-gradient-pink-fill-dark,linear-gradient(90deg,#ec4899,#f43f5e))]\",\n \"gradient-orange\":\n \"[--audio-fill:var(--zui-audio-player-gradient-orange-fill,linear-gradient(90deg,#ea580c,#ca8a04))] dark:[--audio-fill:var(--zui-audio-player-gradient-orange-fill-dark,linear-gradient(90deg,#f97316,#eab308))]\",\n} as const;\n\nexport const zuiAudioPlayerSizes = {\n sm: \"p-3 text-xs gap-2\",\n md: \"p-4 text-sm gap-3\",\n lg: \"p-5 text-base gap-4\",\n} as const;\n\nexport const zuiAudioPlayerShapes = {\n flat: \"rounded-none\",\n rounded: \"rounded-xl\",\n pill: \"rounded-3xl\",\n} as const;\n\nexport const zuiAudioPlayerTrackBase = [\n \"relative w-full overflow-hidden cursor-pointer\",\n \"rounded-[inherit]\",\n \"bg-[var(--zui-audio-player-track-bg,var(--zui-surface-muted,#0000001a))] dark:bg-[var(--zui-audio-player-track-bg-dark,var(--zui-surface-muted-dark,#ffffff1a))]\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--audio-fill,#0f172a)] focus-visible:ring-offset-2\",\n] as const;\n\nexport const zuiAudioPlayerTrackSizes = {\n sm: \"h-1\",\n md: \"h-1.5\",\n lg: \"h-2\",\n} as const;\n\nexport const zuiAudioPlayerBarBase =\n \"h-full origin-left [background:var(--audio-fill)] transition-[transform] will-change-transform\" as const;\n\nexport const zuiAudioPlayerTimeBase =\n \"tabular-nums font-mono text-[color:var(--zui-audio-player-time-fg,var(--zui-fg-muted,#64748b))] dark:text-[color:var(--zui-audio-player-time-fg-dark,var(--zui-fg-muted-dark,#94a3b8))]\" as const;\n"]}
@@ -0,0 +1,145 @@
1
+ 'use strict';
2
+
3
+ var chunkSCOIRBML_js = require('./chunk-SCOIRBML.js');
4
+ var chunkZS5756ZC_js = require('./chunk-ZS5756ZC.js');
5
+ var react = require('react');
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+
8
+ function mergeDescribedByIds(user, ...generated) {
9
+ const ids = [
10
+ ...(user ?? "").split(/\s+/).filter(Boolean),
11
+ ...generated.filter((id) => Boolean(id))
12
+ ];
13
+ const unique = [...new Set(ids)];
14
+ return unique.length > 0 ? unique.join(" ") : void 0;
15
+ }
16
+ var InputBase = (props) => {
17
+ const generatedId = react.useId();
18
+ if (props.as === "textarea") {
19
+ const {
20
+ className: className2,
21
+ appearance: appearance2,
22
+ size: size2,
23
+ ring: ring2 = true,
24
+ ref: ref2,
25
+ "aria-invalid": ariaInvalidProp2,
26
+ errorMessage: errorMessage2,
27
+ hint: hint2,
28
+ label: label2,
29
+ id: id2,
30
+ as: as2,
31
+ "aria-describedby": ariaDescribedByUser2,
32
+ ...rest2
33
+ } = props;
34
+ const controlId2 = id2 ?? generatedId;
35
+ const errorId2 = `${controlId2}-error`;
36
+ const hintId2 = `${controlId2}-hint`;
37
+ const ariaInvalid2 = ariaInvalidProp2 !== void 0 ? ariaInvalidProp2 : appearance2 === "error" ? true : void 0;
38
+ const describedBy2 = mergeDescribedByIds(
39
+ ariaDescribedByUser2,
40
+ hint2 !== void 0 ? hintId2 : void 0,
41
+ errorMessage2 && appearance2 === "error" ? errorId2 : void 0
42
+ );
43
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
44
+ label2 !== void 0 && /* @__PURE__ */ jsxRuntime.jsx(
45
+ "label",
46
+ {
47
+ htmlFor: controlId2,
48
+ className: "mb-1 block text-sm font-medium text-slate-200",
49
+ children: label2
50
+ }
51
+ ),
52
+ hint2 !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { id: hintId2, className: "mb-1 text-xs text-slate-400", children: hint2 }),
53
+ /* @__PURE__ */ jsxRuntime.jsx(
54
+ "textarea",
55
+ {
56
+ ref: ref2,
57
+ id: controlId2,
58
+ "data-slot": "input",
59
+ className: chunkZS5756ZC_js.cn(
60
+ chunkSCOIRBML_js.inputVariants({ appearance: appearance2, size: size2, ring: ring2, as: as2 }),
61
+ className2
62
+ ),
63
+ "aria-invalid": ariaInvalid2,
64
+ "aria-describedby": describedBy2,
65
+ ...rest2
66
+ }
67
+ ),
68
+ errorMessage2 && appearance2 === "error" && /* @__PURE__ */ jsxRuntime.jsx(
69
+ "p",
70
+ {
71
+ id: errorId2,
72
+ className: "mt-2 pl-4 text-sm text-rose-500 wrap-break-word",
73
+ children: errorMessage2
74
+ }
75
+ )
76
+ ] });
77
+ }
78
+ const {
79
+ className,
80
+ appearance,
81
+ size,
82
+ ring = true,
83
+ ref,
84
+ "aria-invalid": ariaInvalidProp,
85
+ errorMessage,
86
+ hint,
87
+ label,
88
+ id,
89
+ as,
90
+ "aria-describedby": ariaDescribedByUser,
91
+ ...rest
92
+ } = props;
93
+ const controlId = id ?? generatedId;
94
+ const errorId = `${controlId}-error`;
95
+ const hintId = `${controlId}-hint`;
96
+ const ariaInvalid = ariaInvalidProp !== void 0 ? ariaInvalidProp : appearance === "error" ? true : void 0;
97
+ const describedBy = mergeDescribedByIds(
98
+ ariaDescribedByUser,
99
+ hint !== void 0 ? hintId : void 0,
100
+ errorMessage && appearance === "error" ? errorId : void 0
101
+ );
102
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
103
+ label !== void 0 && /* @__PURE__ */ jsxRuntime.jsx(
104
+ "label",
105
+ {
106
+ htmlFor: controlId,
107
+ className: "mb-1 block text-sm font-medium text-slate-200",
108
+ children: label
109
+ }
110
+ ),
111
+ hint !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { id: hintId, className: "mb-1 text-xs text-slate-400", children: hint }),
112
+ /* @__PURE__ */ jsxRuntime.jsx(
113
+ "input",
114
+ {
115
+ ref,
116
+ id: controlId,
117
+ "data-slot": "input",
118
+ className: chunkZS5756ZC_js.cn(
119
+ chunkSCOIRBML_js.inputVariants({ appearance, size, ring, as: as ?? "input" }),
120
+ className
121
+ ),
122
+ "aria-invalid": ariaInvalid,
123
+ "aria-describedby": describedBy,
124
+ ...rest
125
+ }
126
+ ),
127
+ errorMessage && appearance === "error" && /* @__PURE__ */ jsxRuntime.jsx(
128
+ "p",
129
+ {
130
+ id: errorId,
131
+ className: "mt-2 pl-4 text-sm text-rose-500 wrap-break-word",
132
+ children: errorMessage
133
+ }
134
+ )
135
+ ] });
136
+ };
137
+ InputBase.displayName = "Input";
138
+ var Input = (props) => {
139
+ return /* @__PURE__ */ jsxRuntime.jsx(InputBase, { ...props });
140
+ };
141
+ Input.displayName = "Input";
142
+
143
+ exports.Input = Input;
144
+ //# sourceMappingURL=chunk-PTU5ZAYX.js.map
145
+ //# sourceMappingURL=chunk-PTU5ZAYX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ui/inputs/input-base.tsx","../src/ui/inputs/input.tsx"],"names":["useId","className","appearance","size","ring","ref","ariaInvalidProp","errorMessage","hint","label","id","as","ariaDescribedByUser","rest","controlId","errorId","hintId","ariaInvalid","describedBy","jsxs","Fragment","jsx","cn","inputVariants"],"mappings":"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","file":"chunk-PTU5ZAYX.js","sourcesContent":["\"use client\";\n\nimport { useId } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type { InputProps } from \"./types\";\nimport { inputVariants } from \"./variants\";\n\nfunction mergeDescribedByIds(\n user: string | undefined,\n ...generated: (string | undefined)[]\n): string | undefined {\n const ids = [\n ...(user ?? \"\").split(/\\s+/).filter(Boolean),\n ...generated.filter((id): id is string => Boolean(id)),\n ];\n const unique = [...new Set(ids)];\n return unique.length > 0 ? unique.join(\" \") : undefined;\n}\n\nexport const InputBase = (props: InputProps) => {\n const generatedId = useId();\n\n if (props.as === \"textarea\") {\n const {\n className,\n appearance,\n size,\n ring = true,\n ref,\n \"aria-invalid\": ariaInvalidProp,\n errorMessage,\n hint,\n label,\n id,\n as,\n \"aria-describedby\": ariaDescribedByUser,\n ...rest\n } = props;\n\n const controlId = id ?? generatedId;\n const errorId = `${controlId}-error`;\n const hintId = `${controlId}-hint`;\n const ariaInvalid =\n ariaInvalidProp !== undefined\n ? ariaInvalidProp\n : appearance === \"error\"\n ? true\n : undefined;\n\n const describedBy = mergeDescribedByIds(\n ariaDescribedByUser,\n hint !== undefined ? hintId : undefined,\n errorMessage && appearance === \"error\" ? errorId : undefined,\n );\n\n return (\n <>\n {label !== undefined && (\n <label\n htmlFor={controlId}\n className=\"mb-1 block text-sm font-medium text-slate-200\"\n >\n {label}\n </label>\n )}\n {hint !== undefined && (\n <p id={hintId} className=\"mb-1 text-xs text-slate-400\">\n {hint}\n </p>\n )}\n <textarea\n ref={ref}\n id={controlId}\n data-slot=\"input\"\n className={cn(\n inputVariants({ appearance, size, ring, as }),\n className,\n )}\n aria-invalid={ariaInvalid}\n aria-describedby={describedBy}\n {...rest}\n />\n {errorMessage && appearance === \"error\" && (\n <p\n id={errorId}\n className=\"mt-2 pl-4 text-sm text-rose-500 wrap-break-word\"\n >\n {errorMessage}\n </p>\n )}\n </>\n );\n }\n\n const {\n className,\n appearance,\n size,\n ring = true,\n ref,\n \"aria-invalid\": ariaInvalidProp,\n errorMessage,\n hint,\n label,\n id,\n as,\n \"aria-describedby\": ariaDescribedByUser,\n ...rest\n } = props;\n\n const controlId = id ?? generatedId;\n const errorId = `${controlId}-error`;\n const hintId = `${controlId}-hint`;\n const ariaInvalid =\n ariaInvalidProp !== undefined\n ? ariaInvalidProp\n : appearance === \"error\"\n ? true\n : undefined;\n\n const describedBy = mergeDescribedByIds(\n ariaDescribedByUser,\n hint !== undefined ? hintId : undefined,\n errorMessage && appearance === \"error\" ? errorId : undefined,\n );\n\n return (\n <>\n {label !== undefined && (\n <label\n htmlFor={controlId}\n className=\"mb-1 block text-sm font-medium text-slate-200\"\n >\n {label}\n </label>\n )}\n {hint !== undefined && (\n <p id={hintId} className=\"mb-1 text-xs text-slate-400\">\n {hint}\n </p>\n )}\n <input\n ref={ref}\n id={controlId}\n data-slot=\"input\"\n className={cn(\n inputVariants({ appearance, size, ring, as: as ?? \"input\" }),\n className,\n )}\n aria-invalid={ariaInvalid}\n aria-describedby={describedBy}\n {...rest}\n />\n {errorMessage && appearance === \"error\" && (\n <p\n id={errorId}\n className=\"mt-2 pl-4 text-sm text-rose-500 wrap-break-word\"\n >\n {errorMessage}\n </p>\n )}\n </>\n );\n};\n\nInputBase.displayName = \"Input\";\n","import { InputBase } from \"./input-base\";\nimport type { InputProps } from \"./types\";\n\nexport const Input = (props: InputProps) => {\n return <InputBase {...props} />;\n};\n\nInput.displayName = \"Input\";\n"]}
@@ -0,0 +1,81 @@
1
+ import { useState, useCallback, useEffect, useMemo } from 'react';
2
+
3
+ // src/hooks/useVirtualList/useVirtualList.ts
4
+ function useVirtualList({
5
+ itemCount,
6
+ itemHeight,
7
+ overscan = 3
8
+ }) {
9
+ const [container, setContainer] = useState(null);
10
+ const [scrollTop, setScrollTop] = useState(0);
11
+ const [viewportHeight, setViewportHeight] = useState(0);
12
+ const setContainerRef = useCallback((node) => {
13
+ setContainer(node);
14
+ }, []);
15
+ useEffect(() => {
16
+ if (container == null) {
17
+ return;
18
+ }
19
+ const onScroll = () => {
20
+ setScrollTop(container.scrollTop);
21
+ };
22
+ const measure = () => {
23
+ setViewportHeight(container.clientHeight);
24
+ };
25
+ measure();
26
+ onScroll();
27
+ container.addEventListener("scroll", onScroll, { passive: true });
28
+ let observer;
29
+ if (typeof ResizeObserver !== "undefined") {
30
+ observer = new ResizeObserver(measure);
31
+ observer.observe(container);
32
+ }
33
+ return () => {
34
+ container.removeEventListener("scroll", onScroll);
35
+ observer?.disconnect();
36
+ };
37
+ }, [container]);
38
+ const safeItemCount = Math.max(0, Math.floor(itemCount));
39
+ const safeItemHeight = Math.max(1, itemHeight);
40
+ const safeOverscan = Math.max(0, Math.floor(overscan));
41
+ const totalHeight = safeItemCount * safeItemHeight;
42
+ const startIndex = safeItemCount === 0 ? 0 : Math.max(0, Math.floor(scrollTop / safeItemHeight) - safeOverscan);
43
+ const endIndex = safeItemCount === 0 ? -1 : Math.min(
44
+ safeItemCount - 1,
45
+ Math.ceil((scrollTop + viewportHeight) / safeItemHeight) - 1 + safeOverscan
46
+ );
47
+ const virtualItems = useMemo(() => {
48
+ const items = [];
49
+ for (let index = startIndex; index <= endIndex; index += 1) {
50
+ items.push({
51
+ index,
52
+ start: index * safeItemHeight,
53
+ size: safeItemHeight
54
+ });
55
+ }
56
+ return items;
57
+ }, [endIndex, safeItemHeight, startIndex]);
58
+ const scrollToIndex = useCallback(
59
+ (index) => {
60
+ if (container == null || safeItemCount === 0) {
61
+ return;
62
+ }
63
+ const clamped = Math.min(Math.max(index, 0), safeItemCount - 1);
64
+ container.scrollTop = clamped * safeItemHeight;
65
+ setScrollTop(container.scrollTop);
66
+ },
67
+ [container, safeItemCount, safeItemHeight]
68
+ );
69
+ return {
70
+ setContainerRef,
71
+ virtualItems,
72
+ totalHeight,
73
+ startIndex,
74
+ endIndex,
75
+ scrollToIndex
76
+ };
77
+ }
78
+
79
+ export { useVirtualList };
80
+ //# sourceMappingURL=chunk-QKO5DA4N.mjs.map
81
+ //# sourceMappingURL=chunk-QKO5DA4N.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/useVirtualList/useVirtualList.ts"],"names":[],"mappings":"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","file":"chunk-QKO5DA4N.mjs","sourcesContent":["\"use client\";\n\nimport type { RefCallback } from \"react\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\n\nexport type VirtualItem = {\n /** Index into your data array. */\n index: number;\n /** Offset from the top of the scroll content in pixels (use for `translateY` / `top`). */\n start: number;\n /** Row height in pixels. */\n size: number;\n};\n\nexport type UseVirtualListParams = {\n /** Total number of rows in the list. */\n itemCount: number;\n /** Fixed height of every row in pixels (must be > 0). */\n itemHeight: number;\n /** Extra rows rendered above and below the viewport (default `3`). */\n overscan?: number;\n};\n\nexport type UseVirtualListResult = {\n /** Callback ref for the scrollable container (needs `overflow-y: auto` and a bounded height). */\n setContainerRef: RefCallback<HTMLElement>;\n /** The rows to render, each with its absolute `start` offset. */\n virtualItems: VirtualItem[];\n /** Height of the full list content; set it on an inner spacer element. */\n totalHeight: number;\n /** First rendered index (after overscan). */\n startIndex: number;\n /** Last rendered index (after overscan), `-1` when empty. */\n endIndex: number;\n /** Scroll the container so the given row is at the top. */\n scrollToIndex: (index: number) => void;\n};\n\n/**\n * Headless fixed-height list virtualization: renders only the rows visible in the\n * scroll container (plus `overscan`), so lists of tens of thousands of rows stay cheap.\n *\n * Markup recipe: outer container gets `setContainerRef` + `overflow-y: auto` and a height;\n * inside it, one relative spacer div with `height: totalHeight`; each virtual item is\n * absolutely positioned at `translateY(item.start)` with `height: item.size`.\n *\n * Viewport size tracks `ResizeObserver` (when available) and scroll position tracks a\n * passive `scroll` listener. For variable-height rows, reach for a dedicated virtualizer.\n *\n * @param params - {@link UseVirtualListParams}\n * @returns {@link UseVirtualListResult}\n */\nexport function useVirtualList({\n itemCount,\n itemHeight,\n overscan = 3,\n}: UseVirtualListParams): UseVirtualListResult {\n const [container, setContainer] = useState<HTMLElement | null>(null);\n const [scrollTop, setScrollTop] = useState(0);\n const [viewportHeight, setViewportHeight] = useState(0);\n\n const setContainerRef = useCallback((node: HTMLElement | null) => {\n setContainer(node);\n }, []);\n\n useEffect(() => {\n if (container == null) {\n return;\n }\n const onScroll = () => {\n setScrollTop(container.scrollTop);\n };\n const measure = () => {\n setViewportHeight(container.clientHeight);\n };\n measure();\n onScroll();\n container.addEventListener(\"scroll\", onScroll, { passive: true });\n let observer: ResizeObserver | undefined;\n if (typeof ResizeObserver !== \"undefined\") {\n observer = new ResizeObserver(measure);\n observer.observe(container);\n }\n return () => {\n container.removeEventListener(\"scroll\", onScroll);\n observer?.disconnect();\n };\n }, [container]);\n\n const safeItemCount = Math.max(0, Math.floor(itemCount));\n const safeItemHeight = Math.max(1, itemHeight);\n const safeOverscan = Math.max(0, Math.floor(overscan));\n\n const totalHeight = safeItemCount * safeItemHeight;\n const startIndex =\n safeItemCount === 0\n ? 0\n : Math.max(0, Math.floor(scrollTop / safeItemHeight) - safeOverscan);\n const endIndex =\n safeItemCount === 0\n ? -1\n : Math.min(\n safeItemCount - 1,\n Math.ceil((scrollTop + viewportHeight) / safeItemHeight) -\n 1 +\n safeOverscan,\n );\n\n const virtualItems = useMemo(() => {\n const items: VirtualItem[] = [];\n for (let index = startIndex; index <= endIndex; index += 1) {\n items.push({\n index,\n start: index * safeItemHeight,\n size: safeItemHeight,\n });\n }\n return items;\n }, [endIndex, safeItemHeight, startIndex]);\n\n const scrollToIndex = useCallback(\n (index: number) => {\n if (container == null || safeItemCount === 0) {\n return;\n }\n const clamped = Math.min(Math.max(index, 0), safeItemCount - 1);\n container.scrollTop = clamped * safeItemHeight;\n setScrollTop(container.scrollTop);\n },\n [container, safeItemCount, safeItemHeight],\n );\n\n return {\n setContainerRef,\n virtualItems,\n totalHeight,\n startIndex,\n endIndex,\n scrollToIndex,\n };\n}\n"]}
@@ -0,0 +1,130 @@
1
+ 'use strict';
2
+
3
+ var chunkKOIXQXZB_js = require('./chunk-KOIXQXZB.js');
4
+ var chunkZS5756ZC_js = require('./chunk-ZS5756ZC.js');
5
+ var react = require('react');
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+
8
+ function resolveCheckboxState(checked, indeterminate) {
9
+ if (indeterminate) {
10
+ return "indeterminate";
11
+ }
12
+ return checked ? "checked" : "unchecked";
13
+ }
14
+ function CheckboxBase(props) {
15
+ const {
16
+ className,
17
+ rootClassName,
18
+ controlClassName,
19
+ indicatorClassName,
20
+ appearance,
21
+ size,
22
+ checked,
23
+ defaultChecked = false,
24
+ indeterminate,
25
+ onCheckedChange,
26
+ disabled,
27
+ children,
28
+ label,
29
+ id,
30
+ ref,
31
+ "aria-label": ariaLabel,
32
+ ...rest
33
+ } = props;
34
+ const generatedId = react.useId();
35
+ const controlId = id ?? generatedId;
36
+ const isControlled = checked !== void 0;
37
+ const [uncontrolled, setUncontrolled] = react.useState(defaultChecked);
38
+ const resolvedChecked = isControlled ? Boolean(checked) : uncontrolled;
39
+ const state = resolveCheckboxState(resolvedChecked, indeterminate);
40
+ const labelContent = label ?? children;
41
+ const hasVisibleLabel = labelContent !== void 0 && labelContent !== null && labelContent !== false;
42
+ const setChecked = react.useCallback(
43
+ (next) => {
44
+ if (!isControlled) {
45
+ setUncontrolled(next);
46
+ }
47
+ onCheckedChange?.(next);
48
+ },
49
+ [isControlled, onCheckedChange]
50
+ );
51
+ return /* @__PURE__ */ jsxRuntime.jsxs(
52
+ "label",
53
+ {
54
+ className: chunkZS5756ZC_js.cn(chunkKOIXQXZB_js.checkboxRootVariants({ size }), rootClassName, className),
55
+ "data-disabled": disabled ? "true" : void 0,
56
+ "data-state": state,
57
+ htmlFor: controlId,
58
+ children: [
59
+ /* @__PURE__ */ jsxRuntime.jsx(
60
+ "input",
61
+ {
62
+ ref,
63
+ id: controlId,
64
+ type: "checkbox",
65
+ "data-slot": "checkbox",
66
+ className: "peer sr-only",
67
+ checked: resolvedChecked,
68
+ disabled,
69
+ "aria-checked": indeterminate ? "mixed" : resolvedChecked,
70
+ "aria-label": ariaLabel ?? (hasVisibleLabel ? void 0 : "Checkbox"),
71
+ onChange: (event) => setChecked(event.currentTarget.checked),
72
+ ...rest
73
+ }
74
+ ),
75
+ /* @__PURE__ */ jsxRuntime.jsx(
76
+ "span",
77
+ {
78
+ "aria-hidden": "true",
79
+ className: chunkZS5756ZC_js.cn(
80
+ chunkKOIXQXZB_js.checkboxControlVariants({ appearance, size }),
81
+ controlClassName
82
+ ),
83
+ "data-slot": "checkbox-control",
84
+ children: state === "indeterminate" ? /* @__PURE__ */ jsxRuntime.jsx(
85
+ "svg",
86
+ {
87
+ viewBox: "0 0 16 16",
88
+ fill: "none",
89
+ className: chunkZS5756ZC_js.cn(
90
+ chunkKOIXQXZB_js.checkboxIndicatorVariants({ size }),
91
+ indicatorClassName
92
+ ),
93
+ children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3.5 8H12.5", strokeWidth: "2.4", strokeLinecap: "round" })
94
+ }
95
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
96
+ "svg",
97
+ {
98
+ viewBox: "0 0 16 16",
99
+ fill: "none",
100
+ className: chunkZS5756ZC_js.cn(
101
+ chunkKOIXQXZB_js.checkboxIndicatorVariants({ size }),
102
+ indicatorClassName
103
+ ),
104
+ children: /* @__PURE__ */ jsxRuntime.jsx(
105
+ "path",
106
+ {
107
+ d: "M3.2 8.4L6.5 11.5L12.8 4.5",
108
+ strokeWidth: "2.2",
109
+ strokeLinecap: "round",
110
+ strokeLinejoin: "round"
111
+ }
112
+ )
113
+ }
114
+ )
115
+ }
116
+ ),
117
+ hasVisibleLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 leading-6", "data-slot": "checkbox-label", children: labelContent })
118
+ ]
119
+ }
120
+ );
121
+ }
122
+ CheckboxBase.displayName = "Checkbox";
123
+ function Checkbox(props) {
124
+ return /* @__PURE__ */ jsxRuntime.jsx(CheckboxBase, { ...props });
125
+ }
126
+ Checkbox.displayName = "Checkbox";
127
+
128
+ exports.Checkbox = Checkbox;
129
+ //# sourceMappingURL=chunk-T7PIKDUZ.js.map
130
+ //# sourceMappingURL=chunk-T7PIKDUZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ui/checkbox/checkbox-base.tsx","../src/ui/checkbox/checkbox.tsx"],"names":["useId","useState","useCallback","jsxs","cn","checkboxRootVariants","jsx","checkboxControlVariants","checkboxIndicatorVariants"],"mappings":"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","file":"chunk-T7PIKDUZ.js","sourcesContent":["\"use client\";\n\nimport { useCallback, useId, useState } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type { CheckboxProps, CheckboxState } from \"./types\";\nimport {\n checkboxControlVariants,\n checkboxIndicatorVariants,\n checkboxRootVariants,\n} from \"./variants\";\n\nfunction resolveCheckboxState(\n checked: boolean,\n indeterminate: boolean | undefined,\n): CheckboxState {\n if (indeterminate) {\n return \"indeterminate\";\n }\n return checked ? \"checked\" : \"unchecked\";\n}\n\nexport function CheckboxBase(props: CheckboxProps) {\n const {\n className,\n rootClassName,\n controlClassName,\n indicatorClassName,\n appearance,\n size,\n checked,\n defaultChecked = false,\n indeterminate,\n onCheckedChange,\n disabled,\n children,\n label,\n id,\n ref,\n \"aria-label\": ariaLabel,\n ...rest\n } = props;\n const generatedId = useId();\n const controlId = id ?? generatedId;\n const isControlled = checked !== undefined;\n const [uncontrolled, setUncontrolled] = useState(defaultChecked);\n const resolvedChecked = isControlled ? Boolean(checked) : uncontrolled;\n const state = resolveCheckboxState(resolvedChecked, indeterminate);\n const labelContent = label ?? children;\n const hasVisibleLabel =\n labelContent !== undefined &&\n labelContent !== null &&\n labelContent !== false;\n\n const setChecked = useCallback(\n (next: boolean) => {\n if (!isControlled) {\n setUncontrolled(next);\n }\n onCheckedChange?.(next);\n },\n [isControlled, onCheckedChange],\n );\n\n return (\n <label\n className={cn(checkboxRootVariants({ size }), rootClassName, className)}\n data-disabled={disabled ? \"true\" : undefined}\n data-state={state}\n htmlFor={controlId}\n >\n <input\n ref={ref}\n id={controlId}\n type=\"checkbox\"\n data-slot=\"checkbox\"\n className=\"peer sr-only\"\n checked={resolvedChecked}\n disabled={disabled}\n aria-checked={indeterminate ? \"mixed\" : resolvedChecked}\n aria-label={ariaLabel ?? (hasVisibleLabel ? undefined : \"Checkbox\")}\n onChange={(event) => setChecked(event.currentTarget.checked)}\n {...rest}\n />\n <span\n aria-hidden=\"true\"\n className={cn(\n checkboxControlVariants({ appearance, size }),\n controlClassName,\n )}\n data-slot=\"checkbox-control\"\n >\n {state === \"indeterminate\" ? (\n <svg\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n className={cn(\n checkboxIndicatorVariants({ size }),\n indicatorClassName,\n )}\n >\n <path d=\"M3.5 8H12.5\" strokeWidth=\"2.4\" strokeLinecap=\"round\" />\n </svg>\n ) : (\n <svg\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n className={cn(\n checkboxIndicatorVariants({ size }),\n indicatorClassName,\n )}\n >\n <path\n d=\"M3.2 8.4L6.5 11.5L12.8 4.5\"\n strokeWidth=\"2.2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </span>\n {hasVisibleLabel && (\n <span className=\"min-w-0 leading-6\" data-slot=\"checkbox-label\">\n {labelContent}\n </span>\n )}\n </label>\n );\n}\n\nCheckboxBase.displayName = \"Checkbox\";\n","import { CheckboxBase } from \"./checkbox-base\";\nimport type { CheckboxProps } from \"./types\";\n\nexport function Checkbox(props: CheckboxProps) {\n return <CheckboxBase {...props} />;\n}\n\nCheckbox.displayName = \"Checkbox\";\n"]}
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=chunk-TDK5TVJE.mjs.map
3
+ //# sourceMappingURL=chunk-TDK5TVJE.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-TDK5TVJE.mjs"}
@@ -1,30 +1,32 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkFBUY6K6S_js = require('./chunk-FBUY6K6S.js');
4
+ var chunkY7BU5RC4_js = require('./chunk-Y7BU5RC4.js');
5
+ var chunkNDF3HORF_js = require('./chunk-NDF3HORF.js');
4
6
  var chunkUSLNTKVQ_js = require('./chunk-USLNTKVQ.js');
5
7
  var chunkD7ATXPVI_js = require('./chunk-D7ATXPVI.js');
6
8
  var chunkIEHY6KNM_js = require('./chunk-IEHY6KNM.js');
7
9
  var chunk3MK7CWEX_js = require('./chunk-3MK7CWEX.js');
10
+ var chunk22FJROCI_js = require('./chunk-22FJROCI.js');
11
+ var chunkUJXFD4SK_js = require('./chunk-UJXFD4SK.js');
8
12
  var chunk3EJCQXGV_js = require('./chunk-3EJCQXGV.js');
9
13
  var chunk6KVTKYTB_js = require('./chunk-6KVTKYTB.js');
10
14
  var chunkL7W4NRK6_js = require('./chunk-L7W4NRK6.js');
11
15
  var chunkKWBGLH7G_js = require('./chunk-KWBGLH7G.js');
12
16
  var chunkOH5VOGNW_js = require('./chunk-OH5VOGNW.js');
13
- var chunkY7BU5RC4_js = require('./chunk-Y7BU5RC4.js');
14
- var chunkNDF3HORF_js = require('./chunk-NDF3HORF.js');
17
+ var chunkWGN2CBG6_js = require('./chunk-WGN2CBG6.js');
18
+ var chunkSRSRY5K2_js = require('./chunk-SRSRY5K2.js');
15
19
  var chunkUG3GF2BD_js = require('./chunk-UG3GF2BD.js');
16
20
  var chunkBZTAA3MK_js = require('./chunk-BZTAA3MK.js');
17
21
  var chunkPZ25OHJE_js = require('./chunk-PZ25OHJE.js');
18
22
  var chunkHOOZYA4N_js = require('./chunk-HOOZYA4N.js');
19
23
  var chunkCJCOURVM_js = require('./chunk-CJCOURVM.js');
20
- var chunk22FJROCI_js = require('./chunk-22FJROCI.js');
21
- var chunkUJXFD4SK_js = require('./chunk-UJXFD4SK.js');
24
+ var chunkKJMW7S5X_js = require('./chunk-KJMW7S5X.js');
22
25
  var chunk3CYJQ6KF_js = require('./chunk-3CYJQ6KF.js');
23
26
  var chunk3453DQNL_js = require('./chunk-3453DQNL.js');
24
27
  var chunkDYSXCJGL_js = require('./chunk-DYSXCJGL.js');
25
28
  var chunkA7MU6SFI_js = require('./chunk-A7MU6SFI.js');
26
- var chunkWGN2CBG6_js = require('./chunk-WGN2CBG6.js');
27
- var chunkSRSRY5K2_js = require('./chunk-SRSRY5K2.js');
29
+ var chunkNYO3W5GY_js = require('./chunk-NYO3W5GY.js');
28
30
  var chunkHNRCPZCK_js = require('./chunk-HNRCPZCK.js');
29
31
  var chunkJ2SUGU3X_js = require('./chunk-J2SUGU3X.js');
30
32
  var chunkJ5NTJVKX_js = require('./chunk-J5NTJVKX.js');
@@ -32,14 +34,13 @@ var chunkUQQHB3OI_js = require('./chunk-UQQHB3OI.js');
32
34
  var chunkBBM4BKSN_js = require('./chunk-BBM4BKSN.js');
33
35
  var chunkY5JAQEBF_js = require('./chunk-Y5JAQEBF.js');
34
36
  var chunk7DVECOO7_js = require('./chunk-7DVECOO7.js');
35
- var chunkKJMW7S5X_js = require('./chunk-KJMW7S5X.js');
36
37
  var chunkYPYPWALR_js = require('./chunk-YPYPWALR.js');
37
38
  var chunkPP3L6M62_js = require('./chunk-PP3L6M62.js');
38
39
  var chunkBJDT7P2I_js = require('./chunk-BJDT7P2I.js');
40
+ var chunkPG7LQVU6_js = require('./chunk-PG7LQVU6.js');
39
41
  var chunkNFUOJMNI_js = require('./chunk-NFUOJMNI.js');
40
42
  var chunkUT6QG35L_js = require('./chunk-UT6QG35L.js');
41
43
  var chunkIR5SJ7AQ_js = require('./chunk-IR5SJ7AQ.js');
42
- var chunkNYO3W5GY_js = require('./chunk-NYO3W5GY.js');
43
44
  var chunkPZ5AY32C_js = require('./chunk-PZ5AY32C.js');
44
45
 
45
46
  // src/design-system/index.ts
@@ -63,6 +64,14 @@ chunkPZ5AY32C_js.__export(design_system_exports, {
63
64
  zuiAnimatedNumberAppearance: () => chunkNFUOJMNI_js.zuiAnimatedNumberAppearance,
64
65
  zuiAnimatedNumberBase: () => chunkNFUOJMNI_js.zuiAnimatedNumberBase,
65
66
  zuiAnimatedNumberSize: () => chunkNFUOJMNI_js.zuiAnimatedNumberSize,
67
+ zuiAudioPlayerAppearances: () => chunkPG7LQVU6_js.zuiAudioPlayerAppearances,
68
+ zuiAudioPlayerBarBase: () => chunkPG7LQVU6_js.zuiAudioPlayerBarBase,
69
+ zuiAudioPlayerBase: () => chunkPG7LQVU6_js.zuiAudioPlayerBase,
70
+ zuiAudioPlayerShapes: () => chunkPG7LQVU6_js.zuiAudioPlayerShapes,
71
+ zuiAudioPlayerSizes: () => chunkPG7LQVU6_js.zuiAudioPlayerSizes,
72
+ zuiAudioPlayerTimeBase: () => chunkPG7LQVU6_js.zuiAudioPlayerTimeBase,
73
+ zuiAudioPlayerTrackBase: () => chunkPG7LQVU6_js.zuiAudioPlayerTrackBase,
74
+ zuiAudioPlayerTrackSizes: () => chunkPG7LQVU6_js.zuiAudioPlayerTrackSizes,
66
75
  zuiAvatarAppearances: () => chunkUT6QG35L_js.zuiAvatarAppearances,
67
76
  zuiAvatarBase: () => chunkUT6QG35L_js.zuiAvatarBase,
68
77
  zuiAvatarFallbackBase: () => chunkUT6QG35L_js.zuiAvatarFallbackBase,
@@ -145,6 +154,13 @@ chunkPZ5AY32C_js.__export(design_system_exports, {
145
154
  zuiCopyButtonIconOnlySizes: () => chunk7DVECOO7_js.zuiCopyButtonIconOnlySizes,
146
155
  zuiCopyButtonSizes: () => chunk7DVECOO7_js.zuiCopyButtonSizes,
147
156
  zuiCssVariablePattern: () => chunkYPYPWALR_js.zuiCssVariablePattern,
157
+ zuiDataTableColumnPanelBase: () => zuiDataTableColumnPanelBase,
158
+ zuiDataTableRootBase: () => zuiDataTableRootBase,
159
+ zuiDataTableStateCellBase: () => zuiDataTableStateCellBase,
160
+ zuiDataTableStatusBase: () => zuiDataTableStatusBase,
161
+ zuiDataTableToolbarBase: () => zuiDataTableToolbarBase,
162
+ zuiDataTableToolbarGroupBase: () => zuiDataTableToolbarGroupBase,
163
+ zuiDataTableVirtualScrollBase: () => zuiDataTableVirtualScrollBase,
148
164
  zuiDisabledState: () => chunkYPYPWALR_js.zuiDisabledState,
149
165
  zuiDividerAppearances: () => chunkKJMW7S5X_js.zuiDividerAppearances,
150
166
  zuiDividerBase: () => chunkKJMW7S5X_js.zuiDividerBase,
@@ -445,6 +461,15 @@ var zuiButtonSizes = {
445
461
  icon: "h-10 w-10"
446
462
  };
447
463
 
464
+ // src/design-system/data-table.ts
465
+ var zuiDataTableRootBase = "w-full space-y-3 text-[color:var(--zui-data-table-fg,var(--zui-fg,oklch(37.2%_0.044_257.287)))] dark:text-[color:var(--zui-data-table-fg-dark,var(--zui-fg-dark,oklch(92.9%_0.013_255.508)))]";
466
+ var zuiDataTableToolbarBase = "flex flex-col gap-3 rounded-lg border border-[color:var(--zui-data-table-toolbar-border,var(--zui-border,#0000001a))] bg-[var(--zui-data-table-toolbar-bg,var(--zui-surface,#ffffff))] p-3 dark:border-[color:var(--zui-data-table-toolbar-border-dark,var(--zui-border-dark,#ffffff1a))] dark:bg-[var(--zui-data-table-toolbar-bg-dark,var(--zui-surface-dark,#020617))] sm:flex-row sm:items-center sm:justify-between";
467
+ var zuiDataTableToolbarGroupBase = "flex min-w-0 flex-wrap items-center gap-2";
468
+ var zuiDataTableColumnPanelBase = "absolute right-0 z-20 mt-2 grid min-w-48 gap-2 rounded-lg border border-[color:var(--zui-data-table-column-panel-border,var(--zui-border,#0000001a))] bg-[var(--zui-data-table-column-panel-bg,var(--zui-surface,#ffffff))] p-3 shadow-lg shadow-black/10 dark:border-[color:var(--zui-data-table-column-panel-border-dark,var(--zui-border-dark,#ffffff1a))] dark:bg-[var(--zui-data-table-column-panel-bg-dark,var(--zui-surface-dark,#020617))] dark:shadow-black/40";
469
+ var zuiDataTableStatusBase = "text-sm text-[color:var(--zui-data-table-muted-fg,var(--zui-muted-fg,oklch(55.4%_0.046_257.417)))] dark:text-[color:var(--zui-data-table-muted-fg-dark,var(--zui-muted-fg-dark,oklch(70.4%_0.04_256.788)))]";
470
+ var zuiDataTableStateCellBase = "p-8 text-center text-[color:var(--zui-data-table-state-fg,var(--zui-muted-fg,oklch(55.4%_0.046_257.417)))] dark:text-[color:var(--zui-data-table-state-fg-dark,var(--zui-muted-fg-dark,oklch(70.4%_0.04_256.788)))]";
471
+ var zuiDataTableVirtualScrollBase = "overflow-auto rounded-lg border border-[color:var(--zui-data-table-virtual-border,var(--zui-border,#0000001a))] dark:border-[color:var(--zui-data-table-virtual-border-dark,var(--zui-border-dark,#ffffff1a))]";
472
+
448
473
  // src/design-system/dynamic-stepper.ts
449
474
  var zuiDynamicStepperIndicatorToneClasses = {
450
475
  default: {
@@ -656,6 +681,13 @@ exports.design_system_exports = design_system_exports;
656
681
  exports.zuiButtonAppearances = zuiButtonAppearances;
657
682
  exports.zuiButtonBase = zuiButtonBase;
658
683
  exports.zuiButtonSizes = zuiButtonSizes;
684
+ exports.zuiDataTableColumnPanelBase = zuiDataTableColumnPanelBase;
685
+ exports.zuiDataTableRootBase = zuiDataTableRootBase;
686
+ exports.zuiDataTableStateCellBase = zuiDataTableStateCellBase;
687
+ exports.zuiDataTableStatusBase = zuiDataTableStatusBase;
688
+ exports.zuiDataTableToolbarBase = zuiDataTableToolbarBase;
689
+ exports.zuiDataTableToolbarGroupBase = zuiDataTableToolbarGroupBase;
690
+ exports.zuiDataTableVirtualScrollBase = zuiDataTableVirtualScrollBase;
659
691
  exports.zuiDynamicStepperIndicatorBase = zuiDynamicStepperIndicatorBase;
660
692
  exports.zuiDynamicStepperIndicatorSizes = zuiDynamicStepperIndicatorSizes;
661
693
  exports.zuiDynamicStepperIndicatorToneClasses = zuiDynamicStepperIndicatorToneClasses;
@@ -670,5 +702,5 @@ exports.zuiPaginationEllipsisSizes = zuiPaginationEllipsisSizes;
670
702
  exports.zuiPaginationListAppearances = zuiPaginationListAppearances;
671
703
  exports.zuiPaginationListBase = zuiPaginationListBase;
672
704
  exports.zuiPaginationListSizes = zuiPaginationListSizes;
673
- //# sourceMappingURL=chunk-NZSZE36T.js.map
674
- //# sourceMappingURL=chunk-NZSZE36T.js.map
705
+ //# sourceMappingURL=chunk-TJ2EWPER.js.map
706
+ //# sourceMappingURL=chunk-TJ2EWPER.js.map