storybook 10.1.0-beta.4 → 10.1.0-beta.6

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 (65) hide show
  1. package/dist/_browser-chunks/{Color-FTG7SQDA.js → Color-TNPFN3FC.js} +2 -2
  2. package/dist/_browser-chunks/{WithTooltip-LMROHDUP.js → WithTooltip-IO6J4KBT.js} +2 -2
  3. package/dist/_node-chunks/{builder-manager-T3A7QLUO.js → builder-manager-OYPBAOYY.js} +13 -13
  4. package/dist/_node-chunks/{camelcase-WMMYRUH4.js → camelcase-KHLD4CBZ.js} +7 -7
  5. package/dist/_node-chunks/{chunk-TC7X5DN2.js → chunk-3YPPVXVV.js} +10 -10
  6. package/dist/_node-chunks/chunk-4JHERXHJ.js +61 -0
  7. package/dist/_node-chunks/{chunk-TBYOSPAV.js → chunk-4K5Y3HIQ.js} +6 -6
  8. package/dist/_node-chunks/{chunk-VW25O2YM.js → chunk-5VOKWTHJ.js} +6 -6
  9. package/dist/_node-chunks/{chunk-NORFPLB6.js → chunk-676RYYTC.js} +7 -7
  10. package/dist/_node-chunks/{chunk-C6RLDV2P.js → chunk-6O2EILDG.js} +8 -8
  11. package/dist/_node-chunks/{chunk-JYAXWHGH.js → chunk-6SDCYDUQ.js} +9 -9
  12. package/dist/_node-chunks/{chunk-HT32VUX7.js → chunk-AIU56TIK.js} +7 -7
  13. package/dist/_node-chunks/{chunk-RSJK2D7X.js → chunk-CDT6SGHG.js} +6 -6
  14. package/dist/_node-chunks/{chunk-EFTR6VSG.js → chunk-DCDE2LZP.js} +9 -9
  15. package/dist/_node-chunks/{chunk-TCLOOFNE.js → chunk-F67RSVRX.js} +7 -7
  16. package/dist/_node-chunks/{chunk-WGBDDI6W.js → chunk-GRWEJWC6.js} +10 -9
  17. package/dist/_node-chunks/{chunk-67VVNDJJ.js → chunk-IZ4CTLAY.js} +6 -6
  18. package/dist/_node-chunks/{chunk-KAVR7KJP.js → chunk-JKZ5HEMT.js} +36 -20
  19. package/dist/_node-chunks/{chunk-YZ3XRP4N.js → chunk-K43XPHKR.js} +6 -6
  20. package/dist/_node-chunks/{chunk-VN7SAKM4.js → chunk-KNKOGWDU.js} +6 -6
  21. package/dist/_node-chunks/chunk-KXDN7S7Y.js +23 -0
  22. package/dist/_node-chunks/chunk-L3S6HFZ7.js +18 -0
  23. package/dist/_node-chunks/{chunk-CSFSQ2I4.js → chunk-MKHH5E6J.js} +7 -7
  24. package/dist/_node-chunks/{chunk-CM44JL5Z.js → chunk-NHZRDKD5.js} +6 -6
  25. package/dist/_node-chunks/{chunk-KI6KY2ZN.js → chunk-OR5YQT2Y.js} +13 -13
  26. package/dist/_node-chunks/{chunk-5DEFF2GB.js → chunk-QWPDENGK.js} +7 -7
  27. package/dist/_node-chunks/{chunk-HDMHX5QM.js → chunk-R4N2FLEZ.js} +7 -7
  28. package/dist/_node-chunks/{chunk-EFN4RLWH.js → chunk-RNG6NQRW.js} +7 -7
  29. package/dist/_node-chunks/{chunk-YTTOTUWC.js → chunk-VZ6EDE7M.js} +6 -6
  30. package/dist/_node-chunks/{chunk-3MVB5IZX.js → chunk-WXWHNHZE.js} +16 -16
  31. package/dist/_node-chunks/{chunk-EJPOXNSG.js → chunk-XC4RJ4LY.js} +14 -21
  32. package/dist/_node-chunks/{chunk-PMZEJJNX.js → chunk-YOAOSHXI.js} +7 -7
  33. package/dist/_node-chunks/{dist-L6XLFQOU.js → dist-BS45SS3Y.js} +9 -9
  34. package/dist/_node-chunks/{globby-7IXLXFEA.js → globby-WIEUQD7O.js} +9 -9
  35. package/dist/_node-chunks/{lib-T5L2ZSAG.js → lib-UNDA723W.js} +7 -7
  36. package/dist/_node-chunks/{mdx-N42X6CFJ-GOOKUTSA.js → mdx-N42X6CFJ-ABE6VGZM.js} +8 -8
  37. package/dist/_node-chunks/{p-limit-7GKATDEW.js → p-limit-XD6JNZJT.js} +7 -7
  38. package/dist/babel/index.js +10 -10
  39. package/dist/bin/core.js +12 -12
  40. package/dist/bin/dispatcher.js +11 -11
  41. package/dist/bin/loader.js +9 -9
  42. package/dist/cli/index.d.ts +3 -1
  43. package/dist/cli/index.js +18 -18
  44. package/dist/common/index.d.ts +3 -1
  45. package/dist/common/index.js +19 -19
  46. package/dist/components/index.d.ts +131 -117
  47. package/dist/components/index.js +514 -449
  48. package/dist/core-server/index.js +33 -33
  49. package/dist/core-server/presets/common-manager.js +2 -2
  50. package/dist/core-server/presets/common-override-preset.js +9 -9
  51. package/dist/core-server/presets/common-preset.js +25 -25
  52. package/dist/csf-tools/index.js +9 -9
  53. package/dist/manager/globals-runtime.js +7207 -7142
  54. package/dist/manager/runtime.js +156 -232
  55. package/dist/manager-api/index.d.ts +178 -178
  56. package/dist/manager-api/index.js +1 -1
  57. package/dist/mocking-utils/index.js +8 -8
  58. package/dist/node-logger/index.js +9 -9
  59. package/dist/preview-api/index.d.ts +67 -68
  60. package/dist/server-errors.js +11 -11
  61. package/dist/telemetry/index.js +23 -23
  62. package/package.json +1 -1
  63. package/dist/_node-chunks/chunk-IQFN7VY4.js +0 -23
  64. package/dist/_node-chunks/chunk-K7U3BSTR.js +0 -61
  65. package/dist/_node-chunks/chunk-YN3C74EA.js +0 -18
@@ -730,12 +730,15 @@ var LEFT_BUTTON = 0, isPlainLeftClick = (e) => e.button === LEFT_BUTTON && !e.al
730
730
  containsIcon = !1,
731
731
  className = void 0,
732
732
  style = void 0,
733
+ isButton: isButton2 = !1,
733
734
  ...rest
734
735
  }, ref) => React6.createElement(
735
736
  A2,
736
737
  {
737
738
  ...rest,
738
739
  ref,
740
+ isButton: isButton2,
741
+ role: isButton2 ? "button" : void 0,
739
742
  onClick: onClick && cancel ? (e) => cancelled(e, onClick) : onClick,
740
743
  className
741
744
  },
@@ -1030,12 +1033,127 @@ var DocumentWrapper = styled25.div(({ theme }) => ({
1030
1033
  }
1031
1034
  }));
1032
1035
 
1033
- // src/components/components/Collapsible/Collapsible.tsx
1034
- import React7, {
1035
- useCallback,
1036
- useEffect,
1037
- useState
1038
- } from "react";
1036
+ // src/components/components/ActionList/ActionList.tsx
1037
+ import React16, { forwardRef as forwardRef6 } from "react";
1038
+ import { styled as styled30 } from "storybook/theming";
1039
+
1040
+ // src/components/components/Button/Button.tsx
1041
+ import React14, { forwardRef as forwardRef4, useEffect, useMemo as useMemo2, useState as useState3 } from "react";
1042
+ import { deprecate as deprecate2 } from "storybook/internal/client-logger";
1043
+
1044
+ // ../node_modules/@radix-ui/react-slot/dist/index.mjs
1045
+ import * as React8 from "react";
1046
+
1047
+ // ../node_modules/@radix-ui/react-slot/node_modules/@radix-ui/react-compose-refs/dist/index.mjs
1048
+ import * as React7 from "react";
1049
+ function setRef(ref, value) {
1050
+ if (typeof ref == "function")
1051
+ return ref(value);
1052
+ ref != null && (ref.current = value);
1053
+ }
1054
+ function composeRefs(...refs) {
1055
+ return (node) => {
1056
+ let hasCleanup = !1, cleanups = refs.map((ref) => {
1057
+ let cleanup = setRef(ref, node);
1058
+ return !hasCleanup && typeof cleanup == "function" && (hasCleanup = !0), cleanup;
1059
+ });
1060
+ if (hasCleanup)
1061
+ return () => {
1062
+ for (let i = 0; i < cleanups.length; i++) {
1063
+ let cleanup = cleanups[i];
1064
+ typeof cleanup == "function" ? cleanup() : setRef(refs[i], null);
1065
+ }
1066
+ };
1067
+ };
1068
+ }
1069
+
1070
+ // ../node_modules/@radix-ui/react-slot/dist/index.mjs
1071
+ import { Fragment as Fragment2, jsx } from "react/jsx-runtime";
1072
+ var REACT_LAZY_TYPE = Symbol.for("react.lazy"), use = React8[" use ".trim().toString()];
1073
+ function isPromiseLike(value) {
1074
+ return typeof value == "object" && value !== null && "then" in value;
1075
+ }
1076
+ function isLazyComponent(element) {
1077
+ return element != null && typeof element == "object" && "$$typeof" in element && element.$$typeof === REACT_LAZY_TYPE && "_payload" in element && isPromiseLike(element._payload);
1078
+ }
1079
+ function createSlot(ownerName) {
1080
+ let SlotClone = createSlotClone(ownerName), Slot2 = React8.forwardRef((props, forwardedRef) => {
1081
+ let { children, ...slotProps } = props;
1082
+ isLazyComponent(children) && typeof use == "function" && (children = use(children._payload));
1083
+ let childrenArray = React8.Children.toArray(children), slottable = childrenArray.find(isSlottable);
1084
+ if (slottable) {
1085
+ let newElement = slottable.props.children, newChildren = childrenArray.map((child) => child === slottable ? React8.Children.count(newElement) > 1 ? React8.Children.only(null) : React8.isValidElement(newElement) ? newElement.props.children : null : child);
1086
+ return jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React8.isValidElement(newElement) ? React8.cloneElement(newElement, void 0, newChildren) : null });
1087
+ }
1088
+ return jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });
1089
+ });
1090
+ return Slot2.displayName = `${ownerName}.Slot`, Slot2;
1091
+ }
1092
+ var Slot = createSlot("Slot");
1093
+ function createSlotClone(ownerName) {
1094
+ let SlotClone = React8.forwardRef((props, forwardedRef) => {
1095
+ let { children, ...slotProps } = props;
1096
+ if (isLazyComponent(children) && typeof use == "function" && (children = use(children._payload)), React8.isValidElement(children)) {
1097
+ let childrenRef = getElementRef(children), props2 = mergeProps(slotProps, children.props);
1098
+ return children.type !== React8.Fragment && (props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef), React8.cloneElement(children, props2);
1099
+ }
1100
+ return React8.Children.count(children) > 1 ? React8.Children.only(null) : null;
1101
+ });
1102
+ return SlotClone.displayName = `${ownerName}.SlotClone`, SlotClone;
1103
+ }
1104
+ var SLOTTABLE_IDENTIFIER = Symbol("radix.slottable");
1105
+ function createSlottable(ownerName) {
1106
+ let Slottable2 = ({ children }) => jsx(Fragment2, { children });
1107
+ return Slottable2.displayName = `${ownerName}.Slottable`, Slottable2.__radixId = SLOTTABLE_IDENTIFIER, Slottable2;
1108
+ }
1109
+ var Slottable = createSlottable("Slottable");
1110
+ function isSlottable(child) {
1111
+ return React8.isValidElement(child) && typeof child.type == "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;
1112
+ }
1113
+ function mergeProps(slotProps, childProps) {
1114
+ let overrideProps = { ...childProps };
1115
+ for (let propName in childProps) {
1116
+ let slotPropValue = slotProps[propName], childPropValue = childProps[propName];
1117
+ /^on[A-Z]/.test(propName) ? slotPropValue && childPropValue ? overrideProps[propName] = (...args) => {
1118
+ let result = childPropValue(...args);
1119
+ return slotPropValue(...args), result;
1120
+ } : slotPropValue && (overrideProps[propName] = slotPropValue) : propName === "style" ? overrideProps[propName] = { ...slotPropValue, ...childPropValue } : propName === "className" && (overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" "));
1121
+ }
1122
+ return { ...slotProps, ...overrideProps };
1123
+ }
1124
+ function getElementRef(element) {
1125
+ let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get, mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
1126
+ return mayWarn ? element.ref : (getter = Object.getOwnPropertyDescriptor(element, "ref")?.get, mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning, mayWarn ? element.props.ref : element.props.ref || element.ref);
1127
+ }
1128
+
1129
+ // src/components/components/Button/Button.tsx
1130
+ import { shortcutToAriaKeyshortcuts } from "storybook/manager-api";
1131
+ import { isPropValid, styled as styled28 } from "storybook/theming";
1132
+
1133
+ // src/components/components/Button/helpers/InteractiveTooltipWrapper.tsx
1134
+ import React12, { useMemo } from "react";
1135
+ import { shortcutToHumanString } from "storybook/manager-api";
1136
+
1137
+ // src/components/components/tooltip/TooltipNote.tsx
1138
+ import React9 from "react";
1139
+ import { styled as styled26 } from "storybook/theming";
1140
+ var Note = styled26.div(({ theme }) => ({
1141
+ padding: "2px 6px",
1142
+ lineHeight: "16px",
1143
+ fontSize: 10,
1144
+ fontWeight: theme.typography.weight.bold,
1145
+ color: theme.color.lightest,
1146
+ boxShadow: "0 0 5px 0 rgba(0, 0, 0, 0.3)",
1147
+ borderRadius: 4,
1148
+ whiteSpace: "nowrap",
1149
+ pointerEvents: "none",
1150
+ zIndex: -1,
1151
+ background: theme.base === "light" ? "rgba(60, 60, 60, 0.9)" : "rgba(0, 0, 0, 0.95)"
1152
+ })), TooltipNote = ({ note, ...props }) => React9.createElement(Note, { ...props }, note);
1153
+
1154
+ // src/components/components/tooltip/TooltipProvider.tsx
1155
+ import React11, { useCallback as useCallback2, useState as useState2 } from "react";
1156
+ import { deprecate } from "storybook/internal/client-logger";
1039
1157
 
1040
1158
  // ../node_modules/@react-aria/utils/dist/useLayoutEffect.mjs
1041
1159
  import $HgANd$react from "react";
@@ -2079,300 +2197,32 @@ function $458b0a5536c1a7cf$export$40bfa8c7b0832715(value, defaultValue, onChange
2079
2197
  $3whtM$useEffect(() => {
2080
2198
  let wasControlled = isControlledRef.current;
2081
2199
  wasControlled !== isControlled && process.env.NODE_ENV !== "production" && console.warn(`WARN: A component changed from ${wasControlled ? "controlled" : "uncontrolled"} to ${isControlled ? "controlled" : "uncontrolled"}.`), isControlledRef.current = isControlled;
2082
- }, [
2083
- isControlled
2084
- ]);
2085
- let currentValue = isControlled ? value : stateValue, setValue = $3whtM$useCallback((value2, ...args) => {
2086
- let onChangeCaller = (value3, ...onChangeArgs) => {
2087
- onChange && (Object.is(currentValue, value3) || onChange(value3, ...onChangeArgs)), isControlled || (currentValue = value3);
2088
- };
2089
- typeof value2 == "function" ? (process.env.NODE_ENV !== "production" && console.warn("We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320"), setStateValue((oldValue, ...functionArgs) => {
2090
- let interceptedValue = value2(isControlled ? currentValue : oldValue, ...functionArgs);
2091
- return onChangeCaller(interceptedValue, ...args), isControlled ? oldValue : interceptedValue;
2092
- })) : (isControlled || setStateValue(value2), onChangeCaller(value2, ...args));
2093
- }, [
2094
- isControlled,
2095
- currentValue,
2096
- onChange
2097
- ]);
2098
- return [
2099
- currentValue,
2100
- setValue
2101
- ];
2102
- }
2103
-
2104
- // ../node_modules/@react-stately/utils/dist/number.mjs
2105
- function $9446cca9a3875146$export$7d15b64cf5a3a4c4(value, min = -1 / 0, max = 1 / 0) {
2106
- return Math.min(Math.max(value, min), max);
2107
- }
2108
-
2109
- // src/components/components/Collapsible/Collapsible.tsx
2110
- import { styled as styled26 } from "storybook/theming";
2111
- var CollapsibleContent = styled26.div(({ collapsed = !1 }) => ({
2112
- blockSize: collapsed ? 0 : "auto",
2113
- contentVisibility: collapsed ? "hidden" : "visible",
2114
- transform: collapsed ? "translateY(-10px)" : "translateY(0)",
2115
- opacity: collapsed ? 0 : 1,
2116
- overflow: "hidden",
2117
- "@supports (interpolate-size: allow-keywords)": {
2118
- interpolateSize: "allow-keywords",
2119
- transition: "all var(--transition-duration, 0.2s)",
2120
- transitionBehavior: "allow-discrete"
2121
- },
2122
- "@media (prefers-reduced-motion: reduce)": {
2123
- transition: "none"
2124
- }
2125
- })), Collapsible = Object.assign(
2126
- function({
2127
- children,
2128
- summary,
2129
- collapsed,
2130
- disabled,
2131
- state: providedState,
2132
- ...props
2133
- }) {
2134
- let internalState = useCollapsible(collapsed, disabled), state = providedState || internalState;
2135
- return React7.createElement(React7.Fragment, null, typeof summary == "function" ? summary(state) : summary, React7.createElement(
2136
- CollapsibleContent,
2137
- {
2138
- ...props,
2139
- id: state.contentId,
2140
- collapsed: state.isCollapsed,
2141
- "aria-hidden": state.isCollapsed
2142
- },
2143
- typeof children == "function" ? children(state) : children
2144
- ));
2145
- },
2146
- {
2147
- Content: CollapsibleContent
2148
- }
2149
- ), useCollapsible = (collapsed, disabled) => {
2150
- let [isCollapsed, setCollapsed] = useState(!!collapsed);
2151
- useEffect(() => {
2152
- collapsed !== void 0 && setCollapsed(collapsed);
2153
- }, [collapsed]);
2154
- let toggleCollapsed = useCallback(
2155
- (event) => {
2156
- event?.stopPropagation(), disabled || setCollapsed((value) => !value);
2157
- },
2158
- [disabled]
2159
- ), contentId = $bdb11010cef70236$export$f680877a34711e37();
2160
- return {
2161
- contentId,
2162
- isCollapsed,
2163
- isDisabled: !!disabled,
2164
- setCollapsed,
2165
- toggleCollapsed,
2166
- toggleProps: {
2167
- disabled,
2168
- onClick: toggleCollapsed,
2169
- "aria-controls": contentId,
2170
- "aria-expanded": !isCollapsed
2171
- }
2172
- };
2173
- };
2174
-
2175
- // src/components/components/Card/Card.tsx
2176
- import React8, { forwardRef as forwardRef2 } from "react";
2177
- import { keyframes, styled as styled27 } from "storybook/theming";
2178
- var fadeInOut = keyframes({
2179
- "0%": { opacity: 0 },
2180
- "5%": { opacity: 1 },
2181
- "25%": { opacity: 1 },
2182
- "30%": { opacity: 0 }
2183
- }), spin = keyframes({
2184
- "0%": { transform: "rotate(0deg)" },
2185
- "10%": { transform: "rotate(10deg)" },
2186
- "40%": { transform: "rotate(170deg)" },
2187
- "50%": { transform: "rotate(180deg)" },
2188
- "60%": { transform: "rotate(190deg)" },
2189
- "90%": { transform: "rotate(350deg)" },
2190
- "100%": { transform: "rotate(360deg)" }
2191
- }), slide = keyframes({
2192
- to: {
2193
- backgroundPositionX: "36%"
2194
- }
2195
- }), CardContent = styled27.div(({ theme }) => ({
2196
- borderRadius: theme.appBorderRadius,
2197
- backgroundColor: theme.background.content,
2198
- position: "relative"
2199
- })), CardOutline = styled27.div(({ animation = "none", color: color4, theme }) => ({
2200
- position: "relative",
2201
- width: "100%",
2202
- padding: 1,
2203
- overflow: "hidden",
2204
- backgroundColor: theme.background.content,
2205
- borderRadius: theme.appBorderRadius + 1,
2206
- boxShadow: `inset 0 0 0 1px ${animation === "none" && color4 && theme.color[color4] || theme.appBorderColor}, var(--card-box-shadow, transparent 0 0)`,
2207
- transition: "box-shadow 1s",
2208
- "@supports (interpolate-size: allow-keywords)": {
2209
- interpolateSize: "allow-keywords",
2210
- transition: "all var(--transition-duration, 0.2s), box-shadow 1s",
2211
- transitionBehavior: "allow-discrete"
2212
- },
2213
- "@media (prefers-reduced-motion: reduce)": {
2214
- transition: "box-shadow 1s"
2215
- },
2216
- "&:before": {
2217
- content: '""',
2218
- display: animation === "none" ? "none" : "block",
2219
- position: "absolute",
2220
- left: 0,
2221
- top: 0,
2222
- width: "100%",
2223
- height: "100%",
2224
- opacity: 1,
2225
- ...animation === "rainbow" && {
2226
- animation: `${slide} 10s infinite linear, ${fadeInOut} 60s infinite linear`,
2227
- backgroundImage: "linear-gradient(45deg,rgb(234, 0, 0),rgb(255, 157, 0),rgb(255, 208, 0),rgb(0, 172, 0),rgb(0, 166, 255),rgb(181, 0, 181), rgb(234, 0, 0),rgb(255, 157, 0),rgb(255, 208, 0),rgb(0, 172, 0),rgb(0, 166, 255),rgb(181, 0, 181))",
2228
- backgroundSize: "1000%",
2229
- backgroundPositionX: "100%"
2230
- },
2231
- ...animation === "spin" && {
2232
- left: "50%",
2233
- top: "50%",
2234
- marginLeft: "calc(max(100vw, 100vh) * -0.5)",
2235
- marginTop: "calc(max(100vw, 100vh) * -0.5)",
2236
- height: "max(100vw, 100vh)",
2237
- width: "max(100vw, 100vh)",
2238
- animation: `${spin} 3s linear infinite`,
2239
- backgroundImage: color4 === "negative" ? (
2240
- // Hardcoded colors to prevent themes from messing with them (orange+gold, secondary+seafoam)
2241
- "conic-gradient(transparent 90deg, #FC521F 150deg, #FFAE00 210deg, transparent 270deg)"
2242
- ) : "conic-gradient(transparent 90deg, #029CFD 150deg, #37D5D3 210deg, transparent 270deg)"
2243
- }
2244
- }
2245
- })), Card = Object.assign(
2246
- forwardRef2(function({ outlineAnimation = "none", outlineColor, ...props }, ref) {
2247
- return React8.createElement(CardOutline, { animation: outlineAnimation, color: outlineColor, ref }, React8.createElement(CardContent, { ...props }));
2248
- }),
2249
- {
2250
- Content: CardContent,
2251
- Outline: CardOutline
2252
- }
2253
- );
2254
-
2255
- // src/components/components/Listbox/Listbox.tsx
2256
- import React17, { forwardRef as forwardRef6 } from "react";
2257
- import { styled as styled31 } from "storybook/theming";
2258
-
2259
- // src/components/components/Button/Button.tsx
2260
- import React16, { forwardRef as forwardRef5, useEffect as useEffect2, useMemo as useMemo2, useState as useState4 } from "react";
2261
- import { deprecate as deprecate2 } from "storybook/internal/client-logger";
2262
-
2263
- // ../node_modules/@radix-ui/react-slot/dist/index.mjs
2264
- import * as React10 from "react";
2265
-
2266
- // ../node_modules/@radix-ui/react-slot/node_modules/@radix-ui/react-compose-refs/dist/index.mjs
2267
- import * as React9 from "react";
2268
- function setRef(ref, value) {
2269
- if (typeof ref == "function")
2270
- return ref(value);
2271
- ref != null && (ref.current = value);
2272
- }
2273
- function composeRefs(...refs) {
2274
- return (node) => {
2275
- let hasCleanup = !1, cleanups = refs.map((ref) => {
2276
- let cleanup = setRef(ref, node);
2277
- return !hasCleanup && typeof cleanup == "function" && (hasCleanup = !0), cleanup;
2278
- });
2279
- if (hasCleanup)
2280
- return () => {
2281
- for (let i = 0; i < cleanups.length; i++) {
2282
- let cleanup = cleanups[i];
2283
- typeof cleanup == "function" ? cleanup() : setRef(refs[i], null);
2284
- }
2285
- };
2286
- };
2287
- }
2288
-
2289
- // ../node_modules/@radix-ui/react-slot/dist/index.mjs
2290
- import { Fragment as Fragment2, jsx } from "react/jsx-runtime";
2291
- var REACT_LAZY_TYPE = Symbol.for("react.lazy"), use = React10[" use ".trim().toString()];
2292
- function isPromiseLike(value) {
2293
- return typeof value == "object" && value !== null && "then" in value;
2294
- }
2295
- function isLazyComponent(element) {
2296
- return element != null && typeof element == "object" && "$$typeof" in element && element.$$typeof === REACT_LAZY_TYPE && "_payload" in element && isPromiseLike(element._payload);
2297
- }
2298
- function createSlot(ownerName) {
2299
- let SlotClone = createSlotClone(ownerName), Slot2 = React10.forwardRef((props, forwardedRef) => {
2300
- let { children, ...slotProps } = props;
2301
- isLazyComponent(children) && typeof use == "function" && (children = use(children._payload));
2302
- let childrenArray = React10.Children.toArray(children), slottable = childrenArray.find(isSlottable);
2303
- if (slottable) {
2304
- let newElement = slottable.props.children, newChildren = childrenArray.map((child) => child === slottable ? React10.Children.count(newElement) > 1 ? React10.Children.only(null) : React10.isValidElement(newElement) ? newElement.props.children : null : child);
2305
- return jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React10.isValidElement(newElement) ? React10.cloneElement(newElement, void 0, newChildren) : null });
2306
- }
2307
- return jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });
2308
- });
2309
- return Slot2.displayName = `${ownerName}.Slot`, Slot2;
2310
- }
2311
- var Slot = createSlot("Slot");
2312
- function createSlotClone(ownerName) {
2313
- let SlotClone = React10.forwardRef((props, forwardedRef) => {
2314
- let { children, ...slotProps } = props;
2315
- if (isLazyComponent(children) && typeof use == "function" && (children = use(children._payload)), React10.isValidElement(children)) {
2316
- let childrenRef = getElementRef(children), props2 = mergeProps(slotProps, children.props);
2317
- return children.type !== React10.Fragment && (props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef), React10.cloneElement(children, props2);
2318
- }
2319
- return React10.Children.count(children) > 1 ? React10.Children.only(null) : null;
2320
- });
2321
- return SlotClone.displayName = `${ownerName}.SlotClone`, SlotClone;
2322
- }
2323
- var SLOTTABLE_IDENTIFIER = Symbol("radix.slottable");
2324
- function createSlottable(ownerName) {
2325
- let Slottable2 = ({ children }) => jsx(Fragment2, { children });
2326
- return Slottable2.displayName = `${ownerName}.Slottable`, Slottable2.__radixId = SLOTTABLE_IDENTIFIER, Slottable2;
2327
- }
2328
- var Slottable = createSlottable("Slottable");
2329
- function isSlottable(child) {
2330
- return React10.isValidElement(child) && typeof child.type == "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;
2331
- }
2332
- function mergeProps(slotProps, childProps) {
2333
- let overrideProps = { ...childProps };
2334
- for (let propName in childProps) {
2335
- let slotPropValue = slotProps[propName], childPropValue = childProps[propName];
2336
- /^on[A-Z]/.test(propName) ? slotPropValue && childPropValue ? overrideProps[propName] = (...args) => {
2337
- let result = childPropValue(...args);
2338
- return slotPropValue(...args), result;
2339
- } : slotPropValue && (overrideProps[propName] = slotPropValue) : propName === "style" ? overrideProps[propName] = { ...slotPropValue, ...childPropValue } : propName === "className" && (overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" "));
2340
- }
2341
- return { ...slotProps, ...overrideProps };
2342
- }
2343
- function getElementRef(element) {
2344
- let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get, mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
2345
- return mayWarn ? element.ref : (getter = Object.getOwnPropertyDescriptor(element, "ref")?.get, mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning, mayWarn ? element.props.ref : element.props.ref || element.ref);
2200
+ }, [
2201
+ isControlled
2202
+ ]);
2203
+ let currentValue = isControlled ? value : stateValue, setValue = $3whtM$useCallback((value2, ...args) => {
2204
+ let onChangeCaller = (value3, ...onChangeArgs) => {
2205
+ onChange && (Object.is(currentValue, value3) || onChange(value3, ...onChangeArgs)), isControlled || (currentValue = value3);
2206
+ };
2207
+ typeof value2 == "function" ? (process.env.NODE_ENV !== "production" && console.warn("We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320"), setStateValue((oldValue, ...functionArgs) => {
2208
+ let interceptedValue = value2(isControlled ? currentValue : oldValue, ...functionArgs);
2209
+ return onChangeCaller(interceptedValue, ...args), isControlled ? oldValue : interceptedValue;
2210
+ })) : (isControlled || setStateValue(value2), onChangeCaller(value2, ...args));
2211
+ }, [
2212
+ isControlled,
2213
+ currentValue,
2214
+ onChange
2215
+ ]);
2216
+ return [
2217
+ currentValue,
2218
+ setValue
2219
+ ];
2346
2220
  }
2347
2221
 
2348
- // src/components/components/Button/Button.tsx
2349
- import { shortcutToAriaKeyshortcuts } from "storybook/manager-api";
2350
- import { isPropValid, styled as styled30 } from "storybook/theming";
2351
-
2352
- // src/components/components/Button/helpers/InteractiveTooltipWrapper.tsx
2353
- import React14, { useMemo } from "react";
2354
- import { shortcutToHumanString } from "storybook/manager-api";
2355
-
2356
- // src/components/components/tooltip/TooltipNote.tsx
2357
- import React11 from "react";
2358
- import { styled as styled28 } from "storybook/theming";
2359
- var Note = styled28.div(({ theme }) => ({
2360
- padding: "2px 6px",
2361
- lineHeight: "16px",
2362
- fontSize: 10,
2363
- fontWeight: theme.typography.weight.bold,
2364
- color: theme.color.lightest,
2365
- boxShadow: "0 0 5px 0 rgba(0, 0, 0, 0.3)",
2366
- borderRadius: 4,
2367
- whiteSpace: "nowrap",
2368
- pointerEvents: "none",
2369
- zIndex: -1,
2370
- background: theme.base === "light" ? "rgba(60, 60, 60, 0.9)" : "rgba(0, 0, 0, 0.95)"
2371
- })), TooltipNote = ({ note, ...props }) => React11.createElement(Note, { ...props }, note);
2372
-
2373
- // src/components/components/tooltip/TooltipProvider.tsx
2374
- import React13, { useCallback as useCallback3, useState as useState3 } from "react";
2375
- import { deprecate } from "storybook/internal/client-logger";
2222
+ // ../node_modules/@react-stately/utils/dist/number.mjs
2223
+ function $9446cca9a3875146$export$7d15b64cf5a3a4c4(value, min = -1 / 0, max = 1 / 0) {
2224
+ return Math.min(Math.max(value, min), max);
2225
+ }
2376
2226
 
2377
2227
  // ../node_modules/@react-aria/interactions/dist/utils.mjs
2378
2228
  import { useRef as $6dfIe$useRef, useCallback as $6dfIe$useCallback } from "react";
@@ -8642,17 +8492,17 @@ function $4e3b923658d69c60$var$TooltipInner(props) {
8642
8492
  }
8643
8493
 
8644
8494
  // src/components/components/shared/overlayHelpers.tsx
8645
- import React12, { forwardRef as forwardRef4, useState as useState2 } from "react";
8495
+ import React10, { forwardRef as forwardRef3, useState } from "react";
8646
8496
  var import_memoizerific = __toESM(require_memoizerific(), 1);
8647
- import { styled as styled29 } from "storybook/theming";
8648
- var convertToReactAriaPlacement = (0, import_memoizerific.default)(1e3)((p) => p === "left-end" ? "left bottom" : p === "right-end" ? "right bottom" : p === "left-start" ? "left top" : p === "right-start" ? "right top" : p.replace("-", " ")), Container = styled29.div({
8497
+ import { styled as styled27 } from "storybook/theming";
8498
+ var convertToReactAriaPlacement = (0, import_memoizerific.default)(1e3)((p) => p === "left-end" ? "left bottom" : p === "right-end" ? "right bottom" : p === "left-start" ? "left top" : p === "right-start" ? "right top" : p.replace("-", " ")), Container = styled27.div({
8649
8499
  width: 500,
8650
8500
  height: 500,
8651
8501
  paddingTop: 100,
8652
8502
  overflowY: "scroll",
8653
8503
  background: "#eee",
8654
8504
  position: "relative"
8655
- }), Trigger = forwardRef4((props, ref) => React12.createElement(
8505
+ }), Trigger = forwardRef3((props, ref) => React10.createElement(
8656
8506
  "button",
8657
8507
  {
8658
8508
  ...props,
@@ -8681,15 +8531,15 @@ var TooltipProvider = ({
8681
8531
  onVisibleChange,
8682
8532
  ...props
8683
8533
  }) => {
8684
- let placement = convertToReactAriaPlacement(placementProp), child = React13.Children.only(children);
8534
+ let placement = convertToReactAriaPlacement(placementProp), child = React11.Children.only(children);
8685
8535
  startOpen !== void 0 && deprecate("The `startOpen` prop is deprecated. Please use `defaultVisible` instead.");
8686
- let [isOpen, setIsOpen] = useState3(defaultVisible ?? startOpen ?? !1), onOpenChange = useCallback3(
8536
+ let [isOpen, setIsOpen] = useState2(defaultVisible ?? startOpen ?? !1), onOpenChange = useCallback2(
8687
8537
  (isOpen2) => {
8688
8538
  setIsOpen(isOpen2), onVisibleChange?.(isOpen2);
8689
8539
  },
8690
8540
  [onVisibleChange]
8691
8541
  );
8692
- return React13.createElement(
8542
+ return React11.createElement(
8693
8543
  $4e3b923658d69c60$export$8c610744efcf8a1d,
8694
8544
  {
8695
8545
  delay: delayShow,
@@ -8699,8 +8549,8 @@ var TooltipProvider = ({
8699
8549
  trigger: triggerOnFocusOnly ? "focus" : void 0,
8700
8550
  ...props
8701
8551
  },
8702
- React13.createElement($f645667febf57a63$export$35a3bebf7ef2d934, null, React13.cloneElement(child, { "aria-describedby": null })),
8703
- React13.createElement(
8552
+ React11.createElement($f645667febf57a63$export$35a3bebf7ef2d934, null, React11.cloneElement(child, { "aria-describedby": null })),
8553
+ React11.createElement(
8704
8554
  $4e3b923658d69c60$export$28c660c63b792dea,
8705
8555
  {
8706
8556
  "data-testid": "tooltip",
@@ -8722,32 +8572,32 @@ var InteractiveTooltipWrapper = ({ children, disableAllTooltips, shortcut, toolt
8722
8572
  if (!(!tooltip && (!shortcut || !hasShortcuts)))
8723
8573
  return [tooltip, shortcut && hasShortcuts && `[${shortcutToHumanString(shortcut)}]`].filter(Boolean).join(" ");
8724
8574
  }, [shortcut, tooltip]);
8725
- return tooltipLabel ? React14.createElement(
8575
+ return tooltipLabel ? React12.createElement(
8726
8576
  TooltipProvider,
8727
8577
  {
8728
8578
  placement: "top",
8729
- tooltip: React14.createElement(TooltipNote, { note: tooltipLabel }),
8579
+ tooltip: React12.createElement(TooltipNote, { note: tooltipLabel }),
8730
8580
  visible: disableAllTooltips ? !1 : void 0
8731
8581
  },
8732
8582
  children
8733
- ) : React14.createElement(React14.Fragment, null, children);
8583
+ ) : React12.createElement(React12.Fragment, null, children);
8734
8584
  };
8735
8585
  InteractiveTooltipWrapper.displayName = "InteractiveTooltipWrapper";
8736
8586
 
8737
8587
  // src/components/components/Button/helpers/useAriaDescription.tsx
8738
- import React15 from "react";
8588
+ import React13 from "react";
8739
8589
  function useAriaDescription(description = "") {
8740
8590
  let describedbyId = description.toLowerCase().trim().replace(/\s+/g, "-");
8741
8591
  return {
8742
8592
  ariaDescriptionAttrs: {
8743
8593
  "aria-describedby": description ? describedbyId : void 0
8744
8594
  },
8745
- AriaDescription: () => description ? React15.createElement("span", { id: describedbyId, hidden: !0 }, description) : null
8595
+ AriaDescription: () => description ? React13.createElement("span", { id: describedbyId, hidden: !0 }, description) : null
8746
8596
  };
8747
8597
  }
8748
8598
 
8749
8599
  // src/components/components/Button/Button.tsx
8750
- var Button = forwardRef5(
8600
+ var Button = forwardRef4(
8751
8601
  ({
8752
8602
  as = "button",
8753
8603
  asChild = !1,
@@ -8766,30 +8616,31 @@ var Button = forwardRef5(
8766
8616
  disableAllTooltips = !1,
8767
8617
  ...props
8768
8618
  }, ref) => {
8769
- let Comp2 = asChild ? Slot : as;
8770
- (ariaLabel === void 0 || ariaLabel === "") && deprecate2(
8619
+ let Comp2 = asChild ? Slot : as, deprecated;
8620
+ !readOnly && (ariaLabel === void 0 || ariaLabel === "") && (deprecated = "ariaLabel", deprecate2(
8771
8621
  `The 'ariaLabel' prop on 'Button' will become mandatory in Storybook 11. Buttons with text content should set 'ariaLabel={false}' to indicate that they are accessible as-is. Buttons without text content must provide a meaningful 'ariaLabel' for accessibility. The button content is: ${props.children}.`
8772
- ), active !== void 0 && deprecate2(
8622
+ )), active !== void 0 && (deprecated = "active", deprecate2(
8773
8623
  "The `active` prop on `Button` is deprecated and will be removed in Storybook 11. Use specialized components like `ToggleButton` or `Select` instead."
8774
- );
8775
- let { ariaDescriptionAttrs, AriaDescription } = useAriaDescription(ariaDescription), shortcutAttribute = useMemo2(() => shortcut ? shortcutToAriaKeyshortcuts(shortcut) : void 0, [shortcut]), [isAnimating, setIsAnimating] = useState4(!1), handleClick = (event) => {
8624
+ ));
8625
+ let { ariaDescriptionAttrs, AriaDescription } = useAriaDescription(ariaDescription), shortcutAttribute = useMemo2(() => shortcut ? shortcutToAriaKeyshortcuts(shortcut) : void 0, [shortcut]), [isAnimating, setIsAnimating] = useState3(!1), handleClick = (event) => {
8776
8626
  onClick && onClick(event), animation !== "none" && setIsAnimating(!0);
8777
8627
  };
8778
- return useEffect2(() => {
8628
+ return useEffect(() => {
8779
8629
  let timer = setTimeout(() => {
8780
8630
  isAnimating && setIsAnimating(!1);
8781
8631
  }, 1e3);
8782
8632
  return () => clearTimeout(timer);
8783
- }, [isAnimating]), React16.createElement(React16.Fragment, null, React16.createElement(
8633
+ }, [isAnimating]), React14.createElement(React14.Fragment, null, React14.createElement(
8784
8634
  InteractiveTooltipWrapper,
8785
8635
  {
8786
8636
  disableAllTooltips,
8787
8637
  shortcut,
8788
8638
  tooltip: tooltip || (ariaLabel !== !1 ? ariaLabel : void 0)
8789
8639
  },
8790
- React16.createElement(
8640
+ React14.createElement(
8791
8641
  StyledButton,
8792
8642
  {
8643
+ "data-deprecated": deprecated,
8793
8644
  as: Comp2,
8794
8645
  ref,
8795
8646
  variant,
@@ -8807,11 +8658,11 @@ var Button = forwardRef5(
8807
8658
  ...props
8808
8659
  }
8809
8660
  )
8810
- ), React16.createElement(AriaDescription, null));
8661
+ ), React14.createElement(AriaDescription, null));
8811
8662
  }
8812
8663
  );
8813
8664
  Button.displayName = "Button";
8814
- var StyledButton = styled30("button", {
8665
+ var StyledButton = styled28("button", {
8815
8666
  shouldForwardProp: (prop) => isPropValid(prop)
8816
8667
  })(
8817
8668
  ({
@@ -8884,13 +8735,39 @@ var StyledButton = styled30("button", {
8884
8735
  animation: animating && animation !== "none" ? `${theme.animation[animation]} 1000ms ease-out` : ""
8885
8736
  }
8886
8737
  })
8887
- ), IconButton = forwardRef5((props, ref) => (deprecate2(
8738
+ ), IconButton = forwardRef4((props, ref) => (deprecate2(
8888
8739
  "`IconButton` is deprecated and will be removed in Storybook 11, use `Button` instead."
8889
- ), React16.createElement(Button, { ref, ...props })));
8740
+ ), React14.createElement(Button, { ref, ...props, "data-deprecated": "IconButton" })));
8890
8741
  IconButton.displayName = "IconButton";
8891
8742
 
8892
- // src/components/components/Listbox/Listbox.tsx
8893
- var ListboxItem = styled31.div(
8743
+ // src/components/components/ToggleButton/ToggleButton.tsx
8744
+ import React15, { forwardRef as forwardRef5 } from "react";
8745
+ import { styled as styled29 } from "storybook/theming";
8746
+ var ToggleButton = forwardRef5(
8747
+ ({ pressed, ...props }, ref) => React15.createElement(StyledToggle, { role: "switch", "aria-checked": pressed, ref, pressed, ...props })
8748
+ );
8749
+ ToggleButton.displayName = "ToggleButton";
8750
+ var StyledToggle = styled29(Button)(
8751
+ ({ theme, variant = "outline", pressed }) => ({
8752
+ ...pressed ? {
8753
+ ...variant === "solid" ? {
8754
+ background: theme.base === "lighten" ? curriedDarken$1(0.1, theme.color.secondary) : curriedDarken$1(0.2, theme.color.secondary)
8755
+ } : {},
8756
+ ...variant === "outline" ? {
8757
+ background: curriedTransparentize$1(0.94, theme.barSelectedColor),
8758
+ boxShadow: `${theme.barSelectedColor} 0 0 0 1px inset`,
8759
+ color: theme.barSelectedColor
8760
+ } : {},
8761
+ ...variant === "ghost" ? {
8762
+ background: curriedTransparentize$1(0.93, theme.barSelectedColor),
8763
+ color: theme.base === "light" ? curriedDarken$1(0.1, theme.color.secondary) : theme.color.secondary
8764
+ } : {}
8765
+ } : {}
8766
+ })
8767
+ );
8768
+
8769
+ // src/components/components/ActionList/ActionList.tsx
8770
+ var ActionListItem = styled30.li(
8894
8771
  ({ active, theme }) => ({
8895
8772
  display: "flex",
8896
8773
  alignItems: "center",
@@ -8902,6 +8779,10 @@ var ListboxItem = styled31.div(
8902
8779
  fontWeight: active ? theme.typography.weight.bold : theme.typography.weight.regular,
8903
8780
  color: active ? theme.color.secondary : theme.color.defaultText,
8904
8781
  "--listbox-item-muted-color": active ? theme.color.secondary : theme.color.mediumdark,
8782
+ "&:not(:hover, :has(:focus-visible)) svg + input": {
8783
+ position: "absolute",
8784
+ opacity: 0
8785
+ },
8905
8786
  "@supports (interpolate-size: allow-keywords)": {
8906
8787
  interpolateSize: "allow-keywords",
8907
8788
  transition: "all var(--transition-duration, 0.2s)",
@@ -8929,7 +8810,7 @@ var ListboxItem = styled31.div(
8929
8810
  };
8930
8811
  }
8931
8812
  }
8932
- ), ListboxHoverItem = styled31(ListboxItem)(({ targetId }) => ({
8813
+ ), ActionListHoverItem = styled30(ActionListItem)(({ targetId }) => ({
8933
8814
  gap: 0,
8934
8815
  [`& [data-target-id="${targetId}"]`]: {
8935
8816
  inlineSize: "auto",
@@ -8937,7 +8818,8 @@ var ListboxItem = styled31.div(
8937
8818
  opacity: 1,
8938
8819
  "@supports (interpolate-size: allow-keywords)": {
8939
8820
  interpolateSize: "allow-keywords",
8940
- transition: "all var(--transition-duration, 0.2s)"
8821
+ transitionProperty: "inline-size, margin-left, opacity, padding-inline",
8822
+ transitionDuration: "var(--transition-duration, 0.2s)"
8941
8823
  }
8942
8824
  },
8943
8825
  [`&:not(:hover, :has(:focus-visible)) [data-target-id="${targetId}"]`]: {
@@ -8946,11 +8828,25 @@ var ListboxItem = styled31.div(
8946
8828
  opacity: 0,
8947
8829
  paddingInline: 0
8948
8830
  }
8949
- })), ListboxButton = forwardRef6(
8831
+ })), StyledButton2 = styled30(Button)({
8832
+ "&:focus-visible": {
8833
+ // Prevent focus outline from being cut off by overflow: hidden
8834
+ outlineOffset: -2
8835
+ }
8836
+ }), StyledToggleButton = styled30(ToggleButton)({
8837
+ "&:focus-visible": {
8838
+ // Prevent focus outline from being cut off by overflow: hidden
8839
+ outlineOffset: -2
8840
+ }
8841
+ }), ActionListButton = forwardRef6(
8842
+ function({ padding = "small", size = "medium", variant = "ghost", ...props }, ref) {
8843
+ return React16.createElement(StyledButton2, { ...props, variant, padding, size, ref });
8844
+ }
8845
+ ), ActionListToggle = forwardRef6(
8950
8846
  function({ padding = "small", size = "medium", variant = "ghost", ...props }, ref) {
8951
- return React17.createElement(Button, { ...props, variant, padding, size, ref });
8847
+ return React16.createElement(StyledToggleButton, { ...props, variant, padding, size, ref });
8952
8848
  }
8953
- ), ListboxAction = styled31(ListboxButton)({
8849
+ ), ActionListAction = styled30(ActionListButton)(({ theme }) => ({
8954
8850
  flex: "0 1 100%",
8955
8851
  textAlign: "start",
8956
8852
  justifyContent: "space-between",
@@ -8958,8 +8854,15 @@ var ListboxItem = styled31.div(
8958
8854
  color: "inherit",
8959
8855
  "&:hover": {
8960
8856
  color: "inherit"
8857
+ },
8858
+ "& input:enabled:focus-visible": {
8859
+ outline: "none"
8860
+ },
8861
+ "&:has(input:focus-visible)": {
8862
+ outline: `2px solid ${theme.color.secondary}`,
8863
+ outlineOffset: -2
8961
8864
  }
8962
- }), ListboxText = styled31.div({
8865
+ })), ActionListLink = (props) => React16.createElement(ActionListAction, { as: "a", ...props }), ActionListText = styled30.div({
8963
8866
  display: "flex",
8964
8867
  alignItems: "center",
8965
8868
  gap: 8,
@@ -8984,7 +8887,7 @@ var ListboxItem = styled31.div(
8984
8887
  "button > &:last-child": {
8985
8888
  paddingRight: 0
8986
8889
  }
8987
- }), ListboxIcon = styled31.div({
8890
+ }), ActionListIcon = styled30.div({
8988
8891
  display: "flex",
8989
8892
  alignItems: "center",
8990
8893
  justifyContent: "center",
@@ -8992,8 +8895,8 @@ var ListboxItem = styled31.div(
8992
8895
  width: 14,
8993
8896
  height: 14,
8994
8897
  color: "var(--listbox-item-muted-color)"
8995
- }), Listbox = Object.assign(
8996
- styled31.div(({ theme, onClick }) => ({
8898
+ }), ActionList = Object.assign(
8899
+ styled30.ul(({ theme, onClick }) => ({
8997
8900
  listStyle: "none",
8998
8901
  margin: 0,
8999
8902
  padding: 4,
@@ -9003,17 +8906,170 @@ var ListboxItem = styled31.div(
9003
8906
  }
9004
8907
  })),
9005
8908
  {
9006
- Item: ListboxItem,
9007
- HoverItem: ListboxHoverItem,
9008
- Button: ListboxButton,
9009
- Action: ListboxAction,
9010
- Text: ListboxText,
9011
- Icon: ListboxIcon
8909
+ Item: ActionListItem,
8910
+ HoverItem: ActionListHoverItem,
8911
+ Button: ActionListButton,
8912
+ Toggle: ActionListToggle,
8913
+ Action: ActionListAction,
8914
+ Link: ActionListLink,
8915
+ Text: ActionListText,
8916
+ Icon: ActionListIcon
8917
+ }
8918
+ );
8919
+
8920
+ // src/components/components/Collapsible/Collapsible.tsx
8921
+ import React17, {
8922
+ useCallback as useCallback3,
8923
+ useEffect as useEffect2,
8924
+ useState as useState4
8925
+ } from "react";
8926
+ import { styled as styled31 } from "storybook/theming";
8927
+ var CollapsibleContent = styled31.div(({ collapsed = !1 }) => ({
8928
+ blockSize: collapsed ? 0 : "auto",
8929
+ contentVisibility: collapsed ? "hidden" : "visible",
8930
+ transform: collapsed ? "translateY(-10px)" : "translateY(0)",
8931
+ opacity: collapsed ? 0 : 1,
8932
+ overflow: "hidden",
8933
+ "@supports (interpolate-size: allow-keywords)": {
8934
+ interpolateSize: "allow-keywords",
8935
+ transition: "all var(--transition-duration, 0.2s)",
8936
+ transitionBehavior: "allow-discrete"
8937
+ },
8938
+ "@media (prefers-reduced-motion: reduce)": {
8939
+ transition: "none"
8940
+ }
8941
+ })), Collapsible = Object.assign(
8942
+ function({
8943
+ children,
8944
+ summary,
8945
+ collapsed,
8946
+ disabled,
8947
+ state: providedState,
8948
+ ...props
8949
+ }) {
8950
+ let internalState = useCollapsible(collapsed, disabled), state = providedState || internalState;
8951
+ return React17.createElement(React17.Fragment, null, typeof summary == "function" ? summary(state) : summary, React17.createElement(
8952
+ CollapsibleContent,
8953
+ {
8954
+ ...props,
8955
+ id: state.contentId,
8956
+ collapsed: state.isCollapsed,
8957
+ "aria-hidden": state.isCollapsed
8958
+ },
8959
+ typeof children == "function" ? children(state) : children
8960
+ ));
8961
+ },
8962
+ {
8963
+ Content: CollapsibleContent
8964
+ }
8965
+ ), useCollapsible = (collapsed, disabled) => {
8966
+ let [isCollapsed, setCollapsed] = useState4(!!collapsed);
8967
+ useEffect2(() => {
8968
+ collapsed !== void 0 && setCollapsed(collapsed);
8969
+ }, [collapsed]);
8970
+ let toggleCollapsed = useCallback3(
8971
+ (event) => {
8972
+ event?.stopPropagation(), disabled || setCollapsed((value) => !value);
8973
+ },
8974
+ [disabled]
8975
+ ), contentId = $bdb11010cef70236$export$f680877a34711e37();
8976
+ return {
8977
+ contentId,
8978
+ isCollapsed,
8979
+ isDisabled: !!disabled,
8980
+ setCollapsed,
8981
+ toggleCollapsed,
8982
+ toggleProps: {
8983
+ disabled,
8984
+ onClick: toggleCollapsed,
8985
+ "aria-controls": contentId,
8986
+ "aria-expanded": !isCollapsed
8987
+ }
8988
+ };
8989
+ };
8990
+
8991
+ // src/components/components/Card/Card.tsx
8992
+ import React18, { forwardRef as forwardRef7 } from "react";
8993
+ import { keyframes, styled as styled32 } from "storybook/theming";
8994
+ var fadeInOut = keyframes({
8995
+ "0%": { opacity: 0 },
8996
+ "5%": { opacity: 1 },
8997
+ "25%": { opacity: 1 },
8998
+ "30%": { opacity: 0 }
8999
+ }), spin = keyframes({
9000
+ "0%": { transform: "rotate(0deg)" },
9001
+ "10%": { transform: "rotate(10deg)" },
9002
+ "40%": { transform: "rotate(170deg)" },
9003
+ "50%": { transform: "rotate(180deg)" },
9004
+ "60%": { transform: "rotate(190deg)" },
9005
+ "90%": { transform: "rotate(350deg)" },
9006
+ "100%": { transform: "rotate(360deg)" }
9007
+ }), slide = keyframes({
9008
+ to: {
9009
+ backgroundPositionX: "36%"
9010
+ }
9011
+ }), CardContent = styled32.div(({ theme }) => ({
9012
+ borderRadius: theme.appBorderRadius,
9013
+ backgroundColor: theme.background.content,
9014
+ position: "relative"
9015
+ })), CardOutline = styled32.div(({ animation = "none", color: color4, theme }) => ({
9016
+ position: "relative",
9017
+ width: "100%",
9018
+ padding: 1,
9019
+ overflow: "hidden",
9020
+ backgroundColor: theme.background.content,
9021
+ borderRadius: theme.appBorderRadius + 1,
9022
+ boxShadow: `inset 0 0 0 1px ${animation === "none" && color4 && theme.color[color4] || theme.appBorderColor}, var(--card-box-shadow, transparent 0 0)`,
9023
+ transition: "box-shadow 1s",
9024
+ "@supports (interpolate-size: allow-keywords)": {
9025
+ interpolateSize: "allow-keywords",
9026
+ transition: "all var(--transition-duration, 0.2s), box-shadow 1s",
9027
+ transitionBehavior: "allow-discrete"
9028
+ },
9029
+ "@media (prefers-reduced-motion: reduce)": {
9030
+ transition: "box-shadow 1s"
9031
+ },
9032
+ "&:before": {
9033
+ content: '""',
9034
+ display: animation === "none" ? "none" : "block",
9035
+ position: "absolute",
9036
+ left: 0,
9037
+ top: 0,
9038
+ width: "100%",
9039
+ height: "100%",
9040
+ opacity: 1,
9041
+ ...animation === "rainbow" && {
9042
+ animation: `${slide} 10s infinite linear, ${fadeInOut} 60s infinite linear`,
9043
+ backgroundImage: "linear-gradient(45deg,rgb(234, 0, 0),rgb(255, 157, 0),rgb(255, 208, 0),rgb(0, 172, 0),rgb(0, 166, 255),rgb(181, 0, 181), rgb(234, 0, 0),rgb(255, 157, 0),rgb(255, 208, 0),rgb(0, 172, 0),rgb(0, 166, 255),rgb(181, 0, 181))",
9044
+ backgroundSize: "1000%",
9045
+ backgroundPositionX: "100%"
9046
+ },
9047
+ ...animation === "spin" && {
9048
+ left: "50%",
9049
+ top: "50%",
9050
+ marginLeft: "calc(max(100vw, 100vh) * -0.5)",
9051
+ marginTop: "calc(max(100vw, 100vh) * -0.5)",
9052
+ height: "max(100vw, 100vh)",
9053
+ width: "max(100vw, 100vh)",
9054
+ animation: `${spin} 3s linear infinite`,
9055
+ backgroundImage: color4 === "negative" ? (
9056
+ // Hardcoded colors to prevent themes from messing with them (orange+gold, secondary+seafoam)
9057
+ "conic-gradient(transparent 90deg, #FC521F 150deg, #FFAE00 210deg, transparent 270deg)"
9058
+ ) : "conic-gradient(transparent 90deg, #029CFD 150deg, #37D5D3 210deg, transparent 270deg)"
9059
+ }
9060
+ }
9061
+ })), Card = Object.assign(
9062
+ forwardRef7(function({ outlineAnimation = "none", outlineColor, ...props }, ref) {
9063
+ return React18.createElement(CardOutline, { animation: outlineAnimation, color: outlineColor, ref }, React18.createElement(CardContent, { ...props }));
9064
+ }),
9065
+ {
9066
+ Content: CardContent,
9067
+ Outline: CardOutline
9012
9068
  }
9013
9069
  );
9014
9070
 
9015
9071
  // src/components/components/Modal/Modal.tsx
9016
- import React19, { createContext, useEffect as useEffect4, useRef as useRef3, useState as useState8 } from "react";
9072
+ import React20, { createContext, useEffect as useEffect4, useRef as useRef3, useState as useState8 } from "react";
9017
9073
  import { deprecate as deprecate4 } from "storybook/internal/client-logger";
9018
9074
 
9019
9075
  // ../node_modules/react-transition-state/dist/esm/hooks/useTransitionState.mjs
@@ -9116,7 +9172,7 @@ __export(Modal_styled_exports, {
9116
9172
  Row: () => Row,
9117
9173
  Title: () => Title
9118
9174
  });
9119
- import React18, { useContext } from "react";
9175
+ import React19, { useContext } from "react";
9120
9176
  import { deprecate as deprecate3 } from "storybook/internal/client-logger";
9121
9177
  import { CrossIcon } from "@storybook/icons";
9122
9178
 
@@ -9149,7 +9205,7 @@ var $514c0188e459b4c0$export$9afb8bc826b033ea = $1B3Dx$createContext({}), $514c0
9149
9205
  });
9150
9206
 
9151
9207
  // src/components/components/Modal/Modal.styled.tsx
9152
- import { keyframes as keyframes2, styled as styled32 } from "storybook/theming";
9208
+ import { keyframes as keyframes2, styled as styled33 } from "storybook/theming";
9153
9209
  var fadeIn = keyframes2({
9154
9210
  from: { opacity: 0 },
9155
9211
  to: { opacity: 1 }
@@ -9195,7 +9251,7 @@ var fadeIn = keyframes2({
9195
9251
  opacity: 0,
9196
9252
  maxHeight: "0px"
9197
9253
  }
9198
- }), Overlay = styled32.div(({ $status, $transitionDuration }) => ({
9254
+ }), Overlay = styled33.div(({ $status, $transitionDuration }) => ({
9199
9255
  backdropFilter: "blur(24px)",
9200
9256
  background: "rgba(0, 0, 0, 0.4)",
9201
9257
  position: "absolute",
@@ -9207,7 +9263,7 @@ var fadeIn = keyframes2({
9207
9263
  animation: $status === "exiting" || $status === "preExit" ? `${fadeOut} ${$transitionDuration}ms` : `${fadeIn} ${$transitionDuration}ms`,
9208
9264
  animationFillMode: "forwards"
9209
9265
  }
9210
- })), Container2 = styled32.div(
9266
+ })), Container2 = styled33.div(
9211
9267
  ({ theme }) => ({
9212
9268
  backgroundColor: theme.background.bar,
9213
9269
  borderRadius: 6,
@@ -9253,16 +9309,16 @@ var fadeIn = keyframes2({
9253
9309
  }
9254
9310
  ), Close = ({ asChild, children, onClick, ...props }) => {
9255
9311
  let { close } = useContext(ModalContext);
9256
- if (asChild && React18.isValidElement(children)) {
9312
+ if (asChild && React19.isValidElement(children)) {
9257
9313
  let handleClick = (event) => {
9258
9314
  onClick?.(event), children.props.onClick?.(event), close?.();
9259
9315
  };
9260
- return React18.cloneElement(children, {
9316
+ return React19.cloneElement(children, {
9261
9317
  ...props,
9262
9318
  onClick: handleClick
9263
9319
  });
9264
9320
  }
9265
- return React18.createElement(
9321
+ return React19.createElement(
9266
9322
  Button,
9267
9323
  {
9268
9324
  padding: "small",
@@ -9271,20 +9327,20 @@ var fadeIn = keyframes2({
9271
9327
  shortcut: ["Escape"],
9272
9328
  onClick: close
9273
9329
  },
9274
- React18.createElement(CrossIcon, null)
9330
+ React19.createElement(CrossIcon, null)
9275
9331
  );
9276
9332
  }, Dialog = {
9277
- Close: () => (deprecate3("Modal.Dialog.Close is deprecated, please use Modal.Close instead."), React18.createElement(Close, null))
9278
- }, CloseButton = ({ ariaLabel, ...props }) => (deprecate3("Modal.CloseButton is deprecated, please use Modal.Close instead."), React18.createElement(Close, { asChild: !0 }, React18.createElement(Button, { ariaLabel: ariaLabel || "Close", ...props }, React18.createElement(CrossIcon, null)))), Content = styled32.div({
9333
+ Close: () => (deprecate3("Modal.Dialog.Close is deprecated, please use Modal.Close instead."), React19.createElement(Close, { "data-deprecated": "Modal.Dialog.Close" }))
9334
+ }, CloseButton = ({ ariaLabel, ...props }) => (deprecate3("Modal.CloseButton is deprecated, please use Modal.Close instead."), React19.createElement(Close, { asChild: !0 }, React19.createElement(Button, { ariaLabel: ariaLabel || "Close", "data-deprecated": "Modal.CloseButton", ...props }, React19.createElement(CrossIcon, null)))), Content = styled33.div({
9279
9335
  display: "flex",
9280
9336
  flexDirection: "column",
9281
9337
  margin: 16,
9282
9338
  gap: 16
9283
- }), Row = styled32.div({
9339
+ }), Row = styled33.div({
9284
9340
  display: "flex",
9285
9341
  justifyContent: "space-between",
9286
9342
  gap: 16
9287
- }), Col = styled32.div({
9343
+ }), Col = styled33.div({
9288
9344
  display: "flex",
9289
9345
  flexDirection: "column",
9290
9346
  gap: 4
@@ -9292,20 +9348,20 @@ var fadeIn = keyframes2({
9292
9348
  hasClose = !0,
9293
9349
  onClose,
9294
9350
  ...props
9295
- }) => React18.createElement(Row, null, React18.createElement(Col, { ...props }), hasClose && React18.createElement(Close, { onClick: onClose })), Title = styled32((props) => React18.createElement($5cb03073d3f54797$export$a8a3e93435678ff9, { level: 2, ...props }))(({ theme }) => ({
9351
+ }) => React19.createElement(Row, null, React19.createElement(Col, { ...props }), hasClose && React19.createElement(Close, { onClick: onClose })), Title = styled33((props) => React19.createElement($5cb03073d3f54797$export$a8a3e93435678ff9, { level: 2, ...props }))(({ theme }) => ({
9296
9352
  margin: 0,
9297
9353
  fontSize: theme.typography.size.s3,
9298
9354
  fontWeight: theme.typography.weight.bold
9299
- })), Description = styled32($514c0188e459b4c0$export$5f1af8db9871e1d6)(({ theme }) => ({
9355
+ })), Description = styled33($514c0188e459b4c0$export$5f1af8db9871e1d6)(({ theme }) => ({
9300
9356
  position: "relative",
9301
9357
  zIndex: 1,
9302
9358
  margin: 0,
9303
9359
  fontSize: theme.typography.size.s2
9304
- })), Actions = styled32.div({
9360
+ })), Actions = styled33.div({
9305
9361
  display: "flex",
9306
9362
  flexDirection: "row-reverse",
9307
9363
  gap: 8
9308
- }), ErrorWrapper = styled32.div(({ theme }) => ({
9364
+ }), ErrorWrapper = styled33.div(({ theme }) => ({
9309
9365
  maxHeight: 100,
9310
9366
  overflow: "auto",
9311
9367
  "@media (prefers-reduced-motion: no-preference)": {
@@ -9321,7 +9377,7 @@ var fadeIn = keyframes2({
9321
9377
  })), Error2 = ({
9322
9378
  children,
9323
9379
  ...props
9324
- }) => React18.createElement(ErrorWrapper, { ...props }, React18.createElement("div", null, children));
9380
+ }) => React19.createElement(ErrorWrapper, { ...props }, React19.createElement("div", null, children));
9325
9381
 
9326
9382
  // src/components/components/Modal/Modal.tsx
9327
9383
  var ModalContext = createContext({});
@@ -9344,11 +9400,12 @@ function BaseModal({
9344
9400
  variant = "dialog",
9345
9401
  ...props
9346
9402
  }) {
9347
- (ariaLabel === void 0 || ariaLabel === "") && deprecate4("The `ariaLabel` prop on `Modal` will become mandatory in Storybook 11."), onEscapeKeyDown !== void 0 && deprecate4(
9403
+ let deprecated;
9404
+ (ariaLabel === void 0 || ariaLabel === "") && (deprecated = "ariaLabel", deprecate4("The `ariaLabel` prop on `Modal` will become mandatory in Storybook 11.")), onEscapeKeyDown !== void 0 && (deprecated = "onEscapeKeyDown", deprecate4(
9348
9405
  "The `onEscapeKeyDown` prop is deprecated and will be removed in Storybook 11. Use `dismissOnEscape` instead."
9349
- ), onInteractOutside !== void 0 && deprecate4(
9406
+ )), onInteractOutside !== void 0 && (deprecated = "onInteractOutside", deprecate4(
9350
9407
  "The `onInteractOutside` prop is deprecated and will be removed in Storybook 11. Use `dismissOnInteractOutside` instead."
9351
- );
9408
+ ));
9352
9409
  let overlayRef = useRef3(null), reducedMotion = useMediaQuery("(prefers-reduced-motion: reduce)"), [{ status, isMounted }, toggle] = useTransitionState({
9353
9410
  timeout: reducedMotion ? 0 : transitionDuration,
9354
9411
  mountOnEnter: !0,
@@ -9389,16 +9446,17 @@ function BaseModal({
9389
9446
  e.key !== "Escape" ? modalProps.onKeyDown?.(e) : dismissOnEscape && (onEscapeKeyDown?.(e.nativeEvent), e.nativeEvent.defaultPrevented || close());
9390
9447
  }
9391
9448
  }), containerElement = container ?? (portalSelector ? document.querySelector(portalSelector) : void 0);
9392
- return React19.createElement($337b884510726a0d$export$c6fdb837b070b4ff, { disableFocusManagement: !0, portalContainer: containerElement || void 0 }, React19.createElement($9bf71ea28793e738$export$20e40289641fbbb6, { restoreFocus: !0, contain: !0, autoFocus: !0 }, React19.createElement(
9449
+ return React20.createElement($337b884510726a0d$export$c6fdb837b070b4ff, { disableFocusManagement: !0, portalContainer: containerElement || void 0 }, React20.createElement($9bf71ea28793e738$export$20e40289641fbbb6, { restoreFocus: !0, contain: !0, autoFocus: !0 }, React20.createElement(
9393
9450
  Overlay,
9394
9451
  {
9395
9452
  $status: status,
9396
9453
  $transitionDuration: transitionDuration,
9397
9454
  ...underlayProps
9398
9455
  }
9399
- ), React19.createElement("div", { role: "dialog", "aria-label": ariaLabel, ref: overlayRef, ...finalModalProps }, React19.createElement(ModalContext.Provider, { value: { close } }, React19.createElement(
9456
+ ), React20.createElement("div", { role: "dialog", "aria-label": ariaLabel, ref: overlayRef, ...finalModalProps }, React20.createElement(ModalContext.Provider, { value: { close } }, React20.createElement(
9400
9457
  Container2,
9401
9458
  {
9459
+ "data-deprecated": deprecated,
9402
9460
  $variant: variant,
9403
9461
  $status: status,
9404
9462
  $transitionDuration: transitionDuration,
@@ -9412,7 +9470,7 @@ function BaseModal({
9412
9470
  }
9413
9471
  var Modal = Object.assign(BaseModal, Modal_styled_exports), ModalDecorator = (Story, { args }) => {
9414
9472
  let [container, setContainer] = useState8(null);
9415
- return args.container || args.portalSelector ? React19.createElement(Story, { args }) : React19.createElement(React19.Fragment, null, React19.createElement($96b38030c423d352$export$78efe591171d7d45, { getContainer: () => container }, React19.createElement(Story, { args })), React19.createElement(
9473
+ return args.container || args.portalSelector ? React20.createElement(Story, { args }) : React20.createElement(React20.Fragment, null, React20.createElement($96b38030c423d352$export$78efe591171d7d45, { getContainer: () => container }, React20.createElement(Story, { args })), React20.createElement(
9416
9474
  "div",
9417
9475
  {
9418
9476
  ref: (element) => setContainer(element ?? null),
@@ -9427,9 +9485,9 @@ var Modal = Object.assign(BaseModal, Modal_styled_exports), ModalDecorator = (St
9427
9485
  };
9428
9486
 
9429
9487
  // src/components/components/spaced/Spaced.tsx
9430
- import React20 from "react";
9431
- import { ignoreSsrWarning, styled as styled33 } from "storybook/theming";
9432
- var toNumber = (input) => typeof input == "number" ? input : Number(input), Container3 = styled33.div(
9488
+ import React21 from "react";
9489
+ import { ignoreSsrWarning, styled as styled34 } from "storybook/theming";
9490
+ var toNumber = (input) => typeof input == "number" ? input : Number(input), Container3 = styled34.div(
9433
9491
  ({ theme, col, row = 1 }) => col ? {
9434
9492
  display: "inline-block",
9435
9493
  verticalAlign: "inherit",
@@ -9466,27 +9524,27 @@ var toNumber = (input) => typeof input == "number" ? input : Number(input), Cont
9466
9524
  }
9467
9525
  ), Spaced = ({ col, row, outer, children, ...rest }) => {
9468
9526
  let outerAmount = toNumber(typeof outer == "number" || !outer ? outer : col || row);
9469
- return React20.createElement(Container3, { col, row, outer: outerAmount, ...rest }, children);
9527
+ return React21.createElement(Container3, { col, row, outer: outerAmount, ...rest }, children);
9470
9528
  };
9471
9529
 
9472
9530
  // src/components/components/placeholder/placeholder.tsx
9473
- import React21, { Children as Children3 } from "react";
9474
- import { styled as styled34 } from "storybook/theming";
9475
- var Title2 = styled34.div(({ theme }) => ({
9531
+ import React22, { Children as Children3 } from "react";
9532
+ import { styled as styled35 } from "storybook/theming";
9533
+ var Title2 = styled35.div(({ theme }) => ({
9476
9534
  fontWeight: theme.typography.weight.bold
9477
- })), Desc = styled34.div(), Message = styled34.div(({ theme }) => ({
9535
+ })), Desc = styled35.div(), Message = styled35.div(({ theme }) => ({
9478
9536
  padding: 30,
9479
9537
  textAlign: "center",
9480
9538
  color: theme.color.defaultText,
9481
9539
  fontSize: theme.typography.size.s2 - 1
9482
9540
  })), Placeholder = ({ children, ...props }) => {
9483
9541
  let [title, desc] = Children3.toArray(children);
9484
- return React21.createElement(Message, { ...props }, React21.createElement(Title2, null, title), desc && React21.createElement(Desc, null, desc));
9542
+ return React22.createElement(Message, { ...props }, React22.createElement(Title2, null, title), desc && React22.createElement(Desc, null, desc));
9485
9543
  };
9486
9544
 
9487
9545
  // src/components/components/Zoom/ZoomElement.tsx
9488
- import React22, { useCallback as useCallback7, useEffect as useEffect6, useRef as useRef5, useState as useState10 } from "react";
9489
- import { styled as styled35 } from "storybook/theming";
9546
+ import React23, { useCallback as useCallback7, useEffect as useEffect6, useRef as useRef5, useState as useState10 } from "react";
9547
+ import { styled as styled36 } from "storybook/theming";
9490
9548
 
9491
9549
  // ../node_modules/use-resize-observer/dist/bundle.esm.js
9492
9550
  import { useRef as useRef4, useEffect as useEffect5, useCallback as useCallback6, useState as useState9, useMemo as useMemo3 } from "react";
@@ -9569,7 +9627,7 @@ function useResizeObserver(opts) {
9569
9627
  }
9570
9628
 
9571
9629
  // src/components/components/Zoom/ZoomElement.tsx
9572
- var ZoomElementWrapper = styled35.div(
9630
+ var ZoomElementWrapper = styled36.div(
9573
9631
  ({ centered = !1, scale = 1, elementHeight }) => ({
9574
9632
  height: elementHeight || "auto",
9575
9633
  transformOrigin: centered ? "center top" : "left top",
@@ -9588,11 +9646,11 @@ function ZoomElement({ centered, scale, children }) {
9588
9646
  }, [scale]), useResizeObserver({
9589
9647
  ref: componentWrapperRef,
9590
9648
  onResize
9591
- }), React22.createElement(ZoomElementWrapper, { centered, scale, elementHeight }, React22.createElement("div", { ref: componentWrapperRef, className: "innerZoomElementWrapper" }, children));
9649
+ }), React23.createElement(ZoomElementWrapper, { centered, scale, elementHeight }, React23.createElement("div", { ref: componentWrapperRef, className: "innerZoomElementWrapper" }, children));
9592
9650
  }
9593
9651
 
9594
9652
  // src/components/components/Zoom/ZoomIFrame.tsx
9595
- import React23, { Component } from "react";
9653
+ import React24, { Component } from "react";
9596
9654
  var ZoomIFrame = class extends Component {
9597
9655
  constructor() {
9598
9656
  super(...arguments);
@@ -9629,7 +9687,7 @@ var ZoomIFrame = class extends Component {
9629
9687
  }
9630
9688
  render() {
9631
9689
  let { children } = this.props;
9632
- return React23.createElement(React23.Fragment, null, children);
9690
+ return React24.createElement(React24.Fragment, null, children);
9633
9691
  }
9634
9692
  };
9635
9693
 
@@ -9640,28 +9698,28 @@ var Zoom = {
9640
9698
  };
9641
9699
 
9642
9700
  // src/components/components/ErrorFormatter/ErrorFormatter.tsx
9643
- import React24, { Fragment as Fragment3 } from "react";
9701
+ import React25, { Fragment as Fragment3 } from "react";
9644
9702
  import { global } from "@storybook/global";
9645
- import { styled as styled36 } from "storybook/theming";
9646
- var { document: document2 } = global, ErrorName = styled36.strong(({ theme }) => ({
9703
+ import { styled as styled37 } from "storybook/theming";
9704
+ var { document: document2 } = global, ErrorName = styled37.strong(({ theme }) => ({
9647
9705
  color: theme.color.orange
9648
- })), ErrorImportant = styled36.strong(({ theme }) => ({
9706
+ })), ErrorImportant = styled37.strong(({ theme }) => ({
9649
9707
  color: theme.color.ancillary,
9650
9708
  textDecoration: "underline"
9651
- })), ErrorDetail = styled36.em(({ theme }) => ({
9709
+ })), ErrorDetail = styled37.em(({ theme }) => ({
9652
9710
  color: theme.textMutedColor
9653
9711
  })), firstLineRegex = /(Error): (.*)\n/, linesRegexChromium = /at (?:(.*) )?\(?(.+)\)?/, linesRegexFirefox = /([^@]+)?(?:\/<)?@(.+)?/, linesRegexSafari = /([^@]+)?@(.+)?/, ErrorFormatter = ({ error }) => {
9654
9712
  if (!error)
9655
- return React24.createElement(Fragment3, null, "This error has no stack or message");
9713
+ return React25.createElement(Fragment3, null, "This error has no stack or message");
9656
9714
  if (!error.stack)
9657
- return React24.createElement(Fragment3, null, error.message || "This error has no stack or message");
9715
+ return React25.createElement(Fragment3, null, error.message || "This error has no stack or message");
9658
9716
  let input = error.stack.toString();
9659
9717
  input && error.message && !input.includes(error.message) && (input = `Error: ${error.message}
9660
9718
 
9661
9719
  ${input}`);
9662
9720
  let match = input.match(firstLineRegex);
9663
9721
  if (!match)
9664
- return React24.createElement(Fragment3, null, input);
9722
+ return React25.createElement(Fragment3, null, input);
9665
9723
  let [, type, name] = match, rawLines = input.split(/\n/).slice(1), [, ...lines] = rawLines.map((line) => {
9666
9724
  let result = line.match(linesRegexChromium) || line.match(linesRegexFirefox) || line.match(linesRegexSafari);
9667
9725
  return result ? {
@@ -9669,37 +9727,11 @@ ${input}`);
9669
9727
  location: result[2].replace(document2.location.origin, "")
9670
9728
  } : null;
9671
9729
  }).filter(Boolean);
9672
- return React24.createElement(Fragment3, null, React24.createElement("span", null, type), ": ", React24.createElement(ErrorName, null, name), React24.createElement("br", null), lines.map(
9673
- (l, i) => l?.name ? React24.createElement(Fragment3, { key: i }, " ", "at ", React24.createElement(ErrorImportant, null, l.name), " (", React24.createElement(ErrorDetail, null, l.location), ")", React24.createElement("br", null)) : React24.createElement(Fragment3, { key: i }, " ", "at ", React24.createElement(ErrorDetail, null, l?.location), React24.createElement("br", null))
9730
+ return React25.createElement(Fragment3, null, React25.createElement("span", null, type), ": ", React25.createElement(ErrorName, null, name), React25.createElement("br", null), lines.map(
9731
+ (l, i) => l?.name ? React25.createElement(Fragment3, { key: i }, " ", "at ", React25.createElement(ErrorImportant, null, l.name), " (", React25.createElement(ErrorDetail, null, l.location), ")", React25.createElement("br", null)) : React25.createElement(Fragment3, { key: i }, " ", "at ", React25.createElement(ErrorDetail, null, l?.location), React25.createElement("br", null))
9674
9732
  ));
9675
9733
  };
9676
9734
 
9677
- // src/components/components/ToggleButton/ToggleButton.tsx
9678
- import React25, { forwardRef as forwardRef7 } from "react";
9679
- import { styled as styled37 } from "storybook/theming";
9680
- var ToggleButton = forwardRef7(
9681
- ({ pressed, ...props }, ref) => React25.createElement(StyledToggle, { role: "switch", "aria-checked": pressed, ref, pressed, ...props })
9682
- );
9683
- ToggleButton.displayName = "ToggleButton";
9684
- var StyledToggle = styled37(Button)(
9685
- ({ theme, variant = "outline", pressed }) => ({
9686
- ...pressed ? {
9687
- ...variant === "solid" ? {
9688
- background: theme.base === "lighten" ? curriedDarken$1(0.1, theme.color.secondary) : curriedDarken$1(0.2, theme.color.secondary)
9689
- } : {},
9690
- ...variant === "outline" ? {
9691
- background: curriedTransparentize$1(0.94, theme.barSelectedColor),
9692
- boxShadow: `${theme.barSelectedColor} 0 0 0 1px inset`,
9693
- color: theme.barSelectedColor
9694
- } : {},
9695
- ...variant === "ghost" ? {
9696
- background: curriedTransparentize$1(0.93, theme.barSelectedColor),
9697
- color: theme.base === "light" ? curriedDarken$1(0.1, theme.color.secondary) : theme.color.secondary
9698
- } : {}
9699
- } : {}
9700
- })
9701
- );
9702
-
9703
9735
  // src/components/components/Select/Select.tsx
9704
9736
  import React37, { forwardRef as forwardRef12, useCallback as useCallback8, useEffect as useEffect7, useMemo as useMemo4, useRef as useRef7, useState as useState11 } from "react";
9705
9737
  import { RefreshIcon } from "@storybook/icons";
@@ -10375,7 +10407,28 @@ SelectOption.displayName = "SelectOption";
10375
10407
 
10376
10408
  // src/components/components/Select/helpers.tsx
10377
10409
  import { styled as styled47 } from "storybook/theming";
10378
- var PAGE_STEP_SIZE = 5, Listbox2 = styled47("ul")({
10410
+ var PAGE_STEP_SIZE = 5, UNDEFINED_VALUE = Symbol.for("undefined");
10411
+ function isLiteralValue(value) {
10412
+ return value == null || typeof value == "string" || typeof value == "number" || typeof value == "boolean" || typeof value == "symbol";
10413
+ }
10414
+ function optionToInternal(option) {
10415
+ return {
10416
+ ...option,
10417
+ type: "option",
10418
+ value: externalToValue(option.value)
10419
+ };
10420
+ }
10421
+ function optionOrResetToInternal(option) {
10422
+ return "type" in option && option.type === "reset" ? option : optionToInternal(option);
10423
+ }
10424
+ function valueToExternal(value) {
10425
+ if (value !== UNDEFINED_VALUE)
10426
+ return value;
10427
+ }
10428
+ function externalToValue(value) {
10429
+ return value === void 0 ? UNDEFINED_VALUE : value;
10430
+ }
10431
+ var Listbox = styled47("ul")({
10379
10432
  minWidth: 180,
10380
10433
  height: "100%",
10381
10434
  borderRadius: 6,
@@ -10387,7 +10440,7 @@ var PAGE_STEP_SIZE = 5, Listbox2 = styled47("ul")({
10387
10440
 
10388
10441
  // src/components/components/Select/Select.tsx
10389
10442
  function valueToId(parentId, { value }) {
10390
- return `${parentId}-opt-${value ?? "sb-reset"}`;
10443
+ return `${parentId}-opt-${String(value) ?? "sb-reset"}`;
10391
10444
  }
10392
10445
  var SelectedOptionCount = styled48.span(({ theme }) => ({
10393
10446
  appearance: "none",
@@ -10395,9 +10448,9 @@ var SelectedOptionCount = styled48.span(({ theme }) => ({
10395
10448
  fontSize: 12
10396
10449
  }));
10397
10450
  function setSelectedFromDefault(options, defaultOptions) {
10398
- return defaultOptions ? typeof defaultOptions == "string" ? options.filter((opt) => opt.value === defaultOptions) : options.filter((opt) => defaultOptions.some((def) => opt.value === def)) : [];
10451
+ return defaultOptions === void 0 ? [] : isLiteralValue(defaultOptions) ? options.filter((opt) => opt.value === defaultOptions).map(optionToInternal) : options.filter((opt) => defaultOptions.some((def) => opt.value === def)).map(optionToInternal);
10399
10452
  }
10400
- var StyledButton2 = styled48(Button)(
10453
+ var StyledButton3 = styled48(Button)(
10401
10454
  ({ $isOpen: isOpen, $hasSelection: hasSelection, theme }) => isOpen || hasSelection ? {
10402
10455
  boxShadow: "none",
10403
10456
  background: curriedTransparentize$1(0.93, theme.barSelectedColor),
@@ -10468,14 +10521,15 @@ var StyledButton2 = styled48(Button)(
10468
10521
  setSelectedFromDefault(calleeOptions, defaultOptions)
10469
10522
  ), handleSelectOption = useCallback8(
10470
10523
  (option) => {
10471
- option.value === void 0 ? selectedOptions.length && (onChange?.([]), onReset?.(), setSelectedOptions([])) : setSelectedOptions(multiSelect ? (previous) => {
10524
+ option.type === "reset" ? selectedOptions.length && (onChange?.([]), onReset?.(), setSelectedOptions([])) : setSelectedOptions(multiSelect ? (previous) => {
10472
10525
  let newSelected = [];
10473
- return previous?.some((opt) => opt.value === option.value) ? (onDeselect?.(option.value), newSelected = previous?.filter((opt) => opt.value !== option.value) ?? []) : (onSelect?.(option.value), newSelected = [...previous ?? [], option]), onChange?.(newSelected.map((opt) => opt.value)), newSelected;
10474
- } : (current) => current.every((opt) => opt.value !== option.value) ? (onSelect?.(option.value), onChange?.([option.value]), [option]) : current);
10526
+ return previous?.some((opt) => opt.value === option.value) ? (onDeselect?.(valueToExternal(option.value)), newSelected = previous?.filter((opt) => opt.value !== option.value) ?? []) : (onSelect?.(valueToExternal(option.value)), newSelected = [...previous ?? [], option]), onChange?.(newSelected.map((opt) => valueToExternal(opt.value))), newSelected;
10527
+ } : (current) => current.every((opt) => opt.value !== option.value) ? (onSelect?.(valueToExternal(option.value)), onChange?.([valueToExternal(option.value)]), [option]) : current);
10475
10528
  },
10476
10529
  [multiSelect, onChange, onSelect, onDeselect, onReset, selectedOptions]
10477
10530
  ), resetOption = useMemo4(
10478
10531
  () => onReset ? {
10532
+ type: "reset",
10479
10533
  value: void 0,
10480
10534
  title: resetLabel ?? "Reset selection",
10481
10535
  icon: React37.createElement(RefreshIcon, null),
@@ -10494,7 +10548,7 @@ var StyledButton2 = styled48(Button)(
10494
10548
  void 0
10495
10549
  ), setActiveOption = useCallback8(
10496
10550
  (option) => {
10497
- setActiveOptionState(option), multiSelect || handleSelectOption(option);
10551
+ setActiveOptionState(optionOrResetToInternal(option)), multiSelect || handleSelectOption(optionOrResetToInternal(option));
10498
10552
  },
10499
10553
  [multiSelect, handleSelectOption]
10500
10554
  ), moveActiveOptionDown = useCallback8(
@@ -10503,7 +10557,9 @@ var StyledButton2 = styled48(Button)(
10503
10557
  setActiveOption(options[step === 1 ? 0 : Math.min(step, options.length - 1)]);
10504
10558
  return;
10505
10559
  }
10506
- let currentIndex = options.findIndex((option) => option.value === activeOption.value), nextIndex = currentIndex + step, newActiveOption;
10560
+ let currentIndex = options.findIndex(
10561
+ (option) => externalToValue(option.value) === activeOption.value
10562
+ ), nextIndex = currentIndex + step, newActiveOption;
10507
10563
  nextIndex >= options.length && currentIndex === options.length - 1 ? newActiveOption = options[0] : newActiveOption = options[Math.min(options.length - 1, nextIndex)], setActiveOption(newActiveOption);
10508
10564
  },
10509
10565
  [isOpen, activeOption, setActiveOption, options]
@@ -10513,7 +10569,9 @@ var StyledButton2 = styled48(Button)(
10513
10569
  setActiveOption(options[Math.max(0, options.length - step)]);
10514
10570
  return;
10515
10571
  }
10516
- let currentIndex = options.findIndex((option) => option.value === activeOption.value), nextIndex = currentIndex - step, newActiveOption;
10572
+ let currentIndex = options.findIndex(
10573
+ (option) => externalToValue(option.value) === activeOption.value
10574
+ ), nextIndex = currentIndex - step, newActiveOption;
10517
10575
  nextIndex < 0 && currentIndex === 0 ? newActiveOption = options[options.length - 1] : newActiveOption = options[Math.max(0, nextIndex)], setActiveOption(newActiveOption);
10518
10576
  },
10519
10577
  [isOpen, activeOption, setActiveOption, options]
@@ -10522,7 +10580,7 @@ var StyledButton2 = styled48(Button)(
10522
10580
  let openAt = (index3) => {
10523
10581
  e.preventDefault(), setActiveOption(options[index3]), setIsOpen(!0);
10524
10582
  }, indexOfFirstSelected = options.findIndex(
10525
- (option) => selectedOptions.some((sel) => sel.value === option.value)
10583
+ (option) => selectedOptions.some((sel) => sel.value === externalToValue(option.value))
10526
10584
  ), hasSelection = indexOfFirstSelected !== -1, listStart = resetOption && !hasSelection ? 1 : 0, listEnd = options.length - 1;
10527
10585
  e.key === "Enter" || e.key === " " ? openAt(hasSelection ? Math.min(indexOfFirstSelected, listEnd) : listStart) : e.key === "ArrowDown" ? openAt(hasSelection ? Math.min(indexOfFirstSelected + 1, listEnd) : listStart) : e.key === "ArrowUp" ? openAt(hasSelection ? Math.max(indexOfFirstSelected - 1, listStart) : listEnd) : e.key === "Home" ? openAt(listStart) : e.key === "End" ? openAt(listEnd) : e.key === "PageDown" ? openAt(
10528
10586
  Math.min((hasSelection ? indexOfFirstSelected : listStart) + PAGE_STEP_SIZE, listEnd)
@@ -10543,7 +10601,7 @@ var StyledButton2 = styled48(Button)(
10543
10601
  }, [isOpen, activeOption, id]);
10544
10602
  let finalAriaLabel = useMemo4(() => selectedOptions.length === 1 ? `${ariaLabel} ${selectedOptions[0].title}` : selectedOptions.length ? `${ariaLabel}, ${selectedOptions.length} values selected` : ariaLabel, [ariaLabel, selectedOptions]);
10545
10603
  return React37.createElement(React37.Fragment, null, React37.createElement(
10546
- StyledButton2,
10604
+ StyledButton3,
10547
10605
  {
10548
10606
  ...props,
10549
10607
  variant: "ghost",
@@ -10576,7 +10634,7 @@ var StyledButton2 = styled48(Button)(
10576
10634
  selectedOptions?.length
10577
10635
  ))
10578
10636
  ), otState.isOpen && React37.createElement(MinimalistPopover, { handleClose, triggerRef }, React37.createElement(
10579
- Listbox2,
10637
+ Listbox,
10580
10638
  {
10581
10639
  "aria-label": ariaLabel,
10582
10640
  role: "listbox",
@@ -10586,17 +10644,20 @@ var StyledButton2 = styled48(Button)(
10586
10644
  onKeyDown: handleListboxKeyDown,
10587
10645
  tabIndex: isOpen ? 0 : -1
10588
10646
  },
10589
- options.map((option) => {
10647
+ options.map((opt) => ({
10648
+ option: optionOrResetToInternal(opt),
10649
+ externalOption: opt
10650
+ })).map(({ externalOption, option }) => {
10590
10651
  let isSelected = selectedOptions?.some((sel) => sel.value === option.value) && option !== resetOption, isReset = option === resetOption;
10591
10652
  return React37.createElement(
10592
10653
  SelectOption,
10593
10654
  {
10594
- key: option.value ?? "sb-reset",
10655
+ key: option.value === void 0 ? "sb-reset" : String(option.value),
10595
10656
  title: option.title,
10596
10657
  description: option.description,
10597
10658
  icon: !isReset && multiSelect ? (
10598
10659
  // Purely decorative.
10599
- React37.createElement(Form.Checkbox, { checked: isSelected, hidden: !0 })
10660
+ React37.createElement(Form.Checkbox, { checked: isSelected, hidden: !0, role: "presentation" })
10600
10661
  ) : option.icon,
10601
10662
  id: valueToId(id, option),
10602
10663
  isActive: isOpen && activeOption?.value === option.value,
@@ -10604,7 +10665,7 @@ var StyledButton2 = styled48(Button)(
10604
10665
  onClick: () => {
10605
10666
  handleSelectOption(option), multiSelect || handleClose();
10606
10667
  },
10607
- onFocus: () => setActiveOption(option),
10668
+ onFocus: () => setActiveOption(externalOption),
10608
10669
  shouldLookDisabled: isReset && selectedOptions.length === 0 && multiSelect,
10609
10670
  onKeyDown: (e) => {
10610
10671
  e.key === "Enter" || e.key === " " ? (e.preventDefault(), handleSelectOption(option), multiSelect || handleClose()) : e.key === "Tab" && (multiSelect || handleSelectOption(option), handleClose());
@@ -14202,9 +14263,9 @@ Tooltip2.displayName = "Tooltip";
14202
14263
  // src/components/components/tooltip/lazy-WithTooltip.tsx
14203
14264
  import React40, { Suspense as Suspense2, lazy as lazy2 } from "react";
14204
14265
  var LazyWithTooltip = lazy2(
14205
- () => import("../_browser-chunks/WithTooltip-LMROHDUP.js").then((mod) => ({ default: mod.WithTooltip }))
14266
+ () => import("../_browser-chunks/WithTooltip-IO6J4KBT.js").then((mod) => ({ default: mod.WithTooltip }))
14206
14267
  ), WithTooltip = (props) => React40.createElement(Suspense2, { fallback: React40.createElement("div", null) }, React40.createElement(LazyWithTooltip, { ...props })), LazyWithTooltipPure = lazy2(
14207
- () => import("../_browser-chunks/WithTooltip-LMROHDUP.js").then((mod) => ({ default: mod.WithTooltipPure }))
14268
+ () => import("../_browser-chunks/WithTooltip-IO6J4KBT.js").then((mod) => ({ default: mod.WithTooltipPure }))
14208
14269
  ), WithTooltipPure = (props) => React40.createElement(Suspense2, { fallback: React40.createElement("div", null) }, React40.createElement(LazyWithTooltipPure, { ...props }));
14209
14270
 
14210
14271
  // src/components/components/tooltip/TooltipMessage.tsx
@@ -14228,8 +14289,8 @@ var Title4 = styled49.div(({ theme }) => ({
14228
14289
  width: 280,
14229
14290
  boxSizing: "border-box"
14230
14291
  }), TooltipMessage = ({ title, desc, links }) => (deprecate5(
14231
- "`TooltipLinkList` is deprecated and will be removed in Storybook 11, use `Popover` and `PopoverProvider` instead."
14232
- ), React41.createElement(MessageWrapper, null, React41.createElement(Message2, null, title && React41.createElement(Title4, null, title), desc && React41.createElement(Desc2, null, desc)), links && React41.createElement(Links, null, links.map(({ title: linkTitle, ...other }) => React41.createElement(Link2, { ...other, key: linkTitle }, linkTitle)))));
14292
+ "`TooltipMessage` is deprecated and will be removed in Storybook 11, use `Popover` and `PopoverProvider` instead."
14293
+ ), React41.createElement(MessageWrapper, { "data-deprecated": "TooltipMessage" }, React41.createElement(Message2, null, title && React41.createElement(Title4, null, title), desc && React41.createElement(Desc2, null, desc)), links && React41.createElement(Links, null, links.map(({ title: linkTitle, ...other }) => React41.createElement(Link2, { ...other, key: linkTitle }, linkTitle)))));
14233
14294
 
14234
14295
  // src/components/components/tooltip/TooltipLinkList.tsx
14235
14296
  import React43, { Fragment as Fragment4, useCallback as useCallback10 } from "react";
@@ -14375,7 +14436,7 @@ var Title5 = styled50(({ active, loading, disabled, ...rest }) => React42.create
14375
14436
  } = props, commonProps = { active, disabled }, itemProps = getItemProps(props), left = icon || input;
14376
14437
  return deprecate6(
14377
14438
  "`ListItem` is deprecated and will be removed in Storybook 11, use `MenuItem` instead."
14378
- ), React42.createElement(Item2, { ref, ...rest, ...commonProps, ...itemProps }, React42.createElement(React42.Fragment, null, left && React42.createElement(Left, { ...commonProps }, left), title || center ? React42.createElement(Center, { isIndented: isIndented && !left }, title && React42.createElement(Title5, { ...commonProps, loading }, title), center && React42.createElement(CenterText, { ...commonProps }, center)) : null, right && React42.createElement(Right, { ...commonProps }, right)));
14439
+ ), React42.createElement(Item2, { "data-deprecated": "ListItem", ref, ...rest, ...commonProps, ...itemProps }, React42.createElement(React42.Fragment, null, left && React42.createElement(Left, { ...commonProps }, left), title || center ? React42.createElement(Center, { isIndented: isIndented && !left }, title && React42.createElement(Title5, { ...commonProps, loading }, title), center && React42.createElement(CenterText, { ...commonProps }, center)) : null, right && React42.createElement(Right, { ...commonProps }, right)));
14379
14440
  });
14380
14441
  ListItem.displayName = "ListItem";
14381
14442
  var ListItem_default = ListItem;
@@ -14406,12 +14467,12 @@ var List = styled51.div(
14406
14467
  return React43.createElement(ListItem_default, { id: `list-item-${id}`, ...rest, ...onClick && { onClick: handleClick } });
14407
14468
  }, TooltipLinkList = ({ links, LinkWrapper, ...props }) => {
14408
14469
  deprecate7(
14409
- "`TooltipLinkList` is deprecated and will be removed in Storybook 11, use `MenuItem` and `WithMenu` instead."
14470
+ "`TooltipLinkList` is deprecated and will be removed in Storybook 11, use `ActionList` or `MenuItem` and `WithMenu` instead."
14410
14471
  );
14411
14472
  let groups = Array.isArray(links[0]) ? links : [links], isIndented = groups.some(
14412
14473
  (group) => group.some((link) => "icon" in link && link.icon || "input" in link && link.input)
14413
14474
  );
14414
- return React43.createElement(List, { ...props, className: "sb-list" }, groups.filter((group) => group.length).map((group, index3) => React43.createElement(Group, { key: group.map((link) => link.id).join(`~${index3}~`) }, group.map((link) => "content" in link ? React43.createElement(Fragment4, { key: link.id }, link.content) : React43.createElement(Item3, { key: link.id, isIndented, LinkWrapper, ...link })))));
14475
+ return React43.createElement(List, { "data-deprecated": "TooltipLinkList", ...props, className: "sb-list" }, groups.filter((group) => group.length).map((group, index3) => React43.createElement(Group, { key: group.map((link) => link.id).join(`~${index3}~`) }, group.map((link) => "content" in link ? React43.createElement(Fragment4, { key: link.id }, link.content) : React43.createElement(Item3, { key: link.id, isIndented, LinkWrapper, ...link })))));
14415
14476
  };
14416
14477
 
14417
14478
  // src/components/components/Tabs/Tabs.tsx
@@ -14503,6 +14564,7 @@ var BarInner = styled52.div(({ bgColor }) => ({
14503
14564
  return React44.createElement(
14504
14565
  BarWithoutPadding,
14505
14566
  {
14567
+ "data-deprecated": "FlexBar",
14506
14568
  backgroundColor,
14507
14569
  className: `sb-bar ${className}`,
14508
14570
  ...rest
@@ -14571,7 +14633,7 @@ var StyledTabButton = styled53(ButtonOrLink, { shouldForwardProp: isPropValid2 }
14571
14633
  color: theme.barHoverColor
14572
14634
  }
14573
14635
  }
14574
- ), TabButton = forwardRef16((props, ref) => (deprecate9("The `TabButton` component is deprecated. Use `TabList` instead."), React45.createElement(StyledTabButton, { ref, ...props })));
14636
+ ), TabButton = forwardRef16((props, ref) => (deprecate9("The `TabButton` component is deprecated. Use `TabList` instead."), React45.createElement(StyledTabButton, { "data-deprecated": "TabButton", ref, ...props })));
14575
14637
  TabButton.displayName = "TabButton";
14576
14638
 
14577
14639
  // src/components/components/Tabs/EmptyTabContent.tsx
@@ -14596,12 +14658,14 @@ var Wrapper3 = styled54.div(({ theme }) => ({
14596
14658
  fontSize: theme.typography.size.s2 - 1,
14597
14659
  textAlign: "center",
14598
14660
  color: theme.color.defaultText
14661
+ })), Footer = styled54.div(({ theme }) => ({
14662
+ fontSize: theme.typography.size.s2 - 1
14599
14663
  })), Description3 = styled54.div(({ theme }) => ({
14600
14664
  fontWeight: theme.typography.weight.regular,
14601
14665
  fontSize: theme.typography.size.s2 - 1,
14602
14666
  textAlign: "center",
14603
14667
  color: theme.textMutedColor
14604
- })), EmptyTabContent = ({ title, description, footer }) => React46.createElement(Wrapper3, null, React46.createElement(Content2, null, React46.createElement(Title6, null, title), description && React46.createElement(Description3, null, description)), footer);
14668
+ })), EmptyTabContent = ({ title, description, footer }) => React46.createElement(Wrapper3, null, React46.createElement(Content2, null, React46.createElement(Title6, null, title), description && React46.createElement(Description3, null, description)), footer && React46.createElement(Footer, null, footer));
14605
14669
 
14606
14670
  // src/components/components/Tabs/Tabs.helpers.tsx
14607
14671
  import React47, { Children as Children5 } from "react";
@@ -14775,7 +14839,7 @@ var ignoreSsrWarning2 = "/* emotion-disable-server-rendering-unsafe-selector-war
14775
14839
  whiteSpace: "nowrap",
14776
14840
  flexGrow: 1
14777
14841
  }), TabBar = forwardRef17(
14778
- (props, ref) => (deprecate12("The `TabBar` component is deprecated. Use `TabsView` instead."), React49.createElement(StyledTabBar, { ...props, ref }))
14842
+ (props, ref) => (deprecate12("The `TabBar` component is deprecated. Use `TabsView` instead."), React49.createElement(StyledTabBar, { "data-deprecated": "TabBar", ...props, ref }))
14779
14843
  );
14780
14844
  TabBar.displayName = "TabBar";
14781
14845
  var Content3 = styled57.div(
@@ -14810,7 +14874,7 @@ var Content3 = styled57.div(
14810
14874
  }
14811
14875
  } : {}
14812
14876
  ), TabWrapper = forwardRef17(
14813
- ({ active, render, children }, ref) => (deprecate12("The `TabWrapper` component is deprecated. Use `TabsView` instead."), React49.createElement(VisuallyHidden, { ref, active }, render ? render() : children))
14877
+ ({ active, render, children }, ref) => (deprecate12("The `TabWrapper` component is deprecated. Use `TabsView` instead."), React49.createElement(VisuallyHidden, { "data-deprecated": "TabWrapper", ref, active }, render ? render() : children))
14814
14878
  );
14815
14879
  TabWrapper.displayName = "TabWrapper";
14816
14880
  var TabErrorBoundary = class extends Component2 {
@@ -14856,7 +14920,7 @@ var TabErrorBoundary = class extends Component2 {
14856
14920
  ), { visibleList, tabBarRef, tabRefs, AddonTab } = useList(list), EmptyContent = emptyState ?? React49.createElement(EmptyTabContent, { title: "Nothing found" });
14857
14921
  return !showToolsWhenEmpty && list.length === 0 ? EmptyContent : (
14858
14922
  // @ts-expect-error (non strict)
14859
- React49.createElement(Wrapper4, { absolute, bordered, id: htmlId }, React49.createElement(FlexBar, { scrollable: !1, border: !0, backgroundColor }, React49.createElement(TabBar, { style: { whiteSpace: "normal" }, ref: tabBarRef, role: "tablist" }, visibleList.map(({ title, id, active, color: color4 }, index3) => {
14923
+ React49.createElement(Wrapper4, { "data-deprecated": "Tabs", absolute, bordered, id: htmlId }, React49.createElement(FlexBar, { scrollable: !1, border: !0, backgroundColor }, React49.createElement(TabBar, { style: { whiteSpace: "normal" }, ref: tabBarRef, role: "tablist" }, visibleList.map(({ title, id, active, color: color4 }, index3) => {
14860
14924
  let indexId = `index-${index3}`;
14861
14925
  return React49.createElement(
14862
14926
  TabButton,
@@ -14954,9 +15018,10 @@ var usePrevious = (value) => {
14954
15018
  }, useUpdate = (update, value) => {
14955
15019
  let previousValue = usePrevious(value);
14956
15020
  return update ? value : previousValue;
14957
- }, Div2 = styled59.div({
15021
+ }, Div2 = styled59.div(({ theme }) => ({
15022
+ fontSize: theme.typography.size.s2 - 1,
14958
15023
  height: "100%"
14959
- }), AddonPanel = ({ active, children, hasScrollbar = !0 }) => (
15024
+ })), AddonPanel = ({ active, children, hasScrollbar = !0 }) => (
14960
15025
  // the hidden attribute is an valid html element that's both accessible and works to visually hide content
14961
15026
  React51.createElement(Div2, { hidden: !active }, hasScrollbar ? React51.createElement(ScrollArea, { vertical: !0 }, useUpdate(active, children)) : useUpdate(active, children))
14962
15027
  );
@@ -16284,6 +16349,7 @@ export {
16284
16349
  A,
16285
16350
  AbstractToolbar,
16286
16351
  ActionBar,
16352
+ ActionList,
16287
16353
  AddonPanel,
16288
16354
  Badge,
16289
16355
  Bar,
@@ -16312,7 +16378,6 @@ export {
16312
16378
  LI,
16313
16379
  Link2 as Link,
16314
16380
  ListItem_default as ListItem,
16315
- Listbox,
16316
16381
  Loader,
16317
16382
  Modal,
16318
16383
  ModalDecorator,