@zentauri-ui/zentauri-components 1.1.1 → 1.2.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.
- package/README.md +62 -21
- package/dist/chunk-2VQJ6OIL.js +31 -0
- package/dist/chunk-2VQJ6OIL.js.map +1 -0
- package/dist/chunk-73VCO5TE.mjs +29 -0
- package/dist/chunk-73VCO5TE.mjs.map +1 -0
- package/dist/chunk-BSWYZTYK.js +31 -0
- package/dist/chunk-BSWYZTYK.js.map +1 -0
- package/dist/chunk-CY5BQKRZ.mjs +29 -0
- package/dist/chunk-CY5BQKRZ.mjs.map +1 -0
- package/dist/chunk-DFEZH7TC.mjs +27 -0
- package/dist/chunk-DFEZH7TC.mjs.map +1 -0
- package/dist/chunk-FT2LMA66.mjs +25 -0
- package/dist/chunk-FT2LMA66.mjs.map +1 -0
- package/dist/chunk-JE3PD5ZA.js +107 -0
- package/dist/chunk-JE3PD5ZA.js.map +1 -0
- package/dist/chunk-JXCTEAXD.js +38 -0
- package/dist/chunk-JXCTEAXD.js.map +1 -0
- package/dist/chunk-LIJ6BDGP.mjs +36 -0
- package/dist/chunk-LIJ6BDGP.mjs.map +1 -0
- package/dist/chunk-PMAF6FBF.mjs +37 -0
- package/dist/chunk-PMAF6FBF.mjs.map +1 -0
- package/dist/chunk-TZ2JVWTZ.mjs +104 -0
- package/dist/chunk-TZ2JVWTZ.mjs.map +1 -0
- package/dist/chunk-UIYFEP3I.js +39 -0
- package/dist/chunk-UIYFEP3I.js.map +1 -0
- package/dist/chunk-UOZYPWDZ.js +32 -0
- package/dist/chunk-UOZYPWDZ.js.map +1 -0
- package/dist/chunk-WL5I7RVS.mjs +54 -0
- package/dist/chunk-WL5I7RVS.mjs.map +1 -0
- package/dist/chunk-WP7GYBRI.js +27 -0
- package/dist/chunk-WP7GYBRI.js.map +1 -0
- package/dist/chunk-YPLVTUYL.js +56 -0
- package/dist/chunk-YPLVTUYL.js.map +1 -0
- package/dist/hooks/useBodyScrollLock.d.mts +14 -0
- package/dist/hooks/useBodyScrollLock.d.ts +14 -0
- package/dist/hooks/useBodyScrollLock.js +13 -0
- package/dist/hooks/useBodyScrollLock.js.map +1 -0
- package/dist/hooks/useBodyScrollLock.mjs +4 -0
- package/dist/hooks/useBodyScrollLock.mjs.map +1 -0
- package/dist/hooks/useClickOutside.d.mts +23 -0
- package/dist/hooks/useClickOutside.d.ts +23 -0
- package/dist/hooks/useClickOutside.js +13 -0
- package/dist/hooks/useClickOutside.js.map +1 -0
- package/dist/hooks/useClickOutside.mjs +4 -0
- package/dist/hooks/useClickOutside.mjs.map +1 -0
- package/dist/hooks/useClipboard.d.mts +22 -0
- package/dist/hooks/useClipboard.d.ts +22 -0
- package/dist/hooks/useClipboard.js +51 -0
- package/dist/hooks/useClipboard.js.map +1 -0
- package/dist/hooks/useClipboard.mjs +49 -0
- package/dist/hooks/useClipboard.mjs.map +1 -0
- package/dist/hooks/useControllableState.d.mts +22 -0
- package/dist/hooks/useControllableState.d.ts +22 -0
- package/dist/hooks/useControllableState.js +13 -0
- package/dist/hooks/useControllableState.js.map +1 -0
- package/dist/hooks/useControllableState.mjs +4 -0
- package/dist/hooks/useControllableState.mjs.map +1 -0
- package/dist/hooks/useDebouncedValue.d.mts +14 -0
- package/dist/hooks/useDebouncedValue.d.ts +14 -0
- package/dist/hooks/useDebouncedValue.js +22 -0
- package/dist/hooks/useDebouncedValue.js.map +1 -0
- package/dist/hooks/useDebouncedValue.mjs +20 -0
- package/dist/hooks/useDebouncedValue.mjs.map +1 -0
- package/dist/hooks/useDisclosure.d.mts +25 -0
- package/dist/hooks/useDisclosure.d.ts +25 -0
- package/dist/hooks/useDisclosure.js +37 -0
- package/dist/hooks/useDisclosure.js.map +1 -0
- package/dist/hooks/useDisclosure.mjs +35 -0
- package/dist/hooks/useDisclosure.mjs.map +1 -0
- package/dist/hooks/useDocumentTitle.d.mts +19 -0
- package/dist/hooks/useDocumentTitle.d.ts +19 -0
- package/dist/hooks/useDocumentTitle.js +40 -0
- package/dist/hooks/useDocumentTitle.js.map +1 -0
- package/dist/hooks/useDocumentTitle.mjs +38 -0
- package/dist/hooks/useDocumentTitle.mjs.map +1 -0
- package/dist/hooks/useFocusManagement.d.mts +24 -0
- package/dist/hooks/useFocusManagement.d.ts +24 -0
- package/dist/hooks/useFocusManagement.js +14 -0
- package/dist/hooks/useFocusManagement.js.map +1 -0
- package/dist/hooks/useFocusManagement.mjs +5 -0
- package/dist/hooks/useFocusManagement.mjs.map +1 -0
- package/dist/hooks/useHover.d.mts +15 -0
- package/dist/hooks/useHover.d.ts +15 -0
- package/dist/hooks/useHover.js +37 -0
- package/dist/hooks/useHover.js.map +1 -0
- package/dist/hooks/useHover.mjs +35 -0
- package/dist/hooks/useHover.mjs.map +1 -0
- package/dist/hooks/useInView.d.mts +19 -0
- package/dist/hooks/useInView.d.ts +19 -0
- package/dist/hooks/useInView.js +15 -0
- package/dist/hooks/useInView.js.map +1 -0
- package/dist/hooks/useInView.mjs +13 -0
- package/dist/hooks/useInView.mjs.map +1 -0
- package/dist/hooks/useIntersectionObserver.d.mts +19 -0
- package/dist/hooks/useIntersectionObserver.d.ts +19 -0
- package/dist/hooks/useIntersectionObserver.js +13 -0
- package/dist/hooks/useIntersectionObserver.js.map +1 -0
- package/dist/hooks/useIntersectionObserver.mjs +4 -0
- package/dist/hooks/useIntersectionObserver.mjs.map +1 -0
- package/dist/hooks/useIsMounted.d.mts +11 -0
- package/dist/hooks/useIsMounted.d.ts +11 -0
- package/dist/hooks/useIsMounted.js +20 -0
- package/dist/hooks/useIsMounted.js.map +1 -0
- package/dist/hooks/useIsMounted.mjs +18 -0
- package/dist/hooks/useIsMounted.mjs.map +1 -0
- package/dist/hooks/useIsomorphicLayoutEffect.d.mts +11 -0
- package/dist/hooks/useIsomorphicLayoutEffect.d.ts +11 -0
- package/dist/hooks/useIsomorphicLayoutEffect.js +11 -0
- package/dist/hooks/useIsomorphicLayoutEffect.js.map +1 -0
- package/dist/hooks/useIsomorphicLayoutEffect.mjs +9 -0
- package/dist/hooks/useIsomorphicLayoutEffect.mjs.map +1 -0
- package/dist/hooks/useLocalStorage.d.mts +22 -0
- package/dist/hooks/useLocalStorage.d.ts +22 -0
- package/dist/hooks/useLocalStorage.js +84 -0
- package/dist/hooks/useLocalStorage.js.map +1 -0
- package/dist/hooks/useLocalStorage.mjs +82 -0
- package/dist/hooks/useLocalStorage.mjs.map +1 -0
- package/dist/hooks/useMediaQuery.d.mts +13 -0
- package/dist/hooks/useMediaQuery.d.ts +13 -0
- package/dist/hooks/useMediaQuery.js +13 -0
- package/dist/hooks/useMediaQuery.js.map +1 -0
- package/dist/hooks/useMediaQuery.mjs +4 -0
- package/dist/hooks/useMediaQuery.mjs.map +1 -0
- package/dist/hooks/useNetworkStatus.d.mts +10 -0
- package/dist/hooks/useNetworkStatus.d.ts +10 -0
- package/dist/hooks/useNetworkStatus.js +30 -0
- package/dist/hooks/useNetworkStatus.js.map +1 -0
- package/dist/hooks/useNetworkStatus.mjs +28 -0
- package/dist/hooks/useNetworkStatus.mjs.map +1 -0
- package/dist/hooks/usePageVisibility.d.mts +10 -0
- package/dist/hooks/usePageVisibility.d.ts +10 -0
- package/dist/hooks/usePageVisibility.js +28 -0
- package/dist/hooks/usePageVisibility.js.map +1 -0
- package/dist/hooks/usePageVisibility.mjs +26 -0
- package/dist/hooks/usePageVisibility.mjs.map +1 -0
- package/dist/hooks/usePagination.d.mts +5 -0
- package/dist/hooks/usePagination.d.ts +5 -0
- package/dist/hooks/usePagination.js +18 -0
- package/dist/hooks/usePagination.js.map +1 -0
- package/dist/hooks/usePagination.mjs +5 -0
- package/dist/hooks/usePagination.mjs.map +1 -0
- package/dist/hooks/usePrefersColorScheme.d.mts +10 -0
- package/dist/hooks/usePrefersColorScheme.d.ts +10 -0
- package/dist/hooks/usePrefersColorScheme.js +17 -0
- package/dist/hooks/usePrefersColorScheme.js.map +1 -0
- package/dist/hooks/usePrefersColorScheme.mjs +15 -0
- package/dist/hooks/usePrefersColorScheme.mjs.map +1 -0
- package/dist/hooks/usePrefersReducedMotion.d.mts +10 -0
- package/dist/hooks/usePrefersReducedMotion.d.ts +10 -0
- package/dist/hooks/usePrefersReducedMotion.js +13 -0
- package/dist/hooks/usePrefersReducedMotion.js.map +1 -0
- package/dist/hooks/usePrefersReducedMotion.mjs +11 -0
- package/dist/hooks/usePrefersReducedMotion.mjs.map +1 -0
- package/dist/hooks/useResizeObserver.d.mts +23 -0
- package/dist/hooks/useResizeObserver.d.ts +23 -0
- package/dist/hooks/useResizeObserver.js +38 -0
- package/dist/hooks/useResizeObserver.js.map +1 -0
- package/dist/hooks/useResizeObserver.mjs +36 -0
- package/dist/hooks/useResizeObserver.mjs.map +1 -0
- package/dist/hooks/useSessionStorage.d.mts +22 -0
- package/dist/hooks/useSessionStorage.d.ts +22 -0
- package/dist/hooks/useSessionStorage.js +58 -0
- package/dist/hooks/useSessionStorage.js.map +1 -0
- package/dist/hooks/useSessionStorage.mjs +56 -0
- package/dist/hooks/useSessionStorage.mjs.map +1 -0
- package/dist/hooks/useThrottledCallback.d.mts +14 -0
- package/dist/hooks/useThrottledCallback.d.ts +14 -0
- package/dist/hooks/useThrottledCallback.js +27 -0
- package/dist/hooks/useThrottledCallback.js.map +1 -0
- package/dist/hooks/useThrottledCallback.mjs +25 -0
- package/dist/hooks/useThrottledCallback.mjs.map +1 -0
- package/dist/hooks/useToggle.d.mts +9 -0
- package/dist/hooks/useToggle.d.ts +9 -0
- package/dist/hooks/useToggle.js +20 -0
- package/dist/hooks/useToggle.js.map +1 -0
- package/dist/hooks/useToggle.mjs +18 -0
- package/dist/hooks/useToggle.mjs.map +1 -0
- package/dist/hooks/useWindowSize.d.mts +14 -0
- package/dist/hooks/useWindowSize.d.ts +14 -0
- package/dist/hooks/useWindowSize.js +30 -0
- package/dist/hooks/useWindowSize.js.map +1 -0
- package/dist/hooks/useWindowSize.mjs +28 -0
- package/dist/hooks/useWindowSize.mjs.map +1 -0
- package/dist/hooks/utils.d.mts +8 -0
- package/dist/hooks/utils.d.ts +8 -0
- package/dist/hooks/utils.js +24 -0
- package/dist/hooks/utils.js.map +1 -0
- package/dist/hooks/utils.mjs +3 -0
- package/dist/hooks/utils.mjs.map +1 -0
- package/dist/index-ClPu5gDp.d.ts +86 -0
- package/dist/index-D4p9fn1o.d.mts +86 -0
- package/dist/ui/accordion.js +5 -5
- package/dist/ui/accordion.mjs +1 -1
- package/dist/ui/alert.js +7 -7
- package/dist/ui/alert.mjs +1 -1
- package/dist/ui/avatar.js +6 -6
- package/dist/ui/avatar.js.map +1 -1
- package/dist/ui/avatar.mjs +1 -1
- package/dist/ui/avatar.mjs.map +1 -1
- package/dist/ui/badge.js +2 -2
- package/dist/ui/badge.mjs +1 -1
- package/dist/ui/breadcrumb.js +7 -7
- package/dist/ui/breadcrumb.mjs +1 -1
- package/dist/ui/buttons.js +3 -3
- package/dist/ui/buttons.mjs +1 -1
- package/dist/ui/card.js +7 -7
- package/dist/ui/card.js.map +1 -1
- package/dist/ui/card.mjs +1 -1
- package/dist/ui/card.mjs.map +1 -1
- package/dist/ui/divider.js +6 -6
- package/dist/ui/divider.mjs +1 -1
- package/dist/ui/drawer.js +15 -60
- package/dist/ui/drawer.js.map +1 -1
- package/dist/ui/drawer.mjs +9 -54
- package/dist/ui/drawer.mjs.map +1 -1
- package/dist/ui/dropdown.js +6 -13
- package/dist/ui/dropdown.js.map +1 -1
- package/dist/ui/dropdown.mjs +4 -11
- package/dist/ui/dropdown.mjs.map +1 -1
- package/dist/ui/empty-state.js +6 -6
- package/dist/ui/empty-state.js.map +1 -1
- package/dist/ui/empty-state.mjs +1 -1
- package/dist/ui/empty-state.mjs.map +1 -1
- package/dist/ui/file-upload.js +3 -3
- package/dist/ui/file-upload.mjs +1 -1
- package/dist/ui/inputs.js +3 -3
- package/dist/ui/inputs.mjs +1 -1
- package/dist/ui/modal.js +16 -61
- package/dist/ui/modal.js.map +1 -1
- package/dist/ui/modal.mjs +9 -54
- package/dist/ui/modal.mjs.map +1 -1
- package/dist/ui/pagination.d.mts +3 -81
- package/dist/ui/pagination.d.ts +3 -81
- package/dist/ui/pagination.js +13 -122
- package/dist/ui/pagination.js.map +1 -1
- package/dist/ui/pagination.mjs +5 -114
- package/dist/ui/pagination.mjs.map +1 -1
- package/dist/ui/progress.js +7 -10
- package/dist/ui/progress.js.map +1 -1
- package/dist/ui/progress.mjs +1 -4
- package/dist/ui/progress.mjs.map +1 -1
- package/dist/ui/select.js +6 -6
- package/dist/ui/select.mjs +1 -1
- package/dist/ui/skeleton.js +7 -7
- package/dist/ui/skeleton.mjs +1 -1
- package/dist/ui/slider.js +9 -9
- package/dist/ui/slider.js.map +1 -1
- package/dist/ui/slider.mjs +1 -1
- package/dist/ui/slider.mjs.map +1 -1
- package/dist/ui/spinner.js +24 -10
- package/dist/ui/spinner.js.map +1 -1
- package/dist/ui/spinner.mjs +17 -3
- package/dist/ui/spinner.mjs.map +1 -1
- package/dist/ui/stepper.js +6 -6
- package/dist/ui/stepper.mjs +1 -1
- package/dist/ui/table.js +9 -9
- package/dist/ui/table.js.map +1 -1
- package/dist/ui/table.mjs +1 -1
- package/dist/ui/table.mjs.map +1 -1
- package/dist/ui/tabs.js +5 -5
- package/dist/ui/tabs.mjs +1 -1
- package/dist/ui/toast.js +7 -7
- package/dist/ui/toast.js.map +1 -1
- package/dist/ui/toast.mjs +1 -1
- package/dist/ui/toast.mjs.map +1 -1
- package/dist/ui/toggle.js +3 -3
- package/dist/ui/toggle.mjs +1 -1
- package/dist/ui/tooltip.js +2 -2
- package/dist/ui/tooltip.mjs +1 -1
- package/package.json +7 -2
- package/dist/chunk-B23TPTVG.mjs +0 -11
- package/dist/chunk-B23TPTVG.mjs.map +0 -1
- package/dist/chunk-WZ2GOU2J.js +0 -13
- package/dist/chunk-WZ2GOU2J.js.map +0 -1
package/dist/ui/progress.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunkUOZYPWDZ_js = require('../chunk-UOZYPWDZ.js');
|
|
5
5
|
var react = require('react');
|
|
6
6
|
var framerMotion = require('framer-motion');
|
|
7
7
|
var classVarianceAuthority = require('class-variance-authority');
|
|
@@ -115,9 +115,6 @@ function useProgressContext(component) {
|
|
|
115
115
|
}
|
|
116
116
|
return ctx;
|
|
117
117
|
}
|
|
118
|
-
function clamp(value, min, max) {
|
|
119
|
-
return Math.min(max, Math.max(min, value));
|
|
120
|
-
}
|
|
121
118
|
function Progress(props) {
|
|
122
119
|
const {
|
|
123
120
|
className,
|
|
@@ -136,7 +133,7 @@ function Progress(props) {
|
|
|
136
133
|
...rest
|
|
137
134
|
} = props;
|
|
138
135
|
const motionProps = progressAnimationPresets[animation];
|
|
139
|
-
const clamped = clamp(value, min, max);
|
|
136
|
+
const clamped = chunkUOZYPWDZ_js.clamp(value, min, max);
|
|
140
137
|
const percent = max === min ? 0 : (clamped - min) / (max - min) * 100;
|
|
141
138
|
const ctx = react.useMemo(
|
|
142
139
|
() => ({
|
|
@@ -161,7 +158,7 @@ function Progress(props) {
|
|
|
161
158
|
"aria-valuemax": max,
|
|
162
159
|
"aria-valuenow": clamped,
|
|
163
160
|
"aria-label": label,
|
|
164
|
-
className:
|
|
161
|
+
className: chunkUOZYPWDZ_js.cn(
|
|
165
162
|
progressVariants({ appearance, size, shape, striped, animated }),
|
|
166
163
|
className
|
|
167
164
|
),
|
|
@@ -184,13 +181,13 @@ function ProgressBar({
|
|
|
184
181
|
"div",
|
|
185
182
|
{
|
|
186
183
|
"data-slot": "progress-track",
|
|
187
|
-
className:
|
|
184
|
+
className: chunkUOZYPWDZ_js.cn(progressTrackVariants({ size, shape }), "text-current"),
|
|
188
185
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
189
186
|
framerMotion.motion.div,
|
|
190
187
|
{
|
|
191
188
|
ref,
|
|
192
189
|
"data-slot": "progress-bar",
|
|
193
|
-
className:
|
|
190
|
+
className: chunkUOZYPWDZ_js.cn(progressBarVariants({ striped }), className),
|
|
194
191
|
style: {
|
|
195
192
|
transformOrigin: "left center",
|
|
196
193
|
...style
|
|
@@ -209,7 +206,7 @@ function ProgressLabel({ className, children }) {
|
|
|
209
206
|
"div",
|
|
210
207
|
{
|
|
211
208
|
"data-slot": "progress-label",
|
|
212
|
-
className:
|
|
209
|
+
className: chunkUOZYPWDZ_js.cn("mb-2 font-medium text-slate-200", className),
|
|
213
210
|
children
|
|
214
211
|
}
|
|
215
212
|
);
|
|
@@ -224,7 +221,7 @@ function ProgressValue({ className, children }) {
|
|
|
224
221
|
"div",
|
|
225
222
|
{
|
|
226
223
|
"data-slot": "progress-value",
|
|
227
|
-
className:
|
|
224
|
+
className: chunkUOZYPWDZ_js.cn("mt-2 text-right text-slate-400", className),
|
|
228
225
|
children: content
|
|
229
226
|
}
|
|
230
227
|
);
|
package/dist/ui/progress.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ui/progress/animations.ts","../../src/ui/progress/variants.ts","../../src/ui/progress/progress.tsx"],"names":["cva","createContext","useContext","useMemo","jsx","motion","cn","Fragment"],"mappings":"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","file":"progress.js","sourcesContent":["import type { HTMLMotionProps } from \"framer-motion\";\n\nimport type { ProgressAnimation } from \"./types\";\n\ntype ProgressPresetMotionProps = Pick<\n HTMLMotionProps<\"div\">,\n \"transition\" | \"animate\"\n>;\n\nexport type ProgressAnimationPresets = Record<\n ProgressAnimation,\n ProgressPresetMotionProps\n>;\n\nexport const progressAnimationPresets: ProgressAnimationPresets = {\n none: {},\n shimmer: {\n animate: { backgroundPosition: [\"0% 0%\", \"100% 0%\"] },\n transition: { repeat: Infinity, duration: 1.2, ease: \"linear\" },\n },\n};\n","import { cva } from \"class-variance-authority\";\n\nexport const progressVariants = cva(\"w-full text-slate-50\", {\n variants: {\n appearance: {\n default: \"[--progress-fill:theme(colors.slate.50)]\",\n secondary: \"[--progress-fill:theme(colors.slate.300)]\",\n destructive: \"[--progress-fill:theme(colors.rose.400)]\",\n emerald: \"[--progress-fill:theme(colors.emerald.400)]\",\n indigo: \"[--progress-fill:theme(colors.indigo.400)]\",\n purple: \"[--progress-fill:theme(colors.purple.400)]\",\n pink: \"[--progress-fill:theme(colors.pink.400)]\",\n rose: \"[--progress-fill:theme(colors.rose.400)]\",\n sky: \"[--progress-fill:theme(colors.sky.400)]\",\n teal: \"[--progress-fill:theme(colors.teal.400)]\",\n yellow: \"[--progress-fill:theme(colors.yellow.400)]\",\n orange: \"[--progress-fill:theme(colors.orange.400)]\",\n outline: \"[--progress-fill:theme(colors.cyan.300)]\",\n ghost: \"[--progress-fill:theme(colors.slate.200)]\",\n glass: \"[--progress-fill:theme(colors.white)]\",\n \"gradient-blue\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.blue.500),theme(colors.purple.500))]\",\n \"gradient-green\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.green.500),theme(colors.lime.500))]\",\n \"gradient-red\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.red.500),theme(colors.pink.500))]\",\n \"gradient-yellow\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.yellow.500),theme(colors.orange.500))]\",\n \"gradient-purple\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.purple.500),theme(colors.pink.500))]\",\n \"gradient-teal\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.teal.500),theme(colors.cyan.500))]\",\n \"gradient-indigo\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.indigo.500),theme(colors.purple.500))]\",\n \"gradient-pink\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.pink.500),theme(colors.rose.500))]\",\n \"gradient-orange\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.orange.500),theme(colors.red.500))]\",\n },\n size: {\n xs: \"text-[0.65rem]\",\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base\",\n xl: \"text-lg\",\n },\n shape: {\n flat: \"rounded-none\",\n rounded: \"rounded-md\",\n pill: \"rounded-full\",\n },\n striped: {\n true: \"\",\n false: \"\",\n },\n animated: {\n true: \"\",\n false: \"\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n shape: \"rounded\",\n striped: false,\n animated: false,\n },\n});\n\nexport const progressTrackVariants = cva(\n \"relative w-full overflow-hidden bg-white/10\",\n {\n variants: {\n size: {\n xs: \"h-1\",\n sm: \"h-1.5\",\n md: \"h-2\",\n lg: \"h-3\",\n xl: \"h-4\",\n },\n shape: {\n flat: \"rounded-none\",\n rounded: \"rounded-md\",\n pill: \"rounded-full\",\n },\n },\n defaultVariants: {\n size: \"md\",\n shape: \"rounded\",\n },\n },\n);\n\nexport const progressBarVariants = cva(\n \"h-full w-full origin-left rounded-[inherit]\",\n {\n variants: {\n striped: {\n true: \"bg-[repeating-linear-gradient(135deg,rgba(255,255,255,0.18)_0,rgba(255,255,255,0.18)_10px,transparent_10px,transparent_20px)]\",\n false: \"[background:var(--progress-fill)]\",\n },\n },\n defaultVariants: { striped: false },\n },\n);\n","\"use client\";\n\nimport { createContext, useContext, useMemo } from \"react\";\nimport { motion } from \"framer-motion\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport { progressAnimationPresets } from \"./animations\";\nimport type { ProgressProps, ProgressSectionProps } from \"./types\";\nimport {\n progressBarVariants,\n progressTrackVariants,\n progressVariants,\n} from \"./variants\";\n\ntype ProgressCtx = {\n value: number;\n min: number;\n max: number;\n size: NonNullable<ProgressProps[\"size\"]>;\n shape: NonNullable<ProgressProps[\"shape\"]>;\n striped: boolean;\n animated: boolean;\n appearance: NonNullable<ProgressProps[\"appearance\"]>;\n};\n\nconst ProgressContext = createContext<ProgressCtx | null>(null);\n\nfunction useProgressContext(component: string): ProgressCtx {\n const ctx = useContext(ProgressContext);\n if (!ctx) {\n throw new Error(`${component} must be used within <Progress>`);\n }\n return ctx;\n}\n\nfunction clamp(value: number, min: number, max: number) {\n return Math.min(max, Math.max(min, value));\n}\n\nexport function Progress(props: ProgressProps) {\n const {\n className,\n appearance = \"default\",\n size = \"md\",\n shape = \"rounded\",\n striped = false,\n animated = false,\n animation = \"none\",\n value = 0,\n min = 0,\n max = 100,\n label,\n children,\n ref,\n ...rest\n } = props;\n const motionProps = progressAnimationPresets[animation];\n const clamped = clamp(value, min, max);\n const percent = max === min ? 0 : ((clamped - min) / (max - min)) * 100;\n\n const ctx = useMemo(\n () => ({\n value: clamped,\n min,\n max,\n size: size ?? \"md\",\n shape: shape ?? \"rounded\",\n striped: Boolean(striped),\n animated: Boolean(animated),\n appearance: appearance ?? \"default\",\n }),\n [animated, appearance, clamped, max, min, shape, size, striped],\n );\n\n return (\n <ProgressContext.Provider value={ctx}>\n <motion.div\n ref={ref}\n data-slot=\"progress\"\n role=\"progressbar\"\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={clamped}\n aria-label={label}\n className={cn(\n progressVariants({ appearance, size, shape, striped, animated }),\n className,\n )}\n initial={false}\n {...motionProps}\n {...rest}\n >\n {children ?? (\n <>\n <ProgressBar style={{ transform: `scaleX(${percent / 100})` }} />\n </>\n )}\n </motion.div>\n </ProgressContext.Provider>\n );\n}\n\nProgress.displayName = \"Progress\";\n\nexport function ProgressBar({\n className,\n style,\n ref,\n ...rest\n}: ProgressSectionProps & {\n style?: React.CSSProperties;\n ref?: React.Ref<HTMLDivElement>;\n}) {\n const { size, shape, striped, animated } = useProgressContext(\"ProgressBar\");\n\n return (\n <div\n data-slot=\"progress-track\"\n className={cn(progressTrackVariants({ size, shape }), \"text-current\")}\n >\n <motion.div\n ref={ref}\n data-slot=\"progress-bar\"\n className={cn(progressBarVariants({ striped }), className)}\n style={{\n transformOrigin: \"left center\",\n ...style,\n }}\n animate={\n animated ? { x: [\"-30%\", \"0%\"], opacity: [0.85, 1] } : undefined\n }\n transition={\n animated\n ? { repeat: Infinity, duration: 1.1, ease: \"easeInOut\" }\n : undefined\n }\n {...rest}\n />\n </div>\n );\n}\n\nProgressBar.displayName = \"ProgressBar\";\n\nexport function ProgressLabel({ className, children }: ProgressSectionProps) {\n return (\n <div\n data-slot=\"progress-label\"\n className={cn(\"mb-2 font-medium text-slate-200\", className)}\n >\n {children}\n </div>\n );\n}\n\nProgressLabel.displayName = \"ProgressLabel\";\n\nexport function ProgressValue({ className, children }: ProgressSectionProps) {\n const { value, min, max } = useProgressContext(\"ProgressValue\");\n const range = max - min;\n const pct = range === 0 ? 0 : Math.round(((value - min) / range) * 100);\n const content = children ?? `${pct}%`;\n return (\n <div\n data-slot=\"progress-value\"\n className={cn(\"mt-2 text-right text-slate-400\", className)}\n >\n {content}\n </div>\n );\n}\n\nProgressValue.displayName = \"ProgressValue\";\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/ui/progress/animations.ts","../../src/ui/progress/variants.ts","../../src/ui/progress/progress.tsx"],"names":["cva","createContext","useContext","clamp","useMemo","jsx","motion","cn","Fragment"],"mappings":"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","file":"progress.js","sourcesContent":["import type { HTMLMotionProps } from \"framer-motion\";\n\nimport type { ProgressAnimation } from \"./types\";\n\ntype ProgressPresetMotionProps = Pick<\n HTMLMotionProps<\"div\">,\n \"transition\" | \"animate\"\n>;\n\nexport type ProgressAnimationPresets = Record<\n ProgressAnimation,\n ProgressPresetMotionProps\n>;\n\nexport const progressAnimationPresets: ProgressAnimationPresets = {\n none: {},\n shimmer: {\n animate: { backgroundPosition: [\"0% 0%\", \"100% 0%\"] },\n transition: { repeat: Infinity, duration: 1.2, ease: \"linear\" },\n },\n};\n","import { cva } from \"class-variance-authority\";\n\nexport const progressVariants = cva(\"w-full text-slate-50\", {\n variants: {\n appearance: {\n default: \"[--progress-fill:theme(colors.slate.50)]\",\n secondary: \"[--progress-fill:theme(colors.slate.300)]\",\n destructive: \"[--progress-fill:theme(colors.rose.400)]\",\n emerald: \"[--progress-fill:theme(colors.emerald.400)]\",\n indigo: \"[--progress-fill:theme(colors.indigo.400)]\",\n purple: \"[--progress-fill:theme(colors.purple.400)]\",\n pink: \"[--progress-fill:theme(colors.pink.400)]\",\n rose: \"[--progress-fill:theme(colors.rose.400)]\",\n sky: \"[--progress-fill:theme(colors.sky.400)]\",\n teal: \"[--progress-fill:theme(colors.teal.400)]\",\n yellow: \"[--progress-fill:theme(colors.yellow.400)]\",\n orange: \"[--progress-fill:theme(colors.orange.400)]\",\n outline: \"[--progress-fill:theme(colors.cyan.300)]\",\n ghost: \"[--progress-fill:theme(colors.slate.200)]\",\n glass: \"[--progress-fill:theme(colors.white)]\",\n \"gradient-blue\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.blue.500),theme(colors.purple.500))]\",\n \"gradient-green\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.green.500),theme(colors.lime.500))]\",\n \"gradient-red\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.red.500),theme(colors.pink.500))]\",\n \"gradient-yellow\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.yellow.500),theme(colors.orange.500))]\",\n \"gradient-purple\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.purple.500),theme(colors.pink.500))]\",\n \"gradient-teal\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.teal.500),theme(colors.cyan.500))]\",\n \"gradient-indigo\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.indigo.500),theme(colors.purple.500))]\",\n \"gradient-pink\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.pink.500),theme(colors.rose.500))]\",\n \"gradient-orange\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.orange.500),theme(colors.red.500))]\",\n },\n size: {\n xs: \"text-[0.65rem]\",\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base\",\n xl: \"text-lg\",\n },\n shape: {\n flat: \"rounded-none\",\n rounded: \"rounded-md\",\n pill: \"rounded-full\",\n },\n striped: {\n true: \"\",\n false: \"\",\n },\n animated: {\n true: \"\",\n false: \"\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n shape: \"rounded\",\n striped: false,\n animated: false,\n },\n});\n\nexport const progressTrackVariants = cva(\n \"relative w-full overflow-hidden bg-white/10\",\n {\n variants: {\n size: {\n xs: \"h-1\",\n sm: \"h-1.5\",\n md: \"h-2\",\n lg: \"h-3\",\n xl: \"h-4\",\n },\n shape: {\n flat: \"rounded-none\",\n rounded: \"rounded-md\",\n pill: \"rounded-full\",\n },\n },\n defaultVariants: {\n size: \"md\",\n shape: \"rounded\",\n },\n },\n);\n\nexport const progressBarVariants = cva(\n \"h-full w-full origin-left rounded-[inherit]\",\n {\n variants: {\n striped: {\n true: \"bg-[repeating-linear-gradient(135deg,rgba(255,255,255,0.18)_0,rgba(255,255,255,0.18)_10px,transparent_10px,transparent_20px)]\",\n false: \"[background:var(--progress-fill)]\",\n },\n },\n defaultVariants: { striped: false },\n },\n);\n","\"use client\";\n\nimport { createContext, useContext, useMemo } from \"react\";\nimport { motion } from \"framer-motion\";\n\nimport { cn, clamp } from \"../../lib/utils\";\n\nimport { progressAnimationPresets } from \"./animations\";\nimport type { ProgressProps, ProgressSectionProps, ProgressCtx } from \"./types\";\nimport {\n progressBarVariants,\n progressTrackVariants,\n progressVariants,\n} from \"./variants\";\n\n\nconst ProgressContext = createContext<ProgressCtx | null>(null);\n\nfunction useProgressContext(component: string): ProgressCtx {\n const ctx = useContext(ProgressContext);\n if (!ctx) {\n throw new Error(`${component} must be used within <Progress>`);\n }\n return ctx;\n}\n\n\nexport function Progress(props: ProgressProps) {\n const {\n className,\n appearance = \"default\",\n size = \"md\",\n shape = \"rounded\",\n striped = false,\n animated = false,\n animation = \"none\",\n value = 0,\n min = 0,\n max = 100,\n label,\n children,\n ref,\n ...rest\n } = props;\n const motionProps = progressAnimationPresets[animation];\n const clamped = clamp(value, min, max);\n const percent = max === min ? 0 : ((clamped - min) / (max - min)) * 100;\n\n const ctx = useMemo(\n () => ({\n value: clamped,\n min,\n max,\n size: size ?? \"md\",\n shape: shape ?? \"rounded\",\n striped: Boolean(striped),\n animated: Boolean(animated),\n appearance: appearance ?? \"default\",\n }),\n [animated, appearance, clamped, max, min, shape, size, striped],\n );\n\n return (\n <ProgressContext.Provider value={ctx}>\n <motion.div\n ref={ref}\n data-slot=\"progress\"\n role=\"progressbar\"\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={clamped}\n aria-label={label}\n className={cn(\n progressVariants({ appearance, size, shape, striped, animated }),\n className,\n )}\n initial={false}\n {...motionProps}\n {...rest}\n >\n {children ?? (\n <>\n <ProgressBar style={{ transform: `scaleX(${percent / 100})` }} />\n </>\n )}\n </motion.div>\n </ProgressContext.Provider>\n );\n}\n\nProgress.displayName = \"Progress\";\n\nexport function ProgressBar({\n className,\n style,\n ref,\n ...rest\n}: ProgressSectionProps & {\n style?: React.CSSProperties;\n ref?: React.Ref<HTMLDivElement>;\n}) {\n const { size, shape, striped, animated } = useProgressContext(\"ProgressBar\");\n\n return (\n <div\n data-slot=\"progress-track\"\n className={cn(progressTrackVariants({ size, shape }), \"text-current\")}\n >\n <motion.div\n ref={ref}\n data-slot=\"progress-bar\"\n className={cn(progressBarVariants({ striped }), className)}\n style={{\n transformOrigin: \"left center\",\n ...style,\n }}\n animate={\n animated ? { x: [\"-30%\", \"0%\"], opacity: [0.85, 1] } : undefined\n }\n transition={\n animated\n ? { repeat: Infinity, duration: 1.1, ease: \"easeInOut\" }\n : undefined\n }\n {...rest}\n />\n </div>\n );\n}\n\nProgressBar.displayName = \"ProgressBar\";\n\nexport function ProgressLabel({ className, children }: ProgressSectionProps) {\n return (\n <div\n data-slot=\"progress-label\"\n className={cn(\"mb-2 font-medium text-slate-200\", className)}\n >\n {children}\n </div>\n );\n}\n\nProgressLabel.displayName = \"ProgressLabel\";\n\nexport function ProgressValue({ className, children }: ProgressSectionProps) {\n const { value, min, max } = useProgressContext(\"ProgressValue\");\n const range = max - min;\n const pct = range === 0 ? 0 : Math.round(((value - min) / range) * 100);\n const content = children ?? `${pct}%`;\n return (\n <div\n data-slot=\"progress-value\"\n className={cn(\"mt-2 text-right text-slate-400\", className)}\n >\n {content}\n </div>\n );\n}\n\nProgressValue.displayName = \"ProgressValue\";\n"]}
|
package/dist/ui/progress.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { cn } from '../chunk-
|
|
2
|
+
import { clamp, cn } from '../chunk-DFEZH7TC.mjs';
|
|
3
3
|
import { createContext, useMemo, useContext } from 'react';
|
|
4
4
|
import { motion } from 'framer-motion';
|
|
5
5
|
import { cva } from 'class-variance-authority';
|
|
@@ -113,9 +113,6 @@ function useProgressContext(component) {
|
|
|
113
113
|
}
|
|
114
114
|
return ctx;
|
|
115
115
|
}
|
|
116
|
-
function clamp(value, min, max) {
|
|
117
|
-
return Math.min(max, Math.max(min, value));
|
|
118
|
-
}
|
|
119
116
|
function Progress(props) {
|
|
120
117
|
const {
|
|
121
118
|
className,
|
package/dist/ui/progress.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ui/progress/animations.ts","../../src/ui/progress/variants.ts","../../src/ui/progress/progress.tsx"],"names":[],"mappings":"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","file":"progress.mjs","sourcesContent":["import type { HTMLMotionProps } from \"framer-motion\";\n\nimport type { ProgressAnimation } from \"./types\";\n\ntype ProgressPresetMotionProps = Pick<\n HTMLMotionProps<\"div\">,\n \"transition\" | \"animate\"\n>;\n\nexport type ProgressAnimationPresets = Record<\n ProgressAnimation,\n ProgressPresetMotionProps\n>;\n\nexport const progressAnimationPresets: ProgressAnimationPresets = {\n none: {},\n shimmer: {\n animate: { backgroundPosition: [\"0% 0%\", \"100% 0%\"] },\n transition: { repeat: Infinity, duration: 1.2, ease: \"linear\" },\n },\n};\n","import { cva } from \"class-variance-authority\";\n\nexport const progressVariants = cva(\"w-full text-slate-50\", {\n variants: {\n appearance: {\n default: \"[--progress-fill:theme(colors.slate.50)]\",\n secondary: \"[--progress-fill:theme(colors.slate.300)]\",\n destructive: \"[--progress-fill:theme(colors.rose.400)]\",\n emerald: \"[--progress-fill:theme(colors.emerald.400)]\",\n indigo: \"[--progress-fill:theme(colors.indigo.400)]\",\n purple: \"[--progress-fill:theme(colors.purple.400)]\",\n pink: \"[--progress-fill:theme(colors.pink.400)]\",\n rose: \"[--progress-fill:theme(colors.rose.400)]\",\n sky: \"[--progress-fill:theme(colors.sky.400)]\",\n teal: \"[--progress-fill:theme(colors.teal.400)]\",\n yellow: \"[--progress-fill:theme(colors.yellow.400)]\",\n orange: \"[--progress-fill:theme(colors.orange.400)]\",\n outline: \"[--progress-fill:theme(colors.cyan.300)]\",\n ghost: \"[--progress-fill:theme(colors.slate.200)]\",\n glass: \"[--progress-fill:theme(colors.white)]\",\n \"gradient-blue\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.blue.500),theme(colors.purple.500))]\",\n \"gradient-green\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.green.500),theme(colors.lime.500))]\",\n \"gradient-red\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.red.500),theme(colors.pink.500))]\",\n \"gradient-yellow\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.yellow.500),theme(colors.orange.500))]\",\n \"gradient-purple\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.purple.500),theme(colors.pink.500))]\",\n \"gradient-teal\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.teal.500),theme(colors.cyan.500))]\",\n \"gradient-indigo\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.indigo.500),theme(colors.purple.500))]\",\n \"gradient-pink\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.pink.500),theme(colors.rose.500))]\",\n \"gradient-orange\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.orange.500),theme(colors.red.500))]\",\n },\n size: {\n xs: \"text-[0.65rem]\",\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base\",\n xl: \"text-lg\",\n },\n shape: {\n flat: \"rounded-none\",\n rounded: \"rounded-md\",\n pill: \"rounded-full\",\n },\n striped: {\n true: \"\",\n false: \"\",\n },\n animated: {\n true: \"\",\n false: \"\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n shape: \"rounded\",\n striped: false,\n animated: false,\n },\n});\n\nexport const progressTrackVariants = cva(\n \"relative w-full overflow-hidden bg-white/10\",\n {\n variants: {\n size: {\n xs: \"h-1\",\n sm: \"h-1.5\",\n md: \"h-2\",\n lg: \"h-3\",\n xl: \"h-4\",\n },\n shape: {\n flat: \"rounded-none\",\n rounded: \"rounded-md\",\n pill: \"rounded-full\",\n },\n },\n defaultVariants: {\n size: \"md\",\n shape: \"rounded\",\n },\n },\n);\n\nexport const progressBarVariants = cva(\n \"h-full w-full origin-left rounded-[inherit]\",\n {\n variants: {\n striped: {\n true: \"bg-[repeating-linear-gradient(135deg,rgba(255,255,255,0.18)_0,rgba(255,255,255,0.18)_10px,transparent_10px,transparent_20px)]\",\n false: \"[background:var(--progress-fill)]\",\n },\n },\n defaultVariants: { striped: false },\n },\n);\n","\"use client\";\n\nimport { createContext, useContext, useMemo } from \"react\";\nimport { motion } from \"framer-motion\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport { progressAnimationPresets } from \"./animations\";\nimport type { ProgressProps, ProgressSectionProps } from \"./types\";\nimport {\n progressBarVariants,\n progressTrackVariants,\n progressVariants,\n} from \"./variants\";\n\ntype ProgressCtx = {\n value: number;\n min: number;\n max: number;\n size: NonNullable<ProgressProps[\"size\"]>;\n shape: NonNullable<ProgressProps[\"shape\"]>;\n striped: boolean;\n animated: boolean;\n appearance: NonNullable<ProgressProps[\"appearance\"]>;\n};\n\nconst ProgressContext = createContext<ProgressCtx | null>(null);\n\nfunction useProgressContext(component: string): ProgressCtx {\n const ctx = useContext(ProgressContext);\n if (!ctx) {\n throw new Error(`${component} must be used within <Progress>`);\n }\n return ctx;\n}\n\nfunction clamp(value: number, min: number, max: number) {\n return Math.min(max, Math.max(min, value));\n}\n\nexport function Progress(props: ProgressProps) {\n const {\n className,\n appearance = \"default\",\n size = \"md\",\n shape = \"rounded\",\n striped = false,\n animated = false,\n animation = \"none\",\n value = 0,\n min = 0,\n max = 100,\n label,\n children,\n ref,\n ...rest\n } = props;\n const motionProps = progressAnimationPresets[animation];\n const clamped = clamp(value, min, max);\n const percent = max === min ? 0 : ((clamped - min) / (max - min)) * 100;\n\n const ctx = useMemo(\n () => ({\n value: clamped,\n min,\n max,\n size: size ?? \"md\",\n shape: shape ?? \"rounded\",\n striped: Boolean(striped),\n animated: Boolean(animated),\n appearance: appearance ?? \"default\",\n }),\n [animated, appearance, clamped, max, min, shape, size, striped],\n );\n\n return (\n <ProgressContext.Provider value={ctx}>\n <motion.div\n ref={ref}\n data-slot=\"progress\"\n role=\"progressbar\"\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={clamped}\n aria-label={label}\n className={cn(\n progressVariants({ appearance, size, shape, striped, animated }),\n className,\n )}\n initial={false}\n {...motionProps}\n {...rest}\n >\n {children ?? (\n <>\n <ProgressBar style={{ transform: `scaleX(${percent / 100})` }} />\n </>\n )}\n </motion.div>\n </ProgressContext.Provider>\n );\n}\n\nProgress.displayName = \"Progress\";\n\nexport function ProgressBar({\n className,\n style,\n ref,\n ...rest\n}: ProgressSectionProps & {\n style?: React.CSSProperties;\n ref?: React.Ref<HTMLDivElement>;\n}) {\n const { size, shape, striped, animated } = useProgressContext(\"ProgressBar\");\n\n return (\n <div\n data-slot=\"progress-track\"\n className={cn(progressTrackVariants({ size, shape }), \"text-current\")}\n >\n <motion.div\n ref={ref}\n data-slot=\"progress-bar\"\n className={cn(progressBarVariants({ striped }), className)}\n style={{\n transformOrigin: \"left center\",\n ...style,\n }}\n animate={\n animated ? { x: [\"-30%\", \"0%\"], opacity: [0.85, 1] } : undefined\n }\n transition={\n animated\n ? { repeat: Infinity, duration: 1.1, ease: \"easeInOut\" }\n : undefined\n }\n {...rest}\n />\n </div>\n );\n}\n\nProgressBar.displayName = \"ProgressBar\";\n\nexport function ProgressLabel({ className, children }: ProgressSectionProps) {\n return (\n <div\n data-slot=\"progress-label\"\n className={cn(\"mb-2 font-medium text-slate-200\", className)}\n >\n {children}\n </div>\n );\n}\n\nProgressLabel.displayName = \"ProgressLabel\";\n\nexport function ProgressValue({ className, children }: ProgressSectionProps) {\n const { value, min, max } = useProgressContext(\"ProgressValue\");\n const range = max - min;\n const pct = range === 0 ? 0 : Math.round(((value - min) / range) * 100);\n const content = children ?? `${pct}%`;\n return (\n <div\n data-slot=\"progress-value\"\n className={cn(\"mt-2 text-right text-slate-400\", className)}\n >\n {content}\n </div>\n );\n}\n\nProgressValue.displayName = \"ProgressValue\";\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/ui/progress/animations.ts","../../src/ui/progress/variants.ts","../../src/ui/progress/progress.tsx"],"names":[],"mappings":"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","file":"progress.mjs","sourcesContent":["import type { HTMLMotionProps } from \"framer-motion\";\n\nimport type { ProgressAnimation } from \"./types\";\n\ntype ProgressPresetMotionProps = Pick<\n HTMLMotionProps<\"div\">,\n \"transition\" | \"animate\"\n>;\n\nexport type ProgressAnimationPresets = Record<\n ProgressAnimation,\n ProgressPresetMotionProps\n>;\n\nexport const progressAnimationPresets: ProgressAnimationPresets = {\n none: {},\n shimmer: {\n animate: { backgroundPosition: [\"0% 0%\", \"100% 0%\"] },\n transition: { repeat: Infinity, duration: 1.2, ease: \"linear\" },\n },\n};\n","import { cva } from \"class-variance-authority\";\n\nexport const progressVariants = cva(\"w-full text-slate-50\", {\n variants: {\n appearance: {\n default: \"[--progress-fill:theme(colors.slate.50)]\",\n secondary: \"[--progress-fill:theme(colors.slate.300)]\",\n destructive: \"[--progress-fill:theme(colors.rose.400)]\",\n emerald: \"[--progress-fill:theme(colors.emerald.400)]\",\n indigo: \"[--progress-fill:theme(colors.indigo.400)]\",\n purple: \"[--progress-fill:theme(colors.purple.400)]\",\n pink: \"[--progress-fill:theme(colors.pink.400)]\",\n rose: \"[--progress-fill:theme(colors.rose.400)]\",\n sky: \"[--progress-fill:theme(colors.sky.400)]\",\n teal: \"[--progress-fill:theme(colors.teal.400)]\",\n yellow: \"[--progress-fill:theme(colors.yellow.400)]\",\n orange: \"[--progress-fill:theme(colors.orange.400)]\",\n outline: \"[--progress-fill:theme(colors.cyan.300)]\",\n ghost: \"[--progress-fill:theme(colors.slate.200)]\",\n glass: \"[--progress-fill:theme(colors.white)]\",\n \"gradient-blue\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.blue.500),theme(colors.purple.500))]\",\n \"gradient-green\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.green.500),theme(colors.lime.500))]\",\n \"gradient-red\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.red.500),theme(colors.pink.500))]\",\n \"gradient-yellow\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.yellow.500),theme(colors.orange.500))]\",\n \"gradient-purple\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.purple.500),theme(colors.pink.500))]\",\n \"gradient-teal\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.teal.500),theme(colors.cyan.500))]\",\n \"gradient-indigo\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.indigo.500),theme(colors.purple.500))]\",\n \"gradient-pink\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.pink.500),theme(colors.rose.500))]\",\n \"gradient-orange\":\n \"[--progress-fill:linear-gradient(90deg,theme(colors.orange.500),theme(colors.red.500))]\",\n },\n size: {\n xs: \"text-[0.65rem]\",\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base\",\n xl: \"text-lg\",\n },\n shape: {\n flat: \"rounded-none\",\n rounded: \"rounded-md\",\n pill: \"rounded-full\",\n },\n striped: {\n true: \"\",\n false: \"\",\n },\n animated: {\n true: \"\",\n false: \"\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n shape: \"rounded\",\n striped: false,\n animated: false,\n },\n});\n\nexport const progressTrackVariants = cva(\n \"relative w-full overflow-hidden bg-white/10\",\n {\n variants: {\n size: {\n xs: \"h-1\",\n sm: \"h-1.5\",\n md: \"h-2\",\n lg: \"h-3\",\n xl: \"h-4\",\n },\n shape: {\n flat: \"rounded-none\",\n rounded: \"rounded-md\",\n pill: \"rounded-full\",\n },\n },\n defaultVariants: {\n size: \"md\",\n shape: \"rounded\",\n },\n },\n);\n\nexport const progressBarVariants = cva(\n \"h-full w-full origin-left rounded-[inherit]\",\n {\n variants: {\n striped: {\n true: \"bg-[repeating-linear-gradient(135deg,rgba(255,255,255,0.18)_0,rgba(255,255,255,0.18)_10px,transparent_10px,transparent_20px)]\",\n false: \"[background:var(--progress-fill)]\",\n },\n },\n defaultVariants: { striped: false },\n },\n);\n","\"use client\";\n\nimport { createContext, useContext, useMemo } from \"react\";\nimport { motion } from \"framer-motion\";\n\nimport { cn, clamp } from \"../../lib/utils\";\n\nimport { progressAnimationPresets } from \"./animations\";\nimport type { ProgressProps, ProgressSectionProps, ProgressCtx } from \"./types\";\nimport {\n progressBarVariants,\n progressTrackVariants,\n progressVariants,\n} from \"./variants\";\n\n\nconst ProgressContext = createContext<ProgressCtx | null>(null);\n\nfunction useProgressContext(component: string): ProgressCtx {\n const ctx = useContext(ProgressContext);\n if (!ctx) {\n throw new Error(`${component} must be used within <Progress>`);\n }\n return ctx;\n}\n\n\nexport function Progress(props: ProgressProps) {\n const {\n className,\n appearance = \"default\",\n size = \"md\",\n shape = \"rounded\",\n striped = false,\n animated = false,\n animation = \"none\",\n value = 0,\n min = 0,\n max = 100,\n label,\n children,\n ref,\n ...rest\n } = props;\n const motionProps = progressAnimationPresets[animation];\n const clamped = clamp(value, min, max);\n const percent = max === min ? 0 : ((clamped - min) / (max - min)) * 100;\n\n const ctx = useMemo(\n () => ({\n value: clamped,\n min,\n max,\n size: size ?? \"md\",\n shape: shape ?? \"rounded\",\n striped: Boolean(striped),\n animated: Boolean(animated),\n appearance: appearance ?? \"default\",\n }),\n [animated, appearance, clamped, max, min, shape, size, striped],\n );\n\n return (\n <ProgressContext.Provider value={ctx}>\n <motion.div\n ref={ref}\n data-slot=\"progress\"\n role=\"progressbar\"\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={clamped}\n aria-label={label}\n className={cn(\n progressVariants({ appearance, size, shape, striped, animated }),\n className,\n )}\n initial={false}\n {...motionProps}\n {...rest}\n >\n {children ?? (\n <>\n <ProgressBar style={{ transform: `scaleX(${percent / 100})` }} />\n </>\n )}\n </motion.div>\n </ProgressContext.Provider>\n );\n}\n\nProgress.displayName = \"Progress\";\n\nexport function ProgressBar({\n className,\n style,\n ref,\n ...rest\n}: ProgressSectionProps & {\n style?: React.CSSProperties;\n ref?: React.Ref<HTMLDivElement>;\n}) {\n const { size, shape, striped, animated } = useProgressContext(\"ProgressBar\");\n\n return (\n <div\n data-slot=\"progress-track\"\n className={cn(progressTrackVariants({ size, shape }), \"text-current\")}\n >\n <motion.div\n ref={ref}\n data-slot=\"progress-bar\"\n className={cn(progressBarVariants({ striped }), className)}\n style={{\n transformOrigin: \"left center\",\n ...style,\n }}\n animate={\n animated ? { x: [\"-30%\", \"0%\"], opacity: [0.85, 1] } : undefined\n }\n transition={\n animated\n ? { repeat: Infinity, duration: 1.1, ease: \"easeInOut\" }\n : undefined\n }\n {...rest}\n />\n </div>\n );\n}\n\nProgressBar.displayName = \"ProgressBar\";\n\nexport function ProgressLabel({ className, children }: ProgressSectionProps) {\n return (\n <div\n data-slot=\"progress-label\"\n className={cn(\"mb-2 font-medium text-slate-200\", className)}\n >\n {children}\n </div>\n );\n}\n\nProgressLabel.displayName = \"ProgressLabel\";\n\nexport function ProgressValue({ className, children }: ProgressSectionProps) {\n const { value, min, max } = useProgressContext(\"ProgressValue\");\n const range = max - min;\n const pct = range === 0 ? 0 : Math.round(((value - min) / range) * 100);\n const content = children ?? `${pct}%`;\n return (\n <div\n data-slot=\"progress-value\"\n className={cn(\"mt-2 text-right text-slate-400\", className)}\n >\n {content}\n </div>\n );\n}\n\nProgressValue.displayName = \"ProgressValue\";\n"]}
|
package/dist/ui/select.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunkUOZYPWDZ_js = require('../chunk-UOZYPWDZ.js');
|
|
5
5
|
var react = require('react');
|
|
6
6
|
var classVarianceAuthority = require('class-variance-authority');
|
|
7
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -216,7 +216,7 @@ var SelectTrigger = ({
|
|
|
216
216
|
{
|
|
217
217
|
type: "button",
|
|
218
218
|
onClick: () => setOpen(!open),
|
|
219
|
-
className:
|
|
219
|
+
className: chunkUOZYPWDZ_js.cn(selectTriggerVariants({ variant, size }), className),
|
|
220
220
|
...props
|
|
221
221
|
}
|
|
222
222
|
);
|
|
@@ -229,9 +229,9 @@ var SelectValue = ({
|
|
|
229
229
|
const { selected, options } = useSelect();
|
|
230
230
|
const selectedOptions = options.filter((o) => selected.includes(o.value));
|
|
231
231
|
if (selectedOptions.length === 0) {
|
|
232
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", { className:
|
|
232
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkUOZYPWDZ_js.cn(className), ...props, children: placeholder });
|
|
233
233
|
}
|
|
234
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", { className:
|
|
234
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkUOZYPWDZ_js.cn(className), ...props, children: selectedOptions.map((option, index) => /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
235
235
|
index > 0 ? ", " : null,
|
|
236
236
|
option.label
|
|
237
237
|
] }, option.value)) });
|
|
@@ -249,7 +249,7 @@ var SelectContent = ({
|
|
|
249
249
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
250
250
|
"div",
|
|
251
251
|
{
|
|
252
|
-
className:
|
|
252
|
+
className: chunkUOZYPWDZ_js.cn(
|
|
253
253
|
selectContentVariants({ appearance, size, spacing }),
|
|
254
254
|
className
|
|
255
255
|
),
|
|
@@ -282,7 +282,7 @@ var SelectItem = ({
|
|
|
282
282
|
if (e.key === "Enter") toggleValue(value);
|
|
283
283
|
},
|
|
284
284
|
"data-selected": isActive ? "true" : "false",
|
|
285
|
-
className:
|
|
285
|
+
className: chunkUOZYPWDZ_js.cn(
|
|
286
286
|
selectItemVariants({
|
|
287
287
|
disabled,
|
|
288
288
|
appearance
|
package/dist/ui/select.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { cn } from '../chunk-
|
|
2
|
+
import { cn } from '../chunk-DFEZH7TC.mjs';
|
|
3
3
|
import { createContext, useContext, useState, useRef, useEffect, useCallback } from 'react';
|
|
4
4
|
import { cva } from 'class-variance-authority';
|
|
5
5
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
package/dist/ui/skeleton.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunkUOZYPWDZ_js = require('../chunk-UOZYPWDZ.js');
|
|
5
5
|
var react = require('react');
|
|
6
6
|
var framerMotion = require('framer-motion');
|
|
7
7
|
var classVarianceAuthority = require('class-variance-authority');
|
|
@@ -295,7 +295,7 @@ function Skeleton(props) {
|
|
|
295
295
|
"data-slot": "skeleton",
|
|
296
296
|
"aria-hidden": true,
|
|
297
297
|
"aria-busy": busy ? true : void 0,
|
|
298
|
-
className:
|
|
298
|
+
className: chunkUOZYPWDZ_js.cn(
|
|
299
299
|
skeletonVariants({
|
|
300
300
|
appearance,
|
|
301
301
|
size,
|
|
@@ -331,14 +331,14 @@ function SkeletonText(props) {
|
|
|
331
331
|
"div",
|
|
332
332
|
{
|
|
333
333
|
"data-slot": "skeleton-text",
|
|
334
|
-
className:
|
|
334
|
+
className: chunkUOZYPWDZ_js.cn("flex w-full flex-col gap-2", className),
|
|
335
335
|
"aria-hidden": true,
|
|
336
336
|
"aria-busy": busy ? true : void 0,
|
|
337
337
|
children: Array.from({ length: lines }).map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
338
338
|
framerMotion.motion.div,
|
|
339
339
|
{
|
|
340
340
|
ref: index === 0 ? ref : void 0,
|
|
341
|
-
className:
|
|
341
|
+
className: chunkUOZYPWDZ_js.cn(
|
|
342
342
|
skeletonVariants({
|
|
343
343
|
appearance,
|
|
344
344
|
size,
|
|
@@ -388,7 +388,7 @@ function SkeletonAvatar(props) {
|
|
|
388
388
|
"data-slot": "skeleton-avatar",
|
|
389
389
|
"aria-hidden": true,
|
|
390
390
|
"aria-busy": busy ? true : void 0,
|
|
391
|
-
className:
|
|
391
|
+
className: chunkUOZYPWDZ_js.cn(
|
|
392
392
|
skeletonVariants({
|
|
393
393
|
appearance,
|
|
394
394
|
size,
|
|
@@ -422,7 +422,7 @@ function SkeletonCard(props) {
|
|
|
422
422
|
{
|
|
423
423
|
ref,
|
|
424
424
|
"data-slot": "skeleton-card",
|
|
425
|
-
className:
|
|
425
|
+
className: chunkUOZYPWDZ_js.cn("w-full max-w-sm", className),
|
|
426
426
|
"aria-busy": busy ? true : void 0,
|
|
427
427
|
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
428
428
|
Skeleton,
|
|
@@ -501,7 +501,7 @@ function SkeletonButton(props) {
|
|
|
501
501
|
"data-slot": "skeleton-button",
|
|
502
502
|
"aria-hidden": true,
|
|
503
503
|
"aria-busy": busy ? true : void 0,
|
|
504
|
-
className:
|
|
504
|
+
className: chunkUOZYPWDZ_js.cn(
|
|
505
505
|
skeletonVariants({
|
|
506
506
|
appearance,
|
|
507
507
|
size,
|
package/dist/ui/skeleton.mjs
CHANGED
package/dist/ui/slider.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunkUOZYPWDZ_js = require('../chunk-UOZYPWDZ.js');
|
|
5
5
|
var react = require('react');
|
|
6
6
|
var classVarianceAuthority = require('class-variance-authority');
|
|
7
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -158,7 +158,7 @@ function Slider({
|
|
|
158
158
|
role: "group",
|
|
159
159
|
"aria-label": ariaLabel,
|
|
160
160
|
"aria-labelledby": ariaLabelledBy,
|
|
161
|
-
className:
|
|
161
|
+
className: chunkUOZYPWDZ_js.cn(sliderRootVariants({ size }), className),
|
|
162
162
|
...rest,
|
|
163
163
|
children
|
|
164
164
|
}
|
|
@@ -183,7 +183,7 @@ function SliderTrack({
|
|
|
183
183
|
}
|
|
184
184
|
},
|
|
185
185
|
"data-slot": "slider-track",
|
|
186
|
-
className:
|
|
186
|
+
className: chunkUOZYPWDZ_js.cn(sliderTrackVariants({ size }), className),
|
|
187
187
|
...rest
|
|
188
188
|
}
|
|
189
189
|
);
|
|
@@ -201,7 +201,7 @@ function SliderRange({
|
|
|
201
201
|
{
|
|
202
202
|
ref,
|
|
203
203
|
"data-slot": "slider-range",
|
|
204
|
-
className:
|
|
204
|
+
className: chunkUOZYPWDZ_js.cn(sliderRangeVariants({ appearance }), className),
|
|
205
205
|
style: { width: `${pct}%` },
|
|
206
206
|
...rest
|
|
207
207
|
}
|
|
@@ -286,7 +286,7 @@ function SliderThumb({
|
|
|
286
286
|
"aria-valuemax": max,
|
|
287
287
|
"aria-valuenow": value,
|
|
288
288
|
"aria-disabled": disabled || void 0,
|
|
289
|
-
className:
|
|
289
|
+
className: chunkUOZYPWDZ_js.cn(
|
|
290
290
|
"absolute top-1/2 z-10 -translate-x-1/2 -translate-y-1/2",
|
|
291
291
|
sliderThumbVariants({ size }),
|
|
292
292
|
className
|
|
@@ -364,20 +364,20 @@ function RangeSlider({
|
|
|
364
364
|
"aria-label": ariaLabel,
|
|
365
365
|
"aria-labelledby": ariaLabelledBy,
|
|
366
366
|
"aria-valuetext": `${lo} \u2013 ${hi}`,
|
|
367
|
-
className:
|
|
367
|
+
className: chunkUOZYPWDZ_js.cn(sliderRootVariants({ size: resolvedSize }), className),
|
|
368
368
|
...rest,
|
|
369
369
|
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
370
370
|
"div",
|
|
371
371
|
{
|
|
372
372
|
ref: trackRef,
|
|
373
373
|
"data-slot": "slider-track",
|
|
374
|
-
className:
|
|
374
|
+
className: chunkUOZYPWDZ_js.cn(sliderTrackVariants({ size: resolvedSize }), "relative"),
|
|
375
375
|
children: [
|
|
376
376
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
377
377
|
"div",
|
|
378
378
|
{
|
|
379
379
|
"data-slot": "slider-range",
|
|
380
|
-
className:
|
|
380
|
+
className: chunkUOZYPWDZ_js.cn(sliderRangeVariants({ appearance }), "absolute"),
|
|
381
381
|
style: {
|
|
382
382
|
left: `${loPct}%`,
|
|
383
383
|
width: `${Math.max(hiPct - loPct, 0)}%`
|
|
@@ -497,7 +497,7 @@ function RangeThumb({
|
|
|
497
497
|
"aria-valuemax": max,
|
|
498
498
|
"aria-valuenow": value,
|
|
499
499
|
"aria-disabled": disabled || void 0,
|
|
500
|
-
className:
|
|
500
|
+
className: chunkUOZYPWDZ_js.cn(
|
|
501
501
|
"absolute top-1/2 z-10 -translate-x-1/2 -translate-y-1/2",
|
|
502
502
|
sliderThumbVariants({ size })
|
|
503
503
|
),
|
package/dist/ui/slider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ui/slider/variants.ts","../../src/ui/slider/slider.tsx"],"names":["cva","createContext","useContext","useRef","useState","useCallback","useMemo","jsx","cn","lo","hi","jsxs"],"mappings":"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","file":"slider.js","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const sliderRootVariants = cva(\"w-full select-none touch-none\", {\n variants: {\n size: {\n sm: \"py-2\",\n md: \"py-2.5\",\n lg: \"py-3\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport const sliderTrackVariants = cva(\n \"relative h-2 w-full shrink-0 overflow-hidden rounded-full bg-white/10\",\n {\n variants: {\n size: {\n sm: \"h-1.5\",\n md: \"h-2\",\n lg: \"h-2.5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n },\n);\n\nexport const sliderRangeVariants = cva(\n \"absolute h-full rounded-full bg-gradient-to-r from-violet-500 to-indigo-400\",\n {\n variants: {\n appearance: {\n default: \"from-violet-500 to-indigo-400\",\n sky: \"from-sky-500 to-indigo-400\",\n rose: \"from-rose-500 to-indigo-400\",\n purple: \"from-purple-500 to-indigo-400\",\n pink: \"from-pink-500 to-indigo-400\",\n orange: \"from-orange-500 to-indigo-400\",\n yellow: \"from-yellow-500 to-indigo-400\",\n teal: \"from-teal-500 to-indigo-400\",\n indigo: \"from-indigo-500 to-indigo-400\",\n emerald: \"from-emerald-500 to-teal-400\",\n amber: \"from-amber-500 to-orange-400\",\n gray: \"from-gray-500 to-indigo-400\",\n violet: \"from-violet-500 to-indigo-400\",\n \"gradient-blue\": \"from-blue-500 to-indigo-400\",\n \"gradient-green\": \"from-green-500 to-indigo-400\",\n \"gradient-red\": \"from-red-500 to-indigo-400\",\n \"gradient-yellow\": \"from-yellow-500 to-indigo-400\",\n \"gradient-purple\": \"from-purple-500 to-indigo-400\",\n \"gradient-teal\": \"from-teal-500 to-indigo-400\",\n \"gradient-indigo\": \"from-indigo-500 to-indigo-400\",\n \"gradient-pink\": \"from-pink-500 to-indigo-400\",\n \"gradient-orange\": \"from-orange-500 to-indigo-400\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n },\n },\n);\n\nexport const sliderThumbVariants = cva(\n \"block size-4 rounded-full border border-white/20 bg-white shadow-md ring-offset-2 ring-offset-slate-950 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/40 disabled:pointer-events-none disabled:opacity-40\",\n {\n variants: {\n size: {\n sm: \"size-3.5\",\n md: \"size-4\",\n lg: \"size-5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n },\n);\n","\"use client\";\n\nimport {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useRef,\n useState,\n type KeyboardEvent as ReactKeyboardEvent,\n type MutableRefObject,\n type PointerEvent as ReactPointerEvent,\n type Ref,\n type RefObject,\n} from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type {\n RangeSliderProps,\n SliderProps,\n SliderRangeProps,\n SliderThumbProps,\n SliderTrackProps,\n} from \"./types\";\nimport {\n sliderRangeVariants,\n sliderRootVariants,\n sliderThumbVariants,\n sliderTrackVariants,\n} from \"./variants\";\n\nfunction clamp(value: number, min: number, max: number) {\n return Math.min(max, Math.max(min, value));\n}\n\nfunction snapToStep(value: number, min: number, step: number) {\n const steps = Math.round((value - min) / step);\n return min + steps * step;\n}\n\ntype SliderAppearance = NonNullable<\n Parameters<typeof sliderRangeVariants>[0]\n>[\"appearance\"];\n\ntype SliderCtx = {\n min: number;\n max: number;\n step: number;\n value: number;\n setValue: (next: number) => void;\n disabled: boolean;\n size: NonNullable<SliderProps[\"size\"]>;\n appearance: SliderAppearance;\n trackRef: RefObject<HTMLDivElement | null>;\n};\n\nconst SliderContext = createContext<SliderCtx | null>(null);\n\nfunction useSliderContext(component: string): SliderCtx {\n const ctx = useContext(SliderContext);\n if (!ctx) {\n throw new Error(`${component} must be used within <Slider>`);\n }\n return ctx;\n}\n\nfunction computeValueFromPointer(\n clientX: number,\n track: HTMLDivElement,\n min: number,\n max: number,\n step: number,\n) {\n const rect = track.getBoundingClientRect();\n const ratio = rect.width === 0 ? 0 : (clientX - rect.left) / rect.width;\n const raw = min + ratio * (max - min);\n return snapToStep(clamp(raw, min, max), min, step);\n}\n\nexport function Slider({\n className,\n size = \"md\",\n min = 0,\n max = 100,\n step = 1,\n value: valueProp,\n defaultValue,\n onValueChange,\n disabled = false,\n appearance = \"default\",\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n children,\n ref,\n ...rest\n}: SliderProps & { ref?: Ref<HTMLDivElement> }) {\n const trackRef = useRef<HTMLDivElement | null>(null);\n const isControlled = valueProp !== undefined;\n const [uncontrolled, setUncontrolled] = useState(\n defaultValue ?? min,\n );\n const value = isControlled ? (valueProp as number) : uncontrolled;\n\n const setValue = useCallback(\n (next: number) => {\n const clamped = clamp(snapToStep(next, min, step), min, max);\n if (!isControlled) {\n setUncontrolled(clamped);\n }\n onValueChange?.(clamped);\n },\n [isControlled, max, min, onValueChange, step],\n );\n\n const ctx = useMemo(\n () => ({\n min,\n max,\n step,\n value: clamp(snapToStep(value, min, step), min, max),\n setValue,\n disabled,\n size: size ?? \"md\",\n appearance: appearance ?? \"default\",\n trackRef,\n }),\n [appearance, disabled, max, min, setValue, size, step, value],\n );\n\n return (\n <SliderContext.Provider value={ctx}>\n <div\n ref={ref}\n data-slot=\"slider\"\n role=\"group\"\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n className={cn(sliderRootVariants({ size }), className)}\n {...rest}\n >\n {children}\n </div>\n </SliderContext.Provider>\n );\n}\n\nSlider.displayName = \"Slider\";\n\nexport function SliderTrack({\n className,\n ref: refProp,\n ...rest\n}: SliderTrackProps & { ref?: Ref<HTMLDivElement> }) {\n const { size, trackRef } = useSliderContext(\"SliderTrack\");\n\n return (\n <div\n ref={(node) => {\n trackRef.current = node;\n if (typeof refProp === \"function\") {\n refProp(node);\n } else if (refProp) {\n (refProp as MutableRefObject<HTMLDivElement | null>).current = node;\n }\n }}\n data-slot=\"slider-track\"\n className={cn(sliderTrackVariants({ size }), className)}\n {...rest}\n />\n );\n}\n\nSliderTrack.displayName = \"SliderTrack\";\n\nexport function SliderRange({\n className,\n ref,\n ...rest\n}: SliderRangeProps & { ref?: Ref<HTMLDivElement> }) {\n const { min, max, value, appearance } = useSliderContext(\"SliderRange\");\n const pct = max === min ? 0 : ((value - min) / (max - min)) * 100;\n return (\n <div\n ref={ref}\n data-slot=\"slider-range\"\n className={cn(sliderRangeVariants({ appearance }), className)}\n style={{ width: `${pct}%` }}\n {...rest}\n />\n );\n}\n\nSliderRange.displayName = \"SliderRange\";\n\nexport function SliderThumb({\n className,\n ref: refProp,\n ...rest\n}: SliderThumbProps & { ref?: Ref<HTMLDivElement> }) {\n const { min, max, value, step, setValue, disabled, size, trackRef } =\n useSliderContext(\"SliderThumb\");\n const pct = max === min ? 0 : ((value - min) / (max - min)) * 100;\n\n const onPointerDown = useCallback(\n (event: ReactPointerEvent<HTMLDivElement>) => {\n if (disabled) {\n return;\n }\n event.preventDefault();\n const track = trackRef.current;\n if (!track) {\n return;\n }\n event.currentTarget.setPointerCapture(event.pointerId);\n const move = (e: PointerEvent) => {\n setValue(computeValueFromPointer(e.clientX, track, min, max, step));\n };\n const up = () => {\n window.removeEventListener(\"pointermove\", move);\n window.removeEventListener(\"pointerup\", up);\n };\n window.addEventListener(\"pointermove\", move);\n window.addEventListener(\"pointerup\", up);\n },\n [disabled, max, min, setValue, step, trackRef],\n );\n\n const onKeyDown = useCallback(\n (event: ReactKeyboardEvent<HTMLDivElement>) => {\n if (disabled) {\n return;\n }\n const big = (max - min) / 10;\n let delta = 0;\n if (event.key === \"ArrowRight\" || event.key === \"ArrowUp\") {\n delta = step;\n } else if (event.key === \"ArrowLeft\" || event.key === \"ArrowDown\") {\n delta = -step;\n } else if (event.key === \"PageUp\") {\n delta = big;\n } else if (event.key === \"PageDown\") {\n delta = -big;\n } else if (event.key === \"Home\") {\n event.preventDefault();\n setValue(min);\n return;\n } else if (event.key === \"End\") {\n event.preventDefault();\n setValue(max);\n return;\n } else {\n return;\n }\n event.preventDefault();\n setValue(value + delta);\n },\n [disabled, max, min, setValue, step, value],\n );\n\n return (\n <div\n ref={(node) => {\n if (typeof refProp === \"function\") {\n refProp(node);\n } else if (refProp) {\n (refProp as MutableRefObject<HTMLDivElement | null>).current = node;\n }\n }}\n role=\"slider\"\n tabIndex={disabled ? -1 : 0}\n data-slot=\"slider-thumb\"\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={value}\n aria-disabled={disabled || undefined}\n className={cn(\n \"absolute top-1/2 z-10 -translate-x-1/2 -translate-y-1/2\",\n sliderThumbVariants({ size }),\n className,\n )}\n style={{ left: `${pct}%` }}\n onPointerDown={onPointerDown}\n onKeyDown={onKeyDown}\n {...rest}\n />\n );\n}\n\nSliderThumb.displayName = \"SliderThumb\";\n\nexport function RangeSlider({\n className,\n size = \"md\",\n min = 0,\n max = 100,\n step = 1,\n value: valueProp,\n defaultValue,\n onValueChange,\n disabled = false,\n appearance = \"default\",\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n ref,\n ...rest\n}: RangeSliderProps & { ref?: Ref<HTMLDivElement> }) {\n const trackRef = useRef<HTMLDivElement | null>(null);\n const isControlled = valueProp !== undefined;\n const [uncontrolled, setUncontrolled] = useState<[number, number]>(() => {\n const seed = defaultValue ?? [min, max];\n const lo = clamp(snapToStep(seed[0], min, step), min, max);\n const hi = clamp(snapToStep(seed[1], min, step), min, max);\n return lo <= hi ? [lo, hi] : [hi, lo];\n });\n\n const value = isControlled ? (valueProp as [number, number]) : uncontrolled;\n const [lo, hi] =\n value[0] <= value[1]\n ? [value[0], value[1]]\n : [value[1], value[0]];\n\n const setPair = useCallback(\n (next: [number, number]) => {\n const a = clamp(snapToStep(next[0], min, step), min, max);\n const b = clamp(snapToStep(next[1], min, step), min, max);\n const ordered: [number, number] = a <= b ? [a, b] : [b, a];\n if (!isControlled) {\n setUncontrolled(ordered);\n }\n onValueChange?.(ordered);\n },\n [isControlled, max, min, onValueChange, step],\n );\n\n const moveThumb = useCallback(\n (index: 0 | 1, clientX: number) => {\n const track = trackRef.current;\n if (!track) {\n return;\n }\n const raw = computeValueFromPointer(clientX, track, min, max, step);\n if (index === 0) {\n setPair([raw, hi]);\n } else {\n setPair([lo, raw]);\n }\n },\n [hi, lo, max, min, setPair, step],\n );\n\n const loPct = max === min ? 0 : ((lo - min) / (max - min)) * 100;\n const hiPct = max === min ? 0 : ((hi - min) / (max - min)) * 100;\n const resolvedSize = size ?? \"md\";\n\n return (\n <div\n ref={ref}\n data-slot=\"range-slider\"\n role=\"group\"\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-valuetext={`${lo} – ${hi}`}\n className={cn(sliderRootVariants({ size: resolvedSize }), className)}\n {...rest}\n >\n <div\n ref={trackRef}\n data-slot=\"slider-track\"\n className={cn(sliderTrackVariants({ size: resolvedSize }), \"relative\")}\n >\n <div\n data-slot=\"slider-range\"\n className={cn(sliderRangeVariants({ appearance }), \"absolute\")}\n style={{\n left: `${loPct}%`,\n width: `${Math.max(hiPct - loPct, 0)}%`,\n }}\n />\n <RangeThumb\n disabled={disabled}\n size={resolvedSize}\n value={lo}\n min={min}\n max={max}\n step={step}\n positionPct={loPct}\n trackRef={trackRef}\n onMoveClientX={(x) => moveThumb(0, x)}\n onNudge={(delta) => setPair([lo + delta, hi])}\n />\n <RangeThumb\n disabled={disabled}\n size={resolvedSize}\n value={hi}\n min={min}\n max={max}\n step={step}\n positionPct={hiPct}\n trackRef={trackRef}\n onMoveClientX={(x) => moveThumb(1, x)}\n onNudge={(delta) => setPair([lo, hi + delta])}\n />\n </div>\n </div>\n );\n}\n\nRangeSlider.displayName = \"RangeSlider\";\n\ntype RangeThumbProps = {\n disabled: boolean;\n size: \"sm\" | \"md\" | \"lg\";\n value: number;\n min: number;\n max: number;\n step: number;\n positionPct: number;\n trackRef: RefObject<HTMLDivElement | null>;\n onMoveClientX: (clientX: number) => void;\n onNudge: (delta: number) => void;\n};\n\nfunction RangeThumb({\n disabled,\n size,\n value,\n min,\n max,\n step,\n positionPct,\n trackRef,\n onMoveClientX,\n onNudge,\n}: RangeThumbProps) {\n const onPointerDown = useCallback(\n (event: ReactPointerEvent<HTMLDivElement>) => {\n if (disabled) {\n return;\n }\n event.preventDefault();\n const track = trackRef.current;\n if (!track) {\n return;\n }\n event.currentTarget.setPointerCapture(event.pointerId);\n const move = (e: PointerEvent) => {\n onMoveClientX(e.clientX);\n };\n const up = () => {\n window.removeEventListener(\"pointermove\", move);\n window.removeEventListener(\"pointerup\", up);\n };\n window.addEventListener(\"pointermove\", move);\n window.addEventListener(\"pointerup\", up);\n },\n [disabled, onMoveClientX, trackRef],\n );\n\n const onKeyDown = useCallback(\n (event: ReactKeyboardEvent<HTMLDivElement>) => {\n if (disabled) {\n return;\n }\n const big = (max - min) / 10;\n let delta = 0;\n if (event.key === \"ArrowRight\" || event.key === \"ArrowUp\") {\n delta = step;\n } else if (event.key === \"ArrowLeft\" || event.key === \"ArrowDown\") {\n delta = -step;\n } else if (event.key === \"PageUp\") {\n delta = big;\n } else if (event.key === \"PageDown\") {\n delta = -big;\n } else if (event.key === \"Home\") {\n event.preventDefault();\n onNudge(min - value);\n return;\n } else if (event.key === \"End\") {\n event.preventDefault();\n onNudge(max - value);\n return;\n } else {\n return;\n }\n event.preventDefault();\n onNudge(delta);\n },\n [disabled, max, min, onNudge, step, value],\n );\n\n return (\n <div\n role=\"slider\"\n tabIndex={disabled ? -1 : 0}\n data-slot=\"range-slider-thumb\"\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={value}\n aria-disabled={disabled || undefined}\n className={cn(\n \"absolute top-1/2 z-10 -translate-x-1/2 -translate-y-1/2\",\n sliderThumbVariants({ size }),\n )}\n style={{ left: `${positionPct}%` }}\n onPointerDown={onPointerDown}\n onKeyDown={onKeyDown}\n />\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/ui/slider/variants.ts","../../src/ui/slider/slider.tsx"],"names":["cva","createContext","useContext","useRef","useState","useCallback","useMemo","jsx","cn","lo","hi","jsxs"],"mappings":"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","file":"slider.js","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const sliderRootVariants = cva(\"w-full select-none touch-none\", {\n variants: {\n size: {\n sm: \"py-2\",\n md: \"py-2.5\",\n lg: \"py-3\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport const sliderTrackVariants = cva(\n \"relative h-2 w-full shrink-0 overflow-hidden rounded-full bg-white/10\",\n {\n variants: {\n size: {\n sm: \"h-1.5\",\n md: \"h-2\",\n lg: \"h-2.5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n },\n);\n\nexport const sliderRangeVariants = cva(\n \"absolute h-full rounded-full bg-gradient-to-r from-violet-500 to-indigo-400\",\n {\n variants: {\n appearance: {\n default: \"from-violet-500 to-indigo-400\",\n sky: \"from-sky-500 to-indigo-400\",\n rose: \"from-rose-500 to-indigo-400\",\n purple: \"from-purple-500 to-indigo-400\",\n pink: \"from-pink-500 to-indigo-400\",\n orange: \"from-orange-500 to-indigo-400\",\n yellow: \"from-yellow-500 to-indigo-400\",\n teal: \"from-teal-500 to-indigo-400\",\n indigo: \"from-indigo-500 to-indigo-400\",\n emerald: \"from-emerald-500 to-teal-400\",\n amber: \"from-amber-500 to-orange-400\",\n gray: \"from-gray-500 to-indigo-400\",\n violet: \"from-violet-500 to-indigo-400\",\n \"gradient-blue\": \"from-blue-500 to-indigo-400\",\n \"gradient-green\": \"from-green-500 to-indigo-400\",\n \"gradient-red\": \"from-red-500 to-indigo-400\",\n \"gradient-yellow\": \"from-yellow-500 to-indigo-400\",\n \"gradient-purple\": \"from-purple-500 to-indigo-400\",\n \"gradient-teal\": \"from-teal-500 to-indigo-400\",\n \"gradient-indigo\": \"from-indigo-500 to-indigo-400\",\n \"gradient-pink\": \"from-pink-500 to-indigo-400\",\n \"gradient-orange\": \"from-orange-500 to-indigo-400\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n },\n },\n);\n\nexport const sliderThumbVariants = cva(\n \"block size-4 rounded-full border border-white/20 bg-white shadow-md ring-offset-2 ring-offset-slate-950 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/40 disabled:pointer-events-none disabled:opacity-40\",\n {\n variants: {\n size: {\n sm: \"size-3.5\",\n md: \"size-4\",\n lg: \"size-5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n },\n);\n","\"use client\";\n\nimport {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useRef,\n useState,\n type KeyboardEvent as ReactKeyboardEvent,\n type PointerEvent as ReactPointerEvent,\n type Ref,\n type RefObject,\n} from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type {\n RangeSliderProps,\n SliderCtx,\n SliderProps,\n SliderRangeProps,\n SliderThumbProps,\n SliderTrackProps,\n} from \"./types\";\nimport {\n sliderRangeVariants,\n sliderRootVariants,\n sliderThumbVariants,\n sliderTrackVariants,\n} from \"./variants\";\n\nfunction clamp(value: number, min: number, max: number) {\n return Math.min(max, Math.max(min, value));\n}\n\nfunction snapToStep(value: number, min: number, step: number) {\n const steps = Math.round((value - min) / step);\n return min + steps * step;\n} \n\nconst SliderContext = createContext<SliderCtx | null>(null);\n\nfunction useSliderContext(component: string): SliderCtx {\n const ctx = useContext(SliderContext);\n if (!ctx) {\n throw new Error(`${component} must be used within <Slider>`);\n }\n return ctx;\n}\n\nfunction computeValueFromPointer(\n clientX: number,\n track: HTMLDivElement,\n min: number,\n max: number,\n step: number,\n) {\n const rect = track.getBoundingClientRect();\n const ratio = rect.width === 0 ? 0 : (clientX - rect.left) / rect.width;\n const raw = min + ratio * (max - min);\n return snapToStep(clamp(raw, min, max), min, step);\n}\n\nexport function Slider({\n className,\n size = \"md\",\n min = 0,\n max = 100,\n step = 1,\n value: valueProp,\n defaultValue,\n onValueChange,\n disabled = false,\n appearance = \"default\",\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n children,\n ref,\n ...rest\n}: SliderProps & { ref?: Ref<HTMLDivElement> }) {\n const trackRef = useRef<HTMLDivElement | null>(null);\n const isControlled = valueProp !== undefined;\n const [uncontrolled, setUncontrolled] = useState(\n defaultValue ?? min,\n );\n const value = isControlled ? (valueProp as number) : uncontrolled;\n\n const setValue = useCallback(\n (next: number) => {\n const clamped = clamp(snapToStep(next, min, step), min, max);\n if (!isControlled) {\n setUncontrolled(clamped);\n }\n onValueChange?.(clamped);\n },\n [isControlled, max, min, onValueChange, step],\n );\n\n const ctx = useMemo(\n () => ({\n min,\n max,\n step,\n value: clamp(snapToStep(value, min, step), min, max),\n setValue,\n disabled,\n size: size ?? \"md\",\n appearance: appearance ?? \"default\",\n trackRef,\n }),\n [appearance, disabled, max, min, setValue, size, step, value],\n );\n\n return (\n <SliderContext.Provider value={ctx}>\n <div\n ref={ref}\n data-slot=\"slider\"\n role=\"group\"\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n className={cn(sliderRootVariants({ size }), className)}\n {...rest}\n >\n {children}\n </div>\n </SliderContext.Provider>\n );\n}\n\nSlider.displayName = \"Slider\";\n\nexport function SliderTrack({\n className,\n ref: refProp,\n ...rest\n}: SliderTrackProps & { ref?: Ref<HTMLDivElement> }) {\n const { size, trackRef } = useSliderContext(\"SliderTrack\");\n\n return (\n <div\n ref={(node) => {\n trackRef.current = node;\n if (typeof refProp === \"function\") {\n refProp(node);\n } else if (refProp) {\n (refProp as RefObject<HTMLDivElement | null>).current = node;\n }\n }}\n data-slot=\"slider-track\"\n className={cn(sliderTrackVariants({ size }), className)}\n {...rest}\n />\n );\n}\n\nSliderTrack.displayName = \"SliderTrack\";\n\nexport function SliderRange({\n className,\n ref,\n ...rest\n}: SliderRangeProps & { ref?: Ref<HTMLDivElement> }) {\n const { min, max, value, appearance } = useSliderContext(\"SliderRange\");\n const pct = max === min ? 0 : ((value - min) / (max - min)) * 100;\n return (\n <div\n ref={ref}\n data-slot=\"slider-range\"\n className={cn(sliderRangeVariants({ appearance }), className)}\n style={{ width: `${pct}%` }}\n {...rest}\n />\n );\n}\n\nSliderRange.displayName = \"SliderRange\";\n\nexport function SliderThumb({\n className,\n ref: refProp,\n ...rest\n}: SliderThumbProps & { ref?: Ref<HTMLDivElement> }) {\n const { min, max, value, step, setValue, disabled, size, trackRef } =\n useSliderContext(\"SliderThumb\");\n const pct = max === min ? 0 : ((value - min) / (max - min)) * 100;\n\n const onPointerDown = useCallback(\n (event: ReactPointerEvent<HTMLDivElement>) => {\n if (disabled) {\n return;\n }\n event.preventDefault();\n const track = trackRef.current;\n if (!track) {\n return;\n }\n event.currentTarget.setPointerCapture(event.pointerId);\n const move = (e: PointerEvent) => {\n setValue(computeValueFromPointer(e.clientX, track, min, max, step));\n };\n const up = () => {\n window.removeEventListener(\"pointermove\", move);\n window.removeEventListener(\"pointerup\", up);\n };\n window.addEventListener(\"pointermove\", move);\n window.addEventListener(\"pointerup\", up);\n },\n [disabled, max, min, setValue, step, trackRef],\n );\n\n const onKeyDown = useCallback(\n (event: ReactKeyboardEvent<HTMLDivElement>) => {\n if (disabled) {\n return;\n }\n const big = (max - min) / 10;\n let delta = 0;\n if (event.key === \"ArrowRight\" || event.key === \"ArrowUp\") {\n delta = step;\n } else if (event.key === \"ArrowLeft\" || event.key === \"ArrowDown\") {\n delta = -step;\n } else if (event.key === \"PageUp\") {\n delta = big;\n } else if (event.key === \"PageDown\") {\n delta = -big;\n } else if (event.key === \"Home\") {\n event.preventDefault();\n setValue(min);\n return;\n } else if (event.key === \"End\") {\n event.preventDefault();\n setValue(max);\n return;\n } else {\n return;\n }\n event.preventDefault();\n setValue(value + delta);\n },\n [disabled, max, min, setValue, step, value],\n );\n\n return (\n <div\n ref={(node) => {\n if (typeof refProp === \"function\") {\n refProp(node);\n } else if (refProp) {\n (refProp as RefObject<HTMLDivElement | null>).current = node;\n }\n }}\n role=\"slider\"\n tabIndex={disabled ? -1 : 0}\n data-slot=\"slider-thumb\"\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={value}\n aria-disabled={disabled || undefined}\n className={cn(\n \"absolute top-1/2 z-10 -translate-x-1/2 -translate-y-1/2\",\n sliderThumbVariants({ size }),\n className,\n )}\n style={{ left: `${pct}%` }}\n onPointerDown={onPointerDown}\n onKeyDown={onKeyDown}\n {...rest}\n />\n );\n}\n\nSliderThumb.displayName = \"SliderThumb\";\n\nexport function RangeSlider({\n className,\n size = \"md\",\n min = 0,\n max = 100,\n step = 1,\n value: valueProp,\n defaultValue,\n onValueChange,\n disabled = false,\n appearance = \"default\",\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n ref,\n ...rest\n}: RangeSliderProps & { ref?: Ref<HTMLDivElement> }) {\n const trackRef = useRef<HTMLDivElement | null>(null);\n const isControlled = valueProp !== undefined;\n const [uncontrolled, setUncontrolled] = useState<[number, number]>(() => {\n const seed = defaultValue ?? [min, max];\n const lo = clamp(snapToStep(seed[0], min, step), min, max);\n const hi = clamp(snapToStep(seed[1], min, step), min, max);\n return lo <= hi ? [lo, hi] : [hi, lo];\n });\n\n const value = isControlled ? (valueProp as [number, number]) : uncontrolled;\n const [lo, hi] =\n value[0] <= value[1]\n ? [value[0], value[1]]\n : [value[1], value[0]];\n\n const setPair = useCallback(\n (next: [number, number]) => {\n const a = clamp(snapToStep(next[0], min, step), min, max);\n const b = clamp(snapToStep(next[1], min, step), min, max);\n const ordered: [number, number] = a <= b ? [a, b] : [b, a];\n if (!isControlled) {\n setUncontrolled(ordered);\n }\n onValueChange?.(ordered);\n },\n [isControlled, max, min, onValueChange, step],\n );\n\n const moveThumb = useCallback(\n (index: 0 | 1, clientX: number) => {\n const track = trackRef.current;\n if (!track) {\n return;\n }\n const raw = computeValueFromPointer(clientX, track, min, max, step);\n if (index === 0) {\n setPair([raw, hi]);\n } else {\n setPair([lo, raw]);\n }\n },\n [hi, lo, max, min, setPair, step],\n );\n\n const loPct = max === min ? 0 : ((lo - min) / (max - min)) * 100;\n const hiPct = max === min ? 0 : ((hi - min) / (max - min)) * 100;\n const resolvedSize = size ?? \"md\";\n\n return (\n <div\n ref={ref}\n data-slot=\"range-slider\"\n role=\"group\"\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-valuetext={`${lo} – ${hi}`}\n className={cn(sliderRootVariants({ size: resolvedSize }), className)}\n {...rest}\n >\n <div\n ref={trackRef}\n data-slot=\"slider-track\"\n className={cn(sliderTrackVariants({ size: resolvedSize }), \"relative\")}\n >\n <div\n data-slot=\"slider-range\"\n className={cn(sliderRangeVariants({ appearance }), \"absolute\")}\n style={{\n left: `${loPct}%`,\n width: `${Math.max(hiPct - loPct, 0)}%`,\n }}\n />\n <RangeThumb\n disabled={disabled}\n size={resolvedSize}\n value={lo}\n min={min}\n max={max}\n step={step}\n positionPct={loPct}\n trackRef={trackRef}\n onMoveClientX={(x) => moveThumb(0, x)}\n onNudge={(delta) => setPair([lo + delta, hi])}\n />\n <RangeThumb\n disabled={disabled}\n size={resolvedSize}\n value={hi}\n min={min}\n max={max}\n step={step}\n positionPct={hiPct}\n trackRef={trackRef}\n onMoveClientX={(x) => moveThumb(1, x)}\n onNudge={(delta) => setPair([lo, hi + delta])}\n />\n </div>\n </div>\n );\n}\n\nRangeSlider.displayName = \"RangeSlider\";\n\ntype RangeThumbProps = {\n disabled: boolean;\n size: \"sm\" | \"md\" | \"lg\";\n value: number;\n min: number;\n max: number;\n step: number;\n positionPct: number;\n trackRef: RefObject<HTMLDivElement | null>;\n onMoveClientX: (clientX: number) => void;\n onNudge: (delta: number) => void;\n};\n\nfunction RangeThumb({\n disabled,\n size,\n value,\n min,\n max,\n step,\n positionPct,\n trackRef,\n onMoveClientX,\n onNudge,\n}: RangeThumbProps) {\n const onPointerDown = useCallback(\n (event: ReactPointerEvent<HTMLDivElement>) => {\n if (disabled) {\n return;\n }\n event.preventDefault();\n const track = trackRef.current;\n if (!track) {\n return;\n }\n event.currentTarget.setPointerCapture(event.pointerId);\n const move = (e: PointerEvent) => {\n onMoveClientX(e.clientX);\n };\n const up = () => {\n window.removeEventListener(\"pointermove\", move);\n window.removeEventListener(\"pointerup\", up);\n };\n window.addEventListener(\"pointermove\", move);\n window.addEventListener(\"pointerup\", up);\n },\n [disabled, onMoveClientX, trackRef],\n );\n\n const onKeyDown = useCallback(\n (event: ReactKeyboardEvent<HTMLDivElement>) => {\n if (disabled) {\n return;\n }\n const big = (max - min) / 10;\n let delta = 0;\n if (event.key === \"ArrowRight\" || event.key === \"ArrowUp\") {\n delta = step;\n } else if (event.key === \"ArrowLeft\" || event.key === \"ArrowDown\") {\n delta = -step;\n } else if (event.key === \"PageUp\") {\n delta = big;\n } else if (event.key === \"PageDown\") {\n delta = -big;\n } else if (event.key === \"Home\") {\n event.preventDefault();\n onNudge(min - value);\n return;\n } else if (event.key === \"End\") {\n event.preventDefault();\n onNudge(max - value);\n return;\n } else {\n return;\n }\n event.preventDefault();\n onNudge(delta);\n },\n [disabled, max, min, onNudge, step, value],\n );\n\n return (\n <div\n role=\"slider\"\n tabIndex={disabled ? -1 : 0}\n data-slot=\"range-slider-thumb\"\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={value}\n aria-disabled={disabled || undefined}\n className={cn(\n \"absolute top-1/2 z-10 -translate-x-1/2 -translate-y-1/2\",\n sliderThumbVariants({ size }),\n )}\n style={{ left: `${positionPct}%` }}\n onPointerDown={onPointerDown}\n onKeyDown={onKeyDown}\n />\n );\n}\n"]}
|
package/dist/ui/slider.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { cn } from '../chunk-
|
|
2
|
+
import { cn } from '../chunk-DFEZH7TC.mjs';
|
|
3
3
|
import { createContext, useRef, useState, useCallback, useMemo, useContext } from 'react';
|
|
4
4
|
import { cva } from 'class-variance-authority';
|
|
5
5
|
import { jsx, jsxs } from 'react/jsx-runtime';
|