@wistia/ui 0.4.5 → 0.4.6-beta.11d3718d.4d96ead
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +321 -121
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +78 -6
- package/dist/index.d.ts +78 -6
- package/dist/index.mjs +304 -98
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -1
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
/*
|
|
3
|
-
* @license @wistia/ui v0.4.
|
|
3
|
+
* @license @wistia/ui v0.4.6-beta.11d3718d.4d96ead
|
|
4
4
|
*
|
|
5
5
|
* Copyright (c) 2024-2025, Wistia, Inc. and its affiliates.
|
|
6
6
|
*
|
|
@@ -71,10 +71,13 @@ __export(index_exports, {
|
|
|
71
71
|
MenuLabel: () => MenuLabel,
|
|
72
72
|
MenuRadioGroup: () => MenuRadioGroup,
|
|
73
73
|
Modal: () => Modal,
|
|
74
|
+
Option: () => Option,
|
|
75
|
+
OptionGroup: () => OptionGroup,
|
|
74
76
|
Radio: () => Radio,
|
|
75
77
|
RadioGroup: () => RadioGroup,
|
|
76
78
|
RadioMenuItem: () => RadioMenuItem,
|
|
77
79
|
ScreenReaderOnly: () => ScreenReaderOnly,
|
|
80
|
+
Select: () => Select,
|
|
78
81
|
Stack: () => Stack,
|
|
79
82
|
SubMenu: () => SubMenu,
|
|
80
83
|
Tag: () => Tag,
|
|
@@ -1640,6 +1643,14 @@ var import_react6 = require("react");
|
|
|
1640
1643
|
|
|
1641
1644
|
// src/private/hooks/useEvent/useEvent.ts
|
|
1642
1645
|
var import_react5 = require("react");
|
|
1646
|
+
|
|
1647
|
+
// src/private/helpers/isObjectRef/isObjectRef.ts
|
|
1648
|
+
var import_type_guards4 = require("@wistia/type-guards");
|
|
1649
|
+
var isObjectRef = (value) => {
|
|
1650
|
+
return (0, import_type_guards4.isNotNil)(value) && (0, import_type_guards4.isRecord)(value) && "current" in value;
|
|
1651
|
+
};
|
|
1652
|
+
|
|
1653
|
+
// src/private/hooks/useEvent/useEvent.ts
|
|
1643
1654
|
var isEventTargetSupported = (eventTarget) => (
|
|
1644
1655
|
// @ts-expect-error the compiler thinks that addEventListener may not exist on eventTarget, but we still need to check it.
|
|
1645
1656
|
// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
|
|
@@ -1655,7 +1666,8 @@ var useEvent = (eventName, eventHandler, eventTarget = window, eventOptions = {}
|
|
|
1655
1666
|
savedEventOptions.current = eventOptions;
|
|
1656
1667
|
}, [eventOptions]);
|
|
1657
1668
|
(0, import_react5.useEffect)(() => {
|
|
1658
|
-
|
|
1669
|
+
const target = isObjectRef(eventTarget) ? eventTarget.current : eventTarget;
|
|
1670
|
+
if (!eventName || !isEventTargetSupported(target)) {
|
|
1659
1671
|
return;
|
|
1660
1672
|
}
|
|
1661
1673
|
const eventListener = (event) => {
|
|
@@ -1665,48 +1677,45 @@ var useEvent = (eventName, eventHandler, eventTarget = window, eventOptions = {}
|
|
|
1665
1677
|
return () => {
|
|
1666
1678
|
};
|
|
1667
1679
|
};
|
|
1668
|
-
|
|
1680
|
+
target.addEventListener(eventName, eventListener, savedEventOptions.current);
|
|
1669
1681
|
return () => {
|
|
1670
|
-
|
|
1682
|
+
target.removeEventListener(eventName, eventListener, savedEventOptions.current);
|
|
1671
1683
|
};
|
|
1672
1684
|
}, [eventName, eventTarget, savedEventOptions]);
|
|
1673
1685
|
};
|
|
1674
1686
|
|
|
1675
1687
|
// src/hooks/useKey/useKey.ts
|
|
1676
|
-
var
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
}
|
|
1680
|
-
if (typeof keyFilter === "string") {
|
|
1681
|
-
return (event) => event.key === keyFilter;
|
|
1682
|
-
}
|
|
1683
|
-
if (keyFilter !== null && keyFilter !== void 0 && !!keyFilter) {
|
|
1684
|
-
return () => true;
|
|
1685
|
-
}
|
|
1686
|
-
return () => false;
|
|
1687
|
-
};
|
|
1688
|
-
var useKey = (key, eventHandler, options = {}, dependencies = [key]) => {
|
|
1689
|
-
const { eventName = "keydown", eventTarget, eventOptions } = options;
|
|
1690
|
-
const memoizedEventHandler = (0, import_react6.useMemo)(() => {
|
|
1691
|
-
const predicate = createKeyPredicate(key);
|
|
1692
|
-
return (handlerEvent) => {
|
|
1688
|
+
var useKey = (key, eventHandler, { eventName = "keydown", eventTarget, eventOptions } = {}) => {
|
|
1689
|
+
const memoizedEventHandler = (0, import_react6.useCallback)(
|
|
1690
|
+
(handlerEvent) => {
|
|
1693
1691
|
if (["INPUT", "TEXTAREA", "SELECT"].includes(document.activeElement?.nodeName ?? "") || document.activeElement?.isContentEditable) {
|
|
1694
1692
|
return;
|
|
1695
1693
|
}
|
|
1696
|
-
|
|
1697
|
-
|
|
1694
|
+
let matchesKey = false;
|
|
1695
|
+
if (typeof key === "function") {
|
|
1696
|
+
matchesKey = key(handlerEvent);
|
|
1697
|
+
} else if (typeof key === "string") {
|
|
1698
|
+
matchesKey = handlerEvent.key === key;
|
|
1699
|
+
} else if (key) {
|
|
1700
|
+
matchesKey = true;
|
|
1701
|
+
} else {
|
|
1702
|
+
matchesKey = false;
|
|
1698
1703
|
}
|
|
1699
|
-
|
|
1700
|
-
|
|
1704
|
+
if (matchesKey) {
|
|
1705
|
+
eventHandler(handlerEvent);
|
|
1706
|
+
}
|
|
1707
|
+
},
|
|
1708
|
+
[key, eventHandler]
|
|
1709
|
+
);
|
|
1701
1710
|
useEvent(eventName, memoizedEventHandler, eventTarget, eventOptions);
|
|
1702
1711
|
};
|
|
1703
1712
|
|
|
1704
1713
|
// src/hooks/useAriaLive/useAriaLive.tsx
|
|
1705
1714
|
var import_react7 = require("react");
|
|
1706
|
-
var
|
|
1715
|
+
var import_type_guards5 = require("@wistia/type-guards");
|
|
1707
1716
|
var useAriaLive = () => {
|
|
1708
1717
|
const context = (0, import_react7.useContext)(AriaLiveContext);
|
|
1709
|
-
if ((0,
|
|
1718
|
+
if ((0, import_type_guards5.isNil)(context)) {
|
|
1710
1719
|
throw new Error("useAriaLive must be used within an AriaLiveProvider");
|
|
1711
1720
|
}
|
|
1712
1721
|
return context;
|
|
@@ -1719,10 +1728,10 @@ var import_sonner2 = require("sonner");
|
|
|
1719
1728
|
// src/private/components/Toast/Toast.tsx
|
|
1720
1729
|
var import_react8 = require("react");
|
|
1721
1730
|
var import_styled_components13 = __toESM(require("styled-components"));
|
|
1722
|
-
var
|
|
1731
|
+
var import_type_guards7 = require("@wistia/type-guards");
|
|
1723
1732
|
|
|
1724
1733
|
// src/components/Ellipsis/Ellipsis.tsx
|
|
1725
|
-
var
|
|
1734
|
+
var import_type_guards6 = require("@wistia/type-guards");
|
|
1726
1735
|
var import_styled_components11 = __toESM(require("styled-components"));
|
|
1727
1736
|
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
1728
1737
|
var ellipsisStyle = import_styled_components11.css`
|
|
@@ -1754,7 +1763,7 @@ var ellipsisFlexParentStyle = import_styled_components11.css`
|
|
|
1754
1763
|
var EllipsisComponent = import_styled_components11.default.div`
|
|
1755
1764
|
${ellipsisStyle};
|
|
1756
1765
|
${({ $lines }) => {
|
|
1757
|
-
if ((0,
|
|
1766
|
+
if ((0, import_type_guards6.isNotNil)($lines)) {
|
|
1758
1767
|
return import_styled_components11.css`
|
|
1759
1768
|
-webkit-box-orient: vertical;
|
|
1760
1769
|
-webkit-line-clamp: ${$lines};
|
|
@@ -1938,7 +1947,7 @@ var StyledToast = import_styled_components13.default.div`
|
|
|
1938
1947
|
}
|
|
1939
1948
|
`;
|
|
1940
1949
|
var Action = ({ actionButton }) => {
|
|
1941
|
-
if ((0,
|
|
1950
|
+
if ((0, import_type_guards7.isNotNil)(actionButton) && (0, import_react8.isValidElement)(actionButton)) {
|
|
1942
1951
|
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ActionWrapper, { children: (0, import_react8.cloneElement)(actionButton, {
|
|
1943
1952
|
variant: "soft",
|
|
1944
1953
|
// force Button variant
|
|
@@ -1962,7 +1971,7 @@ var Toast = ({
|
|
|
1962
1971
|
$colorScheme: colorScheme,
|
|
1963
1972
|
children: [
|
|
1964
1973
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(MessageWrapper, { children: [
|
|
1965
|
-
(0,
|
|
1974
|
+
(0, import_type_guards7.isNotNil)(icon) ? icon : null,
|
|
1966
1975
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Message, { lines: 3, children: message })
|
|
1967
1976
|
] }),
|
|
1968
1977
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Action, { actionButton: action })
|
|
@@ -2003,7 +2012,7 @@ var import_styled_components19 = __toESM(require("styled-components"));
|
|
|
2003
2012
|
// src/components/Button/Button.tsx
|
|
2004
2013
|
var import_react12 = require("react");
|
|
2005
2014
|
var import_styled_components18 = __toESM(require("styled-components"));
|
|
2006
|
-
var
|
|
2015
|
+
var import_type_guards11 = require("@wistia/type-guards");
|
|
2007
2016
|
|
|
2008
2017
|
// src/css/buttonResetCss.tsx
|
|
2009
2018
|
var import_styled_components14 = require("styled-components");
|
|
@@ -2206,7 +2215,7 @@ var buttonSizeStyles = {
|
|
|
2206
2215
|
};
|
|
2207
2216
|
|
|
2208
2217
|
// src/components/Icon/Icon.tsx
|
|
2209
|
-
var
|
|
2218
|
+
var import_type_guards9 = require("@wistia/type-guards");
|
|
2210
2219
|
var import_styled_components16 = __toESM(require("styled-components"));
|
|
2211
2220
|
|
|
2212
2221
|
// src/components/Icon/icons/AbTestIcon.tsx
|
|
@@ -5367,7 +5376,7 @@ var iconMap = {
|
|
|
5367
5376
|
};
|
|
5368
5377
|
|
|
5369
5378
|
// src/private/hooks/useResponsiveProp/useResponsiveProp.ts
|
|
5370
|
-
var
|
|
5379
|
+
var import_type_guards8 = require("@wistia/type-guards");
|
|
5371
5380
|
var import_react10 = require("react");
|
|
5372
5381
|
var isResponsiveObject = (values) => {
|
|
5373
5382
|
return typeof values === "object" && values !== null && !Array.isArray(values) && "base" in values;
|
|
@@ -5375,9 +5384,9 @@ var isResponsiveObject = (values) => {
|
|
|
5375
5384
|
var useResponsiveProp = (values) => {
|
|
5376
5385
|
const activeMediaQueries = useActiveMq();
|
|
5377
5386
|
return (0, import_react10.useMemo)(() => {
|
|
5378
|
-
if ((0,
|
|
5387
|
+
if ((0, import_type_guards8.isRecord)(values) && isResponsiveObject(values)) {
|
|
5379
5388
|
const mq2 = activeMediaQueries.find((key) => key in values);
|
|
5380
|
-
return (0,
|
|
5389
|
+
return (0, import_type_guards8.isNotUndefined)(mq2) && (0, import_type_guards8.isNotUndefined)(values[mq2]) ? values[mq2] : values.base;
|
|
5381
5390
|
}
|
|
5382
5391
|
return values;
|
|
5383
5392
|
}, [activeMediaQueries, values]);
|
|
@@ -5404,13 +5413,13 @@ var Icon = ({
|
|
|
5404
5413
|
...otherProps
|
|
5405
5414
|
}) => {
|
|
5406
5415
|
const responsiveSize = useResponsiveProp(size);
|
|
5407
|
-
if ((0,
|
|
5416
|
+
if ((0, import_type_guards9.isNil)(type)) {
|
|
5408
5417
|
throw new Error("An Icon component requires a `type` prop to be provided");
|
|
5409
5418
|
}
|
|
5410
|
-
if ((0,
|
|
5419
|
+
if ((0, import_type_guards9.isNil)(iconMap[type])) {
|
|
5411
5420
|
throw new Error(`Type "${type}" does not exist, please update type prop in Icon component.`);
|
|
5412
5421
|
}
|
|
5413
|
-
if ((0,
|
|
5422
|
+
if ((0, import_type_guards9.isNil)(iconSizeMap[responsiveSize])) {
|
|
5414
5423
|
throw new Error(
|
|
5415
5424
|
`Size "${responsiveSize}" does not exist, please update size prop in Icon component.`
|
|
5416
5425
|
);
|
|
@@ -5442,12 +5451,12 @@ Icon.displayName = "Icon";
|
|
|
5442
5451
|
|
|
5443
5452
|
// src/components/Link/Link.tsx
|
|
5444
5453
|
var import_react11 = require("react");
|
|
5445
|
-
var
|
|
5454
|
+
var import_type_guards10 = require("@wistia/type-guards");
|
|
5446
5455
|
var import_styled_components17 = __toESM(require("styled-components"));
|
|
5447
5456
|
var import_react_router_dom = require("react-router-dom");
|
|
5448
5457
|
var import_jsx_runtime161 = require("react/jsx-runtime");
|
|
5449
5458
|
var generateHref = (href, type, disabled) => {
|
|
5450
|
-
if (disabled || (0,
|
|
5459
|
+
if (disabled || (0, import_type_guards10.isNil)(href)) {
|
|
5451
5460
|
return void 0;
|
|
5452
5461
|
}
|
|
5453
5462
|
let to = href;
|
|
@@ -5459,10 +5468,10 @@ var generateHref = (href, type, disabled) => {
|
|
|
5459
5468
|
}
|
|
5460
5469
|
return to;
|
|
5461
5470
|
};
|
|
5462
|
-
var isButton = (props) => (0,
|
|
5463
|
-
var isLink = (props) => (0,
|
|
5471
|
+
var isButton = (props) => (0, import_type_guards10.isUndefined)(props.href);
|
|
5472
|
+
var isLink = (props) => (0, import_type_guards10.isNotUndefined)(props.href);
|
|
5464
5473
|
var StyledLink = import_styled_components17.default.a`
|
|
5465
|
-
${({ href }) => (0,
|
|
5474
|
+
${({ href }) => (0, import_type_guards10.isNil)(href) && buttonResetCss};
|
|
5466
5475
|
${({ $colorScheme }) => getColorScheme($colorScheme)}
|
|
5467
5476
|
cursor: pointer;
|
|
5468
5477
|
font-family: var(--wui-typography-family-default);
|
|
@@ -5493,7 +5502,7 @@ var Link = (0, import_react11.forwardRef)(
|
|
|
5493
5502
|
} finally {
|
|
5494
5503
|
if (routingCallback !== null) {
|
|
5495
5504
|
routingCallback();
|
|
5496
|
-
} else if ((0,
|
|
5505
|
+
} else if ((0, import_type_guards10.isNotNil)(to)) {
|
|
5497
5506
|
window.location.assign(to);
|
|
5498
5507
|
} else {
|
|
5499
5508
|
}
|
|
@@ -5552,7 +5561,7 @@ Link.displayName = "Link";
|
|
|
5552
5561
|
|
|
5553
5562
|
// src/components/Button/Button.tsx
|
|
5554
5563
|
var import_jsx_runtime162 = require("react/jsx-runtime");
|
|
5555
|
-
var isLink2 = (props) => (0,
|
|
5564
|
+
var isLink2 = (props) => (0, import_type_guards11.isNotUndefined)(props.href);
|
|
5556
5565
|
var StyledButton = import_styled_components18.default.button`
|
|
5557
5566
|
${buttonResetCss}
|
|
5558
5567
|
${({ $colorScheme }) => getColorScheme($colorScheme)}
|
|
@@ -5593,8 +5602,8 @@ var ButtonContent = ({
|
|
|
5593
5602
|
/* @__PURE__ */ (0, import_jsx_runtime162.jsxs)(
|
|
5594
5603
|
StyledButtonContent,
|
|
5595
5604
|
{
|
|
5596
|
-
$hasLeftIcon: (0,
|
|
5597
|
-
$hasRightIcon: (0,
|
|
5605
|
+
$hasLeftIcon: (0, import_type_guards11.isNotNil)(leftIcon),
|
|
5606
|
+
$hasRightIcon: (0, import_type_guards11.isNotNil)(rightIcon),
|
|
5598
5607
|
$isLoading: isLoading,
|
|
5599
5608
|
children: [
|
|
5600
5609
|
leftIcon ?? null,
|
|
@@ -5662,7 +5671,7 @@ var Button = (0, import_react12.forwardRef)(
|
|
|
5662
5671
|
event.preventDefault();
|
|
5663
5672
|
return;
|
|
5664
5673
|
}
|
|
5665
|
-
if ((0,
|
|
5674
|
+
if ((0, import_type_guards11.isNotNil)(onClick)) {
|
|
5666
5675
|
onClick(event);
|
|
5667
5676
|
}
|
|
5668
5677
|
};
|
|
@@ -5823,7 +5832,7 @@ ActionButton.displayName = "ActionButton";
|
|
|
5823
5832
|
|
|
5824
5833
|
// src/components/Avatar/Avatar.tsx
|
|
5825
5834
|
var import_react14 = require("react");
|
|
5826
|
-
var
|
|
5835
|
+
var import_type_guards13 = require("@wistia/type-guards");
|
|
5827
5836
|
var import_styled_components21 = __toESM(require("styled-components"));
|
|
5828
5837
|
|
|
5829
5838
|
// src/components/ColorSchemeWrapper/ColorSchemeWrapper.tsx
|
|
@@ -5866,13 +5875,13 @@ var ColorSchemeWrapper = ({
|
|
|
5866
5875
|
ColorSchemeWrapper.displayName = "ColorSchemeWrapper";
|
|
5867
5876
|
|
|
5868
5877
|
// src/components/Avatar/formatNameForDisplay.tsx
|
|
5869
|
-
var
|
|
5878
|
+
var import_type_guards12 = require("@wistia/type-guards");
|
|
5870
5879
|
var containsEmojiCharacter = (char) => {
|
|
5871
5880
|
const emojiRegex = /<a?:.+?:\d{18}>|\p{Extended_Pictographic}/gu;
|
|
5872
5881
|
return emojiRegex.test(char);
|
|
5873
5882
|
};
|
|
5874
5883
|
var formatNameForDisplay = (name) => {
|
|
5875
|
-
if ((0,
|
|
5884
|
+
if ((0, import_type_guards12.isNil)(name) || !(0, import_type_guards12.isString)(name) || (0, import_type_guards12.isEmptyString)(name) || containsEmojiCharacter(name)) {
|
|
5876
5885
|
return "U";
|
|
5877
5886
|
}
|
|
5878
5887
|
const firstChar = name.trim().substring(0, 1);
|
|
@@ -5934,7 +5943,7 @@ var AvatarWrapper = import_styled_components21.default.div`
|
|
|
5934
5943
|
max-height: ${({ $maxHeight }) => $maxHeight}px;
|
|
5935
5944
|
`;
|
|
5936
5945
|
var chooseColorScheme = (name) => {
|
|
5937
|
-
if ((0,
|
|
5946
|
+
if ((0, import_type_guards13.isNil)(name) || name === "Anonymous") {
|
|
5938
5947
|
return "default";
|
|
5939
5948
|
}
|
|
5940
5949
|
const filteredColors = colorSchemeOptions.filter(
|
|
@@ -5954,6 +5963,9 @@ var Avatar = ({
|
|
|
5954
5963
|
...otherProps
|
|
5955
5964
|
}) => {
|
|
5956
5965
|
const [imageLoadState, setImageLoadState] = (0, import_react14.useState)(null);
|
|
5966
|
+
(0, import_react14.useEffect)(() => {
|
|
5967
|
+
setImageLoadState(null);
|
|
5968
|
+
}, [imageUrl]);
|
|
5957
5969
|
const handleImageLoad = () => {
|
|
5958
5970
|
setImageLoadState("loaded");
|
|
5959
5971
|
onImageLoad?.("image");
|
|
@@ -5964,7 +5976,7 @@ var Avatar = ({
|
|
|
5964
5976
|
};
|
|
5965
5977
|
const avatarSize = heightAndWidth ?? avatarSizeMap[size];
|
|
5966
5978
|
const avatarColor = (0, import_react14.useMemo)(() => chooseColorScheme(name), [name]);
|
|
5967
|
-
const showInitials = (0,
|
|
5979
|
+
const showInitials = (0, import_type_guards13.isNil)(imageUrl) || imageLoadState === "error";
|
|
5968
5980
|
return /* @__PURE__ */ (0, import_jsx_runtime165.jsx)(
|
|
5969
5981
|
AvatarWrapper,
|
|
5970
5982
|
{
|
|
@@ -5995,7 +6007,7 @@ Avatar.displayName = "Avatar";
|
|
|
5995
6007
|
// src/components/Badge/Badge.tsx
|
|
5996
6008
|
var import_react15 = require("react");
|
|
5997
6009
|
var import_styled_components22 = __toESM(require("styled-components"));
|
|
5998
|
-
var
|
|
6010
|
+
var import_type_guards14 = require("@wistia/type-guards");
|
|
5999
6011
|
var import_jsx_runtime166 = require("react/jsx-runtime");
|
|
6000
6012
|
var StyledBadge = import_styled_components22.default.div`
|
|
6001
6013
|
${({ $colorScheme }) => getColorScheme($colorScheme)};
|
|
@@ -6019,7 +6031,7 @@ var StyledBadge = import_styled_components22.default.div`
|
|
|
6019
6031
|
`;
|
|
6020
6032
|
var Badge = (0, import_react15.forwardRef)(
|
|
6021
6033
|
({ colorScheme = "inherit", label, icon, ...otherProps }, ref) => {
|
|
6022
|
-
const hasIcon = (0,
|
|
6034
|
+
const hasIcon = (0, import_type_guards14.isNotNil)(icon);
|
|
6023
6035
|
return /* @__PURE__ */ (0, import_jsx_runtime166.jsxs)(
|
|
6024
6036
|
StyledBadge,
|
|
6025
6037
|
{
|
|
@@ -6040,12 +6052,12 @@ Badge.displayName = "Badge";
|
|
|
6040
6052
|
// src/components/Box/Box.tsx
|
|
6041
6053
|
var import_react16 = require("react");
|
|
6042
6054
|
var import_styled_components23 = __toESM(require("styled-components"));
|
|
6043
|
-
var
|
|
6055
|
+
var import_type_guards15 = require("@wistia/type-guards");
|
|
6044
6056
|
var import_jsx_runtime167 = require("react/jsx-runtime");
|
|
6045
6057
|
var isDev = process.env["NODE_ENV"] === "development" || process.env["NODE_ENV"] === "test";
|
|
6046
6058
|
var getGapStyle = (gap) => {
|
|
6047
|
-
if ((0,
|
|
6048
|
-
if ((0,
|
|
6059
|
+
if ((0, import_type_guards15.isNotNil)(gap)) {
|
|
6060
|
+
if ((0, import_type_guards15.isRecord)(gap)) {
|
|
6049
6061
|
return Object.entries(gap).map(([key, value]) => {
|
|
6050
6062
|
return `${key}-gap: var(--wui-${value})};`;
|
|
6051
6063
|
}).join("");
|
|
@@ -6088,25 +6100,25 @@ var BoxComponent = import_styled_components23.default.div`
|
|
|
6088
6100
|
align-content: ${({ $alignContent }) => $alignContent};
|
|
6089
6101
|
align-items: ${({ $alignItems }) => $alignItems};
|
|
6090
6102
|
align-self: ${({ $alignSelf }) => $alignSelf ?? null};
|
|
6091
|
-
display: ${({ $inline }) => (0,
|
|
6092
|
-
flex-basis: ${({ $basis }) => (0,
|
|
6103
|
+
display: ${({ $inline }) => (0, import_type_guards15.isNotNil)($inline) && $inline ? "inline-flex" : "flex"};
|
|
6104
|
+
flex-basis: ${({ $basis }) => (0, import_type_guards15.isNotNil)($basis) ? $basis : null};
|
|
6093
6105
|
flex-direction: ${({ $flexDirection }) => $flexDirection};
|
|
6094
6106
|
${({ $fillBox: fill }) => getFillStyle(fill)};
|
|
6095
6107
|
${({ $fillViewport }) => getFillViewportStyle($fillViewport)};
|
|
6096
6108
|
|
|
6097
6109
|
/* Box children styles */
|
|
6098
|
-
flex-grow: ${({ $grow }) => (0,
|
|
6099
|
-
flex-shrink: ${({ $shrink }) => (0,
|
|
6110
|
+
flex-grow: ${({ $grow }) => (0, import_type_guards15.isNotNil)($grow) ? $grow : null};
|
|
6111
|
+
flex-shrink: ${({ $shrink }) => (0, import_type_guards15.isNotNil)($shrink) ? $shrink : null};
|
|
6100
6112
|
flex-wrap: ${({ $wrapItems }) => $wrapItems ? "wrap" : "nowrap"};
|
|
6101
6113
|
${({ $gap }) => getGapStyle($gap)};
|
|
6102
6114
|
justify-content: ${({ $justifyContent }) => $justifyContent};
|
|
6103
|
-
order: ${({ $order }) => (0,
|
|
6115
|
+
order: ${({ $order }) => (0, import_type_guards15.isNotNil)($order) ? $order : null};
|
|
6104
6116
|
`;
|
|
6105
6117
|
var wrapChildren = (children) => {
|
|
6106
|
-
if ((0,
|
|
6118
|
+
if ((0, import_type_guards15.isNotNil)(children)) {
|
|
6107
6119
|
if (typeof children === "object" && isDev) {
|
|
6108
6120
|
return import_react16.Children.map(children, (child) => {
|
|
6109
|
-
if ((0,
|
|
6121
|
+
if ((0, import_type_guards15.isNil)(child)) return null;
|
|
6110
6122
|
const elementParams = {};
|
|
6111
6123
|
if (child.type?.displayName === "Box" || child.type?.displayName === "Box_UI") {
|
|
6112
6124
|
elementParams.hasBoxParent = true;
|
|
@@ -6189,11 +6201,12 @@ Breadcrumbs.displayName = "Breadcrumbs";
|
|
|
6189
6201
|
|
|
6190
6202
|
// src/components/Breadcrumbs/Breadcrumb.tsx
|
|
6191
6203
|
var import_jsx_runtime169 = require("react/jsx-runtime");
|
|
6192
|
-
var Breadcrumb = ({ icon, href, children }) => {
|
|
6204
|
+
var Breadcrumb = ({ icon, href, children, ...props }) => {
|
|
6193
6205
|
return /* @__PURE__ */ (0, import_jsx_runtime169.jsxs)(import_jsx_runtime169.Fragment, { children: [
|
|
6194
6206
|
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)(
|
|
6195
6207
|
Button,
|
|
6196
6208
|
{
|
|
6209
|
+
...props,
|
|
6197
6210
|
href,
|
|
6198
6211
|
leftIcon: icon,
|
|
6199
6212
|
variant: "ghost",
|
|
@@ -6212,7 +6225,7 @@ var Breadcrumb = ({ icon, href, children }) => {
|
|
|
6212
6225
|
|
|
6213
6226
|
// src/components/ButtonGroup/ButtonGroup.tsx
|
|
6214
6227
|
var import_styled_components25 = __toESM(require("styled-components"));
|
|
6215
|
-
var
|
|
6228
|
+
var import_type_guards16 = require("@wistia/type-guards");
|
|
6216
6229
|
var import_jsx_runtime170 = require("react/jsx-runtime");
|
|
6217
6230
|
var getAlignment = (align) => {
|
|
6218
6231
|
if (align === "center") {
|
|
@@ -6252,7 +6265,7 @@ var ButtonGroup = ({
|
|
|
6252
6265
|
fullWidth = false,
|
|
6253
6266
|
...otherProps
|
|
6254
6267
|
}) => {
|
|
6255
|
-
if ((0,
|
|
6268
|
+
if ((0, import_type_guards16.isNil)(children)) {
|
|
6256
6269
|
return null;
|
|
6257
6270
|
}
|
|
6258
6271
|
return /* @__PURE__ */ (0, import_jsx_runtime170.jsx)(
|
|
@@ -6322,7 +6335,7 @@ Card.displayName = "Card";
|
|
|
6322
6335
|
var import_react18 = require("react");
|
|
6323
6336
|
var import_react_checkbox = require("@radix-ui/react-checkbox");
|
|
6324
6337
|
var import_styled_components30 = __toESM(require("styled-components"));
|
|
6325
|
-
var
|
|
6338
|
+
var import_type_guards18 = require("@wistia/type-guards");
|
|
6326
6339
|
|
|
6327
6340
|
// src/components/Label/Label.tsx
|
|
6328
6341
|
var import_styled_components28 = __toESM(require("styled-components"));
|
|
@@ -6509,7 +6522,7 @@ Label.displayName = "Label";
|
|
|
6509
6522
|
|
|
6510
6523
|
// src/components/Label/LabelDescription.tsx
|
|
6511
6524
|
var import_styled_components29 = __toESM(require("styled-components"));
|
|
6512
|
-
var
|
|
6525
|
+
var import_type_guards17 = require("@wistia/type-guards");
|
|
6513
6526
|
var import_jsx_runtime174 = require("react/jsx-runtime");
|
|
6514
6527
|
var StyledLabelDescription = import_styled_components29.default.div`
|
|
6515
6528
|
color: var(--wui-color-text-secondary);
|
|
@@ -6521,7 +6534,7 @@ var LabelDescription = ({
|
|
|
6521
6534
|
children,
|
|
6522
6535
|
...props
|
|
6523
6536
|
}) => {
|
|
6524
|
-
if ((0,
|
|
6537
|
+
if ((0, import_type_guards17.isNil)(children)) {
|
|
6525
6538
|
return null;
|
|
6526
6539
|
}
|
|
6527
6540
|
return /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(StyledLabelDescription, { ...props, children });
|
|
@@ -6618,7 +6631,7 @@ var Checkbox = (0, import_react18.forwardRef)(
|
|
|
6618
6631
|
...otherProps
|
|
6619
6632
|
}, ref) => {
|
|
6620
6633
|
const generatedId = (0, import_react18.useId)();
|
|
6621
|
-
const computedId = (0,
|
|
6634
|
+
const computedId = (0, import_type_guards18.isNonEmptyString)(id) ? id : `wistia-ui-checkbox-group-${generatedId}`;
|
|
6622
6635
|
return /* @__PURE__ */ (0, import_jsx_runtime175.jsxs)(StyledCheckboxWrapper, { children: [
|
|
6623
6636
|
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
6624
6637
|
StyledCheckboxRoot,
|
|
@@ -6711,7 +6724,7 @@ Divider.displayName = "Divider";
|
|
|
6711
6724
|
// src/components/Form/Form.tsx
|
|
6712
6725
|
var import_react20 = require("react");
|
|
6713
6726
|
var import_styled_components33 = __toESM(require("styled-components"));
|
|
6714
|
-
var
|
|
6727
|
+
var import_type_guards19 = require("@wistia/type-guards");
|
|
6715
6728
|
|
|
6716
6729
|
// src/components/Stack/Stack.tsx
|
|
6717
6730
|
var import_react19 = require("react");
|
|
@@ -6765,7 +6778,7 @@ var FormComponent = ({ children, action, values = {}, validate, fullWidth = fals
|
|
|
6765
6778
|
const id = props.id ?? autoId;
|
|
6766
6779
|
const handleValidate = (nextFormData) => {
|
|
6767
6780
|
const nextData = Object.fromEntries(nextFormData.entries());
|
|
6768
|
-
if ((0,
|
|
6781
|
+
if ((0, import_type_guards19.isUndefined)(validate)) {
|
|
6769
6782
|
return {};
|
|
6770
6783
|
}
|
|
6771
6784
|
return validate(nextData);
|
|
@@ -6775,7 +6788,7 @@ var FormComponent = ({ children, action, values = {}, validate, fullWidth = fals
|
|
|
6775
6788
|
props.onBlur(event);
|
|
6776
6789
|
}
|
|
6777
6790
|
const formData = new FormData(event.currentTarget);
|
|
6778
|
-
if ((0,
|
|
6791
|
+
if ((0, import_type_guards19.isNotUndefined)(validate)) {
|
|
6779
6792
|
handleValidate(formData);
|
|
6780
6793
|
}
|
|
6781
6794
|
};
|
|
@@ -6871,7 +6884,7 @@ var useFormState = (action, initialData = {}) => {
|
|
|
6871
6884
|
|
|
6872
6885
|
// src/components/Form/FormErrorSummary.tsx
|
|
6873
6886
|
var import_react22 = require("react");
|
|
6874
|
-
var
|
|
6887
|
+
var import_type_guards20 = require("@wistia/type-guards");
|
|
6875
6888
|
var import_jsx_runtime179 = require("react/jsx-runtime");
|
|
6876
6889
|
var ErrorItem = ({ name, error, formId }) => {
|
|
6877
6890
|
return /* @__PURE__ */ (0, import_jsx_runtime179.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(Link, { href: `${formId}-${name}`, children: error }) }, name);
|
|
@@ -6885,8 +6898,8 @@ var FormErrorSummary = ({ description }) => {
|
|
|
6885
6898
|
}
|
|
6886
6899
|
return /* @__PURE__ */ (0, import_jsx_runtime179.jsxs)("div", { ref, children: [
|
|
6887
6900
|
/* @__PURE__ */ (0, import_jsx_runtime179.jsx)("p", { children: description }),
|
|
6888
|
-
/* @__PURE__ */ (0, import_jsx_runtime179.jsx)("ul", { children: Object.entries(errors).filter(([, error]) => (0,
|
|
6889
|
-
([name, error]) => (0,
|
|
6901
|
+
/* @__PURE__ */ (0, import_jsx_runtime179.jsx)("ul", { children: Object.entries(errors).filter(([, error]) => (0, import_type_guards20.isNotUndefined)(error)).map(
|
|
6902
|
+
([name, error]) => (0, import_type_guards20.isArray)(error) ? error.map((err) => /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
6890
6903
|
ErrorItem,
|
|
6891
6904
|
{
|
|
6892
6905
|
error: err,
|
|
@@ -6910,7 +6923,7 @@ var FormErrorSummary = ({ description }) => {
|
|
|
6910
6923
|
// src/components/FormField/FormField.tsx
|
|
6911
6924
|
var import_react26 = require("react");
|
|
6912
6925
|
var import_styled_components36 = __toESM(require("styled-components"));
|
|
6913
|
-
var
|
|
6926
|
+
var import_type_guards21 = require("@wistia/type-guards");
|
|
6914
6927
|
|
|
6915
6928
|
// src/components/Text/Text.tsx
|
|
6916
6929
|
var import_react23 = require("react");
|
|
@@ -7165,7 +7178,7 @@ var StyledErrorList = import_styled_components36.default.ul`
|
|
|
7165
7178
|
gap: var(--wui-space-01);
|
|
7166
7179
|
`;
|
|
7167
7180
|
var ErrorMessages = ({ errors, id }) => {
|
|
7168
|
-
const isMultipleErrors = (0,
|
|
7181
|
+
const isMultipleErrors = (0, import_type_guards21.isArray)(errors);
|
|
7169
7182
|
return isMultipleErrors ? /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(StyledErrorList, { children: errors.map((error, index) => /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
7170
7183
|
Text,
|
|
7171
7184
|
{
|
|
@@ -7208,19 +7221,19 @@ var FormField = ({
|
|
|
7208
7221
|
label: isInlineLabel ? label : void 0,
|
|
7209
7222
|
...props
|
|
7210
7223
|
};
|
|
7211
|
-
if ((0,
|
|
7224
|
+
if ((0, import_type_guards21.isUndefined)(value) && (0, import_type_guards21.isNotUndefined)(defaultValue)) {
|
|
7212
7225
|
childProps = {
|
|
7213
7226
|
...childProps,
|
|
7214
7227
|
defaultValue
|
|
7215
7228
|
};
|
|
7216
7229
|
}
|
|
7217
|
-
if ((0,
|
|
7218
|
-
const computedName = (0,
|
|
7230
|
+
if ((0, import_type_guards21.isNotNil)(checkboxGroup)) {
|
|
7231
|
+
const computedName = (0, import_type_guards21.isNotNil)(checkboxGroup.name) ? `${checkboxGroup.name}[${name}]` : name;
|
|
7219
7232
|
const handleChange = (event) => {
|
|
7220
|
-
if ((0,
|
|
7233
|
+
if ((0, import_type_guards21.isNotUndefined)(props.onChange)) {
|
|
7221
7234
|
props.onChange(event);
|
|
7222
7235
|
}
|
|
7223
|
-
if ((0,
|
|
7236
|
+
if ((0, import_type_guards21.isNotUndefined)(checkboxGroup.onChange)) {
|
|
7224
7237
|
checkboxGroup.onChange(event);
|
|
7225
7238
|
}
|
|
7226
7239
|
};
|
|
@@ -7228,15 +7241,15 @@ var FormField = ({
|
|
|
7228
7241
|
...childProps,
|
|
7229
7242
|
name: computedName,
|
|
7230
7243
|
onChange: handleChange,
|
|
7231
|
-
"aria-invalid": (0,
|
|
7232
|
-
"aria-describedby": (0,
|
|
7244
|
+
"aria-invalid": (0, import_type_guards21.isNotNil)(error),
|
|
7245
|
+
"aria-describedby": (0, import_type_guards21.isNotNil)(error) ? `${id}-error` : void 0
|
|
7233
7246
|
};
|
|
7234
7247
|
}
|
|
7235
7248
|
import_react26.Children.only(children);
|
|
7236
7249
|
return /* @__PURE__ */ (0, import_jsx_runtime183.jsxs)(StyledFormField, { ...props, children: [
|
|
7237
7250
|
!isInlineLabel && /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(Label, { htmlFor: id, children: label }),
|
|
7238
7251
|
(0, import_react26.cloneElement)(children, childProps),
|
|
7239
|
-
(0,
|
|
7252
|
+
(0, import_type_guards21.isNotNil)(computedError) ? /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
7240
7253
|
ErrorMessages,
|
|
7241
7254
|
{
|
|
7242
7255
|
errors: computedError,
|
|
@@ -7309,7 +7322,7 @@ IconButton.displayName = "IconButton";
|
|
|
7309
7322
|
// src/components/Input/Input.tsx
|
|
7310
7323
|
var import_react29 = require("react");
|
|
7311
7324
|
var import_styled_components38 = __toESM(require("styled-components"));
|
|
7312
|
-
var
|
|
7325
|
+
var import_type_guards22 = require("@wistia/type-guards");
|
|
7313
7326
|
var import_jsx_runtime186 = require("react/jsx-runtime");
|
|
7314
7327
|
var inputStyles = import_styled_components38.css`
|
|
7315
7328
|
--wui-input-color-bg: var(--wui-color-bg-surface);
|
|
@@ -7397,7 +7410,7 @@ var StyledInputContainer = import_styled_components38.default.div`
|
|
|
7397
7410
|
}
|
|
7398
7411
|
`;
|
|
7399
7412
|
var isValidRef = (ref) => {
|
|
7400
|
-
return typeof ref === "object" && ref !== null && "current" in ref && (0,
|
|
7413
|
+
return typeof ref === "object" && ref !== null && "current" in ref && (0, import_type_guards22.isNotNil)(ref.current);
|
|
7401
7414
|
};
|
|
7402
7415
|
var Input = (0, import_react29.forwardRef)(
|
|
7403
7416
|
({
|
|
@@ -7412,24 +7425,24 @@ var Input = (0, import_react29.forwardRef)(
|
|
|
7412
7425
|
const internalRef = (0, import_react29.useRef)();
|
|
7413
7426
|
const ref = isValidRef(externalRef) ? externalRef : internalRef;
|
|
7414
7427
|
let leftIconToDisplay = leftIcon;
|
|
7415
|
-
if ((0,
|
|
7428
|
+
if ((0, import_type_guards22.isNil)(leftIcon) && type === "search") {
|
|
7416
7429
|
leftIconToDisplay = /* @__PURE__ */ (0, import_jsx_runtime186.jsx)(Icon, { type: "search" });
|
|
7417
7430
|
}
|
|
7418
|
-
if ((0,
|
|
7431
|
+
if ((0, import_type_guards22.isNotNil)(leftIconToDisplay)) {
|
|
7419
7432
|
leftIconToDisplay = (0, import_react29.cloneElement)(leftIconToDisplay, {
|
|
7420
7433
|
size: "md",
|
|
7421
7434
|
className: "wui-input-left-icon"
|
|
7422
7435
|
});
|
|
7423
7436
|
}
|
|
7424
7437
|
let rightIconToDisplay = rightIcon;
|
|
7425
|
-
if ((0,
|
|
7438
|
+
if ((0, import_type_guards22.isNotNil)(rightIconToDisplay)) {
|
|
7426
7439
|
rightIconToDisplay = (0, import_react29.cloneElement)(rightIconToDisplay, {
|
|
7427
7440
|
size: "md",
|
|
7428
7441
|
className: "wui-input-right-icon"
|
|
7429
7442
|
});
|
|
7430
7443
|
}
|
|
7431
7444
|
const handleFocus = (event) => {
|
|
7432
|
-
if ((0,
|
|
7445
|
+
if ((0, import_type_guards22.isNotNil)(props.onFocus)) {
|
|
7433
7446
|
props.onFocus(event);
|
|
7434
7447
|
}
|
|
7435
7448
|
if (autoSelect && ref && "current" in ref) {
|
|
@@ -7472,7 +7485,7 @@ Input.displayName = "Input";
|
|
|
7472
7485
|
// src/components/Menu/Menu.tsx
|
|
7473
7486
|
var import_styled_components39 = __toESM(require("styled-components"));
|
|
7474
7487
|
var import_react_dropdown_menu = require("@radix-ui/react-dropdown-menu");
|
|
7475
|
-
var
|
|
7488
|
+
var import_type_guards23 = require("@wistia/type-guards");
|
|
7476
7489
|
var import_jsx_runtime187 = require("react/jsx-runtime");
|
|
7477
7490
|
var open = import_styled_components39.keyframes`
|
|
7478
7491
|
from {
|
|
@@ -7573,7 +7586,7 @@ var Menu = ({
|
|
|
7573
7586
|
...props
|
|
7574
7587
|
}) => {
|
|
7575
7588
|
let controlProps = {
|
|
7576
|
-
...(0,
|
|
7589
|
+
...(0, import_type_guards23.isNotNil)(onOpenChange) && (0, import_type_guards23.isNotNil)(isOpen) ? { open: isOpen, onOpenChange } : {}
|
|
7577
7590
|
};
|
|
7578
7591
|
if (disabled) {
|
|
7579
7592
|
controlProps = {
|
|
@@ -7587,7 +7600,7 @@ var Menu = ({
|
|
|
7587
7600
|
modal: false,
|
|
7588
7601
|
...controlProps,
|
|
7589
7602
|
children: [
|
|
7590
|
-
/* @__PURE__ */ (0, import_jsx_runtime187.jsx)(import_react_dropdown_menu.DropdownMenuTrigger, { asChild: true, children: (0,
|
|
7603
|
+
/* @__PURE__ */ (0, import_jsx_runtime187.jsx)(import_react_dropdown_menu.DropdownMenuTrigger, { asChild: true, children: (0, import_type_guards23.isNotUndefined)(trigger) ? trigger : /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(
|
|
7591
7604
|
Button,
|
|
7592
7605
|
{
|
|
7593
7606
|
"aria-expanded": isOpen,
|
|
@@ -7648,12 +7661,12 @@ MenuLabel.displayName = "MenuLabel";
|
|
|
7648
7661
|
var import_react31 = require("react");
|
|
7649
7662
|
var import_styled_components43 = __toESM(require("styled-components"));
|
|
7650
7663
|
var import_react_dropdown_menu3 = require("@radix-ui/react-dropdown-menu");
|
|
7651
|
-
var
|
|
7664
|
+
var import_type_guards25 = require("@wistia/type-guards");
|
|
7652
7665
|
|
|
7653
7666
|
// src/components/Menu/MenuItemButton.tsx
|
|
7654
7667
|
var import_react30 = require("react");
|
|
7655
7668
|
var import_styled_components41 = __toESM(require("styled-components"));
|
|
7656
|
-
var
|
|
7669
|
+
var import_type_guards24 = require("@wistia/type-guards");
|
|
7657
7670
|
var import_jsx_runtime189 = require("react/jsx-runtime");
|
|
7658
7671
|
var StyledButton3 = (0, import_styled_components41.default)(Button)`
|
|
7659
7672
|
${({ colorScheme }) => getColorScheme(colorScheme)};
|
|
@@ -7726,7 +7739,7 @@ var StyledBadgeContainer = import_styled_components41.default.div`
|
|
|
7726
7739
|
var MenuItemButton = (0, import_react30.forwardRef)(({ children, appearance, command, icon, ...props }, ref) => {
|
|
7727
7740
|
let { colorScheme, badge } = props;
|
|
7728
7741
|
if (appearance === "dangerous") {
|
|
7729
|
-
if ((0,
|
|
7742
|
+
if ((0, import_type_guards24.isNotUndefined)(colorScheme)) {
|
|
7730
7743
|
console.warn("colorScheme prop is ignored when appearance is dangerous");
|
|
7731
7744
|
}
|
|
7732
7745
|
colorScheme = "error";
|
|
@@ -7756,7 +7769,7 @@ var MenuItemButton = (0, import_react30.forwardRef)(({ children, appearance, com
|
|
|
7756
7769
|
children: [
|
|
7757
7770
|
props.leftIcon ? /* @__PURE__ */ (0, import_jsx_runtime189.jsx)(StyledLeftIconContainer, { children: props.leftIcon }) : null,
|
|
7758
7771
|
/* @__PURE__ */ (0, import_jsx_runtime189.jsx)(StyledLabelAndDescriptionContainer, { children }),
|
|
7759
|
-
(0,
|
|
7772
|
+
(0, import_type_guards24.isNotNil)(badge) || (0, import_type_guards24.isNotNil)(command) ? /* @__PURE__ */ (0, import_jsx_runtime189.jsx)(StyledBadgeContainer, { children: badge ?? command }) : null,
|
|
7760
7773
|
props.rightIcon ? /* @__PURE__ */ (0, import_jsx_runtime189.jsx)(StyledRightIconContainer, { children: props.rightIcon }) : null
|
|
7761
7774
|
]
|
|
7762
7775
|
}
|
|
@@ -7802,8 +7815,8 @@ var StyledSubTrigger = (0, import_styled_components43.default)(import_react_drop
|
|
|
7802
7815
|
`;
|
|
7803
7816
|
var SubMenuTrigger = (props) => {
|
|
7804
7817
|
const { isSmAndUp } = useMq();
|
|
7805
|
-
const
|
|
7806
|
-
return /* @__PURE__ */ (0, import_jsx_runtime191.jsx)(
|
|
7818
|
+
const Trigger3 = isSmAndUp ? StyledSubTrigger : import_react_dropdown_menu3.DropdownMenuItem;
|
|
7819
|
+
return /* @__PURE__ */ (0, import_jsx_runtime191.jsx)(Trigger3, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime191.jsx)(
|
|
7807
7820
|
MenuItemButton,
|
|
7808
7821
|
{
|
|
7809
7822
|
...props,
|
|
@@ -7823,7 +7836,7 @@ var SubMenu = ({
|
|
|
7823
7836
|
return isSmAndUp ? /* @__PURE__ */ (0, import_jsx_runtime191.jsxs)(import_react_dropdown_menu3.DropdownMenuSub, { onOpenChange, children: [
|
|
7824
7837
|
/* @__PURE__ */ (0, import_jsx_runtime191.jsxs)(SubMenuTrigger, { ...props, children: [
|
|
7825
7838
|
/* @__PURE__ */ (0, import_jsx_runtime191.jsx)(MenuItemLabel, { children: label }),
|
|
7826
|
-
(0,
|
|
7839
|
+
(0, import_type_guards25.isNotNil)(description) ? /* @__PURE__ */ (0, import_jsx_runtime191.jsx)(MenuItemDescription, { children: description }) : null
|
|
7827
7840
|
] }),
|
|
7828
7841
|
/* @__PURE__ */ (0, import_jsx_runtime191.jsx)(import_react_dropdown_menu3.DropdownMenuPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime191.jsx)(SubMenuContent, { children }) })
|
|
7829
7842
|
] }) : /* @__PURE__ */ (0, import_jsx_runtime191.jsxs)(import_react_dropdown_menu3.DropdownMenuGroup, { children: [
|
|
@@ -8003,7 +8016,7 @@ CheckboxMenuItem.displayName = "CheckboxMenuItem";
|
|
|
8003
8016
|
var import_react36 = require("react");
|
|
8004
8017
|
var import_styled_components49 = __toESM(require("styled-components"));
|
|
8005
8018
|
var import_react_dialog4 = require("@radix-ui/react-dialog");
|
|
8006
|
-
var
|
|
8019
|
+
var import_type_guards28 = require("@wistia/type-guards");
|
|
8007
8020
|
|
|
8008
8021
|
// src/components/Modal/ModalHeader.tsx
|
|
8009
8022
|
var import_styled_components46 = __toESM(require("styled-components"));
|
|
@@ -8030,7 +8043,7 @@ var ModalCloseButton = () => {
|
|
|
8030
8043
|
|
|
8031
8044
|
// src/components/ScreenReaderOnly/ScreenReaderOnly.tsx
|
|
8032
8045
|
var import_styled_components45 = __toESM(require("styled-components"));
|
|
8033
|
-
var
|
|
8046
|
+
var import_type_guards26 = require("@wistia/type-guards");
|
|
8034
8047
|
var import_jsx_runtime197 = require("react/jsx-runtime");
|
|
8035
8048
|
var VisuallyHidden = import_styled_components45.default.div({ ...visuallyHiddenStyle });
|
|
8036
8049
|
var VisuallyHiddenButFocusable = import_styled_components45.default.div({
|
|
@@ -8042,7 +8055,7 @@ var ScreenReaderOnly = ({
|
|
|
8042
8055
|
focusable = false,
|
|
8043
8056
|
...otherProps
|
|
8044
8057
|
}) => {
|
|
8045
|
-
const accessibleText = (0,
|
|
8058
|
+
const accessibleText = (0, import_type_guards26.isNotNil)(text) ? text : children;
|
|
8046
8059
|
if (focusable) {
|
|
8047
8060
|
return /* @__PURE__ */ (0, import_jsx_runtime197.jsx)(VisuallyHiddenButFocusable, { ...otherProps, children: accessibleText });
|
|
8048
8061
|
}
|
|
@@ -8089,7 +8102,7 @@ var import_react_dialog3 = require("@radix-ui/react-dialog");
|
|
|
8089
8102
|
|
|
8090
8103
|
// src/private/hooks/useFocusRestore/useFocusRestore.ts
|
|
8091
8104
|
var import_react33 = require("react");
|
|
8092
|
-
var
|
|
8105
|
+
var import_type_guards27 = require("@wistia/type-guards");
|
|
8093
8106
|
var useFocusRestore = () => {
|
|
8094
8107
|
const previouslyFocusedRef = (0, import_react33.useRef)(null);
|
|
8095
8108
|
(0, import_react33.useEffect)(() => {
|
|
@@ -8097,7 +8110,7 @@ var useFocusRestore = () => {
|
|
|
8097
8110
|
}, []);
|
|
8098
8111
|
(0, import_react33.useEffect)(() => {
|
|
8099
8112
|
return () => {
|
|
8100
|
-
if ((0,
|
|
8113
|
+
if ((0, import_type_guards27.isNotNil)(previouslyFocusedRef.current)) {
|
|
8101
8114
|
setTimeout(() => {
|
|
8102
8115
|
previouslyFocusedRef.current?.focus();
|
|
8103
8116
|
}, 0);
|
|
@@ -8241,7 +8254,7 @@ var Modal = (0, import_react36.forwardRef)(
|
|
|
8241
8254
|
import_react_dialog4.Root,
|
|
8242
8255
|
{
|
|
8243
8256
|
onOpenChange: (open2) => {
|
|
8244
|
-
if (!open2 && (0,
|
|
8257
|
+
if (!open2 && (0, import_type_guards28.isNotNil)(onRequestClose)) {
|
|
8245
8258
|
onRequestClose();
|
|
8246
8259
|
}
|
|
8247
8260
|
},
|
|
@@ -8255,7 +8268,7 @@ var Modal = (0, import_react36.forwardRef)(
|
|
|
8255
8268
|
"aria-describedby": void 0,
|
|
8256
8269
|
fullHeight,
|
|
8257
8270
|
onOpenAutoFocus: (event) => {
|
|
8258
|
-
if ((0,
|
|
8271
|
+
if ((0, import_type_guards28.isNotNil)(initialFocusRef) && initialFocusRef.current) {
|
|
8259
8272
|
event.preventDefault();
|
|
8260
8273
|
requestAnimationFrame(() => {
|
|
8261
8274
|
initialFocusRef.current?.focus();
|
|
@@ -8287,7 +8300,7 @@ Modal.displayName = "Modal";
|
|
|
8287
8300
|
// src/components/Radio/Radio.tsx
|
|
8288
8301
|
var import_react37 = require("react");
|
|
8289
8302
|
var import_styled_components50 = __toESM(require("styled-components"));
|
|
8290
|
-
var
|
|
8303
|
+
var import_type_guards29 = require("@wistia/type-guards");
|
|
8291
8304
|
var import_jsx_runtime202 = require("react/jsx-runtime");
|
|
8292
8305
|
var StyledLabelWrapper2 = import_styled_components50.default.div`
|
|
8293
8306
|
display: flex;
|
|
@@ -8373,7 +8386,7 @@ var Radio = (0, import_react37.forwardRef)(
|
|
|
8373
8386
|
...otherProps
|
|
8374
8387
|
}, ref) => {
|
|
8375
8388
|
const generatedId = (0, import_react37.useId)();
|
|
8376
|
-
const computedId = (0,
|
|
8389
|
+
const computedId = (0, import_type_guards29.isNonEmptyString)(id) ? id : `ui-radio-${generatedId}`;
|
|
8377
8390
|
return /* @__PURE__ */ (0, import_jsx_runtime202.jsxs)(
|
|
8378
8391
|
StyledRadioWrapper,
|
|
8379
8392
|
{
|
|
@@ -8417,7 +8430,7 @@ Radio.displayName = "Radio";
|
|
|
8417
8430
|
// src/components/Tag/Tag.tsx
|
|
8418
8431
|
var import_react38 = require("react");
|
|
8419
8432
|
var import_styled_components51 = __toESM(require("styled-components"));
|
|
8420
|
-
var
|
|
8433
|
+
var import_type_guards30 = require("@wistia/type-guards");
|
|
8421
8434
|
var import_jsx_runtime203 = require("react/jsx-runtime");
|
|
8422
8435
|
var TagLabel = import_styled_components51.default.a`
|
|
8423
8436
|
${({ $colorScheme }) => getColorScheme($colorScheme)};
|
|
@@ -8491,10 +8504,10 @@ var StyledTag = import_styled_components51.default.div`
|
|
|
8491
8504
|
overflow: hidden;
|
|
8492
8505
|
`;
|
|
8493
8506
|
var RemoveButton = ({ onClickRemove, onClickRemoveLabel, colorScheme }) => {
|
|
8494
|
-
if ((0,
|
|
8507
|
+
if ((0, import_type_guards30.isNil)(onClickRemove)) {
|
|
8495
8508
|
return null;
|
|
8496
8509
|
}
|
|
8497
|
-
if ((0,
|
|
8510
|
+
if ((0, import_type_guards30.isNil)(onClickRemoveLabel)) {
|
|
8498
8511
|
throw new Error(
|
|
8499
8512
|
"for accessibility, onClickRemoveLabel must be provided if onClickRemove is provided"
|
|
8500
8513
|
);
|
|
@@ -8523,7 +8536,7 @@ var RemoveButton = ({ onClickRemove, onClickRemoveLabel, colorScheme }) => {
|
|
|
8523
8536
|
};
|
|
8524
8537
|
var Tag = (0, import_react38.forwardRef)(
|
|
8525
8538
|
({ onClickRemove, colorScheme = "inherit", href, label, onClickRemoveLabel, ...otherProps }, ref) => {
|
|
8526
|
-
const labelProps = (0,
|
|
8539
|
+
const labelProps = (0, import_type_guards30.isNotNil)(href) && (0, import_type_guards30.isNonEmptyString)(href) ? { href, as: "a" } : { as: "span" };
|
|
8527
8540
|
return /* @__PURE__ */ (0, import_jsx_runtime203.jsxs)(
|
|
8528
8541
|
StyledTag,
|
|
8529
8542
|
{
|
|
@@ -8661,7 +8674,7 @@ Tooltip.displayName = "Tooltip";
|
|
|
8661
8674
|
|
|
8662
8675
|
// src/components/WistiaLogo/WistiaLogo.tsx
|
|
8663
8676
|
var import_styled_components53 = __toESM(require("styled-components"));
|
|
8664
|
-
var
|
|
8677
|
+
var import_type_guards31 = require("@wistia/type-guards");
|
|
8665
8678
|
var import_jsx_runtime205 = require("react/jsx-runtime");
|
|
8666
8679
|
var renderBrandmark = (brandmarkColor, iconOnly) => {
|
|
8667
8680
|
if (iconOnly) {
|
|
@@ -8755,7 +8768,7 @@ var WistiaLogo = ({
|
|
|
8755
8768
|
...otherProps,
|
|
8756
8769
|
children: [
|
|
8757
8770
|
/* @__PURE__ */ (0, import_jsx_runtime205.jsx)("title", { children: title }),
|
|
8758
|
-
(0,
|
|
8771
|
+
(0, import_type_guards31.isNotNil)(description) ? /* @__PURE__ */ (0, import_jsx_runtime205.jsx)("desc", { children: description }) : null,
|
|
8759
8772
|
renderBrandmark(brandmarkColor, iconOnly),
|
|
8760
8773
|
renderLogotype(logotypeColor, iconOnly)
|
|
8761
8774
|
]
|
|
@@ -8764,6 +8777,190 @@ var WistiaLogo = ({
|
|
|
8764
8777
|
return href !== void 0 ? /* @__PURE__ */ (0, import_jsx_runtime205.jsx)("a", { href, children: Logo }) : Logo;
|
|
8765
8778
|
};
|
|
8766
8779
|
WistiaLogo.displayName = "WistiaLogo";
|
|
8780
|
+
|
|
8781
|
+
// src/components/Select/Select.tsx
|
|
8782
|
+
var import_react_select = require("@radix-ui/react-select");
|
|
8783
|
+
var import_react39 = require("react");
|
|
8784
|
+
var import_styled_components54 = __toESM(require("styled-components"));
|
|
8785
|
+
var import_jsx_runtime206 = require("react/jsx-runtime");
|
|
8786
|
+
var StyledTrigger = (0, import_styled_components54.default)(import_react_select.Trigger)`
|
|
8787
|
+
${({ $colorScheme }) => getColorScheme($colorScheme)};
|
|
8788
|
+
--wui-select-color-bg: var(--wui-color-bg-surface);
|
|
8789
|
+
--wui-select-color-bg-disabled: var(--wui-color-bg-surface-disabled);
|
|
8790
|
+
--wui-select-color-border: var(--wui-color-border);
|
|
8791
|
+
--wui-select-color-border-focus: var(--wui-color-border-active);
|
|
8792
|
+
--wui-select-color-border-error: var(--wui-color-border-error);
|
|
8793
|
+
--wui-select-color-border-disabled: var(--wui-color-border-disabled);
|
|
8794
|
+
--wui-select-border-radius: var(--wui-border-radius-rounded);
|
|
8795
|
+
--wui-select-multiline-border-radius: var(--wui-border-radius-02);
|
|
8796
|
+
--wui-select-vertical-padding: var(--wui-space-02);
|
|
8797
|
+
--wui-select-horizontal-padding: var(--wui-space-03);
|
|
8798
|
+
--wui-select-placeholder: var(--wui-gray-10);
|
|
8799
|
+
--wui-select-color-text-error: var(--wui-color-text-error);
|
|
8800
|
+
|
|
8801
|
+
padding: var(--wui-select-vertical-padding) var(--wui-select-horizontal-padding);
|
|
8802
|
+
background-color: var(--wui-select-color-bg);
|
|
8803
|
+
border: 1px solid var(--wui-select-color-border);
|
|
8804
|
+
border-radius: var(--wui-select-border-radius);
|
|
8805
|
+
min-width: 200px;
|
|
8806
|
+
text-align: left;
|
|
8807
|
+
display: inline-flex;
|
|
8808
|
+
align-items: center;
|
|
8809
|
+
justify-content: space-between;
|
|
8810
|
+
width: ${({ $fullWidth = false }) => $fullWidth ? "100%" : "auto"};
|
|
8811
|
+
|
|
8812
|
+
&[aria-expanded='true'],
|
|
8813
|
+
&:focus {
|
|
8814
|
+
outline: 2px solid var(--wui-color-focus-ring);
|
|
8815
|
+
}
|
|
8816
|
+
|
|
8817
|
+
&[aria-invalid='true'] {
|
|
8818
|
+
outline: 2px solid var(--wui-select-color-border-error);
|
|
8819
|
+
color: var(--wui-select-color-text-error);
|
|
8820
|
+
}
|
|
8821
|
+
|
|
8822
|
+
&:disabled {
|
|
8823
|
+
border-color: var(--wui-color-bg-surface-disabled);
|
|
8824
|
+
background-color: var(--wui-color-bg-surface-disabled);
|
|
8825
|
+
}
|
|
8826
|
+
`;
|
|
8827
|
+
var StyledContent2 = (0, import_styled_components54.default)(import_react_select.Content)`
|
|
8828
|
+
--wui-select-content-border: var(--wui-color-border);
|
|
8829
|
+
--wui-select-content-bg: var(--wui-color-bg-surface);
|
|
8830
|
+
--wui-select-content-border-radius: var(--wui-border-radius-02);
|
|
8831
|
+
--wui-select-option-padding: var(--wui-space-02);
|
|
8832
|
+
--wui-select-option-inner-gap: var(--wui-space-03);
|
|
8833
|
+
--wui-select-option-bg-hover: var(--wui-color-bg-surface-hover);
|
|
8834
|
+
|
|
8835
|
+
overflow: hidden;
|
|
8836
|
+
transform: translateY(8px);
|
|
8837
|
+
background-color: var(--wui-select-content-bg);
|
|
8838
|
+
border: 1px solid var(--wui-select-content-border);
|
|
8839
|
+
border-radius: var(--wui-select-content-border-radius);
|
|
8840
|
+
padding: var(--wui-select-option-padding);
|
|
8841
|
+
min-width: 200px;
|
|
8842
|
+
`;
|
|
8843
|
+
var Select = (0, import_react39.forwardRef)(
|
|
8844
|
+
({
|
|
8845
|
+
colorScheme = "inherit",
|
|
8846
|
+
children,
|
|
8847
|
+
onChange = () => null,
|
|
8848
|
+
placeholder = "Select...",
|
|
8849
|
+
fullWidth = false,
|
|
8850
|
+
...props
|
|
8851
|
+
}, forwardedRef) => {
|
|
8852
|
+
const responsiveFullWidth = useResponsiveProp(fullWidth);
|
|
8853
|
+
return /* @__PURE__ */ (0, import_jsx_runtime206.jsxs)(
|
|
8854
|
+
import_react_select.Root,
|
|
8855
|
+
{
|
|
8856
|
+
...props,
|
|
8857
|
+
onValueChange: onChange,
|
|
8858
|
+
children: [
|
|
8859
|
+
/* @__PURE__ */ (0, import_jsx_runtime206.jsxs)(
|
|
8860
|
+
StyledTrigger,
|
|
8861
|
+
{
|
|
8862
|
+
ref: forwardedRef,
|
|
8863
|
+
$colorScheme: colorScheme,
|
|
8864
|
+
$fullWidth: responsiveFullWidth,
|
|
8865
|
+
...props,
|
|
8866
|
+
children: [
|
|
8867
|
+
/* @__PURE__ */ (0, import_jsx_runtime206.jsx)(import_react_select.Value, { placeholder }),
|
|
8868
|
+
/* @__PURE__ */ (0, import_jsx_runtime206.jsx)(
|
|
8869
|
+
Icon,
|
|
8870
|
+
{
|
|
8871
|
+
size: "md",
|
|
8872
|
+
type: "caret-down"
|
|
8873
|
+
}
|
|
8874
|
+
)
|
|
8875
|
+
]
|
|
8876
|
+
}
|
|
8877
|
+
),
|
|
8878
|
+
/* @__PURE__ */ (0, import_jsx_runtime206.jsx)(import_react_select.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime206.jsxs)(StyledContent2, { position: "popper", children: [
|
|
8879
|
+
/* @__PURE__ */ (0, import_jsx_runtime206.jsx)(import_react_select.ScrollUpButton, { children: /* @__PURE__ */ (0, import_jsx_runtime206.jsx)(Icon, { type: "caret-up" }) }),
|
|
8880
|
+
/* @__PURE__ */ (0, import_jsx_runtime206.jsx)(import_react_select.Viewport, { children }),
|
|
8881
|
+
/* @__PURE__ */ (0, import_jsx_runtime206.jsx)(import_react_select.ScrollDownButton, { children: /* @__PURE__ */ (0, import_jsx_runtime206.jsx)(Icon, { type: "caret-down" }) })
|
|
8882
|
+
] }) })
|
|
8883
|
+
]
|
|
8884
|
+
}
|
|
8885
|
+
);
|
|
8886
|
+
}
|
|
8887
|
+
);
|
|
8888
|
+
Select.displayName = "Select";
|
|
8889
|
+
|
|
8890
|
+
// src/components/Select/Option.tsx
|
|
8891
|
+
var import_react_select2 = require("@radix-ui/react-select");
|
|
8892
|
+
var import_react40 = require("react");
|
|
8893
|
+
var import_styled_components55 = __toESM(require("styled-components"));
|
|
8894
|
+
var import_jsx_runtime207 = require("react/jsx-runtime");
|
|
8895
|
+
var StyledItem = (0, import_styled_components55.default)(import_react_select2.Item)`
|
|
8896
|
+
${variantStyleMap2.body3};
|
|
8897
|
+
display: flex;
|
|
8898
|
+
padding: var(--wui-select-option-padding);
|
|
8899
|
+
gap: var(--wui-select-option-inner-gap);
|
|
8900
|
+
font-size: var(--font-size);
|
|
8901
|
+
font-weight: var(--font-weight);
|
|
8902
|
+
border-radius: var(--wui-border-radius-01);
|
|
8903
|
+
|
|
8904
|
+
&:hover,
|
|
8905
|
+
&:focus-visible {
|
|
8906
|
+
background-color: var(--wui-select-option-bg-hover);
|
|
8907
|
+
outline: none;
|
|
8908
|
+
}
|
|
8909
|
+
|
|
8910
|
+
&[aria-disabled='true'] {
|
|
8911
|
+
color: var(--wui-color-text-disabled);
|
|
8912
|
+
}
|
|
8913
|
+
|
|
8914
|
+
&[aria-disabled='true']:hover {
|
|
8915
|
+
background-color: transparent;
|
|
8916
|
+
}
|
|
8917
|
+
`;
|
|
8918
|
+
var StyledIconContainer = import_styled_components55.default.span`
|
|
8919
|
+
width: 12px;
|
|
8920
|
+
`;
|
|
8921
|
+
var Option = (0, import_react40.forwardRef)(
|
|
8922
|
+
({ children, ...props }, forwardedRef) => {
|
|
8923
|
+
return /* @__PURE__ */ (0, import_jsx_runtime207.jsxs)(
|
|
8924
|
+
StyledItem,
|
|
8925
|
+
{
|
|
8926
|
+
...props,
|
|
8927
|
+
ref: forwardedRef,
|
|
8928
|
+
children: [
|
|
8929
|
+
/* @__PURE__ */ (0, import_jsx_runtime207.jsx)(StyledIconContainer, { children: /* @__PURE__ */ (0, import_jsx_runtime207.jsx)(import_react_select2.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime207.jsx)(
|
|
8930
|
+
Icon,
|
|
8931
|
+
{
|
|
8932
|
+
size: "sm",
|
|
8933
|
+
type: "checkmark"
|
|
8934
|
+
}
|
|
8935
|
+
) }) }),
|
|
8936
|
+
/* @__PURE__ */ (0, import_jsx_runtime207.jsx)(import_react_select2.ItemText, { children })
|
|
8937
|
+
]
|
|
8938
|
+
}
|
|
8939
|
+
);
|
|
8940
|
+
}
|
|
8941
|
+
);
|
|
8942
|
+
Option.displayName = "Option";
|
|
8943
|
+
|
|
8944
|
+
// src/components/Select/OptionGroup.tsx
|
|
8945
|
+
var import_react_select3 = require("@radix-ui/react-select");
|
|
8946
|
+
var import_styled_components56 = __toESM(require("styled-components"));
|
|
8947
|
+
var import_jsx_runtime208 = require("react/jsx-runtime");
|
|
8948
|
+
var StyledLabel3 = (0, import_styled_components56.default)(import_react_select3.Label)`
|
|
8949
|
+
padding: var(--wui-select-option-padding);
|
|
8950
|
+
`;
|
|
8951
|
+
var OptionGroup = ({ children, label, ...props }) => {
|
|
8952
|
+
return /* @__PURE__ */ (0, import_jsx_runtime208.jsxs)(import_react_select3.Group, { ...props, children: [
|
|
8953
|
+
/* @__PURE__ */ (0, import_jsx_runtime208.jsx)(StyledLabel3, { children: /* @__PURE__ */ (0, import_jsx_runtime208.jsx)(
|
|
8954
|
+
Text,
|
|
8955
|
+
{
|
|
8956
|
+
prominence: "secondary",
|
|
8957
|
+
variant: "body3",
|
|
8958
|
+
children: label
|
|
8959
|
+
}
|
|
8960
|
+
) }),
|
|
8961
|
+
children
|
|
8962
|
+
] });
|
|
8963
|
+
};
|
|
8767
8964
|
// Annotate the CommonJS export names for ESM import in node:
|
|
8768
8965
|
0 && (module.exports = {
|
|
8769
8966
|
ActionButton,
|
|
@@ -8798,10 +8995,13 @@ WistiaLogo.displayName = "WistiaLogo";
|
|
|
8798
8995
|
MenuLabel,
|
|
8799
8996
|
MenuRadioGroup,
|
|
8800
8997
|
Modal,
|
|
8998
|
+
Option,
|
|
8999
|
+
OptionGroup,
|
|
8801
9000
|
Radio,
|
|
8802
9001
|
RadioGroup,
|
|
8803
9002
|
RadioMenuItem,
|
|
8804
9003
|
ScreenReaderOnly,
|
|
9004
|
+
Select,
|
|
8805
9005
|
Stack,
|
|
8806
9006
|
SubMenu,
|
|
8807
9007
|
Tag,
|