@music-vine/cadence 0.1.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 (197) hide show
  1. package/README.md +146 -0
  2. package/dist/components/accordion.d.ts +35 -0
  3. package/dist/components/accordion.d.ts.map +1 -0
  4. package/dist/components/accordion.js +95 -0
  5. package/dist/components/accordion.js.map +7 -0
  6. package/dist/components/badge.d.ts +14 -0
  7. package/dist/components/badge.d.ts.map +1 -0
  8. package/dist/components/badge.js +78 -0
  9. package/dist/components/badge.js.map +7 -0
  10. package/dist/components/breadcrumb.d.ts +20 -0
  11. package/dist/components/breadcrumb.d.ts.map +1 -0
  12. package/dist/components/breadcrumb.js +98 -0
  13. package/dist/components/breadcrumb.js.map +7 -0
  14. package/dist/components/button.d.ts +47 -0
  15. package/dist/components/button.d.ts.map +1 -0
  16. package/dist/components/button.js +295 -0
  17. package/dist/components/button.js.map +7 -0
  18. package/dist/components/card.d.ts +9 -0
  19. package/dist/components/card.d.ts.map +1 -0
  20. package/dist/components/card.js +65 -0
  21. package/dist/components/card.js.map +7 -0
  22. package/dist/components/carousel-dots.d.ts +9 -0
  23. package/dist/components/carousel-dots.d.ts.map +1 -0
  24. package/dist/components/carousel-dots.js +55 -0
  25. package/dist/components/carousel-dots.js.map +7 -0
  26. package/dist/components/carousel.d.ts +33 -0
  27. package/dist/components/carousel.d.ts.map +1 -0
  28. package/dist/components/carousel.js +217 -0
  29. package/dist/components/carousel.js.map +7 -0
  30. package/dist/components/checkbox.d.ts +13 -0
  31. package/dist/components/checkbox.d.ts.map +1 -0
  32. package/dist/components/checkbox.js +57 -0
  33. package/dist/components/checkbox.js.map +7 -0
  34. package/dist/components/context-menu.d.ts +28 -0
  35. package/dist/components/context-menu.d.ts.map +1 -0
  36. package/dist/components/context-menu.js +154 -0
  37. package/dist/components/context-menu.js.map +7 -0
  38. package/dist/components/dialog.d.ts +20 -0
  39. package/dist/components/dialog.d.ts.map +1 -0
  40. package/dist/components/dialog.js +98 -0
  41. package/dist/components/dialog.js.map +7 -0
  42. package/dist/components/drawer.d.ts +26 -0
  43. package/dist/components/drawer.d.ts.map +1 -0
  44. package/dist/components/drawer.js +133 -0
  45. package/dist/components/drawer.js.map +7 -0
  46. package/dist/components/index.d.ts +35 -0
  47. package/dist/components/index.d.ts.map +1 -0
  48. package/dist/components/index.js +277 -0
  49. package/dist/components/index.js.map +7 -0
  50. package/dist/components/input.d.ts +20 -0
  51. package/dist/components/input.d.ts.map +1 -0
  52. package/dist/components/input.js +174 -0
  53. package/dist/components/input.js.map +7 -0
  54. package/dist/components/label.d.ts +6 -0
  55. package/dist/components/label.d.ts.map +1 -0
  56. package/dist/components/label.js +21 -0
  57. package/dist/components/label.js.map +7 -0
  58. package/dist/components/popover.d.ts +8 -0
  59. package/dist/components/popover.d.ts.map +1 -0
  60. package/dist/components/popover.js +38 -0
  61. package/dist/components/popover.js.map +7 -0
  62. package/dist/components/price-tag.d.ts +11 -0
  63. package/dist/components/price-tag.d.ts.map +1 -0
  64. package/dist/components/price-tag.js +31 -0
  65. package/dist/components/price-tag.js.map +7 -0
  66. package/dist/components/radio-group.d.ts +6 -0
  67. package/dist/components/radio-group.d.ts.map +1 -0
  68. package/dist/components/radio-group.js +84 -0
  69. package/dist/components/radio-group.js.map +7 -0
  70. package/dist/components/scroll-area.d.ts +15 -0
  71. package/dist/components/scroll-area.d.ts.map +1 -0
  72. package/dist/components/scroll-area.js +132 -0
  73. package/dist/components/scroll-area.js.map +7 -0
  74. package/dist/components/select.d.ts +59 -0
  75. package/dist/components/select.d.ts.map +1 -0
  76. package/dist/components/select.js +210 -0
  77. package/dist/components/select.js.map +7 -0
  78. package/dist/components/separator.d.ts +5 -0
  79. package/dist/components/separator.d.ts.map +1 -0
  80. package/dist/components/separator.js +25 -0
  81. package/dist/components/separator.js.map +7 -0
  82. package/dist/components/skeleton.d.ts +10 -0
  83. package/dist/components/skeleton.d.ts.map +1 -0
  84. package/dist/components/skeleton.js +29 -0
  85. package/dist/components/skeleton.js.map +7 -0
  86. package/dist/components/slider.d.ts +15 -0
  87. package/dist/components/slider.d.ts.map +1 -0
  88. package/dist/components/slider.js +95 -0
  89. package/dist/components/slider.js.map +7 -0
  90. package/dist/components/stacking-card.d.ts +54 -0
  91. package/dist/components/stacking-card.d.ts.map +1 -0
  92. package/dist/components/stacking-card.js +636 -0
  93. package/dist/components/stacking-card.js.map +7 -0
  94. package/dist/components/tabs.d.ts +8 -0
  95. package/dist/components/tabs.d.ts.map +1 -0
  96. package/dist/components/tabs.js +48 -0
  97. package/dist/components/tabs.js.map +7 -0
  98. package/dist/components/textarea.d.ts +11 -0
  99. package/dist/components/textarea.d.ts.map +1 -0
  100. package/dist/components/textarea.js +43 -0
  101. package/dist/components/textarea.js.map +7 -0
  102. package/dist/components/toast.d.ts +7 -0
  103. package/dist/components/toast.d.ts.map +1 -0
  104. package/dist/components/toast.js +53 -0
  105. package/dist/components/toast.js.map +7 -0
  106. package/dist/components/toggle-button.d.ts +20 -0
  107. package/dist/components/toggle-button.d.ts.map +1 -0
  108. package/dist/components/toggle-button.js +56 -0
  109. package/dist/components/toggle-button.js.map +7 -0
  110. package/dist/components/typography/heading.d.ts +18 -0
  111. package/dist/components/typography/heading.d.ts.map +1 -0
  112. package/dist/components/typography/heading.js +105 -0
  113. package/dist/components/typography/heading.js.map +7 -0
  114. package/dist/components/typography/index.d.ts +5 -0
  115. package/dist/components/typography/index.d.ts.map +1 -0
  116. package/dist/components/typography/index.js +36 -0
  117. package/dist/components/typography/index.js.map +7 -0
  118. package/dist/components/typography/list.d.ts +17 -0
  119. package/dist/components/typography/list.d.ts.map +1 -0
  120. package/dist/components/typography/list.js +73 -0
  121. package/dist/components/typography/list.js.map +7 -0
  122. package/dist/components/typography/prose.d.ts +5 -0
  123. package/dist/components/typography/prose.d.ts.map +1 -0
  124. package/dist/components/typography/prose.js +50 -0
  125. package/dist/components/typography/prose.js.map +7 -0
  126. package/dist/components/typography/text.d.ts +11 -0
  127. package/dist/components/typography/text.d.ts.map +1 -0
  128. package/dist/components/typography/text.js +38 -0
  129. package/dist/components/typography/text.js.map +7 -0
  130. package/dist/icons/custom/boards-indicator.d.ts +7 -0
  131. package/dist/icons/custom/boards-indicator.d.ts.map +1 -0
  132. package/dist/icons/custom/boards-indicator.js +70 -0
  133. package/dist/icons/custom/boards-indicator.js.map +7 -0
  134. package/dist/icons/custom/download-history.d.ts +6 -0
  135. package/dist/icons/custom/download-history.d.ts.map +1 -0
  136. package/dist/icons/custom/download-history.js +19 -0
  137. package/dist/icons/custom/download-history.js.map +7 -0
  138. package/dist/icons/custom/exclamation-mark-in-octagon.d.ts +6 -0
  139. package/dist/icons/custom/exclamation-mark-in-octagon.d.ts.map +1 -0
  140. package/dist/icons/custom/exclamation-mark-in-octagon.js +57 -0
  141. package/dist/icons/custom/exclamation-mark-in-octagon.js.map +7 -0
  142. package/dist/icons/custom/pin.d.ts +6 -0
  143. package/dist/icons/custom/pin.d.ts.map +1 -0
  144. package/dist/icons/custom/pin.js +28 -0
  145. package/dist/icons/custom/pin.js.map +7 -0
  146. package/dist/icons/custom/premium-star.d.ts +10 -0
  147. package/dist/icons/custom/premium-star.d.ts.map +1 -0
  148. package/dist/icons/custom/premium-star.js +191 -0
  149. package/dist/icons/custom/premium-star.js.map +7 -0
  150. package/dist/icons/custom/social/discord.d.ts +6 -0
  151. package/dist/icons/custom/social/discord.d.ts.map +1 -0
  152. package/dist/icons/custom/social/discord.js +27 -0
  153. package/dist/icons/custom/social/discord.js.map +7 -0
  154. package/dist/icons/custom/social/index.d.ts +4 -0
  155. package/dist/icons/custom/social/index.d.ts.map +1 -0
  156. package/dist/icons/custom/social/index.js +4 -0
  157. package/dist/icons/custom/social/index.js.map +7 -0
  158. package/dist/icons/custom/social/tiktok.d.ts +6 -0
  159. package/dist/icons/custom/social/tiktok.d.ts.map +1 -0
  160. package/dist/icons/custom/social/tiktok.js +27 -0
  161. package/dist/icons/custom/social/tiktok.js.map +7 -0
  162. package/dist/icons/custom/social/twitter-x.d.ts +6 -0
  163. package/dist/icons/custom/social/twitter-x.d.ts.map +1 -0
  164. package/dist/icons/custom/social/twitter-x.js +29 -0
  165. package/dist/icons/custom/social/twitter-x.js.map +7 -0
  166. package/dist/icons/custom/tick-in-circle.d.ts +7 -0
  167. package/dist/icons/custom/tick-in-circle.d.ts.map +1 -0
  168. package/dist/icons/custom/tick-in-circle.js +32 -0
  169. package/dist/icons/custom/tick-in-circle.js.map +7 -0
  170. package/dist/icons/custom/tick-small.d.ts +6 -0
  171. package/dist/icons/custom/tick-small.d.ts.map +1 -0
  172. package/dist/icons/custom/tick-small.js +16 -0
  173. package/dist/icons/custom/tick-small.js.map +7 -0
  174. package/dist/icons/custom/tick.d.ts +3 -0
  175. package/dist/icons/custom/tick.d.ts.map +1 -0
  176. package/dist/icons/custom/tick.js +31 -0
  177. package/dist/icons/custom/tick.js.map +7 -0
  178. package/dist/icons/custom/uppbeat-credit.d.ts +4 -0
  179. package/dist/icons/custom/uppbeat-credit.d.ts.map +1 -0
  180. package/dist/icons/custom/uppbeat-credit.js +55 -0
  181. package/dist/icons/custom/uppbeat-credit.js.map +7 -0
  182. package/dist/icons/index.d.ts +20 -0
  183. package/dist/icons/index.d.ts.map +1 -0
  184. package/dist/icons/index.js +15 -0
  185. package/dist/icons/index.js.map +7 -0
  186. package/dist/index.d.ts +19 -0
  187. package/dist/index.d.ts.map +1 -0
  188. package/dist/index.js +6 -0
  189. package/dist/index.js.map +7 -0
  190. package/dist/lib/utils.d.ts +7 -0
  191. package/dist/lib/utils.d.ts.map +1 -0
  192. package/dist/lib/utils.js +9 -0
  193. package/dist/lib/utils.js.map +7 -0
  194. package/dist/styles/index.css +3 -0
  195. package/dist/styles/storybook.css +14 -0
  196. package/package.json +107 -0
  197. package/tailwind.config.ts +299 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/scroll-area.tsx"],
4
+ "sourcesContent": ["import throttle from \"lodash/throttle\";\nimport { ScrollArea as ScrollAreaPrimitive } from \"radix-ui\";\nimport * as React from \"react\";\n\nimport { cn } from \"../lib/utils\";\n\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n className={cn(\n \"flex touch-none select-none transition-colors\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-0 border-l border-l-transparent border-solid p-[1px]\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-0 border-t border-t-transparent border-solid p-[1px]\",\n className\n )}\n orientation={orientation}\n ref={ref}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-gray-200 dark:bg-gray-800\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n));\n\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;\n\ninterface FadeAwayProps extends React.HTMLAttributes<HTMLDivElement> {\n direction: \"top\" | \"bottom\" | \"right\" | \"left\";\n show: boolean;\n}\n\nconst FadeAway = React.forwardRef<HTMLDivElement, FadeAwayProps>(\n ({ className, direction, show, ...props }, ref) => (\n <div\n className={cn(\n \"pointer-events-none absolute z-[8] transition-opacity duration-200\",\n direction === \"top\" &&\n \"top-0 right-0 left-0 h-[var(--fade-away-top-height,32px)] bg-gradient-to-b\",\n direction === \"bottom\" &&\n \"right-0 bottom-0 left-0 h-[var(--fade-away-bottom-height,32px)] bg-gradient-to-t\",\n direction === \"right\" &&\n \"top-0 right-0 bottom-0 w-[var(--fade-away-right-width,32px)] bg-gradient-to-l\",\n direction === \"left\" &&\n \"top-0 bottom-0 left-0 w-[var(--fade-away-left-width,32px)] bg-gradient-to-r\",\n \"from-[var(--fade-away-from,rgb(255_255_255))] to-[var(--fade-away-to,rgb(255_255_255_/_0))] dark:from-[var(--fade-away-from-dark,rgb(21_25_25))] dark:to-[var(--fade-away-to-dark,rgb(21_25_25_/_0))]\",\n show ? \"opacity-100\" : \"opacity-0\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n);\n\nFadeAway.displayName = \"FadeAway\";\n\ninterface ScrollAreaProps\n extends React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root> {\n fadeAway?: boolean | \"top\" | \"bottom\" | \"y\" | \"left\" | \"right\" | \"x\";\n hideScrollBar?: boolean;\n}\n\ninterface ScrollFadeParams {\n viewportRef: React.RefObject<HTMLDivElement | null>;\n enabled: boolean;\n}\n\nconst useScrollFade = ({ viewportRef, enabled }: ScrollFadeParams) => {\n const [showTopFade, setShowTopFade] = React.useState(false);\n const [showBottomFade, setShowBottomFade] = React.useState(true);\n const [showLeftFade, setShowLeftFade] = React.useState(false);\n const [showRightFade, setShowRightFade] = React.useState(true);\n\n const handleScroll = React.useCallback(() => {\n if (!enabled) {\n return;\n }\n\n if (viewportRef.current) {\n const {\n scrollTop,\n scrollLeft,\n scrollHeight,\n scrollWidth,\n clientHeight,\n clientWidth,\n } = viewportRef.current;\n\n setShowTopFade(scrollTop > 0);\n setShowBottomFade(scrollTop < scrollHeight - clientHeight - 1);\n setShowLeftFade(scrollLeft > 0);\n setShowRightFade(scrollLeft < scrollWidth - clientWidth - 1);\n }\n }, [viewportRef, enabled]);\n\n const throttledHandleScroll = React.useMemo(\n () => throttle(handleScroll, 50),\n [handleScroll]\n );\n\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n\n const viewport = viewportRef.current;\n\n if (!viewport) {\n return;\n }\n\n // Initial check\n throttledHandleScroll();\n\n // Handle scroll events\n viewport.addEventListener(\"scroll\", throttledHandleScroll, {\n passive: true,\n });\n\n // Handle resize events that might affect scrollability\n const resizeObserver = new ResizeObserver(throttledHandleScroll);\n\n resizeObserver.observe(viewport);\n\n return () => {\n viewport.removeEventListener(\"scroll\", throttledHandleScroll);\n resizeObserver.disconnect();\n throttledHandleScroll.cancel(); // Clean up throttled function\n };\n }, [throttledHandleScroll, viewportRef, enabled]);\n\n return { showTopFade, showBottomFade, showLeftFade, showRightFade };\n};\n\nconst ScrollArea = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n ScrollAreaProps\n>(({ className, children, fadeAway = false, hideScrollBar, ...props }, ref) => {\n const viewportRef = React.useRef<HTMLDivElement>(null);\n const { showTopFade, showBottomFade, showLeftFade, showRightFade } =\n useScrollFade({\n viewportRef,\n enabled: !!fadeAway,\n });\n\n const shouldHideScrollBar =\n \"hideScrollBar\" in props || hideScrollBar === true;\n\n return (\n <ScrollAreaPrimitive.Root\n className={cn(\"relative overflow-hidden\", className)}\n ref={ref}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n className=\"h-full w-full rounded-[inherit]\"\n ref={viewportRef}\n >\n {fadeAway &&\n (fadeAway === true || fadeAway === \"top\" || fadeAway === \"y\") && (\n <FadeAway direction=\"top\" show={showTopFade} />\n )}\n {fadeAway &&\n (fadeAway === true || fadeAway === \"left\" || fadeAway === \"x\") && (\n <FadeAway direction=\"left\" show={showLeftFade} />\n )}\n {children}\n {fadeAway &&\n (fadeAway === true || fadeAway === \"bottom\" || fadeAway === \"y\") && (\n <FadeAway direction=\"bottom\" show={showBottomFade} />\n )}\n {fadeAway &&\n (fadeAway === true || fadeAway === \"right\" || fadeAway === \"x\") && (\n <FadeAway direction=\"right\" show={showRightFade} />\n )}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar className={shouldHideScrollBar ? \"hidden opacity-0\" : \"\"} />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n );\n});\n\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;\n\nexport { FadeAway, ScrollArea, ScrollBar, type ScrollAreaProps };\n"],
5
+ "mappings": "AAuBI,cAsIE,YAtIF;AAvBJ,OAAO,cAAc;AACrB,SAAS,cAAc,2BAA2B;AAClD,YAAY,WAAW;AAEvB,SAAS,UAAU;AAEnB,MAAM,YAAY,MAAM,WAGtB,CAAC,EAAE,WAAW,cAAc,YAAY,GAAG,MAAM,GAAG,QACpD;AAAA,EAAC,oBAAoB;AAAA,EAApB;AAAA,IACC,WAAW;AAAA,MACT;AAAA,MACA,gBAAgB,cACd;AAAA,MACF,gBAAgB,gBACd;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACC,GAAG;AAAA,IAEJ,8BAAC,oBAAoB,iBAApB,EAAoC,WAAU,6DAA4D;AAAA;AAC7G,CACD;AAED,UAAU,cAAc,oBAAoB,oBAAoB;AAOhE,MAAM,WAAW,MAAM;AAAA,EACrB,CAAC,EAAE,WAAW,WAAW,MAAM,GAAG,MAAM,GAAG,QACzC;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,cAAc,SACZ;AAAA,QACF,cAAc,YACZ;AAAA,QACF,cAAc,WACZ;AAAA,QACF,cAAc,UACZ;AAAA,QACF;AAAA,QACA,OAAO,gBAAgB;AAAA,QACvB;AAAA,MACF;AAAA,MACA;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,cAAc;AAavB,MAAM,gBAAgB,CAAC,EAAE,aAAa,QAAQ,MAAwB;AACpE,QAAM,CAAC,aAAa,cAAc,IAAI,MAAM,SAAS,KAAK;AAC1D,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,MAAM,SAAS,IAAI;AAC/D,QAAM,CAAC,cAAc,eAAe,IAAI,MAAM,SAAS,KAAK;AAC5D,QAAM,CAAC,eAAe,gBAAgB,IAAI,MAAM,SAAS,IAAI;AAE7D,QAAM,eAAe,MAAM,YAAY,MAAM;AAC3C,QAAI,CAAC,SAAS;AACZ;AAAA,IACF;AAEA,QAAI,YAAY,SAAS;AACvB,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI,YAAY;AAEhB,qBAAe,YAAY,CAAC;AAC5B,wBAAkB,YAAY,eAAe,eAAe,CAAC;AAC7D,sBAAgB,aAAa,CAAC;AAC9B,uBAAiB,aAAa,cAAc,cAAc,CAAC;AAAA,IAC7D;AAAA,EACF,GAAG,CAAC,aAAa,OAAO,CAAC;AAEzB,QAAM,wBAAwB,MAAM;AAAA,IAClC,MAAM,SAAS,cAAc,EAAE;AAAA,IAC/B,CAAC,YAAY;AAAA,EACf;AAEA,QAAM,UAAU,MAAM;AACpB,QAAI,CAAC,SAAS;AACZ;AAAA,IACF;AAEA,UAAM,WAAW,YAAY;AAE7B,QAAI,CAAC,UAAU;AACb;AAAA,IACF;AAGA,0BAAsB;AAGtB,aAAS,iBAAiB,UAAU,uBAAuB;AAAA,MACzD,SAAS;AAAA,IACX,CAAC;AAGD,UAAM,iBAAiB,IAAI,eAAe,qBAAqB;AAE/D,mBAAe,QAAQ,QAAQ;AAE/B,WAAO,MAAM;AACX,eAAS,oBAAoB,UAAU,qBAAqB;AAC5D,qBAAe,WAAW;AAC1B,4BAAsB,OAAO;AAAA,IAC/B;AAAA,EACF,GAAG,CAAC,uBAAuB,aAAa,OAAO,CAAC;AAEhD,SAAO,EAAE,aAAa,gBAAgB,cAAc,cAAc;AACpE;AAEA,MAAM,aAAa,MAAM,WAGvB,CAAC,EAAE,WAAW,UAAU,WAAW,OAAO,eAAe,GAAG,MAAM,GAAG,QAAQ;AAC7E,QAAM,cAAc,MAAM,OAAuB,IAAI;AACrD,QAAM,EAAE,aAAa,gBAAgB,cAAc,cAAc,IAC/D,cAAc;AAAA,IACZ;AAAA,IACA,SAAS,CAAC,CAAC;AAAA,EACb,CAAC;AAEH,QAAM,sBACJ,mBAAmB,SAAS,kBAAkB;AAEhD,SACE;AAAA,IAAC,oBAAoB;AAAA,IAApB;AAAA,MACC,WAAW,GAAG,4BAA4B,SAAS;AAAA,MACnD;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA;AAAA,UAAC,oBAAoB;AAAA,UAApB;AAAA,YACC,WAAU;AAAA,YACV,KAAK;AAAA,YAEJ;AAAA,2BACE,aAAa,QAAQ,aAAa,SAAS,aAAa,QACvD,oBAAC,YAAS,WAAU,OAAM,MAAM,aAAa;AAAA,cAEhD,aACE,aAAa,QAAQ,aAAa,UAAU,aAAa,QACxD,oBAAC,YAAS,WAAU,QAAO,MAAM,cAAc;AAAA,cAElD;AAAA,cACA,aACE,aAAa,QAAQ,aAAa,YAAY,aAAa,QAC1D,oBAAC,YAAS,WAAU,UAAS,MAAM,gBAAgB;AAAA,cAEtD,aACE,aAAa,QAAQ,aAAa,WAAW,aAAa,QACzD,oBAAC,YAAS,WAAU,SAAQ,MAAM,eAAe;AAAA;AAAA;AAAA,QAEvD;AAAA,QACA,oBAAC,aAAU,WAAW,sBAAsB,qBAAqB,IAAI;AAAA,QACrE,oBAAC,oBAAoB,QAApB,EAA2B;AAAA;AAAA;AAAA,EAC9B;AAEJ,CAAC;AAED,WAAW,cAAc,oBAAoB,KAAK;",
6
+ "names": []
7
+ }
@@ -0,0 +1,59 @@
1
+ import { Select as SelectPrimitive } from "radix-ui";
2
+ import type * as React from "react";
3
+ declare const Select: React.FC<SelectPrimitive.SelectProps>;
4
+ declare const SelectGroup: React.ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & React.RefAttributes<HTMLDivElement>>;
5
+ declare const SelectValue: React.ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & React.RefAttributes<HTMLSpanElement>>;
6
+ declare function SelectTrigger({ className, children, icon, ref, ...props }: React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger> & {
7
+ className?: string;
8
+ icon?: React.ReactNode;
9
+ ref?: React.Ref<React.ElementRef<typeof SelectPrimitive.Trigger>>;
10
+ }): import("react/jsx-runtime").JSX.Element;
11
+ declare namespace SelectTrigger {
12
+ var displayName: string | undefined;
13
+ }
14
+ declare function SelectScrollUpButton({ className, ref, ...props }: React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton> & {
15
+ ref?: React.Ref<React.ElementRef<typeof SelectPrimitive.ScrollUpButton>>;
16
+ }): import("react/jsx-runtime").JSX.Element;
17
+ declare namespace SelectScrollUpButton {
18
+ var displayName: string | undefined;
19
+ }
20
+ declare function SelectScrollDownButton({ className, ref, ...props }: React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton> & {
21
+ ref?: React.Ref<React.ElementRef<typeof SelectPrimitive.ScrollDownButton>>;
22
+ }): import("react/jsx-runtime").JSX.Element;
23
+ declare namespace SelectScrollDownButton {
24
+ var displayName: string | undefined;
25
+ }
26
+ declare function SelectContent({ className, children, position, ref, ...props }: React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content> & {
27
+ ref?: React.Ref<React.ElementRef<typeof SelectPrimitive.Content>>;
28
+ }): import("react/jsx-runtime").JSX.Element;
29
+ declare namespace SelectContent {
30
+ var displayName: string | undefined;
31
+ }
32
+ declare function SelectContentPopper({ className, children, position, ref, ...props }: React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content> & {
33
+ ref?: React.Ref<React.ElementRef<typeof SelectPrimitive.Content>>;
34
+ }): import("react/jsx-runtime").JSX.Element;
35
+ declare namespace SelectContentPopper {
36
+ var displayName: string | undefined;
37
+ }
38
+ declare function SelectLabel({ className, ref, ...props }: React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label> & {
39
+ ref?: React.Ref<React.ElementRef<typeof SelectPrimitive.Label>>;
40
+ }): import("react/jsx-runtime").JSX.Element;
41
+ declare namespace SelectLabel {
42
+ var displayName: string | undefined;
43
+ }
44
+ declare function SelectItem({ className, children, hideCheck, ref, ...props }: React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item> & {
45
+ className?: string;
46
+ hideCheck?: boolean;
47
+ ref?: React.Ref<React.ElementRef<typeof SelectPrimitive.Item>>;
48
+ }): import("react/jsx-runtime").JSX.Element;
49
+ declare namespace SelectItem {
50
+ var displayName: string | undefined;
51
+ }
52
+ declare function SelectSeparator({ className, ref, ...props }: React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator> & {
53
+ ref?: React.Ref<React.ElementRef<typeof SelectPrimitive.Separator>>;
54
+ }): import("react/jsx-runtime").JSX.Element;
55
+ declare namespace SelectSeparator {
56
+ var displayName: string | undefined;
57
+ }
58
+ export { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectContentPopper, SelectLabel, SelectItem, SelectSeparator, SelectScrollUpButton, SelectScrollDownButton, };
59
+ //# sourceMappingURL=select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../src/components/select.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC,QAAA,MAAM,MAAM,uCAAuB,CAAC;AAEpC,QAAA,MAAM,WAAW,yGAAwB,CAAC;AAE1C,QAAA,MAAM,WAAW,0GAAwB,CAAC;AAE1C,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,GAAG,EACH,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,wBAAwB,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,GAAG;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;CACnE,2CAiBA;kBA3BQ,aAAa;;;AA+BtB,iBAAS,oBAAoB,CAAC,EAC5B,SAAS,EACT,GAAG,EACH,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,wBAAwB,CAAC,OAAO,eAAe,CAAC,cAAc,CAAC,GAAG;IACzE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC;CAC1E,2CAaA;kBAnBQ,oBAAoB;;;AAuB7B,iBAAS,sBAAsB,CAAC,EAC9B,SAAS,EACT,GAAG,EACH,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,wBAAwB,CAAC,OAAO,eAAe,CAAC,gBAAgB,CAAC,GAAG;IAC3E,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC;CAC5E,2CAaA;kBAnBQ,sBAAsB;;;AAwB/B,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,wBAAwB,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,GAAG;IAClE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;CACnE,2CA4BA;kBApCQ,aAAa;;;AAwCtB,iBAAS,mBAAmB,CAAC,EAC3B,SAAS,EACT,QAAQ,EACR,QAAmB,EACnB,GAAG,EACH,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,wBAAwB,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,GAAG;IAClE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;CACnE,2CA4BA;kBApCQ,mBAAmB;;;AAwC5B,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,EACH,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,wBAAwB,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,GAAG;IAChE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;CACjE,2CAQA;kBAdQ,WAAW;;;AAkBpB,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,QAAQ,EACR,SAAS,EACT,GAAG,EACH,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,wBAAwB,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;CAChE,2CAqBA;kBA/BQ,UAAU;;;AAmCnB,iBAAS,eAAe,CAAC,EACvB,SAAS,EACT,GAAG,EACH,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,wBAAwB,CAAC,OAAO,eAAe,CAAC,SAAS,CAAC,GAAG;IACpE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;CACrE,2CAQA;kBAdQ,eAAe;;;AAkBxB,OAAO,EACL,MAAM,EACN,WAAW,EACX,WAAW,EACX,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,UAAU,EACV,eAAe,EACf,oBAAoB,EACpB,sBAAsB,GACvB,CAAC"}
@@ -0,0 +1,210 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Check, ChevronDown, ChevronUp } from "lucide-react";
3
+ import { Select as SelectPrimitive } from "radix-ui";
4
+ import { cn } from "../lib/utils";
5
+ const Select = SelectPrimitive.Root;
6
+ const SelectGroup = SelectPrimitive.Group;
7
+ const SelectValue = SelectPrimitive.Value;
8
+ function SelectTrigger({
9
+ className,
10
+ children,
11
+ icon,
12
+ ref,
13
+ ...props
14
+ }) {
15
+ return /* @__PURE__ */ jsxs(
16
+ SelectPrimitive.Trigger,
17
+ {
18
+ className: cn(
19
+ "group flex h-8 w-full items-center justify-between gap-2 border border-gray-200 border-solid bg-white px-4 py-2 text-base focus-visible:ring-2 focus-visible:ring-pink-500 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
20
+ "dark:border-gray-800 dark:bg-gray-950 dark:text-white dark:focus-visible:ring-0 dark:focus-visible:ring-offset-gray-700",
21
+ className
22
+ ),
23
+ ref,
24
+ ...props,
25
+ children: [
26
+ children,
27
+ /* @__PURE__ */ jsx(SelectPrimitive.Icon, { asChild: true, children: icon ?? /* @__PURE__ */ jsx(ChevronDown, { className: "h-5 w-5 fill-none" }) })
28
+ ]
29
+ }
30
+ );
31
+ }
32
+ SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
33
+ function SelectScrollUpButton({
34
+ className,
35
+ ref,
36
+ ...props
37
+ }) {
38
+ return /* @__PURE__ */ jsx(
39
+ SelectPrimitive.ScrollUpButton,
40
+ {
41
+ className: cn(
42
+ "flex cursor-default items-center justify-center py-1",
43
+ className
44
+ ),
45
+ ref,
46
+ ...props,
47
+ children: /* @__PURE__ */ jsx(ChevronUp, { className: "h-5 w-5 fill-none" })
48
+ }
49
+ );
50
+ }
51
+ SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
52
+ function SelectScrollDownButton({
53
+ className,
54
+ ref,
55
+ ...props
56
+ }) {
57
+ return /* @__PURE__ */ jsx(
58
+ SelectPrimitive.ScrollDownButton,
59
+ {
60
+ className: cn(
61
+ "flex cursor-default items-center justify-center py-1",
62
+ className
63
+ ),
64
+ ref,
65
+ ...props,
66
+ children: /* @__PURE__ */ jsx(ChevronDown, { className: "h-4 w-4 fill-none" })
67
+ }
68
+ );
69
+ }
70
+ SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
71
+ function SelectContent({
72
+ className,
73
+ children,
74
+ position,
75
+ ref,
76
+ ...props
77
+ }) {
78
+ return /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
79
+ SelectPrimitive.Content,
80
+ {
81
+ className: cn(
82
+ "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 relative z-50 max-h-96 min-w-[8rem] rounded-md border border-gray-200 border-solid bg-white text-gray-950 shadow-[0px_2px_4px_0px_rgba(0,_0,_0,_0.15)] data-[state=closed]:animate-out data-[state=open]:animate-in dark:border-gray-800 dark:bg-gray-950 dark:text-white",
83
+ position === "popper" && "data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1",
84
+ className
85
+ ),
86
+ position,
87
+ ref,
88
+ ...props,
89
+ children: [
90
+ /* @__PURE__ */ jsx(SelectScrollUpButton, {}),
91
+ /* @__PURE__ */ jsx(
92
+ SelectPrimitive.Viewport,
93
+ {
94
+ className: cn(
95
+ "p-1",
96
+ position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
97
+ ),
98
+ children
99
+ }
100
+ ),
101
+ /* @__PURE__ */ jsx(SelectScrollDownButton, {})
102
+ ]
103
+ }
104
+ ) });
105
+ }
106
+ SelectContent.displayName = SelectPrimitive.Content.displayName;
107
+ function SelectContentPopper({
108
+ className,
109
+ children,
110
+ position = "popper",
111
+ ref,
112
+ ...props
113
+ }) {
114
+ return /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
115
+ SelectPrimitive.Content,
116
+ {
117
+ className: cn(
118
+ "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 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border border-gray-200 border-solid bg-white text-gray-950 shadow-100 data-[state=closed]:animate-out data-[state=open]:animate-in dark:border-gray-800 dark:bg-gray-950 dark:text-white",
119
+ position === "popper" && "data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1",
120
+ className
121
+ ),
122
+ position,
123
+ ref,
124
+ ...props,
125
+ children: [
126
+ /* @__PURE__ */ jsx(SelectScrollUpButton, {}),
127
+ /* @__PURE__ */ jsx(
128
+ SelectPrimitive.Viewport,
129
+ {
130
+ className: cn(
131
+ "p-1",
132
+ position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
133
+ ),
134
+ children
135
+ }
136
+ ),
137
+ /* @__PURE__ */ jsx(SelectScrollDownButton, {})
138
+ ]
139
+ }
140
+ ) });
141
+ }
142
+ SelectContentPopper.displayName = SelectPrimitive.Content.displayName;
143
+ function SelectLabel({
144
+ className,
145
+ ref,
146
+ ...props
147
+ }) {
148
+ return /* @__PURE__ */ jsx(
149
+ SelectPrimitive.Label,
150
+ {
151
+ className: cn("py-1.5 pr-2 pl-8 font-semibold text-base", className),
152
+ ref,
153
+ ...props
154
+ }
155
+ );
156
+ }
157
+ SelectLabel.displayName = SelectPrimitive.Label.displayName;
158
+ function SelectItem({
159
+ className,
160
+ children,
161
+ hideCheck,
162
+ ref,
163
+ ...props
164
+ }) {
165
+ return /* @__PURE__ */ jsxs(
166
+ SelectPrimitive.Item,
167
+ {
168
+ className: cn(
169
+ "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pr-2 pl-8 text-base outline-none focus:bg-gray-50 focus:text-gray-950 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-gray-900 dark:focus:text-white",
170
+ className
171
+ ),
172
+ ref,
173
+ ...props,
174
+ children: [
175
+ hideCheck ? null : /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4 fill-none" }) }) }),
176
+ /* @__PURE__ */ jsx(SelectPrimitive.ItemText, { children })
177
+ ]
178
+ }
179
+ );
180
+ }
181
+ SelectItem.displayName = SelectPrimitive.Item.displayName;
182
+ function SelectSeparator({
183
+ className,
184
+ ref,
185
+ ...props
186
+ }) {
187
+ return /* @__PURE__ */ jsx(
188
+ SelectPrimitive.Separator,
189
+ {
190
+ className: cn("-mx-1 my-1 h-px bg-gray-150 dark:bg-gray-800", className),
191
+ ref,
192
+ ...props
193
+ }
194
+ );
195
+ }
196
+ SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
197
+ export {
198
+ Select,
199
+ SelectContent,
200
+ SelectContentPopper,
201
+ SelectGroup,
202
+ SelectItem,
203
+ SelectLabel,
204
+ SelectScrollDownButton,
205
+ SelectScrollUpButton,
206
+ SelectSeparator,
207
+ SelectTrigger,
208
+ SelectValue
209
+ };
210
+ //# sourceMappingURL=select.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/select.tsx"],
4
+ "sourcesContent": ["import { Check, ChevronDown, ChevronUp } from \"lucide-react\";\nimport { Select as SelectPrimitive } from \"radix-ui\";\nimport type * as React from \"react\";\n\nimport { cn } from \"../lib/utils\";\n\nconst Select = SelectPrimitive.Root;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\nfunction SelectTrigger({\n className,\n children,\n icon,\n ref,\n ...props\n}: React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger> & {\n className?: string;\n icon?: React.ReactNode;\n ref?: React.Ref<React.ElementRef<typeof SelectPrimitive.Trigger>>;\n}) {\n return (\n <SelectPrimitive.Trigger\n className={cn(\n \"group flex h-8 w-full items-center justify-between gap-2 border border-gray-200 border-solid bg-white px-4 py-2 text-base focus-visible:ring-2 focus-visible:ring-pink-500 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1\",\n \"dark:border-gray-800 dark:bg-gray-950 dark:text-white dark:focus-visible:ring-0 dark:focus-visible:ring-offset-gray-700\",\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n {icon ?? <ChevronDown className=\"h-5 w-5 fill-none\" />}\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nfunction SelectScrollUpButton({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton> & {\n ref?: React.Ref<React.ElementRef<typeof SelectPrimitive.ScrollUpButton>>;\n}) {\n return (\n <SelectPrimitive.ScrollUpButton\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n ref={ref}\n {...props}\n >\n <ChevronUp className=\"h-5 w-5 fill-none\" />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\nfunction SelectScrollDownButton({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton> & {\n ref?: React.Ref<React.ElementRef<typeof SelectPrimitive.ScrollDownButton>>;\n}) {\n return (\n <SelectPrimitive.ScrollDownButton\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n ref={ref}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4 fill-none\" />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName;\n\nfunction SelectContent({\n className,\n children,\n position,\n ref,\n ...props\n}: React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content> & {\n ref?: React.Ref<React.ElementRef<typeof SelectPrimitive.Content>>;\n}) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n className={cn(\n \"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 relative z-50 max-h-96 min-w-[8rem] rounded-md border border-gray-200 border-solid bg-white text-gray-950 shadow-[0px_2px_4px_0px_rgba(0,_0,_0,_0.15)] data-[state=closed]:animate-out data-[state=open]:animate-in dark:border-gray-800 dark:bg-gray-950 dark:text-white\",\n position === \"popper\" &&\n \"data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1\",\n className\n )}\n position={position}\n ref={ref}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\nfunction SelectContentPopper({\n className,\n children,\n position = \"popper\",\n ref,\n ...props\n}: React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content> & {\n ref?: React.Ref<React.ElementRef<typeof SelectPrimitive.Content>>;\n}) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n className={cn(\n \"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 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border border-gray-200 border-solid bg-white text-gray-950 shadow-100 data-[state=closed]:animate-out data-[state=open]:animate-in dark:border-gray-800 dark:bg-gray-950 dark:text-white\",\n position === \"popper\" &&\n \"data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1\",\n className\n )}\n position={position}\n ref={ref}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nSelectContentPopper.displayName = SelectPrimitive.Content.displayName;\n\nfunction SelectLabel({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label> & {\n ref?: React.Ref<React.ElementRef<typeof SelectPrimitive.Label>>;\n}) {\n return (\n <SelectPrimitive.Label\n className={cn(\"py-1.5 pr-2 pl-8 font-semibold text-base\", className)}\n ref={ref}\n {...props}\n />\n );\n}\n\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\nfunction SelectItem({\n className,\n children,\n hideCheck,\n ref,\n ...props\n}: React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item> & {\n className?: string;\n hideCheck?: boolean;\n ref?: React.Ref<React.ElementRef<typeof SelectPrimitive.Item>>;\n}) {\n return (\n <SelectPrimitive.Item\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pr-2 pl-8 text-base outline-none focus:bg-gray-50 focus:text-gray-950 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-gray-900 dark:focus:text-white\",\n className\n )}\n ref={ref}\n {...props}\n >\n {hideCheck ? null : (\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4 fill-none\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n )}\n\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nfunction SelectSeparator({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator> & {\n ref?: React.Ref<React.ElementRef<typeof SelectPrimitive.Separator>>;\n}) {\n return (\n <SelectPrimitive.Separator\n className={cn(\"-mx-1 my-1 h-px bg-gray-150 dark:bg-gray-800\", className)}\n ref={ref}\n {...props}\n />\n );\n}\n\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectContentPopper,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n};\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,5 @@
1
+ import { Separator as SeparatorPrimitive } from "radix-ui";
2
+ import React from "react";
3
+ declare const Separator: React.ForwardRefExoticComponent<Omit<SeparatorPrimitive.SeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
4
+ export { Separator };
5
+ //# sourceMappingURL=separator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"separator.d.ts","sourceRoot":"","sources":["../../src/components/separator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,QAAA,MAAM,SAAS,6JAoBd,CAAC;AAIF,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { Separator as SeparatorPrimitive } from "radix-ui";
3
+ import React from "react";
4
+ import { cn } from "../lib/utils";
5
+ const Separator = React.forwardRef(
6
+ ({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx(
7
+ SeparatorPrimitive.Root,
8
+ {
9
+ className: cn(
10
+ "shrink-0 bg-gray-150 dark:bg-gray-800",
11
+ orientation === "horizontal" ? "h-px w-full" : "h-full w-px",
12
+ className
13
+ ),
14
+ decorative,
15
+ orientation,
16
+ ref,
17
+ ...props
18
+ }
19
+ )
20
+ );
21
+ Separator.displayName = SeparatorPrimitive.Root.displayName;
22
+ export {
23
+ Separator
24
+ };
25
+ //# sourceMappingURL=separator.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/separator.tsx"],
4
+ "sourcesContent": ["import { Separator as SeparatorPrimitive } from \"radix-ui\";\nimport React from \"react\";\nimport { cn } from \"../lib/utils\";\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n className={cn(\n \"shrink-0 bg-gray-150 dark:bg-gray-800\",\n orientation === \"horizontal\" ? \"h-px w-full\" : \"h-full w-px\",\n className\n )}\n decorative={decorative}\n orientation={orientation}\n ref={ref}\n {...props}\n />\n )\n);\n\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n"],
5
+ "mappings": "AAYI;AAZJ,SAAS,aAAa,0BAA0B;AAChD,OAAO,WAAW;AAClB,SAAS,UAAU;AAEnB,MAAM,YAAY,MAAM;AAAA,EAItB,CACE,EAAE,WAAW,cAAc,cAAc,aAAa,MAAM,GAAG,MAAM,GACrE,QAEA;AAAA,IAAC,mBAAmB;AAAA,IAAnB;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,gBAAgB,eAAe,gBAAgB;AAAA,QAC/C;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,UAAU,cAAc,mBAAmB,KAAK;",
6
+ "names": []
7
+ }
@@ -0,0 +1,10 @@
1
+ import type { ReactNode } from "react";
2
+ declare const Skeleton: ({ className, items, ...props }: React.HTMLAttributes<HTMLDivElement> & {
3
+ items?: number;
4
+ }) => import("react/jsx-runtime").JSX.Element[];
5
+ declare const SkeletonFragment: ({ items, children, }: {
6
+ items?: number;
7
+ children?: ReactNode;
8
+ }) => import("react/jsx-runtime").JSX.Element[];
9
+ export { Skeleton, SkeletonFragment };
10
+ //# sourceMappingURL=skeleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../src/components/skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,QAAA,MAAM,QAAQ,GAAI,gCAIf,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,8CAW3D,CAAC;AAEF,QAAA,MAAM,gBAAgB,GAAI,sBAGvB;IACD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,8CAGG,CAAC;AAEL,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { Fragment } from "react";
3
+ import { cn } from "../lib/utils";
4
+ const Skeleton = ({
5
+ className,
6
+ items = 1,
7
+ ...props
8
+ }) => {
9
+ return Array.from({ length: items }).map((_, i) => /* @__PURE__ */ jsx(
10
+ "div",
11
+ {
12
+ className: cn(
13
+ "animate-pulse rounded-md bg-gray-100 dark:bg-gray-900",
14
+ className
15
+ ),
16
+ ...props
17
+ },
18
+ i
19
+ ));
20
+ };
21
+ const SkeletonFragment = ({
22
+ items = 1,
23
+ children
24
+ }) => Array.from({ length: items }).map((_, i) => /* @__PURE__ */ jsx(Fragment, { children }, i));
25
+ export {
26
+ Skeleton,
27
+ SkeletonFragment
28
+ };
29
+ //# sourceMappingURL=skeleton.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/skeleton.tsx"],
4
+ "sourcesContent": ["import type { ReactNode } from \"react\";\nimport { Fragment } from \"react\";\nimport { cn } from \"../lib/utils\";\n\nconst Skeleton = ({\n className,\n items = 1,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> & { items?: number }) => {\n return Array.from({ length: items }).map((_, i) => (\n <div\n className={cn(\n \"animate-pulse rounded-md bg-gray-100 dark:bg-gray-900\",\n className\n )}\n key={i}\n {...props}\n />\n ));\n};\n\nconst SkeletonFragment = ({\n items = 1,\n children,\n}: {\n items?: number;\n children?: ReactNode;\n}) =>\n Array.from({ length: items }).map((_, i) => (\n <Fragment key={i}>{children}</Fragment>\n ));\n\nexport { Skeleton, SkeletonFragment };\n"],
5
+ "mappings": "AAUI;AATJ,SAAS,gBAAgB;AACzB,SAAS,UAAU;AAEnB,MAAM,WAAW,CAAC;AAAA,EAChB;AAAA,EACA,QAAQ;AAAA,EACR,GAAG;AACL,MAAiE;AAC/D,SAAO,MAAM,KAAK,EAAE,QAAQ,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,MAC3C;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MAEC,GAAG;AAAA;AAAA,IADC;AAAA,EAEP,CACD;AACH;AAEA,MAAM,mBAAmB,CAAC;AAAA,EACxB,QAAQ;AAAA,EACR;AACF,MAIE,MAAM,KAAK,EAAE,QAAQ,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,MACpC,oBAAC,YAAkB,YAAJ,CAAa,CAC7B;",
6
+ "names": []
7
+ }
@@ -0,0 +1,15 @@
1
+ import { Slider as SliderPrimitive } from "radix-ui";
2
+ import * as React from "react";
3
+ declare const sliderVariants: (props?: ({
4
+ variant?: "default" | "dynamic" | null | undefined;
5
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
+ interface SliderProps extends React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root> {
7
+ variant?: "default" | "dynamic";
8
+ ref?: React.Ref<HTMLSpanElement>;
9
+ /** Display the current value to the right of the slider */
10
+ showValue?: boolean;
11
+ }
12
+ declare const Slider: React.MemoExoticComponent<({ className, orientation, variant, showValue, ref, ...props }: SliderProps) => import("react/jsx-runtime").JSX.Element>;
13
+ export { Slider, sliderVariants };
14
+ export type { SliderProps };
15
+ //# sourceMappingURL=slider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../src/components/slider.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,cAAc;;8EAanB,CAAC;AAsBF,UAAU,WACR,SAAQ,KAAK,CAAC,wBAAwB,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC;IACnE,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACjC,2DAA2D;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,QAAA,MAAM,MAAM,4FAQP,WAAW,6CAyCf,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,95 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { cva } from "class-variance-authority";
3
+ import { Slider as SliderPrimitive } from "radix-ui";
4
+ import * as React from "react";
5
+ import { cn } from "../lib/utils";
6
+ const sliderVariants = cva(
7
+ "relative flex h-full w-full touch-none select-none items-center justify-center",
8
+ {
9
+ variants: {
10
+ variant: {
11
+ default: "",
12
+ dynamic: ""
13
+ }
14
+ },
15
+ defaultVariants: {
16
+ variant: "default"
17
+ }
18
+ }
19
+ );
20
+ const trackVariants = cva(
21
+ "relative overflow-hidden rounded-full bg-gray-200 hover:cursor-pointer",
22
+ {
23
+ variants: {
24
+ variant: {
25
+ default: "bg-gray-200",
26
+ dynamic: "bg-gray-100 dark:bg-gray-700"
27
+ },
28
+ orientation: {
29
+ horizontal: "h-1 w-full",
30
+ vertical: "h-full w-1"
31
+ }
32
+ },
33
+ defaultVariants: {
34
+ variant: "default",
35
+ orientation: "horizontal"
36
+ }
37
+ }
38
+ );
39
+ const Slider = React.memo(
40
+ ({
41
+ className,
42
+ orientation = "horizontal",
43
+ variant,
44
+ showValue = false,
45
+ ref,
46
+ ...props
47
+ }) => {
48
+ const sliderElement = /* @__PURE__ */ jsxs(
49
+ SliderPrimitive.Root,
50
+ {
51
+ className: cn(sliderVariants({ variant, className })),
52
+ orientation,
53
+ ref,
54
+ ...props,
55
+ children: [
56
+ /* @__PURE__ */ jsx(
57
+ SliderPrimitive.Track,
58
+ {
59
+ className: cn(trackVariants({ variant, orientation })),
60
+ children: /* @__PURE__ */ jsx(
61
+ SliderPrimitive.Range,
62
+ {
63
+ className: cn(
64
+ "absolute bg-pink-500 dark:bg-neutral-50",
65
+ orientation === "horizontal" ? "h-full" : "right-0 w-full"
66
+ ),
67
+ "data-orientation": orientation
68
+ }
69
+ )
70
+ }
71
+ ),
72
+ (props.value ?? props.defaultValue ?? []).map((_, index) => /* @__PURE__ */ jsx(
73
+ SliderPrimitive.Thumb,
74
+ {
75
+ className: "block h-3 w-3 rounded-full border-2 border-neutral-900 bg-pink-500 ring-offset-white transition-colors hover:cursor-grab focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-neutral-950 focus-visible:ring-offset-2 active:cursor-grabbing disabled:pointer-events-none disabled:opacity-50 dark:border-neutral-50 dark:bg-neutral-950 dark:ring-offset-neutral-950 dark:focus-visible:ring-neutral-300"
76
+ },
77
+ index
78
+ ))
79
+ ]
80
+ }
81
+ );
82
+ if (showValue && orientation === "horizontal") {
83
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
84
+ sliderElement,
85
+ /* @__PURE__ */ jsx("span", { className: "min-w-[2rem] text-right text-gray-700 text-sm tabular-nums dark:text-gray-200", children: props.value?.at(0) ?? props.defaultValue?.at(0) ?? 0 })
86
+ ] });
87
+ }
88
+ return sliderElement;
89
+ }
90
+ );
91
+ export {
92
+ Slider,
93
+ sliderVariants
94
+ };
95
+ //# sourceMappingURL=slider.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/slider.tsx"],
4
+ "sourcesContent": ["import { cva } from \"class-variance-authority\";\nimport { Slider as SliderPrimitive } from \"radix-ui\";\nimport * as React from \"react\";\n\nimport { cn } from \"../lib/utils\";\n\nconst sliderVariants = cva(\n \"relative flex h-full w-full touch-none select-none items-center justify-center\",\n {\n variants: {\n variant: {\n default: \"\",\n dynamic: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nconst trackVariants = cva(\n \"relative overflow-hidden rounded-full bg-gray-200 hover:cursor-pointer\",\n {\n variants: {\n variant: {\n default: \"bg-gray-200\",\n dynamic: \"bg-gray-100 dark:bg-gray-700\",\n },\n orientation: {\n horizontal: \"h-1 w-full\",\n vertical: \"h-full w-1\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n orientation: \"horizontal\",\n },\n }\n);\n\ninterface SliderProps\n extends React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root> {\n variant?: \"default\" | \"dynamic\";\n ref?: React.Ref<HTMLSpanElement>;\n /** Display the current value to the right of the slider */\n showValue?: boolean;\n}\n\nconst Slider = React.memo(\n ({\n className,\n orientation = \"horizontal\",\n variant,\n showValue = false,\n ref,\n ...props\n }: SliderProps) => {\n const sliderElement = (\n <SliderPrimitive.Root\n className={cn(sliderVariants({ variant, className }))}\n orientation={orientation}\n ref={ref}\n {...props}\n >\n <SliderPrimitive.Track\n className={cn(trackVariants({ variant, orientation }))}\n >\n <SliderPrimitive.Range\n className={cn(\n \"absolute bg-pink-500 dark:bg-neutral-50\",\n orientation === \"horizontal\" ? \"h-full\" : \"right-0 w-full\"\n )}\n data-orientation={orientation}\n />\n </SliderPrimitive.Track>\n {(props.value ?? props.defaultValue ?? []).map((_, index) => (\n <SliderPrimitive.Thumb\n className=\"block h-3 w-3 rounded-full border-2 border-neutral-900 bg-pink-500 ring-offset-white transition-colors hover:cursor-grab focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-neutral-950 focus-visible:ring-offset-2 active:cursor-grabbing disabled:pointer-events-none disabled:opacity-50 dark:border-neutral-50 dark:bg-neutral-950 dark:ring-offset-neutral-950 dark:focus-visible:ring-neutral-300\"\n key={index}\n />\n ))}\n </SliderPrimitive.Root>\n );\n\n if (showValue && orientation === \"horizontal\") {\n return (\n <div className=\"flex items-center gap-3\">\n {sliderElement}\n <span className=\"min-w-[2rem] text-right text-gray-700 text-sm tabular-nums dark:text-gray-200\">\n {props.value?.at(0) ?? props.defaultValue?.at(0) ?? 0}\n </span>\n </div>\n );\n }\n\n return sliderElement;\n }\n);\n\nexport { Slider, sliderVariants };\nexport type { SliderProps };\n"],
5
+ "mappings": "AA2DM,SASI,KATJ;AA3DN,SAAS,WAAW;AACpB,SAAS,UAAU,uBAAuB;AAC1C,YAAY,WAAW;AAEvB,SAAS,UAAU;AAEnB,MAAM,iBAAiB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,MACX;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF;AAEA,MAAM,gBAAgB;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,MACX;AAAA,MACA,aAAa;AAAA,QACX,YAAY;AAAA,QACZ,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,aAAa;AAAA,IACf;AAAA,EACF;AACF;AAUA,MAAM,SAAS,MAAM;AAAA,EACnB,CAAC;AAAA,IACC;AAAA,IACA,cAAc;AAAA,IACd;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA,GAAG;AAAA,EACL,MAAmB;AACjB,UAAM,gBACJ;AAAA,MAAC,gBAAgB;AAAA,MAAhB;AAAA,QACC,WAAW,GAAG,eAAe,EAAE,SAAS,UAAU,CAAC,CAAC;AAAA,QACpD;AAAA,QACA;AAAA,QACC,GAAG;AAAA,QAEJ;AAAA;AAAA,YAAC,gBAAgB;AAAA,YAAhB;AAAA,cACC,WAAW,GAAG,cAAc,EAAE,SAAS,YAAY,CAAC,CAAC;AAAA,cAErD;AAAA,gBAAC,gBAAgB;AAAA,gBAAhB;AAAA,kBACC,WAAW;AAAA,oBACT;AAAA,oBACA,gBAAgB,eAAe,WAAW;AAAA,kBAC5C;AAAA,kBACA,oBAAkB;AAAA;AAAA,cACpB;AAAA;AAAA,UACF;AAAA,WACE,MAAM,SAAS,MAAM,gBAAgB,CAAC,GAAG,IAAI,CAAC,GAAG,UACjD;AAAA,YAAC,gBAAgB;AAAA,YAAhB;AAAA,cACC,WAAU;AAAA;AAAA,YACL;AAAA,UACP,CACD;AAAA;AAAA;AAAA,IACH;AAGF,QAAI,aAAa,gBAAgB,cAAc;AAC7C,aACE,qBAAC,SAAI,WAAU,2BACZ;AAAA;AAAA,QACD,oBAAC,UAAK,WAAU,iFACb,gBAAM,OAAO,GAAG,CAAC,KAAK,MAAM,cAAc,GAAG,CAAC,KAAK,GACtD;AAAA,SACF;AAAA,IAEJ;AAEA,WAAO;AAAA,EACT;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,54 @@
1
+ import type { LucideProps } from "lucide-react";
2
+ import * as React from "react";
3
+ import type { ListItemProps, ListProps } from "./typography/list";
4
+ interface StackingCardProps extends React.HTMLAttributes<HTMLDivElement> {
5
+ selectable?: boolean;
6
+ selected?: boolean;
7
+ onSelectedChange?: (selected: boolean) => void;
8
+ variant?: "default" | "selected";
9
+ value?: string;
10
+ initiallyCollapsed?: boolean;
11
+ "aria-label"?: string;
12
+ "aria-labelledby"?: string;
13
+ "aria-describedby"?: string;
14
+ }
15
+ declare function StackingCard({ className, children, selectable, selected, onSelectedChange, variant, onClick, value, onKeyDown, initiallyCollapsed, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, "aria-describedby": ariaDescribedby, ref, ...props }: StackingCardProps & {
16
+ ref?: React.Ref<HTMLDivElement>;
17
+ }): import("react/jsx-runtime").JSX.Element;
18
+ type StackingCardHeaderProps = React.HTMLAttributes<HTMLDivElement> & {
19
+ ref?: React.Ref<HTMLDivElement>;
20
+ };
21
+ declare function StackingCardHeader({ className, children, ref, ...props }: StackingCardHeaderProps): import("react/jsx-runtime").JSX.Element;
22
+ type StackingCardTitleProps = React.HTMLAttributes<HTMLDivElement> & {
23
+ ref?: React.Ref<HTMLDivElement>;
24
+ };
25
+ declare function StackingCardTitle({ className, ref, ...props }: StackingCardTitleProps): import("react/jsx-runtime").JSX.Element;
26
+ type StackingCardDescriptionProps = React.HTMLAttributes<HTMLDivElement> & {
27
+ ref?: React.Ref<HTMLDivElement>;
28
+ };
29
+ declare function StackingCardDescription({ className, ref, ...props }: StackingCardDescriptionProps): import("react/jsx-runtime").JSX.Element;
30
+ interface StackingCardContentProps extends React.HTMLAttributes<HTMLDivElement> {
31
+ collapsible?: boolean;
32
+ minimal?: boolean;
33
+ description?: React.ReactNode;
34
+ ref?: React.Ref<HTMLDivElement>;
35
+ }
36
+ declare function StackingCardContent({ className, children, collapsible, minimal, description, ref, ...props }: StackingCardContentProps): import("react/jsx-runtime").JSX.Element;
37
+ declare function StackingCardList({ className, children, ref, ...props }: ListProps & {
38
+ ref?: React.Ref<HTMLUListElement | HTMLOListElement>;
39
+ }): import("react/jsx-runtime").JSX.Element;
40
+ declare const StackingCardCheck: React.NamedExoticComponent<LucideProps>;
41
+ declare function StackingCardListItem({ className, children, ref, ...props }: ListItemProps & {
42
+ ref?: React.Ref<HTMLLIElement>;
43
+ }): import("react/jsx-runtime").JSX.Element;
44
+ interface StackingCardGroupProps extends React.HTMLAttributes<HTMLDivElement> {
45
+ value?: string;
46
+ onValueChange?: (value: string) => void;
47
+ defaultValue?: string;
48
+ "aria-label"?: string;
49
+ "aria-labelledby"?: string;
50
+ ref?: React.Ref<HTMLDivElement>;
51
+ }
52
+ declare function StackingCardGroup({ className, children, value, onValueChange, defaultValue, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, ref, ...props }: StackingCardGroupProps): import("react/jsx-runtime").JSX.Element;
53
+ export { StackingCard, StackingCardCheck, StackingCardContent, StackingCardDescription, StackingCardGroup, StackingCardHeader, StackingCardList, StackingCardListItem, StackingCardTitle, };
54
+ //# sourceMappingURL=stacking-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stacking-card.d.ts","sourceRoot":"","sources":["../../src/components/stacking-card.tsx"],"names":[],"mappings":"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"}