@net-advantage/nabs-ui-slider 0.70.0 → 0.72.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/dist/nabs-ui-slider.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("react"),t=require("react/jsx-runtime");var n=
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("react"),t=require("react/jsx-runtime");var n={value:0,min:0,max:100,step:1};function r(e,t){return typeof e==`number`&&Number.isFinite(e)?e:t}function i(e,t){let i=r(e,n.min),a=r(t,n.max);return i<=a?{min:i,max:a}:{min:a,max:i}}function a(e){let t=r(e,n.step);return t>0?t:n.step}function o(e,t,i){let a=r(e,n.value);return a<t?t:a>i?i:a}function s(e,t){return e||`nabs-ui-slider-${t.replace(/:/g,``)}`}function c({disabled:e=!1,className:t}){return[`nabs-ui-slider`,e?`nabs-ui-slider--disabled`:``,t??``].filter(Boolean).join(` `)}function l(e){return[`nabs-ui-slider__input`,e??``].filter(Boolean).join(` `)}function u(e){return[`nabs-ui-slider__label`,e??``].filter(Boolean).join(` `)}function d(e){return[`nabs-ui-slider__value`,e??``].filter(Boolean).join(` `)}function f({value:e,min:t,max:n,step:r}){let s=i(t,n),c=a(r);return{renderedValue:o(e,s.min,s.max),renderedMin:s.min,renderedMax:s.max,renderedStep:c}}var p=(0,e.forwardRef)(({label:n=`Slider`,value:r=0,min:i=0,max:a=100,step:o=1,disabled:p=!1,className:m=``,inputClassName:h=``,labelClassName:g=``,valueClassName:_=``,id:v,onChange:y,...b},x)=>{let S=s(v,(0,e.useId)()),C=c({disabled:p,className:m}),w=l(h),T=u(g),E=d(_),{renderedValue:D,renderedMin:O,renderedMax:k,renderedStep:A}=f({value:r,min:i,max:a,step:o});return(0,t.jsxs)(`div`,{className:C,children:[(0,t.jsxs)(`div`,{className:`nabs-ui-slider__header`,children:[(0,t.jsx)(`label`,{className:T,htmlFor:S,children:n}),(0,t.jsx)(`output`,{className:E,htmlFor:S,children:r})]}),(0,t.jsx)(`input`,{ref:x,id:S,className:w,type:`range`,value:D,min:O,max:k,step:A,disabled:p,onChange:y,...b}),(0,t.jsxs)(`div`,{className:`nabs-ui-slider__scale`,"aria-hidden":`true`,children:[(0,t.jsx)(`span`,{children:O}),(0,t.jsx)(`span`,{children:k})]})]})});p.displayName=`Slider`,exports.Slider=p;
|
package/dist/nabs-ui-slider.js
CHANGED
|
@@ -1,48 +1,111 @@
|
|
|
1
1
|
import { forwardRef as e, useId as t } from "react";
|
|
2
2
|
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
3
|
-
//#region src/
|
|
4
|
-
var i =
|
|
5
|
-
|
|
3
|
+
//#region src/slider.model.ts
|
|
4
|
+
var i = {
|
|
5
|
+
value: 0,
|
|
6
|
+
min: 0,
|
|
7
|
+
max: 100,
|
|
8
|
+
step: 1
|
|
9
|
+
};
|
|
10
|
+
function a(e, t) {
|
|
11
|
+
return typeof e == "number" && Number.isFinite(e) ? e : t;
|
|
12
|
+
}
|
|
13
|
+
function o(e, t) {
|
|
14
|
+
let n = a(e, i.min), r = a(t, i.max);
|
|
15
|
+
return n <= r ? {
|
|
16
|
+
min: n,
|
|
17
|
+
max: r
|
|
18
|
+
} : {
|
|
19
|
+
min: r,
|
|
20
|
+
max: n
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function s(e) {
|
|
24
|
+
let t = a(e, i.step);
|
|
25
|
+
return t > 0 ? t : i.step;
|
|
26
|
+
}
|
|
27
|
+
function c(e, t, n) {
|
|
28
|
+
let r = a(e, i.value);
|
|
29
|
+
return r < t ? t : r > n ? n : r;
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
//#region src/slider.view-model.ts
|
|
33
|
+
function l(e, t) {
|
|
34
|
+
return e || `nabs-ui-slider-${t.replace(/:/g, "")}`;
|
|
35
|
+
}
|
|
36
|
+
function u({ disabled: e = !1, className: t }) {
|
|
37
|
+
return [
|
|
6
38
|
"nabs-ui-slider",
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
].filter(Boolean).join(" ")
|
|
39
|
+
e ? "nabs-ui-slider--disabled" : "",
|
|
40
|
+
t ?? ""
|
|
41
|
+
].filter(Boolean).join(" ");
|
|
42
|
+
}
|
|
43
|
+
function d(e) {
|
|
44
|
+
return ["nabs-ui-slider__input", e ?? ""].filter(Boolean).join(" ");
|
|
45
|
+
}
|
|
46
|
+
function f(e) {
|
|
47
|
+
return ["nabs-ui-slider__label", e ?? ""].filter(Boolean).join(" ");
|
|
48
|
+
}
|
|
49
|
+
function p(e) {
|
|
50
|
+
return ["nabs-ui-slider__value", e ?? ""].filter(Boolean).join(" ");
|
|
51
|
+
}
|
|
52
|
+
function m({ value: e, min: t, max: n, step: r }) {
|
|
53
|
+
let i = o(t, n), a = s(r);
|
|
54
|
+
return {
|
|
55
|
+
renderedValue: c(e, i.min, i.max),
|
|
56
|
+
renderedMin: i.min,
|
|
57
|
+
renderedMax: i.max,
|
|
58
|
+
renderedStep: a
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
//#endregion
|
|
62
|
+
//#region src/Slider.tsx
|
|
63
|
+
var h = e(({ label: e = "Slider", value: i = 0, min: a = 0, max: o = 100, step: s = 1, disabled: c = !1, className: h = "", inputClassName: g = "", labelClassName: _ = "", valueClassName: v = "", id: y, onChange: b, ...x }, S) => {
|
|
64
|
+
let C = l(y, t()), w = u({
|
|
65
|
+
disabled: c,
|
|
66
|
+
className: h
|
|
67
|
+
}), T = d(g), E = f(_), D = p(v), { renderedValue: O, renderedMin: k, renderedMax: A, renderedStep: j } = m({
|
|
68
|
+
value: i,
|
|
69
|
+
min: a,
|
|
70
|
+
max: o,
|
|
71
|
+
step: s
|
|
72
|
+
});
|
|
10
73
|
return /* @__PURE__ */ r("div", {
|
|
11
|
-
className:
|
|
74
|
+
className: w,
|
|
12
75
|
children: [
|
|
13
76
|
/* @__PURE__ */ r("div", {
|
|
14
77
|
className: "nabs-ui-slider__header",
|
|
15
78
|
children: [/* @__PURE__ */ n("label", {
|
|
16
|
-
className:
|
|
17
|
-
htmlFor:
|
|
79
|
+
className: E,
|
|
80
|
+
htmlFor: C,
|
|
18
81
|
children: e
|
|
19
82
|
}), /* @__PURE__ */ n("output", {
|
|
20
|
-
className:
|
|
21
|
-
htmlFor:
|
|
83
|
+
className: D,
|
|
84
|
+
htmlFor: C,
|
|
22
85
|
children: i
|
|
23
86
|
})]
|
|
24
87
|
}),
|
|
25
88
|
/* @__PURE__ */ n("input", {
|
|
26
|
-
ref:
|
|
27
|
-
id:
|
|
28
|
-
className:
|
|
89
|
+
ref: S,
|
|
90
|
+
id: C,
|
|
91
|
+
className: T,
|
|
29
92
|
type: "range",
|
|
30
|
-
value:
|
|
31
|
-
min:
|
|
32
|
-
max:
|
|
33
|
-
step:
|
|
93
|
+
value: O,
|
|
94
|
+
min: k,
|
|
95
|
+
max: A,
|
|
96
|
+
step: j,
|
|
34
97
|
disabled: c,
|
|
35
|
-
onChange:
|
|
36
|
-
...
|
|
98
|
+
onChange: b,
|
|
99
|
+
...x
|
|
37
100
|
}),
|
|
38
101
|
/* @__PURE__ */ r("div", {
|
|
39
102
|
className: "nabs-ui-slider__scale",
|
|
40
103
|
"aria-hidden": "true",
|
|
41
|
-
children: [/* @__PURE__ */ n("span", { children:
|
|
104
|
+
children: [/* @__PURE__ */ n("span", { children: k }), /* @__PURE__ */ n("span", { children: A })]
|
|
42
105
|
})
|
|
43
106
|
]
|
|
44
107
|
});
|
|
45
108
|
});
|
|
46
|
-
|
|
109
|
+
h.displayName = "Slider";
|
|
47
110
|
//#endregion
|
|
48
|
-
export {
|
|
111
|
+
export { h as Slider };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const sliderDefaults: {
|
|
2
|
+
readonly value: 0;
|
|
3
|
+
readonly min: 0;
|
|
4
|
+
readonly max: 100;
|
|
5
|
+
readonly step: 1;
|
|
6
|
+
};
|
|
7
|
+
export declare function normalizeSliderBounds(min: unknown, max: unknown): {
|
|
8
|
+
min: number;
|
|
9
|
+
max: number;
|
|
10
|
+
};
|
|
11
|
+
export declare function normalizeSliderStep(step: unknown): number;
|
|
12
|
+
export declare function clampSliderValue(value: unknown, min: number, max: number): number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { SliderProps } from './Slider.types';
|
|
2
|
+
export declare function buildSliderId(id: string | undefined, generatedId: string): string;
|
|
3
|
+
export declare function buildSliderClassName({ disabled, className }: {
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
className?: string | null;
|
|
6
|
+
}): string;
|
|
7
|
+
export declare function buildSliderInputClassName(inputClassName?: string | null): string;
|
|
8
|
+
export declare function buildSliderLabelClassName(labelClassName?: string | null): string;
|
|
9
|
+
export declare function buildSliderValueClassName(valueClassName?: string | null): string;
|
|
10
|
+
export declare function resolveSliderRenderModel({ value, min, max, step, }: {
|
|
11
|
+
value?: SliderProps["value"];
|
|
12
|
+
min?: SliderProps["min"];
|
|
13
|
+
max?: SliderProps["max"];
|
|
14
|
+
step?: SliderProps["step"];
|
|
15
|
+
}): {
|
|
16
|
+
renderedValue: number;
|
|
17
|
+
renderedMin: number;
|
|
18
|
+
renderedMax: number;
|
|
19
|
+
renderedStep: number;
|
|
20
|
+
};
|
|
21
|
+
export declare function toSliderStateLabel({ value, min, max, step, }: {
|
|
22
|
+
value: number;
|
|
23
|
+
min: number;
|
|
24
|
+
max: number;
|
|
25
|
+
step: number;
|
|
26
|
+
}): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@net-advantage/nabs-ui-slider",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.72.0",
|
|
4
4
|
"description": "Reusable slider control for the Nabs UI library.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/nabs-ui-slider.cjs",
|
|
@@ -25,11 +25,16 @@
|
|
|
25
25
|
"@types/react": "^19.0.0",
|
|
26
26
|
"@types/react-dom": "^19.0.0",
|
|
27
27
|
"@vitejs/plugin-react": "^6.0.1",
|
|
28
|
+
"@vitest/coverage-v8": "^3.2.4",
|
|
28
29
|
"react-dom": "^19.2.6",
|
|
29
|
-
"vite": "^8.0.12"
|
|
30
|
+
"vite": "^8.0.12",
|
|
31
|
+
"vitest": "^3.2.4"
|
|
30
32
|
},
|
|
31
33
|
"scripts": {
|
|
32
34
|
"build": "vite build",
|
|
33
|
-
"dev": "vite"
|
|
35
|
+
"dev": "vite",
|
|
36
|
+
"test:unit": "vitest run",
|
|
37
|
+
"test:unit:watch": "vitest",
|
|
38
|
+
"test:unit:coverage": "vitest run --coverage --coverage.reporter=html --coverage.reporter=json-summary --coverage.reporter=text-summary"
|
|
34
39
|
}
|
|
35
40
|
}
|