@plasmicpkgs/react-aria 0.0.28 → 0.0.30

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 (197) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contexts.d.ts +4 -0
  3. package/dist/interaction-variant-utils.d.ts +4 -0
  4. package/dist/react-aria.esm.js +2494 -1120
  5. package/dist/react-aria.esm.js.map +1 -1
  6. package/dist/react-aria.js +2491 -1117
  7. package/dist/react-aria.js.map +1 -1
  8. package/dist/registerButton.d.ts +1 -0
  9. package/dist/registerCheckbox.d.ts +8 -2
  10. package/dist/registerCheckboxGroup.d.ts +2 -2
  11. package/dist/registerDescription.d.ts +2 -1
  12. package/dist/registerDialogTrigger.d.ts +1 -2
  13. package/dist/registerHeader.d.ts +1 -1
  14. package/dist/registerInput.d.ts +1 -0
  15. package/dist/registerLabel.d.ts +1 -0
  16. package/dist/registerListBox.d.ts +3 -6
  17. package/dist/registerListBoxItem.d.ts +3 -1
  18. package/dist/registerModal.d.ts +3 -1
  19. package/dist/registerPopover.d.ts +3 -0
  20. package/dist/registerRadio.d.ts +5 -2
  21. package/dist/registerRadioGroup.d.ts +3 -3
  22. package/dist/registerSection.d.ts +1 -1
  23. package/dist/registerSelect.d.ts +5 -2
  24. package/dist/registerSlider.d.ts +14 -0
  25. package/dist/registerSliderOutput.d.ts +5 -0
  26. package/dist/registerSliderThumb.d.ts +13 -0
  27. package/dist/registerSliderTrack.d.ts +14 -0
  28. package/dist/registerText.d.ts +2 -1
  29. package/dist/registerTextField.d.ts +1 -0
  30. package/dist/utils.d.ts +9 -2
  31. package/package.json +2 -2
  32. package/skinny/ErrorBoundary-c6b111d3.esm.js +20 -0
  33. package/skinny/ErrorBoundary-c6b111d3.esm.js.map +1 -0
  34. package/skinny/ErrorBoundary-e9b86248.cjs.js +22 -0
  35. package/skinny/ErrorBoundary-e9b86248.cjs.js.map +1 -0
  36. package/skinny/contexts-9475faad.esm.js +16 -0
  37. package/skinny/contexts-9475faad.esm.js.map +1 -0
  38. package/skinny/{contexts-3e42cdf9.cjs.js → contexts-b21f6b12.cjs.js} +9 -1
  39. package/skinny/contexts-b21f6b12.cjs.js.map +1 -0
  40. package/skinny/contexts.d.ts +4 -0
  41. package/skinny/{interaction-variant-utils-0f05190f.cjs.js → interaction-variant-utils-244b74fb.cjs.js} +5 -1
  42. package/skinny/interaction-variant-utils-244b74fb.cjs.js.map +1 -0
  43. package/skinny/{interaction-variant-utils-909267e5.esm.js → interaction-variant-utils-c44a9d56.esm.js} +5 -1
  44. package/skinny/interaction-variant-utils-c44a9d56.esm.js.map +1 -0
  45. package/skinny/interaction-variant-utils.d.ts +4 -0
  46. package/skinny/registerButton.cjs.js +20 -5
  47. package/skinny/registerButton.cjs.js.map +1 -1
  48. package/skinny/registerButton.d.ts +1 -0
  49. package/skinny/registerButton.esm.js +20 -6
  50. package/skinny/registerButton.esm.js.map +1 -1
  51. package/skinny/registerCheckbox.cjs.js +76 -7
  52. package/skinny/registerCheckbox.cjs.js.map +1 -1
  53. package/skinny/registerCheckbox.d.ts +8 -2
  54. package/skinny/registerCheckbox.esm.js +76 -8
  55. package/skinny/registerCheckbox.esm.js.map +1 -1
  56. package/skinny/registerCheckboxGroup.cjs.js +90 -14
  57. package/skinny/registerCheckboxGroup.cjs.js.map +1 -1
  58. package/skinny/registerCheckboxGroup.d.ts +2 -2
  59. package/skinny/registerCheckboxGroup.esm.js +89 -17
  60. package/skinny/registerCheckboxGroup.esm.js.map +1 -1
  61. package/skinny/registerComboBox.cjs.js +113 -8
  62. package/skinny/registerComboBox.cjs.js.map +1 -1
  63. package/skinny/registerComboBox.esm.js +109 -4
  64. package/skinny/registerComboBox.esm.js.map +1 -1
  65. package/skinny/registerDescription.cjs.js +10 -3
  66. package/skinny/registerDescription.cjs.js.map +1 -1
  67. package/skinny/registerDescription.d.ts +2 -1
  68. package/skinny/registerDescription.esm.js +10 -4
  69. package/skinny/registerDescription.esm.js.map +1 -1
  70. package/skinny/registerDialogTrigger.cjs.js +25 -4
  71. package/skinny/registerDialogTrigger.cjs.js.map +1 -1
  72. package/skinny/registerDialogTrigger.d.ts +1 -2
  73. package/skinny/registerDialogTrigger.esm.js +25 -4
  74. package/skinny/registerDialogTrigger.esm.js.map +1 -1
  75. package/skinny/registerFieldError.cjs.js +21 -11
  76. package/skinny/registerFieldError.cjs.js.map +1 -1
  77. package/skinny/registerFieldError.esm.js +21 -11
  78. package/skinny/registerFieldError.esm.js.map +1 -1
  79. package/skinny/registerForm.cjs.js +1 -1
  80. package/skinny/registerForm.esm.js +1 -1
  81. package/skinny/registerHeader.cjs.js +7 -3
  82. package/skinny/registerHeader.cjs.js.map +1 -1
  83. package/skinny/registerHeader.d.ts +1 -1
  84. package/skinny/registerHeader.esm.js +7 -3
  85. package/skinny/registerHeader.esm.js.map +1 -1
  86. package/skinny/registerInput.cjs.js +12 -3
  87. package/skinny/registerInput.cjs.js.map +1 -1
  88. package/skinny/registerInput.d.ts +1 -0
  89. package/skinny/registerInput.esm.js +12 -4
  90. package/skinny/registerInput.esm.js.map +1 -1
  91. package/skinny/registerLabel.cjs.js +7 -2
  92. package/skinny/registerLabel.cjs.js.map +1 -1
  93. package/skinny/registerLabel.d.ts +1 -0
  94. package/skinny/registerLabel.esm.js +7 -3
  95. package/skinny/registerLabel.esm.js.map +1 -1
  96. package/skinny/registerListBox-1effa43d.esm.js +299 -0
  97. package/skinny/registerListBox-1effa43d.esm.js.map +1 -0
  98. package/skinny/registerListBox-837b90d8.cjs.js +311 -0
  99. package/skinny/registerListBox-837b90d8.cjs.js.map +1 -0
  100. package/skinny/registerListBox.cjs.js +14 -108
  101. package/skinny/registerListBox.cjs.js.map +1 -1
  102. package/skinny/registerListBox.d.ts +3 -6
  103. package/skinny/registerListBox.esm.js +11 -106
  104. package/skinny/registerListBox.esm.js.map +1 -1
  105. package/skinny/registerListBoxItem.cjs.js +49 -5
  106. package/skinny/registerListBoxItem.cjs.js.map +1 -1
  107. package/skinny/registerListBoxItem.d.ts +3 -1
  108. package/skinny/registerListBoxItem.esm.js +49 -6
  109. package/skinny/registerListBoxItem.esm.js.map +1 -1
  110. package/skinny/registerModal.cjs.js +78 -9
  111. package/skinny/registerModal.cjs.js.map +1 -1
  112. package/skinny/registerModal.d.ts +3 -1
  113. package/skinny/registerModal.esm.js +78 -10
  114. package/skinny/registerModal.esm.js.map +1 -1
  115. package/skinny/registerPopover.cjs.js +56 -4
  116. package/skinny/registerPopover.cjs.js.map +1 -1
  117. package/skinny/registerPopover.d.ts +3 -0
  118. package/skinny/registerPopover.esm.js +55 -5
  119. package/skinny/registerPopover.esm.js.map +1 -1
  120. package/skinny/registerRadio.cjs.js +54 -24
  121. package/skinny/registerRadio.cjs.js.map +1 -1
  122. package/skinny/registerRadio.d.ts +5 -2
  123. package/skinny/registerRadio.esm.js +54 -25
  124. package/skinny/registerRadio.esm.js.map +1 -1
  125. package/skinny/registerRadioGroup.cjs.js +82 -17
  126. package/skinny/registerRadioGroup.cjs.js.map +1 -1
  127. package/skinny/registerRadioGroup.d.ts +3 -3
  128. package/skinny/registerRadioGroup.esm.js +81 -20
  129. package/skinny/registerRadioGroup.esm.js.map +1 -1
  130. package/skinny/registerSection.cjs.js +36 -12
  131. package/skinny/registerSection.cjs.js.map +1 -1
  132. package/skinny/registerSection.d.ts +1 -1
  133. package/skinny/registerSection.esm.js +36 -12
  134. package/skinny/registerSection.esm.js.map +1 -1
  135. package/skinny/registerSelect.cjs.js +133 -30
  136. package/skinny/registerSelect.cjs.js.map +1 -1
  137. package/skinny/registerSelect.d.ts +5 -2
  138. package/skinny/registerSelect.esm.js +130 -25
  139. package/skinny/registerSelect.esm.js.map +1 -1
  140. package/skinny/registerSlider-39783c91.esm.js +425 -0
  141. package/skinny/registerSlider-39783c91.esm.js.map +1 -0
  142. package/skinny/registerSlider-ac9f3b1e.cjs.js +437 -0
  143. package/skinny/registerSlider-ac9f3b1e.cjs.js.map +1 -0
  144. package/skinny/registerSlider.cjs.js +23 -0
  145. package/skinny/registerSlider.cjs.js.map +1 -0
  146. package/skinny/registerSlider.d.ts +14 -0
  147. package/skinny/registerSlider.esm.js +15 -0
  148. package/skinny/registerSlider.esm.js.map +1 -0
  149. package/skinny/registerSliderOutput.cjs.js +30 -0
  150. package/skinny/registerSliderOutput.cjs.js.map +1 -0
  151. package/skinny/registerSliderOutput.d.ts +5 -0
  152. package/skinny/registerSliderOutput.esm.js +26 -0
  153. package/skinny/registerSliderOutput.esm.js.map +1 -0
  154. package/skinny/registerSliderThumb.cjs.js +119 -0
  155. package/skinny/registerSliderThumb.cjs.js.map +1 -0
  156. package/skinny/registerSliderThumb.d.ts +13 -0
  157. package/skinny/registerSliderThumb.esm.js +111 -0
  158. package/skinny/registerSliderThumb.esm.js.map +1 -0
  159. package/skinny/registerSliderTrack.cjs.js +23 -0
  160. package/skinny/registerSliderTrack.cjs.js.map +1 -0
  161. package/skinny/registerSliderTrack.d.ts +14 -0
  162. package/skinny/registerSliderTrack.esm.js +15 -0
  163. package/skinny/registerSliderTrack.esm.js.map +1 -0
  164. package/skinny/registerSwitch.cjs.js +84 -4
  165. package/skinny/registerSwitch.cjs.js.map +1 -1
  166. package/skinny/registerSwitch.esm.js +84 -4
  167. package/skinny/registerSwitch.esm.js.map +1 -1
  168. package/skinny/registerText.cjs.js +11 -4
  169. package/skinny/registerText.cjs.js.map +1 -1
  170. package/skinny/registerText.d.ts +2 -1
  171. package/skinny/registerText.esm.js +11 -5
  172. package/skinny/registerText.esm.js.map +1 -1
  173. package/skinny/registerTextArea.cjs.js +2 -2
  174. package/skinny/registerTextArea.esm.js +2 -2
  175. package/skinny/registerTextField.cjs.js +48 -7
  176. package/skinny/registerTextField.cjs.js.map +1 -1
  177. package/skinny/registerTextField.d.ts +1 -0
  178. package/skinny/registerTextField.esm.js +51 -11
  179. package/skinny/registerTextField.esm.js.map +1 -1
  180. package/skinny/registerTooltip.cjs.js +1 -1
  181. package/skinny/registerTooltip.esm.js +1 -1
  182. package/skinny/{utils-cf2632c9.esm.js → utils-5051df41.esm.js} +3 -2
  183. package/skinny/utils-5051df41.esm.js.map +1 -0
  184. package/skinny/{utils-18b2465b.cjs.js → utils-745db876.cjs.js} +2 -1
  185. package/skinny/utils-745db876.cjs.js.map +1 -0
  186. package/skinny/utils.d.ts +9 -2
  187. package/skinny/contexts-3e42cdf9.cjs.js.map +0 -1
  188. package/skinny/contexts-49f6c298.esm.js +0 -12
  189. package/skinny/contexts-49f6c298.esm.js.map +0 -1
  190. package/skinny/interaction-variant-utils-0f05190f.cjs.js.map +0 -1
  191. package/skinny/interaction-variant-utils-909267e5.esm.js.map +0 -1
  192. package/skinny/option-utils-4f037568.esm.js +0 -153
  193. package/skinny/option-utils-4f037568.esm.js.map +0 -1
  194. package/skinny/option-utils-5e4e85bd.cjs.js +0 -162
  195. package/skinny/option-utils-5e4e85bd.cjs.js.map +0 -1
  196. package/skinny/utils-18b2465b.cjs.js.map +0 -1
  197. package/skinny/utils-cf2632c9.esm.js.map +0 -1
@@ -0,0 +1,425 @@
1
+ import React, { useMemo, useRef, useEffect } from 'react';
2
+ import { mergeProps } from 'react-aria';
3
+ import { SliderTrack, Slider } from 'react-aria-components';
4
+ import { g as getCommonInputProps } from './common-52c26d37.esm.js';
5
+ import { i as PlasmicSliderContext } from './contexts-9475faad.esm.js';
6
+ import { LABEL_COMPONENT_NAME } from './registerLabel.esm.js';
7
+ import { registerSliderOutput, SLIDER_OUTPUT_COMPONENT_NAME } from './registerSliderOutput.esm.js';
8
+ import { SLIDER_THUMB_COMPONENT_NAME, registerSliderThumb } from './registerSliderThumb.esm.js';
9
+ import flattenChildren from 'react-keyed-flatten-children';
10
+ import { E as ErrorBoundary } from './ErrorBoundary-c6b111d3.esm.js';
11
+ import { p as pickAriaComponentVariants } from './interaction-variant-utils-c44a9d56.esm.js';
12
+ import { a as makeComponentName, r as registerComponentHelper, m as makeChildComponentName } from './utils-5051df41.esm.js';
13
+
14
+ var __defProp$1 = Object.defineProperty;
15
+ var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
16
+ var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
17
+ var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
18
+ var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
19
+ var __spreadValues$1 = (a, b) => {
20
+ for (var prop in b || (b = {}))
21
+ if (__hasOwnProp$1.call(b, prop))
22
+ __defNormalProp$1(a, prop, b[prop]);
23
+ if (__getOwnPropSymbols$1)
24
+ for (var prop of __getOwnPropSymbols$1(b)) {
25
+ if (__propIsEnum$1.call(b, prop))
26
+ __defNormalProp$1(a, prop, b[prop]);
27
+ }
28
+ return a;
29
+ };
30
+ var __objRest$1 = (source, exclude) => {
31
+ var target = {};
32
+ for (var prop in source)
33
+ if (__hasOwnProp$1.call(source, prop) && exclude.indexOf(prop) < 0)
34
+ target[prop] = source[prop];
35
+ if (source != null && __getOwnPropSymbols$1)
36
+ for (var prop of __getOwnPropSymbols$1(source)) {
37
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$1.call(source, prop))
38
+ target[prop] = source[prop];
39
+ }
40
+ return target;
41
+ };
42
+ const SLIDER_TRACK_INTERACTION_VARIANTS = ["hovered"];
43
+ const { interactionVariants, withObservedValues } = pickAriaComponentVariants(
44
+ SLIDER_TRACK_INTERACTION_VARIANTS
45
+ );
46
+ function findMinMaxIndices(values) {
47
+ if (typeof values === "number" || (values == null ? void 0 : values.length) === 0 || !Array.isArray(values)) {
48
+ return { minIndex: 0, maxIndex: 0 };
49
+ }
50
+ let minIndex = 0;
51
+ let maxIndex = 0;
52
+ for (let i = 1; i < values.length; i++) {
53
+ if (values[i] < values[minIndex]) {
54
+ minIndex = i;
55
+ }
56
+ if (values[i] > values[maxIndex]) {
57
+ maxIndex = i;
58
+ }
59
+ }
60
+ return { minIndex, maxIndex };
61
+ }
62
+ function BaseSliderTrack(props) {
63
+ const context = React.useContext(PlasmicSliderContext);
64
+ const mergedProps = mergeProps(context, props);
65
+ const _a = mergedProps, {
66
+ children,
67
+ progressBar,
68
+ updateInteractionVariant,
69
+ isMultiValue
70
+ } = _a, rest = __objRest$1(_a, [
71
+ "children",
72
+ "progressBar",
73
+ "updateInteractionVariant",
74
+ "isMultiValue"
75
+ ]);
76
+ const { minIndex, maxIndex } = useMemo(
77
+ () => findMinMaxIndices(mergedProps.value),
78
+ [mergedProps.value]
79
+ );
80
+ const thumbs = useMemo(() => {
81
+ const rawThumbs = flattenChildren(children);
82
+ if (mergedProps.value === void 0) {
83
+ return [];
84
+ }
85
+ if (!Array.isArray(mergedProps == null ? void 0 : mergedProps.value)) {
86
+ return rawThumbs;
87
+ }
88
+ const difference = mergedProps.value.length - rawThumbs.length;
89
+ if (!difference) {
90
+ return rawThumbs;
91
+ }
92
+ if (difference < 0) {
93
+ return rawThumbs.slice(0, mergedProps.value.length);
94
+ }
95
+ const lastThumb = rawThumbs[rawThumbs.length - 1];
96
+ return rawThumbs.concat(new Array(difference).fill(lastThumb));
97
+ }, [children, mergedProps.value]);
98
+ const track = /* @__PURE__ */ React.createElement(SliderTrack, __spreadValues$1({ style: { position: "relative" } }, rest), ({ state, isHovered }) => /* @__PURE__ */ React.createElement(React.Fragment, null, withObservedValues(
99
+ /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
100
+ "div",
101
+ {
102
+ style: {
103
+ width: `${(!isMultiValue ? state.getThumbPercent(minIndex) : state.getThumbPercent(maxIndex) - state.getThumbPercent(minIndex)) * 100}%`,
104
+ height: "100%",
105
+ position: "absolute",
106
+ top: 0,
107
+ left: !isMultiValue ? 0 : state.getThumbPercent(minIndex) * 100 + "%"
108
+ }
109
+ },
110
+ progressBar
111
+ ), thumbs.map(
112
+ (thumb, i) => React.isValidElement(thumb) && React.cloneElement(thumb, {
113
+ // sets the index of the thumb, so that each thumb reflects the correct value
114
+ index: i
115
+ })
116
+ )),
117
+ {
118
+ hovered: isHovered
119
+ },
120
+ updateInteractionVariant
121
+ )));
122
+ return /* @__PURE__ */ React.createElement(
123
+ ErrorBoundary,
124
+ {
125
+ fallback: /* @__PURE__ */ React.createElement(Slider, { style: { height: "100%", width: "100%" } }, track)
126
+ },
127
+ track
128
+ );
129
+ }
130
+ const SLIDER_TRACK_COMPONENT_NAME = makeComponentName("sliderTrack");
131
+ function registerSliderTrack(loader, overrides) {
132
+ registerComponentHelper(
133
+ loader,
134
+ BaseSliderTrack,
135
+ {
136
+ name: SLIDER_TRACK_COMPONENT_NAME,
137
+ displayName: "Aria Slider Track",
138
+ importPath: "@plasmicpkgs/react-aria/skinny/registerSliderTrack",
139
+ importName: "BaseSliderTrack",
140
+ defaultStyles: {
141
+ width: "stretch",
142
+ backgroundColor: "#aaa",
143
+ position: "relative",
144
+ height: "10px",
145
+ padding: 0
146
+ },
147
+ interactionVariants,
148
+ props: {
149
+ children: {
150
+ type: "slot",
151
+ description: "The thumbs of the slider",
152
+ defaultValue: [
153
+ {
154
+ type: "component",
155
+ name: makeChildComponentName(
156
+ SLIDER_COMPONENT_NAME,
157
+ SLIDER_THUMB_COMPONENT_NAME
158
+ )
159
+ }
160
+ ]
161
+ },
162
+ progressBar: {
163
+ type: "slot",
164
+ displayName: "Progress Bar",
165
+ defaultValue: [
166
+ {
167
+ type: "box",
168
+ styles: {
169
+ height: "100%",
170
+ width: "100%",
171
+ backgroundColor: "#ffa6a6",
172
+ padding: 0
173
+ }
174
+ }
175
+ ]
176
+ }
177
+ },
178
+ trapsFocus: true
179
+ },
180
+ overrides
181
+ );
182
+ }
183
+
184
+ var __defProp = Object.defineProperty;
185
+ var __defProps = Object.defineProperties;
186
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
187
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
188
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
189
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
190
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
191
+ var __spreadValues = (a, b) => {
192
+ for (var prop in b || (b = {}))
193
+ if (__hasOwnProp.call(b, prop))
194
+ __defNormalProp(a, prop, b[prop]);
195
+ if (__getOwnPropSymbols)
196
+ for (var prop of __getOwnPropSymbols(b)) {
197
+ if (__propIsEnum.call(b, prop))
198
+ __defNormalProp(a, prop, b[prop]);
199
+ }
200
+ return a;
201
+ };
202
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
203
+ var __objRest = (source, exclude) => {
204
+ var target = {};
205
+ for (var prop in source)
206
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
207
+ target[prop] = source[prop];
208
+ if (source != null && __getOwnPropSymbols)
209
+ for (var prop of __getOwnPropSymbols(source)) {
210
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
211
+ target[prop] = source[prop];
212
+ }
213
+ return target;
214
+ };
215
+ const SLIDER_COMPONENT_NAME = makeComponentName("slider");
216
+ const sliderHelpers = {
217
+ states: {
218
+ range: {
219
+ onChangeArgsToValue: (value, isMultiValue) => {
220
+ if (isMultiValue) {
221
+ return Array.isArray(value) ? value : [value, value + 10];
222
+ }
223
+ return void 0;
224
+ }
225
+ },
226
+ value: {
227
+ onChangeArgsToValue: (value, isMultiValue) => {
228
+ if (isMultiValue) {
229
+ return void 0;
230
+ }
231
+ return Array.isArray(value) ? value[0] : value;
232
+ }
233
+ }
234
+ }
235
+ };
236
+ function BaseSlider(props) {
237
+ const _a = props, { range, value, defaultRange, defaultValue, onChange } = _a, rest = __objRest(_a, ["range", "value", "defaultRange", "defaultValue", "onChange"]);
238
+ const isFirstRender = useRef(true);
239
+ useEffect(() => {
240
+ var _a2, _b, _c;
241
+ if (isFirstRender.current) {
242
+ isFirstRender.current = false;
243
+ return;
244
+ }
245
+ if (props.isMultiValue) {
246
+ const minValue = (_a2 = props.minValue) != null ? _a2 : 0;
247
+ (_b = props.onChange) == null ? void 0 : _b.call(
248
+ props,
249
+ Array.isArray(range) && range.length > 1 ? range : [minValue, minValue + 10],
250
+ true
251
+ );
252
+ return;
253
+ }
254
+ (_c = props.onChange) == null ? void 0 : _c.call(props, Array.isArray(value) ? 0 : value != null ? value : 0, false);
255
+ }, [props.isMultiValue]);
256
+ const mergedProps = mergeProps(rest, {
257
+ value: props.isMultiValue ? range : value,
258
+ defaultValue: props.isMultiValue ? defaultRange : defaultValue
259
+ });
260
+ return /* @__PURE__ */ React.createElement(PlasmicSliderContext.Provider, { value: mergedProps }, /* @__PURE__ */ React.createElement(
261
+ Slider,
262
+ __spreadValues({
263
+ key: props.isMultiValue ? "multi" : "single",
264
+ onChange: (newValue) => {
265
+ onChange == null ? void 0 : onChange(newValue, props.isMultiValue);
266
+ }
267
+ }, mergedProps)
268
+ ));
269
+ }
270
+ function registerSlider(loader, overrides) {
271
+ registerComponentHelper(
272
+ loader,
273
+ BaseSlider,
274
+ {
275
+ name: SLIDER_COMPONENT_NAME,
276
+ displayName: "Aria Slider",
277
+ importPath: "@plasmicpkgs/react-aria/skinny/registerSlider",
278
+ importName: "BaseSlider",
279
+ defaultStyles: {
280
+ width: "300px"
281
+ },
282
+ props: __spreadProps(__spreadValues({}, getCommonInputProps("slider", [
283
+ "isDisabled",
284
+ "name",
285
+ "autoFocus",
286
+ "aria-label"
287
+ ])), {
288
+ children: {
289
+ type: "slot",
290
+ defaultValue: [
291
+ {
292
+ type: "hbox",
293
+ styles: {
294
+ width: "stretch",
295
+ justifyContent: "space-between",
296
+ padding: "8px 0px"
297
+ },
298
+ children: [
299
+ {
300
+ type: "component",
301
+ name: LABEL_COMPONENT_NAME,
302
+ props: {
303
+ children: {
304
+ type: "text",
305
+ value: "Label"
306
+ }
307
+ }
308
+ },
309
+ {
310
+ type: "component",
311
+ name: makeChildComponentName(
312
+ SLIDER_COMPONENT_NAME,
313
+ SLIDER_OUTPUT_COMPONENT_NAME
314
+ ),
315
+ props: {
316
+ children: {
317
+ type: "text",
318
+ value: "Output"
319
+ }
320
+ }
321
+ }
322
+ ]
323
+ },
324
+ {
325
+ type: "component",
326
+ name: makeChildComponentName(
327
+ SLIDER_COMPONENT_NAME,
328
+ SLIDER_TRACK_COMPONENT_NAME
329
+ )
330
+ }
331
+ ]
332
+ },
333
+ orientation: {
334
+ type: "choice",
335
+ options: ["horizontal", "vertical"],
336
+ defaultValueHint: "horizontal",
337
+ defaultValue: "horizontal"
338
+ },
339
+ minValue: {
340
+ type: "number",
341
+ description: "The minimum value of the slider",
342
+ defaultValueHint: 0
343
+ },
344
+ maxValue: {
345
+ type: "number",
346
+ description: "The maximum value of the slider",
347
+ defaultValueHint: 100
348
+ },
349
+ step: {
350
+ type: "number",
351
+ description: "The step value of the slider",
352
+ defaultValueHint: 1
353
+ },
354
+ isMultiValue: {
355
+ type: "boolean",
356
+ displayName: "Multi-valued",
357
+ description: "Whether the slider supports range (multiple thumbs)",
358
+ defaultValue: false,
359
+ defaultValueHint: false
360
+ },
361
+ range: {
362
+ type: "array",
363
+ editOnly: true,
364
+ uncontrolledProp: "defaultRange",
365
+ description: "The default range of the slider",
366
+ defaultValueHint: [10, 20],
367
+ defaultValue: [10, 20],
368
+ hidden: (ps) => !ps.isMultiValue
369
+ },
370
+ value: {
371
+ type: "number",
372
+ editOnly: true,
373
+ uncontrolledProp: "defaultValue",
374
+ description: "The default value of the slider",
375
+ defaultValueHint: 0,
376
+ defaultValue: 0,
377
+ hidden: (ps) => Boolean(ps.isMultiValue)
378
+ },
379
+ onChange: {
380
+ type: "eventHandler",
381
+ argTypes: [{ name: "value", type: "object" }]
382
+ },
383
+ onChangeEnd: {
384
+ type: "eventHandler",
385
+ argTypes: [{ name: "value", type: "object" }]
386
+ }
387
+ }),
388
+ states: {
389
+ range: __spreadValues({
390
+ type: "writable",
391
+ valueProp: "range",
392
+ onChangeProp: "onChange",
393
+ variableType: "array",
394
+ hidden: (ps) => !ps.isMultiValue
395
+ }, sliderHelpers.states.range),
396
+ value: __spreadValues({
397
+ type: "writable",
398
+ valueProp: "value",
399
+ onChangeProp: "onChange",
400
+ variableType: "number",
401
+ hidden: (ps) => Boolean(ps.isMultiValue)
402
+ }, sliderHelpers.states.value)
403
+ },
404
+ componentHelpers: {
405
+ helpers: sliderHelpers,
406
+ importName: "sliderHelpers",
407
+ importPath: "@plasmicpkgs/react-aria/skinny/registerSlider"
408
+ },
409
+ trapsFocus: true
410
+ },
411
+ overrides
412
+ );
413
+ registerSliderOutput(loader, {
414
+ parentComponentName: SLIDER_COMPONENT_NAME
415
+ });
416
+ registerSliderThumb(loader, {
417
+ parentComponentName: SLIDER_COMPONENT_NAME
418
+ });
419
+ registerSliderTrack(loader, {
420
+ parentComponentName: SLIDER_COMPONENT_NAME
421
+ });
422
+ }
423
+
424
+ export { BaseSliderTrack as B, SLIDER_TRACK_COMPONENT_NAME as S, SLIDER_COMPONENT_NAME as a, BaseSlider as b, registerSlider as c, registerSliderTrack as r };
425
+ //# sourceMappingURL=registerSlider-39783c91.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerSlider-39783c91.esm.js","sources":["../src/registerSliderTrack.tsx","../src/registerSlider.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { mergeProps } from \"react-aria\";\nimport { Slider, SliderThumbProps, SliderTrack } from \"react-aria-components\";\nimport flattenChildren from \"react-keyed-flatten-children\";\nimport { PlasmicSliderContext } from \"./contexts\";\nimport ErrorBoundary from \"./ErrorBoundary\";\nimport {\n UpdateInteractionVariant,\n pickAriaComponentVariants,\n} from \"./interaction-variant-utils\";\nimport { SLIDER_COMPONENT_NAME } from \"./registerSlider\";\nimport { SLIDER_THUMB_COMPONENT_NAME } from \"./registerSliderThumb\";\nimport {\n CodeComponentMetaOverrides,\n Registerable,\n makeChildComponentName,\n makeComponentName,\n registerComponentHelper,\n} from \"./utils\";\n\nconst SLIDER_TRACK_INTERACTION_VARIANTS = [\"hovered\" as const];\n\nconst { interactionVariants, withObservedValues } = pickAriaComponentVariants(\n SLIDER_TRACK_INTERACTION_VARIANTS\n);\n\nexport interface BaseSliderTrackProps\n extends React.ComponentProps<typeof SliderTrack> {\n progressBar?: React.ReactNode;\n // Optional callback to update the interaction variant state\n // as it's only provided if the component is the root of a Studio component\n updateInteractionVariant?: UpdateInteractionVariant<\n typeof SLIDER_TRACK_INTERACTION_VARIANTS\n >;\n children?: React.ReactElement<HTMLElement>;\n}\n\n/**\n * Finds the index of the minimum and maximum values in the slider\n * @param values\n * @returns\n */\nfunction findMinMaxIndices(values?: number | number[]): {\n minIndex: number;\n maxIndex: number;\n} {\n if (\n typeof values === \"number\" ||\n values?.length === 0 ||\n !Array.isArray(values)\n ) {\n return { minIndex: 0, maxIndex: 0 };\n }\n\n let minIndex = 0;\n let maxIndex = 0;\n\n for (let i = 1; i < values.length; i++) {\n if (values[i] < values[minIndex]) {\n minIndex = i;\n }\n if (values[i] > values[maxIndex]) {\n maxIndex = i;\n }\n }\n\n return { minIndex, maxIndex };\n}\n\nexport function BaseSliderTrack(props: BaseSliderTrackProps) {\n const context = React.useContext(PlasmicSliderContext);\n const mergedProps = mergeProps(context, props);\n const {\n children,\n progressBar,\n updateInteractionVariant,\n isMultiValue,\n ...rest\n } = mergedProps;\n\n const { minIndex, maxIndex } = useMemo(\n () => findMinMaxIndices(mergedProps.value),\n [mergedProps.value]\n );\n\n /**\n * Generates the thumb components based on the number of thumbs\n * and the number of values in the slider\n *\n * If the number of thumbs is less than the number of values, then\n * the last thumb is repeated for the remaining values\n *\n * If the number of thumbs is greater than the number of values, then\n * the additional thumbs are omitted\n */\n const thumbs = useMemo(() => {\n const rawThumbs = flattenChildren(children);\n if (mergedProps.value === undefined) {\n return [];\n }\n if (!Array.isArray(mergedProps?.value)) {\n return rawThumbs;\n }\n const difference = mergedProps.value.length - rawThumbs.length;\n if (!difference) {\n return rawThumbs;\n }\n if (difference < 0) {\n return rawThumbs.slice(0, mergedProps.value.length);\n }\n const lastThumb = rawThumbs[rawThumbs.length - 1];\n return rawThumbs.concat(new Array(difference).fill(lastThumb));\n }, [children, mergedProps.value]);\n\n const track = (\n <SliderTrack style={{ position: \"relative\" }} {...rest}>\n {({ state, isHovered }) => (\n <>\n {withObservedValues(\n <>\n <div\n style={{\n width: `${\n (!isMultiValue\n ? state.getThumbPercent(minIndex)\n : state.getThumbPercent(maxIndex) -\n state.getThumbPercent(minIndex)) * 100\n }%`,\n height: \"100%\",\n position: \"absolute\",\n top: 0,\n left: !isMultiValue\n ? 0\n : state.getThumbPercent(minIndex) * 100 + \"%\",\n }}\n >\n {progressBar}\n </div>\n {thumbs.map(\n (thumb, i) =>\n React.isValidElement(thumb) &&\n React.cloneElement(thumb, {\n // sets the index of the thumb, so that each thumb reflects the correct value\n index: i,\n } as SliderThumbProps)\n )}\n </>,\n {\n hovered: isHovered,\n },\n updateInteractionVariant\n )}\n </>\n )}\n </SliderTrack>\n );\n\n return (\n <ErrorBoundary\n // If the Slider Track is the root of a Studio component, then we need to wrap the track in a slider\n // to ensure that the track gets the required Slider context\n fallback={\n <Slider style={{ height: \"100%\", width: \"100%\" }}>{track}</Slider>\n }\n >\n {track}\n </ErrorBoundary>\n );\n}\n\nexport const SLIDER_TRACK_COMPONENT_NAME = makeComponentName(\"sliderTrack\");\n\nexport function registerSliderTrack(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseSliderTrack>\n) {\n registerComponentHelper(\n loader,\n BaseSliderTrack,\n {\n name: SLIDER_TRACK_COMPONENT_NAME,\n displayName: \"Aria Slider Track\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerSliderTrack\",\n importName: \"BaseSliderTrack\",\n defaultStyles: {\n width: \"stretch\",\n backgroundColor: \"#aaa\",\n position: \"relative\",\n height: \"10px\",\n padding: 0,\n },\n interactionVariants,\n props: {\n children: {\n type: \"slot\",\n description: \"The thumbs of the slider\",\n defaultValue: [\n {\n type: \"component\",\n name: makeChildComponentName(\n SLIDER_COMPONENT_NAME,\n SLIDER_THUMB_COMPONENT_NAME\n ),\n },\n ],\n },\n progressBar: {\n type: \"slot\",\n displayName: \"Progress Bar\",\n defaultValue: [\n {\n type: \"box\",\n styles: {\n height: \"100%\",\n width: \"100%\",\n backgroundColor: \"#ffa6a6\",\n padding: 0,\n },\n },\n ],\n },\n },\n trapsFocus: true,\n },\n overrides\n );\n}\n","import React, { useEffect, useRef } from \"react\";\nimport { mergeProps } from \"react-aria\";\nimport { Slider, type SliderProps } from \"react-aria-components\";\nimport { getCommonInputProps } from \"./common\";\nimport { PlasmicSliderContext } from \"./contexts\";\nimport { LABEL_COMPONENT_NAME } from \"./registerLabel\";\nimport {\n SLIDER_OUTPUT_COMPONENT_NAME,\n registerSliderOutput,\n} from \"./registerSliderOutput\";\nimport { registerSliderThumb } from \"./registerSliderThumb\";\nimport {\n SLIDER_TRACK_COMPONENT_NAME,\n registerSliderTrack,\n} from \"./registerSliderTrack\";\nimport {\n CodeComponentMetaOverrides,\n Registerable,\n makeChildComponentName,\n makeComponentName,\n registerComponentHelper,\n} from \"./utils\";\n\nexport const SLIDER_COMPONENT_NAME = makeComponentName(\"slider\");\n\nexport interface BaseSliderProps\n extends Omit<SliderProps<number | number[]>, \"onChange\"> {\n // Passed down to Slider Thumb via context\n name?: string;\n autoFocus?: boolean;\n isMultiValue?: boolean;\n range?: number[];\n defaultRange?: number[];\n onChange?: (value: number | number[], isMultiValue?: boolean) => void;\n}\n\nconst sliderHelpers = {\n states: {\n range: {\n onChangeArgsToValue: (value: number[], isMultiValue: boolean) => {\n if (isMultiValue) {\n return Array.isArray(value) ? value : [value, value + 10];\n }\n return undefined;\n },\n },\n value: {\n onChangeArgsToValue: (value: number, isMultiValue: boolean) => {\n if (isMultiValue) {\n return undefined;\n }\n return Array.isArray(value) ? value[0] : value;\n },\n },\n },\n};\n\nexport function BaseSlider(props: BaseSliderProps) {\n const { range, value, defaultRange, defaultValue, onChange, ...rest } = props;\n const isFirstRender = useRef(true);\n\n useEffect(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false;\n return;\n }\n if (props.isMultiValue) {\n const minValue = props.minValue ?? 0;\n props.onChange?.(\n Array.isArray(range) && range.length > 1\n ? range\n : [minValue, minValue + 10],\n true\n );\n return;\n }\n props.onChange?.(Array.isArray(value) ? 0 : value ?? 0, false);\n }, [props.isMultiValue]);\n\n const mergedProps = mergeProps(rest, {\n value: props.isMultiValue ? range : value,\n defaultValue: props.isMultiValue ? defaultRange : defaultValue,\n });\n return (\n <PlasmicSliderContext.Provider value={mergedProps}>\n <Slider\n key={props.isMultiValue ? \"multi\" : \"single\"}\n onChange={(newValue) => {\n onChange?.(newValue, props.isMultiValue);\n }}\n {...mergedProps}\n />\n </PlasmicSliderContext.Provider>\n );\n}\n\nexport function registerSlider(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseSlider>\n) {\n registerComponentHelper(\n loader,\n BaseSlider,\n {\n name: SLIDER_COMPONENT_NAME,\n displayName: \"Aria Slider\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerSlider\",\n importName: \"BaseSlider\",\n defaultStyles: {\n width: \"300px\",\n },\n props: {\n ...getCommonInputProps<BaseSliderProps>(\"slider\", [\n \"isDisabled\",\n \"name\",\n \"autoFocus\",\n \"aria-label\",\n ]),\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"hbox\",\n styles: {\n width: \"stretch\",\n justifyContent: \"space-between\",\n padding: \"8px 0px\",\n },\n children: [\n {\n type: \"component\",\n name: LABEL_COMPONENT_NAME,\n props: {\n children: {\n type: \"text\",\n value: \"Label\",\n },\n },\n },\n {\n type: \"component\",\n name: makeChildComponentName(\n SLIDER_COMPONENT_NAME,\n SLIDER_OUTPUT_COMPONENT_NAME\n ),\n props: {\n children: {\n type: \"text\",\n value: \"Output\",\n },\n },\n },\n ],\n },\n {\n type: \"component\",\n name: makeChildComponentName(\n SLIDER_COMPONENT_NAME,\n SLIDER_TRACK_COMPONENT_NAME\n ),\n },\n ],\n },\n orientation: {\n type: \"choice\",\n options: [\"horizontal\", \"vertical\"],\n defaultValueHint: \"horizontal\",\n defaultValue: \"horizontal\",\n },\n minValue: {\n type: \"number\",\n description: \"The minimum value of the slider\",\n defaultValueHint: 0,\n },\n maxValue: {\n type: \"number\",\n description: \"The maximum value of the slider\",\n defaultValueHint: 100,\n },\n step: {\n type: \"number\",\n description: \"The step value of the slider\",\n defaultValueHint: 1,\n },\n isMultiValue: {\n type: \"boolean\",\n displayName: \"Multi-valued\",\n description: \"Whether the slider supports range (multiple thumbs)\",\n defaultValue: false,\n defaultValueHint: false,\n },\n range: {\n type: \"array\",\n editOnly: true,\n uncontrolledProp: \"defaultRange\",\n description: \"The default range of the slider\",\n defaultValueHint: [10, 20],\n defaultValue: [10, 20],\n hidden: (ps: BaseSliderProps) => !ps.isMultiValue,\n },\n value: {\n type: \"number\",\n editOnly: true,\n uncontrolledProp: \"defaultValue\",\n description: \"The default value of the slider\",\n defaultValueHint: 0,\n defaultValue: 0,\n hidden: (ps: BaseSliderProps) => Boolean(ps.isMultiValue),\n },\n onChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"value\", type: \"object\" }],\n },\n onChangeEnd: {\n type: \"eventHandler\",\n argTypes: [{ name: \"value\", type: \"object\" }],\n },\n },\n states: {\n range: {\n type: \"writable\",\n valueProp: \"range\",\n onChangeProp: \"onChange\",\n variableType: \"array\",\n hidden: (ps: BaseSliderProps) => !ps.isMultiValue,\n ...sliderHelpers.states.range,\n },\n value: {\n type: \"writable\",\n valueProp: \"value\",\n onChangeProp: \"onChange\",\n variableType: \"number\",\n hidden: (ps: BaseSliderProps) => Boolean(ps.isMultiValue),\n ...sliderHelpers.states.value,\n },\n },\n componentHelpers: {\n helpers: sliderHelpers,\n importName: \"sliderHelpers\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerSlider\",\n },\n trapsFocus: true,\n },\n overrides\n );\n\n registerSliderOutput(loader, {\n parentComponentName: SLIDER_COMPONENT_NAME,\n });\n\n registerSliderThumb(loader, {\n parentComponentName: SLIDER_COMPONENT_NAME,\n });\n registerSliderTrack(loader, {\n parentComponentName: SLIDER_COMPONENT_NAME,\n });\n}\n"],"names":["__objRest","__spreadValues","_a"],"mappings":"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"}