@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,104 @@
1
+ import type { ViewProps } from 'react-native';
2
+
3
+ export type StepperOrientation = 'horizontal' | 'vertical';
4
+
5
+ export type StepperLabelPlacement = 'end' | 'bottom';
6
+
7
+ export interface StepperStepState {
8
+ /** Zero-based position among the steps. */
9
+ readonly index: number;
10
+ /** Number of steps rendered. */
11
+ readonly count: number;
12
+ readonly isCurrent: boolean;
13
+ /** Resolved completion: the explicit `isComplete`, or `index < currentStep`. */
14
+ readonly isComplete: boolean;
15
+ /** Clamped to 0–100. Non-finite values are 0. */
16
+ readonly progress: number;
17
+ /** True when the partial ring is drawn: `0 < progress` and not complete. */
18
+ readonly hasProgress: boolean;
19
+ readonly isLast: boolean;
20
+ /** True when the step renders as a button. */
21
+ readonly isClickable: boolean;
22
+ readonly isDisabled: boolean;
23
+ readonly orientation: StepperOrientation;
24
+ readonly labelPlacement: StepperLabelPlacement;
25
+ }
26
+
27
+ export interface InterfaceStepperProps extends ViewProps {
28
+ /**
29
+ * Controlled, zero-based current step. A value outside `0…count-1` means no step is
30
+ * current; a value `>= count` makes every step complete by default.
31
+ */
32
+ readonly currentStep?: number;
33
+ /**
34
+ * Uncontrolled starting step. Ignored when `currentStep` is set.
35
+ * @default 0
36
+ */
37
+ readonly defaultStep?: number;
38
+ /** Called with the pressed step's index. Setting it makes eligible steps clickable. */
39
+ readonly onStepChange?: (index: number) => void;
40
+ /**
41
+ * When `true`, only complete steps are clickable. When `false`, every non-current,
42
+ * non-disabled step is.
43
+ * @default true
44
+ */
45
+ readonly isLinear?: boolean;
46
+ /**
47
+ * `'horizontal'` lays the steps out in a row. `labelPlacement` chooses where each label sits.
48
+ * @default 'vertical'
49
+ */
50
+ readonly orientation?: StepperOrientation;
51
+ /**
52
+ * Horizontal only; ignored when `orientation` is `'vertical'`. `'end'` puts each label after
53
+ * its indicator, sizes steps to their labels and stretches the separators between them.
54
+ * `'bottom'` gives every step an equal column with the indicator and label centered.
55
+ * @default 'end'
56
+ */
57
+ readonly labelPlacement?: StepperLabelPlacement;
58
+ /**
59
+ * Returns the state phrase appended to each step's title for assistive technology,
60
+ * replacing the English default (for example `"current step, 40% complete"`).
61
+ */
62
+ readonly getStepAccessibilityText?: (state: StepperStepState) => string;
63
+ /** @default false */
64
+ readonly asChild?: boolean;
65
+ }
66
+
67
+ export type IStepperProps = InterfaceStepperProps;
68
+
69
+ export interface InterfaceStepperStepProps extends ViewProps {
70
+ /**
71
+ * Whether the step is complete. An explicit value wins in both directions.
72
+ * @default index < currentStep
73
+ */
74
+ readonly isComplete?: boolean;
75
+ /**
76
+ * Partial progress, 0–100. Values outside the range are clamped; non-finite values are `0`.
77
+ * @default 0
78
+ */
79
+ readonly progress?: number;
80
+ /**
81
+ * Only affects clickability. A disabled step still shows its state.
82
+ * @default false
83
+ */
84
+ readonly isDisabled?: boolean;
85
+ /** @default false */
86
+ readonly asChild?: boolean;
87
+ }
88
+
89
+ export type IStepperStepProps = InterfaceStepperStepProps;
90
+
91
+ export type IStepperStepTriggerProps = ViewProps;
92
+
93
+ export interface StepperContextValue {
94
+ /** Resolved current step (controlled or uncontrolled). */
95
+ readonly currentStep: number;
96
+ readonly count: number;
97
+ readonly orientation: StepperOrientation;
98
+ readonly labelPlacement: StepperLabelPlacement;
99
+ readonly isLinear: boolean;
100
+ /** True when the consumer passed `onStepChange`. */
101
+ readonly hasStepChangeHandler: boolean;
102
+ readonly setCurrentStep: (index: number) => void;
103
+ readonly getStepAccessibilityText: (state: StepperStepState) => string;
104
+ }