@wix/editor-react-components 1.2763.0 → 1.2765.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/dist/site/components/AccordionComponent/manifest.js +1 -1
  2. package/dist/site/components/AudioPlayer/component.js +4 -3
  3. package/dist/site/components/AudioPlayer/manifest.js +1 -1
  4. package/dist/site/components/BoxContainer/component.js +2 -2
  5. package/dist/site/components/Breadcrumbs/component.js +3 -3
  6. package/dist/site/components/Breadcrumbs/manifest.js +1 -1
  7. package/dist/site/components/Button/component.js +1 -1
  8. package/dist/site/components/Button/manifest.js +1 -1
  9. package/dist/site/components/Checkbox/component.js +2 -2
  10. package/dist/site/components/CheckboxGroup/component.js +2 -2
  11. package/dist/site/components/CollapsibleText/component.js +2 -2
  12. package/dist/site/components/CollapsibleText/manifest.js +1 -1
  13. package/dist/site/components/DatePicker/component.js +6 -4
  14. package/dist/site/components/Dropdown/component.js +1 -1
  15. package/dist/site/components/Dropdown/manifest.js +1 -1
  16. package/dist/site/components/GoogleMap/manifest.js +1 -1
  17. package/dist/site/components/HTMLComponent/manifest.js +1 -1
  18. package/dist/site/components/HeadingTextBlock/component.js +2 -2
  19. package/dist/site/components/HipaaIcon/component.js +1 -1
  20. package/dist/site/components/Image3/component.js +1 -1
  21. package/dist/site/components/Image3/component.preview.d.ts +1 -3
  22. package/dist/site/components/Image3/manifest.js +1 -4
  23. package/dist/site/components/ImageReveal/component.js +2 -2
  24. package/dist/site/components/LegacyAppWidget/component.js +1 -1
  25. package/dist/site/components/LegacyContainer/component.js +1 -1
  26. package/dist/site/components/LegacyMultiStateBox/component.js +2 -2
  27. package/dist/site/components/Line/component.js +1 -1
  28. package/dist/site/components/LinkBar/manifest.js +1 -1
  29. package/dist/site/components/Lottie/component.js +1 -1
  30. package/dist/site/components/Lottie/manifest.js +1 -1
  31. package/dist/site/components/MarkdownBlock/component.js +1 -1
  32. package/dist/site/components/Menu/component.js +3 -3
  33. package/dist/site/components/Menu/manifest.js +1 -1
  34. package/dist/site/components/MultiStateBox/manifest.js +1 -1
  35. package/dist/site/components/RadioButtons/component.js +2 -2
  36. package/dist/site/components/ShareButtons/component.js +1 -1
  37. package/dist/site/components/ShareButtons/manifest.js +1 -1
  38. package/dist/site/components/Slideshow/component.js +1 -1
  39. package/dist/site/components/Slideshow/manifest.js +1 -1
  40. package/dist/site/components/Tabs/manifest.js +1 -1
  41. package/dist/site/components/TestComp/manifest.js +1 -1
  42. package/dist/site/components/TextBox/component.js +1 -1
  43. package/dist/site/components/TextEffects3d/component.js +1 -1
  44. package/dist/site/components/TextEffectsBauhaus/component.js +1 -1
  45. package/dist/site/components/TextEffectsGlass/component.js +1 -1
  46. package/dist/site/components/TextEffectsGlitch/component.js +1 -1
  47. package/dist/site/components/TextEffectsLetterPress/component.js +1 -1
  48. package/dist/site/components/TextEffectsMatrix/component.js +1 -1
  49. package/dist/site/components/TextEffectsNeonSign/component.js +1 -1
  50. package/dist/site/components/TextEffectsNoisy/component.js +1 -1
  51. package/dist/site/components/TextEffectsOutlineOut/component.js +1 -1
  52. package/dist/site/components/TextEffectsRetro/component.js +1 -1
  53. package/dist/site/components/TextEffectsShook/component.js +1 -1
  54. package/dist/site/components/TextEffectsSticker/component.js +1 -1
  55. package/dist/site/components/TextEffectsStriped/component.js +1 -1
  56. package/dist/site/components/TextInput/TextInput.d.ts +3 -7
  57. package/dist/site/components/TextInput/TextInput.types.d.ts +38 -105
  58. package/dist/site/components/TextInput/component.js +104 -780
  59. package/dist/site/components/TextInput/component.preview.d.ts +1 -4
  60. package/dist/site/components/TextInput/constants.d.ts +17 -65
  61. package/dist/site/components/TextInput/css.css +25 -223
  62. package/dist/site/components/TextInput/manifest.js +181 -367
  63. package/dist/site/components/TimePicker/component.js +6 -5
  64. package/dist/site/components/chunks/AnimatedIcon.js +1 -1
  65. package/dist/site/components/chunks/Button.js +1055 -466
  66. package/dist/site/components/chunks/Button2.js +486 -0
  67. package/dist/site/components/chunks/Group.js +46 -970
  68. package/dist/site/components/chunks/I18nProvider.js +125 -0
  69. package/dist/site/components/chunks/Input.js +369 -0
  70. package/dist/site/components/chunks/Link.js +1 -1
  71. package/dist/site/components/chunks/ResponsiveBox.js +1 -1
  72. package/dist/site/components/chunks/ResponsiveContainer.js +1 -1
  73. package/dist/site/components/chunks/TextEffectsShared.js +1 -1
  74. package/dist/site/components/chunks/Tooltip.js +6745 -351
  75. package/dist/site/components/chunks/VisuallyHidden.js +1 -1
  76. package/dist/site/components/chunks/a11y.js +4 -5
  77. package/dist/site/components/chunks/constants3.js +23 -63
  78. package/dist/site/components/chunks/filterDOMProps.js +18 -139
  79. package/dist/site/components/chunks/index10.js +3 -2020
  80. package/dist/site/components/chunks/index11.js +31184 -232
  81. package/dist/site/components/chunks/index12.js +3 -31191
  82. package/dist/site/components/chunks/index13.js +44 -3
  83. package/dist/site/components/chunks/index3.js +1 -1
  84. package/dist/site/components/chunks/index4.js +1 -1
  85. package/dist/site/components/chunks/index5.js +1 -1
  86. package/dist/site/components/chunks/index7.js +67 -3
  87. package/dist/site/components/chunks/index8.js +2020 -3
  88. package/dist/site/components/chunks/index9.js +232 -60
  89. package/dist/site/components/chunks/manifestSdkMixins.js +4 -4
  90. package/dist/site/components/chunks/parseHtml.js +1 -1
  91. package/dist/site/components/chunks/parseSvg.js +1 -1
  92. package/dist/site/components/chunks/staticService.js +1 -1
  93. package/dist/site/components/chunks/useConsentPolicyProps.js +1 -1
  94. package/dist/site/components/chunks/useLocalizedStringFormatter.js +1 -1
  95. package/package.json +2 -2
  96. package/dist/site/components/TextInput/TextInput.viewer.constants.d.ts +0 -24
  97. package/dist/site/components/TextInput/sdk.d.ts +0 -4
  98. package/dist/site/components/TextInput/sdk.js +0 -91
  99. package/dist/site/components/TextInput/utils.d.ts +0 -9
  100. package/dist/site/components/chunks/DateField.js +0 -6762
  101. package/dist/site/components/chunks/NumberFormatter.js +0 -140
  102. package/dist/site/components/chunks/index14.js +0 -46
@@ -1,486 +1,1075 @@
1
- import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
- import { forwardRef, useRef, useCallback, useState, useEffect, useMemo } from "react";
3
- import { c as clsx } from "./clsx.js";
4
- import { d as directionStyles } from "./direction.module.js";
5
- import { p as presetWrapperStyles } from "./presetWrapper.module.js";
6
- import { a as getDataAttributes, g as getQaDataAttributes } from "./dataUtils.js";
7
- import { f as formatClassNames } from "./classNames.js";
8
- import { I as IconAnimationTriggers } from "./Button.types.js";
9
- import AnimatedIconWithReducedMotion from "../AnimatedIcon/component.js";
10
- import { T as TRANSITION_DURATION, D as DesignStates, S as SEMANTIC_CLASS_NAMES, a as TestIds, C as COMPONENT_TYPE } from "./constants21.js";
11
- import { e as activateByEnterButton, a as activateBySpaceOrEnterButton, r as removeAriaPrefix, g as getAccessibilityAttributesSpread } from "./a11y.js";
12
- import { i as isValidLink } from "./Link.js";
13
- import { d as defineStaticService } from "./staticService.js";
14
- import { d as defineService } from "./index8.js";
15
- import { E as EnvironmentDefinition } from "./index2.js";
16
- import { useService } from "@wix/services-manager-react";
17
- const root = "root__IB9QF";
18
- const active = "active__lpoVO";
19
- const label = "label__EtLji";
20
- const hasTransitions = "hasTransitions__sv08Z";
21
- const link = "link__0rDnC";
22
- const icon = "icon__ZzsS5";
23
- const button = "button__i8gkO";
24
- const styles = {
25
- root,
26
- active,
27
- label,
28
- hasTransitions,
29
- link,
30
- icon,
31
- button
1
+ var __typeError = (msg) => {
2
+ throw TypeError(msg);
32
3
  };
33
- const AnimatedButtonIcon = forwardRef(
34
- ({ svg, duration, className }, ref) => /* @__PURE__ */ jsx(
35
- AnimatedIconWithReducedMotion,
36
- {
37
- id: "animated-icon",
38
- duration,
39
- svg,
40
- className: clsx("animated-icon", styles.icon, className),
41
- ref
4
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
5
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
6
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
+ var _shouldStopPropagation;
9
+ import { $ as $8e9d2fae0ecb9001$export$457c3d6518dd4c6f, a as $f39a9eba43920ace$export$86427a43e3e48ebb, b as $64fa3d84918910a7$export$29f1550f4b0d4415, f as $64fa3d84918910a7$export$4d86445c2cf5e3, g as $65484d02dcb7eb3e$export$457c3d6518dd4c6f } from "./filterDOMProps.js";
10
+ import React__default, { useState, useRef, useCallback, useMemo, useEffect, useContext, createContext } from "react";
11
+ import { i as $2add3ce32c6007eb$export$fedb369cb70207f1, j as $d447af545b77c9f1$export$b204af158042fbac, k as $081cb5757e08788e$export$24490316f764c430, l as $d447af545b77c9f1$export$f21a1ffae260145a, m as $48a7d519b337145d$export$4eaf04e54aa8eed6, n as $fe16bffc7a557bf0$export$7f54fc3180508a52, o as $a92dc41f639950be$export$c2b7abe5d61ec696, p as $a92dc41f639950be$export$525bc4921d56d4a, q as $23f2114a1b82827e$export$4282f70798064fe0, f as $23f2114a1b82827e$export$e58f029f0fbfdb29, r as $b5c62b033c25b96d$export$29bf1b5f2c56cf63, s as $a92dc41f639950be$export$cabe61c495ee3649, t as $1969ac565cfec8d0$export$de79e2c695e052f3, u as $b5c62b033c25b96d$export$60278871457622de, e as $bbaa08b3cd72f041$export$9d1611c77c2fe928, v as $b7115c395c64f7b5$export$4debdb1a3f0fa79e, w as $caaf0dd3060ed57c$export$95185d699e05d4d7, x as $a4e76a5424781910$export$e08e3b67e392101e, y as $2add3ce32c6007eb$export$9ac100e40613ea10, c as $d1116acdf220c2da$export$4c014de7c8940b4c, z as $0c4a58759813079a$export$4e328f61c538687f, A as $e969f22b6713ca4a$export$ae780daf29e6d456, B as $390e54f620492c70$export$f680877a34711e37 } from "./Group.js";
12
+ import { flushSync } from "react-dom";
13
+ const $319e236875307eab$var$LIVEREGION_TIMEOUT_DELAY = 7e3;
14
+ let $319e236875307eab$var$liveAnnouncer = null;
15
+ function $319e236875307eab$export$a9b970dcc4ae71a9(message, assertiveness = "assertive", timeout = $319e236875307eab$var$LIVEREGION_TIMEOUT_DELAY) {
16
+ if (!$319e236875307eab$var$liveAnnouncer) {
17
+ $319e236875307eab$var$liveAnnouncer = new $319e236875307eab$var$LiveAnnouncer();
18
+ if (!(typeof IS_REACT_ACT_ENVIRONMENT === "boolean" ? IS_REACT_ACT_ENVIRONMENT : typeof jest !== "undefined")) setTimeout(() => {
19
+ if ($319e236875307eab$var$liveAnnouncer === null || $319e236875307eab$var$liveAnnouncer === void 0 ? void 0 : $319e236875307eab$var$liveAnnouncer.isAttached()) $319e236875307eab$var$liveAnnouncer === null || $319e236875307eab$var$liveAnnouncer === void 0 ? void 0 : $319e236875307eab$var$liveAnnouncer.announce(message, assertiveness, timeout);
20
+ }, 100);
21
+ else $319e236875307eab$var$liveAnnouncer.announce(message, assertiveness, timeout);
22
+ } else $319e236875307eab$var$liveAnnouncer.announce(message, assertiveness, timeout);
23
+ }
24
+ class $319e236875307eab$var$LiveAnnouncer {
25
+ isAttached() {
26
+ var _this_node;
27
+ return (_this_node = this.node) === null || _this_node === void 0 ? void 0 : _this_node.isConnected;
28
+ }
29
+ createLog(ariaLive) {
30
+ let node = document.createElement("div");
31
+ node.setAttribute("role", "log");
32
+ node.setAttribute("aria-live", ariaLive);
33
+ node.setAttribute("aria-relevant", "additions");
34
+ return node;
35
+ }
36
+ destroy() {
37
+ if (!this.node) return;
38
+ document.body.removeChild(this.node);
39
+ this.node = null;
40
+ }
41
+ announce(message, assertiveness = "assertive", timeout = $319e236875307eab$var$LIVEREGION_TIMEOUT_DELAY) {
42
+ var _this_assertiveLog, _this_politeLog;
43
+ if (!this.node) return;
44
+ let node = document.createElement("div");
45
+ if (typeof message === "object") {
46
+ node.setAttribute("role", "img");
47
+ node.setAttribute("aria-labelledby", message["aria-labelledby"]);
48
+ } else node.textContent = message;
49
+ if (assertiveness === "assertive") (_this_assertiveLog = this.assertiveLog) === null || _this_assertiveLog === void 0 ? void 0 : _this_assertiveLog.appendChild(node);
50
+ else (_this_politeLog = this.politeLog) === null || _this_politeLog === void 0 ? void 0 : _this_politeLog.appendChild(node);
51
+ if (message !== "") setTimeout(() => {
52
+ node.remove();
53
+ }, timeout);
54
+ }
55
+ clear(assertiveness) {
56
+ if (!this.node) return;
57
+ if ((!assertiveness || assertiveness === "assertive") && this.assertiveLog) this.assertiveLog.innerHTML = "";
58
+ if ((!assertiveness || assertiveness === "polite") && this.politeLog) this.politeLog.innerHTML = "";
59
+ }
60
+ constructor() {
61
+ this.node = null;
62
+ this.assertiveLog = null;
63
+ this.politeLog = null;
64
+ if (typeof document !== "undefined") {
65
+ this.node = document.createElement("div");
66
+ this.node.dataset.liveAnnouncer = "true";
67
+ Object.assign(this.node.style, {
68
+ border: 0,
69
+ clip: "rect(0 0 0 0)",
70
+ clipPath: "inset(50%)",
71
+ height: "1px",
72
+ margin: "-1px",
73
+ overflow: "hidden",
74
+ padding: 0,
75
+ position: "absolute",
76
+ width: "1px",
77
+ whiteSpace: "nowrap"
78
+ });
79
+ this.assertiveLog = this.createLog("assertive");
80
+ this.node.appendChild(this.assertiveLog);
81
+ this.politeLog = this.createLog("polite");
82
+ this.node.appendChild(this.politeLog);
83
+ document.body.prepend(this.node);
42
84
  }
43
- )
44
- );
45
- function useIconAnimation(isDisabled) {
46
- const iconAnimatedRef = useRef(null);
47
- const onAnimationForward = useCallback(() => {
48
- var _a;
49
- !isDisabled && ((_a = iconAnimatedRef.current) == null ? void 0 : _a.runAnimationForward());
50
- }, [isDisabled]);
51
- const onAnimationBackward = useCallback(() => {
85
+ }
86
+ }
87
+ let $1dfb119a85e764e5$var$formatterCache = /* @__PURE__ */ new Map();
88
+ let $1dfb119a85e764e5$var$supportsSignDisplay = false;
89
+ try {
90
+ $1dfb119a85e764e5$var$supportsSignDisplay = new Intl.NumberFormat("de-DE", {
91
+ signDisplay: "exceptZero"
92
+ }).resolvedOptions().signDisplay === "exceptZero";
93
+ } catch {
94
+ }
95
+ let $1dfb119a85e764e5$var$supportsUnit = false;
96
+ try {
97
+ $1dfb119a85e764e5$var$supportsUnit = new Intl.NumberFormat("de-DE", {
98
+ style: "unit",
99
+ unit: "degree"
100
+ }).resolvedOptions().style === "unit";
101
+ } catch {
102
+ }
103
+ const $1dfb119a85e764e5$var$UNITS = {
104
+ degree: {
105
+ narrow: {
106
+ default: "°",
107
+ "ja-JP": " 度",
108
+ "zh-TW": "度",
109
+ "sl-SI": " °"
110
+ }
111
+ }
112
+ };
113
+ class $1dfb119a85e764e5$export$cc77c4ff7e8673c5 {
114
+ constructor(locale, options = {}) {
115
+ this.numberFormatter = $1dfb119a85e764e5$var$getCachedNumberFormatter(locale, options);
116
+ this.options = options;
117
+ }
118
+ /** Formats a number value as a string, according to the locale and options provided to the constructor. */
119
+ format(value) {
52
120
  var _a;
53
- !isDisabled && ((_a = iconAnimatedRef.current) == null ? void 0 : _a.runAnimationBackward());
54
- }, [isDisabled]);
55
- return { iconAnimatedRef, onAnimationForward, onAnimationBackward };
56
- }
57
- function useButtonInteractionState(iconAnimationTriggers, onAnimationForward, onAnimationBackward, propsOnMouseEnter, propsOnMouseLeave) {
58
- const [active2, setActive] = useState(false);
59
- const animationTimeoutRef = useRef(
60
- null
61
- );
62
- const isForwardRef = useRef(false);
63
- const hasHoverTrigger = iconAnimationTriggers.includes(
64
- IconAnimationTriggers.HOVER
65
- );
66
- const hasClickTrigger = iconAnimationTriggers.includes(
67
- IconAnimationTriggers.CLICK
68
- );
69
- useEffect(() => {
70
- isForwardRef.current = false;
71
- }, [hasClickTrigger, hasHoverTrigger]);
72
- useEffect(() => {
73
- return () => {
74
- if (animationTimeoutRef.current) {
75
- clearTimeout(animationTimeoutRef.current);
76
- }
121
+ let res = "";
122
+ if (!$1dfb119a85e764e5$var$supportsSignDisplay && this.options.signDisplay != null) res = $1dfb119a85e764e5$export$711b50b3c525e0f2(this.numberFormatter, this.options.signDisplay, value);
123
+ else res = this.numberFormatter.format(value);
124
+ if (this.options.style === "unit" && !$1dfb119a85e764e5$var$supportsUnit) {
125
+ let { unit, unitDisplay = "short", locale } = this.resolvedOptions();
126
+ if (!unit) return res;
127
+ let values = (_a = $1dfb119a85e764e5$var$UNITS[unit]) == null ? void 0 : _a[unitDisplay];
128
+ res += values[locale] || values.default;
129
+ }
130
+ return res;
131
+ }
132
+ /** Formats a number to an array of parts such as separators, digits, punctuation, and more. */
133
+ formatToParts(value) {
134
+ return this.numberFormatter.formatToParts(value);
135
+ }
136
+ /** Formats a number range as a string. */
137
+ formatRange(start, end) {
138
+ if (typeof this.numberFormatter.formatRange === "function") return this.numberFormatter.formatRange(start, end);
139
+ if (end < start) throw new RangeError("End date must be >= start date");
140
+ return `${this.format(start)} – ${this.format(end)}`;
141
+ }
142
+ /** Formats a number range as an array of parts. */
143
+ formatRangeToParts(start, end) {
144
+ if (typeof this.numberFormatter.formatRangeToParts === "function") return this.numberFormatter.formatRangeToParts(start, end);
145
+ if (end < start) throw new RangeError("End date must be >= start date");
146
+ let startParts = this.numberFormatter.formatToParts(start);
147
+ let endParts = this.numberFormatter.formatToParts(end);
148
+ return [
149
+ ...startParts.map((p) => ({
150
+ ...p,
151
+ source: "startRange"
152
+ })),
153
+ {
154
+ type: "literal",
155
+ value: " – ",
156
+ source: "shared"
157
+ },
158
+ ...endParts.map((p) => ({
159
+ ...p,
160
+ source: "endRange"
161
+ }))
162
+ ];
163
+ }
164
+ /** Returns the resolved formatting options based on the values passed to the constructor. */
165
+ resolvedOptions() {
166
+ let options = this.numberFormatter.resolvedOptions();
167
+ if (!$1dfb119a85e764e5$var$supportsSignDisplay && this.options.signDisplay != null) options = {
168
+ ...options,
169
+ signDisplay: this.options.signDisplay
77
170
  };
78
- }, []);
79
- const onMouseEnter = useCallback(
80
- (event) => {
81
- if (animationTimeoutRef.current) {
82
- clearTimeout(animationTimeoutRef.current);
83
- animationTimeoutRef.current = null;
84
- }
85
- setActive(true);
86
- if (hasHoverTrigger) {
87
- onAnimationForward();
88
- }
89
- propsOnMouseEnter == null ? void 0 : propsOnMouseEnter(event);
90
- },
91
- [hasHoverTrigger, onAnimationForward, propsOnMouseEnter]
92
- );
93
- const onMouseLeave = useCallback(
94
- (event) => {
95
- animationTimeoutRef.current = setTimeout(() => {
96
- setActive(false);
97
- }, TRANSITION_DURATION);
98
- if (hasHoverTrigger) {
99
- onAnimationBackward();
100
- }
101
- propsOnMouseLeave == null ? void 0 : propsOnMouseLeave(event);
102
- },
103
- [hasHoverTrigger, onAnimationBackward, propsOnMouseLeave]
104
- );
105
- const onIconAnimationClick = useCallback(() => {
106
- if (!hasClickTrigger) {
107
- return;
171
+ if (!$1dfb119a85e764e5$var$supportsUnit && this.options.style === "unit") options = {
172
+ ...options,
173
+ style: "unit",
174
+ unit: this.options.unit,
175
+ unitDisplay: this.options.unitDisplay
176
+ };
177
+ return options;
178
+ }
179
+ }
180
+ function $1dfb119a85e764e5$var$getCachedNumberFormatter(locale, options = {}) {
181
+ var _a;
182
+ let { numberingSystem } = options;
183
+ if (numberingSystem && locale.includes("-nu-")) {
184
+ if (!locale.includes("-u-")) locale += "-u-";
185
+ locale += `-nu-${numberingSystem}`;
186
+ }
187
+ if (options.style === "unit" && !$1dfb119a85e764e5$var$supportsUnit) {
188
+ let { unit, unitDisplay = "short" } = options;
189
+ if (!unit) throw new Error('unit option must be provided with style: "unit"');
190
+ if (!((_a = $1dfb119a85e764e5$var$UNITS[unit]) == null ? void 0 : _a[unitDisplay])) throw new Error(`Unsupported unit ${unit} with unitDisplay = ${unitDisplay}`);
191
+ options = {
192
+ ...options,
193
+ style: "decimal"
194
+ };
195
+ }
196
+ let cacheKey = locale + (options ? Object.entries(options).sort((a, b) => a[0] < b[0] ? -1 : 1).join() : "");
197
+ if ($1dfb119a85e764e5$var$formatterCache.has(cacheKey)) return $1dfb119a85e764e5$var$formatterCache.get(cacheKey);
198
+ let numberFormatter = new Intl.NumberFormat(locale, options);
199
+ $1dfb119a85e764e5$var$formatterCache.set(cacheKey, numberFormatter);
200
+ return numberFormatter;
201
+ }
202
+ function $1dfb119a85e764e5$export$711b50b3c525e0f2(numberFormat, signDisplay, num) {
203
+ if (signDisplay === "auto") return numberFormat.format(num);
204
+ else if (signDisplay === "never") return numberFormat.format(Math.abs(num));
205
+ else {
206
+ let needsPositiveSign = false;
207
+ if (signDisplay === "always") needsPositiveSign = num > 0 || Object.is(num, 0);
208
+ else if (signDisplay === "exceptZero") {
209
+ if (Object.is(num, -0) || Object.is(num, 0)) num = Math.abs(num);
210
+ else needsPositiveSign = num > 0;
108
211
  }
109
- if (isForwardRef.current) {
110
- onAnimationBackward();
111
- } else {
112
- onAnimationForward();
212
+ if (needsPositiveSign) {
213
+ let negative = numberFormat.format(-num);
214
+ let noSign = numberFormat.format(num);
215
+ let minus = negative.replace(noSign, "").replace(/\u200e|\u061C/, "");
216
+ if ([
217
+ ...minus
218
+ ].length !== 1) console.warn("@react-aria/i18n polyfill for NumberFormat signDisplay: Unsupported case");
219
+ let positive = negative.replace(noSign, "!!!").replace(minus, "+").replace("!!!", noSign);
220
+ return positive;
221
+ } else return numberFormat.format(num);
222
+ }
223
+ }
224
+ let $cbf007e418543821$var$state = "default";
225
+ let $cbf007e418543821$var$savedUserSelect = "";
226
+ let $cbf007e418543821$var$modifiedElementMap = /* @__PURE__ */ new WeakMap();
227
+ function $cbf007e418543821$export$16a4697467175487(target) {
228
+ if ($2add3ce32c6007eb$export$fedb369cb70207f1()) {
229
+ if ($cbf007e418543821$var$state === "default") {
230
+ const documentObject = $d447af545b77c9f1$export$b204af158042fbac(target);
231
+ $cbf007e418543821$var$savedUserSelect = documentObject.documentElement.style.webkitUserSelect;
232
+ documentObject.documentElement.style.webkitUserSelect = "none";
113
233
  }
114
- isForwardRef.current = !isForwardRef.current;
115
- }, [hasClickTrigger, onAnimationBackward, onAnimationForward]);
116
- return {
117
- active: active2,
118
- onMouseEnter,
119
- onMouseLeave,
120
- onIconAnimationClick: hasClickTrigger ? onIconAnimationClick : void 0
121
- };
234
+ $cbf007e418543821$var$state = "disabled";
235
+ } else if (target instanceof HTMLElement || target instanceof SVGElement) {
236
+ let property = "userSelect" in target.style ? "userSelect" : "webkitUserSelect";
237
+ $cbf007e418543821$var$modifiedElementMap.set(target, target.style[property]);
238
+ target.style[property] = "none";
239
+ }
122
240
  }
123
- const useAnalyticsReportClicks = ({
124
- reportBiOnClick,
125
- onClick: propsOnClick
126
- }) => {
127
- return useCallback(
128
- (event) => {
129
- reportBiOnClick == null ? void 0 : reportBiOnClick(event);
130
- propsOnClick == null ? void 0 : propsOnClick(event);
131
- },
132
- [reportBiOnClick, propsOnClick]
133
- );
134
- };
135
- function useButtonEventHandlers({
136
- isDisabled,
137
- link: link2,
138
- propsOnClick,
139
- preventLinkNavigation,
140
- reportBiOnClick,
141
- onMouseEnter,
142
- onMouseLeave,
143
- onIconAnimationClick,
144
- onDblClick,
145
- onFocus,
146
- onBlur
147
- }) {
148
- const isLink = isValidLink(link2);
149
- const shouldPreventLinkNavigation = preventLinkNavigation && isLink;
150
- const shouldHaveOnClick = !isDisabled && propsOnClick || shouldPreventLinkNavigation;
151
- const onClick = useAnalyticsReportClicks({
152
- reportBiOnClick,
153
- onClick: shouldHaveOnClick || onIconAnimationClick ? (event) => {
154
- onIconAnimationClick == null ? void 0 : onIconAnimationClick(event);
155
- if (shouldHaveOnClick) {
156
- shouldPreventLinkNavigation && event.preventDefault();
157
- !isDisabled && (propsOnClick == null ? void 0 : propsOnClick());
158
- }
159
- } : void 0
160
- });
161
- const eventHandlers = useMemo(
162
- () => ({
163
- onClick,
164
- onMouseEnter,
165
- onMouseLeave,
166
- onKeyDown: isLink ? activateByEnterButton : activateBySpaceOrEnterButton,
167
- onDoubleClick: !isDisabled && onDblClick ? onDblClick : void 0,
168
- onFocus: !isDisabled && onFocus ? onFocus : void 0,
169
- onBlur: !isDisabled && onBlur ? onBlur : void 0
170
- }),
171
- [
172
- onClick,
173
- onMouseEnter,
174
- onMouseLeave,
175
- isLink,
176
- isDisabled,
177
- onDblClick,
178
- onFocus,
179
- onBlur
180
- ]
181
- );
182
- return { isLink, eventHandlers };
183
- }
184
- function useButtonA11y({
185
- propsA11y,
186
- ariaAttributes,
187
- lang
188
- }) {
189
- const normalizedA11y = useMemo(() => {
190
- const {
191
- lang: manifestLang,
192
- tabIndex: manifestTabindex,
193
- ...manifestAriaAttributes
194
- } = propsA11y ?? {};
195
- return {
196
- lang: manifestLang,
197
- tabIndex: manifestTabindex,
198
- ariaAttributes: removeAriaPrefix(manifestAriaAttributes)
199
- };
200
- }, [propsA11y]);
201
- const a11yAttr = useMemo(
202
- () => {
203
- var _a;
204
- return getAccessibilityAttributesSpread({
205
- ariaAttributes: {
206
- ...ariaAttributes,
207
- ...normalizedA11y.ariaAttributes,
208
- label: (ariaAttributes == null ? void 0 : ariaAttributes.label) ?? normalizedA11y.ariaAttributes.label
209
- },
210
- tabIndex: normalizedA11y.tabIndex,
211
- lang: ((lang == null ? void 0 : lang.trim()) ?? ((_a = normalizedA11y.lang) == null ? void 0 : _a.trim())) || void 0
241
+ function $cbf007e418543821$export$b0d6fa1ab32e3295(target) {
242
+ if ($2add3ce32c6007eb$export$fedb369cb70207f1()) {
243
+ if ($cbf007e418543821$var$state !== "disabled") return;
244
+ $cbf007e418543821$var$state = "restoring";
245
+ setTimeout(() => {
246
+ $081cb5757e08788e$export$24490316f764c430(() => {
247
+ if ($cbf007e418543821$var$state === "restoring") {
248
+ const documentObject = $d447af545b77c9f1$export$b204af158042fbac(target);
249
+ if (documentObject.documentElement.style.webkitUserSelect === "none") documentObject.documentElement.style.webkitUserSelect = $cbf007e418543821$var$savedUserSelect || "";
250
+ $cbf007e418543821$var$savedUserSelect = "";
251
+ $cbf007e418543821$var$state = "default";
252
+ }
212
253
  });
213
- },
214
- [normalizedA11y, ariaAttributes, lang]
215
- );
216
- return a11yAttr;
217
- }
218
- const BusinessLoggerDefinition = defineStaticService("@wix/site-service-business-logger");
219
- const ConfigurationDefinition = defineService("@wix/site-service-configuration");
220
- const CLICK_ANALYTICS_SRC = 76;
221
- const CLICK_ANALYTICS_EVID = 1113;
222
- const CLICK_ANALYTICS_ENDPOINT = "pa";
223
- const ClickAnalyticsGroups = {
224
- Button: "Button"
225
- };
226
- const buildClickAnalyticsEvent = ({
227
- link: link2,
228
- details,
229
- elementId,
230
- elementType,
231
- elementGroup,
232
- elementTitle,
233
- language
234
- }) => ({
235
- src: CLICK_ANALYTICS_SRC,
236
- evid: CLICK_ANALYTICS_EVID,
237
- bl: navigator.language,
238
- url: window.location.href,
239
- element_id: elementId,
240
- elementType,
241
- elementGroup,
242
- elementTitle,
243
- language,
244
- value: link2 == null ? void 0 : link2.href,
245
- details: details ? JSON.stringify(details) : void 0
254
+ }, 300);
255
+ } else if (target instanceof HTMLElement || target instanceof SVGElement) {
256
+ if (target && $cbf007e418543821$var$modifiedElementMap.has(target)) {
257
+ let targetOldUserSelect = $cbf007e418543821$var$modifiedElementMap.get(target);
258
+ let property = "userSelect" in target.style ? "userSelect" : "webkitUserSelect";
259
+ if (target.style[property] === "none") target.style[property] = targetOldUserSelect;
260
+ if (target.getAttribute("style") === "") target.removeAttribute("style");
261
+ $cbf007e418543821$var$modifiedElementMap.delete(target);
262
+ }
263
+ }
264
+ }
265
+ function $2b2d34ff061957fb$var$getWebpackNonce(doc) {
266
+ let ownerWindow = doc == null ? void 0 : doc.defaultView;
267
+ return (ownerWindow == null ? void 0 : ownerWindow.__webpack_nonce__) || globalThis["__webpack_nonce__"] || void 0;
268
+ }
269
+ let $2b2d34ff061957fb$var$nonceCache = /* @__PURE__ */ new WeakMap();
270
+ function $2b2d34ff061957fb$export$2b85b721e524d74b(doc) {
271
+ let d = doc ?? (typeof document !== "undefined" ? document : void 0);
272
+ if (!d) return $2b2d34ff061957fb$var$getWebpackNonce(d);
273
+ if ($2b2d34ff061957fb$var$nonceCache.has(d)) return $2b2d34ff061957fb$var$nonceCache.get(d);
274
+ let meta = d.querySelector('meta[property="csp-nonce"]');
275
+ let nonce = meta && meta instanceof $d447af545b77c9f1$export$f21a1ffae260145a(meta).HTMLMetaElement && (meta.nonce || meta.content) || $2b2d34ff061957fb$var$getWebpackNonce(d) || void 0;
276
+ if (nonce !== void 0) $2b2d34ff061957fb$var$nonceCache.set(d, nonce);
277
+ return nonce;
278
+ }
279
+ const $24f9a20f226ad820$export$5165eccb35aaadb5 = React__default.createContext({
280
+ register: () => {
281
+ }
246
282
  });
247
- const useClickAnalyticsReporter = (params) => {
248
- var _a;
249
- const businessLogger = useService(
250
- BusinessLoggerDefinition
251
- );
252
- const environment = useService(EnvironmentDefinition);
253
- const configuration = useService(
254
- ConfigurationDefinition
255
- );
256
- const isPreview = (_a = environment == null ? void 0 : environment.getPreviewMode) == null ? void 0 : _a.call(environment);
257
- const reportBi = businessLogger == null ? void 0 : businessLogger.reportBi;
258
- const language = params.language ?? (environment == null ? void 0 : environment.language);
259
- const trackClicksAnalytics = configuration == null ? void 0 : configuration.trackClicksAnalytics;
260
- const isEnabled = !isPreview && trackClicksAnalytics && typeof reportBi === "function";
261
- const paramsRef = useRef(params);
262
- paramsRef.current = params;
263
- return useMemo(() => {
264
- if (!isEnabled) {
265
- return void 0;
283
+ $24f9a20f226ad820$export$5165eccb35aaadb5.displayName = "PressResponderContext";
284
+ function $d27d541f9569d26d$var$usePressResponderContext(props) {
285
+ let context = useContext($24f9a20f226ad820$export$5165eccb35aaadb5);
286
+ if (context) {
287
+ let { register, ref, ...contextProps } = context;
288
+ props = $bbaa08b3cd72f041$export$9d1611c77c2fe928(contextProps, props);
289
+ register();
290
+ }
291
+ $b7115c395c64f7b5$export$4debdb1a3f0fa79e(context, props.ref);
292
+ return props;
293
+ }
294
+ class $d27d541f9569d26d$var$PressEvent {
295
+ constructor(type, pointerType, originalEvent, state) {
296
+ __privateAdd(this, _shouldStopPropagation);
297
+ __privateSet(this, _shouldStopPropagation, true);
298
+ let currentTarget = (state == null ? void 0 : state.target) ?? originalEvent.currentTarget;
299
+ const rect = currentTarget == null ? void 0 : currentTarget.getBoundingClientRect();
300
+ let x, y = 0;
301
+ let clientX, clientY = null;
302
+ if (originalEvent.clientX != null && originalEvent.clientY != null) {
303
+ clientX = originalEvent.clientX;
304
+ clientY = originalEvent.clientY;
266
305
  }
267
- return (event) => {
268
- const { elementId, ...restParams } = paramsRef.current;
269
- try {
270
- void Promise.resolve(
271
- reportBi(
272
- buildClickAnalyticsEvent({
273
- ...restParams,
274
- language,
275
- elementId: elementId || event.currentTarget.id
276
- }),
277
- { endpoint: CLICK_ANALYTICS_ENDPOINT }
278
- )
279
- ).catch(() => {
280
- });
281
- } catch {
306
+ if (rect) {
307
+ if (clientX != null && clientY != null) {
308
+ x = clientX - rect.left;
309
+ y = clientY - rect.top;
310
+ } else {
311
+ x = rect.width / 2;
312
+ y = rect.height / 2;
282
313
  }
283
- };
284
- }, [isEnabled, reportBi, language]);
285
- };
286
- const Button = (props) => {
287
- var _a;
288
- const {
289
- id,
290
- link: link2,
291
- type = "button",
292
- label: label2 = "",
293
- labelContent,
294
- disabled: isDisabled = false,
295
- onClick: propsOnClick,
296
- className,
297
- corvid,
298
- a11y: propsA11y,
299
- direction,
300
- elementProps,
301
- compPreviewState,
302
- isQaMode,
303
- fullNameCompType,
304
- lang,
305
- ariaAttributes,
306
- onDblClick,
307
- onFocus,
308
- onBlur,
309
- reportBiOnClick,
310
- preventLinkNavigation,
311
- onMouseEnter,
312
- onMouseLeave,
313
- onMouseIn,
314
- onMouseOut,
315
- wix,
316
- hasTransitions: hasTransitions2 = true
317
- } = props;
318
- const propsOnMouseEnter = useCallback(
319
- (event) => {
320
- onMouseIn == null ? void 0 : onMouseIn(event);
321
- onMouseEnter == null ? void 0 : onMouseEnter(event);
322
- },
323
- [onMouseIn, onMouseEnter]
324
- );
325
- const propsOnMouseLeave = useCallback(
326
- (event) => {
327
- onMouseOut == null ? void 0 : onMouseOut(event);
328
- onMouseLeave == null ? void 0 : onMouseLeave(event);
329
- },
330
- [onMouseOut, onMouseLeave]
331
- );
332
- const presetsWrapperProps = (wix == null ? void 0 : wix.presetsWrapperProps) || {};
333
- const animatedIconProps = elementProps == null ? void 0 : elementProps.animatedIcon;
334
- const corvidIconAnimationTriggers = (corvid == null ? void 0 : corvid.iconAnimationTriggers) ?? [];
335
- const defaultTrigger = (animatedIconProps == null ? void 0 : animatedIconProps.trigger) === IconAnimationTriggers.CLICK ? IconAnimationTriggers.CLICK : IconAnimationTriggers.HOVER;
336
- const iconAnimationTriggers = corvidIconAnimationTriggers.length > 0 ? corvidIconAnimationTriggers : [defaultTrigger];
337
- const { iconAnimatedRef, onAnimationForward, onAnimationBackward } = useIconAnimation(isDisabled);
338
- const {
339
- active: active2,
340
- onMouseEnter: handleMouseEnter,
341
- onMouseLeave: handleMouseLeave,
342
- onIconAnimationClick
343
- } = useButtonInteractionState(
344
- iconAnimationTriggers,
345
- onAnimationForward,
346
- onAnimationBackward,
347
- propsOnMouseEnter,
348
- propsOnMouseLeave
349
- );
350
- const buttonOrLinkRef = useRef(null);
351
- const semanticClassNames = SEMANTIC_CLASS_NAMES;
352
- const rootClassName = clsx(
353
- styles.root,
354
- className,
355
- styles.button,
356
- "button",
357
- !direction && directionStyles.fallbackDirection,
358
- formatClassNames(semanticClassNames.root),
359
- {
360
- disabled: isDisabled,
361
- [DesignStates.root.disabled.className]: isDisabled,
362
- [styles.active]: active2,
363
- [styles.hasTransitions]: hasTransitions2
364
314
  }
365
- );
366
- const labelClassName = clsx(
367
- "label",
368
- styles.label,
369
- formatClassNames(semanticClassNames.buttonLabel),
370
- (_a = elementProps == null ? void 0 : elementProps.label) == null ? void 0 : _a.className,
371
- isDisabled && DesignStates.label.disabled.className
372
- );
373
- const linkClassName = styles.link;
374
- const reportClickAnalytics = useClickAnalyticsReporter({
375
- link: link2,
376
- elementId: id,
377
- elementType: COMPONENT_TYPE,
378
- elementGroup: ClickAnalyticsGroups.Button,
379
- elementTitle: label2,
380
- details: { isDisabled }
315
+ this.type = type;
316
+ this.pointerType = pointerType;
317
+ this.target = originalEvent.currentTarget;
318
+ this.shiftKey = originalEvent.shiftKey;
319
+ this.metaKey = originalEvent.metaKey;
320
+ this.ctrlKey = originalEvent.ctrlKey;
321
+ this.altKey = originalEvent.altKey;
322
+ this.x = x;
323
+ this.y = y;
324
+ this.key = originalEvent.key;
325
+ }
326
+ continuePropagation() {
327
+ __privateSet(this, _shouldStopPropagation, false);
328
+ }
329
+ get shouldStopPropagation() {
330
+ return __privateGet(this, _shouldStopPropagation);
331
+ }
332
+ }
333
+ _shouldStopPropagation = new WeakMap();
334
+ const $d27d541f9569d26d$var$LINK_CLICKED = Symbol("linkClicked");
335
+ const $d27d541f9569d26d$var$STYLE_ID = "react-aria-pressable-style";
336
+ const $d27d541f9569d26d$var$PRESSABLE_ATTRIBUTE = "data-react-aria-pressable";
337
+ function $d27d541f9569d26d$export$45712eceda6fad21(props) {
338
+ let { onPress, onPressChange, onPressStart, onPressEnd, onPressUp, onClick, isDisabled, isPressed: isPressedProp, preventFocusOnPress, shouldCancelOnPointerExit, allowTextSelectionOnPress, ref: domRef, ...domProps } = $d27d541f9569d26d$var$usePressResponderContext(props);
339
+ let [isPressed, setPressed] = useState(false);
340
+ let ref = useRef({
341
+ isPressed: false,
342
+ ignoreEmulatedMouseEvents: false,
343
+ didFirePressStart: false,
344
+ isTriggeringEvent: false,
345
+ activePointerId: null,
346
+ target: null,
347
+ isOverTarget: false,
348
+ pointerType: null,
349
+ disposables: []
381
350
  });
382
- const { isLink, eventHandlers } = useButtonEventHandlers({
351
+ let { addGlobalListener, removeAllGlobalListeners } = $48a7d519b337145d$export$4eaf04e54aa8eed6();
352
+ let triggerPressStart = useCallback((originalEvent, pointerType) => {
353
+ let state = ref.current;
354
+ if (isDisabled || state.didFirePressStart) return false;
355
+ let shouldStopPropagation = true;
356
+ state.isTriggeringEvent = true;
357
+ if (onPressStart) {
358
+ let event = new $d27d541f9569d26d$var$PressEvent("pressstart", pointerType, originalEvent);
359
+ onPressStart(event);
360
+ shouldStopPropagation = event.shouldStopPropagation;
361
+ }
362
+ if (onPressChange) onPressChange(true);
363
+ state.isTriggeringEvent = false;
364
+ state.didFirePressStart = true;
365
+ setPressed(true);
366
+ return shouldStopPropagation;
367
+ }, [
383
368
  isDisabled,
384
- link: link2,
385
- propsOnClick,
386
- preventLinkNavigation,
387
- reportBiOnClick: reportBiOnClick ?? reportClickAnalytics,
388
- onMouseEnter: handleMouseEnter,
389
- onMouseLeave: handleMouseLeave,
390
- onIconAnimationClick,
391
- onDblClick,
392
- onFocus,
393
- onBlur
394
- });
395
- const a11yAttr = useButtonA11y({ propsA11y, ariaAttributes, lang });
396
- const renderedLabel = labelContent ?? label2;
397
- const wrapperAttributes = {
398
- id,
399
- ...getDataAttributes(props),
400
- ...getQaDataAttributes(isQaMode, fullNameCompType),
401
- "data-semantic-classname": semanticClassNames.root,
402
- ...direction && { dir: direction }
403
- };
404
- const renderButtonContent = () => /* @__PURE__ */ jsxs(Fragment, { children: [
405
- renderedLabel && /* @__PURE__ */ jsx("span", { className: labelClassName, "data-testid": TestIds.buttonLabel, children: renderedLabel }),
406
- /* @__PURE__ */ jsx(
407
- AnimatedButtonIcon,
408
- {
409
- ref: iconAnimatedRef,
410
- svg: animatedIconProps == null ? void 0 : animatedIconProps.svg,
411
- duration: animatedIconProps == null ? void 0 : animatedIconProps.duration,
412
- className: animatedIconProps == null ? void 0 : animatedIconProps.className
413
- }
414
- )
415
- ] });
416
- const renderButton = () => /* @__PURE__ */ jsx(
417
- "button",
418
- {
419
- type,
420
- disabled: isDisabled,
421
- className: rootClassName,
422
- "data-testid": TestIds.buttonContent,
423
- ...wrapperAttributes,
424
- ...a11yAttr,
425
- ...eventHandlers,
426
- ref: buttonOrLinkRef,
427
- "data-preview": compPreviewState,
428
- children: renderButtonContent()
369
+ onPressStart,
370
+ onPressChange
371
+ ]);
372
+ let triggerPressEnd = useCallback((originalEvent, pointerType, wasPressed = true) => {
373
+ let state = ref.current;
374
+ if (!state.didFirePressStart) return false;
375
+ state.didFirePressStart = false;
376
+ state.isTriggeringEvent = true;
377
+ let shouldStopPropagation = true;
378
+ if (onPressEnd) {
379
+ let event = new $d27d541f9569d26d$var$PressEvent("pressend", pointerType, originalEvent);
380
+ onPressEnd(event);
381
+ shouldStopPropagation = event.shouldStopPropagation;
429
382
  }
430
- );
431
- const renderLinkedButton = () => {
432
- const linkHref = isDisabled ? void 0 : link2.href;
433
- const linkRel = link2.rel;
434
- const linkTarget = link2.target;
435
- const linkPopupId = link2.linkPopupId;
436
- const anchorDataId = link2.anchorDataId;
437
- const anchorCompId = link2.anchorCompId;
438
- return /* @__PURE__ */ jsx(
439
- "a",
440
- {
441
- href: linkHref,
442
- rel: linkRel,
443
- target: linkTarget,
444
- "data-popupid": linkPopupId,
445
- "data-anchor": anchorDataId,
446
- "data-anchor-comp-id": anchorCompId,
447
- className: clsx(linkClassName, rootClassName),
448
- "data-testid": TestIds.buttonContent,
449
- ...wrapperAttributes,
450
- ...a11yAttr,
451
- ...eventHandlers,
452
- role: a11yAttr.role,
453
- tabIndex: a11yAttr.tabIndex,
454
- ref: buttonOrLinkRef,
455
- "data-preview": compPreviewState,
456
- children: renderButtonContent()
457
- }
458
- );
459
- };
460
- const renderDisabledLinkAsButton = () => /* @__PURE__ */ jsx(
461
- "button",
462
- {
463
- type,
464
- disabled: isDisabled,
465
- className: clsx(rootClassName),
466
- "data-testid": TestIds.buttonContent,
467
- ...wrapperAttributes,
468
- ...a11yAttr,
469
- ...eventHandlers,
470
- role: "link",
471
- ref: buttonOrLinkRef,
472
- "data-preview": compPreviewState,
473
- children: renderButtonContent()
383
+ if (onPressChange) onPressChange(false);
384
+ setPressed(false);
385
+ if (onPress && wasPressed && !isDisabled) {
386
+ let event = new $d27d541f9569d26d$var$PressEvent("press", pointerType, originalEvent);
387
+ onPress(event);
388
+ shouldStopPropagation && (shouldStopPropagation = event.shouldStopPropagation);
389
+ }
390
+ state.isTriggeringEvent = false;
391
+ return shouldStopPropagation;
392
+ }, [
393
+ isDisabled,
394
+ onPressEnd,
395
+ onPressChange,
396
+ onPress
397
+ ]);
398
+ let triggerPressEndEvent = $fe16bffc7a557bf0$export$7f54fc3180508a52(triggerPressEnd);
399
+ let triggerPressUp = useCallback((originalEvent, pointerType) => {
400
+ let state = ref.current;
401
+ if (isDisabled) return false;
402
+ if (onPressUp) {
403
+ state.isTriggeringEvent = true;
404
+ let event = new $d27d541f9569d26d$var$PressEvent("pressup", pointerType, originalEvent);
405
+ onPressUp(event);
406
+ state.isTriggeringEvent = false;
407
+ return event.shouldStopPropagation;
474
408
  }
475
- );
476
- const renderContent = () => {
477
- if (isDisabled && isLink) {
478
- return renderDisabledLinkAsButton();
409
+ return true;
410
+ }, [
411
+ isDisabled,
412
+ onPressUp
413
+ ]);
414
+ let triggerPressUpEvent = $fe16bffc7a557bf0$export$7f54fc3180508a52(triggerPressUp);
415
+ let cancel = useCallback((e) => {
416
+ let state = ref.current;
417
+ if (state.isPressed && state.target) {
418
+ if (state.didFirePressStart && state.pointerType != null) triggerPressEnd($d27d541f9569d26d$var$createEvent(state.target, e), state.pointerType, false);
419
+ state.isPressed = false;
420
+ state.isOverTarget = false;
421
+ state.activePointerId = null;
422
+ state.pointerType = null;
423
+ removeAllGlobalListeners();
424
+ if (!allowTextSelectionOnPress) $cbf007e418543821$export$b0d6fa1ab32e3295(state.target);
425
+ for (let dispose of state.disposables) dispose();
426
+ state.disposables = [];
427
+ }
428
+ }, [
429
+ allowTextSelectionOnPress,
430
+ removeAllGlobalListeners,
431
+ triggerPressEnd
432
+ ]);
433
+ let cancelEvent = $fe16bffc7a557bf0$export$7f54fc3180508a52(cancel);
434
+ let cancelOnPointerExit = useCallback((e) => {
435
+ if (shouldCancelOnPointerExit) cancel(e);
436
+ }, [
437
+ shouldCancelOnPointerExit,
438
+ cancel
439
+ ]);
440
+ let triggerClick = useCallback((e) => {
441
+ if (isDisabled) return;
442
+ onClick == null ? void 0 : onClick(e);
443
+ }, [
444
+ isDisabled,
445
+ onClick
446
+ ]);
447
+ let triggerSyntheticClick = useCallback((e, target) => {
448
+ if (isDisabled) return;
449
+ if (onClick) {
450
+ let event = new MouseEvent("click", e);
451
+ $a92dc41f639950be$export$c2b7abe5d61ec696(event, target);
452
+ onClick($a92dc41f639950be$export$525bc4921d56d4a(event));
479
453
  }
480
- return isLink ? renderLinkedButton() : renderButton();
454
+ }, [
455
+ isDisabled,
456
+ onClick
457
+ ]);
458
+ let pressProps = useMemo(() => {
459
+ let state = ref.current;
460
+ let pressProps2 = {
461
+ onKeyDown(e) {
462
+ var _a;
463
+ if ($d27d541f9569d26d$var$isValidKeyboardEvent(e.nativeEvent, e.currentTarget) && $23f2114a1b82827e$export$4282f70798064fe0(e.currentTarget, $23f2114a1b82827e$export$e58f029f0fbfdb29(e))) {
464
+ if ($d27d541f9569d26d$var$shouldPreventDefaultKeyboard($23f2114a1b82827e$export$e58f029f0fbfdb29(e), e.key)) e.preventDefault();
465
+ let shouldStopPropagation = true;
466
+ if (!state.isPressed && !e.repeat) {
467
+ state.target = e.currentTarget;
468
+ state.isPressed = true;
469
+ state.pointerType = "keyboard";
470
+ shouldStopPropagation = triggerPressStart(e, "keyboard");
471
+ }
472
+ let originalTarget = e.currentTarget;
473
+ let pressUp = (e2) => {
474
+ if ($d27d541f9569d26d$var$isValidKeyboardEvent(e2, originalTarget) && !e2.repeat && $23f2114a1b82827e$export$4282f70798064fe0(originalTarget, $23f2114a1b82827e$export$e58f029f0fbfdb29(e2)) && state.target)
475
+ triggerPressUpEvent($d27d541f9569d26d$var$createEvent(state.target, e2), "keyboard");
476
+ };
477
+ addGlobalListener($d447af545b77c9f1$export$b204af158042fbac(e.currentTarget), "keyup", $a4e76a5424781910$export$e08e3b67e392101e(pressUp, onKeyUp), true);
478
+ if (shouldStopPropagation) e.stopPropagation();
479
+ if (e.metaKey && $2add3ce32c6007eb$export$9ac100e40613ea10()) (_a = state.metaKeyEvents) == null ? void 0 : _a.set(e.key, e.nativeEvent);
480
+ } else if (e.key === "Meta") state.metaKeyEvents = /* @__PURE__ */ new Map();
481
+ },
482
+ onClick(e) {
483
+ if (e && !$23f2114a1b82827e$export$4282f70798064fe0(e.currentTarget, $23f2114a1b82827e$export$e58f029f0fbfdb29(e))) return;
484
+ if (e && e.button === 0 && !state.isTriggeringEvent && !$caaf0dd3060ed57c$export$95185d699e05d4d7.isOpening) {
485
+ let shouldStopPropagation = true;
486
+ if (isDisabled) e.preventDefault();
487
+ if (!state.ignoreEmulatedMouseEvents && !state.isPressed && (state.pointerType === "virtual" || $b5c62b033c25b96d$export$60278871457622de(e.nativeEvent))) {
488
+ let stopPressStart = triggerPressStart(e, "virtual");
489
+ let stopPressUp = triggerPressUpEvent(e, "virtual");
490
+ let stopPressEnd = triggerPressEndEvent(e, "virtual");
491
+ triggerClick(e);
492
+ shouldStopPropagation = stopPressStart && stopPressUp && stopPressEnd;
493
+ } else if (state.isPressed && state.pointerType !== "keyboard") {
494
+ let pointerType = state.pointerType || e.nativeEvent.pointerType || "virtual";
495
+ let stopPressUp = triggerPressUpEvent($d27d541f9569d26d$var$createEvent(e.currentTarget, e), pointerType);
496
+ let stopPressEnd = triggerPressEndEvent($d27d541f9569d26d$var$createEvent(e.currentTarget, e), pointerType, true);
497
+ shouldStopPropagation = stopPressUp && stopPressEnd;
498
+ state.isOverTarget = false;
499
+ triggerClick(e);
500
+ cancelEvent(e);
501
+ }
502
+ state.ignoreEmulatedMouseEvents = false;
503
+ if (shouldStopPropagation) e.stopPropagation();
504
+ }
505
+ }
506
+ };
507
+ let onKeyUp = (e) => {
508
+ var _a, _b, _c;
509
+ if (state.isPressed && state.target && $d27d541f9569d26d$var$isValidKeyboardEvent(e, state.target)) {
510
+ if ($d27d541f9569d26d$var$shouldPreventDefaultKeyboard($23f2114a1b82827e$export$e58f029f0fbfdb29(e), e.key)) e.preventDefault();
511
+ let target = $23f2114a1b82827e$export$e58f029f0fbfdb29(e);
512
+ let wasPressed = $23f2114a1b82827e$export$4282f70798064fe0(state.target, target);
513
+ triggerPressEndEvent($d27d541f9569d26d$var$createEvent(state.target, e), "keyboard", wasPressed);
514
+ if (wasPressed) triggerSyntheticClick(e, state.target);
515
+ removeAllGlobalListeners();
516
+ if (e.key !== "Enter" && $d27d541f9569d26d$var$isHTMLAnchorLink(state.target) && $23f2114a1b82827e$export$4282f70798064fe0(state.target, target) && !e[$d27d541f9569d26d$var$LINK_CLICKED]) {
517
+ e[$d27d541f9569d26d$var$LINK_CLICKED] = true;
518
+ $caaf0dd3060ed57c$export$95185d699e05d4d7(state.target, e, false);
519
+ }
520
+ state.isPressed = false;
521
+ (_a = state.metaKeyEvents) == null ? void 0 : _a.delete(e.key);
522
+ } else if (e.key === "Meta" && ((_b = state.metaKeyEvents) == null ? void 0 : _b.size)) {
523
+ let events = state.metaKeyEvents;
524
+ state.metaKeyEvents = void 0;
525
+ for (let event of events.values()) (_c = state.target) == null ? void 0 : _c.dispatchEvent(new KeyboardEvent("keyup", event));
526
+ }
527
+ };
528
+ if (typeof PointerEvent !== "undefined") {
529
+ pressProps2.onPointerDown = (e) => {
530
+ if (e.button !== 0 || !$23f2114a1b82827e$export$4282f70798064fe0(e.currentTarget, $23f2114a1b82827e$export$e58f029f0fbfdb29(e))) return;
531
+ if ($b5c62b033c25b96d$export$29bf1b5f2c56cf63(e.nativeEvent)) {
532
+ state.pointerType = "virtual";
533
+ return;
534
+ }
535
+ state.pointerType = e.pointerType;
536
+ let shouldStopPropagation = true;
537
+ if (!state.isPressed) {
538
+ state.isPressed = true;
539
+ state.isOverTarget = true;
540
+ state.activePointerId = e.pointerId;
541
+ state.target = e.currentTarget;
542
+ if (!allowTextSelectionOnPress) $cbf007e418543821$export$16a4697467175487(state.target);
543
+ shouldStopPropagation = triggerPressStart(e, state.pointerType);
544
+ let target = $23f2114a1b82827e$export$e58f029f0fbfdb29(e);
545
+ if ("releasePointerCapture" in target) {
546
+ if ("hasPointerCapture" in target) {
547
+ if (target.hasPointerCapture(e.pointerId)) target.releasePointerCapture(e.pointerId);
548
+ } else target.releasePointerCapture(e.pointerId);
549
+ }
550
+ addGlobalListener($d447af545b77c9f1$export$b204af158042fbac(e.currentTarget), "pointerup", onPointerUp, false);
551
+ addGlobalListener($d447af545b77c9f1$export$b204af158042fbac(e.currentTarget), "pointercancel", onPointerCancel, false);
552
+ }
553
+ if (shouldStopPropagation) e.stopPropagation();
554
+ };
555
+ pressProps2.onMouseDown = (e) => {
556
+ if (!$23f2114a1b82827e$export$4282f70798064fe0(e.currentTarget, $23f2114a1b82827e$export$e58f029f0fbfdb29(e))) return;
557
+ if (e.button === 0) {
558
+ if (preventFocusOnPress) {
559
+ let dispose = $a92dc41f639950be$export$cabe61c495ee3649(e.target);
560
+ if (dispose) state.disposables.push(dispose);
561
+ }
562
+ e.stopPropagation();
563
+ }
564
+ };
565
+ pressProps2.onPointerUp = (e) => {
566
+ if (!$23f2114a1b82827e$export$4282f70798064fe0(e.currentTarget, $23f2114a1b82827e$export$e58f029f0fbfdb29(e)) || state.pointerType === "virtual") return;
567
+ if (e.button === 0 && !state.isPressed)
568
+ triggerPressUpEvent(e, state.pointerType || e.pointerType);
569
+ };
570
+ pressProps2.onPointerEnter = (e) => {
571
+ if (e.pointerId === state.activePointerId && state.target && !state.isOverTarget && state.pointerType != null) {
572
+ state.isOverTarget = true;
573
+ triggerPressStart($d27d541f9569d26d$var$createEvent(state.target, e), state.pointerType);
574
+ }
575
+ };
576
+ pressProps2.onPointerLeave = (e) => {
577
+ if (e.pointerId === state.activePointerId && state.target && state.isOverTarget && state.pointerType != null) {
578
+ state.isOverTarget = false;
579
+ triggerPressEndEvent($d27d541f9569d26d$var$createEvent(state.target, e), state.pointerType, false);
580
+ cancelOnPointerExit(e);
581
+ }
582
+ };
583
+ let onPointerUp = (e) => {
584
+ if (e.pointerId === state.activePointerId && state.isPressed && e.button === 0 && state.target) {
585
+ if ($23f2114a1b82827e$export$4282f70798064fe0(state.target, $23f2114a1b82827e$export$e58f029f0fbfdb29(e)) && state.pointerType != null) {
586
+ let clicked = false;
587
+ let timeout = setTimeout(() => {
588
+ if (state.isPressed && state.target instanceof HTMLElement) {
589
+ if (clicked)
590
+ cancelEvent(e);
591
+ else {
592
+ $1969ac565cfec8d0$export$de79e2c695e052f3(state.target);
593
+ state.target.click();
594
+ }
595
+ }
596
+ }, 80);
597
+ addGlobalListener(e.currentTarget, "click", () => clicked = true, true);
598
+ state.disposables.push(() => clearTimeout(timeout));
599
+ } else
600
+ cancelEvent(e);
601
+ state.isOverTarget = false;
602
+ }
603
+ };
604
+ let onPointerCancel = (e) => {
605
+ cancelEvent(e);
606
+ };
607
+ pressProps2.onDragStart = (e) => {
608
+ if (!$23f2114a1b82827e$export$4282f70798064fe0(e.currentTarget, $23f2114a1b82827e$export$e58f029f0fbfdb29(e))) return;
609
+ cancelEvent(e);
610
+ };
611
+ } else if (process.env.NODE_ENV === "test") {
612
+ pressProps2.onMouseDown = (e) => {
613
+ if (e.button !== 0 || !$23f2114a1b82827e$export$4282f70798064fe0(e.currentTarget, $23f2114a1b82827e$export$e58f029f0fbfdb29(e))) return;
614
+ if (state.ignoreEmulatedMouseEvents) {
615
+ e.stopPropagation();
616
+ return;
617
+ }
618
+ state.isPressed = true;
619
+ state.isOverTarget = true;
620
+ state.target = e.currentTarget;
621
+ state.pointerType = $b5c62b033c25b96d$export$60278871457622de(e.nativeEvent) ? "virtual" : "mouse";
622
+ let shouldStopPropagation = flushSync(() => triggerPressStart(e, state.pointerType));
623
+ if (shouldStopPropagation) e.stopPropagation();
624
+ if (preventFocusOnPress) {
625
+ let dispose = $a92dc41f639950be$export$cabe61c495ee3649(e.target);
626
+ if (dispose) state.disposables.push(dispose);
627
+ }
628
+ addGlobalListener($d447af545b77c9f1$export$b204af158042fbac(e.currentTarget), "mouseup", onMouseUp, false);
629
+ };
630
+ pressProps2.onMouseEnter = (e) => {
631
+ if (!$23f2114a1b82827e$export$4282f70798064fe0(e.currentTarget, $23f2114a1b82827e$export$e58f029f0fbfdb29(e))) return;
632
+ let shouldStopPropagation = true;
633
+ if (state.isPressed && !state.ignoreEmulatedMouseEvents && state.pointerType != null) {
634
+ state.isOverTarget = true;
635
+ shouldStopPropagation = triggerPressStart(e, state.pointerType);
636
+ }
637
+ if (shouldStopPropagation) e.stopPropagation();
638
+ };
639
+ pressProps2.onMouseLeave = (e) => {
640
+ if (!$23f2114a1b82827e$export$4282f70798064fe0(e.currentTarget, $23f2114a1b82827e$export$e58f029f0fbfdb29(e))) return;
641
+ let shouldStopPropagation = true;
642
+ if (state.isPressed && !state.ignoreEmulatedMouseEvents && state.pointerType != null) {
643
+ state.isOverTarget = false;
644
+ shouldStopPropagation = triggerPressEndEvent(e, state.pointerType, false);
645
+ cancelOnPointerExit(e);
646
+ }
647
+ if (shouldStopPropagation) e.stopPropagation();
648
+ };
649
+ pressProps2.onMouseUp = (e) => {
650
+ if (!$23f2114a1b82827e$export$4282f70798064fe0(e.currentTarget, $23f2114a1b82827e$export$e58f029f0fbfdb29(e))) return;
651
+ if (!state.ignoreEmulatedMouseEvents && e.button === 0 && !state.isPressed)
652
+ triggerPressUpEvent(e, state.pointerType || "mouse");
653
+ };
654
+ let onMouseUp = (e) => {
655
+ if (e.button !== 0) return;
656
+ if (state.ignoreEmulatedMouseEvents) {
657
+ state.ignoreEmulatedMouseEvents = false;
658
+ return;
659
+ }
660
+ if (state.target && $23f2114a1b82827e$export$4282f70798064fe0(state.target, $23f2114a1b82827e$export$e58f029f0fbfdb29(e)) && state.pointerType != null) ;
661
+ else
662
+ cancelEvent(e);
663
+ state.isOverTarget = false;
664
+ };
665
+ pressProps2.onTouchStart = (e) => {
666
+ if (!$23f2114a1b82827e$export$4282f70798064fe0(e.currentTarget, $23f2114a1b82827e$export$e58f029f0fbfdb29(e))) return;
667
+ let touch = $d27d541f9569d26d$var$getTouchFromEvent(e.nativeEvent);
668
+ if (!touch) return;
669
+ state.activePointerId = touch.identifier;
670
+ state.ignoreEmulatedMouseEvents = true;
671
+ state.isOverTarget = true;
672
+ state.isPressed = true;
673
+ state.target = e.currentTarget;
674
+ state.pointerType = "touch";
675
+ if (!allowTextSelectionOnPress) $cbf007e418543821$export$16a4697467175487(state.target);
676
+ let shouldStopPropagation = triggerPressStart($d27d541f9569d26d$var$createTouchEvent(state.target, e), state.pointerType);
677
+ if (shouldStopPropagation) e.stopPropagation();
678
+ addGlobalListener($d447af545b77c9f1$export$f21a1ffae260145a(e.currentTarget), "scroll", onScroll, true);
679
+ };
680
+ pressProps2.onTouchMove = (e) => {
681
+ if (!$23f2114a1b82827e$export$4282f70798064fe0(e.currentTarget, $23f2114a1b82827e$export$e58f029f0fbfdb29(e))) return;
682
+ if (!state.isPressed) {
683
+ e.stopPropagation();
684
+ return;
685
+ }
686
+ let touch = $d27d541f9569d26d$var$getTouchById(e.nativeEvent, state.activePointerId);
687
+ let shouldStopPropagation = true;
688
+ if (touch && $d27d541f9569d26d$var$isOverTarget(touch, e.currentTarget)) {
689
+ if (!state.isOverTarget && state.pointerType != null) {
690
+ state.isOverTarget = true;
691
+ shouldStopPropagation = triggerPressStart($d27d541f9569d26d$var$createTouchEvent(state.target, e), state.pointerType);
692
+ }
693
+ } else if (state.isOverTarget && state.pointerType != null) {
694
+ state.isOverTarget = false;
695
+ shouldStopPropagation = triggerPressEndEvent($d27d541f9569d26d$var$createTouchEvent(state.target, e), state.pointerType, false);
696
+ cancelOnPointerExit($d27d541f9569d26d$var$createTouchEvent(state.target, e));
697
+ }
698
+ if (shouldStopPropagation) e.stopPropagation();
699
+ };
700
+ pressProps2.onTouchEnd = (e) => {
701
+ if (!$23f2114a1b82827e$export$4282f70798064fe0(e.currentTarget, $23f2114a1b82827e$export$e58f029f0fbfdb29(e))) return;
702
+ if (!state.isPressed) {
703
+ e.stopPropagation();
704
+ return;
705
+ }
706
+ let touch = $d27d541f9569d26d$var$getTouchById(e.nativeEvent, state.activePointerId);
707
+ let shouldStopPropagation = true;
708
+ if (touch && $d27d541f9569d26d$var$isOverTarget(touch, e.currentTarget) && state.pointerType != null) {
709
+ triggerPressUpEvent($d27d541f9569d26d$var$createTouchEvent(state.target, e), state.pointerType);
710
+ shouldStopPropagation = triggerPressEndEvent($d27d541f9569d26d$var$createTouchEvent(state.target, e), state.pointerType);
711
+ triggerSyntheticClick(e.nativeEvent, state.target);
712
+ } else if (state.isOverTarget && state.pointerType != null)
713
+ shouldStopPropagation = triggerPressEndEvent($d27d541f9569d26d$var$createTouchEvent(state.target, e), state.pointerType, false);
714
+ if (shouldStopPropagation) e.stopPropagation();
715
+ state.isPressed = false;
716
+ state.activePointerId = null;
717
+ state.isOverTarget = false;
718
+ state.ignoreEmulatedMouseEvents = true;
719
+ if (state.target && !allowTextSelectionOnPress) $cbf007e418543821$export$b0d6fa1ab32e3295(state.target);
720
+ removeAllGlobalListeners();
721
+ };
722
+ pressProps2.onTouchCancel = (e) => {
723
+ if (!$23f2114a1b82827e$export$4282f70798064fe0(e.currentTarget, $23f2114a1b82827e$export$e58f029f0fbfdb29(e))) return;
724
+ e.stopPropagation();
725
+ if (state.isPressed)
726
+ cancelEvent($d27d541f9569d26d$var$createTouchEvent(state.target, e));
727
+ };
728
+ let onScroll = (e) => {
729
+ if (state.isPressed && $23f2114a1b82827e$export$4282f70798064fe0($23f2114a1b82827e$export$e58f029f0fbfdb29(e), state.target))
730
+ cancelEvent({
731
+ currentTarget: state.target,
732
+ shiftKey: false,
733
+ ctrlKey: false,
734
+ metaKey: false,
735
+ altKey: false
736
+ });
737
+ };
738
+ pressProps2.onDragStart = (e) => {
739
+ if (!$23f2114a1b82827e$export$4282f70798064fe0(e.currentTarget, $23f2114a1b82827e$export$e58f029f0fbfdb29(e))) return;
740
+ cancelEvent(e);
741
+ };
742
+ }
743
+ return pressProps2;
744
+ }, [
745
+ addGlobalListener,
746
+ isDisabled,
747
+ preventFocusOnPress,
748
+ removeAllGlobalListeners,
749
+ allowTextSelectionOnPress,
750
+ cancelOnPointerExit,
751
+ triggerPressStart,
752
+ triggerClick,
753
+ triggerSyntheticClick
754
+ ]);
755
+ useEffect(() => {
756
+ if (!domRef || process.env.NODE_ENV === "test") return;
757
+ const ownerDocument = $d447af545b77c9f1$export$b204af158042fbac(domRef.current);
758
+ if (!ownerDocument || !ownerDocument.head || ownerDocument.getElementById($d27d541f9569d26d$var$STYLE_ID)) return;
759
+ const style = ownerDocument.createElement("style");
760
+ style.id = $d27d541f9569d26d$var$STYLE_ID;
761
+ let nonce = $2b2d34ff061957fb$export$2b85b721e524d74b(ownerDocument);
762
+ if (nonce) style.nonce = nonce;
763
+ style.textContent = `
764
+ @layer {
765
+ [${$d27d541f9569d26d$var$PRESSABLE_ATTRIBUTE}] {
766
+ touch-action: pan-x pan-y pinch-zoom;
767
+ }
768
+ }
769
+ `.trim();
770
+ ownerDocument.head.prepend(style);
771
+ }, [
772
+ domRef
773
+ ]);
774
+ useEffect(() => {
775
+ let state = ref.current;
776
+ return () => {
777
+ if (!allowTextSelectionOnPress) $cbf007e418543821$export$b0d6fa1ab32e3295(state.target ?? void 0);
778
+ for (let dispose of state.disposables) dispose();
779
+ state.disposables = [];
780
+ };
781
+ }, [
782
+ allowTextSelectionOnPress
783
+ ]);
784
+ return {
785
+ isPressed: isPressedProp || isPressed,
786
+ pressProps: $bbaa08b3cd72f041$export$9d1611c77c2fe928(domProps, pressProps, {
787
+ [$d27d541f9569d26d$var$PRESSABLE_ATTRIBUTE]: true
788
+ })
481
789
  };
482
- return /* @__PURE__ */ jsx("div", { className: presetWrapperStyles.presetWrapper, ...presetsWrapperProps, children: renderContent() });
483
- };
790
+ }
791
+ function $d27d541f9569d26d$var$isHTMLAnchorLink(target) {
792
+ return target.tagName === "A" && target.hasAttribute("href");
793
+ }
794
+ function $d27d541f9569d26d$var$isValidKeyboardEvent(event, currentTarget) {
795
+ const { key, code } = event;
796
+ const element = currentTarget;
797
+ const role = element.getAttribute("role");
798
+ return (key === "Enter" || key === " " || key === "Spacebar" || code === "Space") && !(element instanceof $d447af545b77c9f1$export$f21a1ffae260145a(element).HTMLInputElement && !$d27d541f9569d26d$var$isValidInputKey(element, key) || element instanceof $d447af545b77c9f1$export$f21a1ffae260145a(element).HTMLTextAreaElement || element.isContentEditable) && // Links should only trigger with Enter key
799
+ !((role === "link" || !role && $d27d541f9569d26d$var$isHTMLAnchorLink(element)) && key !== "Enter");
800
+ }
801
+ function $d27d541f9569d26d$var$getTouchFromEvent(event) {
802
+ const { targetTouches } = event;
803
+ if (targetTouches.length > 0) return targetTouches[0];
804
+ return null;
805
+ }
806
+ function $d27d541f9569d26d$var$getTouchById(event, pointerId) {
807
+ const changedTouches = event.changedTouches;
808
+ for (let i = 0; i < changedTouches.length; i++) {
809
+ const touch = changedTouches[i];
810
+ if (touch.identifier === pointerId) return touch;
811
+ }
812
+ return null;
813
+ }
814
+ function $d27d541f9569d26d$var$createTouchEvent(target, e) {
815
+ let clientX = 0;
816
+ let clientY = 0;
817
+ if (e.targetTouches && e.targetTouches.length === 1) {
818
+ clientX = e.targetTouches[0].clientX;
819
+ clientY = e.targetTouches[0].clientY;
820
+ }
821
+ return {
822
+ currentTarget: target,
823
+ shiftKey: e.shiftKey,
824
+ ctrlKey: e.ctrlKey,
825
+ metaKey: e.metaKey,
826
+ altKey: e.altKey,
827
+ clientX,
828
+ clientY
829
+ };
830
+ }
831
+ function $d27d541f9569d26d$var$createEvent(target, e) {
832
+ let clientX = e.clientX;
833
+ let clientY = e.clientY;
834
+ return {
835
+ currentTarget: target,
836
+ shiftKey: e.shiftKey,
837
+ ctrlKey: e.ctrlKey,
838
+ metaKey: e.metaKey,
839
+ altKey: e.altKey,
840
+ clientX,
841
+ clientY,
842
+ key: e.key
843
+ };
844
+ }
845
+ function $d27d541f9569d26d$var$getPointClientRect(point) {
846
+ let offsetX = 0;
847
+ let offsetY = 0;
848
+ if (point.width !== void 0) offsetX = point.width / 2;
849
+ else if (point.radiusX !== void 0) offsetX = point.radiusX;
850
+ if (point.height !== void 0) offsetY = point.height / 2;
851
+ else if (point.radiusY !== void 0) offsetY = point.radiusY;
852
+ return {
853
+ top: point.clientY - offsetY,
854
+ right: point.clientX + offsetX,
855
+ bottom: point.clientY + offsetY,
856
+ left: point.clientX - offsetX
857
+ };
858
+ }
859
+ function $d27d541f9569d26d$var$areRectanglesOverlapping(a, b) {
860
+ if (a.left > b.right || b.left > a.right) return false;
861
+ if (a.top > b.bottom || b.top > a.bottom) return false;
862
+ return true;
863
+ }
864
+ function $d27d541f9569d26d$var$isOverTarget(point, target) {
865
+ let rect = target.getBoundingClientRect();
866
+ let pointRect = $d27d541f9569d26d$var$getPointClientRect(point);
867
+ return $d27d541f9569d26d$var$areRectanglesOverlapping(rect, pointRect);
868
+ }
869
+ function $d27d541f9569d26d$var$shouldPreventDefaultUp(target) {
870
+ if (target instanceof HTMLInputElement) return false;
871
+ if (target instanceof HTMLButtonElement) return target.type !== "submit" && target.type !== "reset";
872
+ if ($d27d541f9569d26d$var$isHTMLAnchorLink(target)) return false;
873
+ return true;
874
+ }
875
+ function $d27d541f9569d26d$var$shouldPreventDefaultKeyboard(target, key) {
876
+ if (target instanceof HTMLInputElement) return !$d27d541f9569d26d$var$isValidInputKey(target, key);
877
+ return $d27d541f9569d26d$var$shouldPreventDefaultUp(target);
878
+ }
879
+ const $d27d541f9569d26d$var$nonTextInputTypes = /* @__PURE__ */ new Set([
880
+ "checkbox",
881
+ "radio",
882
+ "range",
883
+ "color",
884
+ "file",
885
+ "image",
886
+ "button",
887
+ "submit",
888
+ "reset"
889
+ ]);
890
+ function $d27d541f9569d26d$var$isValidInputKey(target, key) {
891
+ return target.type === "checkbox" || target.type === "radio" ? key === " " : $d27d541f9569d26d$var$nonTextInputTypes.has(target.type);
892
+ }
893
+ function $ac4318a9c075bb9f$export$ea18c227d4417cc3(props, ref) {
894
+ let { elementType = "button", isDisabled, onPress, onPressStart, onPressEnd, onPressUp, onPressChange, preventFocusOnPress, allowFocusWhenDisabled, onClick, href, target, rel, type = "button" } = props;
895
+ let additionalProps;
896
+ if (elementType === "button") additionalProps = {
897
+ type,
898
+ disabled: isDisabled,
899
+ form: props.form,
900
+ formAction: props.formAction,
901
+ formEncType: props.formEncType,
902
+ formMethod: props.formMethod,
903
+ formNoValidate: props.formNoValidate,
904
+ formTarget: props.formTarget,
905
+ name: props.name,
906
+ value: props.value
907
+ };
908
+ else additionalProps = {
909
+ role: "button",
910
+ href: elementType === "a" && !isDisabled ? href : void 0,
911
+ target: elementType === "a" ? target : void 0,
912
+ type: elementType === "input" ? type : void 0,
913
+ disabled: elementType === "input" ? isDisabled : void 0,
914
+ "aria-disabled": !isDisabled || elementType === "input" ? void 0 : isDisabled,
915
+ rel: elementType === "a" ? rel : void 0
916
+ };
917
+ let { pressProps, isPressed } = $d27d541f9569d26d$export$45712eceda6fad21({
918
+ onPressStart,
919
+ onPressEnd,
920
+ onPressChange,
921
+ onPress,
922
+ onPressUp,
923
+ onClick,
924
+ isDisabled,
925
+ preventFocusOnPress,
926
+ ref
927
+ });
928
+ let { focusableProps } = $d1116acdf220c2da$export$4c014de7c8940b4c(props, ref);
929
+ if (allowFocusWhenDisabled) focusableProps.tabIndex = isDisabled ? -1 : focusableProps.tabIndex;
930
+ let buttonProps = $bbaa08b3cd72f041$export$9d1611c77c2fe928(focusableProps, pressProps, $8e9d2fae0ecb9001$export$457c3d6518dd4c6f(props, {
931
+ labelable: true
932
+ }));
933
+ return {
934
+ isPressed,
935
+ buttonProps: $bbaa08b3cd72f041$export$9d1611c77c2fe928(additionalProps, buttonProps, {
936
+ "aria-haspopup": props["aria-haspopup"],
937
+ "aria-expanded": props["aria-expanded"],
938
+ "aria-controls": props["aria-controls"],
939
+ "aria-pressed": props["aria-pressed"],
940
+ "aria-current": props["aria-current"],
941
+ "aria-disabled": props["aria-disabled"]
942
+ })
943
+ };
944
+ }
945
+ function $240e9101ba2842f5$export$7d15b64cf5a3a4c4(value, min = -Infinity, max = Infinity) {
946
+ let newValue = Math.min(Math.max(value, min), max);
947
+ return newValue;
948
+ }
949
+ function $240e9101ba2842f5$export$e1a7b8e69ef6c52f(value, step) {
950
+ let roundedValue = value;
951
+ let precision = 0;
952
+ let stepString = step.toString();
953
+ let eIndex = stepString.toLowerCase().indexOf("e-");
954
+ if (eIndex > 0) precision = Math.abs(Math.floor(Math.log10(Math.abs(step)))) + eIndex;
955
+ else {
956
+ let pointIndex = stepString.indexOf(".");
957
+ if (pointIndex >= 0) precision = stepString.length - pointIndex;
958
+ }
959
+ if (precision > 0) {
960
+ let pow = Math.pow(10, precision);
961
+ roundedValue = Math.round(roundedValue * pow) / pow;
962
+ }
963
+ return roundedValue;
964
+ }
965
+ function $240e9101ba2842f5$export$cb6e0bb50bc19463(value, min, max, step) {
966
+ min = Number(min);
967
+ max = Number(max);
968
+ let remainder = (value - (isNaN(min) ? 0 : min)) % step;
969
+ let snappedValue = $240e9101ba2842f5$export$e1a7b8e69ef6c52f(Math.abs(remainder) * 2 >= step ? value + Math.sign(remainder) * (step - Math.abs(remainder)) : value - remainder, step);
970
+ if (!isNaN(min)) {
971
+ if (snappedValue < min) snappedValue = min;
972
+ else if (!isNaN(max) && snappedValue > max) snappedValue = min + Math.floor($240e9101ba2842f5$export$e1a7b8e69ef6c52f((max - min) / step, step)) * step;
973
+ } else if (!isNaN(max) && snappedValue > max) snappedValue = Math.floor($240e9101ba2842f5$export$e1a7b8e69ef6c52f(max / step, step)) * step;
974
+ snappedValue = $240e9101ba2842f5$export$e1a7b8e69ef6c52f(snappedValue, step);
975
+ return snappedValue;
976
+ }
977
+ const $0393f8ab869a0f1a$export$e9f3bf65a26ce129 = /* @__PURE__ */ createContext(null);
978
+ const $d2b4bc8c273e7be6$export$24d547caef80ccd1 = /* @__PURE__ */ createContext({});
979
+ const $d2b4bc8c273e7be6$export$353f5b6fc5456de1 = /* @__PURE__ */ $f39a9eba43920ace$export$86427a43e3e48ebb(function Button(props, ref) {
980
+ [props, ref] = $64fa3d84918910a7$export$29f1550f4b0d4415(props, ref, $d2b4bc8c273e7be6$export$24d547caef80ccd1);
981
+ props = $d2b4bc8c273e7be6$var$disablePendingProps(props);
982
+ let ctx = props;
983
+ let { isPending } = ctx;
984
+ let { buttonProps, isPressed } = $ac4318a9c075bb9f$export$ea18c227d4417cc3(props, ref);
985
+ let { focusProps, isFocused, isFocusVisible } = $0c4a58759813079a$export$4e328f61c538687f(props);
986
+ let { hoverProps, isHovered } = $e969f22b6713ca4a$export$ae780daf29e6d456({
987
+ ...props,
988
+ isDisabled: props.isDisabled || isPending
989
+ });
990
+ let renderValues = {
991
+ isHovered,
992
+ isPressed: (ctx.isPressed || isPressed) && !isPending,
993
+ isFocused,
994
+ isFocusVisible,
995
+ isDisabled: props.isDisabled || false,
996
+ isPending: isPending !== null && isPending !== void 0 ? isPending : false
997
+ };
998
+ let renderProps = $64fa3d84918910a7$export$4d86445c2cf5e3({
999
+ ...props,
1000
+ values: renderValues,
1001
+ defaultClassName: "react-aria-Button"
1002
+ });
1003
+ let buttonId = $390e54f620492c70$export$f680877a34711e37(buttonProps.id);
1004
+ let progressId = $390e54f620492c70$export$f680877a34711e37();
1005
+ let ariaLabelledby = buttonProps["aria-labelledby"];
1006
+ if (isPending) {
1007
+ if (ariaLabelledby) ariaLabelledby = `${ariaLabelledby} ${progressId}`;
1008
+ else if (buttonProps["aria-label"]) ariaLabelledby = `${buttonId} ${progressId}`;
1009
+ }
1010
+ let wasPending = useRef(isPending);
1011
+ useEffect(() => {
1012
+ let message = {
1013
+ "aria-labelledby": ariaLabelledby || buttonId
1014
+ };
1015
+ if (!wasPending.current && isFocused && isPending) $319e236875307eab$export$a9b970dcc4ae71a9(message, "assertive");
1016
+ else if (wasPending.current && isFocused && !isPending) $319e236875307eab$export$a9b970dcc4ae71a9(message, "assertive");
1017
+ wasPending.current = isPending;
1018
+ }, [
1019
+ isPending,
1020
+ isFocused,
1021
+ ariaLabelledby,
1022
+ buttonId
1023
+ ]);
1024
+ let DOMProps = $65484d02dcb7eb3e$export$457c3d6518dd4c6f(props, {
1025
+ global: true
1026
+ });
1027
+ delete DOMProps.onClick;
1028
+ return /* @__PURE__ */ React__default.createElement("button", {
1029
+ ...$bbaa08b3cd72f041$export$9d1611c77c2fe928(DOMProps, renderProps, buttonProps, focusProps, hoverProps),
1030
+ // When the button is in a pending state, we want to stop implicit form submission (ie. when the user presses enter on a text input).
1031
+ // We do this by changing the button's type to button.
1032
+ type: buttonProps.type === "submit" && isPending ? "button" : buttonProps.type,
1033
+ id: buttonId,
1034
+ ref,
1035
+ "aria-labelledby": ariaLabelledby,
1036
+ slot: props.slot || void 0,
1037
+ "aria-disabled": isPending ? "true" : buttonProps["aria-disabled"],
1038
+ "data-disabled": props.isDisabled || void 0,
1039
+ "data-pressed": renderValues.isPressed || void 0,
1040
+ "data-hovered": isHovered || void 0,
1041
+ "data-focused": isFocused || void 0,
1042
+ "data-pending": isPending || void 0,
1043
+ "data-focus-visible": isFocusVisible || void 0
1044
+ }, /* @__PURE__ */ React__default.createElement($0393f8ab869a0f1a$export$e9f3bf65a26ce129.Provider, {
1045
+ value: {
1046
+ id: progressId
1047
+ }
1048
+ }, renderProps.children));
1049
+ });
1050
+ function $d2b4bc8c273e7be6$var$disablePendingProps(props) {
1051
+ if (props.isPending) {
1052
+ props.onPress = void 0;
1053
+ props.onPressStart = void 0;
1054
+ props.onPressEnd = void 0;
1055
+ props.onPressChange = void 0;
1056
+ props.onPressUp = void 0;
1057
+ props.onKeyDown = void 0;
1058
+ props.onKeyUp = void 0;
1059
+ props.onClick = void 0;
1060
+ props.href = void 0;
1061
+ }
1062
+ return props;
1063
+ }
484
1064
  export {
485
- Button as B
1065
+ $d2b4bc8c273e7be6$export$353f5b6fc5456de1 as $,
1066
+ $1dfb119a85e764e5$export$cc77c4ff7e8673c5 as a,
1067
+ $d27d541f9569d26d$export$45712eceda6fad21 as b,
1068
+ $240e9101ba2842f5$export$7d15b64cf5a3a4c4 as c,
1069
+ $24f9a20f226ad820$export$5165eccb35aaadb5 as d,
1070
+ $2b2d34ff061957fb$export$2b85b721e524d74b as e,
1071
+ $d2b4bc8c273e7be6$export$24d547caef80ccd1 as f,
1072
+ $cbf007e418543821$export$b0d6fa1ab32e3295 as g,
1073
+ $cbf007e418543821$export$16a4697467175487 as h,
1074
+ $240e9101ba2842f5$export$cb6e0bb50bc19463 as i
486
1075
  };