@radix-ui/react-select 0.1.2-rc.44 → 0.1.2-rc.45

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.
@@ -1,5 +1,5 @@
1
1
  import $01b9c$babelruntimehelpersesmextends from "@babel/runtime/helpers/esm/extends";
2
- import {useState as $01b9c$useState, useRef as $01b9c$useRef, createElement as $01b9c$createElement, forwardRef as $01b9c$forwardRef, useCallback as $01b9c$useCallback, useEffect as $01b9c$useEffect, Fragment as $01b9c$Fragment, useMemo as $01b9c$useMemo} from "react";
2
+ import {useState as $01b9c$useState, useRef as $01b9c$useRef, createElement as $01b9c$createElement, useCallback as $01b9c$useCallback, forwardRef as $01b9c$forwardRef, Fragment as $01b9c$Fragment, useEffect as $01b9c$useEffect, useMemo as $01b9c$useMemo} from "react";
3
3
  import {createPortal as $01b9c$createPortal} from "react-dom";
4
4
  import {clamp as $01b9c$clamp} from "@radix-ui/number";
5
5
  import {composeEventHandlers as $01b9c$composeEventHandlers} from "@radix-ui/primitive";
@@ -8,10 +8,11 @@ import {useComposedRefs as $01b9c$useComposedRefs} from "@radix-ui/react-compose
8
8
  import {createContextScope as $01b9c$createContextScope} from "@radix-ui/react-context";
9
9
  import {useDirection as $01b9c$useDirection} from "@radix-ui/react-direction";
10
10
  import {DismissableLayer as $01b9c$DismissableLayer} from "@radix-ui/react-dismissable-layer";
11
+ import {useFocusGuards as $01b9c$useFocusGuards} from "@radix-ui/react-focus-guards";
11
12
  import {FocusScope as $01b9c$FocusScope} from "@radix-ui/react-focus-scope";
12
13
  import {useId as $01b9c$useId} from "@radix-ui/react-id";
13
14
  import {useLabelContext as $01b9c$useLabelContext} from "@radix-ui/react-label";
14
- import {Portal as $01b9c$Portal} from "@radix-ui/react-portal";
15
+ import {UnstablePortal as $01b9c$UnstablePortal} from "@radix-ui/react-portal";
15
16
  import {Primitive as $01b9c$Primitive} from "@radix-ui/react-primitive";
16
17
  import {Slot as $01b9c$Slot} from "@radix-ui/react-slot";
17
18
  import {useCallbackRef as $01b9c$useCallbackRef} from "@radix-ui/react-use-callback-ref";
@@ -32,6 +33,7 @@ $parcel$export($cc7e05a45900e73f$exports, "Select", () => $cc7e05a45900e73f$expo
32
33
  $parcel$export($cc7e05a45900e73f$exports, "SelectTrigger", () => $cc7e05a45900e73f$export$3ac1e88a1c0b9f1);
33
34
  $parcel$export($cc7e05a45900e73f$exports, "SelectValue", () => $cc7e05a45900e73f$export$e288731fd71264f0);
34
35
  $parcel$export($cc7e05a45900e73f$exports, "SelectIcon", () => $cc7e05a45900e73f$export$99b400cabb58c515);
36
+ $parcel$export($cc7e05a45900e73f$exports, "SelectPortal", () => $cc7e05a45900e73f$export$b2af6c9944296213);
35
37
  $parcel$export($cc7e05a45900e73f$exports, "SelectContent", () => $cc7e05a45900e73f$export$c973a4b3cb86a03d);
36
38
  $parcel$export($cc7e05a45900e73f$exports, "SelectViewport", () => $cc7e05a45900e73f$export$9ed6e7b40248d36d);
37
39
  $parcel$export($cc7e05a45900e73f$exports, "SelectGroup", () => $cc7e05a45900e73f$export$ee25a334c55de1f4);
@@ -46,6 +48,7 @@ $parcel$export($cc7e05a45900e73f$exports, "Root", () => $cc7e05a45900e73f$export
46
48
  $parcel$export($cc7e05a45900e73f$exports, "Trigger", () => $cc7e05a45900e73f$export$41fb9f06171c75f4);
47
49
  $parcel$export($cc7e05a45900e73f$exports, "Value", () => $cc7e05a45900e73f$export$4c8d1a57a761ef94);
48
50
  $parcel$export($cc7e05a45900e73f$exports, "Icon", () => $cc7e05a45900e73f$export$f04a61298a47a40f);
51
+ $parcel$export($cc7e05a45900e73f$exports, "Portal", () => $cc7e05a45900e73f$export$602eac185826482c);
49
52
  $parcel$export($cc7e05a45900e73f$exports, "Content", () => $cc7e05a45900e73f$export$7c6e2c02157bb7d2);
50
53
  $parcel$export($cc7e05a45900e73f$exports, "Viewport", () => $cc7e05a45900e73f$export$d5c6c08dc2d3ca7);
51
54
  $parcel$export($cc7e05a45900e73f$exports, "Group", () => $cc7e05a45900e73f$export$eb2fcfdbd7ba97d4);
@@ -77,6 +80,7 @@ $parcel$export($cc7e05a45900e73f$exports, "Separator", () => $cc7e05a45900e73f$e
77
80
 
78
81
 
79
82
 
83
+
80
84
 
81
85
 
82
86
  const $cc7e05a45900e73f$var$OPEN_KEYS = [
@@ -97,8 +101,9 @@ const [$cc7e05a45900e73f$var$createSelectContext, $cc7e05a45900e73f$export$28672
97
101
  $cc7e05a45900e73f$var$createCollectionScope
98
102
  ]);
99
103
  const [$cc7e05a45900e73f$var$SelectProvider, $cc7e05a45900e73f$var$useSelectContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$SELECT_NAME);
104
+ const [$cc7e05a45900e73f$var$SelectNativeOptionsProvider, $cc7e05a45900e73f$var$useSelectNativeOptionsContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$SELECT_NAME);
100
105
  const $cc7e05a45900e73f$export$ef9b1a59e592288f = (props)=>{
101
- const { __scopeSelect: __scopeSelect , children: children , open: openProp , defaultOpen: defaultOpen , onOpenChange: onOpenChange , value: valueProp , defaultValue: defaultValue , onValueChange: onValueChange , dir: dir , name: name , autoComplete: autoComplete } = props;
106
+ const { __scopeSelect: __scopeSelect , children: children , open: openProp , defaultOpen: defaultOpen , onOpenChange: onOpenChange , value: valueProp , defaultValue: defaultValue , onValueChange: onValueChange , dir: dir , name: name , autoComplete: autoComplete , allowPinchZoom: allowPinchZoom } = props;
102
107
  const [trigger, setTrigger] = $01b9c$useState(null);
103
108
  const [valueNode, setValueNode] = $01b9c$useState(null);
104
109
  const [valueNodeHasChildren, setValueNodeHasChildren] = $01b9c$useState(false);
@@ -113,7 +118,15 @@ const $cc7e05a45900e73f$export$ef9b1a59e592288f = (props)=>{
113
118
  defaultProp: defaultValue,
114
119
  onChange: onValueChange
115
120
  });
116
- const triggerPointerDownPosRef = $01b9c$useRef(null);
121
+ const triggerPointerDownPosRef = $01b9c$useRef(null); // We set this to true by default so that events bubble to forms without JS (SSR)
122
+ const isFormControl = trigger ? Boolean(trigger.closest('form')) : true;
123
+ const [nativeOptionsSet, setNativeOptionsSet] = $01b9c$useState(new Set()); // The native `select` only associates the correct default value if the corresponding
124
+ // `option` is rendered as a child **at the same time** as itself.
125
+ // Because it might take a few renders for our items to gather the information to build
126
+ // the native `option`(s), we generate a key on the `select` to make sure React re-builds it
127
+ // each time the options change.
128
+ const nativeSelectKey = Array.from(nativeOptionsSet).map((option)=>option.props.value
129
+ ).join(';');
117
130
  return /*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$SelectProvider, {
118
131
  scope: __scopeSelect,
119
132
  trigger: trigger,
@@ -128,12 +141,33 @@ const $cc7e05a45900e73f$export$ef9b1a59e592288f = (props)=>{
128
141
  open: open,
129
142
  onOpenChange: setOpen,
130
143
  dir: direction,
131
- name: name,
132
- autoComplete: autoComplete,
133
- triggerPointerDownPosRef: triggerPointerDownPosRef
144
+ triggerPointerDownPosRef: triggerPointerDownPosRef,
145
+ allowPinchZoom: allowPinchZoom
134
146
  }, /*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$Collection.Provider, {
135
147
  scope: __scopeSelect
136
- }, children));
148
+ }, /*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$SelectNativeOptionsProvider, {
149
+ scope: props.__scopeSelect,
150
+ onNativeOptionAdd: $01b9c$useCallback((option)=>{
151
+ setNativeOptionsSet((prev)=>new Set(prev).add(option)
152
+ );
153
+ }, []),
154
+ onNativeOptionRemove: $01b9c$useCallback((option)=>{
155
+ setNativeOptionsSet((prev)=>{
156
+ const optionsSet = new Set(prev);
157
+ optionsSet.delete(option);
158
+ return optionsSet;
159
+ });
160
+ }, [])
161
+ }, children)), isFormControl ? /*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$BubbleSelect, {
162
+ key: nativeSelectKey,
163
+ "aria-hidden": true,
164
+ tabIndex: -1,
165
+ name: name,
166
+ autoComplete: autoComplete,
167
+ value: value // enable form autofill
168
+ ,
169
+ onChange: (event)=>setValue(event.target.value)
170
+ }, Array.from(nativeOptionsSet)) : null);
137
171
  };
138
172
  /*#__PURE__*/ Object.assign($cc7e05a45900e73f$export$ef9b1a59e592288f, {
139
173
  displayName: $cc7e05a45900e73f$var$SELECT_NAME
@@ -246,47 +280,27 @@ const $cc7e05a45900e73f$export$99b400cabb58c515 = /*#__PURE__*/ $01b9c$forwardRe
246
280
  /*#__PURE__*/ Object.assign($cc7e05a45900e73f$export$99b400cabb58c515, {
247
281
  displayName: $cc7e05a45900e73f$var$ICON_NAME
248
282
  });
283
+ /* -------------------------------------------------------------------------------------------------
284
+ * SelectPortal
285
+ * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$PORTAL_NAME = 'SelectPortal';
286
+ const $cc7e05a45900e73f$export$b2af6c9944296213 = (props)=>{
287
+ return /*#__PURE__*/ $01b9c$createElement($01b9c$UnstablePortal, $01b9c$babelruntimehelpersesmextends({
288
+ asChild: true
289
+ }, props));
290
+ };
291
+ /*#__PURE__*/ Object.assign($cc7e05a45900e73f$export$b2af6c9944296213, {
292
+ displayName: $cc7e05a45900e73f$var$PORTAL_NAME
293
+ });
249
294
  /* -------------------------------------------------------------------------------------------------
250
295
  * SelectContent
251
296
  * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$CONTENT_NAME = 'SelectContent';
252
- const [$cc7e05a45900e73f$var$SelectNativeOptionsProvider, $cc7e05a45900e73f$var$useSelectNativeOptionsContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$CONTENT_NAME);
253
297
  const $cc7e05a45900e73f$export$c973a4b3cb86a03d = /*#__PURE__*/ $01b9c$forwardRef((props, forwardedRef)=>{
254
298
  const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$CONTENT_NAME, props.__scopeSelect);
255
- const [fragment, setFragment] = $01b9c$useState(); // We set this to true by default so that events bubble to forms without JS (SSR)
256
- const isFormControl = context.trigger ? Boolean(context.trigger.closest('form')) : true;
257
- const [nativeOptionsSet, setNativeOptionsSet] = $01b9c$useState(new Set()); // The native `select` only associates the correct default value if the corresponding
258
- // `option` is rendered as a child **at the same time** as itself.
259
- // Because it might take a few renders for our items to gather the information to build
260
- // the native `option`(s), we generate a key on the `select` to make sure React re-builds it
261
- // each time the options change.
262
- const nativeSelectKey = Array.from(nativeOptionsSet).map((option)=>option.props.value
263
- ).join(';'); // setting the fragment in `useLayoutEffect` as `DocumentFragment` doesn't exist on the server
299
+ const [fragment, setFragment] = $01b9c$useState(); // setting the fragment in `useLayoutEffect` as `DocumentFragment` doesn't exist on the server
264
300
  $01b9c$useLayoutEffect(()=>{
265
301
  setFragment(new DocumentFragment());
266
302
  }, []);
267
- return /*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$SelectNativeOptionsProvider, {
268
- scope: props.__scopeSelect,
269
- onNativeOptionAdd: $01b9c$useCallback((option)=>{
270
- setNativeOptionsSet((prev)=>new Set(prev).add(option)
271
- );
272
- }, []),
273
- onNativeOptionRemove: $01b9c$useCallback((option)=>{
274
- setNativeOptionsSet((prev)=>{
275
- const optionsSet = new Set(prev);
276
- optionsSet.delete(option);
277
- return optionsSet;
278
- });
279
- }, [])
280
- }, isFormControl ? /*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$BubbleSelect, {
281
- key: nativeSelectKey,
282
- "aria-hidden": true,
283
- tabIndex: -1,
284
- name: context.name,
285
- autoComplete: context.autoComplete,
286
- value: context.value // enable form autofill
287
- ,
288
- onChange: (event)=>context.onValueChange(event.target.value)
289
- }, Array.from(nativeOptionsSet)) : null, context.open ? /*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$SelectContentImpl, $01b9c$babelruntimehelpersesmextends({}, props, {
303
+ return /*#__PURE__*/ $01b9c$createElement($01b9c$Fragment, null, context.open ? /*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$SelectContentImpl, $01b9c$babelruntimehelpersesmextends({}, props, {
290
304
  ref: forwardedRef
291
305
  })) : fragment ? /*#__PURE__*/ $01b9c$createPortal(/*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$SelectContentProvider, {
292
306
  scope: props.__scopeSelect
@@ -318,6 +332,14 @@ const $cc7e05a45900e73f$var$SelectContentImpl = /*#__PURE__*/ $01b9c$forwardRef(
318
332
  if (content) return $01b9c$hideOthers(content);
319
333
  }, [
320
334
  content
335
+ ]); // Make sure the whole tree has focus guards as our `Select` may be
336
+ // the last element in the DOM (because of the `Portal`)
337
+ $01b9c$useFocusGuards();
338
+ const [contentZIndex, setContentZIndex] = $01b9c$useState();
339
+ $01b9c$useLayoutEffect(()=>{
340
+ if (content) setContentZIndex(window.getComputedStyle(content).zIndex);
341
+ }, [
342
+ content
321
343
  ]);
322
344
  const focusFirst = $01b9c$useCallback((candidates)=>{
323
345
  const [firstItem, ...restItems] = getItems().map((item)=>item.ref.current
@@ -565,15 +587,16 @@ const $cc7e05a45900e73f$var$SelectContentImpl = /*#__PURE__*/ $01b9c$forwardRef(
565
587
  isPositioned: isPositioned,
566
588
  shouldExpandOnScrollRef: shouldExpandOnScrollRef,
567
589
  searchRef: searchRef
568
- }, /*#__PURE__*/ $01b9c$createElement($01b9c$Portal, null, /*#__PURE__*/ $01b9c$createElement($01b9c$RemoveScroll, {
569
- as: $01b9c$Slot
590
+ }, /*#__PURE__*/ $01b9c$createElement($01b9c$RemoveScroll, {
591
+ as: $01b9c$Slot,
592
+ allowPinchZoom: context.allowPinchZoom
570
593
  }, /*#__PURE__*/ $01b9c$createElement("div", {
571
594
  ref: setContentWrapper,
572
595
  style: {
573
596
  display: 'flex',
574
597
  flexDirection: 'column',
575
598
  position: 'fixed',
576
- zIndex: 0
599
+ zIndex: contentZIndex
577
600
  }
578
601
  }, /*#__PURE__*/ $01b9c$createElement($01b9c$FocusScope, {
579
602
  asChild: true // we make sure we're not trapping once it's been closed
@@ -648,7 +671,7 @@ const $cc7e05a45900e73f$var$SelectContentImpl = /*#__PURE__*/ $01b9c$forwardRef(
648
671
  event.preventDefault();
649
672
  }
650
673
  })
651
- })))))));
674
+ }))))));
652
675
  });
653
676
  /* -------------------------------------------------------------------------------------------------
654
677
  * SelectViewport
@@ -1129,6 +1152,7 @@ const $cc7e05a45900e73f$export$be92b6f5f03c0fe9 = $cc7e05a45900e73f$export$ef9b1
1129
1152
  const $cc7e05a45900e73f$export$41fb9f06171c75f4 = $cc7e05a45900e73f$export$3ac1e88a1c0b9f1;
1130
1153
  const $cc7e05a45900e73f$export$4c8d1a57a761ef94 = $cc7e05a45900e73f$export$e288731fd71264f0;
1131
1154
  const $cc7e05a45900e73f$export$f04a61298a47a40f = $cc7e05a45900e73f$export$99b400cabb58c515;
1155
+ const $cc7e05a45900e73f$export$602eac185826482c = $cc7e05a45900e73f$export$b2af6c9944296213;
1132
1156
  const $cc7e05a45900e73f$export$7c6e2c02157bb7d2 = $cc7e05a45900e73f$export$c973a4b3cb86a03d;
1133
1157
  const $cc7e05a45900e73f$export$d5c6c08dc2d3ca7 = $cc7e05a45900e73f$export$9ed6e7b40248d36d;
1134
1158
  const $cc7e05a45900e73f$export$eb2fcfdbd7ba97d4 = $cc7e05a45900e73f$export$ee25a334c55de1f4;
@@ -1143,5 +1167,5 @@ const $cc7e05a45900e73f$export$1ff3c3f08ae963c0 = $cc7e05a45900e73f$export$eba4b
1143
1167
 
1144
1168
 
1145
1169
 
1146
- export {$cc7e05a45900e73f$export$286727a75dc039bd as createSelectScope, $cc7e05a45900e73f$export$ef9b1a59e592288f as Select, $cc7e05a45900e73f$export$3ac1e88a1c0b9f1 as SelectTrigger, $cc7e05a45900e73f$export$e288731fd71264f0 as SelectValue, $cc7e05a45900e73f$export$99b400cabb58c515 as SelectIcon, $cc7e05a45900e73f$export$c973a4b3cb86a03d as SelectContent, $cc7e05a45900e73f$export$9ed6e7b40248d36d as SelectViewport, $cc7e05a45900e73f$export$ee25a334c55de1f4 as SelectGroup, $cc7e05a45900e73f$export$f67338d29bd972f8 as SelectLabel, $cc7e05a45900e73f$export$13ef48a934230896 as SelectItem, $cc7e05a45900e73f$export$3572fb0fb821ff49 as SelectItemText, $cc7e05a45900e73f$export$6b9198de19accfe6 as SelectItemIndicator, $cc7e05a45900e73f$export$d8117927658af6d7 as SelectScrollUpButton, $cc7e05a45900e73f$export$ff951e476c12189 as SelectScrollDownButton, $cc7e05a45900e73f$export$eba4b1df07cb1d3 as SelectSeparator, $cc7e05a45900e73f$export$be92b6f5f03c0fe9 as Root, $cc7e05a45900e73f$export$41fb9f06171c75f4 as Trigger, $cc7e05a45900e73f$export$4c8d1a57a761ef94 as Value, $cc7e05a45900e73f$export$f04a61298a47a40f as Icon, $cc7e05a45900e73f$export$7c6e2c02157bb7d2 as Content, $cc7e05a45900e73f$export$d5c6c08dc2d3ca7 as Viewport, $cc7e05a45900e73f$export$eb2fcfdbd7ba97d4 as Group, $cc7e05a45900e73f$export$b04be29aa201d4f5 as Label, $cc7e05a45900e73f$export$6d08773d2e66f8f2 as Item, $cc7e05a45900e73f$export$d6e5bf9c43ea9319 as ItemText, $cc7e05a45900e73f$export$c3468e2714d175fa as ItemIndicator, $cc7e05a45900e73f$export$2f60d3ec9ad468f2 as ScrollUpButton, $cc7e05a45900e73f$export$bf1aedc3039c8d63 as ScrollDownButton, $cc7e05a45900e73f$export$1ff3c3f08ae963c0 as Separator};
1170
+ export {$cc7e05a45900e73f$export$286727a75dc039bd as createSelectScope, $cc7e05a45900e73f$export$ef9b1a59e592288f as Select, $cc7e05a45900e73f$export$3ac1e88a1c0b9f1 as SelectTrigger, $cc7e05a45900e73f$export$e288731fd71264f0 as SelectValue, $cc7e05a45900e73f$export$99b400cabb58c515 as SelectIcon, $cc7e05a45900e73f$export$b2af6c9944296213 as SelectPortal, $cc7e05a45900e73f$export$c973a4b3cb86a03d as SelectContent, $cc7e05a45900e73f$export$9ed6e7b40248d36d as SelectViewport, $cc7e05a45900e73f$export$ee25a334c55de1f4 as SelectGroup, $cc7e05a45900e73f$export$f67338d29bd972f8 as SelectLabel, $cc7e05a45900e73f$export$13ef48a934230896 as SelectItem, $cc7e05a45900e73f$export$3572fb0fb821ff49 as SelectItemText, $cc7e05a45900e73f$export$6b9198de19accfe6 as SelectItemIndicator, $cc7e05a45900e73f$export$d8117927658af6d7 as SelectScrollUpButton, $cc7e05a45900e73f$export$ff951e476c12189 as SelectScrollDownButton, $cc7e05a45900e73f$export$eba4b1df07cb1d3 as SelectSeparator, $cc7e05a45900e73f$export$be92b6f5f03c0fe9 as Root, $cc7e05a45900e73f$export$41fb9f06171c75f4 as Trigger, $cc7e05a45900e73f$export$4c8d1a57a761ef94 as Value, $cc7e05a45900e73f$export$f04a61298a47a40f as Icon, $cc7e05a45900e73f$export$602eac185826482c as Portal, $cc7e05a45900e73f$export$7c6e2c02157bb7d2 as Content, $cc7e05a45900e73f$export$d5c6c08dc2d3ca7 as Viewport, $cc7e05a45900e73f$export$eb2fcfdbd7ba97d4 as Group, $cc7e05a45900e73f$export$b04be29aa201d4f5 as Label, $cc7e05a45900e73f$export$6d08773d2e66f8f2 as Item, $cc7e05a45900e73f$export$d6e5bf9c43ea9319 as ItemText, $cc7e05a45900e73f$export$c3468e2714d175fa as ItemIndicator, $cc7e05a45900e73f$export$2f60d3ec9ad468f2 as ScrollUpButton, $cc7e05a45900e73f$export$bf1aedc3039c8d63 as ScrollDownButton, $cc7e05a45900e73f$export$1ff3c3f08ae963c0 as Separator};
1147
1171
  //# sourceMappingURL=index.module.js.map