@cdx-ui/primitives 0.3.5 → 0.3.7

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 (82) hide show
  1. package/lib/commonjs/index.js +12 -0
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/progress-bar/ProgressBarIndicator.js +56 -3
  4. package/lib/commonjs/progress-bar/ProgressBarIndicator.js.map +1 -1
  5. package/lib/commonjs/select/SelectEmpty.js +2 -13
  6. package/lib/commonjs/select/SelectEmpty.js.map +1 -1
  7. package/lib/commonjs/slider/useSliderPointer.js +9 -4
  8. package/lib/commonjs/slider/useSliderPointer.js.map +1 -1
  9. package/lib/commonjs/stepper/StepperRoot.js +119 -0
  10. package/lib/commonjs/stepper/StepperRoot.js.map +1 -0
  11. package/lib/commonjs/stepper/StepperStep.js +78 -0
  12. package/lib/commonjs/stepper/StepperStep.js.map +1 -0
  13. package/lib/commonjs/stepper/StepperStepPressable.js +63 -0
  14. package/lib/commonjs/stepper/StepperStepPressable.js.map +1 -0
  15. package/lib/commonjs/stepper/StepperStepTrigger.js +44 -0
  16. package/lib/commonjs/stepper/StepperStepTrigger.js.map +1 -0
  17. package/lib/commonjs/stepper/StepperStepTrigger.web.js +71 -0
  18. package/lib/commonjs/stepper/StepperStepTrigger.web.js.map +1 -0
  19. package/lib/commonjs/stepper/context.js +21 -0
  20. package/lib/commonjs/stepper/context.js.map +1 -0
  21. package/lib/commonjs/stepper/index.js +46 -0
  22. package/lib/commonjs/stepper/index.js.map +1 -0
  23. package/lib/commonjs/stepper/types.js +6 -0
  24. package/lib/commonjs/stepper/types.js.map +1 -0
  25. package/lib/module/index.js +1 -0
  26. package/lib/module/index.js.map +1 -1
  27. package/lib/module/progress-bar/ProgressBarIndicator.js +57 -5
  28. package/lib/module/progress-bar/ProgressBarIndicator.js.map +1 -1
  29. package/lib/module/select/SelectEmpty.js +2 -13
  30. package/lib/module/select/SelectEmpty.js.map +1 -1
  31. package/lib/module/slider/useSliderPointer.js +9 -4
  32. package/lib/module/slider/useSliderPointer.js.map +1 -1
  33. package/lib/module/stepper/StepperRoot.js +115 -0
  34. package/lib/module/stepper/StepperRoot.js.map +1 -0
  35. package/lib/module/stepper/StepperStep.js +74 -0
  36. package/lib/module/stepper/StepperStep.js.map +1 -0
  37. package/lib/module/stepper/StepperStepPressable.js +60 -0
  38. package/lib/module/stepper/StepperStepPressable.js.map +1 -0
  39. package/lib/module/stepper/StepperStepTrigger.js +40 -0
  40. package/lib/module/stepper/StepperStepTrigger.js.map +1 -0
  41. package/lib/module/stepper/StepperStepTrigger.web.js +67 -0
  42. package/lib/module/stepper/StepperStepTrigger.web.js.map +1 -0
  43. package/lib/module/stepper/context.js +11 -0
  44. package/lib/module/stepper/context.js.map +1 -0
  45. package/lib/module/stepper/index.js +7 -0
  46. package/lib/module/stepper/index.js.map +1 -0
  47. package/lib/module/stepper/types.js +4 -0
  48. package/lib/module/stepper/types.js.map +1 -0
  49. package/lib/typescript/index.d.ts +1 -0
  50. package/lib/typescript/index.d.ts.map +1 -1
  51. package/lib/typescript/progress-bar/ProgressBarIndicator.d.ts.map +1 -1
  52. package/lib/typescript/select/SelectEmpty.d.ts.map +1 -1
  53. package/lib/typescript/slider/useSliderPointer.d.ts.map +1 -1
  54. package/lib/typescript/stepper/StepperRoot.d.ts +7 -0
  55. package/lib/typescript/stepper/StepperRoot.d.ts.map +1 -0
  56. package/lib/typescript/stepper/StepperStep.d.ts +7 -0
  57. package/lib/typescript/stepper/StepperStep.d.ts.map +1 -0
  58. package/lib/typescript/stepper/StepperStepPressable.d.ts +8 -0
  59. package/lib/typescript/stepper/StepperStepPressable.d.ts.map +1 -0
  60. package/lib/typescript/stepper/StepperStepTrigger.d.ts +9 -0
  61. package/lib/typescript/stepper/StepperStepTrigger.d.ts.map +1 -0
  62. package/lib/typescript/stepper/StepperStepTrigger.web.d.ts +9 -0
  63. package/lib/typescript/stepper/StepperStepTrigger.web.d.ts.map +1 -0
  64. package/lib/typescript/stepper/context.d.ts +16 -0
  65. package/lib/typescript/stepper/context.d.ts.map +1 -0
  66. package/lib/typescript/stepper/index.d.ts +6 -0
  67. package/lib/typescript/stepper/index.d.ts.map +1 -0
  68. package/lib/typescript/stepper/types.d.ts +96 -0
  69. package/lib/typescript/stepper/types.d.ts.map +1 -0
  70. package/package.json +3 -3
  71. package/src/index.ts +1 -0
  72. package/src/progress-bar/ProgressBarIndicator.tsx +85 -6
  73. package/src/select/SelectEmpty.tsx +2 -22
  74. package/src/slider/useSliderPointer.ts +9 -4
  75. package/src/stepper/StepperRoot.tsx +148 -0
  76. package/src/stepper/StepperStep.tsx +101 -0
  77. package/src/stepper/StepperStepPressable.tsx +48 -0
  78. package/src/stepper/StepperStepTrigger.tsx +38 -0
  79. package/src/stepper/StepperStepTrigger.web.tsx +69 -0
  80. package/src/stepper/context.tsx +11 -0
  81. package/src/stepper/index.ts +16 -0
  82. package/src/stepper/types.ts +104 -0
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.StepperStepTrigger = void 0;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _dataAttributes = require("../utils/dataAttributes");
10
+ var _context = require("./context");
11
+ var _StepperStepPressable = require("./StepperStepPressable");
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ /**
14
+ * Internal step region that carries the step's accessible name: the grouped visible
15
+ * content (indicator, title, description) followed by the state phrase. It becomes a
16
+ * `button` while the step is clickable. Not a public styled part; the styled
17
+ * `Stepper.Step` renders it around those slots.
18
+ */
19
+ const StepperStepTrigger = exports.StepperStepTrigger = /*#__PURE__*/(0, _react.forwardRef)(({
20
+ children,
21
+ ...props
22
+ }, ref) => {
23
+ const state = (0, _context.useStepperStep)();
24
+ const {
25
+ getStepAccessibilityText
26
+ } = (0, _context.useStepperContext)();
27
+ const phrase = getStepAccessibilityText(state);
28
+ const Comp = state.isClickable ? _StepperStepPressable.StepperStepPressable : _reactNative.View;
29
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Comp, {
30
+ ref: ref,
31
+ accessible: true,
32
+ accessibilityValue: phrase ? {
33
+ text: phrase
34
+ } : undefined,
35
+ ...props,
36
+ ...(0, _dataAttributes.mergeDataAttributes)(props, (0, _dataAttributes.dataAttributes)({
37
+ clickable: state.isClickable,
38
+ disabled: state.isDisabled
39
+ })),
40
+ children: children
41
+ });
42
+ });
43
+ StepperStepTrigger.displayName = 'StepperStepTrigger';
44
+ //# sourceMappingURL=StepperStepTrigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_dataAttributes","_context","_StepperStepPressable","_jsxRuntime","StepperStepTrigger","exports","forwardRef","children","props","ref","state","useStepperStep","getStepAccessibilityText","useStepperContext","phrase","Comp","isClickable","StepperStepPressable","View","jsx","accessible","accessibilityValue","text","undefined","mergeDataAttributes","dataAttributes","clickable","disabled","isDisabled","displayName"],"sourceRoot":"../../../src","sources":["stepper/StepperStepTrigger.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,qBAAA,GAAAJ,OAAA;AAA8D,IAAAK,WAAA,GAAAL,OAAA;AAG9D;AACA;AACA;AACA;AACA;AACA;AACO,MAAMM,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,gBAAG,IAAAE,iBAAU,EAC1C,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EAC/B,MAAMC,KAAK,GAAG,IAAAC,uBAAc,EAAC,CAAC;EAC9B,MAAM;IAAEC;EAAyB,CAAC,GAAG,IAAAC,0BAAiB,EAAC,CAAC;EACxD,MAAMC,MAAM,GAAGF,wBAAwB,CAACF,KAAK,CAAC;EAC9C,MAAMK,IAAI,GAAGL,KAAK,CAACM,WAAW,GAAGC,0CAAoB,GAAGC,iBAAI;EAE5D,oBACE,IAAAf,WAAA,CAAAgB,GAAA,EAACJ,IAAI;IACHN,GAAG,EAAEA,GAAI;IACTW,UAAU;IACVC,kBAAkB,EAAEP,MAAM,GAAG;MAAEQ,IAAI,EAAER;IAAO,CAAC,GAAGS,SAAU;IAAA,GACtDf,KAAK;IAAA,GACL,IAAAgB,mCAAmB,EACrBhB,KAAK,EACL,IAAAiB,8BAAc,EAAC;MAAEC,SAAS,EAAEhB,KAAK,CAACM,WAAW;MAAEW,QAAQ,EAAEjB,KAAK,CAACkB;IAAW,CAAC,CAC7E,CAAC;IAAArB,QAAA,EAEAA;EAAQ,CACL,CAAC;AAEX,CACF,CAAC;AAEDH,kBAAkB,CAACyB,WAAW,GAAG,oBAAoB","ignoreList":[]}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.StepperStepTrigger = void 0;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _visuallyHidden = require("@react-aria/visually-hidden");
10
+ var _utils = require("@cdx-ui/utils");
11
+ var _dataAttributes = require("../utils/dataAttributes");
12
+ var _context = require("./context");
13
+ var _StepperStepPressable = require("./StepperStepPressable");
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+ /**
16
+ * Internal step region that carries the step's accessible name. On web the state phrase
17
+ * is screen-reader-only text after the visible content, because browse-mode screen
18
+ * readers ignore `aria-label` on a list item. It becomes a `button` while the step is
19
+ * clickable. Not a public styled part.
20
+ */
21
+ const StepperStepTrigger = exports.StepperStepTrigger = /*#__PURE__*/(0, _react.forwardRef)(({
22
+ children,
23
+ ...props
24
+ }, ref) => {
25
+ const state = (0, _context.useStepperStep)();
26
+ const {
27
+ getStepAccessibilityText
28
+ } = (0, _context.useStepperContext)();
29
+ const phrase = getStepAccessibilityText(state);
30
+ const Comp = state.isClickable ? _StepperStepPressable.StepperStepPressable : _reactNative.View;
31
+ const nodeRef = (0, _react.useRef)(null);
32
+ const mergedRef = (0, _react.useMemo)(() => (0, _utils.mergeRefs)(ref, nodeRef), [ref]);
33
+ // Activating a step makes it current, which swaps the focused button for a plain region
34
+ // and would drop focus to the document. Focus moves to that region instead, outside the
35
+ // Tab order.
36
+ const restoreFocusRef = (0, _react.useRef)(false);
37
+ (0, _react.useLayoutEffect)(() => {
38
+ const node = nodeRef.current;
39
+ if (!restoreFocusRef.current || state.isClickable || node === null) {
40
+ return;
41
+ }
42
+ restoreFocusRef.current = false;
43
+ node.tabIndex = -1;
44
+ node.focus({
45
+ preventScroll: true
46
+ });
47
+ }, [state.isClickable]);
48
+ const pressProps = state.isClickable ? {
49
+ onPress: () => {
50
+ restoreFocusRef.current = document.activeElement === nodeRef.current;
51
+ },
52
+ onBlur: (0, _utils.composeEventHandlers)(props.onBlur, () => {
53
+ restoreFocusRef.current = false;
54
+ })
55
+ } : {};
56
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Comp, {
57
+ ref: mergedRef,
58
+ ...props,
59
+ ...pressProps,
60
+ ...(0, _dataAttributes.mergeDataAttributes)(props, (0, _dataAttributes.dataAttributes)({
61
+ clickable: state.isClickable,
62
+ disabled: state.isDisabled
63
+ })),
64
+ children: [children, phrase ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_visuallyHidden.VisuallyHidden, {
65
+ elementType: "span",
66
+ children: `, ${phrase}`
67
+ }) : null]
68
+ });
69
+ });
70
+ StepperStepTrigger.displayName = 'StepperStepTrigger';
71
+ //# sourceMappingURL=StepperStepTrigger.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_visuallyHidden","_utils","_dataAttributes","_context","_StepperStepPressable","_jsxRuntime","StepperStepTrigger","exports","forwardRef","children","props","ref","state","useStepperStep","getStepAccessibilityText","useStepperContext","phrase","Comp","isClickable","StepperStepPressable","View","nodeRef","useRef","mergedRef","useMemo","mergeRefs","restoreFocusRef","useLayoutEffect","node","current","tabIndex","focus","preventScroll","pressProps","onPress","document","activeElement","onBlur","composeEventHandlers","jsxs","mergeDataAttributes","dataAttributes","clickable","disabled","isDisabled","jsx","VisuallyHidden","elementType","displayName"],"sourceRoot":"../../../src","sources":["stepper/StepperStepTrigger.web.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,eAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,qBAAA,GAAAN,OAAA;AAA8D,IAAAO,WAAA,GAAAP,OAAA;AAG9D;AACA;AACA;AACA;AACA;AACA;AACO,MAAMQ,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,gBAAG,IAAAE,iBAAU,EAC1C,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EAC/B,MAAMC,KAAK,GAAG,IAAAC,uBAAc,EAAC,CAAC;EAC9B,MAAM;IAAEC;EAAyB,CAAC,GAAG,IAAAC,0BAAiB,EAAC,CAAC;EACxD,MAAMC,MAAM,GAAGF,wBAAwB,CAACF,KAAK,CAAC;EAC9C,MAAMK,IAAI,GAAGL,KAAK,CAACM,WAAW,GAAGC,0CAAoB,GAAGC,iBAAI;EAE5D,MAAMC,OAAO,GAAG,IAAAC,aAAM,EAAmC,IAAI,CAAC;EAC9D,MAAMC,SAAS,GAAG,IAAAC,cAAO,EAAC,MAAM,IAAAC,gBAAS,EAACd,GAAG,EAAEU,OAAO,CAAC,EAAE,CAACV,GAAG,CAAC,CAAC;EAC/D;EACA;EACA;EACA,MAAMe,eAAe,GAAG,IAAAJ,aAAM,EAAC,KAAK,CAAC;EAErC,IAAAK,sBAAe,EAAC,MAAM;IACpB,MAAMC,IAAI,GAAGP,OAAO,CAACQ,OAAwC;IAC7D,IAAI,CAACH,eAAe,CAACG,OAAO,IAAIjB,KAAK,CAACM,WAAW,IAAIU,IAAI,KAAK,IAAI,EAAE;MAClE;IACF;IACAF,eAAe,CAACG,OAAO,GAAG,KAAK;IAC/BD,IAAI,CAACE,QAAQ,GAAG,CAAC,CAAC;IAClBF,IAAI,CAACG,KAAK,CAAC;MAAEC,aAAa,EAAE;IAAK,CAAC,CAAC;EACrC,CAAC,EAAE,CAACpB,KAAK,CAACM,WAAW,CAAC,CAAC;EAEvB,MAAMe,UAAU,GAAGrB,KAAK,CAACM,WAAW,GAChC;IACEgB,OAAO,EAAEA,CAAA,KAAM;MACbR,eAAe,CAACG,OAAO,GACrBM,QAAQ,CAACC,aAAa,KAAMf,OAAO,CAACQ,OAAyC;IACjF,CAAC;IACDQ,MAAM,EAAE,IAAAC,2BAAoB,EAAC5B,KAAK,CAAC2B,MAAM,EAAE,MAAM;MAC/CX,eAAe,CAACG,OAAO,GAAG,KAAK;IACjC,CAAC;EACH,CAAC,GACD,CAAC,CAAC;EAEN,oBACE,IAAAxB,WAAA,CAAAkC,IAAA,EAACtB,IAAI;IACHN,GAAG,EAAEY,SAAU;IAAA,GACXb,KAAK;IAAA,GACLuB,UAAU;IAAA,GACV,IAAAO,mCAAmB,EACrB9B,KAAK,EACL,IAAA+B,8BAAc,EAAC;MAAEC,SAAS,EAAE9B,KAAK,CAACM,WAAW;MAAEyB,QAAQ,EAAE/B,KAAK,CAACgC;IAAW,CAAC,CAC7E,CAAC;IAAAnC,QAAA,GAEAA,QAAQ,EACRO,MAAM,gBAAG,IAAAX,WAAA,CAAAwC,GAAA,EAAC7C,eAAA,CAAA8C,cAAc;MAACC,WAAW,EAAC,MAAM;MAAAtC,QAAA,EAAE,KAAKO,MAAM;IAAE,CAAiB,CAAC,GAAG,IAAI;EAAA,CAChF,CAAC;AAEX,CACF,CAAC;AAEDV,kBAAkB,CAAC0C,WAAW,GAAG,oBAAoB","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useStepperStep = exports.useStepperIndex = exports.useStepperContext = exports.StepperStepProvider = exports.StepperProvider = exports.StepperIndexProvider = void 0;
7
+ var _utils = require("@cdx-ui/utils");
8
+ const [StepperProvider, useStepperContext] = (0, _utils.createContext)('StepperContext');
9
+
10
+ /** Position of a direct child of `StepperRoot`, supplied by the root while it renders. */
11
+ exports.useStepperContext = useStepperContext;
12
+ exports.StepperProvider = StepperProvider;
13
+ const [StepperIndexProvider, useStepperIndex] = (0, _utils.createContext)('StepperIndex');
14
+
15
+ /** Resolved state of the enclosing step. `useStepperStep` throws outside a `StepperStep`. */
16
+ exports.useStepperIndex = useStepperIndex;
17
+ exports.StepperIndexProvider = StepperIndexProvider;
18
+ const [StepperStepProvider, useStepperStep] = (0, _utils.createContext)('StepperStep');
19
+ exports.useStepperStep = useStepperStep;
20
+ exports.StepperStepProvider = StepperStepProvider;
21
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_utils","require","StepperProvider","useStepperContext","createContext","exports","StepperIndexProvider","useStepperIndex","StepperStepProvider","useStepperStep"],"sourceRoot":"../../../src","sources":["stepper/context.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGO,MAAM,CAACC,eAAe,EAAEC,iBAAiB,CAAC,GAC/C,IAAAC,oBAAa,EAAsB,gBAAgB,CAAC;;AAEtD;AAAAC,OAAA,CAAAF,iBAAA,GAAAA,iBAAA;AAAAE,OAAA,CAAAH,eAAA,GAAAA,eAAA;AACO,MAAM,CAACI,oBAAoB,EAAEC,eAAe,CAAC,GAAG,IAAAH,oBAAa,EAAS,cAAc,CAAC;;AAE5F;AAAAC,OAAA,CAAAE,eAAA,GAAAA,eAAA;AAAAF,OAAA,CAAAC,oBAAA,GAAAA,oBAAA;AACO,MAAM,CAACE,mBAAmB,EAAEC,cAAc,CAAC,GAAG,IAAAL,oBAAa,EAAmB,aAAa,CAAC;AAACC,OAAA,CAAAI,cAAA,GAAAA,cAAA;AAAAJ,OAAA,CAAAG,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "StepperRoot", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _StepperRoot.StepperRoot;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "StepperStep", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _StepperStep.StepperStep;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "StepperStepTrigger", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _StepperStepTrigger.StepperStepTrigger;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "useStepperContext", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _context.useStepperContext;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "useStepperIndex", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _context.useStepperIndex;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "useStepperStep", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _context.useStepperStep;
40
+ }
41
+ });
42
+ var _context = require("./context");
43
+ var _StepperRoot = require("./StepperRoot");
44
+ var _StepperStep = require("./StepperStep");
45
+ var _StepperStepTrigger = require("./StepperStepTrigger");
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_context","require","_StepperRoot","_StepperStep","_StepperStepTrigger"],"sourceRoot":"../../../src","sources":["stepper/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,mBAAA,GAAAH,OAAA","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["stepper/types.ts"],"mappings":"","ignoreList":[]}
@@ -45,6 +45,7 @@ export * from './progress-bar';
45
45
  export * from './radio';
46
46
  export * from './accordion';
47
47
  export * from './slider';
48
+ export * from './stepper';
48
49
  export { FormControlContext, useFormControlContext } from '@cdx-ui/utils';
49
50
  export { dataAttributes, mergeDataAttributes } from './utils/dataAttributes';
50
51
  export { domDataAttributes, mergeDomDataAttributes } from './utils/domDataAttributes';
@@ -1 +1 @@
1
- {"version":3,"names":["MODAL_OVERLAY_Z_INDEX","NOTIFICATION_OVERLAY_Z_INDEX","OVERLAY_PLACEMENTS","getAnchoredOverlayPosition","OverlayContainer","OverlayInsetsProvider","OverlayStackProvider","useAnchorPosition","useAnchoredOverlay","useDismissOverlay","useEscapeKey","useOverlayStackRegistration","useOverlayPosition","FormControlContext","useFormControlContext","dataAttributes","mergeDataAttributes","domDataAttributes","mergeDomDataAttributes","mapViewPropsToDom","assignRef","createPortalFn","useHasTextAncestor","Slot"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,cAAc,UAAU;AACxB,cAAc,eAAe;AAC7B,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,SAAS;AACvB,cAAc,cAAc;AAC5B,cAAc,eAAe;AAC7B,cAAc,gBAAgB;AAC9B,cAAc,gBAAgB;AAC9B,cAAc,uBAAuB;AACrC,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,cAAc,uBAAuB;AACrC,cAAc,SAAS;AACvB,cAAc,WAAW;AACzB,cAAc,aAAa;AAC3B,cAAc,cAAc;AAC5B,cAAc,YAAY;AAC1B,cAAc,kBAAkB;AAChC,cAAc,kBAAkB;AAChC,cAAc,eAAe;AAC7B,cAAc,qBAAqB;AACnC,cAAc,gBAAgB;AAC9B,cAAc,mBAAmB;AACjC,cAAc,kBAAkB;AAChC,cAAc,oBAAoB;AAClC,cAAc,QAAQ;AACtB,cAAc,aAAa;AAC3B,cAAc,QAAQ;AACtB,SACEA,qBAAqB,EACrBC,4BAA4B,EAC5BC,kBAAkB,EAElBC,0BAA0B,EAC1BC,gBAAgB,EAChBC,qBAAqB,EACrBC,oBAAoB,EACpBC,iBAAiB,EACjBC,kBAAkB,EAClBC,iBAAiB,EACjBC,YAAY,EACZC,2BAA2B,EAC3BC,kBAAkB,QAmBb,WAAW;AAClB,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,iBAAiB;AAC/B,cAAc,SAAS;AACvB,cAAc,WAAW;AACzB,cAAc,UAAU;AACxB,cAAc,gBAAgB;AAC9B,cAAc,SAAS;AACvB,cAAc,aAAa;AAC3B,cAAc,UAAU;AAExB,SAASC,kBAAkB,EAAEC,qBAAqB,QAAQ,eAAe;AACzE,SAASC,cAAc,EAAEC,mBAAmB,QAAQ,wBAAwB;AAC5E,SACEC,iBAAiB,EACjBC,sBAAsB,QAEjB,2BAA2B;AAClC,SAASC,iBAAiB,QAAuC,2BAA2B;AAC5F,SAASC,SAAS,QAAQ,mBAAmB;AAC7C,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SAASC,IAAI,QAAQ,QAAQ","ignoreList":[]}
1
+ {"version":3,"names":["MODAL_OVERLAY_Z_INDEX","NOTIFICATION_OVERLAY_Z_INDEX","OVERLAY_PLACEMENTS","getAnchoredOverlayPosition","OverlayContainer","OverlayInsetsProvider","OverlayStackProvider","useAnchorPosition","useAnchoredOverlay","useDismissOverlay","useEscapeKey","useOverlayStackRegistration","useOverlayPosition","FormControlContext","useFormControlContext","dataAttributes","mergeDataAttributes","domDataAttributes","mergeDomDataAttributes","mapViewPropsToDom","assignRef","createPortalFn","useHasTextAncestor","Slot"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,cAAc,UAAU;AACxB,cAAc,eAAe;AAC7B,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,SAAS;AACvB,cAAc,cAAc;AAC5B,cAAc,eAAe;AAC7B,cAAc,gBAAgB;AAC9B,cAAc,gBAAgB;AAC9B,cAAc,uBAAuB;AACrC,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,cAAc,uBAAuB;AACrC,cAAc,SAAS;AACvB,cAAc,WAAW;AACzB,cAAc,aAAa;AAC3B,cAAc,cAAc;AAC5B,cAAc,YAAY;AAC1B,cAAc,kBAAkB;AAChC,cAAc,kBAAkB;AAChC,cAAc,eAAe;AAC7B,cAAc,qBAAqB;AACnC,cAAc,gBAAgB;AAC9B,cAAc,mBAAmB;AACjC,cAAc,kBAAkB;AAChC,cAAc,oBAAoB;AAClC,cAAc,QAAQ;AACtB,cAAc,aAAa;AAC3B,cAAc,QAAQ;AACtB,SACEA,qBAAqB,EACrBC,4BAA4B,EAC5BC,kBAAkB,EAElBC,0BAA0B,EAC1BC,gBAAgB,EAChBC,qBAAqB,EACrBC,oBAAoB,EACpBC,iBAAiB,EACjBC,kBAAkB,EAClBC,iBAAiB,EACjBC,YAAY,EACZC,2BAA2B,EAC3BC,kBAAkB,QAmBb,WAAW;AAClB,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,iBAAiB;AAC/B,cAAc,SAAS;AACvB,cAAc,WAAW;AACzB,cAAc,UAAU;AACxB,cAAc,gBAAgB;AAC9B,cAAc,SAAS;AACvB,cAAc,aAAa;AAC3B,cAAc,UAAU;AACxB,cAAc,WAAW;AAEzB,SAASC,kBAAkB,EAAEC,qBAAqB,QAAQ,eAAe;AACzE,SAASC,cAAc,EAAEC,mBAAmB,QAAQ,wBAAwB;AAC5E,SACEC,iBAAiB,EACjBC,sBAAsB,QAEjB,2BAA2B;AAClC,SAASC,iBAAiB,QAAuC,2BAA2B;AAC5F,SAASC,SAAS,QAAQ,mBAAmB;AAC7C,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SAASC,IAAI,QAAQ,QAAQ","ignoreList":[]}
@@ -1,14 +1,26 @@
1
1
  "use strict";
2
2
 
3
- import { forwardRef, useMemo } from 'react';
4
- import { View } from 'react-native';
3
+ import { forwardRef, useEffect, useMemo } from 'react';
4
+ import { I18nManager } from 'react-native';
5
+ import Animated, { Easing, useAnimatedStyle, useReducedMotion, useSharedValue, withRepeat, withTiming } from 'react-native-reanimated';
6
+ import { composeEventHandlers } from '@cdx-ui/utils';
5
7
  import { Slot } from '../slot';
6
8
  import { dataAttributes } from '../utils/dataAttributes';
7
9
  import { useProgressContext } from './context';
8
10
  import { jsx as _jsx } from "react/jsx-runtime";
11
+ /**
12
+ * HeroUI indeterminate fill: a 2/5 segment translates from -100% to 350% of its
13
+ * own width over 1.5s (`progress-bar.css`). It enters off the start edge and
14
+ * exits off the end edge; the ease holds the slow parts of that travel off-screen.
15
+ */
16
+ const INDETERMINATE_WIDTH = '40%';
17
+ const INDETERMINATE_DURATION_MS = 1500;
18
+ const INDETERMINATE_FROM = -1;
19
+ const INDETERMINATE_TO = 3.5;
9
20
  export const ProgressBarIndicator = /*#__PURE__*/forwardRef(({
10
21
  asChild,
11
22
  style,
23
+ onLayout,
12
24
  ...rest
13
25
  }, ref) => {
14
26
  const {
@@ -17,7 +29,46 @@ export const ProgressBarIndicator = /*#__PURE__*/forwardRef(({
17
29
  max,
18
30
  value
19
31
  } = useProgressContext();
20
- const filledStyle = useMemo(() => {
32
+ const isIndeterminate = state === 'indeterminate';
33
+ const reducedMotion = useReducedMotion();
34
+ const travel = useSharedValue(0);
35
+ const segmentWidth = useSharedValue(0);
36
+ const direction = I18nManager.isRTL ? -1 : 1;
37
+ useEffect(() => {
38
+ if (!isIndeterminate) {
39
+ travel.set(0);
40
+ return;
41
+ }
42
+ if (reducedMotion) {
43
+ travel.set(0);
44
+ return;
45
+ }
46
+ travel.set(0);
47
+ travel.set(withRepeat(withTiming(1, {
48
+ duration: INDETERMINATE_DURATION_MS,
49
+ easing: Easing.bezier(0.65, 0, 0.35, 1)
50
+ }), -1, false));
51
+ }, [isIndeterminate, reducedMotion, travel]);
52
+ const handleLayout = event => {
53
+ if (!isIndeterminate) return;
54
+ const next = event.nativeEvent.layout.width;
55
+ if (segmentWidth.get() !== next) {
56
+ segmentWidth.set(next);
57
+ }
58
+ };
59
+ const indeterminateStyle = useAnimatedStyle(() => {
60
+ const width = segmentWidth.get();
61
+ const span = INDETERMINATE_TO - INDETERMINATE_FROM;
62
+ const offset = reducedMotion ? 0 : width * (INDETERMINATE_FROM + travel.get() * span);
63
+ return {
64
+ width: INDETERMINATE_WIDTH,
65
+ height: '100%',
66
+ transform: [{
67
+ translateX: direction * offset
68
+ }]
69
+ };
70
+ }, [segmentWidth, travel, direction, reducedMotion]);
71
+ const determinateStyle = useMemo(() => {
21
72
  const pct = `${String(percent)}%`;
22
73
  return {
23
74
  width: pct,
@@ -29,12 +80,13 @@ export const ProgressBarIndicator = /*#__PURE__*/forwardRef(({
29
80
  value: value === null ? undefined : String(value),
30
81
  max: String(max)
31
82
  });
32
- const Comp = asChild ? Slot : View;
83
+ const Comp = asChild ? Slot : Animated.View;
33
84
  return /*#__PURE__*/_jsx(Comp, {
34
85
  ref: ref,
35
86
  ...rest,
36
87
  ...dataAttrs,
37
- style: [filledStyle, style]
88
+ onLayout: composeEventHandlers(onLayout, handleLayout),
89
+ style: [isIndeterminate ? indeterminateStyle : determinateStyle, style]
38
90
  });
39
91
  });
40
92
  ProgressBarIndicator.displayName = 'ProgressBarIndicator';
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","useMemo","View","Slot","dataAttributes","useProgressContext","jsx","_jsx","ProgressBarIndicator","asChild","style","rest","ref","percent","state","max","value","filledStyle","pct","String","width","height","dataAttrs","undefined","Comp","displayName"],"sourceRoot":"../../../src","sources":["progress-bar/ProgressBarIndicator.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAC3C,SAASC,IAAI,QAAwC,cAAc;AACnE,SAASC,IAAI,QAAQ,SAAS;AAC9B,SAASC,cAAc,QAAQ,yBAAyB;AACxD,SAASC,kBAAkB,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQ/C,OAAO,MAAMC,oBAAoB,gBAAGR,UAAU,CAC5C,CAAC;EAAES,OAAO;EAAEC,KAAK;EAAE,GAAGC;AAAK,CAAC,EAAEC,GAAG,KAAK;EACpC,MAAM;IAAEC,OAAO;IAAEC,KAAK;IAAEC,GAAG;IAAEC;EAAM,CAAC,GAAGX,kBAAkB,CAAC,CAAC;EAE3D,MAAMY,WAAW,GAAGhB,OAAO,CAAC,MAAiB;IAC3C,MAAMiB,GAAG,GAAG,GAAGC,MAAM,CAACN,OAAO,CAAC,GAAoB;IAClD,OAAO;MAAEO,KAAK,EAAEF,GAAG;MAAEG,MAAM,EAAE;IAAO,CAAC;EACvC,CAAC,EAAE,CAACR,OAAO,CAAC,CAAC;EAEb,MAAMS,SAAS,GAAGlB,cAAc,CAAC;IAC/BU,KAAK;IACLE,KAAK,EAAEA,KAAK,KAAK,IAAI,GAAGO,SAAS,GAAGJ,MAAM,CAACH,KAAK,CAAC;IACjDD,GAAG,EAAEI,MAAM,CAACJ,GAAG;EACjB,CAAC,CAAC;EAEF,MAAMS,IAAI,GAAGf,OAAO,GAAGN,IAAI,GAAGD,IAAI;EAElC,oBAAOK,IAAA,CAACiB,IAAI;IAACZ,GAAG,EAAEA,GAAI;IAAA,GAAKD,IAAI;IAAA,GAAMW,SAAS;IAAEZ,KAAK,EAAE,CAACO,WAAW,EAAEP,KAAK;EAAE,CAAE,CAAC;AACjF,CACF,CAAC;AAEDF,oBAAoB,CAACiB,WAAW,GAAG,sBAAsB","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","useEffect","useMemo","I18nManager","Animated","Easing","useAnimatedStyle","useReducedMotion","useSharedValue","withRepeat","withTiming","composeEventHandlers","Slot","dataAttributes","useProgressContext","jsx","_jsx","INDETERMINATE_WIDTH","INDETERMINATE_DURATION_MS","INDETERMINATE_FROM","INDETERMINATE_TO","ProgressBarIndicator","asChild","style","onLayout","rest","ref","percent","state","max","value","isIndeterminate","reducedMotion","travel","segmentWidth","direction","isRTL","set","duration","easing","bezier","handleLayout","event","next","nativeEvent","layout","width","get","indeterminateStyle","span","offset","height","transform","translateX","determinateStyle","pct","String","dataAttrs","undefined","Comp","View","displayName"],"sourceRoot":"../../../src","sources":["progress-bar/ProgressBarIndicator.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,22 +1,11 @@
1
1
  "use strict";
2
2
 
3
- import { Children, forwardRef, isValidElement, useLayoutEffect } from 'react';
3
+ import { forwardRef, useLayoutEffect } from 'react';
4
4
  import { View } from 'react-native';
5
+ import { getTextContent } from '@cdx-ui/utils';
5
6
  import { Slot } from '../slot';
6
7
  import { useSelectContext } from './context';
7
8
  import { jsx as _jsx } from "react/jsx-runtime";
8
- function getTextContent(node) {
9
- return Children.toArray(node).map(child => {
10
- if (typeof child === 'string' || typeof child === 'number') {
11
- return String(child);
12
- }
13
- if (/*#__PURE__*/isValidElement(child)) {
14
- return getTextContent(child.props.children);
15
- }
16
- return '';
17
- }).join('');
18
- }
19
-
20
9
  /**
21
10
  * Renders only when no option matches. Its text is also what the search live region
22
11
  * announces in that case.
@@ -1 +1 @@
1
- {"version":3,"names":["Children","forwardRef","isValidElement","useLayoutEffect","View","Slot","useSelectContext","jsx","_jsx","getTextContent","node","toArray","map","child","String","props","children","join","SelectEmpty","asChild","ref","visibleItems","setEmptyText","text","undefined","length","Comp","displayName"],"sourceRoot":"../../../src","sources":["select/SelectEmpty.tsx"],"mappings":";;AAAA,SACEA,QAAQ,EACRC,UAAU,EACVC,cAAc,EACdC,eAAe,QAGV,OAAO;AACd,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,IAAI,QAAQ,SAAS;AAC9B,SAASC,gBAAgB,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQ7C,SAASC,cAAcA,CAACC,IAAe,EAAU;EAC/C,OAAOV,QAAQ,CAACW,OAAO,CAACD,IAAI,CAAC,CAC1BE,GAAG,CAAEC,KAAK,IAAK;IACd,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC1D,OAAOC,MAAM,CAACD,KAAK,CAAC;IACtB;IACA,iBAAIX,cAAc,CAA2BW,KAAK,CAAC,EAAE;MACnD,OAAOJ,cAAc,CAACI,KAAK,CAACE,KAAK,CAACC,QAAQ,CAAC;IAC7C;IACA,OAAO,EAAE;EACX,CAAC,CAAC,CACDC,IAAI,CAAC,EAAE,CAAC;AACb;;AAEA;AACA;AACA;AACA;AACA,OAAO,MAAMC,WAAW,gBAAGjB,UAAU,CACnC,CAAC;EAAEkB,OAAO;EAAEH,QAAQ;EAAE,GAAGD;AAAM,CAAC,EAAEK,GAAG,KAAK;EACxC,MAAM;IAAEC,YAAY;IAAEC;EAAa,CAAC,GAAGhB,gBAAgB,CAAC,CAAC;EACzD,MAAMiB,IAAI,GAAGd,cAAc,CAACO,QAAQ,CAAC;EAErCb,eAAe,CAAC,MAAM;IACpBmB,YAAY,CAACC,IAAI,IAAIC,SAAS,CAAC;IAC/B,OAAO,MAAMF,YAAY,CAACE,SAAS,CAAC;EACtC,CAAC,EAAE,CAACF,YAAY,EAAEC,IAAI,CAAC,CAAC;EAExB,IAAIF,YAAY,CAACI,MAAM,GAAG,CAAC,EAAE;IAC3B,OAAO,IAAI;EACb;EAEA,MAAMC,IAAI,GAAGP,OAAO,GAAGd,IAAI,GAAGD,IAAI;EAElC,oBACEI,IAAA,CAACkB,IAAI;IAACN,GAAG,EAAEA,GAAI;IAAA,GAAKL,KAAK;IAAAC,QAAA,EACtBA;EAAQ,CACL,CAAC;AAEX,CACF,CAAC;AAEDE,WAAW,CAACS,WAAW,GAAG,aAAa","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","useLayoutEffect","View","getTextContent","Slot","useSelectContext","jsx","_jsx","SelectEmpty","asChild","children","props","ref","visibleItems","setEmptyText","text","undefined","length","Comp","displayName"],"sourceRoot":"../../../src","sources":["select/SelectEmpty.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,eAAe,QAA2B,OAAO;AACtE,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,cAAc,QAAQ,eAAe;AAC9C,SAASC,IAAI,QAAQ,SAAS;AAC9B,SAASC,gBAAgB,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQ7C;AACA;AACA;AACA;AACA,OAAO,MAAMC,WAAW,gBAAGR,UAAU,CACnC,CAAC;EAAES,OAAO;EAAEC,QAAQ;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACxC,MAAM;IAAEC,YAAY;IAAEC;EAAa,CAAC,GAAGT,gBAAgB,CAAC,CAAC;EACzD,MAAMU,IAAI,GAAGZ,cAAc,CAACO,QAAQ,CAAC;EAErCT,eAAe,CAAC,MAAM;IACpBa,YAAY,CAACC,IAAI,IAAIC,SAAS,CAAC;IAC/B,OAAO,MAAMF,YAAY,CAACE,SAAS,CAAC;EACtC,CAAC,EAAE,CAACF,YAAY,EAAEC,IAAI,CAAC,CAAC;EAExB,IAAIF,YAAY,CAACI,MAAM,GAAG,CAAC,EAAE;IAC3B,OAAO,IAAI;EACb;EAEA,MAAMC,IAAI,GAAGT,OAAO,GAAGL,IAAI,GAAGF,IAAI;EAElC,oBACEK,IAAA,CAACW,IAAI;IAACN,GAAG,EAAEA,GAAI;IAAA,GAAKD,KAAK;IAAAD,QAAA,EACtBA;EAAQ,CACL,CAAC;AAEX,CACF,CAAC;AAEDF,WAAW,CAACW,WAAW,GAAG,aAAa","ignoreList":[]}
@@ -36,6 +36,11 @@ export function useWebSliderDrag({
36
36
  const lastRatioRef = useRef(0);
37
37
  const dragContextRef = useRef(null);
38
38
  const cleanupRef = useRef(null);
39
+ // Window listeners outlive their render; stale setters would compare against the drag-start value.
40
+ const setValueFromRatioRef = useRef(setValueFromRatio);
41
+ const setIsDraggingRef = useRef(setIsDragging);
42
+ setValueFromRatioRef.current = setValueFromRatio;
43
+ setIsDraggingRef.current = setIsDragging;
39
44
  useEffect(() => {
40
45
  return () => {
41
46
  cleanupRef.current?.();
@@ -48,9 +53,9 @@ export function useWebSliderDrag({
48
53
  }
49
54
  draggingRef.current = false;
50
55
  dragContextRef.current = null;
51
- setValueFromRatio(lastRatioRef.current, true);
52
- setIsDragging(false);
53
- }, [setIsDragging, setValueFromRatio]);
56
+ setValueFromRatioRef.current(lastRatioRef.current, true);
57
+ setIsDraggingRef.current(false);
58
+ }, []);
54
59
  const startDrag = useCallback((pageX, pageY, anchorRatio, trackLayoutOverride) => {
55
60
  if (isDisabled || Platform.OS !== 'web' || typeof window === 'undefined') {
56
61
  return;
@@ -87,7 +92,7 @@ export function useWebSliderDrag({
87
92
  const deltaAlongTrack = orientation === 'horizontal' ? delta : -delta;
88
93
  const nextRatio = clamp(dragContextRef.current.startRatio + deltaAlongTrack / dragContextRef.current.travel, 0, 1);
89
94
  lastRatioRef.current = nextRatio;
90
- setValueFromRatio(nextRatio);
95
+ setValueFromRatioRef.current(nextRatio);
91
96
  };
92
97
  const onUp = () => {
93
98
  cleanupRef.current = null;
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useRef","Platform","clamp","getThumbTravel","pointerCoordToRatio","pointerCoordToVerticalRatio","getPointerCoords","nativeEvent","OS","clientX","clientY","x","y","pageX","pageY","getRatioFromPagePoint","trackLayout","orientation","thumbSize","width","height","useWebSliderDrag","isDisabled","setIsDragging","setValueFromRatio","draggingRef","lastRatioRef","dragContextRef","cleanupRef","current","endDrag","startDrag","anchorRatio","trackLayoutOverride","window","layout","trackSize","travel","startPointer","startRatio","onMove","event","preventDefault","pointer","delta","deltaAlongTrack","nextRatio","onUp","removeEventListener","addEventListener"],"sourceRoot":"../../../src","sources":["slider/useSliderPointer.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useRef","Platform","clamp","getThumbTravel","pointerCoordToRatio","pointerCoordToVerticalRatio","getPointerCoords","nativeEvent","OS","clientX","clientY","x","y","pageX","pageY","getRatioFromPagePoint","trackLayout","orientation","thumbSize","width","height","useWebSliderDrag","isDisabled","setIsDragging","setValueFromRatio","draggingRef","lastRatioRef","dragContextRef","cleanupRef","setValueFromRatioRef","setIsDraggingRef","current","endDrag","startDrag","anchorRatio","trackLayoutOverride","window","layout","trackSize","travel","startPointer","startRatio","onMove","event","preventDefault","pointer","delta","deltaAlongTrack","nextRatio","onUp","removeEventListener","addEventListener"],"sourceRoot":"../../../src","sources":["slider/useSliderPointer.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+
3
+ import { cloneElement, forwardRef, isValidElement, useCallback, useMemo } from 'react';
4
+ import { Platform, View } from 'react-native';
5
+ import { flattenChildren, useControllableState } from '@cdx-ui/utils';
6
+ import { Slot } from '../slot';
7
+ import { dataAttributes, mergeDataAttributes } from '../utils/dataAttributes';
8
+ import { StepperIndexProvider, StepperProvider } from './context';
9
+ import { jsx as _jsx } from "react/jsx-runtime";
10
+ function toAnnouncedPercent(progress) {
11
+ return Math.min(99, Math.max(1, Math.round(progress)));
12
+ }
13
+ function defaultGetStepAccessibilityText({
14
+ isCurrent,
15
+ isComplete,
16
+ hasProgress,
17
+ progress
18
+ }) {
19
+ const parts = [];
20
+ if (isCurrent) {
21
+ parts.push('current step');
22
+ }
23
+ if (isComplete) {
24
+ parts.push('completed');
25
+ } else if (hasProgress) {
26
+ parts.push(`${String(toAnnouncedPercent(progress))}% complete`);
27
+ } else if (!isCurrent) {
28
+ parts.push('incomplete');
29
+ }
30
+ return parts.join(', ');
31
+ }
32
+
33
+ /**
34
+ * Every direct element child is a step; fragments are unwrapped and `false`/`null` are
35
+ * dropped, so conditional steps renumber on the same render.
36
+ */
37
+ function indexSteps(children) {
38
+ let count = 0;
39
+ const steps = flattenChildren(children).map(child => {
40
+ if (! /*#__PURE__*/isValidElement(child)) {
41
+ return child;
42
+ }
43
+ const index = count;
44
+ count += 1;
45
+ return /*#__PURE__*/_jsx(StepperIndexProvider, {
46
+ value: index,
47
+ children: child
48
+ }, child.key);
49
+ });
50
+ return {
51
+ steps,
52
+ count
53
+ };
54
+ }
55
+ export const StepperRoot = /*#__PURE__*/forwardRef(({
56
+ asChild,
57
+ children,
58
+ currentStep: currentStepProp,
59
+ defaultStep = 0,
60
+ onStepChange,
61
+ isLinear = true,
62
+ orientation = 'vertical',
63
+ labelPlacement = 'end',
64
+ getStepAccessibilityText = defaultGetStepAccessibilityText,
65
+ accessibilityLabel = 'Progress',
66
+ role = 'list',
67
+ ...props
68
+ }, ref) => {
69
+ const [currentStepValue, setCurrentStepValue] = useControllableState({
70
+ prop: currentStepProp,
71
+ defaultProp: defaultStep,
72
+ onChange: onStepChange
73
+ });
74
+ const currentStep = currentStepValue ?? defaultStep;
75
+ const setCurrentStep = useCallback(index => {
76
+ setCurrentStepValue(index);
77
+ }, [setCurrentStepValue]);
78
+ const asChildElement = asChild && /*#__PURE__*/isValidElement(children) ? children : null;
79
+ const {
80
+ steps,
81
+ count
82
+ } = indexSteps(asChildElement ? asChildElement.props.children : children);
83
+ const contextValue = useMemo(() => ({
84
+ currentStep,
85
+ count,
86
+ orientation,
87
+ labelPlacement,
88
+ isLinear,
89
+ hasStepChangeHandler: onStepChange !== undefined,
90
+ setCurrentStep,
91
+ getStepAccessibilityText
92
+ }), [currentStep, count, orientation, labelPlacement, isLinear, onStepChange, setCurrentStep, getStepAccessibilityText]);
93
+ const a11yProps = Platform.OS === 'web' ? {
94
+ 'aria-label': accessibilityLabel
95
+ } : {
96
+ accessibilityLabel
97
+ };
98
+ const Comp = asChild ? Slot : View;
99
+ return /*#__PURE__*/_jsx(StepperProvider, {
100
+ value: contextValue,
101
+ children: /*#__PURE__*/_jsx(Comp, {
102
+ ref: ref,
103
+ ...props,
104
+ role: role,
105
+ ...a11yProps,
106
+ ...mergeDataAttributes(props, dataAttributes({
107
+ orientation,
108
+ labelPlacement
109
+ })),
110
+ children: asChildElement ? /*#__PURE__*/cloneElement(asChildElement, undefined, steps) : steps
111
+ })
112
+ });
113
+ });
114
+ StepperRoot.displayName = 'StepperRoot';
115
+ //# sourceMappingURL=StepperRoot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["cloneElement","forwardRef","isValidElement","useCallback","useMemo","Platform","View","flattenChildren","useControllableState","Slot","dataAttributes","mergeDataAttributes","StepperIndexProvider","StepperProvider","jsx","_jsx","toAnnouncedPercent","progress","Math","min","max","round","defaultGetStepAccessibilityText","isCurrent","isComplete","hasProgress","parts","push","String","join","indexSteps","children","count","steps","map","child","index","value","key","StepperRoot","asChild","currentStep","currentStepProp","defaultStep","onStepChange","isLinear","orientation","labelPlacement","getStepAccessibilityText","accessibilityLabel","role","props","ref","currentStepValue","setCurrentStepValue","prop","defaultProp","onChange","setCurrentStep","asChildElement","contextValue","hasStepChangeHandler","undefined","a11yProps","OS","Comp","displayName"],"sourceRoot":"../../../src","sources":["stepper/StepperRoot.tsx"],"mappings":"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","ignoreList":[]}