@radix-ui/react-select 0.1.2-rc.42 → 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,18 +1,20 @@
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";
6
6
  import {createCollection as $01b9c$createCollection} from "@radix-ui/react-collection";
7
7
  import {useComposedRefs as $01b9c$useComposedRefs} from "@radix-ui/react-compose-refs";
8
8
  import {createContextScope as $01b9c$createContextScope} from "@radix-ui/react-context";
9
+ import {useDirection as $01b9c$useDirection} from "@radix-ui/react-direction";
9
10
  import {DismissableLayer as $01b9c$DismissableLayer} from "@radix-ui/react-dismissable-layer";
11
+ import {useFocusGuards as $01b9c$useFocusGuards} from "@radix-ui/react-focus-guards";
10
12
  import {FocusScope as $01b9c$FocusScope} from "@radix-ui/react-focus-scope";
11
13
  import {useId as $01b9c$useId} from "@radix-ui/react-id";
12
14
  import {useLabelContext as $01b9c$useLabelContext} from "@radix-ui/react-label";
13
- import {Portal as $01b9c$Portal} from "@radix-ui/react-portal";
15
+ import {UnstablePortal as $01b9c$UnstablePortal} from "@radix-ui/react-portal";
14
16
  import {Primitive as $01b9c$Primitive} from "@radix-ui/react-primitive";
15
- import {useDirection as $01b9c$useDirection} from "@radix-ui/react-direction";
17
+ import {Slot as $01b9c$Slot} from "@radix-ui/react-slot";
16
18
  import {useCallbackRef as $01b9c$useCallbackRef} from "@radix-ui/react-use-callback-ref";
17
19
  import {useControllableState as $01b9c$useControllableState} from "@radix-ui/react-use-controllable-state";
18
20
  import {useLayoutEffect as $01b9c$useLayoutEffect} from "@radix-ui/react-use-layout-effect";
@@ -31,6 +33,7 @@ $parcel$export($cc7e05a45900e73f$exports, "Select", () => $cc7e05a45900e73f$expo
31
33
  $parcel$export($cc7e05a45900e73f$exports, "SelectTrigger", () => $cc7e05a45900e73f$export$3ac1e88a1c0b9f1);
32
34
  $parcel$export($cc7e05a45900e73f$exports, "SelectValue", () => $cc7e05a45900e73f$export$e288731fd71264f0);
33
35
  $parcel$export($cc7e05a45900e73f$exports, "SelectIcon", () => $cc7e05a45900e73f$export$99b400cabb58c515);
36
+ $parcel$export($cc7e05a45900e73f$exports, "SelectPortal", () => $cc7e05a45900e73f$export$b2af6c9944296213);
34
37
  $parcel$export($cc7e05a45900e73f$exports, "SelectContent", () => $cc7e05a45900e73f$export$c973a4b3cb86a03d);
35
38
  $parcel$export($cc7e05a45900e73f$exports, "SelectViewport", () => $cc7e05a45900e73f$export$9ed6e7b40248d36d);
36
39
  $parcel$export($cc7e05a45900e73f$exports, "SelectGroup", () => $cc7e05a45900e73f$export$ee25a334c55de1f4);
@@ -45,6 +48,7 @@ $parcel$export($cc7e05a45900e73f$exports, "Root", () => $cc7e05a45900e73f$export
45
48
  $parcel$export($cc7e05a45900e73f$exports, "Trigger", () => $cc7e05a45900e73f$export$41fb9f06171c75f4);
46
49
  $parcel$export($cc7e05a45900e73f$exports, "Value", () => $cc7e05a45900e73f$export$4c8d1a57a761ef94);
47
50
  $parcel$export($cc7e05a45900e73f$exports, "Icon", () => $cc7e05a45900e73f$export$f04a61298a47a40f);
51
+ $parcel$export($cc7e05a45900e73f$exports, "Portal", () => $cc7e05a45900e73f$export$602eac185826482c);
48
52
  $parcel$export($cc7e05a45900e73f$exports, "Content", () => $cc7e05a45900e73f$export$7c6e2c02157bb7d2);
49
53
  $parcel$export($cc7e05a45900e73f$exports, "Viewport", () => $cc7e05a45900e73f$export$d5c6c08dc2d3ca7);
50
54
  $parcel$export($cc7e05a45900e73f$exports, "Group", () => $cc7e05a45900e73f$export$eb2fcfdbd7ba97d4);
@@ -74,6 +78,8 @@ $parcel$export($cc7e05a45900e73f$exports, "Separator", () => $cc7e05a45900e73f$e
74
78
 
75
79
 
76
80
 
81
+
82
+
77
83
 
78
84
 
79
85
 
@@ -95,8 +101,9 @@ const [$cc7e05a45900e73f$var$createSelectContext, $cc7e05a45900e73f$export$28672
95
101
  $cc7e05a45900e73f$var$createCollectionScope
96
102
  ]);
97
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);
98
105
  const $cc7e05a45900e73f$export$ef9b1a59e592288f = (props)=>{
99
- 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;
100
107
  const [trigger, setTrigger] = $01b9c$useState(null);
101
108
  const [valueNode, setValueNode] = $01b9c$useState(null);
102
109
  const [valueNodeHasChildren, setValueNodeHasChildren] = $01b9c$useState(false);
@@ -111,7 +118,15 @@ const $cc7e05a45900e73f$export$ef9b1a59e592288f = (props)=>{
111
118
  defaultProp: defaultValue,
112
119
  onChange: onValueChange
113
120
  });
114
- 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(';');
115
130
  return /*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$SelectProvider, {
116
131
  scope: __scopeSelect,
117
132
  trigger: trigger,
@@ -126,12 +141,33 @@ const $cc7e05a45900e73f$export$ef9b1a59e592288f = (props)=>{
126
141
  open: open,
127
142
  onOpenChange: setOpen,
128
143
  dir: direction,
129
- name: name,
130
- autoComplete: autoComplete,
131
- triggerPointerDownPosRef: triggerPointerDownPosRef
144
+ triggerPointerDownPosRef: triggerPointerDownPosRef,
145
+ allowPinchZoom: allowPinchZoom
132
146
  }, /*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$Collection.Provider, {
133
147
  scope: __scopeSelect
134
- }, 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);
135
171
  };
136
172
  /*#__PURE__*/ Object.assign($cc7e05a45900e73f$export$ef9b1a59e592288f, {
137
173
  displayName: $cc7e05a45900e73f$var$SELECT_NAME
@@ -244,47 +280,27 @@ const $cc7e05a45900e73f$export$99b400cabb58c515 = /*#__PURE__*/ $01b9c$forwardRe
244
280
  /*#__PURE__*/ Object.assign($cc7e05a45900e73f$export$99b400cabb58c515, {
245
281
  displayName: $cc7e05a45900e73f$var$ICON_NAME
246
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
+ });
247
294
  /* -------------------------------------------------------------------------------------------------
248
295
  * SelectContent
249
296
  * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$CONTENT_NAME = 'SelectContent';
250
- const [$cc7e05a45900e73f$var$SelectNativeOptionsProvider, $cc7e05a45900e73f$var$useSelectNativeOptionsContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$CONTENT_NAME);
251
297
  const $cc7e05a45900e73f$export$c973a4b3cb86a03d = /*#__PURE__*/ $01b9c$forwardRef((props, forwardedRef)=>{
252
298
  const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$CONTENT_NAME, props.__scopeSelect);
253
- const [fragment, setFragment] = $01b9c$useState(); // We set this to true by default so that events bubble to forms without JS (SSR)
254
- const isFormControl = context.trigger ? Boolean(context.trigger.closest('form')) : true;
255
- const [nativeOptionsSet, setNativeOptionsSet] = $01b9c$useState(new Set()); // The native `select` only associates the correct default value if the corresponding
256
- // `option` is rendered as a child **at the same time** as itself.
257
- // Because it might take a few renders for our items to gather the information to build
258
- // the native `option`(s), we generate a key on the `select` to make sure React re-builds it
259
- // each time the options change.
260
- const nativeSelectKey = Array.from(nativeOptionsSet).map((option)=>option.props.value
261
- ).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
262
300
  $01b9c$useLayoutEffect(()=>{
263
301
  setFragment(new DocumentFragment());
264
302
  }, []);
265
- return /*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$SelectNativeOptionsProvider, {
266
- scope: props.__scopeSelect,
267
- onNativeOptionAdd: $01b9c$useCallback((option)=>{
268
- setNativeOptionsSet((prev)=>new Set(prev).add(option)
269
- );
270
- }, []),
271
- onNativeOptionRemove: $01b9c$useCallback((option)=>{
272
- setNativeOptionsSet((prev)=>{
273
- const optionsSet = new Set(prev);
274
- optionsSet.delete(option);
275
- return optionsSet;
276
- });
277
- }, [])
278
- }, isFormControl ? /*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$BubbleSelect, {
279
- key: nativeSelectKey,
280
- "aria-hidden": true,
281
- tabIndex: -1,
282
- name: context.name,
283
- autoComplete: context.autoComplete,
284
- value: context.value // enable form autofill
285
- ,
286
- onChange: (event)=>context.onValueChange(event.target.value)
287
- }, 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, {
288
304
  ref: forwardedRef
289
305
  })) : fragment ? /*#__PURE__*/ $01b9c$createPortal(/*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$SelectContentProvider, {
290
306
  scope: props.__scopeSelect
@@ -316,6 +332,14 @@ const $cc7e05a45900e73f$var$SelectContentImpl = /*#__PURE__*/ $01b9c$forwardRef(
316
332
  if (content) return $01b9c$hideOthers(content);
317
333
  }, [
318
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
319
343
  ]);
320
344
  const focusFirst = $01b9c$useCallback((candidates)=>{
321
345
  const [firstItem, ...restItems] = getItems().map((item)=>item.ref.current
@@ -563,13 +587,16 @@ const $cc7e05a45900e73f$var$SelectContentImpl = /*#__PURE__*/ $01b9c$forwardRef(
563
587
  isPositioned: isPositioned,
564
588
  shouldExpandOnScrollRef: shouldExpandOnScrollRef,
565
589
  searchRef: searchRef
566
- }, /*#__PURE__*/ $01b9c$createElement($01b9c$Portal, null, /*#__PURE__*/ $01b9c$createElement($01b9c$RemoveScroll, null, /*#__PURE__*/ $01b9c$createElement("div", {
590
+ }, /*#__PURE__*/ $01b9c$createElement($01b9c$RemoveScroll, {
591
+ as: $01b9c$Slot,
592
+ allowPinchZoom: context.allowPinchZoom
593
+ }, /*#__PURE__*/ $01b9c$createElement("div", {
567
594
  ref: setContentWrapper,
568
595
  style: {
569
596
  display: 'flex',
570
597
  flexDirection: 'column',
571
598
  position: 'fixed',
572
- zIndex: 0
599
+ zIndex: contentZIndex
573
600
  }
574
601
  }, /*#__PURE__*/ $01b9c$createElement($01b9c$FocusScope, {
575
602
  asChild: true // we make sure we're not trapping once it's been closed
@@ -644,7 +671,7 @@ const $cc7e05a45900e73f$var$SelectContentImpl = /*#__PURE__*/ $01b9c$forwardRef(
644
671
  event.preventDefault();
645
672
  }
646
673
  })
647
- })))))));
674
+ }))))));
648
675
  });
649
676
  /* -------------------------------------------------------------------------------------------------
650
677
  * SelectViewport
@@ -1125,6 +1152,7 @@ const $cc7e05a45900e73f$export$be92b6f5f03c0fe9 = $cc7e05a45900e73f$export$ef9b1
1125
1152
  const $cc7e05a45900e73f$export$41fb9f06171c75f4 = $cc7e05a45900e73f$export$3ac1e88a1c0b9f1;
1126
1153
  const $cc7e05a45900e73f$export$4c8d1a57a761ef94 = $cc7e05a45900e73f$export$e288731fd71264f0;
1127
1154
  const $cc7e05a45900e73f$export$f04a61298a47a40f = $cc7e05a45900e73f$export$99b400cabb58c515;
1155
+ const $cc7e05a45900e73f$export$602eac185826482c = $cc7e05a45900e73f$export$b2af6c9944296213;
1128
1156
  const $cc7e05a45900e73f$export$7c6e2c02157bb7d2 = $cc7e05a45900e73f$export$c973a4b3cb86a03d;
1129
1157
  const $cc7e05a45900e73f$export$d5c6c08dc2d3ca7 = $cc7e05a45900e73f$export$9ed6e7b40248d36d;
1130
1158
  const $cc7e05a45900e73f$export$eb2fcfdbd7ba97d4 = $cc7e05a45900e73f$export$ee25a334c55de1f4;
@@ -1139,5 +1167,5 @@ const $cc7e05a45900e73f$export$1ff3c3f08ae963c0 = $cc7e05a45900e73f$export$eba4b
1139
1167
 
1140
1168
 
1141
1169
 
1142
- 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};
1143
1171
  //# sourceMappingURL=index.module.js.map