@beweco/aurora-ui 0.1.45 → 0.1.47
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.
package/dist/index.cjs.js
CHANGED
|
@@ -1964,6 +1964,264 @@ var ImagePreview = function (_a) {
|
|
|
1964
1964
|
: undefined, role: isClickable ? "button" : undefined, tabIndex: isClickable ? 0 : undefined, "aria-label": isClickable ? t.clickableImageAriaLabel : undefined }), showRemoveButton && onRemove && (jsxRuntime.jsx("button", { type: "button", onClick: function () { return handleRemove(image.id || "", index); }, "aria-label": t.removeButtonAriaLabel, className: "\n\t\t\t\t\t\t\t\t\tabsolute -top-2 -right-2 \n\t\t\t\t\t\t\t\t\tp-1 rounded-full \n\t\t\t\t\t\t\t\t\tbg-danger-500 hover:bg-danger-600 \n\t\t\t\t\t\t\t\t\ttext-white \n\t\t\t\t\t\t\t\t\tcursor-pointer \n\t\t\t\t\t\t\t\t\ttransition-colors\n\t\t\t\t\t\t\t\t\tfocus:outline-none \n\t\t\t\t\t\t\t\t\tfocus:ring-2 \n\t\t\t\t\t\t\t\t\tfocus:ring-danger-400 \n\t\t\t\t\t\t\t\t\tfocus:ring-offset-2\n\t\t\t\t\t\t\t\t", children: jsxRuntime.jsx(IconComponent, { size: size === "micro" ? "sm" : "md", icon: "solar:trash-bin-minimalistic-outline" }) }))] }) }, image.id || index)); }) }));
|
|
1965
1965
|
};
|
|
1966
1966
|
|
|
1967
|
+
/*
|
|
1968
|
+
* Copyright 2020 Adobe. All rights reserved.
|
|
1969
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
1970
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
1971
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
1972
|
+
*
|
|
1973
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
1974
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
1975
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
1976
|
+
* governing permissions and limitations under the License.
|
|
1977
|
+
*/ function $7215afc6de606d6b$export$de79e2c695e052f3(element) {
|
|
1978
|
+
if ($7215afc6de606d6b$var$supportsPreventScroll()) element.focus({
|
|
1979
|
+
preventScroll: true
|
|
1980
|
+
});
|
|
1981
|
+
else {
|
|
1982
|
+
let scrollableElements = $7215afc6de606d6b$var$getScrollableElements(element);
|
|
1983
|
+
element.focus();
|
|
1984
|
+
$7215afc6de606d6b$var$restoreScrollPosition(scrollableElements);
|
|
1985
|
+
}
|
|
1986
|
+
}
|
|
1987
|
+
let $7215afc6de606d6b$var$supportsPreventScrollCached = null;
|
|
1988
|
+
function $7215afc6de606d6b$var$supportsPreventScroll() {
|
|
1989
|
+
if ($7215afc6de606d6b$var$supportsPreventScrollCached == null) {
|
|
1990
|
+
$7215afc6de606d6b$var$supportsPreventScrollCached = false;
|
|
1991
|
+
try {
|
|
1992
|
+
let focusElem = document.createElement('div');
|
|
1993
|
+
focusElem.focus({
|
|
1994
|
+
get preventScroll () {
|
|
1995
|
+
$7215afc6de606d6b$var$supportsPreventScrollCached = true;
|
|
1996
|
+
return true;
|
|
1997
|
+
}
|
|
1998
|
+
});
|
|
1999
|
+
} catch {
|
|
2000
|
+
// Ignore
|
|
2001
|
+
}
|
|
2002
|
+
}
|
|
2003
|
+
return $7215afc6de606d6b$var$supportsPreventScrollCached;
|
|
2004
|
+
}
|
|
2005
|
+
function $7215afc6de606d6b$var$getScrollableElements(element) {
|
|
2006
|
+
let parent = element.parentNode;
|
|
2007
|
+
let scrollableElements = [];
|
|
2008
|
+
let rootScrollingElement = document.scrollingElement || document.documentElement;
|
|
2009
|
+
while(parent instanceof HTMLElement && parent !== rootScrollingElement){
|
|
2010
|
+
if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) scrollableElements.push({
|
|
2011
|
+
element: parent,
|
|
2012
|
+
scrollTop: parent.scrollTop,
|
|
2013
|
+
scrollLeft: parent.scrollLeft
|
|
2014
|
+
});
|
|
2015
|
+
parent = parent.parentNode;
|
|
2016
|
+
}
|
|
2017
|
+
if (rootScrollingElement instanceof HTMLElement) scrollableElements.push({
|
|
2018
|
+
element: rootScrollingElement,
|
|
2019
|
+
scrollTop: rootScrollingElement.scrollTop,
|
|
2020
|
+
scrollLeft: rootScrollingElement.scrollLeft
|
|
2021
|
+
});
|
|
2022
|
+
return scrollableElements;
|
|
2023
|
+
}
|
|
2024
|
+
function $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements) {
|
|
2025
|
+
for (let { element: element, scrollTop: scrollTop, scrollLeft: scrollLeft } of scrollableElements){
|
|
2026
|
+
element.scrollTop = scrollTop;
|
|
2027
|
+
element.scrollLeft = scrollLeft;
|
|
2028
|
+
}
|
|
2029
|
+
}
|
|
2030
|
+
|
|
2031
|
+
/*
|
|
2032
|
+
* Copyright 2020 Adobe. All rights reserved.
|
|
2033
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
2034
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
2035
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
2036
|
+
*
|
|
2037
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
2038
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
2039
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
2040
|
+
* governing permissions and limitations under the License.
|
|
2041
|
+
*/ function $c87311424ea30a05$var$testUserAgent(re) {
|
|
2042
|
+
var _window_navigator_userAgentData;
|
|
2043
|
+
if (typeof window === 'undefined' || window.navigator == null) return false;
|
|
2044
|
+
return ((_window_navigator_userAgentData = window.navigator['userAgentData']) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.brands.some((brand)=>re.test(brand.brand))) || re.test(window.navigator.userAgent);
|
|
2045
|
+
}
|
|
2046
|
+
function $c87311424ea30a05$var$testPlatform(re) {
|
|
2047
|
+
var _window_navigator_userAgentData;
|
|
2048
|
+
return typeof window !== 'undefined' && window.navigator != null ? re.test(((_window_navigator_userAgentData = window.navigator['userAgentData']) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.platform) || window.navigator.platform) : false;
|
|
2049
|
+
}
|
|
2050
|
+
function $c87311424ea30a05$var$cached(fn) {
|
|
2051
|
+
if (process.env.NODE_ENV === 'test') return fn;
|
|
2052
|
+
let res = null;
|
|
2053
|
+
return ()=>{
|
|
2054
|
+
if (res == null) res = fn();
|
|
2055
|
+
return res;
|
|
2056
|
+
};
|
|
2057
|
+
}
|
|
2058
|
+
const $c87311424ea30a05$export$9ac100e40613ea10 = $c87311424ea30a05$var$cached(function() {
|
|
2059
|
+
return $c87311424ea30a05$var$testPlatform(/^Mac/i);
|
|
2060
|
+
});
|
|
2061
|
+
const $c87311424ea30a05$export$186c6964ca17d99 = $c87311424ea30a05$var$cached(function() {
|
|
2062
|
+
return $c87311424ea30a05$var$testPlatform(/^iPhone/i);
|
|
2063
|
+
});
|
|
2064
|
+
const $c87311424ea30a05$export$7bef049ce92e4224 = $c87311424ea30a05$var$cached(function() {
|
|
2065
|
+
return $c87311424ea30a05$var$testPlatform(/^iPad/i) || // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.
|
|
2066
|
+
$c87311424ea30a05$export$9ac100e40613ea10() && navigator.maxTouchPoints > 1;
|
|
2067
|
+
});
|
|
2068
|
+
const $c87311424ea30a05$export$fedb369cb70207f1 = $c87311424ea30a05$var$cached(function() {
|
|
2069
|
+
return $c87311424ea30a05$export$186c6964ca17d99() || $c87311424ea30a05$export$7bef049ce92e4224();
|
|
2070
|
+
});
|
|
2071
|
+
$c87311424ea30a05$var$cached(function() {
|
|
2072
|
+
return $c87311424ea30a05$export$9ac100e40613ea10() || $c87311424ea30a05$export$fedb369cb70207f1();
|
|
2073
|
+
});
|
|
2074
|
+
const $c87311424ea30a05$export$78551043582a6a98 = $c87311424ea30a05$var$cached(function() {
|
|
2075
|
+
return $c87311424ea30a05$var$testUserAgent(/AppleWebKit/i) && !$c87311424ea30a05$export$6446a186d09e379e();
|
|
2076
|
+
});
|
|
2077
|
+
const $c87311424ea30a05$export$6446a186d09e379e = $c87311424ea30a05$var$cached(function() {
|
|
2078
|
+
return $c87311424ea30a05$var$testUserAgent(/Chrome/i);
|
|
2079
|
+
});
|
|
2080
|
+
$c87311424ea30a05$var$cached(function() {
|
|
2081
|
+
return $c87311424ea30a05$var$testUserAgent(/Android/i);
|
|
2082
|
+
});
|
|
2083
|
+
const $c87311424ea30a05$export$b7d78993b74f766d = $c87311424ea30a05$var$cached(function() {
|
|
2084
|
+
return $c87311424ea30a05$var$testUserAgent(/Firefox/i);
|
|
2085
|
+
});
|
|
2086
|
+
|
|
2087
|
+
/*
|
|
2088
|
+
* Copyright 2023 Adobe. All rights reserved.
|
|
2089
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
2090
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
2091
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
2092
|
+
*
|
|
2093
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
2094
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
2095
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
2096
|
+
* governing permissions and limitations under the License.
|
|
2097
|
+
*/
|
|
2098
|
+
|
|
2099
|
+
|
|
2100
|
+
const $ea8dcbcb9ea1b556$var$RouterContext = /*#__PURE__*/ (React.createContext)({
|
|
2101
|
+
isNative: true,
|
|
2102
|
+
open: $ea8dcbcb9ea1b556$var$openSyntheticLink,
|
|
2103
|
+
useHref: (href)=>href
|
|
2104
|
+
});
|
|
2105
|
+
function $ea8dcbcb9ea1b556$export$9a302a45f65d0572() {
|
|
2106
|
+
return (React.useContext)($ea8dcbcb9ea1b556$var$RouterContext);
|
|
2107
|
+
}
|
|
2108
|
+
function $ea8dcbcb9ea1b556$export$95185d699e05d4d7(target, modifiers, setOpening = true) {
|
|
2109
|
+
var _window_event_type, _window_event;
|
|
2110
|
+
let { metaKey: metaKey, ctrlKey: ctrlKey, altKey: altKey, shiftKey: shiftKey } = modifiers;
|
|
2111
|
+
// Firefox does not recognize keyboard events as a user action by default, and the popup blocker
|
|
2112
|
+
// will prevent links with target="_blank" from opening. However, it does allow the event if the
|
|
2113
|
+
// Command/Control key is held, which opens the link in a background tab. This seems like the best we can do.
|
|
2114
|
+
// See https://bugzilla.mozilla.org/show_bug.cgi?id=257870 and https://bugzilla.mozilla.org/show_bug.cgi?id=746640.
|
|
2115
|
+
if (($c87311424ea30a05$export$b7d78993b74f766d)() && ((_window_event = window.event) === null || _window_event === void 0 ? void 0 : (_window_event_type = _window_event.type) === null || _window_event_type === void 0 ? void 0 : _window_event_type.startsWith('key')) && target.target === '_blank') {
|
|
2116
|
+
if (($c87311424ea30a05$export$9ac100e40613ea10)()) metaKey = true;
|
|
2117
|
+
else ctrlKey = true;
|
|
2118
|
+
}
|
|
2119
|
+
// WebKit does not support firing click events with modifier keys, but does support keyboard events.
|
|
2120
|
+
// https://github.com/WebKit/WebKit/blob/c03d0ac6e6db178f90923a0a63080b5ca210d25f/Source/WebCore/html/HTMLAnchorElement.cpp#L184
|
|
2121
|
+
let event = ($c87311424ea30a05$export$78551043582a6a98)() && ($c87311424ea30a05$export$9ac100e40613ea10)() && !($c87311424ea30a05$export$7bef049ce92e4224)() && process.env.NODE_ENV !== 'test' ? new KeyboardEvent('keydown', {
|
|
2122
|
+
keyIdentifier: 'Enter',
|
|
2123
|
+
metaKey: metaKey,
|
|
2124
|
+
ctrlKey: ctrlKey,
|
|
2125
|
+
altKey: altKey,
|
|
2126
|
+
shiftKey: shiftKey
|
|
2127
|
+
}) : new MouseEvent('click', {
|
|
2128
|
+
metaKey: metaKey,
|
|
2129
|
+
ctrlKey: ctrlKey,
|
|
2130
|
+
altKey: altKey,
|
|
2131
|
+
shiftKey: shiftKey,
|
|
2132
|
+
bubbles: true,
|
|
2133
|
+
cancelable: true
|
|
2134
|
+
});
|
|
2135
|
+
$ea8dcbcb9ea1b556$export$95185d699e05d4d7.isOpening = setOpening;
|
|
2136
|
+
($7215afc6de606d6b$export$de79e2c695e052f3)(target);
|
|
2137
|
+
target.dispatchEvent(event);
|
|
2138
|
+
$ea8dcbcb9ea1b556$export$95185d699e05d4d7.isOpening = false;
|
|
2139
|
+
}
|
|
2140
|
+
// https://github.com/parcel-bundler/parcel/issues/8724
|
|
2141
|
+
$ea8dcbcb9ea1b556$export$95185d699e05d4d7.isOpening = false;
|
|
2142
|
+
function $ea8dcbcb9ea1b556$var$getSyntheticLink(target, open) {
|
|
2143
|
+
if (target instanceof HTMLAnchorElement) open(target);
|
|
2144
|
+
else if (target.hasAttribute('data-href')) {
|
|
2145
|
+
let link = document.createElement('a');
|
|
2146
|
+
link.href = target.getAttribute('data-href');
|
|
2147
|
+
if (target.hasAttribute('data-target')) link.target = target.getAttribute('data-target');
|
|
2148
|
+
if (target.hasAttribute('data-rel')) link.rel = target.getAttribute('data-rel');
|
|
2149
|
+
if (target.hasAttribute('data-download')) link.download = target.getAttribute('data-download');
|
|
2150
|
+
if (target.hasAttribute('data-ping')) link.ping = target.getAttribute('data-ping');
|
|
2151
|
+
if (target.hasAttribute('data-referrer-policy')) link.referrerPolicy = target.getAttribute('data-referrer-policy');
|
|
2152
|
+
target.appendChild(link);
|
|
2153
|
+
open(link);
|
|
2154
|
+
target.removeChild(link);
|
|
2155
|
+
}
|
|
2156
|
+
}
|
|
2157
|
+
function $ea8dcbcb9ea1b556$var$openSyntheticLink(target, modifiers) {
|
|
2158
|
+
$ea8dcbcb9ea1b556$var$getSyntheticLink(target, (link)=>$ea8dcbcb9ea1b556$export$95185d699e05d4d7(link, modifiers));
|
|
2159
|
+
}
|
|
2160
|
+
|
|
2161
|
+
/*
|
|
2162
|
+
* Copyright 2020 Adobe. All rights reserved.
|
|
2163
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
2164
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
2165
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
2166
|
+
*
|
|
2167
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
2168
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
2169
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
2170
|
+
* governing permissions and limitations under the License.
|
|
2171
|
+
*/
|
|
2172
|
+
function $458b0a5536c1a7cf$export$40bfa8c7b0832715(value, defaultValue, onChange) {
|
|
2173
|
+
let [stateValue, setStateValue] = (React.useState)(value || defaultValue);
|
|
2174
|
+
let isControlledRef = (React.useRef)(value !== undefined);
|
|
2175
|
+
let isControlled = value !== undefined;
|
|
2176
|
+
(React.useEffect)(()=>{
|
|
2177
|
+
let wasControlled = isControlledRef.current;
|
|
2178
|
+
if (wasControlled !== isControlled && process.env.NODE_ENV !== 'production') console.warn(`WARN: A component changed from ${wasControlled ? 'controlled' : 'uncontrolled'} to ${isControlled ? 'controlled' : 'uncontrolled'}.`);
|
|
2179
|
+
isControlledRef.current = isControlled;
|
|
2180
|
+
}, [
|
|
2181
|
+
isControlled
|
|
2182
|
+
]);
|
|
2183
|
+
let currentValue = isControlled ? value : stateValue;
|
|
2184
|
+
let setValue = (React.useCallback)((value, ...args)=>{
|
|
2185
|
+
let onChangeCaller = (value, ...onChangeArgs)=>{
|
|
2186
|
+
if (onChange) {
|
|
2187
|
+
if (!Object.is(currentValue, value)) onChange(value, ...onChangeArgs);
|
|
2188
|
+
}
|
|
2189
|
+
if (!isControlled) // If uncontrolled, mutate the currentValue local variable so that
|
|
2190
|
+
// calling setState multiple times with the same value only emits onChange once.
|
|
2191
|
+
// We do not use a ref for this because we specifically _do_ want the value to
|
|
2192
|
+
// reset every render, and assigning to a ref in render breaks aborted suspended renders.
|
|
2193
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
2194
|
+
currentValue = value;
|
|
2195
|
+
};
|
|
2196
|
+
if (typeof value === 'function') {
|
|
2197
|
+
if (process.env.NODE_ENV !== 'production') console.warn('We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320');
|
|
2198
|
+
// this supports functional updates https://reactjs.org/docs/hooks-reference.html#functional-updates
|
|
2199
|
+
// when someone using useControlledState calls setControlledState(myFunc)
|
|
2200
|
+
// this will call our useState setState with a function as well which invokes myFunc and calls onChange with the value from myFunc
|
|
2201
|
+
// if we're in an uncontrolled state, then we also return the value of myFunc which to setState looks as though it was just called with myFunc from the beginning
|
|
2202
|
+
// otherwise we just return the controlled value, which won't cause a rerender because React knows to bail out when the value is the same
|
|
2203
|
+
let updateFunction = (oldValue, ...functionArgs)=>{
|
|
2204
|
+
let interceptedValue = value(isControlled ? currentValue : oldValue, ...functionArgs);
|
|
2205
|
+
onChangeCaller(interceptedValue, ...args);
|
|
2206
|
+
if (!isControlled) return interceptedValue;
|
|
2207
|
+
return oldValue;
|
|
2208
|
+
};
|
|
2209
|
+
setStateValue(updateFunction);
|
|
2210
|
+
} else {
|
|
2211
|
+
if (!isControlled) setStateValue(value);
|
|
2212
|
+
onChangeCaller(value, ...args);
|
|
2213
|
+
}
|
|
2214
|
+
}, [
|
|
2215
|
+
isControlled,
|
|
2216
|
+
currentValue,
|
|
2217
|
+
onChange
|
|
2218
|
+
]);
|
|
2219
|
+
return [
|
|
2220
|
+
currentValue,
|
|
2221
|
+
setValue
|
|
2222
|
+
];
|
|
2223
|
+
}
|
|
2224
|
+
|
|
1967
2225
|
function normalizeClass(value) {
|
|
1968
2226
|
if (typeof value === "string") {
|
|
1969
2227
|
return value || undefined;
|
|
@@ -2021,25 +2279,37 @@ var EnumMenuNavListItem;
|
|
|
2021
2279
|
* @forwardRef
|
|
2022
2280
|
*/
|
|
2023
2281
|
var MenuNavList = React.forwardRef(function (_a, ref) {
|
|
2024
|
-
var items = _a.items, isCollapsed = _a.isCollapsed, defaultSelectedKey = _a.defaultSelectedKey
|
|
2282
|
+
var items = _a.items, isCollapsed = _a.isCollapsed, defaultSelectedKey = _a.defaultSelectedKey, onSelect = _a.onSelect, hideEndContent = _a.hideEndContent, _b = _a.sectionClasses, sectionClassesProp = _b === void 0 ? {} : _b, _c = _a.itemClasses, itemClassesProp = _c === void 0 ? {} : _c, iconClassName = _a.iconClassName, classNames = _a.classNames, className = _a.className, props = __rest(_a, ["items", "isCollapsed", "defaultSelectedKey", "onSelect", "hideEndContent", "sectionClasses", "itemClasses", "iconClassName", "classNames", "className"]);
|
|
2025
2283
|
var _d = React.useState(defaultSelectedKey), selected = _d[0], setSelected = _d[1];
|
|
2284
|
+
var router = $ea8dcbcb9ea1b556$export$9a302a45f65d0572();
|
|
2026
2285
|
// Component styles
|
|
2027
2286
|
var sectionClasses = getSectionClasses(isCollapsed, sectionClassesProp);
|
|
2028
2287
|
var itemClasses = getItemClasses(isCollapsed, itemClassesProp);
|
|
2029
|
-
// Handles the click event on an item, updating the selection state.
|
|
2288
|
+
// Handles the click event on an item, updating the selection state and navigating.
|
|
2030
2289
|
// biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>
|
|
2031
2290
|
var handleItemPress = React.useCallback(function (item, parentKey) {
|
|
2032
2291
|
var keySelected = typeof parentKey === "string" ? parentKey : item.key;
|
|
2033
2292
|
setSelected(keySelected);
|
|
2293
|
+
onSelect === null || onSelect === void 0 ? void 0 : onSelect(keySelected);
|
|
2294
|
+
// Use the router provider for client-side navigation (avoids full page reload)
|
|
2295
|
+
if (item.href && item.href !== "#") {
|
|
2296
|
+
if (!router.isNative) {
|
|
2297
|
+
router.open(document.activeElement, new MouseEvent("click"), item.href);
|
|
2298
|
+
}
|
|
2299
|
+
else {
|
|
2300
|
+
window.location.href = item.href;
|
|
2301
|
+
}
|
|
2302
|
+
}
|
|
2034
2303
|
// Force blur to remove hover state after click.
|
|
2035
2304
|
if (document.activeElement instanceof HTMLElement) {
|
|
2036
2305
|
document.activeElement.blur();
|
|
2037
2306
|
}
|
|
2038
|
-
}, [setSelected]);
|
|
2307
|
+
}, [setSelected, onSelect, router]);
|
|
2039
2308
|
// Renders the item displayed inside the Popover when the menu is collapsed.
|
|
2040
2309
|
var renderCompactItem = React.useCallback(function (item, parentKey) {
|
|
2041
2310
|
var _a, _b;
|
|
2042
|
-
|
|
2311
|
+
item.href; var itemWithoutHref = __rest(item, ["href"]);
|
|
2312
|
+
return (React.createElement(react.ListboxItem, __assign({}, itemWithoutHref, { key: item.key, endContent: (_a = item.endContent) !== null && _a !== void 0 ? _a : null, startContent: item.icon ? (jsxRuntime.jsx(IconComponent, { className: react.cn("text-default-500", "group-data-[selected=true]:text-default-600", iconClassName), icon: item.icon, size: "lg" })) : (((_b = item.startContent) !== null && _b !== void 0 ? _b : null)), textValue: item.title, title: item.title, className: "data-[hover=true]:text-default-600", onPress: function () { return handleItemPress(item, parentKey); } })));
|
|
2043
2313
|
}, [handleItemPress, iconClassName]);
|
|
2044
2314
|
// Renders a nested item, i.e., an item that has sub-items.
|
|
2045
2315
|
// biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>
|
|
@@ -2048,10 +2318,8 @@ var MenuNavList = React.forwardRef(function (_a, ref) {
|
|
|
2048
2318
|
var isNestType = item.items &&
|
|
2049
2319
|
((_a = item.items) === null || _a === void 0 ? void 0 : _a.length) > 0 &&
|
|
2050
2320
|
(item === null || item === void 0 ? void 0 : item.type) === EnumMenuNavListItem.Nest;
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
}
|
|
2054
|
-
return (React.createElement(react.ListboxItem, __assign({}, item, { key: item.key, classNames: {
|
|
2321
|
+
item.href; var itemWithoutHref = __rest(item, ["href"]);
|
|
2322
|
+
return (React.createElement(react.ListboxItem, __assign({}, itemWithoutHref, { key: item.key, classNames: {
|
|
2055
2323
|
base: react.cn({
|
|
2056
2324
|
"h-auto p-0": !isCollapsed && isNestType,
|
|
2057
2325
|
}, {
|
|
@@ -2088,7 +2356,8 @@ var MenuNavList = React.forwardRef(function (_a, ref) {
|
|
|
2088
2356
|
return renderNestItem(item);
|
|
2089
2357
|
}
|
|
2090
2358
|
var isItemSelected = selected === item.key;
|
|
2091
|
-
|
|
2359
|
+
item.href; var itemWithoutHref = __rest(item, ["href"]);
|
|
2360
|
+
return (React.createElement(react.ListboxItem, __assign({}, itemWithoutHref, { key: item.key, endContent: isCollapsed || hideEndContent ? null : ((_b = item.endContent) !== null && _b !== void 0 ? _b : null), startContent: isCollapsed ? null : item.icon ? (jsxRuntime.jsx(IconComponent, { className: react.cn("text-default-500", "group-data-[selected=true]:text-default-600", iconClassName), icon: item.icon, size: "lg" })) : (((_c = item.startContent) !== null && _c !== void 0 ? _c : null)), textValue: item.title, title: isCollapsed ? null : item.title, onPress: function () { return handleItemPress(item, parentKey); }, "aria-selected": isItemSelected, "aria-label": item.title || "Menu item ".concat(item.key) }), isCollapsed ? (jsxRuntime.jsx(react.Tooltip, { content: item.title, placement: "right", closeDelay: 200, shouldCloseOnBlur: false, classNames: {
|
|
2092
2361
|
base: "text-default-500",
|
|
2093
2362
|
}, children: jsxRuntime.jsx("div", { className: "flex w-full items-center justify-center", "aria-hidden": "true", children: item.icon ? (jsxRuntime.jsx(IconComponent, { className: react.cn("text-default-500", "group-data-[selected=true]:text-default-600", iconClassName), icon: item.icon, size: "lg" })) : (((_d = item.startContent) !== null && _d !== void 0 ? _d : null)) }) })) : null));
|
|
2094
2363
|
},
|
|
@@ -2160,70 +2429,6 @@ var StepIndicator = function (_a) {
|
|
|
2160
2429
|
return (jsxRuntime.jsxs("div", __assign({ className: react.cn("w-full", className) }, props, { children: [showStepText && (jsxRuntime.jsx("div", { className: "text-center text-sm font-medium text-default-400 mb-3", children: stepText })), jsxRuntime.jsx("div", { className: "w-full bg-content2 rounded-full h-2 overflow-hidden", children: jsxRuntime.jsx("div", { className: react.cn("h-full transition-all duration-300 ease-out rounded-full", colorClasses[color]), style: { width: "".concat(progressPercentage, "%") } }) })] })));
|
|
2161
2430
|
};
|
|
2162
2431
|
|
|
2163
|
-
/*
|
|
2164
|
-
* Copyright 2020 Adobe. All rights reserved.
|
|
2165
|
-
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
2166
|
-
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
2167
|
-
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
2168
|
-
*
|
|
2169
|
-
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
2170
|
-
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
2171
|
-
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
2172
|
-
* governing permissions and limitations under the License.
|
|
2173
|
-
*/
|
|
2174
|
-
function $458b0a5536c1a7cf$export$40bfa8c7b0832715(value, defaultValue, onChange) {
|
|
2175
|
-
let [stateValue, setStateValue] = (React.useState)(value || defaultValue);
|
|
2176
|
-
let isControlledRef = (React.useRef)(value !== undefined);
|
|
2177
|
-
let isControlled = value !== undefined;
|
|
2178
|
-
(React.useEffect)(()=>{
|
|
2179
|
-
let wasControlled = isControlledRef.current;
|
|
2180
|
-
if (wasControlled !== isControlled && process.env.NODE_ENV !== 'production') console.warn(`WARN: A component changed from ${wasControlled ? 'controlled' : 'uncontrolled'} to ${isControlled ? 'controlled' : 'uncontrolled'}.`);
|
|
2181
|
-
isControlledRef.current = isControlled;
|
|
2182
|
-
}, [
|
|
2183
|
-
isControlled
|
|
2184
|
-
]);
|
|
2185
|
-
let currentValue = isControlled ? value : stateValue;
|
|
2186
|
-
let setValue = (React.useCallback)((value, ...args)=>{
|
|
2187
|
-
let onChangeCaller = (value, ...onChangeArgs)=>{
|
|
2188
|
-
if (onChange) {
|
|
2189
|
-
if (!Object.is(currentValue, value)) onChange(value, ...onChangeArgs);
|
|
2190
|
-
}
|
|
2191
|
-
if (!isControlled) // If uncontrolled, mutate the currentValue local variable so that
|
|
2192
|
-
// calling setState multiple times with the same value only emits onChange once.
|
|
2193
|
-
// We do not use a ref for this because we specifically _do_ want the value to
|
|
2194
|
-
// reset every render, and assigning to a ref in render breaks aborted suspended renders.
|
|
2195
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
2196
|
-
currentValue = value;
|
|
2197
|
-
};
|
|
2198
|
-
if (typeof value === 'function') {
|
|
2199
|
-
if (process.env.NODE_ENV !== 'production') console.warn('We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320');
|
|
2200
|
-
// this supports functional updates https://reactjs.org/docs/hooks-reference.html#functional-updates
|
|
2201
|
-
// when someone using useControlledState calls setControlledState(myFunc)
|
|
2202
|
-
// this will call our useState setState with a function as well which invokes myFunc and calls onChange with the value from myFunc
|
|
2203
|
-
// if we're in an uncontrolled state, then we also return the value of myFunc which to setState looks as though it was just called with myFunc from the beginning
|
|
2204
|
-
// otherwise we just return the controlled value, which won't cause a rerender because React knows to bail out when the value is the same
|
|
2205
|
-
let updateFunction = (oldValue, ...functionArgs)=>{
|
|
2206
|
-
let interceptedValue = value(isControlled ? currentValue : oldValue, ...functionArgs);
|
|
2207
|
-
onChangeCaller(interceptedValue, ...args);
|
|
2208
|
-
if (!isControlled) return interceptedValue;
|
|
2209
|
-
return oldValue;
|
|
2210
|
-
};
|
|
2211
|
-
setStateValue(updateFunction);
|
|
2212
|
-
} else {
|
|
2213
|
-
if (!isControlled) setStateValue(value);
|
|
2214
|
-
onChangeCaller(value, ...args);
|
|
2215
|
-
}
|
|
2216
|
-
}, [
|
|
2217
|
-
isControlled,
|
|
2218
|
-
currentValue,
|
|
2219
|
-
onChange
|
|
2220
|
-
]);
|
|
2221
|
-
return [
|
|
2222
|
-
currentValue,
|
|
2223
|
-
setValue
|
|
2224
|
-
];
|
|
2225
|
-
}
|
|
2226
|
-
|
|
2227
2432
|
var defaultTranslations$7 = {
|
|
2228
2433
|
checkIconTitle: "Check",
|
|
2229
2434
|
};
|
package/dist/index.esm.js
CHANGED
|
@@ -1965,6 +1965,264 @@ var ImagePreview = function (_a) {
|
|
|
1965
1965
|
: undefined, role: isClickable ? "button" : undefined, tabIndex: isClickable ? 0 : undefined, "aria-label": isClickable ? t.clickableImageAriaLabel : undefined }), showRemoveButton && onRemove && (jsx("button", { type: "button", onClick: function () { return handleRemove(image.id || "", index); }, "aria-label": t.removeButtonAriaLabel, className: "\n\t\t\t\t\t\t\t\t\tabsolute -top-2 -right-2 \n\t\t\t\t\t\t\t\t\tp-1 rounded-full \n\t\t\t\t\t\t\t\t\tbg-danger-500 hover:bg-danger-600 \n\t\t\t\t\t\t\t\t\ttext-white \n\t\t\t\t\t\t\t\t\tcursor-pointer \n\t\t\t\t\t\t\t\t\ttransition-colors\n\t\t\t\t\t\t\t\t\tfocus:outline-none \n\t\t\t\t\t\t\t\t\tfocus:ring-2 \n\t\t\t\t\t\t\t\t\tfocus:ring-danger-400 \n\t\t\t\t\t\t\t\t\tfocus:ring-offset-2\n\t\t\t\t\t\t\t\t", children: jsx(IconComponent, { size: size === "micro" ? "sm" : "md", icon: "solar:trash-bin-minimalistic-outline" }) }))] }) }, image.id || index)); }) }));
|
|
1966
1966
|
};
|
|
1967
1967
|
|
|
1968
|
+
/*
|
|
1969
|
+
* Copyright 2020 Adobe. All rights reserved.
|
|
1970
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
1971
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
1972
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
1973
|
+
*
|
|
1974
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
1975
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
1976
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
1977
|
+
* governing permissions and limitations under the License.
|
|
1978
|
+
*/ function $7215afc6de606d6b$export$de79e2c695e052f3(element) {
|
|
1979
|
+
if ($7215afc6de606d6b$var$supportsPreventScroll()) element.focus({
|
|
1980
|
+
preventScroll: true
|
|
1981
|
+
});
|
|
1982
|
+
else {
|
|
1983
|
+
let scrollableElements = $7215afc6de606d6b$var$getScrollableElements(element);
|
|
1984
|
+
element.focus();
|
|
1985
|
+
$7215afc6de606d6b$var$restoreScrollPosition(scrollableElements);
|
|
1986
|
+
}
|
|
1987
|
+
}
|
|
1988
|
+
let $7215afc6de606d6b$var$supportsPreventScrollCached = null;
|
|
1989
|
+
function $7215afc6de606d6b$var$supportsPreventScroll() {
|
|
1990
|
+
if ($7215afc6de606d6b$var$supportsPreventScrollCached == null) {
|
|
1991
|
+
$7215afc6de606d6b$var$supportsPreventScrollCached = false;
|
|
1992
|
+
try {
|
|
1993
|
+
let focusElem = document.createElement('div');
|
|
1994
|
+
focusElem.focus({
|
|
1995
|
+
get preventScroll () {
|
|
1996
|
+
$7215afc6de606d6b$var$supportsPreventScrollCached = true;
|
|
1997
|
+
return true;
|
|
1998
|
+
}
|
|
1999
|
+
});
|
|
2000
|
+
} catch {
|
|
2001
|
+
// Ignore
|
|
2002
|
+
}
|
|
2003
|
+
}
|
|
2004
|
+
return $7215afc6de606d6b$var$supportsPreventScrollCached;
|
|
2005
|
+
}
|
|
2006
|
+
function $7215afc6de606d6b$var$getScrollableElements(element) {
|
|
2007
|
+
let parent = element.parentNode;
|
|
2008
|
+
let scrollableElements = [];
|
|
2009
|
+
let rootScrollingElement = document.scrollingElement || document.documentElement;
|
|
2010
|
+
while(parent instanceof HTMLElement && parent !== rootScrollingElement){
|
|
2011
|
+
if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) scrollableElements.push({
|
|
2012
|
+
element: parent,
|
|
2013
|
+
scrollTop: parent.scrollTop,
|
|
2014
|
+
scrollLeft: parent.scrollLeft
|
|
2015
|
+
});
|
|
2016
|
+
parent = parent.parentNode;
|
|
2017
|
+
}
|
|
2018
|
+
if (rootScrollingElement instanceof HTMLElement) scrollableElements.push({
|
|
2019
|
+
element: rootScrollingElement,
|
|
2020
|
+
scrollTop: rootScrollingElement.scrollTop,
|
|
2021
|
+
scrollLeft: rootScrollingElement.scrollLeft
|
|
2022
|
+
});
|
|
2023
|
+
return scrollableElements;
|
|
2024
|
+
}
|
|
2025
|
+
function $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements) {
|
|
2026
|
+
for (let { element: element, scrollTop: scrollTop, scrollLeft: scrollLeft } of scrollableElements){
|
|
2027
|
+
element.scrollTop = scrollTop;
|
|
2028
|
+
element.scrollLeft = scrollLeft;
|
|
2029
|
+
}
|
|
2030
|
+
}
|
|
2031
|
+
|
|
2032
|
+
/*
|
|
2033
|
+
* Copyright 2020 Adobe. All rights reserved.
|
|
2034
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
2035
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
2036
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
2037
|
+
*
|
|
2038
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
2039
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
2040
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
2041
|
+
* governing permissions and limitations under the License.
|
|
2042
|
+
*/ function $c87311424ea30a05$var$testUserAgent(re) {
|
|
2043
|
+
var _window_navigator_userAgentData;
|
|
2044
|
+
if (typeof window === 'undefined' || window.navigator == null) return false;
|
|
2045
|
+
return ((_window_navigator_userAgentData = window.navigator['userAgentData']) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.brands.some((brand)=>re.test(brand.brand))) || re.test(window.navigator.userAgent);
|
|
2046
|
+
}
|
|
2047
|
+
function $c87311424ea30a05$var$testPlatform(re) {
|
|
2048
|
+
var _window_navigator_userAgentData;
|
|
2049
|
+
return typeof window !== 'undefined' && window.navigator != null ? re.test(((_window_navigator_userAgentData = window.navigator['userAgentData']) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.platform) || window.navigator.platform) : false;
|
|
2050
|
+
}
|
|
2051
|
+
function $c87311424ea30a05$var$cached(fn) {
|
|
2052
|
+
if (process.env.NODE_ENV === 'test') return fn;
|
|
2053
|
+
let res = null;
|
|
2054
|
+
return ()=>{
|
|
2055
|
+
if (res == null) res = fn();
|
|
2056
|
+
return res;
|
|
2057
|
+
};
|
|
2058
|
+
}
|
|
2059
|
+
const $c87311424ea30a05$export$9ac100e40613ea10 = $c87311424ea30a05$var$cached(function() {
|
|
2060
|
+
return $c87311424ea30a05$var$testPlatform(/^Mac/i);
|
|
2061
|
+
});
|
|
2062
|
+
const $c87311424ea30a05$export$186c6964ca17d99 = $c87311424ea30a05$var$cached(function() {
|
|
2063
|
+
return $c87311424ea30a05$var$testPlatform(/^iPhone/i);
|
|
2064
|
+
});
|
|
2065
|
+
const $c87311424ea30a05$export$7bef049ce92e4224 = $c87311424ea30a05$var$cached(function() {
|
|
2066
|
+
return $c87311424ea30a05$var$testPlatform(/^iPad/i) || // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.
|
|
2067
|
+
$c87311424ea30a05$export$9ac100e40613ea10() && navigator.maxTouchPoints > 1;
|
|
2068
|
+
});
|
|
2069
|
+
const $c87311424ea30a05$export$fedb369cb70207f1 = $c87311424ea30a05$var$cached(function() {
|
|
2070
|
+
return $c87311424ea30a05$export$186c6964ca17d99() || $c87311424ea30a05$export$7bef049ce92e4224();
|
|
2071
|
+
});
|
|
2072
|
+
$c87311424ea30a05$var$cached(function() {
|
|
2073
|
+
return $c87311424ea30a05$export$9ac100e40613ea10() || $c87311424ea30a05$export$fedb369cb70207f1();
|
|
2074
|
+
});
|
|
2075
|
+
const $c87311424ea30a05$export$78551043582a6a98 = $c87311424ea30a05$var$cached(function() {
|
|
2076
|
+
return $c87311424ea30a05$var$testUserAgent(/AppleWebKit/i) && !$c87311424ea30a05$export$6446a186d09e379e();
|
|
2077
|
+
});
|
|
2078
|
+
const $c87311424ea30a05$export$6446a186d09e379e = $c87311424ea30a05$var$cached(function() {
|
|
2079
|
+
return $c87311424ea30a05$var$testUserAgent(/Chrome/i);
|
|
2080
|
+
});
|
|
2081
|
+
$c87311424ea30a05$var$cached(function() {
|
|
2082
|
+
return $c87311424ea30a05$var$testUserAgent(/Android/i);
|
|
2083
|
+
});
|
|
2084
|
+
const $c87311424ea30a05$export$b7d78993b74f766d = $c87311424ea30a05$var$cached(function() {
|
|
2085
|
+
return $c87311424ea30a05$var$testUserAgent(/Firefox/i);
|
|
2086
|
+
});
|
|
2087
|
+
|
|
2088
|
+
/*
|
|
2089
|
+
* Copyright 2023 Adobe. All rights reserved.
|
|
2090
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
2091
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
2092
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
2093
|
+
*
|
|
2094
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
2095
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
2096
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
2097
|
+
* governing permissions and limitations under the License.
|
|
2098
|
+
*/
|
|
2099
|
+
|
|
2100
|
+
|
|
2101
|
+
const $ea8dcbcb9ea1b556$var$RouterContext = /*#__PURE__*/ (createContext)({
|
|
2102
|
+
isNative: true,
|
|
2103
|
+
open: $ea8dcbcb9ea1b556$var$openSyntheticLink,
|
|
2104
|
+
useHref: (href)=>href
|
|
2105
|
+
});
|
|
2106
|
+
function $ea8dcbcb9ea1b556$export$9a302a45f65d0572() {
|
|
2107
|
+
return (useContext)($ea8dcbcb9ea1b556$var$RouterContext);
|
|
2108
|
+
}
|
|
2109
|
+
function $ea8dcbcb9ea1b556$export$95185d699e05d4d7(target, modifiers, setOpening = true) {
|
|
2110
|
+
var _window_event_type, _window_event;
|
|
2111
|
+
let { metaKey: metaKey, ctrlKey: ctrlKey, altKey: altKey, shiftKey: shiftKey } = modifiers;
|
|
2112
|
+
// Firefox does not recognize keyboard events as a user action by default, and the popup blocker
|
|
2113
|
+
// will prevent links with target="_blank" from opening. However, it does allow the event if the
|
|
2114
|
+
// Command/Control key is held, which opens the link in a background tab. This seems like the best we can do.
|
|
2115
|
+
// See https://bugzilla.mozilla.org/show_bug.cgi?id=257870 and https://bugzilla.mozilla.org/show_bug.cgi?id=746640.
|
|
2116
|
+
if (($c87311424ea30a05$export$b7d78993b74f766d)() && ((_window_event = window.event) === null || _window_event === void 0 ? void 0 : (_window_event_type = _window_event.type) === null || _window_event_type === void 0 ? void 0 : _window_event_type.startsWith('key')) && target.target === '_blank') {
|
|
2117
|
+
if (($c87311424ea30a05$export$9ac100e40613ea10)()) metaKey = true;
|
|
2118
|
+
else ctrlKey = true;
|
|
2119
|
+
}
|
|
2120
|
+
// WebKit does not support firing click events with modifier keys, but does support keyboard events.
|
|
2121
|
+
// https://github.com/WebKit/WebKit/blob/c03d0ac6e6db178f90923a0a63080b5ca210d25f/Source/WebCore/html/HTMLAnchorElement.cpp#L184
|
|
2122
|
+
let event = ($c87311424ea30a05$export$78551043582a6a98)() && ($c87311424ea30a05$export$9ac100e40613ea10)() && !($c87311424ea30a05$export$7bef049ce92e4224)() && process.env.NODE_ENV !== 'test' ? new KeyboardEvent('keydown', {
|
|
2123
|
+
keyIdentifier: 'Enter',
|
|
2124
|
+
metaKey: metaKey,
|
|
2125
|
+
ctrlKey: ctrlKey,
|
|
2126
|
+
altKey: altKey,
|
|
2127
|
+
shiftKey: shiftKey
|
|
2128
|
+
}) : new MouseEvent('click', {
|
|
2129
|
+
metaKey: metaKey,
|
|
2130
|
+
ctrlKey: ctrlKey,
|
|
2131
|
+
altKey: altKey,
|
|
2132
|
+
shiftKey: shiftKey,
|
|
2133
|
+
bubbles: true,
|
|
2134
|
+
cancelable: true
|
|
2135
|
+
});
|
|
2136
|
+
$ea8dcbcb9ea1b556$export$95185d699e05d4d7.isOpening = setOpening;
|
|
2137
|
+
($7215afc6de606d6b$export$de79e2c695e052f3)(target);
|
|
2138
|
+
target.dispatchEvent(event);
|
|
2139
|
+
$ea8dcbcb9ea1b556$export$95185d699e05d4d7.isOpening = false;
|
|
2140
|
+
}
|
|
2141
|
+
// https://github.com/parcel-bundler/parcel/issues/8724
|
|
2142
|
+
$ea8dcbcb9ea1b556$export$95185d699e05d4d7.isOpening = false;
|
|
2143
|
+
function $ea8dcbcb9ea1b556$var$getSyntheticLink(target, open) {
|
|
2144
|
+
if (target instanceof HTMLAnchorElement) open(target);
|
|
2145
|
+
else if (target.hasAttribute('data-href')) {
|
|
2146
|
+
let link = document.createElement('a');
|
|
2147
|
+
link.href = target.getAttribute('data-href');
|
|
2148
|
+
if (target.hasAttribute('data-target')) link.target = target.getAttribute('data-target');
|
|
2149
|
+
if (target.hasAttribute('data-rel')) link.rel = target.getAttribute('data-rel');
|
|
2150
|
+
if (target.hasAttribute('data-download')) link.download = target.getAttribute('data-download');
|
|
2151
|
+
if (target.hasAttribute('data-ping')) link.ping = target.getAttribute('data-ping');
|
|
2152
|
+
if (target.hasAttribute('data-referrer-policy')) link.referrerPolicy = target.getAttribute('data-referrer-policy');
|
|
2153
|
+
target.appendChild(link);
|
|
2154
|
+
open(link);
|
|
2155
|
+
target.removeChild(link);
|
|
2156
|
+
}
|
|
2157
|
+
}
|
|
2158
|
+
function $ea8dcbcb9ea1b556$var$openSyntheticLink(target, modifiers) {
|
|
2159
|
+
$ea8dcbcb9ea1b556$var$getSyntheticLink(target, (link)=>$ea8dcbcb9ea1b556$export$95185d699e05d4d7(link, modifiers));
|
|
2160
|
+
}
|
|
2161
|
+
|
|
2162
|
+
/*
|
|
2163
|
+
* Copyright 2020 Adobe. All rights reserved.
|
|
2164
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
2165
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
2166
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
2167
|
+
*
|
|
2168
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
2169
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
2170
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
2171
|
+
* governing permissions and limitations under the License.
|
|
2172
|
+
*/
|
|
2173
|
+
function $458b0a5536c1a7cf$export$40bfa8c7b0832715(value, defaultValue, onChange) {
|
|
2174
|
+
let [stateValue, setStateValue] = (useState)(value || defaultValue);
|
|
2175
|
+
let isControlledRef = (useRef)(value !== undefined);
|
|
2176
|
+
let isControlled = value !== undefined;
|
|
2177
|
+
(useEffect)(()=>{
|
|
2178
|
+
let wasControlled = isControlledRef.current;
|
|
2179
|
+
if (wasControlled !== isControlled && process.env.NODE_ENV !== 'production') console.warn(`WARN: A component changed from ${wasControlled ? 'controlled' : 'uncontrolled'} to ${isControlled ? 'controlled' : 'uncontrolled'}.`);
|
|
2180
|
+
isControlledRef.current = isControlled;
|
|
2181
|
+
}, [
|
|
2182
|
+
isControlled
|
|
2183
|
+
]);
|
|
2184
|
+
let currentValue = isControlled ? value : stateValue;
|
|
2185
|
+
let setValue = (useCallback)((value, ...args)=>{
|
|
2186
|
+
let onChangeCaller = (value, ...onChangeArgs)=>{
|
|
2187
|
+
if (onChange) {
|
|
2188
|
+
if (!Object.is(currentValue, value)) onChange(value, ...onChangeArgs);
|
|
2189
|
+
}
|
|
2190
|
+
if (!isControlled) // If uncontrolled, mutate the currentValue local variable so that
|
|
2191
|
+
// calling setState multiple times with the same value only emits onChange once.
|
|
2192
|
+
// We do not use a ref for this because we specifically _do_ want the value to
|
|
2193
|
+
// reset every render, and assigning to a ref in render breaks aborted suspended renders.
|
|
2194
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
2195
|
+
currentValue = value;
|
|
2196
|
+
};
|
|
2197
|
+
if (typeof value === 'function') {
|
|
2198
|
+
if (process.env.NODE_ENV !== 'production') console.warn('We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320');
|
|
2199
|
+
// this supports functional updates https://reactjs.org/docs/hooks-reference.html#functional-updates
|
|
2200
|
+
// when someone using useControlledState calls setControlledState(myFunc)
|
|
2201
|
+
// this will call our useState setState with a function as well which invokes myFunc and calls onChange with the value from myFunc
|
|
2202
|
+
// if we're in an uncontrolled state, then we also return the value of myFunc which to setState looks as though it was just called with myFunc from the beginning
|
|
2203
|
+
// otherwise we just return the controlled value, which won't cause a rerender because React knows to bail out when the value is the same
|
|
2204
|
+
let updateFunction = (oldValue, ...functionArgs)=>{
|
|
2205
|
+
let interceptedValue = value(isControlled ? currentValue : oldValue, ...functionArgs);
|
|
2206
|
+
onChangeCaller(interceptedValue, ...args);
|
|
2207
|
+
if (!isControlled) return interceptedValue;
|
|
2208
|
+
return oldValue;
|
|
2209
|
+
};
|
|
2210
|
+
setStateValue(updateFunction);
|
|
2211
|
+
} else {
|
|
2212
|
+
if (!isControlled) setStateValue(value);
|
|
2213
|
+
onChangeCaller(value, ...args);
|
|
2214
|
+
}
|
|
2215
|
+
}, [
|
|
2216
|
+
isControlled,
|
|
2217
|
+
currentValue,
|
|
2218
|
+
onChange
|
|
2219
|
+
]);
|
|
2220
|
+
return [
|
|
2221
|
+
currentValue,
|
|
2222
|
+
setValue
|
|
2223
|
+
];
|
|
2224
|
+
}
|
|
2225
|
+
|
|
1968
2226
|
function normalizeClass(value) {
|
|
1969
2227
|
if (typeof value === "string") {
|
|
1970
2228
|
return value || undefined;
|
|
@@ -2022,25 +2280,37 @@ var EnumMenuNavListItem;
|
|
|
2022
2280
|
* @forwardRef
|
|
2023
2281
|
*/
|
|
2024
2282
|
var MenuNavList = React.forwardRef(function (_a, ref) {
|
|
2025
|
-
var items = _a.items, isCollapsed = _a.isCollapsed, defaultSelectedKey = _a.defaultSelectedKey
|
|
2283
|
+
var items = _a.items, isCollapsed = _a.isCollapsed, defaultSelectedKey = _a.defaultSelectedKey, onSelect = _a.onSelect, hideEndContent = _a.hideEndContent, _b = _a.sectionClasses, sectionClassesProp = _b === void 0 ? {} : _b, _c = _a.itemClasses, itemClassesProp = _c === void 0 ? {} : _c, iconClassName = _a.iconClassName, classNames = _a.classNames, className = _a.className, props = __rest(_a, ["items", "isCollapsed", "defaultSelectedKey", "onSelect", "hideEndContent", "sectionClasses", "itemClasses", "iconClassName", "classNames", "className"]);
|
|
2026
2284
|
var _d = useState(defaultSelectedKey), selected = _d[0], setSelected = _d[1];
|
|
2285
|
+
var router = $ea8dcbcb9ea1b556$export$9a302a45f65d0572();
|
|
2027
2286
|
// Component styles
|
|
2028
2287
|
var sectionClasses = getSectionClasses(isCollapsed, sectionClassesProp);
|
|
2029
2288
|
var itemClasses = getItemClasses(isCollapsed, itemClassesProp);
|
|
2030
|
-
// Handles the click event on an item, updating the selection state.
|
|
2289
|
+
// Handles the click event on an item, updating the selection state and navigating.
|
|
2031
2290
|
// biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>
|
|
2032
2291
|
var handleItemPress = React.useCallback(function (item, parentKey) {
|
|
2033
2292
|
var keySelected = typeof parentKey === "string" ? parentKey : item.key;
|
|
2034
2293
|
setSelected(keySelected);
|
|
2294
|
+
onSelect === null || onSelect === void 0 ? void 0 : onSelect(keySelected);
|
|
2295
|
+
// Use the router provider for client-side navigation (avoids full page reload)
|
|
2296
|
+
if (item.href && item.href !== "#") {
|
|
2297
|
+
if (!router.isNative) {
|
|
2298
|
+
router.open(document.activeElement, new MouseEvent("click"), item.href);
|
|
2299
|
+
}
|
|
2300
|
+
else {
|
|
2301
|
+
window.location.href = item.href;
|
|
2302
|
+
}
|
|
2303
|
+
}
|
|
2035
2304
|
// Force blur to remove hover state after click.
|
|
2036
2305
|
if (document.activeElement instanceof HTMLElement) {
|
|
2037
2306
|
document.activeElement.blur();
|
|
2038
2307
|
}
|
|
2039
|
-
}, [setSelected]);
|
|
2308
|
+
}, [setSelected, onSelect, router]);
|
|
2040
2309
|
// Renders the item displayed inside the Popover when the menu is collapsed.
|
|
2041
2310
|
var renderCompactItem = React.useCallback(function (item, parentKey) {
|
|
2042
2311
|
var _a, _b;
|
|
2043
|
-
|
|
2312
|
+
item.href; var itemWithoutHref = __rest(item, ["href"]);
|
|
2313
|
+
return (createElement(ListboxItem, __assign({}, itemWithoutHref, { key: item.key, endContent: (_a = item.endContent) !== null && _a !== void 0 ? _a : null, startContent: item.icon ? (jsx(IconComponent, { className: cn("text-default-500", "group-data-[selected=true]:text-default-600", iconClassName), icon: item.icon, size: "lg" })) : (((_b = item.startContent) !== null && _b !== void 0 ? _b : null)), textValue: item.title, title: item.title, className: "data-[hover=true]:text-default-600", onPress: function () { return handleItemPress(item, parentKey); } })));
|
|
2044
2314
|
}, [handleItemPress, iconClassName]);
|
|
2045
2315
|
// Renders a nested item, i.e., an item that has sub-items.
|
|
2046
2316
|
// biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>
|
|
@@ -2049,10 +2319,8 @@ var MenuNavList = React.forwardRef(function (_a, ref) {
|
|
|
2049
2319
|
var isNestType = item.items &&
|
|
2050
2320
|
((_a = item.items) === null || _a === void 0 ? void 0 : _a.length) > 0 &&
|
|
2051
2321
|
(item === null || item === void 0 ? void 0 : item.type) === EnumMenuNavListItem.Nest;
|
|
2052
|
-
|
|
2053
|
-
|
|
2054
|
-
}
|
|
2055
|
-
return (createElement(ListboxItem, __assign({}, item, { key: item.key, classNames: {
|
|
2322
|
+
item.href; var itemWithoutHref = __rest(item, ["href"]);
|
|
2323
|
+
return (createElement(ListboxItem, __assign({}, itemWithoutHref, { key: item.key, classNames: {
|
|
2056
2324
|
base: cn({
|
|
2057
2325
|
"h-auto p-0": !isCollapsed && isNestType,
|
|
2058
2326
|
}, {
|
|
@@ -2089,7 +2357,8 @@ var MenuNavList = React.forwardRef(function (_a, ref) {
|
|
|
2089
2357
|
return renderNestItem(item);
|
|
2090
2358
|
}
|
|
2091
2359
|
var isItemSelected = selected === item.key;
|
|
2092
|
-
|
|
2360
|
+
item.href; var itemWithoutHref = __rest(item, ["href"]);
|
|
2361
|
+
return (createElement(ListboxItem, __assign({}, itemWithoutHref, { key: item.key, endContent: isCollapsed || hideEndContent ? null : ((_b = item.endContent) !== null && _b !== void 0 ? _b : null), startContent: isCollapsed ? null : item.icon ? (jsx(IconComponent, { className: cn("text-default-500", "group-data-[selected=true]:text-default-600", iconClassName), icon: item.icon, size: "lg" })) : (((_c = item.startContent) !== null && _c !== void 0 ? _c : null)), textValue: item.title, title: isCollapsed ? null : item.title, onPress: function () { return handleItemPress(item, parentKey); }, "aria-selected": isItemSelected, "aria-label": item.title || "Menu item ".concat(item.key) }), isCollapsed ? (jsx(Tooltip$1, { content: item.title, placement: "right", closeDelay: 200, shouldCloseOnBlur: false, classNames: {
|
|
2093
2362
|
base: "text-default-500",
|
|
2094
2363
|
}, children: jsx("div", { className: "flex w-full items-center justify-center", "aria-hidden": "true", children: item.icon ? (jsx(IconComponent, { className: cn("text-default-500", "group-data-[selected=true]:text-default-600", iconClassName), icon: item.icon, size: "lg" })) : (((_d = item.startContent) !== null && _d !== void 0 ? _d : null)) }) })) : null));
|
|
2095
2364
|
},
|
|
@@ -2161,70 +2430,6 @@ var StepIndicator = function (_a) {
|
|
|
2161
2430
|
return (jsxs("div", __assign({ className: cn("w-full", className) }, props, { children: [showStepText && (jsx("div", { className: "text-center text-sm font-medium text-default-400 mb-3", children: stepText })), jsx("div", { className: "w-full bg-content2 rounded-full h-2 overflow-hidden", children: jsx("div", { className: cn("h-full transition-all duration-300 ease-out rounded-full", colorClasses[color]), style: { width: "".concat(progressPercentage, "%") } }) })] })));
|
|
2162
2431
|
};
|
|
2163
2432
|
|
|
2164
|
-
/*
|
|
2165
|
-
* Copyright 2020 Adobe. All rights reserved.
|
|
2166
|
-
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
2167
|
-
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
2168
|
-
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
2169
|
-
*
|
|
2170
|
-
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
2171
|
-
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
2172
|
-
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
2173
|
-
* governing permissions and limitations under the License.
|
|
2174
|
-
*/
|
|
2175
|
-
function $458b0a5536c1a7cf$export$40bfa8c7b0832715(value, defaultValue, onChange) {
|
|
2176
|
-
let [stateValue, setStateValue] = (useState)(value || defaultValue);
|
|
2177
|
-
let isControlledRef = (useRef)(value !== undefined);
|
|
2178
|
-
let isControlled = value !== undefined;
|
|
2179
|
-
(useEffect)(()=>{
|
|
2180
|
-
let wasControlled = isControlledRef.current;
|
|
2181
|
-
if (wasControlled !== isControlled && process.env.NODE_ENV !== 'production') console.warn(`WARN: A component changed from ${wasControlled ? 'controlled' : 'uncontrolled'} to ${isControlled ? 'controlled' : 'uncontrolled'}.`);
|
|
2182
|
-
isControlledRef.current = isControlled;
|
|
2183
|
-
}, [
|
|
2184
|
-
isControlled
|
|
2185
|
-
]);
|
|
2186
|
-
let currentValue = isControlled ? value : stateValue;
|
|
2187
|
-
let setValue = (useCallback)((value, ...args)=>{
|
|
2188
|
-
let onChangeCaller = (value, ...onChangeArgs)=>{
|
|
2189
|
-
if (onChange) {
|
|
2190
|
-
if (!Object.is(currentValue, value)) onChange(value, ...onChangeArgs);
|
|
2191
|
-
}
|
|
2192
|
-
if (!isControlled) // If uncontrolled, mutate the currentValue local variable so that
|
|
2193
|
-
// calling setState multiple times with the same value only emits onChange once.
|
|
2194
|
-
// We do not use a ref for this because we specifically _do_ want the value to
|
|
2195
|
-
// reset every render, and assigning to a ref in render breaks aborted suspended renders.
|
|
2196
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
2197
|
-
currentValue = value;
|
|
2198
|
-
};
|
|
2199
|
-
if (typeof value === 'function') {
|
|
2200
|
-
if (process.env.NODE_ENV !== 'production') console.warn('We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320');
|
|
2201
|
-
// this supports functional updates https://reactjs.org/docs/hooks-reference.html#functional-updates
|
|
2202
|
-
// when someone using useControlledState calls setControlledState(myFunc)
|
|
2203
|
-
// this will call our useState setState with a function as well which invokes myFunc and calls onChange with the value from myFunc
|
|
2204
|
-
// if we're in an uncontrolled state, then we also return the value of myFunc which to setState looks as though it was just called with myFunc from the beginning
|
|
2205
|
-
// otherwise we just return the controlled value, which won't cause a rerender because React knows to bail out when the value is the same
|
|
2206
|
-
let updateFunction = (oldValue, ...functionArgs)=>{
|
|
2207
|
-
let interceptedValue = value(isControlled ? currentValue : oldValue, ...functionArgs);
|
|
2208
|
-
onChangeCaller(interceptedValue, ...args);
|
|
2209
|
-
if (!isControlled) return interceptedValue;
|
|
2210
|
-
return oldValue;
|
|
2211
|
-
};
|
|
2212
|
-
setStateValue(updateFunction);
|
|
2213
|
-
} else {
|
|
2214
|
-
if (!isControlled) setStateValue(value);
|
|
2215
|
-
onChangeCaller(value, ...args);
|
|
2216
|
-
}
|
|
2217
|
-
}, [
|
|
2218
|
-
isControlled,
|
|
2219
|
-
currentValue,
|
|
2220
|
-
onChange
|
|
2221
|
-
]);
|
|
2222
|
-
return [
|
|
2223
|
-
currentValue,
|
|
2224
|
-
setValue
|
|
2225
|
-
];
|
|
2226
|
-
}
|
|
2227
|
-
|
|
2228
2433
|
var defaultTranslations$7 = {
|
|
2229
2434
|
checkIconTitle: "Check",
|
|
2230
2435
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuNavList.d.ts","sourceRoot":"","sources":["../../../../../../src/components/menu/_internal/menu-nav-list/MenuNavList.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MenuNavList.d.ts","sourceRoot":"","sources":["../../../../../../src/components/menu/_internal/menu-nav-list/MenuNavList.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG5D;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,WAAW,mGAqXvB,CAAC"}
|