@tamagui/slider 1.61.3 → 1.62.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/cjs/Slider.js +72 -191
  2. package/dist/cjs/Slider.js.map +2 -2
  3. package/dist/cjs/Slider.native.js +438 -0
  4. package/dist/cjs/Slider.native.js.map +6 -0
  5. package/dist/cjs/SliderImpl.js +28 -65
  6. package/dist/cjs/SliderImpl.js.map +1 -1
  7. package/dist/cjs/SliderImpl.native.js +107 -0
  8. package/dist/cjs/SliderImpl.native.js.map +6 -0
  9. package/dist/cjs/constants.js +7 -17
  10. package/dist/cjs/constants.js.map +1 -1
  11. package/dist/cjs/constants.native.js +54 -0
  12. package/dist/cjs/constants.native.js.map +6 -0
  13. package/dist/cjs/helpers.js +12 -29
  14. package/dist/cjs/helpers.js.map +1 -1
  15. package/dist/cjs/helpers.native.js +86 -0
  16. package/dist/cjs/helpers.native.js.map +6 -0
  17. package/dist/cjs/index.js +6 -11
  18. package/dist/cjs/index.js.map +1 -1
  19. package/dist/cjs/index.native.js +30 -0
  20. package/dist/cjs/index.native.js.map +6 -0
  21. package/dist/cjs/types.js +3 -6
  22. package/dist/cjs/types.js.map +1 -1
  23. package/dist/cjs/types.native.js +15 -0
  24. package/dist/cjs/types.native.js.map +6 -0
  25. package/dist/esm/Slider.js +65 -167
  26. package/dist/esm/Slider.js.map +2 -2
  27. package/dist/esm/SliderImpl.js +21 -47
  28. package/dist/esm/SliderImpl.js.map +1 -1
  29. package/dist/esm/constants.js +2 -8
  30. package/dist/esm/constants.js.map +1 -1
  31. package/dist/esm/helpers.js +7 -20
  32. package/dist/esm/helpers.js.map +1 -1
  33. package/dist/jsx/Slider.js +59 -158
  34. package/dist/jsx/Slider.js.map +2 -2
  35. package/dist/jsx/Slider.native.js +419 -0
  36. package/dist/jsx/Slider.native.js.map +6 -0
  37. package/dist/jsx/SliderImpl.js +20 -46
  38. package/dist/jsx/SliderImpl.js.map +1 -1
  39. package/dist/jsx/SliderImpl.native.js +77 -0
  40. package/dist/jsx/SliderImpl.native.js.map +6 -0
  41. package/dist/jsx/constants.js +2 -8
  42. package/dist/jsx/constants.js.map +1 -1
  43. package/dist/jsx/constants.native.js +24 -0
  44. package/dist/jsx/constants.native.js.map +6 -0
  45. package/dist/jsx/helpers.js +7 -20
  46. package/dist/jsx/helpers.js.map +1 -1
  47. package/dist/jsx/helpers.native.js +57 -0
  48. package/dist/jsx/helpers.native.js.map +6 -0
  49. package/dist/jsx/index.native.js +7 -0
  50. package/dist/jsx/index.native.js.map +6 -0
  51. package/dist/jsx/types.native.js +1 -0
  52. package/dist/jsx/types.native.js.map +6 -0
  53. package/package.json +10 -10
@@ -0,0 +1,24 @@
1
+ import { createContextScope } from "@tamagui/create-context";
2
+ const SLIDER_NAME = "Slider", [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME), [SliderProvider, useSliderContext] = createSliderContext(SLIDER_NAME), [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext(SLIDER_NAME, {
3
+ startEdge: "left",
4
+ endEdge: "right",
5
+ sizeProp: "width",
6
+ size: 0,
7
+ direction: 1
8
+ }), PAGE_KEYS = ["PageUp", "PageDown"], ARROW_KEYS = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"], BACK_KEYS = {
9
+ ltr: ["ArrowDown", "Home", "ArrowLeft", "PageDown"],
10
+ rtl: ["ArrowDown", "Home", "ArrowRight", "PageDown"]
11
+ };
12
+ export {
13
+ ARROW_KEYS,
14
+ BACK_KEYS,
15
+ PAGE_KEYS,
16
+ SLIDER_NAME,
17
+ SliderOrientationProvider,
18
+ SliderProvider,
19
+ createSliderContext,
20
+ createSliderScope,
21
+ useSliderContext,
22
+ useSliderOrientationContext
23
+ };
24
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/constants.tsx"],
4
+ "mappings": "AACA,SAAS,0BAA0B;AAI5B,MAAM,cAAc,UAEd,CAAC,qBAAqB,iBAAiB,IAAI,mBAAmB,WAAW,GAEzE,CAAC,gBAAgB,gBAAgB,IAC5C,oBAAwC,WAAW,GAExC,CAAC,2BAA2B,2BAA2B,IAClE,oBAMG,aAAa;AAAA,EACd,WAAW;AAAA,EACX,SAAS;AAAA,EACT,UAAU;AAAA,EACV,MAAM;AAAA,EACN,WAAW;AACb,CAAC,GAEU,YAAY,CAAC,UAAU,UAAU,GACjC,aAAa,CAAC,WAAW,aAAa,aAAa,YAAY,GAC/D,YAAyC;AAAA,EACpD,KAAK,CAAC,aAAa,QAAQ,aAAa,UAAU;AAAA,EAClD,KAAK,CAAC,aAAa,QAAQ,cAAc,UAAU;AACrD;",
5
+ "names": []
6
+ }
@@ -1,33 +1,21 @@
1
1
  function getNextSortedValues(prevValues = [], nextValue, atIndex) {
2
2
  const nextValues = [...prevValues];
3
- nextValues[atIndex] = nextValue;
4
- return nextValues.sort((a, b) => a - b);
3
+ return nextValues[atIndex] = nextValue, nextValues.sort((a, b) => a - b);
5
4
  }
6
5
  function convertValueToPercentage(value, min, max) {
7
- const maxSteps = max - min;
8
- const percentPerStep = 100 / maxSteps;
9
- return percentPerStep * (value - min);
6
+ return 100 / (max - min) * (value - min);
10
7
  }
11
8
  function getLabel(index, totalValues) {
12
- if (totalValues > 2) {
13
- return `Value ${index + 1} of ${totalValues}`;
14
- } else if (totalValues === 2) {
15
- return ["Minimum", "Maximum"][index];
16
- } else {
17
- return void 0;
18
- }
9
+ return totalValues > 2 ? `Value ${index + 1} of ${totalValues}` : totalValues === 2 ? ["Minimum", "Maximum"][index] : void 0;
19
10
  }
20
11
  function getClosestValueIndex(values, nextValue) {
21
12
  if (values.length === 1)
22
13
  return 0;
23
- const distances = values.map((value) => Math.abs(value - nextValue));
24
- const closestDistance = Math.min(...distances);
14
+ const distances = values.map((value) => Math.abs(value - nextValue)), closestDistance = Math.min(...distances);
25
15
  return distances.indexOf(closestDistance);
26
16
  }
27
17
  function getThumbInBoundsOffset(width, left, direction) {
28
- const halfWidth = width / 2;
29
- const halfPercent = 50;
30
- const offset = linearScale([0, halfPercent], [0, halfWidth]);
18
+ const halfWidth = width / 2, offset = linearScale([0, 50], [0, halfWidth]);
31
19
  return (halfWidth - offset(left) * direction) * direction;
32
20
  }
33
21
  function getStepsBetweenValues(values) {
@@ -36,10 +24,9 @@ function getStepsBetweenValues(values) {
36
24
  function hasMinStepsBetweenValues(values, minStepsBetweenValues) {
37
25
  if (minStepsBetweenValues > 0) {
38
26
  const stepsBetweenValues = getStepsBetweenValues(values);
39
- const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);
40
- return actualMinStepsBetweenValues >= minStepsBetweenValues;
27
+ return Math.min(...stepsBetweenValues) >= minStepsBetweenValues;
41
28
  }
42
- return true;
29
+ return !0;
43
30
  }
44
31
  function linearScale(input, output) {
45
32
  return (value) => {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/helpers.tsx"],
4
- "mappings": "AAAO,SAAS,oBACd,aAAuB,CAAC,GACxB,WACA,SACA;AACA,QAAM,aAAa,CAAC,GAAG,UAAU;AACjC,aAAW,OAAO,IAAI;AACtB,SAAO,WAAW,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC;AACxC;AAEO,SAAS,yBAAyB,OAAe,KAAa,KAAa;AAChF,QAAM,WAAW,MAAM;AACvB,QAAM,iBAAiB,MAAM;AAC7B,SAAO,kBAAkB,QAAQ;AACnC;AAKO,SAAS,SAAS,OAAe,aAAqB;AAC3D,MAAI,cAAc,GAAG;AACnB,WAAO,SAAS,QAAQ,CAAC,OAAO,WAAW;AAAA,EAC7C,WAAW,gBAAgB,GAAG;AAC5B,WAAO,CAAC,WAAW,SAAS,EAAE,KAAK;AAAA,EACrC,OAAO;AACL,WAAO;AAAA,EACT;AACF;AAUO,SAAS,qBAAqB,QAAkB,WAAmB;AACxE,MAAI,OAAO,WAAW;AAAG,WAAO;AAChC,QAAM,YAAY,OAAO,IAAI,CAAC,UAAU,KAAK,IAAI,QAAQ,SAAS,CAAC;AACnE,QAAM,kBAAkB,KAAK,IAAI,GAAG,SAAS;AAC7C,SAAO,UAAU,QAAQ,eAAe;AAC1C;AAMO,SAAS,uBAAuB,OAAe,MAAc,WAAmB;AACrF,QAAM,YAAY,QAAQ;AAC1B,QAAM,cAAc;AACpB,QAAM,SAAS,YAAY,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,SAAS,CAAC;AAC3D,UAAQ,YAAY,OAAO,IAAI,IAAI,aAAa;AAClD;AASA,SAAS,sBAAsB,QAAkB;AAC/C,SAAO,OAAO,MAAM,GAAG,EAAE,EAAE,IAAI,CAAC,OAAO,UAAU,OAAO,QAAQ,CAAC,IAAI,KAAK;AAC5E;AAcO,SAAS,yBACd,QACA,uBACA;AACA,MAAI,wBAAwB,GAAG;AAC7B,UAAM,qBAAqB,sBAAsB,MAAM;AACvD,UAAM,8BAA8B,KAAK,IAAI,GAAG,kBAAkB;AAClE,WAAO,+BAA+B;AAAA,EACxC;AACA,SAAO;AACT;AAGO,SAAS,YACd,OACA,QACA;AACA,SAAO,CAAC,UAAkB;AACxB,QAAI,MAAM,CAAC,MAAM,MAAM,CAAC,KAAK,OAAO,CAAC,MAAM,OAAO,CAAC;AAAG,aAAO,OAAO,CAAC;AACrE,UAAM,SAAS,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,MAAM,CAAC,IAAI,MAAM,CAAC;AAC3D,WAAO,OAAO,CAAC,IAAI,SAAS,QAAQ,MAAM,CAAC;AAAA,EAC7C;AACF;AAEO,SAAS,gBAAgB,OAAe;AAC7C,UAAQ,OAAO,KAAK,EAAE,MAAM,GAAG,EAAE,CAAC,KAAK,IAAI;AAC7C;AAEO,SAAS,WAAW,OAAe,cAAsB;AAC9D,QAAM,UAAU,MAAM;AACtB,SAAO,KAAK,MAAM,QAAQ,OAAO,IAAI;AACvC;",
4
+ "mappings": "AAAO,SAAS,oBACd,aAAuB,CAAC,GACxB,WACA,SACA;AACA,QAAM,aAAa,CAAC,GAAG,UAAU;AACjC,oBAAW,OAAO,IAAI,WACf,WAAW,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC;AACxC;AAEO,SAAS,yBAAyB,OAAe,KAAa,KAAa;AAGhF,SADuB,OADN,MAAM,QAEE,QAAQ;AACnC;AAKO,SAAS,SAAS,OAAe,aAAqB;AAC3D,SAAI,cAAc,IACT,SAAS,QAAQ,CAAC,OAAO,WAAW,KAClC,gBAAgB,IAClB,CAAC,WAAW,SAAS,EAAE,KAAK,IAEnC;AAEJ;AAUO,SAAS,qBAAqB,QAAkB,WAAmB;AACxE,MAAI,OAAO,WAAW;AAAG,WAAO;AAChC,QAAM,YAAY,OAAO,IAAI,CAAC,UAAU,KAAK,IAAI,QAAQ,SAAS,CAAC,GAC7D,kBAAkB,KAAK,IAAI,GAAG,SAAS;AAC7C,SAAO,UAAU,QAAQ,eAAe;AAC1C;AAMO,SAAS,uBAAuB,OAAe,MAAc,WAAmB;AACrF,QAAM,YAAY,QAAQ,GAEpB,SAAS,YAAY,CAAC,GADR,EACsB,GAAG,CAAC,GAAG,SAAS,CAAC;AAC3D,UAAQ,YAAY,OAAO,IAAI,IAAI,aAAa;AAClD;AASA,SAAS,sBAAsB,QAAkB;AAC/C,SAAO,OAAO,MAAM,GAAG,EAAE,EAAE,IAAI,CAAC,OAAO,UAAU,OAAO,QAAQ,CAAC,IAAI,KAAK;AAC5E;AAcO,SAAS,yBACd,QACA,uBACA;AACA,MAAI,wBAAwB,GAAG;AAC7B,UAAM,qBAAqB,sBAAsB,MAAM;AAEvD,WADoC,KAAK,IAAI,GAAG,kBAAkB,KAC5B;AAAA,EACxC;AACA,SAAO;AACT;AAGO,SAAS,YACd,OACA,QACA;AACA,SAAO,CAAC,UAAkB;AACxB,QAAI,MAAM,CAAC,MAAM,MAAM,CAAC,KAAK,OAAO,CAAC,MAAM,OAAO,CAAC;AAAG,aAAO,OAAO,CAAC;AACrE,UAAM,SAAS,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,MAAM,CAAC,IAAI,MAAM,CAAC;AAC3D,WAAO,OAAO,CAAC,IAAI,SAAS,QAAQ,MAAM,CAAC;AAAA,EAC7C;AACF;AAEO,SAAS,gBAAgB,OAAe;AAC7C,UAAQ,OAAO,KAAK,EAAE,MAAM,GAAG,EAAE,CAAC,KAAK,IAAI;AAC7C;AAEO,SAAS,WAAW,OAAe,cAAsB;AAC9D,QAAM,UAAU,MAAM;AACtB,SAAO,KAAK,MAAM,QAAQ,OAAO,IAAI;AACvC;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,57 @@
1
+ function getNextSortedValues(prevValues = [], nextValue, atIndex) {
2
+ const nextValues = [...prevValues];
3
+ return nextValues[atIndex] = nextValue, nextValues.sort((a, b) => a - b);
4
+ }
5
+ function convertValueToPercentage(value, min, max) {
6
+ return 100 / (max - min) * (value - min);
7
+ }
8
+ function getLabel(index, totalValues) {
9
+ return totalValues > 2 ? `Value ${index + 1} of ${totalValues}` : totalValues === 2 ? ["Minimum", "Maximum"][index] : void 0;
10
+ }
11
+ function getClosestValueIndex(values, nextValue) {
12
+ if (values.length === 1)
13
+ return 0;
14
+ const distances = values.map((value) => Math.abs(value - nextValue)), closestDistance = Math.min(...distances);
15
+ return distances.indexOf(closestDistance);
16
+ }
17
+ function getThumbInBoundsOffset(width, left, direction) {
18
+ const halfWidth = width / 2, offset = linearScale([0, 50], [0, halfWidth]);
19
+ return (halfWidth - offset(left) * direction) * direction;
20
+ }
21
+ function getStepsBetweenValues(values) {
22
+ return values.slice(0, -1).map((value, index) => values[index + 1] - value);
23
+ }
24
+ function hasMinStepsBetweenValues(values, minStepsBetweenValues) {
25
+ if (minStepsBetweenValues > 0) {
26
+ const stepsBetweenValues = getStepsBetweenValues(values);
27
+ return Math.min(...stepsBetweenValues) >= minStepsBetweenValues;
28
+ }
29
+ return !0;
30
+ }
31
+ function linearScale(input, output) {
32
+ return (value) => {
33
+ if (input[0] === input[1] || output[0] === output[1])
34
+ return output[0];
35
+ const ratio = (output[1] - output[0]) / (input[1] - input[0]);
36
+ return output[0] + ratio * (value - input[0]);
37
+ };
38
+ }
39
+ function getDecimalCount(value) {
40
+ return (String(value).split(".")[1] || "").length;
41
+ }
42
+ function roundValue(value, decimalCount) {
43
+ const rounder = 10 ** decimalCount;
44
+ return Math.round(value * rounder) / rounder;
45
+ }
46
+ export {
47
+ convertValueToPercentage,
48
+ getClosestValueIndex,
49
+ getDecimalCount,
50
+ getLabel,
51
+ getNextSortedValues,
52
+ getThumbInBoundsOffset,
53
+ hasMinStepsBetweenValues,
54
+ linearScale,
55
+ roundValue
56
+ };
57
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/helpers.tsx"],
4
+ "mappings": "AAAO,SAAS,oBACd,aAAuB,CAAC,GACxB,WACA,SACA;AACA,QAAM,aAAa,CAAC,GAAG,UAAU;AACjC,oBAAW,OAAO,IAAI,WACf,WAAW,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC;AACxC;AAEO,SAAS,yBAAyB,OAAe,KAAa,KAAa;AAGhF,SADuB,OADN,MAAM,QAEE,QAAQ;AACnC;AAKO,SAAS,SAAS,OAAe,aAAqB;AAC3D,SAAI,cAAc,IACT,SAAS,QAAQ,CAAC,OAAO,WAAW,KAClC,gBAAgB,IAClB,CAAC,WAAW,SAAS,EAAE,KAAK,IAEnC;AAEJ;AAUO,SAAS,qBAAqB,QAAkB,WAAmB;AACxE,MAAI,OAAO,WAAW;AAAG,WAAO;AAChC,QAAM,YAAY,OAAO,IAAI,CAAC,UAAU,KAAK,IAAI,QAAQ,SAAS,CAAC,GAC7D,kBAAkB,KAAK,IAAI,GAAG,SAAS;AAC7C,SAAO,UAAU,QAAQ,eAAe;AAC1C;AAMO,SAAS,uBAAuB,OAAe,MAAc,WAAmB;AACrF,QAAM,YAAY,QAAQ,GAEpB,SAAS,YAAY,CAAC,GADR,EACsB,GAAG,CAAC,GAAG,SAAS,CAAC;AAC3D,UAAQ,YAAY,OAAO,IAAI,IAAI,aAAa;AAClD;AASA,SAAS,sBAAsB,QAAkB;AAC/C,SAAO,OAAO,MAAM,GAAG,EAAE,EAAE,IAAI,CAAC,OAAO,UAAU,OAAO,QAAQ,CAAC,IAAI,KAAK;AAC5E;AAcO,SAAS,yBACd,QACA,uBACA;AACA,MAAI,wBAAwB,GAAG;AAC7B,UAAM,qBAAqB,sBAAsB,MAAM;AAEvD,WADoC,KAAK,IAAI,GAAG,kBAAkB,KAC5B;AAAA,EACxC;AACA,SAAO;AACT;AAGO,SAAS,YACd,OACA,QACA;AACA,SAAO,CAAC,UAAkB;AACxB,QAAI,MAAM,CAAC,MAAM,MAAM,CAAC,KAAK,OAAO,CAAC,MAAM,OAAO,CAAC;AAAG,aAAO,OAAO,CAAC;AACrE,UAAM,SAAS,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,MAAM,CAAC,IAAI,MAAM,CAAC;AAC3D,WAAO,OAAO,CAAC,IAAI,SAAS,QAAQ,MAAM,CAAC;AAAA,EAC7C;AACF;AAEO,SAAS,gBAAgB,OAAe;AAC7C,UAAQ,OAAO,KAAK,EAAE,MAAM,GAAG,EAAE,CAAC,KAAK,IAAI;AAC7C;AAEO,SAAS,WAAW,OAAe,cAAsB;AAC9D,QAAM,UAAU,MAAM;AACtB,SAAO,KAAK,MAAM,QAAQ,OAAO,IAAI;AACvC;",
5
+ "names": []
6
+ }
@@ -0,0 +1,7 @@
1
+ export * from "./Slider";
2
+ import { SliderFrame, DirectionalYStack } from "./SliderImpl";
3
+ export {
4
+ DirectionalYStack,
5
+ SliderFrame
6
+ };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.ts"],
4
+ "mappings": "AAAA,cAAc;AAEd,SAAS,aAAa,yBAAyB;",
5
+ "names": []
6
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "mappings": "",
5
+ "names": []
6
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/slider",
3
- "version": "1.61.3",
3
+ "version": "1.62.1",
4
4
  "sideEffects": [
5
5
  "*.css"
6
6
  ],
@@ -31,21 +31,21 @@
31
31
  }
32
32
  },
33
33
  "dependencies": {
34
- "@tamagui/compose-refs": "1.61.3",
35
- "@tamagui/core": "1.61.3",
36
- "@tamagui/create-context": "1.61.3",
37
- "@tamagui/get-token": "1.61.3",
38
- "@tamagui/helpers": "1.61.3",
39
- "@tamagui/stacks": "1.61.3",
40
- "@tamagui/use-controllable-state": "1.61.3",
41
- "@tamagui/use-direction": "1.61.3"
34
+ "@tamagui/compose-refs": "1.62.1",
35
+ "@tamagui/core": "1.62.1",
36
+ "@tamagui/create-context": "1.62.1",
37
+ "@tamagui/get-token": "1.62.1",
38
+ "@tamagui/helpers": "1.62.1",
39
+ "@tamagui/stacks": "1.62.1",
40
+ "@tamagui/use-controllable-state": "1.62.1",
41
+ "@tamagui/use-direction": "1.62.1"
42
42
  },
43
43
  "peerDependencies": {
44
44
  "react": "*",
45
45
  "react-native": "*"
46
46
  },
47
47
  "devDependencies": {
48
- "@tamagui/build": "1.61.3",
48
+ "@tamagui/build": "1.62.1",
49
49
  "react": "^18.2.0",
50
50
  "react-native": "^0.72.1"
51
51
  },