@wistia/ui 0.4.6 → 0.4.7-beta.5aa0e9cf.7fbd46e
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 +63 -53
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +7 -2
- package/dist/index.d.ts +7 -2
- package/dist/index.mjs +42 -32
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -2
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.7-beta.5aa0e9cf.7fbd46e
|
|
4
4
|
*
|
|
5
5
|
* Copyright (c) 2024-2025, Wistia, Inc. and its affiliates.
|
|
6
6
|
*
|
|
@@ -5959,17 +5959,17 @@ var Avatar = ({
|
|
|
5959
5959
|
onImageLoad,
|
|
5960
5960
|
...otherProps
|
|
5961
5961
|
}) => {
|
|
5962
|
-
const [imageLoadState, setImageLoadState] = (0, import_react14.useState)(
|
|
5962
|
+
const [imageLoadState, setImageLoadState] = (0, import_react14.useState)("loading");
|
|
5963
5963
|
(0, import_react14.useEffect)(() => {
|
|
5964
|
-
setImageLoadState(
|
|
5964
|
+
setImageLoadState("loading");
|
|
5965
5965
|
}, [imageUrl]);
|
|
5966
5966
|
const handleImageLoad = () => {
|
|
5967
5967
|
setImageLoadState("loaded");
|
|
5968
|
-
onImageLoad?.("image");
|
|
5968
|
+
onImageLoad?.({ state: "loaded", type: "image" });
|
|
5969
5969
|
};
|
|
5970
5970
|
const handleImageLoadError = () => {
|
|
5971
5971
|
setImageLoadState("error");
|
|
5972
|
-
onImageLoad?.("initials");
|
|
5972
|
+
onImageLoad?.({ state: "error", type: "initials" });
|
|
5973
5973
|
};
|
|
5974
5974
|
const avatarSize = heightAndWidth ?? avatarSizeMap[size];
|
|
5975
5975
|
const avatarColor = (0, import_react14.useMemo)(() => chooseColorScheme(name), [name]);
|
|
@@ -7483,6 +7483,14 @@ Input.displayName = "Input";
|
|
|
7483
7483
|
var import_styled_components39 = __toESM(require("styled-components"));
|
|
7484
7484
|
var import_react_dropdown_menu = require("@radix-ui/react-dropdown-menu");
|
|
7485
7485
|
var import_type_guards23 = require("@wistia/type-guards");
|
|
7486
|
+
var import_react31 = require("react");
|
|
7487
|
+
|
|
7488
|
+
// src/components/Menu/MenuContext.tsx
|
|
7489
|
+
var import_react30 = require("react");
|
|
7490
|
+
var MenuContext = (0, import_react30.createContext)({ compact: false });
|
|
7491
|
+
var useMenuContext = () => (0, import_react30.useContext)(MenuContext);
|
|
7492
|
+
|
|
7493
|
+
// src/components/Menu/Menu.tsx
|
|
7486
7494
|
var import_jsx_runtime187 = require("react/jsx-runtime");
|
|
7487
7495
|
var open = import_styled_components39.keyframes`
|
|
7488
7496
|
from {
|
|
@@ -7504,6 +7512,28 @@ var close = import_styled_components39.keyframes`
|
|
|
7504
7512
|
transform: scale(.97) translateY(-8px);
|
|
7505
7513
|
}
|
|
7506
7514
|
`;
|
|
7515
|
+
var menuItemCss = import_styled_components39.css`
|
|
7516
|
+
--menu-label-description-gap: var(--wui-space-01);
|
|
7517
|
+
--menu-item-inner-gap: var(--wui-space-03);
|
|
7518
|
+
--menu-item-left-icon-size: 24px;
|
|
7519
|
+
--menu-item-right-icon-size: 16px;
|
|
7520
|
+
--menu-item-padding: var(--wui-space-02);
|
|
7521
|
+
--menu-label-font-size: var(--wui-typography-label-3-size);
|
|
7522
|
+
--menu-label-font-weight: var(--wui-typography-label-3-weight);
|
|
7523
|
+
--menu-label-line-height: var(--wui-typography-label-3-line-height);
|
|
7524
|
+
--menu-divider-margin: var(--wui-space-02);
|
|
7525
|
+
`;
|
|
7526
|
+
var compactMenuItemCss = import_styled_components39.css`
|
|
7527
|
+
--menu-label-description-gap: 0;
|
|
7528
|
+
--menu-item-inner-gap: var(--wui-space-02);
|
|
7529
|
+
--menu-item-left-icon-size: 16px;
|
|
7530
|
+
--menu-item-right-icon-size: 12px;
|
|
7531
|
+
--menu-item-padding: 6px;
|
|
7532
|
+
--menu-label-font-size: var(--wui-typography-label-4-size);
|
|
7533
|
+
--menu-label-font-weight: var(--wui-typography-label-4-weight);
|
|
7534
|
+
--menu-label-line-height: var(--wui-typography-label-4-line-height);
|
|
7535
|
+
--menu-divider-margin: var(--wui-space-01);
|
|
7536
|
+
`;
|
|
7507
7537
|
var menuContentCss = import_styled_components39.css`
|
|
7508
7538
|
--menu-font-family: var(--wui-typography-family-default);
|
|
7509
7539
|
--menu-bg: var(--wui-color-bg-surface);
|
|
@@ -7513,6 +7543,8 @@ var menuContentCss = import_styled_components39.css`
|
|
|
7513
7543
|
--menu-min-width: 120px;
|
|
7514
7544
|
--menu-max-width: 284px;
|
|
7515
7545
|
|
|
7546
|
+
${({ $compact }) => $compact ? compactMenuItemCss : menuItemCss};
|
|
7547
|
+
|
|
7516
7548
|
animation: ${open}; /* TODO - need easing tokens */
|
|
7517
7549
|
font-family: var(--menu-font-family);
|
|
7518
7550
|
background: var(--menu-bg);
|
|
@@ -7543,31 +7575,8 @@ var menuContentCss = import_styled_components39.css`
|
|
|
7543
7575
|
margin: var(--menu-divider-margin) 0;
|
|
7544
7576
|
}
|
|
7545
7577
|
`;
|
|
7546
|
-
var menuItemCss = import_styled_components39.css`
|
|
7547
|
-
--menu-label-description-gap: var(--wui-space-01);
|
|
7548
|
-
--menu-item-inner-gap: var(--wui-space-03);
|
|
7549
|
-
--menu-item-left-icon-size: 24px;
|
|
7550
|
-
--menu-item-right-icon-size: 16px;
|
|
7551
|
-
--menu-item-padding: var(--wui-space-02);
|
|
7552
|
-
--menu-label-font-size: var(--wui-typography-label-3-size);
|
|
7553
|
-
--menu-label-font-weight: var(--wui-typography-label-3-weight);
|
|
7554
|
-
--menu-label-line-height: var(--wui-typography-label-3-line-height);
|
|
7555
|
-
--menu-divider-margin: var(--wui-space-02);
|
|
7556
|
-
`;
|
|
7557
|
-
var compactMenuItemCss = import_styled_components39.css`
|
|
7558
|
-
--menu-label-description-gap: 0;
|
|
7559
|
-
--menu-item-inner-gap: var(--wui-space-02);
|
|
7560
|
-
--menu-item-left-icon-size: 16px;
|
|
7561
|
-
--menu-item-right-icon-size: 12px;
|
|
7562
|
-
--menu-item-padding: 6px;
|
|
7563
|
-
--menu-label-font-size: var(--wui-typography-label-4-size);
|
|
7564
|
-
--menu-label-font-weight: var(--wui-typography-label-4-weight);
|
|
7565
|
-
--menu-label-line-height: var(--wui-typography-label-4-line-height);
|
|
7566
|
-
--menu-divider-margin: var(--wui-space-01);
|
|
7567
|
-
`;
|
|
7568
7578
|
var MenuContent = (0, import_styled_components39.default)(import_react_dropdown_menu.DropdownMenuContent)`
|
|
7569
7579
|
${menuContentCss}
|
|
7570
|
-
${({ $compact }) => $compact ? compactMenuItemCss : menuItemCss}
|
|
7571
7580
|
`;
|
|
7572
7581
|
var Menu = ({
|
|
7573
7582
|
align = "start",
|
|
@@ -7582,6 +7591,7 @@ var Menu = ({
|
|
|
7582
7591
|
onInteractOutside,
|
|
7583
7592
|
...props
|
|
7584
7593
|
}) => {
|
|
7594
|
+
const contextValue = (0, import_react31.useMemo)(() => ({ compact }), [compact]);
|
|
7585
7595
|
let controlProps = {
|
|
7586
7596
|
...(0, import_type_guards23.isNotNil)(onOpenChange) && (0, import_type_guards23.isNotNil)(isOpen) ? { open: isOpen, onOpenChange } : {}
|
|
7587
7597
|
};
|
|
@@ -7591,7 +7601,7 @@ var Menu = ({
|
|
|
7591
7601
|
onOpenChange: () => null
|
|
7592
7602
|
};
|
|
7593
7603
|
}
|
|
7594
|
-
return /* @__PURE__ */ (0, import_jsx_runtime187.jsxs)(
|
|
7604
|
+
return /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(MenuContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime187.jsxs)(
|
|
7595
7605
|
import_react_dropdown_menu.DropdownMenu,
|
|
7596
7606
|
{
|
|
7597
7607
|
modal: false,
|
|
@@ -7623,7 +7633,7 @@ var Menu = ({
|
|
|
7623
7633
|
) })
|
|
7624
7634
|
]
|
|
7625
7635
|
}
|
|
7626
|
-
);
|
|
7636
|
+
) });
|
|
7627
7637
|
};
|
|
7628
7638
|
Menu.displayName = "Menu";
|
|
7629
7639
|
|
|
@@ -7655,13 +7665,13 @@ var MenuLabel = ({ children, ...props }) => {
|
|
|
7655
7665
|
MenuLabel.displayName = "MenuLabel";
|
|
7656
7666
|
|
|
7657
7667
|
// src/components/Menu/SubMenu.tsx
|
|
7658
|
-
var
|
|
7668
|
+
var import_react33 = require("react");
|
|
7659
7669
|
var import_styled_components43 = __toESM(require("styled-components"));
|
|
7660
7670
|
var import_react_dropdown_menu3 = require("@radix-ui/react-dropdown-menu");
|
|
7661
7671
|
var import_type_guards25 = require("@wistia/type-guards");
|
|
7662
7672
|
|
|
7663
7673
|
// src/components/Menu/MenuItemButton.tsx
|
|
7664
|
-
var
|
|
7674
|
+
var import_react32 = require("react");
|
|
7665
7675
|
var import_styled_components41 = __toESM(require("styled-components"));
|
|
7666
7676
|
var import_type_guards24 = require("@wistia/type-guards");
|
|
7667
7677
|
var import_jsx_runtime189 = require("react/jsx-runtime");
|
|
@@ -7733,7 +7743,7 @@ var StyledBadgeContainer = import_styled_components41.default.div`
|
|
|
7733
7743
|
font-size: var(--wui-typography-label-4-size);
|
|
7734
7744
|
color: var(--wui-color-text-secondary);
|
|
7735
7745
|
`;
|
|
7736
|
-
var MenuItemButton = (0,
|
|
7746
|
+
var MenuItemButton = (0, import_react32.forwardRef)(({ children, appearance, command, icon, ...props }, ref) => {
|
|
7737
7747
|
let { colorScheme, badge } = props;
|
|
7738
7748
|
if (appearance === "dangerous") {
|
|
7739
7749
|
if ((0, import_type_guards24.isNotUndefined)(colorScheme)) {
|
|
@@ -7793,7 +7803,6 @@ var MenuItemDescription = ({ children }) => {
|
|
|
7793
7803
|
var import_jsx_runtime191 = require("react/jsx-runtime");
|
|
7794
7804
|
var SubMenuContent = (0, import_styled_components43.default)(import_react_dropdown_menu3.DropdownMenuSubContent)`
|
|
7795
7805
|
${menuContentCss}
|
|
7796
|
-
width: 298px;
|
|
7797
7806
|
|
|
7798
7807
|
${mq.smAndDown} {
|
|
7799
7808
|
transform: translateX(-100%) !important;
|
|
@@ -7829,13 +7838,14 @@ var SubMenu = ({
|
|
|
7829
7838
|
...props
|
|
7830
7839
|
}) => {
|
|
7831
7840
|
const { isSmAndUp } = useMq();
|
|
7832
|
-
const [isExpanded, setIsExpanded] = (0,
|
|
7841
|
+
const [isExpanded, setIsExpanded] = (0, import_react33.useState)(false);
|
|
7842
|
+
const { compact } = useMenuContext();
|
|
7833
7843
|
return isSmAndUp ? /* @__PURE__ */ (0, import_jsx_runtime191.jsxs)(import_react_dropdown_menu3.DropdownMenuSub, { onOpenChange, children: [
|
|
7834
7844
|
/* @__PURE__ */ (0, import_jsx_runtime191.jsxs)(SubMenuTrigger, { ...props, children: [
|
|
7835
7845
|
/* @__PURE__ */ (0, import_jsx_runtime191.jsx)(MenuItemLabel, { children: label }),
|
|
7836
7846
|
(0, import_type_guards25.isNotNil)(description) ? /* @__PURE__ */ (0, import_jsx_runtime191.jsx)(MenuItemDescription, { children: description }) : null
|
|
7837
7847
|
] }),
|
|
7838
|
-
/* @__PURE__ */ (0, import_jsx_runtime191.jsx)(import_react_dropdown_menu3.DropdownMenuPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime191.jsx)(SubMenuContent, { children }) })
|
|
7848
|
+
/* @__PURE__ */ (0, import_jsx_runtime191.jsx)(import_react_dropdown_menu3.DropdownMenuPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime191.jsx)(SubMenuContent, { $compact: compact, children }) })
|
|
7839
7849
|
] }) : /* @__PURE__ */ (0, import_jsx_runtime191.jsxs)(import_react_dropdown_menu3.DropdownMenuGroup, { children: [
|
|
7840
7850
|
/* @__PURE__ */ (0, import_jsx_runtime191.jsxs)(
|
|
7841
7851
|
SubMenuTrigger,
|
|
@@ -7857,10 +7867,10 @@ var SubMenu = ({
|
|
|
7857
7867
|
SubMenu.displayName = "SubMenu";
|
|
7858
7868
|
|
|
7859
7869
|
// src/components/Menu/MenuItem.tsx
|
|
7860
|
-
var
|
|
7870
|
+
var import_react34 = require("react");
|
|
7861
7871
|
var import_react_dropdown_menu4 = require("@radix-ui/react-dropdown-menu");
|
|
7862
7872
|
var import_jsx_runtime192 = require("react/jsx-runtime");
|
|
7863
|
-
var MenuItem = (0,
|
|
7873
|
+
var MenuItem = (0, import_react34.forwardRef)(
|
|
7864
7874
|
({ onSelect = () => null, ...props }, ref) => {
|
|
7865
7875
|
return /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(
|
|
7866
7876
|
import_react_dropdown_menu4.DropdownMenuItem,
|
|
@@ -8010,7 +8020,7 @@ var CheckboxMenuItem = ({
|
|
|
8010
8020
|
CheckboxMenuItem.displayName = "CheckboxMenuItem";
|
|
8011
8021
|
|
|
8012
8022
|
// src/components/Modal/Modal.tsx
|
|
8013
|
-
var
|
|
8023
|
+
var import_react38 = require("react");
|
|
8014
8024
|
var import_styled_components49 = __toESM(require("styled-components"));
|
|
8015
8025
|
var import_react_dialog4 = require("@radix-ui/react-dialog");
|
|
8016
8026
|
var import_type_guards28 = require("@wistia/type-guards");
|
|
@@ -8093,19 +8103,19 @@ var ModalHeader = ({
|
|
|
8093
8103
|
};
|
|
8094
8104
|
|
|
8095
8105
|
// src/components/Modal/ModalContent.tsx
|
|
8096
|
-
var
|
|
8106
|
+
var import_react36 = require("react");
|
|
8097
8107
|
var import_styled_components47 = __toESM(require("styled-components"));
|
|
8098
8108
|
var import_react_dialog3 = require("@radix-ui/react-dialog");
|
|
8099
8109
|
|
|
8100
8110
|
// src/private/hooks/useFocusRestore/useFocusRestore.ts
|
|
8101
|
-
var
|
|
8111
|
+
var import_react35 = require("react");
|
|
8102
8112
|
var import_type_guards27 = require("@wistia/type-guards");
|
|
8103
8113
|
var useFocusRestore = () => {
|
|
8104
|
-
const previouslyFocusedRef = (0,
|
|
8105
|
-
(0,
|
|
8114
|
+
const previouslyFocusedRef = (0, import_react35.useRef)(null);
|
|
8115
|
+
(0, import_react35.useEffect)(() => {
|
|
8106
8116
|
previouslyFocusedRef.current = document.activeElement;
|
|
8107
8117
|
}, []);
|
|
8108
|
-
(0,
|
|
8118
|
+
(0, import_react35.useEffect)(() => {
|
|
8109
8119
|
return () => {
|
|
8110
8120
|
if ((0, import_type_guards27.isNotNil)(previouslyFocusedRef.current)) {
|
|
8111
8121
|
setTimeout(() => {
|
|
@@ -8158,7 +8168,7 @@ var StyledModalContent = (0, import_styled_components47.default)(import_react_di
|
|
|
8158
8168
|
}
|
|
8159
8169
|
}
|
|
8160
8170
|
`;
|
|
8161
|
-
var ModalContent = (0,
|
|
8171
|
+
var ModalContent = (0, import_react36.forwardRef)(
|
|
8162
8172
|
({ fullHeight, width, children, ...otherProps }, ref) => {
|
|
8163
8173
|
useFocusRestore();
|
|
8164
8174
|
return /* @__PURE__ */ (0, import_jsx_runtime199.jsx)(
|
|
@@ -8175,7 +8185,7 @@ var ModalContent = (0, import_react34.forwardRef)(
|
|
|
8175
8185
|
);
|
|
8176
8186
|
|
|
8177
8187
|
// src/private/components/Backdrop/Backdrop.tsx
|
|
8178
|
-
var
|
|
8188
|
+
var import_react37 = require("react");
|
|
8179
8189
|
var import_styled_components48 = __toESM(require("styled-components"));
|
|
8180
8190
|
var import_jsx_runtime200 = require("react/jsx-runtime");
|
|
8181
8191
|
var backdropAnimationDuration = 150;
|
|
@@ -8213,7 +8223,7 @@ var BackdropComponent = import_styled_components48.default.div`
|
|
|
8213
8223
|
}
|
|
8214
8224
|
}
|
|
8215
8225
|
`;
|
|
8216
|
-
var Backdrop = (0,
|
|
8226
|
+
var Backdrop = (0, import_react37.forwardRef)(
|
|
8217
8227
|
({ alignHorizontal = "center", alignVertical = "center", children, ...otherProps }, ref) => /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(
|
|
8218
8228
|
BackdropComponent,
|
|
8219
8229
|
{
|
|
@@ -8234,7 +8244,7 @@ var ModalBody = import_styled_components49.default.div`
|
|
|
8234
8244
|
display: flex;
|
|
8235
8245
|
order: 2;
|
|
8236
8246
|
`;
|
|
8237
|
-
var Modal = (0,
|
|
8247
|
+
var Modal = (0, import_react38.forwardRef)(
|
|
8238
8248
|
({
|
|
8239
8249
|
children,
|
|
8240
8250
|
fullHeight = false,
|
|
@@ -8295,7 +8305,7 @@ var Modal = (0, import_react36.forwardRef)(
|
|
|
8295
8305
|
Modal.displayName = "Modal";
|
|
8296
8306
|
|
|
8297
8307
|
// src/components/Radio/Radio.tsx
|
|
8298
|
-
var
|
|
8308
|
+
var import_react39 = require("react");
|
|
8299
8309
|
var import_styled_components50 = __toESM(require("styled-components"));
|
|
8300
8310
|
var import_type_guards29 = require("@wistia/type-guards");
|
|
8301
8311
|
var import_jsx_runtime202 = require("react/jsx-runtime");
|
|
@@ -8369,7 +8379,7 @@ var StyledRadioWrapper = import_styled_components50.default.div`
|
|
|
8369
8379
|
|
|
8370
8380
|
${({ disabled }) => disabled && disabledStyle2};
|
|
8371
8381
|
`;
|
|
8372
|
-
var Radio = (0,
|
|
8382
|
+
var Radio = (0, import_react39.forwardRef)(
|
|
8373
8383
|
({
|
|
8374
8384
|
checked,
|
|
8375
8385
|
disabled = false,
|
|
@@ -8382,7 +8392,7 @@ var Radio = (0, import_react37.forwardRef)(
|
|
|
8382
8392
|
value = "false",
|
|
8383
8393
|
...otherProps
|
|
8384
8394
|
}, ref) => {
|
|
8385
|
-
const generatedId = (0,
|
|
8395
|
+
const generatedId = (0, import_react39.useId)();
|
|
8386
8396
|
const computedId = (0, import_type_guards29.isNonEmptyString)(id) ? id : `ui-radio-${generatedId}`;
|
|
8387
8397
|
return /* @__PURE__ */ (0, import_jsx_runtime202.jsxs)(
|
|
8388
8398
|
StyledRadioWrapper,
|
|
@@ -8425,7 +8435,7 @@ var Radio = (0, import_react37.forwardRef)(
|
|
|
8425
8435
|
Radio.displayName = "Radio";
|
|
8426
8436
|
|
|
8427
8437
|
// src/components/Tag/Tag.tsx
|
|
8428
|
-
var
|
|
8438
|
+
var import_react40 = require("react");
|
|
8429
8439
|
var import_styled_components51 = __toESM(require("styled-components"));
|
|
8430
8440
|
var import_type_guards30 = require("@wistia/type-guards");
|
|
8431
8441
|
var import_jsx_runtime203 = require("react/jsx-runtime");
|
|
@@ -8531,7 +8541,7 @@ var RemoveButton = ({ onClickRemove, onClickRemoveLabel, colorScheme }) => {
|
|
|
8531
8541
|
)
|
|
8532
8542
|
] });
|
|
8533
8543
|
};
|
|
8534
|
-
var Tag = (0,
|
|
8544
|
+
var Tag = (0, import_react40.forwardRef)(
|
|
8535
8545
|
({ onClickRemove, colorScheme = "inherit", href, label, onClickRemoveLabel, ...otherProps }, ref) => {
|
|
8536
8546
|
const labelProps = (0, import_type_guards30.isNotNil)(href) && (0, import_type_guards30.isNonEmptyString)(href) ? { href, as: "a" } : { as: "span" };
|
|
8537
8547
|
return /* @__PURE__ */ (0, import_jsx_runtime203.jsxs)(
|