@pittorica/slider-react 0.24.0 → 0.25.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/Slider.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { type Ref } from 'react';
1
+ import { type ElementType } from 'react';
2
2
  import { type BoxProps } from '@pittorica/box-react';
3
3
  import type { PittoricaColor } from '@pittorica/text-react';
4
- export interface SliderProps extends Omit<BoxProps, 'onChange' | 'value' | 'defaultValue'> {
4
+ export type SliderProps<E extends ElementType = 'div'> = Omit<BoxProps<E>, 'onChange' | 'value' | 'defaultValue'> & {
5
5
  value?: number;
6
6
  defaultValue?: number;
7
7
  min?: number;
@@ -10,14 +10,13 @@ export interface SliderProps extends Omit<BoxProps, 'onChange' | 'value' | 'defa
10
10
  disabled?: boolean;
11
11
  color?: PittoricaColor;
12
12
  onValueChange?: (value: number) => void;
13
- }
13
+ };
14
14
  /**
15
15
  * Slider component for numeric input via dragging.
16
+ * Fully polymorphic and agnostic using Box foundation.
16
17
  */
17
18
  export declare const Slider: {
18
- ({ value: controlledValue, defaultValue, min, max, step, disabled, color, onValueChange, className, style, ref, ...props }: SliderProps & {
19
- ref?: Ref<HTMLDivElement>;
20
- }): import("react/jsx-runtime").JSX.Element;
19
+ <E extends ElementType = "div">({ value: controlledValue, defaultValue, min, max, step, disabled, color, onValueChange, className, style, as, ...props }: SliderProps<E>): import("react/jsx-runtime").JSX.Element;
21
20
  displayName: string;
22
21
  };
23
22
  //# sourceMappingURL=Slider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.d.ts","sourceRoot":"","sources":["../src/Slider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,GAAG,EAKT,MAAM,OAAO,CAAC;AAIf,OAAO,EAAO,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,WAAW,WAAY,SAAQ,IAAI,CACvC,QAAQ,EACR,UAAU,GAAG,OAAO,GAAG,cAAc,CACtC;IACC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED;;GAEG;AACH,eAAO,MAAM,MAAM;gIAahB,WAAW,GAAG;QAAE,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAA;KAAE;;CAuF7C,CAAC"}
1
+ {"version":3,"file":"Slider.d.ts","sourceRoot":"","sources":["../src/Slider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAIjB,MAAM,OAAO,CAAC;AAIf,OAAO,EAAO,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,WAAW,GAAG,KAAK,IAAI,IAAI,CAC3D,QAAQ,CAAC,CAAC,CAAC,EACX,UAAU,GAAG,OAAO,GAAG,cAAc,CACtC,GAAG;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,MAAM;KAAI,CAAC,SAAS,WAAW,oIAazC,WAAW,CAAC,CAAC,CAAC;;CAkFhB,CAAC"}
package/dist/index.js CHANGED
@@ -1,152 +1,142 @@
1
- import { jsx as T, jsxs as D } from "react/jsx-runtime";
2
- import { useState as F, useRef as U, useCallback as W } from "react";
3
- function A(e) {
4
- var i, r, t = "";
5
- if (typeof e == "string" || typeof e == "number") t += e;
6
- else if (typeof e == "object") if (Array.isArray(e)) {
7
- var s = e.length;
8
- for (i = 0; i < s; i++) e[i] && (r = A(e[i])) && (t && (t += " "), t += r);
9
- } else for (r in e) e[r] && (t && (t += " "), t += r);
1
+ import { jsx as w, jsxs as E } from "react/jsx-runtime";
2
+ import { useState as D, useRef as U, useCallback as W } from "react";
3
+ function A(i) {
4
+ var e, a, t = "";
5
+ if (typeof i == "string" || typeof i == "number") t += i;
6
+ else if (typeof i == "object") if (Array.isArray(i)) {
7
+ var s = i.length;
8
+ for (e = 0; e < s; e++) i[e] && (a = A(i[e])) && (t && (t += " "), t += a);
9
+ } else for (a in i) i[a] && (t && (t += " "), t += a);
10
10
  return t;
11
11
  }
12
- function q() {
13
- for (var e, i, r = 0, t = "", s = arguments.length; r < s; r++) (e = arguments[r]) && (i = A(e)) && (t && (t += " "), t += i);
12
+ function I() {
13
+ for (var i, e, a = 0, t = "", s = arguments.length; a < s; a++) (i = arguments[a]) && (e = A(i)) && (t && (t += " "), t += e);
14
14
  return t;
15
15
  }
16
- function B(e) {
17
- var i, r, t = "";
18
- if (typeof e == "string" || typeof e == "number") t += e;
19
- else if (typeof e == "object") if (Array.isArray(e)) {
20
- var s = e.length;
21
- for (i = 0; i < s; i++) e[i] && (r = B(e[i])) && (t && (t += " "), t += r);
22
- } else for (r in e) e[r] && (t && (t += " "), t += r);
16
+ function B(i) {
17
+ var e, a, t = "";
18
+ if (typeof i == "string" || typeof i == "number") t += i;
19
+ else if (typeof i == "object") if (Array.isArray(i)) {
20
+ var s = i.length;
21
+ for (e = 0; e < s; e++) i[e] && (a = B(i[e])) && (t && (t += " "), t += a);
22
+ } else for (a in i) i[a] && (t && (t += " "), t += a);
23
23
  return t;
24
24
  }
25
- function I() {
26
- for (var e, i, r = 0, t = "", s = arguments.length; r < s; r++) (e = arguments[r]) && (i = B(e)) && (t && (t += " "), t += i);
25
+ function V() {
26
+ for (var i, e, a = 0, t = "", s = arguments.length; a < s; a++) (i = arguments[a]) && (e = B(i)) && (t && (t += " "), t += e);
27
27
  return t;
28
28
  }
29
- const E = ({
30
- ref: e,
31
- as: i = "div",
32
- children: r,
33
- display: t,
34
- m: s,
35
- mt: c,
36
- mr: n,
37
- mb: p,
38
- ml: v,
39
- p: g,
40
- pt: y,
41
- pr: b,
42
- pb: $,
43
- pl: w,
44
- width: m,
45
- height: u,
46
- position: h,
47
- style: x,
48
- className: N,
49
- href: L,
50
- target: S,
51
- rel: M,
52
- htmlFor: l,
53
- type: f,
54
- name: d,
55
- disabled: o,
56
- ...j
29
+ const S = ({
30
+ as: i,
31
+ children: e,
32
+ display: a,
33
+ m: t,
34
+ mt: s,
35
+ mr: p,
36
+ mb: n,
37
+ ml: c,
38
+ mx: u,
39
+ my: g,
40
+ p: b,
41
+ pt: $,
42
+ pr: x,
43
+ pb: N,
44
+ pl: f,
45
+ px: d,
46
+ py: m,
47
+ width: h,
48
+ height: y,
49
+ position: T,
50
+ style: M,
51
+ className: L,
52
+ disabled: P,
53
+ ...l
57
54
  }) => {
58
- const a = {};
59
- t && (a.display = t), m && (a.width = m), u && (a.height = u), h && (a.position = h), s && (a.margin = `var(--pittorica-space-${s})`), c && (a.marginTop = `var(--pittorica-space-${c})`), n && (a.marginRight = `var(--pittorica-space-${n})`), p && (a.marginBottom = `var(--pittorica-space-${p})`), v && (a.marginLeft = `var(--pittorica-space-${v})`), g && (a.padding = `var(--pittorica-space-${g})`), y && (a.paddingTop = `var(--pittorica-space-${y})`), b && (a.paddingRight = `var(--pittorica-space-${b})`), $ && (a.paddingBottom = `var(--pittorica-space-${$})`), w && (a.paddingLeft = `var(--pittorica-space-${w})`);
60
- const P = {
61
- ...x,
62
- ...a
55
+ const v = i || "div", r = {};
56
+ a && (r.display = a), h && (r.width = h), y && (r.height = y), T && (r.position = T), t && (r.margin = `var(--pittorica-space-${t})`), s && (r.marginTop = `var(--pittorica-space-${s})`), p && (r.marginRight = `var(--pittorica-space-${p})`), n && (r.marginBottom = `var(--pittorica-space-${n})`), c && (r.marginLeft = `var(--pittorica-space-${c})`), u && (r.marginLeft = `var(--pittorica-space-${u})`, r.marginRight = `var(--pittorica-space-${u})`), g && (r.marginTop = `var(--pittorica-space-${g})`, r.marginBottom = `var(--pittorica-space-${g})`), b && (r.padding = `var(--pittorica-space-${b})`), $ && (r.paddingTop = `var(--pittorica-space-${$})`), x && (r.paddingRight = `var(--pittorica-space-${x})`), N && (r.paddingBottom = `var(--pittorica-space-${N})`), f && (r.paddingLeft = `var(--pittorica-space-${f})`), d && (r.paddingLeft = `var(--pittorica-space-${d})`, r.paddingRight = `var(--pittorica-space-${d})`), m && (r.paddingTop = `var(--pittorica-space-${m})`, r.paddingBottom = `var(--pittorica-space-${m})`);
57
+ const o = {
58
+ ...M,
59
+ ...r
63
60
  };
64
- return /* @__PURE__ */ T(
65
- i,
61
+ return /* @__PURE__ */ w(
62
+ v,
66
63
  {
67
- ref: e,
68
- className: I("pittorica-box", N),
69
- style: P,
70
- href: L,
71
- target: S,
72
- rel: M,
73
- htmlFor: l,
74
- type: f,
75
- name: d,
76
- disabled: o,
77
- ...j,
78
- children: r
64
+ className: V("pittorica-box", L),
65
+ style: o,
66
+ disabled: P,
67
+ ...l,
68
+ children: e
79
69
  }
80
70
  );
81
71
  };
82
- E.displayName = "Box";
83
- const V = ({
84
- value: e,
85
- defaultValue: i = 0,
86
- min: r = 0,
72
+ S.displayName = "Box";
73
+ const X = ({
74
+ value: i,
75
+ defaultValue: e = 0,
76
+ min: a = 0,
87
77
  max: t = 100,
88
78
  step: s = 1,
89
- disabled: c = !1,
79
+ disabled: p = !1,
90
80
  color: n = "indigo",
91
- onValueChange: p,
92
- className: v,
81
+ onValueChange: c,
82
+ className: u,
93
83
  style: g,
94
- ref: y,
95
- ...b
84
+ as: b,
85
+ ...$
96
86
  }) => {
97
- const [$, w] = F(i), m = U(null), u = e !== void 0, h = u ? e : $, x = (h - r) / (t - r) * 100, N = W(
98
- (l, f) => {
99
- const d = m.current || f;
100
- if (!d) return;
101
- const o = d.getBoundingClientRect();
87
+ const [x, N] = D(e), f = U(null), d = i !== void 0, m = d ? i : x, h = (m - a) / (t - a) * 100, y = W(
88
+ (l, v) => {
89
+ const r = f.current || v;
90
+ if (!r) return;
91
+ const o = r.getBoundingClientRect();
102
92
  if (!o || o.width <= 0) return;
103
- const P = Math.max(0, Math.min((typeof l == "number" ? l : 0) - (o.left || 0), o.width)) / o.width * (t - r) + r, k = Math.round(P / s) * s, R = Math.max(r, Math.min(t, k));
104
- Number.isNaN(R) || (u || w(R), p == null || p(R));
93
+ const j = Math.max(0, Math.min((typeof l == "number" ? l : 0) - (o.left || 0), o.width)) / o.width * (t - a) + a, k = Math.round(j / s) * s, R = Math.max(a, Math.min(t, k));
94
+ Number.isNaN(R) || (d || N(R), c == null || c(R));
105
95
  },
106
- [t, r, s, u, p]
107
- ), L = (l) => {
108
- if (c) return;
109
- N(l.clientX, l.currentTarget);
110
- const f = (o) => N(o.clientX), d = () => {
111
- globalThis.removeEventListener("pointermove", f), globalThis.removeEventListener("pointerup", d);
96
+ [t, a, s, d, c]
97
+ ), T = (l) => {
98
+ if (p) return;
99
+ y(l.clientX, l.currentTarget);
100
+ const v = (o) => y(o.clientX), r = () => {
101
+ globalThis.removeEventListener("pointermove", v), globalThis.removeEventListener("pointerup", r);
112
102
  };
113
- globalThis.addEventListener("pointermove", f), globalThis.addEventListener("pointerup", d);
114
- }, M = n !== "inherit" && !(n != null && n.startsWith("#")) && !(n != null && n.startsWith("rgb")) ? `var(--pittorica-${n}-9)` : n;
115
- return /* @__PURE__ */ D(
116
- E,
103
+ globalThis.addEventListener("pointermove", v), globalThis.addEventListener("pointerup", r);
104
+ }, L = n !== "inherit" && !(n != null && n.startsWith("#")) && !(n != null && n.startsWith("rgb")) ? `var(--pittorica-${n}-9)` : n;
105
+ return /* @__PURE__ */ E(
106
+ S,
117
107
  {
118
- ...b,
119
- ref: y,
120
- className: q("pittorica-slider-root", v),
121
- "data-disabled": c,
122
- onPointerDown: L,
123
- style: { "--pittorica-source-color": M, ...g },
108
+ as: b || "div",
109
+ className: I("pittorica-slider-root", u),
110
+ "data-disabled": p,
111
+ onPointerDown: T,
112
+ style: { "--pittorica-source-color": L, ...g },
113
+ ...$,
124
114
  children: [
125
- /* @__PURE__ */ T("div", { className: "pittorica-slider-track", ref: m, children: /* @__PURE__ */ T(
115
+ /* @__PURE__ */ w("div", { className: "pittorica-slider-track", ref: f, children: /* @__PURE__ */ w(
126
116
  "div",
127
117
  {
128
118
  className: "pittorica-slider-range",
129
- style: { width: `${x}%` }
119
+ style: { width: `${h}%` }
130
120
  }
131
121
  ) }),
132
- /* @__PURE__ */ T(
122
+ /* @__PURE__ */ w(
133
123
  "div",
134
124
  {
135
125
  role: "slider",
136
- "aria-valuemin": r,
126
+ "aria-valuemin": a,
137
127
  "aria-valuemax": t,
138
- "aria-valuenow": h,
139
- "aria-disabled": c,
140
- tabIndex: c ? -1 : 0,
128
+ "aria-valuenow": m,
129
+ "aria-disabled": p,
130
+ tabIndex: p ? -1 : 0,
141
131
  className: "pittorica-slider-thumb",
142
- style: { position: "absolute", left: `calc(${x}% - 8px)` }
132
+ style: { position: "absolute", left: `calc(${h}% - 8px)` }
143
133
  }
144
134
  )
145
135
  ]
146
136
  }
147
137
  );
148
138
  };
149
- V.displayName = "Slider";
139
+ X.displayName = "Slider";
150
140
  export {
151
- V as Slider
141
+ X as Slider
152
142
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pittorica/slider-react",
3
- "version": "0.24.0",
3
+ "version": "0.25.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -10,8 +10,8 @@
10
10
  ],
11
11
  "dependencies": {
12
12
  "clsx": "^2.1.1",
13
- "@pittorica/box-react": "0.24.0",
14
- "@pittorica/text-react": "0.24.0"
13
+ "@pittorica/box-react": "0.25.0",
14
+ "@pittorica/text-react": "0.25.0"
15
15
  },
16
16
  "devDependencies": {
17
17
  "@testing-library/jest-dom": "^6.9.1",
@@ -23,8 +23,8 @@
23
23
  "typescript": "^5.0.0",
24
24
  "vite": "^5.0.0",
25
25
  "vitest": "^2.1.9",
26
- "@pittorica/theme-react": "0.24.0",
27
- "pittorica": "0.24.0"
26
+ "@pittorica/theme-react": "0.25.0",
27
+ "pittorica": "0.25.0"
28
28
  },
29
29
  "peerDependencies": {
30
30
  "react": ">=19",
@@ -35,7 +35,6 @@
35
35
  "build:js": "vite build",
36
36
  "build:types": "tsc -p tsconfig.json",
37
37
  "clean": "rm -rf dist",
38
- "dev": "vite",
39
38
  "test": "vitest run",
40
39
  "test:watch": "vitest"
41
40
  }