UEA-PRODEM
This commit is contained in:
+138
-113
@@ -31,18 +31,18 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
||||
// src/index.ts
|
||||
var index_exports = {};
|
||||
__export(index_exports, {
|
||||
Arrow: () => Arrow2,
|
||||
Content: () => Content2,
|
||||
Group: () => Group,
|
||||
Icon: () => Icon,
|
||||
Item: () => Item,
|
||||
ItemIndicator: () => ItemIndicator,
|
||||
ItemText: () => ItemText,
|
||||
Label: () => Label,
|
||||
Portal: () => Portal,
|
||||
Root: () => Root2,
|
||||
ScrollDownButton: () => ScrollDownButton,
|
||||
ScrollUpButton: () => ScrollUpButton,
|
||||
Arrow: () => SelectArrow,
|
||||
Content: () => SelectContent,
|
||||
Group: () => SelectGroup,
|
||||
Icon: () => SelectIcon,
|
||||
Item: () => SelectItem,
|
||||
ItemIndicator: () => SelectItemIndicator,
|
||||
ItemText: () => SelectItemText,
|
||||
Label: () => SelectLabel,
|
||||
Portal: () => SelectPortal,
|
||||
Root: () => Select,
|
||||
ScrollDownButton: () => SelectScrollDownButton,
|
||||
ScrollUpButton: () => SelectScrollUpButton,
|
||||
Select: () => Select,
|
||||
SelectArrow: () => SelectArrow,
|
||||
SelectContent: () => SelectContent,
|
||||
@@ -59,11 +59,15 @@ __export(index_exports, {
|
||||
SelectTrigger: () => SelectTrigger,
|
||||
SelectValue: () => SelectValue,
|
||||
SelectViewport: () => SelectViewport,
|
||||
Separator: () => Separator,
|
||||
Trigger: () => Trigger,
|
||||
Value: () => Value,
|
||||
Viewport: () => Viewport,
|
||||
createSelectScope: () => createSelectScope
|
||||
Separator: () => SelectSeparator,
|
||||
Trigger: () => SelectTrigger,
|
||||
Value: () => SelectValue,
|
||||
Viewport: () => SelectViewport,
|
||||
createSelectScope: () => createSelectScope,
|
||||
unstable_BubbleInput: () => SelectBubbleInput,
|
||||
unstable_Provider: () => SelectProvider,
|
||||
unstable_SelectBubbleInput: () => SelectBubbleInput,
|
||||
unstable_SelectProvider: () => SelectProvider
|
||||
});
|
||||
module.exports = __toCommonJS(index_exports);
|
||||
|
||||
@@ -83,6 +87,7 @@ var import_react_id = require("@radix-ui/react-id");
|
||||
var PopperPrimitive = __toESM(require("@radix-ui/react-popper"));
|
||||
var import_react_popper = require("@radix-ui/react-popper");
|
||||
var import_react_portal = require("@radix-ui/react-portal");
|
||||
var import_react_presence = require("@radix-ui/react-presence");
|
||||
var import_react_primitive = require("@radix-ui/react-primitive");
|
||||
var import_react_slot = require("@radix-ui/react-slot");
|
||||
var import_react_use_callback_ref = require("@radix-ui/react-use-callback-ref");
|
||||
@@ -102,9 +107,10 @@ var [createSelectContext, createSelectScope] = (0, import_react_context.createCo
|
||||
import_react_popper.createPopperScope
|
||||
]);
|
||||
var usePopperScope = (0, import_react_popper.createPopperScope)();
|
||||
var [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME);
|
||||
var [SelectProviderImpl, useSelectContext] = createSelectContext(SELECT_NAME);
|
||||
var [SelectNativeOptionsProvider, useSelectNativeOptionsContext] = createSelectContext(SELECT_NAME);
|
||||
var Select = (props) => {
|
||||
var PROVIDER_NAME = "SelectProvider";
|
||||
function SelectProvider(props) {
|
||||
const {
|
||||
__scopeSelect,
|
||||
children,
|
||||
@@ -119,7 +125,9 @@ var Select = (props) => {
|
||||
autoComplete,
|
||||
disabled,
|
||||
required,
|
||||
form
|
||||
form,
|
||||
// @ts-expect-error internal render prop used by `Select` to compose its default parts
|
||||
internal_do_not_use_render
|
||||
} = props;
|
||||
const popperScope = usePopperScope(__scopeSelect);
|
||||
const [trigger, setTrigger] = React.useState(null);
|
||||
@@ -139,68 +147,72 @@ var Select = (props) => {
|
||||
caller: SELECT_NAME
|
||||
});
|
||||
const triggerPointerDownPosRef = React.useRef(null);
|
||||
const isFormControl = trigger ? form || !!trigger.closest("form") : true;
|
||||
const isFormControl = trigger ? !!form || !!trigger.closest("form") : true;
|
||||
const [nativeOptionsSet, setNativeOptionsSet] = React.useState(/* @__PURE__ */ new Set());
|
||||
const contentId = (0, import_react_id.useId)();
|
||||
const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(";");
|
||||
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
||||
const handleNativeOptionAdd = React.useCallback((option) => {
|
||||
setNativeOptionsSet((prev) => new Set(prev).add(option));
|
||||
}, []);
|
||||
const handleNativeOptionRemove = React.useCallback((option) => {
|
||||
setNativeOptionsSet((prev) => {
|
||||
const optionsSet = new Set(prev);
|
||||
optionsSet.delete(option);
|
||||
return optionsSet;
|
||||
});
|
||||
}, []);
|
||||
const context = {
|
||||
required,
|
||||
trigger,
|
||||
onTriggerChange: setTrigger,
|
||||
valueNode,
|
||||
onValueNodeChange: setValueNode,
|
||||
valueNodeHasChildren,
|
||||
onValueNodeHasChildrenChange: setValueNodeHasChildren,
|
||||
contentId,
|
||||
value,
|
||||
onValueChange: setValue,
|
||||
open,
|
||||
onOpenChange: setOpen,
|
||||
dir: direction,
|
||||
triggerPointerDownPosRef,
|
||||
disabled,
|
||||
name,
|
||||
autoComplete,
|
||||
form,
|
||||
nativeOptions: nativeOptionsSet,
|
||||
nativeSelectKey,
|
||||
isFormControl
|
||||
};
|
||||
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectProviderImpl, { scope: __scopeSelect, ...context, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Collection.Provider, { scope: __scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
||||
SelectNativeOptionsProvider,
|
||||
{
|
||||
scope: __scopeSelect,
|
||||
onNativeOptionAdd: handleNativeOptionAdd,
|
||||
onNativeOptionRemove: handleNativeOptionRemove,
|
||||
children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children
|
||||
}
|
||||
) }) }) });
|
||||
}
|
||||
SelectProvider.displayName = PROVIDER_NAME;
|
||||
var Select = (props) => {
|
||||
const { __scopeSelect, children, ...providerProps } = props;
|
||||
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
||||
SelectProvider,
|
||||
{
|
||||
required,
|
||||
scope: __scopeSelect,
|
||||
trigger,
|
||||
onTriggerChange: setTrigger,
|
||||
valueNode,
|
||||
onValueNodeChange: setValueNode,
|
||||
valueNodeHasChildren,
|
||||
onValueNodeHasChildrenChange: setValueNodeHasChildren,
|
||||
contentId: (0, import_react_id.useId)(),
|
||||
value,
|
||||
onValueChange: setValue,
|
||||
open,
|
||||
onOpenChange: setOpen,
|
||||
dir: direction,
|
||||
triggerPointerDownPosRef,
|
||||
disabled,
|
||||
children: [
|
||||
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Collection.Provider, { scope: __scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
||||
SelectNativeOptionsProvider,
|
||||
{
|
||||
scope: props.__scopeSelect,
|
||||
onNativeOptionAdd: React.useCallback((option) => {
|
||||
setNativeOptionsSet((prev) => new Set(prev).add(option));
|
||||
}, []),
|
||||
onNativeOptionRemove: React.useCallback((option) => {
|
||||
setNativeOptionsSet((prev) => {
|
||||
const optionsSet = new Set(prev);
|
||||
optionsSet.delete(option);
|
||||
return optionsSet;
|
||||
});
|
||||
}, []),
|
||||
children
|
||||
}
|
||||
) }),
|
||||
isFormControl ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
||||
__scopeSelect,
|
||||
...providerProps,
|
||||
internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
||||
children,
|
||||
isFormControl ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
||||
SelectBubbleInput,
|
||||
{
|
||||
"aria-hidden": true,
|
||||
required,
|
||||
tabIndex: -1,
|
||||
name,
|
||||
autoComplete,
|
||||
value,
|
||||
onChange: (event) => setValue(event.target.value),
|
||||
disabled,
|
||||
form,
|
||||
children: [
|
||||
value === void 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("option", { value: "" }) : null,
|
||||
Array.from(nativeOptionsSet)
|
||||
]
|
||||
},
|
||||
nativeSelectKey
|
||||
__scopeSelect
|
||||
}
|
||||
) : null
|
||||
]
|
||||
] })
|
||||
}
|
||||
) });
|
||||
);
|
||||
};
|
||||
Select.displayName = SELECT_NAME;
|
||||
var TRIGGER_NAME = "SelectTrigger";
|
||||
@@ -238,7 +250,7 @@ var SelectTrigger = React.forwardRef(
|
||||
{
|
||||
type: "button",
|
||||
role: "combobox",
|
||||
"aria-controls": context.contentId,
|
||||
"aria-controls": context.open ? context.contentId : void 0,
|
||||
"aria-expanded": context.open,
|
||||
"aria-required": context.required,
|
||||
"aria-autocomplete": "none",
|
||||
@@ -292,13 +304,15 @@ var SelectValue = React.forwardRef(
|
||||
(0, import_react_use_layout_effect.useLayoutEffect)(() => {
|
||||
onValueNodeHasChildrenChange(hasChildren);
|
||||
}, [onValueNodeHasChildrenChange, hasChildren]);
|
||||
const showPlaceholder = shouldShowPlaceholder(context.value);
|
||||
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
||||
import_react_primitive.Primitive.span,
|
||||
{
|
||||
...valueProps,
|
||||
asChild: showPlaceholder ? false : valueProps.asChild,
|
||||
ref: composedRefs,
|
||||
style: { pointerEvents: "none" },
|
||||
children: shouldShowPlaceholder(context.value) ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: placeholder }) : children
|
||||
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(React.Fragment, { children: showPlaceholder ? placeholder : children }, showPlaceholder ? "placeholder" : "value")
|
||||
}
|
||||
);
|
||||
}
|
||||
@@ -313,37 +327,45 @@ var SelectIcon = React.forwardRef(
|
||||
);
|
||||
SelectIcon.displayName = ICON_NAME;
|
||||
var PORTAL_NAME = "SelectPortal";
|
||||
var [PortalProvider, usePortalContext] = createSelectContext(PORTAL_NAME, {
|
||||
forceMount: void 0
|
||||
});
|
||||
var SelectPortal = (props) => {
|
||||
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_portal.Portal, { asChild: true, ...props });
|
||||
const { __scopeSelect, forceMount, ...portalProps } = props;
|
||||
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PortalProvider, { scope: props.__scopeSelect, forceMount, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_portal.Portal, { asChild: true, ...portalProps }) });
|
||||
};
|
||||
SelectPortal.displayName = PORTAL_NAME;
|
||||
var CONTENT_NAME = "SelectContent";
|
||||
var SelectContent = React.forwardRef(
|
||||
(props, forwardedRef) => {
|
||||
const portalContext = usePortalContext(CONTENT_NAME, props.__scopeSelect);
|
||||
const { forceMount = portalContext.forceMount, ...contentProps } = props;
|
||||
const context = useSelectContext(CONTENT_NAME, props.__scopeSelect);
|
||||
const [fragment, setFragment] = React.useState();
|
||||
(0, import_react_use_layout_effect.useLayoutEffect)(() => {
|
||||
setFragment(new DocumentFragment());
|
||||
}, []);
|
||||
if (!context.open) {
|
||||
const frag = fragment;
|
||||
return frag ? ReactDOM.createPortal(
|
||||
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectContentProvider, { scope: props.__scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Collection.Slot, { scope: props.__scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { children: props.children }) }) }),
|
||||
frag
|
||||
) : null;
|
||||
}
|
||||
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectContentImpl, { ...props, ref: forwardedRef });
|
||||
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: ({ present }) => present ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectContentImpl, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectContentFragment, { ...contentProps, fragment }) });
|
||||
}
|
||||
);
|
||||
SelectContent.displayName = CONTENT_NAME;
|
||||
var SelectContentFragment = React.forwardRef((props, forwardedRef) => {
|
||||
const { __scopeSelect, children, fragment } = props;
|
||||
if (!fragment) return null;
|
||||
return ReactDOM.createPortal(
|
||||
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectContentProvider, { scope: __scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Collection.Slot, { scope: __scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { ref: forwardedRef, children }) }) }),
|
||||
fragment
|
||||
);
|
||||
});
|
||||
SelectContentFragment.displayName = "SelectContentFragment";
|
||||
var CONTENT_MARGIN = 10;
|
||||
var [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME);
|
||||
var CONTENT_IMPL_NAME = "SelectContentImpl";
|
||||
var Slot = (0, import_react_slot.createSlot)("SelectContent.RemoveScroll");
|
||||
var SelectContentImpl = React.forwardRef(
|
||||
(props, forwardedRef) => {
|
||||
const { __scopeSelect } = props;
|
||||
const {
|
||||
__scopeSelect,
|
||||
position = "item-aligned",
|
||||
onCloseAutoFocus,
|
||||
onEscapeKeyDown,
|
||||
@@ -417,7 +439,7 @@ var SelectContentImpl = React.forwardRef(
|
||||
if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {
|
||||
event.preventDefault();
|
||||
} else {
|
||||
if (!content.contains(event.target)) {
|
||||
if (!event.composedPath().includes(content)) {
|
||||
onOpenChange(false);
|
||||
}
|
||||
}
|
||||
@@ -1127,18 +1149,21 @@ var SelectArrow = React.forwardRef(
|
||||
(props, forwardedRef) => {
|
||||
const { __scopeSelect, ...arrowProps } = props;
|
||||
const popperScope = usePopperScope(__scopeSelect);
|
||||
const context = useSelectContext(ARROW_NAME, __scopeSelect);
|
||||
const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);
|
||||
return context.open && contentContext.position === "popper" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;
|
||||
return contentContext.position === "popper" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;
|
||||
}
|
||||
);
|
||||
SelectArrow.displayName = ARROW_NAME;
|
||||
var BUBBLE_INPUT_NAME = "SelectBubbleInput";
|
||||
var SelectBubbleInput = React.forwardRef(
|
||||
({ __scopeSelect, value, ...props }, forwardedRef) => {
|
||||
({ __scopeSelect, ...props }, forwardedRef) => {
|
||||
const context = useSelectContext(BUBBLE_INPUT_NAME, __scopeSelect);
|
||||
const { value, onValueChange, required, disabled, name, autoComplete, form } = context;
|
||||
const { nativeOptions, nativeSelectKey } = context;
|
||||
const ref = React.useRef(null);
|
||||
const composedRefs = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, ref);
|
||||
const prevValue = (0, import_react_use_previous.usePrevious)(value);
|
||||
const selectValue = value ?? "";
|
||||
const prevValue = (0, import_react_use_previous.usePrevious)(selectValue);
|
||||
React.useEffect(() => {
|
||||
const select = ref.current;
|
||||
if (!select) return;
|
||||
@@ -1148,24 +1173,40 @@ var SelectBubbleInput = React.forwardRef(
|
||||
"value"
|
||||
);
|
||||
const setValue = descriptor.set;
|
||||
if (prevValue !== value && setValue) {
|
||||
if (prevValue !== selectValue && setValue) {
|
||||
const event = new Event("change", { bubbles: true });
|
||||
setValue.call(select, value);
|
||||
setValue.call(select, selectValue);
|
||||
select.dispatchEvent(event);
|
||||
}
|
||||
}, [prevValue, value]);
|
||||
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
||||
}, [prevValue, selectValue]);
|
||||
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
||||
import_react_primitive.Primitive.select,
|
||||
{
|
||||
"aria-hidden": true,
|
||||
required,
|
||||
tabIndex: -1,
|
||||
name,
|
||||
autoComplete,
|
||||
disabled,
|
||||
form,
|
||||
onChange: (event) => onValueChange(event.target.value),
|
||||
...props,
|
||||
style: { ...import_react_visually_hidden.VISUALLY_HIDDEN_STYLES, ...props.style },
|
||||
ref: composedRefs,
|
||||
defaultValue: value
|
||||
}
|
||||
defaultValue: selectValue,
|
||||
children: [
|
||||
shouldShowPlaceholder(value) ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("option", { value: "" }) : null,
|
||||
Array.from(nativeOptions)
|
||||
]
|
||||
},
|
||||
nativeSelectKey
|
||||
);
|
||||
}
|
||||
);
|
||||
SelectBubbleInput.displayName = BUBBLE_INPUT_NAME;
|
||||
function isFunction(value) {
|
||||
return typeof value === "function";
|
||||
}
|
||||
function shouldShowPlaceholder(value) {
|
||||
return value === "" || value === void 0;
|
||||
}
|
||||
@@ -1209,20 +1250,4 @@ function findNextItem(items, search, currentItem) {
|
||||
function wrapArray(array, startIndex) {
|
||||
return array.map((_, index) => array[(startIndex + index) % array.length]);
|
||||
}
|
||||
var Root2 = Select;
|
||||
var Trigger = SelectTrigger;
|
||||
var Value = SelectValue;
|
||||
var Icon = SelectIcon;
|
||||
var Portal = SelectPortal;
|
||||
var Content2 = SelectContent;
|
||||
var Viewport = SelectViewport;
|
||||
var Group = SelectGroup;
|
||||
var Label = SelectLabel;
|
||||
var Item = SelectItem;
|
||||
var ItemText = SelectItemText;
|
||||
var ItemIndicator = SelectItemIndicator;
|
||||
var ScrollUpButton = SelectScrollUpButton;
|
||||
var ScrollDownButton = SelectScrollDownButton;
|
||||
var Separator = SelectSeparator;
|
||||
var Arrow2 = SelectArrow;
|
||||
//# sourceMappingURL=index.js.map
|
||||
|
||||
Reference in New Issue
Block a user