@eightshift/ui-components 3.0.1 → 5.0.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 (144) hide show
  1. package/package.json +101 -101
  2. package/dist/Button-BPLceDeW.js +0 -185
  3. package/dist/Collection-CZxddMZS.js +0 -2332
  4. package/dist/Color-MV5kBVXr.js +0 -2452
  5. package/dist/ColorSwatch-BqQfVu4L.js +0 -64
  6. package/dist/ComboBox-_RfyhwZw.js +0 -1906
  7. package/dist/Dialog-8tYeQ9n4.js +0 -2300
  8. package/dist/FieldError-52GVSGgC.js +0 -42
  9. package/dist/FocusScope-Cri5BFRz.js +0 -831
  10. package/dist/Form-Cq3fu75_.js +0 -5
  11. package/dist/Group-_emcIVxI.js +0 -48
  12. package/dist/Heading-B2153VXe.js +0 -16
  13. package/dist/Hidden-rE6uR-lr.js +0 -41
  14. package/dist/Input-BxpFEIXV.js +0 -133
  15. package/dist/Label-icmbmNdI.js +0 -17
  16. package/dist/List-CZMUbkFU.js +0 -593
  17. package/dist/ListBox-Ca6hiCqz.js +0 -581
  18. package/dist/NumberFormatter-DA8u1Ot7.js +0 -140
  19. package/dist/OverlayArrow-CYXQSlEU.js +0 -629
  20. package/dist/RSPContexts-2lR5GG9p.js +0 -14
  21. package/dist/Select-aab027f3.esm-PDJCDE95.js +0 -2469
  22. package/dist/Separator-4IIDRlV_.js +0 -322
  23. package/dist/Slider-rz2XRMGm.js +0 -853
  24. package/dist/Text-DVSAPY-K.js +0 -16
  25. package/dist/VisuallyHidden-f9zX67a_.js +0 -48
  26. package/dist/_commonjsHelpers-CUmg6egw.js +0 -6
  27. package/dist/assets/index.css +0 -37
  28. package/dist/assets/style-admin.css +0 -5255
  29. package/dist/assets/style-editor.css +0 -5255
  30. package/dist/assets/style.css +0 -5261
  31. package/dist/assets/wp-font-enhancements.css +0 -8
  32. package/dist/assets/wp-ui-enhancements.css +0 -299
  33. package/dist/components/animated-visibility/animated-visibility.js +0 -105
  34. package/dist/components/base-control/base-control.js +0 -86
  35. package/dist/components/breakpoint-preview/breakpoint-preview.js +0 -161
  36. package/dist/components/button/button.js +0 -387
  37. package/dist/components/checkbox/checkbox.js +0 -320
  38. package/dist/components/color-pickers/color-picker.js +0 -272
  39. package/dist/components/color-pickers/color-swatch.js +0 -58
  40. package/dist/components/color-pickers/gradient-editor.js +0 -534
  41. package/dist/components/color-pickers/solid-color-picker.js +0 -1567
  42. package/dist/components/component-toggle/component-toggle.js +0 -158
  43. package/dist/components/container-panel/container-panel.js +0 -131
  44. package/dist/components/draggable/draggable-context.js +0 -5
  45. package/dist/components/draggable/draggable-handle.js +0 -46
  46. package/dist/components/draggable/draggable.js +0 -6207
  47. package/dist/components/draggable-list/draggable-list-context.js +0 -5
  48. package/dist/components/draggable-list/draggable-list-item.js +0 -77
  49. package/dist/components/draggable-list/draggable-list.js +0 -151
  50. package/dist/components/expandable/expandable.js +0 -342
  51. package/dist/components/index.js +0 -137
  52. package/dist/components/input-field/input-field.js +0 -231
  53. package/dist/components/item-collection/item-collection.js +0 -59
  54. package/dist/components/layout/hstack.js +0 -30
  55. package/dist/components/layout/vstack.js +0 -30
  56. package/dist/components/link-input/link-input.js +0 -293
  57. package/dist/components/matrix-align/matrix-align.js +0 -134
  58. package/dist/components/menu/menu.js +0 -285
  59. package/dist/components/modal/modal.js +0 -305
  60. package/dist/components/notice/notice.js +0 -123
  61. package/dist/components/number-picker/number-picker.js +0 -292
  62. package/dist/components/option-select/option-select.js +0 -264
  63. package/dist/components/options-panel/options-panel.js +0 -158
  64. package/dist/components/placeholders/file-placeholder.js +0 -42
  65. package/dist/components/placeholders/image-placeholder.js +0 -88
  66. package/dist/components/placeholders/media-placeholder.js +0 -63
  67. package/dist/components/popover/popover.js +0 -207
  68. package/dist/components/radio/radio.js +0 -579
  69. package/dist/components/repeater/repeater-context.js +0 -5
  70. package/dist/components/repeater/repeater-item.js +0 -119
  71. package/dist/components/repeater/repeater.js +0 -280
  72. package/dist/components/responsive/mini-responsive.js +0 -498
  73. package/dist/components/responsive/responsive-legacy.js +0 -343
  74. package/dist/components/responsive/responsive.js +0 -580
  75. package/dist/components/responsive-preview/responsive-preview.js +0 -123
  76. package/dist/components/rich-label/rich-label.js +0 -66
  77. package/dist/components/select/async-multi-select.js +0 -157
  78. package/dist/components/select/async-single-select.js +0 -137
  79. package/dist/components/select/custom-select-default-components.js +0 -38
  80. package/dist/components/select/multi-select-components.js +0 -8
  81. package/dist/components/select/multi-select.js +0 -151
  82. package/dist/components/select/react-select-component-wrappers.js +0 -90
  83. package/dist/components/select/shared.js +0 -26
  84. package/dist/components/select/single-select.js +0 -131
  85. package/dist/components/select/styles.js +0 -49
  86. package/dist/components/select/v2/async-select.js +0 -297
  87. package/dist/components/select/v2/shared.js +0 -24
  88. package/dist/components/select/v2/single-select.js +0 -990
  89. package/dist/components/slider/column-config-slider.js +0 -210
  90. package/dist/components/slider/slider.js +0 -343
  91. package/dist/components/slider/utils.js +0 -84
  92. package/dist/components/spacer/spacer.js +0 -97
  93. package/dist/components/tabs/tabs.js +0 -702
  94. package/dist/components/toggle/switch.js +0 -155
  95. package/dist/components/toggle/toggle.js +0 -64
  96. package/dist/components/toggle-button/toggle-button.js +0 -324
  97. package/dist/components/tooltip/tooltip.js +0 -525
  98. package/dist/context-D2KUdwNL.js +0 -92
  99. package/dist/default-i18n-CT_oS1Fy.js +0 -922
  100. package/dist/filterDOMProps-EDDcM64A.js +0 -28
  101. package/dist/icons/block-icon.js +0 -42
  102. package/dist/icons/generic-color-swatch.js +0 -113
  103. package/dist/icons/icons.js +0 -30371
  104. package/dist/icons/index.js +0 -11
  105. package/dist/icons/jsx-svg.js +0 -50
  106. package/dist/index-641ee5b8.esm-DIuJijyT.js +0 -3137
  107. package/dist/index-BKGQ6jGS.js +0 -44
  108. package/dist/index-CFozsmNS.js +0 -28321
  109. package/dist/index.js +0 -139
  110. package/dist/lite-DVmmD_-j.js +0 -7
  111. package/dist/modifiers.esm-BuJQPI1X.js +0 -31
  112. package/dist/multi-select-components-Sp-JEFEX.js +0 -3744
  113. package/dist/number-GajL10e1.js +0 -36
  114. package/dist/react-jsx-parser.min-DZCiis5V.js +0 -11753
  115. package/dist/react-select-async.esm-Bql4G5iV.js +0 -107
  116. package/dist/react-select.esm-B_TudhTU.js +0 -15
  117. package/dist/style-admin.js +0 -1
  118. package/dist/style-editor.js +0 -1
  119. package/dist/style.js +0 -1
  120. package/dist/textSelection-0UUS8Yfg.js +0 -46
  121. package/dist/useButton-Cg474OYB.js +0 -71
  122. package/dist/useEvent-B0b-6KBr.js +0 -23
  123. package/dist/useFocusRing-CV5l3lf6.js +0 -107
  124. package/dist/useFormReset-C5OggHsw.js +0 -22
  125. package/dist/useFormValidation-DhDNSjws.js +0 -224
  126. package/dist/useHover-DwDr6ozG.js +0 -900
  127. package/dist/useLabel-D7HkNEHT.js +0 -27
  128. package/dist/useLabels-D8cxd1Z8.js +0 -23
  129. package/dist/useListState-DVr6aYd_.js +0 -161
  130. package/dist/useLocalizedStringFormatter-CFP1YZWQ.js +0 -121
  131. package/dist/useNumberField-TwM0Z9D1.js +0 -1204
  132. package/dist/useNumberFormatter-321rAb4J.js +0 -13
  133. package/dist/usePress-Cucx-xSA.js +0 -664
  134. package/dist/useSingleSelectListState-CMGsRHHh.js +0 -38
  135. package/dist/useToggle-C0I3vs0g.js +0 -59
  136. package/dist/useToggleState-CmQX3SoX.js +0 -19
  137. package/dist/utilities/array-helpers.js +0 -56
  138. package/dist/utilities/debounce-throttle.js +0 -123
  139. package/dist/utilities/es-dash.js +0 -376
  140. package/dist/utilities/index.js +0 -27
  141. package/dist/utilities/text-helpers.js +0 -136
  142. package/dist/utils-DkCSC521.js +0 -370
  143. package/dist/wp/wp-font-enhancements.js +0 -1
  144. package/dist/wp/wp-ui-enhancements.js +0 -1
@@ -1,702 +0,0 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- import { c as $880e95eb8b93ba9a$export$ecf600387e221c37, k as $ae20dd8cbca75726$export$d6daf82dcd84e87c, d as $e1995378a142960e$export$18af5c7a9e9b3664, f as $e1995378a142960e$export$fb8073518f34e6ec, g as $7135fc7d473fd974$export$4feb769f8ddf26c5, m as $7135fc7d473fd974$export$a164736487e3f0ae, e as $e1995378a142960e$export$bf788dd355e3a401, n as $7135fc7d473fd974$export$90e00781bc59d8f9 } from "../../Collection-CZxddMZS.js";
3
- import { k as $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c, d as $3ef42575df84b30b$export$9d1611c77c2fe928, e as $bdb11010cef70236$export$f680877a34711e37, l as $df56164dff5785e2$export$4338b53315abf666, b as $64fa3d84918910a7$export$4d86445c2cf5e3, i as $64fa3d84918910a7$export$2881499e37b75b9a, a as $64fa3d84918910a7$export$29f1550f4b0d4415, $ as $64fa3d84918910a7$export$fabf2dc03a41866e } from "../../utils-DkCSC521.js";
4
- import { $ as $f39a9eba43920ace$export$86427a43e3e48ebb } from "../../Hidden-rE6uR-lr.js";
5
- import { $ as $65484d02dcb7eb3e$export$457c3d6518dd4c6f } from "../../filterDOMProps-EDDcM64A.js";
6
- import React__default, { version, useState, useMemo, useRef, useEffect, forwardRef, useContext, createContext, isValidElement, useId, cloneElement } from "react";
7
- import { a as $ea8dcbcb9ea1b556$export$7e924b3091a3bd18 } from "../../usePress-Cucx-xSA.js";
8
- import { a as $f645667febf57a63$export$4c014de7c8940b4c, $ as $6179b936705e76d3$export$ae780daf29e6d456 } from "../../useHover-DwDr6ozG.js";
9
- import { $ as $313b98861ee5dd6c$export$d6875122194c7b44 } from "../../useLabels-D8cxd1Z8.js";
10
- import { a as $9bf71ea28793e738$export$2d6ec8fc375ceafa } from "../../FocusScope-Cri5BFRz.js";
11
- import { $ as $18f2051aff69b9bf$export$43bb16f9c6d9e3f7 } from "../../context-D2KUdwNL.js";
12
- import { $ as $f7dceffc5ad7768b$export$4e328f61c538687f } from "../../useFocusRing-CV5l3lf6.js";
13
- import { $ as $a0d645289fe9b86b$export$e7f05e985daf4b5f } from "../../useSingleSelectListState-CMGsRHHh.js";
14
- import { _ as __, s as sprintf } from "../../default-i18n-CT_oS1Fy.js";
15
- import { c as clsx } from "../../lite-DVmmD_-j.js";
16
- import { c as cva } from "../../index-BKGQ6jGS.js";
17
- import { Notice } from "../notice/notice.js";
18
- import { RichLabel } from "../rich-label/rich-label.js";
19
- function $cdc5a6778b766db2$export$a9d04c5684123369(value) {
20
- const pieces = version.split(".");
21
- const major = parseInt(pieces[0], 10);
22
- if (major >= 19) return value;
23
- return value ? "true" : void 0;
24
- }
25
- function $83013635b024ae3d$export$eac1895992b9f3d6(ref, options) {
26
- let isDisabled = options === null || options === void 0 ? void 0 : options.isDisabled;
27
- let [hasTabbableChild, setHasTabbableChild] = useState(false);
28
- $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c(() => {
29
- if ((ref === null || ref === void 0 ? void 0 : ref.current) && !isDisabled) {
30
- let update = () => {
31
- if (ref.current) {
32
- let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(ref.current, {
33
- tabbable: true
34
- });
35
- setHasTabbableChild(!!walker.nextNode());
36
- }
37
- };
38
- update();
39
- let observer = new MutationObserver(update);
40
- observer.observe(ref.current, {
41
- subtree: true,
42
- childList: true,
43
- attributes: true,
44
- attributeFilter: [
45
- "tabIndex",
46
- "disabled"
47
- ]
48
- });
49
- return () => {
50
- observer.disconnect();
51
- };
52
- }
53
- });
54
- return isDisabled ? false : hasTabbableChild;
55
- }
56
- const $99b62ae3ff97ec45$export$c5f62239608282b6 = /* @__PURE__ */ new WeakMap();
57
- function $99b62ae3ff97ec45$export$567fc7097e064344(state, key, role) {
58
- if (!state)
59
- return "";
60
- if (typeof key === "string") key = key.replace(/\s+/g, "");
61
- let baseId = $99b62ae3ff97ec45$export$c5f62239608282b6.get(state);
62
- return `${baseId}-${role}-${key}`;
63
- }
64
- function $0175d55c2a017ebc$export$fdf4756d5b8ef90a(props, state, ref) {
65
- let { key, isDisabled: propsDisabled, shouldSelectOnPressUp } = props;
66
- let { selectionManager: manager, selectedKey } = state;
67
- let isSelected = key === selectedKey;
68
- let isDisabled = propsDisabled || state.isDisabled || state.selectionManager.isDisabled(key);
69
- let { itemProps, isPressed } = $880e95eb8b93ba9a$export$ecf600387e221c37({
70
- selectionManager: manager,
71
- key,
72
- ref,
73
- isDisabled,
74
- shouldSelectOnPressUp,
75
- linkBehavior: "selection"
76
- });
77
- let tabId = $99b62ae3ff97ec45$export$567fc7097e064344(state, key, "tab");
78
- let tabPanelId = $99b62ae3ff97ec45$export$567fc7097e064344(state, key, "tabpanel");
79
- let { tabIndex } = itemProps;
80
- let item = state.collection.getItem(key);
81
- let domProps = $65484d02dcb7eb3e$export$457c3d6518dd4c6f(item === null || item === void 0 ? void 0 : item.props, {
82
- labelable: true
83
- });
84
- delete domProps.id;
85
- let linkProps = $ea8dcbcb9ea1b556$export$7e924b3091a3bd18(item === null || item === void 0 ? void 0 : item.props);
86
- let { focusableProps } = $f645667febf57a63$export$4c014de7c8940b4c({
87
- isDisabled
88
- }, ref);
89
- return {
90
- tabProps: $3ef42575df84b30b$export$9d1611c77c2fe928(domProps, focusableProps, linkProps, itemProps, {
91
- id: tabId,
92
- "aria-selected": isSelected,
93
- "aria-disabled": isDisabled || void 0,
94
- "aria-controls": isSelected ? tabPanelId : void 0,
95
- tabIndex: isDisabled ? void 0 : tabIndex,
96
- role: "tab"
97
- }),
98
- isSelected,
99
- isDisabled,
100
- isPressed
101
- };
102
- }
103
- function $34bce698202e07cb$export$fae0121b5afe572d(props, state, ref) {
104
- let tabIndex = $83013635b024ae3d$export$eac1895992b9f3d6(ref) ? void 0 : 0;
105
- var _props_id;
106
- const id = $99b62ae3ff97ec45$export$567fc7097e064344(state, (_props_id = props.id) !== null && _props_id !== void 0 ? _props_id : state === null || state === void 0 ? void 0 : state.selectedKey, "tabpanel");
107
- const tabPanelProps = $313b98861ee5dd6c$export$d6875122194c7b44({
108
- ...props,
109
- id,
110
- "aria-labelledby": $99b62ae3ff97ec45$export$567fc7097e064344(state, state === null || state === void 0 ? void 0 : state.selectedKey, "tab")
111
- });
112
- return {
113
- tabPanelProps: $3ef42575df84b30b$export$9d1611c77c2fe928(tabPanelProps, {
114
- tabIndex,
115
- role: "tabpanel",
116
- "aria-describedby": props["aria-describedby"],
117
- "aria-details": props["aria-details"]
118
- })
119
- };
120
- }
121
- class $bfc6f2d60b8a4c40$export$15010ca3c1abe90b {
122
- getKeyLeftOf(key) {
123
- if (this.flipDirection) return this.getNextKey(key);
124
- return this.getPreviousKey(key);
125
- }
126
- getKeyRightOf(key) {
127
- if (this.flipDirection) return this.getPreviousKey(key);
128
- return this.getNextKey(key);
129
- }
130
- isDisabled(key) {
131
- var _this_collection_getItem_props, _this_collection_getItem;
132
- return this.disabledKeys.has(key) || !!((_this_collection_getItem = this.collection.getItem(key)) === null || _this_collection_getItem === void 0 ? void 0 : (_this_collection_getItem_props = _this_collection_getItem.props) === null || _this_collection_getItem_props === void 0 ? void 0 : _this_collection_getItem_props.isDisabled);
133
- }
134
- getFirstKey() {
135
- let key = this.collection.getFirstKey();
136
- if (key != null && this.isDisabled(key)) key = this.getNextKey(key);
137
- return key;
138
- }
139
- getLastKey() {
140
- let key = this.collection.getLastKey();
141
- if (key != null && this.isDisabled(key)) key = this.getPreviousKey(key);
142
- return key;
143
- }
144
- getKeyAbove(key) {
145
- if (this.tabDirection) return null;
146
- return this.getPreviousKey(key);
147
- }
148
- getKeyBelow(key) {
149
- if (this.tabDirection) return null;
150
- return this.getNextKey(key);
151
- }
152
- getNextKey(key) {
153
- do {
154
- key = this.collection.getKeyAfter(key);
155
- if (key == null) key = this.collection.getFirstKey();
156
- } while (this.isDisabled(key));
157
- return key;
158
- }
159
- getPreviousKey(key) {
160
- do {
161
- key = this.collection.getKeyBefore(key);
162
- if (key == null) key = this.collection.getLastKey();
163
- } while (this.isDisabled(key));
164
- return key;
165
- }
166
- constructor(collection, direction, orientation, disabledKeys = /* @__PURE__ */ new Set()) {
167
- this.collection = collection;
168
- this.flipDirection = direction === "rtl" && orientation === "horizontal";
169
- this.disabledKeys = disabledKeys;
170
- this.tabDirection = orientation === "horizontal";
171
- }
172
- }
173
- function $58d314389b21fa3f$export$773e389e644c5874(props, state, ref) {
174
- let { orientation = "horizontal", keyboardActivation = "automatic" } = props;
175
- let { collection, selectionManager: manager, disabledKeys } = state;
176
- let { direction } = $18f2051aff69b9bf$export$43bb16f9c6d9e3f7();
177
- let delegate = useMemo(() => new $bfc6f2d60b8a4c40$export$15010ca3c1abe90b(collection, direction, orientation, disabledKeys), [
178
- collection,
179
- disabledKeys,
180
- orientation,
181
- direction
182
- ]);
183
- let { collectionProps } = $ae20dd8cbca75726$export$d6daf82dcd84e87c({
184
- ref,
185
- selectionManager: manager,
186
- keyboardDelegate: delegate,
187
- selectOnFocus: keyboardActivation === "automatic",
188
- disallowEmptySelection: true,
189
- scrollRef: ref,
190
- linkBehavior: "selection"
191
- });
192
- let tabsId = $bdb11010cef70236$export$f680877a34711e37();
193
- $99b62ae3ff97ec45$export$c5f62239608282b6.set(state, tabsId);
194
- let tabListLabelProps = $313b98861ee5dd6c$export$d6875122194c7b44({
195
- ...props,
196
- id: tabsId
197
- });
198
- return {
199
- tabListProps: {
200
- ...$3ef42575df84b30b$export$9d1611c77c2fe928(collectionProps, tabListLabelProps),
201
- role: "tablist",
202
- "aria-orientation": orientation,
203
- tabIndex: void 0
204
- }
205
- };
206
- }
207
- function $76f919a04c5a7d14$export$4ba071daf4e486(props) {
208
- var _props_defaultSelectedKey, _ref;
209
- let state = $a0d645289fe9b86b$export$e7f05e985daf4b5f({
210
- ...props,
211
- suppressTextValueWarning: true,
212
- defaultSelectedKey: (_ref = (_props_defaultSelectedKey = props.defaultSelectedKey) !== null && _props_defaultSelectedKey !== void 0 ? _props_defaultSelectedKey : $76f919a04c5a7d14$var$findDefaultSelectedKey(props.collection, props.disabledKeys ? new Set(props.disabledKeys) : /* @__PURE__ */ new Set())) !== null && _ref !== void 0 ? _ref : void 0
213
- });
214
- let { selectionManager, collection, selectedKey: currentSelectedKey } = state;
215
- let lastSelectedKey = useRef(currentSelectedKey);
216
- useEffect(() => {
217
- let selectedKey = currentSelectedKey;
218
- if (props.selectedKey == null && (selectionManager.isEmpty || selectedKey == null || !collection.getItem(selectedKey))) {
219
- selectedKey = $76f919a04c5a7d14$var$findDefaultSelectedKey(collection, state.disabledKeys);
220
- if (selectedKey != null)
221
- selectionManager.setSelectedKeys([
222
- selectedKey
223
- ]);
224
- }
225
- if (selectedKey != null && selectionManager.focusedKey == null || !selectionManager.isFocused && selectedKey !== lastSelectedKey.current) selectionManager.setFocusedKey(selectedKey);
226
- lastSelectedKey.current = selectedKey;
227
- });
228
- return {
229
- ...state,
230
- isDisabled: props.isDisabled || false
231
- };
232
- }
233
- function $76f919a04c5a7d14$var$findDefaultSelectedKey(collection, disabledKeys) {
234
- let selectedKey = null;
235
- if (collection) {
236
- var _collection_getItem_props, _collection_getItem, _collection_getItem_props1, _collection_getItem1;
237
- selectedKey = collection.getFirstKey();
238
- while (selectedKey != null && (disabledKeys.has(selectedKey) || ((_collection_getItem = collection.getItem(selectedKey)) === null || _collection_getItem === void 0 ? void 0 : (_collection_getItem_props = _collection_getItem.props) === null || _collection_getItem_props === void 0 ? void 0 : _collection_getItem_props.isDisabled)) && selectedKey !== collection.getLastKey()) selectedKey = collection.getKeyAfter(selectedKey);
239
- if (selectedKey != null && (disabledKeys.has(selectedKey) || ((_collection_getItem1 = collection.getItem(selectedKey)) === null || _collection_getItem1 === void 0 ? void 0 : (_collection_getItem_props1 = _collection_getItem1.props) === null || _collection_getItem_props1 === void 0 ? void 0 : _collection_getItem_props1.isDisabled)) && selectedKey === collection.getLastKey()) selectedKey = collection.getFirstKey();
240
- }
241
- return selectedKey;
242
- }
243
- const $5e8ad37a45e1c704$export$cfa7aa87c26e7d1f = /* @__PURE__ */ createContext(null);
244
- const $5e8ad37a45e1c704$export$364712098d2aa57c = /* @__PURE__ */ createContext(null);
245
- const $5e8ad37a45e1c704$export$b2539bed5023c21c = /* @__PURE__ */ forwardRef(function Tabs(props, ref) {
246
- [props, ref] = $64fa3d84918910a7$export$29f1550f4b0d4415(props, ref, $5e8ad37a45e1c704$export$cfa7aa87c26e7d1f);
247
- let { children, orientation = "horizontal" } = props;
248
- children = useMemo(() => typeof children === "function" ? children({
249
- orientation,
250
- defaultChildren: null
251
- }) : children, [
252
- children,
253
- orientation
254
- ]);
255
- return /* @__PURE__ */ React__default.createElement($e1995378a142960e$export$bf788dd355e3a401, {
256
- content: children
257
- }, (collection) => /* @__PURE__ */ React__default.createElement($5e8ad37a45e1c704$var$TabsInner, {
258
- props,
259
- collection,
260
- tabsRef: ref
261
- }));
262
- });
263
- function $5e8ad37a45e1c704$var$TabsInner({ props, tabsRef: ref, collection }) {
264
- let { orientation = "horizontal" } = props;
265
- let state = $76f919a04c5a7d14$export$4ba071daf4e486({
266
- ...props,
267
- collection,
268
- children: void 0
269
- });
270
- let { focusProps, isFocused, isFocusVisible } = $f7dceffc5ad7768b$export$4e328f61c538687f({
271
- within: true
272
- });
273
- let values = useMemo(() => ({
274
- orientation,
275
- isFocusWithin: isFocused,
276
- isFocusVisible
277
- }), [
278
- orientation,
279
- isFocused,
280
- isFocusVisible
281
- ]);
282
- let renderProps = $64fa3d84918910a7$export$4d86445c2cf5e3({
283
- ...props,
284
- defaultClassName: "react-aria-Tabs",
285
- values
286
- });
287
- return /* @__PURE__ */ React__default.createElement("div", {
288
- ...$65484d02dcb7eb3e$export$457c3d6518dd4c6f(props),
289
- ...focusProps,
290
- ...renderProps,
291
- ref,
292
- slot: props.slot || void 0,
293
- "data-focused": isFocused || void 0,
294
- "data-orientation": orientation,
295
- "data-focus-visible": isFocusVisible || void 0,
296
- "data-disabled": state.isDisabled || void 0
297
- }, /* @__PURE__ */ React__default.createElement($64fa3d84918910a7$export$2881499e37b75b9a, {
298
- values: [
299
- [
300
- $5e8ad37a45e1c704$export$cfa7aa87c26e7d1f,
301
- props
302
- ],
303
- [
304
- $5e8ad37a45e1c704$export$364712098d2aa57c,
305
- state
306
- ]
307
- ]
308
- }, renderProps.children));
309
- }
310
- const $5e8ad37a45e1c704$export$e51a686c67fdaa2d = /* @__PURE__ */ forwardRef(function TabList(props, ref) {
311
- let state = useContext($5e8ad37a45e1c704$export$364712098d2aa57c);
312
- return state ? /* @__PURE__ */ React__default.createElement($5e8ad37a45e1c704$var$TabListInner, {
313
- props,
314
- forwardedRef: ref
315
- }) : /* @__PURE__ */ React__default.createElement($e1995378a142960e$export$fb8073518f34e6ec, props);
316
- });
317
- function $5e8ad37a45e1c704$var$TabListInner({ props, forwardedRef: ref }) {
318
- let state = useContext($5e8ad37a45e1c704$export$364712098d2aa57c);
319
- let { CollectionRoot } = useContext($7135fc7d473fd974$export$4feb769f8ddf26c5);
320
- let { orientation = "horizontal", keyboardActivation = "automatic" } = $64fa3d84918910a7$export$fabf2dc03a41866e($5e8ad37a45e1c704$export$cfa7aa87c26e7d1f);
321
- let objectRef = $df56164dff5785e2$export$4338b53315abf666(ref);
322
- let { tabListProps } = $58d314389b21fa3f$export$773e389e644c5874({
323
- ...props,
324
- orientation,
325
- keyboardActivation
326
- }, state, objectRef);
327
- let renderProps = $64fa3d84918910a7$export$4d86445c2cf5e3({
328
- ...props,
329
- children: null,
330
- defaultClassName: "react-aria-TabList",
331
- values: {
332
- orientation,
333
- state
334
- }
335
- });
336
- let DOMProps = $65484d02dcb7eb3e$export$457c3d6518dd4c6f(props);
337
- delete DOMProps.id;
338
- return /* @__PURE__ */ React__default.createElement("div", {
339
- ...DOMProps,
340
- ...tabListProps,
341
- ref: objectRef,
342
- ...renderProps,
343
- "data-orientation": orientation || void 0
344
- }, /* @__PURE__ */ React__default.createElement(CollectionRoot, {
345
- collection: state.collection,
346
- persistedKeys: $7135fc7d473fd974$export$90e00781bc59d8f9(state.selectionManager.focusedKey)
347
- }));
348
- }
349
- const $5e8ad37a45e1c704$export$3e41faf802a29e71 = /* @__PURE__ */ $e1995378a142960e$export$18af5c7a9e9b3664("item", (props, forwardedRef, item) => {
350
- let state = useContext($5e8ad37a45e1c704$export$364712098d2aa57c);
351
- let ref = $df56164dff5785e2$export$4338b53315abf666(forwardedRef);
352
- let { tabProps, isSelected, isDisabled, isPressed } = $0175d55c2a017ebc$export$fdf4756d5b8ef90a({
353
- key: item.key,
354
- ...props
355
- }, state, ref);
356
- let { focusProps, isFocused, isFocusVisible } = $f7dceffc5ad7768b$export$4e328f61c538687f();
357
- let { hoverProps, isHovered } = $6179b936705e76d3$export$ae780daf29e6d456({
358
- isDisabled,
359
- onHoverStart: props.onHoverStart,
360
- onHoverEnd: props.onHoverEnd,
361
- onHoverChange: props.onHoverChange
362
- });
363
- let renderProps = $64fa3d84918910a7$export$4d86445c2cf5e3({
364
- ...props,
365
- id: void 0,
366
- children: item.rendered,
367
- defaultClassName: "react-aria-Tab",
368
- values: {
369
- isSelected,
370
- isDisabled,
371
- isFocused,
372
- isFocusVisible,
373
- isPressed,
374
- isHovered
375
- }
376
- });
377
- let ElementType = item.props.href ? "a" : "div";
378
- return /* @__PURE__ */ React__default.createElement(ElementType, {
379
- ...$3ef42575df84b30b$export$9d1611c77c2fe928(tabProps, focusProps, hoverProps, renderProps),
380
- ref,
381
- "data-selected": isSelected || void 0,
382
- "data-disabled": isDisabled || void 0,
383
- "data-focused": isFocused || void 0,
384
- "data-focus-visible": isFocusVisible || void 0,
385
- "data-pressed": isPressed || void 0,
386
- "data-hovered": isHovered || void 0
387
- }, renderProps.children);
388
- });
389
- const $5e8ad37a45e1c704$export$3d96ec278d3efce4 = /* @__PURE__ */ $f39a9eba43920ace$export$86427a43e3e48ebb(function TabPanel(props, forwardedRef) {
390
- const state = useContext($5e8ad37a45e1c704$export$364712098d2aa57c);
391
- let ref = $df56164dff5785e2$export$4338b53315abf666(forwardedRef);
392
- let { tabPanelProps } = $34bce698202e07cb$export$fae0121b5afe572d(props, state, ref);
393
- let { focusProps, isFocused, isFocusVisible } = $f7dceffc5ad7768b$export$4e328f61c538687f();
394
- let isSelected = state.selectedKey === props.id;
395
- let renderProps = $64fa3d84918910a7$export$4d86445c2cf5e3({
396
- ...props,
397
- defaultClassName: "react-aria-TabPanel",
398
- values: {
399
- isFocused,
400
- isFocusVisible,
401
- isInert: !isSelected,
402
- state
403
- }
404
- });
405
- if (!isSelected && !props.shouldForceMount) return null;
406
- let DOMProps = $65484d02dcb7eb3e$export$457c3d6518dd4c6f(props);
407
- delete DOMProps.id;
408
- let domProps = isSelected ? $3ef42575df84b30b$export$9d1611c77c2fe928(DOMProps, tabPanelProps, focusProps, renderProps) : renderProps;
409
- return /* @__PURE__ */ React__default.createElement("div", {
410
- ...domProps,
411
- ref,
412
- "data-focused": isFocused || void 0,
413
- "data-focus-visible": isFocusVisible || void 0,
414
- // @ts-ignore
415
- inert: $cdc5a6778b766db2$export$a9d04c5684123369(!isSelected),
416
- "data-inert": !isSelected ? "true" : void 0
417
- }, /* @__PURE__ */ React__default.createElement($64fa3d84918910a7$export$2881499e37b75b9a, {
418
- values: [
419
- [
420
- $5e8ad37a45e1c704$export$cfa7aa87c26e7d1f,
421
- null
422
- ],
423
- [
424
- $5e8ad37a45e1c704$export$364712098d2aa57c,
425
- null
426
- ]
427
- ]
428
- }, /* @__PURE__ */ React__default.createElement($7135fc7d473fd974$export$4feb769f8ddf26c5.Provider, {
429
- value: $7135fc7d473fd974$export$a164736487e3f0ae
430
- }, renderProps.children)));
431
- });
432
- /**
433
- * Main tab container.
434
- *
435
- * @component
436
- * @param {Object} props - Component props.
437
- * @param {boolean} [props.vertical=false] - Whether the tabs are vertical.
438
- * @param {string} [props.className] - Classes to pass to the tabs container.
439
- * @param {TabsType} [props.type='underline'] - Design of the tabs.
440
- * @param {boolean} [props.hidden] - If `true`, the component is not rendered.
441
- *
442
- * @returns {JSX.Element} The Tabs component.
443
- *
444
- * @typedef {'underline' | 'pill' | 'pillInverse' | 'pillCompact' | 'pillCompactInverse'} TabsType
445
- *
446
- * @example
447
- * <Tabs>
448
- * <TabList>
449
- * <Tab>Tab 1</Tab>
450
- * <Tab>Tab 2</Tab>
451
- * </TabList>
452
- * <TabPanel>Content 1</TabPanel>
453
- * <TabPanel>Content 2</TabPanel>
454
- * </Tabs>
455
- *
456
- * @preserve
457
- */
458
- const Tabs2 = (props) => {
459
- const { children, vertical, className, hidden, type = "underline", ...rest } = props;
460
- const baseId = useId();
461
- if (hidden) {
462
- return null;
463
- }
464
- let tabPanelCounter = 1;
465
- let tabCounter = 1;
466
- const preparedChildren = Array.isArray(children) ? children : [children];
467
- const childrenWithIds = preparedChildren.reduce((acc, child, index) => {
468
- var _a, _b, _c;
469
- if (child.type.displayName === "TabList") {
470
- const childItems = Array.isArray((_a = child == null ? void 0 : child.props) == null ? void 0 : _a.children) ? (_b = child == null ? void 0 : child.props) == null ? void 0 : _b.children : [(_c = child == null ? void 0 : child.props) == null ? void 0 : _c.children].filter(Boolean);
471
- tabCounter = ((childItems == null ? void 0 : childItems.length) ?? 0) + 1;
472
- if (childItems.length < 1) {
473
- return acc;
474
- }
475
- return [
476
- ...acc,
477
- cloneElement(
478
- child,
479
- {
480
- key: index,
481
- type
482
- },
483
- childItems == null ? void 0 : childItems.map(
484
- (innerChild, i) => cloneElement(innerChild, {
485
- id: `tab-${baseId}-${i + 1}`,
486
- key: i,
487
- isParentVertical: vertical,
488
- type
489
- })
490
- )
491
- )
492
- ];
493
- }
494
- if (child.type.displayName === "TabPanel") {
495
- return [
496
- ...acc,
497
- cloneElement(child, {
498
- id: `tab-${baseId}-${tabPanelCounter++}`,
499
- key: index,
500
- className: clsx(child.props.className, vertical && "es:pl-3")
501
- })
502
- ];
503
- }
504
- return acc;
505
- }, []);
506
- if (tabCounter !== tabPanelCounter) {
507
- return /* @__PURE__ */ jsx(
508
- Notice,
509
- {
510
- type: "error",
511
- label: __("Component is not configured correctly. Skipping render to prevent errors.", "eightshift-ui-components"),
512
- subtitle: sprintf(
513
- __("Number of <Tab>s (%s) and <TabPanel>s (%s) should be the same. <Tab>s should be within a <TabList>.", "eightshift-ui-components"),
514
- tabCounter - 1,
515
- tabPanelCounter - 1
516
- ),
517
- alignIconToTitle: true
518
- }
519
- );
520
- }
521
- return /* @__PURE__ */ jsx(
522
- $5e8ad37a45e1c704$export$b2539bed5023c21c,
523
- {
524
- ...rest,
525
- orientation: vertical ? "vertical" : "horizontal",
526
- className: clsx(vertical ? "es:grid es:size-full es:min-h-40 es:grid-cols-[minmax(0,15rem)_2fr] es:gap-4" : "es:flex-col", className),
527
- children: childrenWithIds
528
- }
529
- );
530
- };
531
- Tabs2.displayName = "Tabs";
532
- /**
533
- * Container for tabs within the Tabs component.
534
- *
535
- * @component
536
- * @param {Object} props - Component props.
537
- * @param {string} [props.className] - Classes to pass to the tab list.
538
- *
539
- * @returns {JSX.Element} The TabList component.
540
- *
541
- * @see {@link Tabs} for usage example.
542
- *
543
- * @preserve
544
- */
545
- const TabList2 = (props) => {
546
- const { children, "aria-label": ariaLabel, className, type, ...other } = props;
547
- return /* @__PURE__ */ jsx(
548
- $5e8ad37a45e1c704$export$e51a686c67fdaa2d,
549
- {
550
- "aria-label": ariaLabel ?? __("tabs", "eightshift-ui-components"),
551
- className: ({ orientation }) => {
552
- const horizontal = orientation === "horizontal";
553
- const vertical = orientation === "vertical";
554
- return clsx(
555
- "es:flex es:p-0.5 es:-m-0.5",
556
- vertical && "es:h-full es:flex-col es:gap-1.5 es:pr-1.5 es:overflow-y-auto es:overflow-x-visible",
557
- horizontal && "es:w-full es:items-stretch es:gap-1.5 es:overflow-x-auto es:overflow-y-visible es:mb-3",
558
- horizontal && type === "underline" && 'es:relative es:isolate es:after:content-[""] es:after:-z-10 es:after:absolute es:after:bottom-0.5 es:after:left-0 es:after:w-full es:after:h-px es:after:bg-secondary-300',
559
- className
560
- );
561
- },
562
- ...other,
563
- children
564
- }
565
- );
566
- };
567
- TabList2.displayName = "TabList";
568
- /**
569
- * A tab within the TabList component, in the Tabs component.
570
- *
571
- * @component
572
- * @param {Object} props - Component props.
573
- * @param {boolean} [props.disabled] - Whether the tab is disabled.
574
- * @param {string} [props.className] - Classes to pass to the tab.
575
- * @param {JSX.Element} [props.icon] - Icon to show on the tab.
576
- * @param {string|JSX.Element} [props.badge] - Badge to render besides the label.
577
- * @param {boolean} [props.invisible] - If `true`, the tab is disabled and not rendered, but is not unmounted from the DOM.
578
- * @param {string} [props.label] - Tab label. **Note**: overrides inner items!
579
- * @param {string} [props.subtitle] - Tab subtitle. **Note**: overrides inner items!
580
- *
581
- * @returns {JSX.Element} The Tab component.
582
- *
583
- * @see {@link Tabs} for usage example.
584
- *
585
- * @preserve
586
- */
587
- const Tab = (props) => {
588
- const { children, disabled, isParentVertical, className, icon, label, subtitle, type, badge, invisible, ...other } = props;
589
- const componentClasses = cva(
590
- [
591
- "es:group es:flex es:items-center es:gap-1.5 es:relative es:shrink-0",
592
- "es:select-none es:text-sm es:transition es:not-disabled:cursor-pointer",
593
- "es:any-focus:outline-hidden es:focus-visible:ring-2 es:focus-visible:ring-accent-500/50",
594
- !(type === "pillCompact" || type === "pillCompactInverse") && "es:min-h-9.5",
595
- isParentVertical && (type === "pillCompact" || type === "pillCompactInverse") && "es:min-h-8",
596
- invisible && "es:hidden",
597
- className
598
- ],
599
- {
600
- variants: {
601
- type: {
602
- underline: "es:disabled:text-secondary-400 es:selected:text-accent-950",
603
- pill: "es:font-[450] es:border es:border-transparent es:px-3 es:py-2 es:rounded-lg es:not-disabled:not-selected:hover:text-secondary-900 es:not-disabled:not-selected:hover:bg-secondary-100 es:text-secondary-500 es:selected:text-accent-900 es:selected:bg-accent-400/15 es:has-icon:pl-2.5 es:focus-visible:border-accent-500 es:disabled:text-secondary-400/75",
604
- pillInverse: "es:font-[450] es:border es:border-transparent es:px-3 es:py-2 es:rounded-lg es:not-disabled:not-selected:hover:text-secondary-900 es:not-disabled:not-selected:hover:bg-secondary-100 es:text-secondary-500 es:selected:text-white es:selected:bg-accent-600 es:has-icon:pl-2.5 es:focus-visible:border-accent-500 es:disabled:text-secondary-400/75",
605
- pillCompact: "es:icon:size-4 es:font-[450] es:border es:border-transparent es:px-1.5 es:py-1 es:rounded-lg es:not-disabled:not-selected:hover:text-secondary-900 es:not-disabled:not-selected:hover:bg-secondary-100 es:text-secondary-500 es:selected:text-accent-900 es:selected:bg-accent-400/15 es:has-icon:pl-1 es:focus-visible:border-accent-500 es:disabled:text-secondary-400/75",
606
- pillCompactInverse: "es:icon:size-4 es:font-[450] es:border es:border-transparent es:px-1.5 es:py-1 es:rounded-lg es:not-disabled:not-selected:hover:text-secondary-900 es:not-disabled:not-selected:hover:bg-secondary-100 es:text-secondary-500 es:selected:text-white es:selected:bg-accent-600 es:has-icon:pl-1 es:focus-visible:border-accent-500 es:disabled:text-secondary-400/75"
607
- }
608
- },
609
- compoundVariants: [
610
- {
611
- vertical: false,
612
- type: "underline",
613
- class: [
614
- "es:px-2 es:py-2.5 es:rounded-lg",
615
- 'es:after:content-[""] es:after:absolute es:after:bottom-px es:after:left-0 es:after:right-0 es:after:w-5/6 es:after:mx-auto es:after:h-0.75',
616
- "es:after:bg-linear-to-b es:hover:not-selected:not-disabled:after:from-secondary-200 es:hover:not-selected:not-disabled:after:to-secondary-300 es:selected:after:from-accent-500 es:selected:after:to-accent-600",
617
- "es:after:rounded-t-full es:selected:after:shadow-xs es:selected:after:shadow-accent-700/30 es:after:transition"
618
- ]
619
- },
620
- {
621
- vertical: true,
622
- type: "underline",
623
- class: [
624
- "es:pl-3 es:pr-2 es:py-2.5 es:rounded-lg es:selected:bg-accent-50/50 es:selected:text-accent-950 es:transition",
625
- 'es:after:content-[""] es:after:absolute es:after:-left-0 es:after:top-0 es:after:bottom-0 es:after:h-5/6 es:after:my-auto es:after:w-1',
626
- "es:after:bg-linear-to-r es:hover:not-selected:not-disabled:after:from-secondary-200 es:hover:not-selected:not-disabled:after:to-secondary-300 es:selected:after:from-accent-500 es:selected:after:to-accent-600",
627
- "es:after:rounded-full es:selected:after:shadow-xs es:selected:after:shadow-accent-700/30 es:after:transition"
628
- ]
629
- }
630
- ]
631
- }
632
- );
633
- return /* @__PURE__ */ jsxs(
634
- $5e8ad37a45e1c704$export$3e41faf802a29e71,
635
- {
636
- ...other,
637
- isDisabled: disabled || invisible,
638
- className: componentClasses({ vertical: Boolean(isParentVertical), type }),
639
- children: [
640
- (icon || subtitle) && /* @__PURE__ */ jsx(
641
- RichLabel,
642
- {
643
- icon,
644
- label: label ?? children,
645
- subtitle,
646
- noColor: true,
647
- iconClassName: clsx((type === "pillCompact" || type === "pillCompactInverse") && "es:icon:size-4!")
648
- }
649
- ),
650
- !(icon || subtitle) && (label ?? children),
651
- badge && !isValidElement(badge) && /* @__PURE__ */ jsx(
652
- "span",
653
- {
654
- className: clsx(
655
- "es:transition-colors es:px-1.5 es:py-1 es:leading-none es:rounded-md es:text-xs es:font-medium",
656
- type === "underline" && "es:inset-ring es:inset-ring-secondary-200/20 es:bg-secondary-100 es:group-selected:bg-accent-500/10 es:group-selected:text-accent-900 es:group-selected:inset-ring-accent-500/10",
657
- type === "pill" && "es:bg-secondary-100 es:group-selected:bg-accent-600 es:group-selected:text-white",
658
- type === "pillInverse" && "es:bg-secondary-100 es:group-selected:bg-accent-50 es:group-selected:text-accent-900",
659
- type === "pillCompact" && "es:bg-secondary-100 es:group-selected:bg-accent-600 es:group-selected:text-white",
660
- type === "pillCompactInverse" && "es:bg-secondary-100 es:group-selected:bg-accent-50 es:group-selected:text-accent-900",
661
- (type === "pillCompact" || type === "pillCompactInverse") && "es:[&_svg]:size-4!"
662
- ),
663
- children: badge
664
- }
665
- ),
666
- badge && isValidElement(badge) && /* @__PURE__ */ jsx("div", { children: badge })
667
- ]
668
- }
669
- );
670
- };
671
- Tab.displayName = "Tab";
672
- /**
673
- * Container for tab content within the Tabs component.
674
- *
675
- * @component
676
- * @param {Object} props - Component props.
677
- * @param {string} [props.className] - Classes to pass to the tab content container.
678
- *
679
- * @returns {JSX.Element} The TabPanel component.
680
- *
681
- * @see {@link Tabs} for usage example.
682
- *
683
- * @preserve
684
- */
685
- const TabPanel2 = (props) => {
686
- const { children, className, ...other } = props;
687
- return /* @__PURE__ */ jsx(
688
- $5e8ad37a45e1c704$export$3d96ec278d3efce4,
689
- {
690
- ...other,
691
- className: clsx("es:space-y-2.5 es:text-sm es:any-focus:outline-hidden", className),
692
- children
693
- }
694
- );
695
- };
696
- TabPanel2.displayName = "TabPanel";
697
- export {
698
- Tab,
699
- TabList2 as TabList,
700
- TabPanel2 as TabPanel,
701
- Tabs2 as Tabs
702
- };