@wistia/ui 0.5.6 → 0.5.7-beta.474b3d52.66f3a6b
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 +985 -687
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +119 -73
- package/dist/index.d.ts +119 -73
- package/dist/index.mjs +927 -632
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -1
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
/*
|
|
3
|
-
* @license @wistia/ui v0.5.
|
|
3
|
+
* @license @wistia/ui v0.5.7-beta.474b3d52.66f3a6b
|
|
4
4
|
*
|
|
5
5
|
* Copyright (c) 2024-2025, Wistia, Inc. and its affiliates.
|
|
6
6
|
*
|
|
@@ -51,6 +51,9 @@ __export(index_exports, {
|
|
|
51
51
|
Checkbox: () => Checkbox,
|
|
52
52
|
CheckboxGroup: () => CheckboxGroup,
|
|
53
53
|
CheckboxMenuItem: () => CheckboxMenuItem,
|
|
54
|
+
Collapsible: () => Collapsible,
|
|
55
|
+
CollapsibleContent: () => CollapsibleContent,
|
|
56
|
+
CollapsibleTrigger: () => CollapsibleTrigger,
|
|
54
57
|
ColorSchemeWrapper: () => ColorSchemeWrapper,
|
|
55
58
|
DataCard: () => DataCard,
|
|
56
59
|
DataCardTrend: () => DataCardTrend,
|
|
@@ -6753,7 +6756,12 @@ var ButtonGroupComponent = import_styled_components28.default.div`
|
|
|
6753
6756
|
display: flex;
|
|
6754
6757
|
|
|
6755
6758
|
/* this helps ensure that primary buttons appear at the top of the column */
|
|
6756
|
-
flex-direction: ${({ $align }) =>
|
|
6759
|
+
flex-direction: ${({ $collapse, $align }) => {
|
|
6760
|
+
if (!$collapse) {
|
|
6761
|
+
return "row";
|
|
6762
|
+
}
|
|
6763
|
+
return $align === "right" ? "column-reverse" : "column";
|
|
6764
|
+
}};
|
|
6757
6765
|
gap: var(--wui-space-02);
|
|
6758
6766
|
align-items: center;
|
|
6759
6767
|
justify-content: ${({ $align }) => getAlignment($align)};
|
|
@@ -6773,6 +6781,7 @@ var ButtonGroup = ({
|
|
|
6773
6781
|
children,
|
|
6774
6782
|
align = "left",
|
|
6775
6783
|
fullWidth = false,
|
|
6784
|
+
collapseOnSmallScreens = true,
|
|
6776
6785
|
...otherProps
|
|
6777
6786
|
}) => {
|
|
6778
6787
|
if ((0, import_type_guards18.isNil)(children)) {
|
|
@@ -6782,6 +6791,7 @@ var ButtonGroup = ({
|
|
|
6782
6791
|
ButtonGroupComponent,
|
|
6783
6792
|
{
|
|
6784
6793
|
$align: align,
|
|
6794
|
+
$collapse: collapseOnSmallScreens,
|
|
6785
6795
|
$fullWidth: fullWidth,
|
|
6786
6796
|
...otherProps,
|
|
6787
6797
|
children
|
|
@@ -7181,11 +7191,63 @@ var Checkbox = (0, import_react19.forwardRef)(
|
|
|
7181
7191
|
);
|
|
7182
7192
|
Checkbox.displayName = "Checkbox";
|
|
7183
7193
|
|
|
7184
|
-
// src/components/
|
|
7185
|
-
var
|
|
7194
|
+
// src/components/Collapsible/Collapsible.tsx
|
|
7195
|
+
var import_react_collapsible = require("@radix-ui/react-collapsible");
|
|
7186
7196
|
var import_type_guards21 = require("@wistia/type-guards");
|
|
7197
|
+
var import_styled_components34 = __toESM(require("styled-components"));
|
|
7187
7198
|
var import_jsx_runtime176 = require("react/jsx-runtime");
|
|
7188
|
-
var
|
|
7199
|
+
var StyledRoot = (0, import_styled_components34.default)(import_react_collapsible.Root)`
|
|
7200
|
+
&[data-state='closed'] [data-wui-collapsible-content] {
|
|
7201
|
+
display: -webkit-box;
|
|
7202
|
+
-webkit-box-orient: vertical;
|
|
7203
|
+
-webkit-line-clamp: var(--wui-collapsible-content-clamp-lines);
|
|
7204
|
+
overflow: hidden;
|
|
7205
|
+
}
|
|
7206
|
+
`;
|
|
7207
|
+
var Collapsible = ({
|
|
7208
|
+
children,
|
|
7209
|
+
isOpen = false,
|
|
7210
|
+
onOpenChange
|
|
7211
|
+
}) => {
|
|
7212
|
+
const controlProps = {
|
|
7213
|
+
...(0, import_type_guards21.isNotNil)(onOpenChange) && (0, import_type_guards21.isNotNil)(isOpen) ? { open: isOpen, onOpenChange } : {}
|
|
7214
|
+
};
|
|
7215
|
+
return /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(StyledRoot, { ...controlProps, children });
|
|
7216
|
+
};
|
|
7217
|
+
Collapsible.displayName = "Collapsible";
|
|
7218
|
+
|
|
7219
|
+
// src/components/Collapsible/CollapsibleTrigger.tsx
|
|
7220
|
+
var import_react20 = require("react");
|
|
7221
|
+
var import_react_collapsible2 = require("@radix-ui/react-collapsible");
|
|
7222
|
+
var import_jsx_runtime177 = require("react/jsx-runtime");
|
|
7223
|
+
var CollapsibleTrigger = ({ children }) => {
|
|
7224
|
+
import_react20.Children.only(children);
|
|
7225
|
+
return /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(import_react_collapsible2.Trigger, { asChild: true, children });
|
|
7226
|
+
};
|
|
7227
|
+
|
|
7228
|
+
// src/components/Collapsible/CollapsibleContent.tsx
|
|
7229
|
+
var import_styled_components35 = __toESM(require("styled-components"));
|
|
7230
|
+
var import_react_collapsible3 = require("@radix-ui/react-collapsible");
|
|
7231
|
+
var import_type_guards22 = require("@wistia/type-guards");
|
|
7232
|
+
var import_jsx_runtime178 = require("react/jsx-runtime");
|
|
7233
|
+
var ClampedContent = import_styled_components35.default.div.attrs({ "data-wui-collapsible-content": true })`
|
|
7234
|
+
--wui-collapsible-content-clamp-lines: ${({ $clamp }) => $clamp};
|
|
7235
|
+
`;
|
|
7236
|
+
var CollapsibleContent = ({ clamp, children }) => {
|
|
7237
|
+
if ((0, import_type_guards22.isNotUndefined)(clamp)) {
|
|
7238
|
+
return /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(ClampedContent, { $clamp: clamp, children });
|
|
7239
|
+
}
|
|
7240
|
+
return /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(import_react_collapsible3.Content, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime178.jsxs)(import_jsx_runtime178.Fragment, { children: [
|
|
7241
|
+
children,
|
|
7242
|
+
" "
|
|
7243
|
+
] }) });
|
|
7244
|
+
};
|
|
7245
|
+
|
|
7246
|
+
// src/components/DataCards/DataCard.tsx
|
|
7247
|
+
var import_styled_components36 = __toESM(require("styled-components"));
|
|
7248
|
+
var import_type_guards23 = require("@wistia/type-guards");
|
|
7249
|
+
var import_jsx_runtime179 = require("react/jsx-runtime");
|
|
7250
|
+
var StyledDataCard = import_styled_components36.default.div`
|
|
7189
7251
|
${({ $colorScheme }) => getColorScheme($colorScheme)}
|
|
7190
7252
|
display: grid;
|
|
7191
7253
|
grid-template-areas: 'label slot' 'value value';
|
|
@@ -7198,7 +7260,7 @@ var StyledDataCard = import_styled_components34.default.div`
|
|
|
7198
7260
|
border-radius: var(--wui-border-radius-02);
|
|
7199
7261
|
position: relative;
|
|
7200
7262
|
`;
|
|
7201
|
-
var shimmer =
|
|
7263
|
+
var shimmer = import_styled_components36.keyframes`
|
|
7202
7264
|
0% {
|
|
7203
7265
|
background-position: 200% 0;
|
|
7204
7266
|
}
|
|
@@ -7206,7 +7268,7 @@ var shimmer = import_styled_components34.keyframes`
|
|
|
7206
7268
|
background-position: -200% 0;
|
|
7207
7269
|
}
|
|
7208
7270
|
`;
|
|
7209
|
-
var LoadingBackground =
|
|
7271
|
+
var LoadingBackground = import_styled_components36.default.div`
|
|
7210
7272
|
background: linear-gradient(
|
|
7211
7273
|
90deg,
|
|
7212
7274
|
var(--wui-color-bg-surface-tertiary) 25%,
|
|
@@ -7217,27 +7279,27 @@ var LoadingBackground = import_styled_components34.default.div`
|
|
|
7217
7279
|
animation: ${shimmer} 1.5s infinite;
|
|
7218
7280
|
border-radius: var(--wui-border-radius-01);
|
|
7219
7281
|
`;
|
|
7220
|
-
var StyledLoadingLabel = (0,
|
|
7282
|
+
var StyledLoadingLabel = (0, import_styled_components36.default)(LoadingBackground)`
|
|
7221
7283
|
width: 80px;
|
|
7222
7284
|
height: var(--wui-typography-heading-6-line-height);
|
|
7223
7285
|
`;
|
|
7224
|
-
var StyledLoadingValue = (0,
|
|
7286
|
+
var StyledLoadingValue = (0, import_styled_components36.default)(LoadingBackground)`
|
|
7225
7287
|
width: 90%;
|
|
7226
7288
|
height: var(--wui-typography-heading-3-line-height);
|
|
7227
7289
|
`;
|
|
7228
|
-
var StyledLabel3 = (0,
|
|
7290
|
+
var StyledLabel3 = (0, import_styled_components36.default)(Heading)`
|
|
7229
7291
|
grid-area: label;
|
|
7230
7292
|
`;
|
|
7231
|
-
var StyledValue = (0,
|
|
7293
|
+
var StyledValue = (0, import_styled_components36.default)(Heading)`
|
|
7232
7294
|
grid-area: value;
|
|
7233
7295
|
`;
|
|
7234
|
-
var StyledSlot =
|
|
7296
|
+
var StyledSlot = import_styled_components36.default.div`
|
|
7235
7297
|
display: flex;
|
|
7236
7298
|
justify-content: flex-end;
|
|
7237
7299
|
grid-area: slot;
|
|
7238
7300
|
align-self: center;
|
|
7239
7301
|
`;
|
|
7240
|
-
var StyledDataCardTrendContainer =
|
|
7302
|
+
var StyledDataCardTrendContainer = import_styled_components36.default.div`
|
|
7241
7303
|
position: absolute;
|
|
7242
7304
|
bottom: var(--wui-space-01);
|
|
7243
7305
|
right: var(--wui-space-01);
|
|
@@ -7250,39 +7312,39 @@ var DataCard = ({
|
|
|
7250
7312
|
isLoading = false,
|
|
7251
7313
|
trend,
|
|
7252
7314
|
...props
|
|
7253
|
-
}) => /* @__PURE__ */ (0,
|
|
7315
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime179.jsxs)(
|
|
7254
7316
|
StyledDataCard,
|
|
7255
7317
|
{
|
|
7256
7318
|
$colorScheme: colorScheme,
|
|
7257
7319
|
...props,
|
|
7258
7320
|
children: [
|
|
7259
|
-
/* @__PURE__ */ (0,
|
|
7321
|
+
/* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
7260
7322
|
StyledLabel3,
|
|
7261
7323
|
{
|
|
7262
7324
|
renderAs: "dt",
|
|
7263
7325
|
variant: "heading6",
|
|
7264
|
-
children: isLoading ? /* @__PURE__ */ (0,
|
|
7326
|
+
children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(StyledLoadingLabel, {}) : label
|
|
7265
7327
|
}
|
|
7266
7328
|
),
|
|
7267
|
-
/* @__PURE__ */ (0,
|
|
7329
|
+
/* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
7268
7330
|
StyledValue,
|
|
7269
7331
|
{
|
|
7270
7332
|
renderAs: "dd",
|
|
7271
7333
|
variant: "heading3",
|
|
7272
|
-
children: isLoading ? /* @__PURE__ */ (0,
|
|
7334
|
+
children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(StyledLoadingValue, {}) : value
|
|
7273
7335
|
}
|
|
7274
7336
|
),
|
|
7275
|
-
(0,
|
|
7276
|
-
(0,
|
|
7337
|
+
(0, import_type_guards23.isNotNull)(upperRightSlot) && !isLoading && /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(StyledSlot, { children: upperRightSlot }),
|
|
7338
|
+
(0, import_type_guards23.isNotNull)(trend) && !isLoading && /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(StyledDataCardTrendContainer, { children: trend })
|
|
7277
7339
|
]
|
|
7278
7340
|
}
|
|
7279
7341
|
);
|
|
7280
7342
|
DataCard.displayName = "DataCard";
|
|
7281
7343
|
|
|
7282
7344
|
// src/components/DataCards/DataCards.tsx
|
|
7283
|
-
var
|
|
7284
|
-
var
|
|
7285
|
-
var StyledDataCards = (0,
|
|
7345
|
+
var import_styled_components37 = __toESM(require("styled-components"));
|
|
7346
|
+
var import_jsx_runtime180 = require("react/jsx-runtime");
|
|
7347
|
+
var StyledDataCards = (0, import_styled_components37.default)(Box)`
|
|
7286
7348
|
${({ $colorScheme }) => getColorScheme($colorScheme)};
|
|
7287
7349
|
margin-top: 0; /* Remove default <dl> style */
|
|
7288
7350
|
> * {
|
|
@@ -7296,7 +7358,7 @@ var DataCards = ({
|
|
|
7296
7358
|
colorScheme = "inherit",
|
|
7297
7359
|
...props
|
|
7298
7360
|
}) => {
|
|
7299
|
-
return /* @__PURE__ */ (0,
|
|
7361
|
+
return /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
|
|
7300
7362
|
StyledDataCards,
|
|
7301
7363
|
{
|
|
7302
7364
|
...props,
|
|
@@ -7314,25 +7376,25 @@ var DataCards = ({
|
|
|
7314
7376
|
DataCards.displayName = "DataCards";
|
|
7315
7377
|
|
|
7316
7378
|
// src/components/DataCards/DataCardTrend.tsx
|
|
7317
|
-
var
|
|
7379
|
+
var import_styled_components39 = __toESM(require("styled-components"));
|
|
7318
7380
|
|
|
7319
7381
|
// src/components/Text/Text.tsx
|
|
7320
|
-
var
|
|
7321
|
-
var
|
|
7322
|
-
var
|
|
7323
|
-
var bodyBoldStyles =
|
|
7382
|
+
var import_react21 = require("react");
|
|
7383
|
+
var import_styled_components38 = __toESM(require("styled-components"));
|
|
7384
|
+
var import_jsx_runtime181 = require("react/jsx-runtime");
|
|
7385
|
+
var bodyBoldStyles = import_styled_components38.css`
|
|
7324
7386
|
> strong,
|
|
7325
7387
|
b {
|
|
7326
7388
|
font-weight: var(--wui-typography-weight-body-bold);
|
|
7327
7389
|
}
|
|
7328
7390
|
`;
|
|
7329
|
-
var labelBoldStyles =
|
|
7391
|
+
var labelBoldStyles = import_styled_components38.css`
|
|
7330
7392
|
> strong,
|
|
7331
7393
|
b {
|
|
7332
7394
|
font-weight: var(--wui-typography-weight-label-bold);
|
|
7333
7395
|
}
|
|
7334
7396
|
`;
|
|
7335
|
-
var body1TextStyle =
|
|
7397
|
+
var body1TextStyle = import_styled_components38.css`
|
|
7336
7398
|
--font-family: var(--wui-typography-body-1-family);
|
|
7337
7399
|
--font-size: var(--wui-typography-body-1-size);
|
|
7338
7400
|
--font-weight: var(--wui-typography-body-1-weight);
|
|
@@ -7340,7 +7402,7 @@ var body1TextStyle = import_styled_components36.css`
|
|
|
7340
7402
|
--paragraph-spacing: var(--wui-typography-body-1-paragraph-spacing);
|
|
7341
7403
|
${bodyBoldStyles}
|
|
7342
7404
|
`;
|
|
7343
|
-
var body2TextStyle =
|
|
7405
|
+
var body2TextStyle = import_styled_components38.css`
|
|
7344
7406
|
--font-family: var(--wui-typography-body-2-family);
|
|
7345
7407
|
--font-size: var(--wui-typography-body-2-size);
|
|
7346
7408
|
--font-weight: var(--wui-typography-body-2-weight);
|
|
@@ -7348,7 +7410,7 @@ var body2TextStyle = import_styled_components36.css`
|
|
|
7348
7410
|
--paragraph-spacing: var(--wui-typography-body-2-paragraph-spacing);
|
|
7349
7411
|
${bodyBoldStyles}
|
|
7350
7412
|
`;
|
|
7351
|
-
var body3TextStyle =
|
|
7413
|
+
var body3TextStyle = import_styled_components38.css`
|
|
7352
7414
|
--font-family: var(--wui-typography-body-3-family);
|
|
7353
7415
|
--font-size: var(--wui-typography-body-3-size);
|
|
7354
7416
|
--font-weight: var(--wui-typography-body-3-weight);
|
|
@@ -7356,7 +7418,7 @@ var body3TextStyle = import_styled_components36.css`
|
|
|
7356
7418
|
--paragraph-spacing: var(--wui-typography-body-3-paragraph-spacing);
|
|
7357
7419
|
${bodyBoldStyles}
|
|
7358
7420
|
`;
|
|
7359
|
-
var body4TextStyle =
|
|
7421
|
+
var body4TextStyle = import_styled_components38.css`
|
|
7360
7422
|
--font-family: var(--wui-typography-body-4-family);
|
|
7361
7423
|
--font-size: var(--wui-typography-body-4-size);
|
|
7362
7424
|
--font-weight: var(--wui-typography-body-4-weight);
|
|
@@ -7364,47 +7426,47 @@ var body4TextStyle = import_styled_components36.css`
|
|
|
7364
7426
|
--paragraph-spacing: var(--wui-typography-body-4-paragraph-spacing);
|
|
7365
7427
|
${bodyBoldStyles}
|
|
7366
7428
|
`;
|
|
7367
|
-
var label1TextStyle =
|
|
7429
|
+
var label1TextStyle = import_styled_components38.css`
|
|
7368
7430
|
--font-family: var(--wui-typography-label-1-family);
|
|
7369
7431
|
--font-size: var(--wui-typography-label-1-size);
|
|
7370
7432
|
--font-weight: var(--wui-typography-label-1-weight);
|
|
7371
7433
|
--line-height: var(--wui-typography-label-1-line-height);
|
|
7372
7434
|
${labelBoldStyles}
|
|
7373
7435
|
`;
|
|
7374
|
-
var label2TextStyle =
|
|
7436
|
+
var label2TextStyle = import_styled_components38.css`
|
|
7375
7437
|
--font-family: var(--wui-typography-label-2-family);
|
|
7376
7438
|
--font-size: var(--wui-typography-label-2-size);
|
|
7377
7439
|
--font-weight: var(--wui-typography-label-2-weight);
|
|
7378
7440
|
--line-height: var(--wui-typography-label-2-line-height);
|
|
7379
7441
|
${labelBoldStyles}
|
|
7380
7442
|
`;
|
|
7381
|
-
var label3TextStyle =
|
|
7443
|
+
var label3TextStyle = import_styled_components38.css`
|
|
7382
7444
|
--font-family: var(--wui-typography-label-3-family);
|
|
7383
7445
|
--font-size: var(--wui-typography-label-3-size);
|
|
7384
7446
|
--font-weight: var(--wui-typography-label-3-weight);
|
|
7385
7447
|
--line-height: var(--wui-typography-label-3-line-height);
|
|
7386
7448
|
${labelBoldStyles}
|
|
7387
7449
|
`;
|
|
7388
|
-
var label4TextStyle =
|
|
7450
|
+
var label4TextStyle = import_styled_components38.css`
|
|
7389
7451
|
--font-family: var(--wui-typography-label-4-family);
|
|
7390
7452
|
--font-size: var(--wui-typography-label-4-size);
|
|
7391
7453
|
--font-weight: var(--wui-typography-label-4-weight);
|
|
7392
7454
|
--line-height: var(--wui-typography-label-4-line-height);
|
|
7393
7455
|
${labelBoldStyles}
|
|
7394
7456
|
`;
|
|
7395
|
-
var body1MonoTextStyle =
|
|
7457
|
+
var body1MonoTextStyle = import_styled_components38.css`
|
|
7396
7458
|
${body1TextStyle};
|
|
7397
7459
|
--font-family: var(--wui-typography-family-mono);
|
|
7398
7460
|
`;
|
|
7399
|
-
var body2MonoTextStyle =
|
|
7461
|
+
var body2MonoTextStyle = import_styled_components38.css`
|
|
7400
7462
|
${body2TextStyle};
|
|
7401
7463
|
--font-family: var(--wui-typography-family-mono);
|
|
7402
7464
|
`;
|
|
7403
|
-
var body3MonoTextStyle =
|
|
7465
|
+
var body3MonoTextStyle = import_styled_components38.css`
|
|
7404
7466
|
${body3TextStyle};
|
|
7405
7467
|
--font-family: var(--wui-typography-family-mono);
|
|
7406
7468
|
`;
|
|
7407
|
-
var body4MonoTextStyle =
|
|
7469
|
+
var body4MonoTextStyle = import_styled_components38.css`
|
|
7408
7470
|
${body4TextStyle};
|
|
7409
7471
|
--font-family: var(--wui-typography-family-mono);
|
|
7410
7472
|
`;
|
|
@@ -7439,7 +7501,7 @@ var variantElementMap2 = {
|
|
|
7439
7501
|
label3: labelElement,
|
|
7440
7502
|
label4: labelElement
|
|
7441
7503
|
};
|
|
7442
|
-
var StyledText =
|
|
7504
|
+
var StyledText = import_styled_components38.default.div`
|
|
7443
7505
|
${({ $colorScheme }) => getColorScheme($colorScheme)};
|
|
7444
7506
|
--text-color: ${({ $prominence, $disabled }) => {
|
|
7445
7507
|
if ($disabled) {
|
|
@@ -7463,19 +7525,19 @@ var StyledText = import_styled_components36.default.div`
|
|
|
7463
7525
|
margin: 0;
|
|
7464
7526
|
${({ $variant }) => variantStyleMap2[$variant]}
|
|
7465
7527
|
${({ $ellipsis }) => $ellipsis && ellipsisStyle};
|
|
7466
|
-
${({ $inline }) => $inline &&
|
|
7528
|
+
${({ $inline }) => $inline && import_styled_components38.css`
|
|
7467
7529
|
display: inline-block;
|
|
7468
7530
|
`}
|
|
7469
|
-
${({ $disabled }) => $disabled &&
|
|
7531
|
+
${({ $disabled }) => $disabled && import_styled_components38.css`
|
|
7470
7532
|
--text-color: var(--wui-color-text-disabled);
|
|
7471
7533
|
`}
|
|
7472
|
-
${({ $preventUserSelect }) => $preventUserSelect &&
|
|
7534
|
+
${({ $preventUserSelect }) => $preventUserSelect && import_styled_components38.css`
|
|
7473
7535
|
user-select: none;
|
|
7474
7536
|
`}
|
|
7475
|
-
${({ $align }) =>
|
|
7537
|
+
${({ $align }) => import_styled_components38.css`
|
|
7476
7538
|
text-align: ${$align};
|
|
7477
7539
|
`}
|
|
7478
|
-
${({ as }) => as === "p" &&
|
|
7540
|
+
${({ as }) => as === "p" && import_styled_components38.css`
|
|
7479
7541
|
display: block;
|
|
7480
7542
|
|
|
7481
7543
|
+ p {
|
|
@@ -7483,7 +7545,7 @@ var StyledText = import_styled_components36.default.div`
|
|
|
7483
7545
|
}
|
|
7484
7546
|
`}
|
|
7485
7547
|
`;
|
|
7486
|
-
var TextComponent = (0,
|
|
7548
|
+
var TextComponent = (0, import_react21.forwardRef)(
|
|
7487
7549
|
({
|
|
7488
7550
|
align = "left",
|
|
7489
7551
|
colorScheme = "inherit",
|
|
@@ -7496,7 +7558,7 @@ var TextComponent = (0, import_react20.forwardRef)(
|
|
|
7496
7558
|
renderAs,
|
|
7497
7559
|
...otherProps
|
|
7498
7560
|
}, ref) => {
|
|
7499
|
-
return /* @__PURE__ */ (0,
|
|
7561
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
7500
7562
|
StyledText,
|
|
7501
7563
|
{
|
|
7502
7564
|
ref,
|
|
@@ -7518,8 +7580,8 @@ TextComponent.displayName = "Text";
|
|
|
7518
7580
|
var Text = makePolymorphic(TextComponent);
|
|
7519
7581
|
|
|
7520
7582
|
// src/components/DataCards/DataCardTrend.tsx
|
|
7521
|
-
var
|
|
7522
|
-
var StyledDataCardTrend =
|
|
7583
|
+
var import_jsx_runtime182 = require("react/jsx-runtime");
|
|
7584
|
+
var StyledDataCardTrend = import_styled_components39.default.div`
|
|
7523
7585
|
${({ $outlook }) => getColorScheme($outlook === "positive" ? "success" : "error")};
|
|
7524
7586
|
background: var(--wui-color-bg-app);
|
|
7525
7587
|
border-radius: var(--wui-border-radius-rounded);
|
|
@@ -7534,8 +7596,8 @@ var DataCardTrend = ({
|
|
|
7534
7596
|
children,
|
|
7535
7597
|
...props
|
|
7536
7598
|
}) => {
|
|
7537
|
-
return /* @__PURE__ */ (0,
|
|
7538
|
-
/* @__PURE__ */ (0,
|
|
7599
|
+
return /* @__PURE__ */ (0, import_jsx_runtime182.jsxs)(StyledDataCardTrend, { $outlook: outlook, children: [
|
|
7600
|
+
/* @__PURE__ */ (0, import_jsx_runtime182.jsx)(
|
|
7539
7601
|
Icon,
|
|
7540
7602
|
{
|
|
7541
7603
|
size: "md",
|
|
@@ -7543,7 +7605,7 @@ var DataCardTrend = ({
|
|
|
7543
7605
|
...props
|
|
7544
7606
|
}
|
|
7545
7607
|
),
|
|
7546
|
-
/* @__PURE__ */ (0,
|
|
7608
|
+
/* @__PURE__ */ (0, import_jsx_runtime182.jsx)(
|
|
7547
7609
|
Text,
|
|
7548
7610
|
{
|
|
7549
7611
|
prominence: "secondary",
|
|
@@ -7555,22 +7617,22 @@ var DataCardTrend = ({
|
|
|
7555
7617
|
};
|
|
7556
7618
|
|
|
7557
7619
|
// src/components/Divider/Divider.tsx
|
|
7558
|
-
var
|
|
7559
|
-
var
|
|
7560
|
-
var horizontalBorderCss =
|
|
7620
|
+
var import_styled_components40 = __toESM(require("styled-components"));
|
|
7621
|
+
var import_jsx_runtime183 = require("react/jsx-runtime");
|
|
7622
|
+
var horizontalBorderCss = import_styled_components40.css`
|
|
7561
7623
|
border-top-color: var(--wui-color-border);
|
|
7562
7624
|
border-top-style: solid;
|
|
7563
7625
|
border-top-width: 1px;
|
|
7564
7626
|
clear: both; /* for horizontal dividers, ensure it clears any floats */
|
|
7565
7627
|
height: 0;
|
|
7566
7628
|
`;
|
|
7567
|
-
var verticalBorderCss =
|
|
7629
|
+
var verticalBorderCss = import_styled_components40.css`
|
|
7568
7630
|
background-color: var(--wui-color-border);
|
|
7569
7631
|
max-width: 1px;
|
|
7570
7632
|
min-height: 100%;
|
|
7571
7633
|
width: 1px;
|
|
7572
7634
|
`;
|
|
7573
|
-
var DividerComponent =
|
|
7635
|
+
var DividerComponent = import_styled_components40.default.div`
|
|
7574
7636
|
${({ $orientation }) => {
|
|
7575
7637
|
switch ($orientation) {
|
|
7576
7638
|
case "vertical":
|
|
@@ -7585,7 +7647,7 @@ var Divider = ({
|
|
|
7585
7647
|
orientation = "horizontal",
|
|
7586
7648
|
...otherProps
|
|
7587
7649
|
}) => {
|
|
7588
|
-
return /* @__PURE__ */ (0,
|
|
7650
|
+
return /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
7589
7651
|
DividerComponent,
|
|
7590
7652
|
{
|
|
7591
7653
|
$orientation: orientation,
|
|
@@ -7598,15 +7660,15 @@ var Divider = ({
|
|
|
7598
7660
|
Divider.displayName = "Divider";
|
|
7599
7661
|
|
|
7600
7662
|
// src/components/EditableHeading/EditableHeading.tsx
|
|
7601
|
-
var
|
|
7602
|
-
var
|
|
7663
|
+
var import_styled_components44 = __toESM(require("styled-components"));
|
|
7664
|
+
var import_react23 = require("react");
|
|
7603
7665
|
|
|
7604
7666
|
// src/components/ScreenReaderOnly/ScreenReaderOnly.tsx
|
|
7605
|
-
var
|
|
7606
|
-
var
|
|
7607
|
-
var
|
|
7608
|
-
var VisuallyHidden =
|
|
7609
|
-
var VisuallyHiddenButFocusable =
|
|
7667
|
+
var import_styled_components41 = __toESM(require("styled-components"));
|
|
7668
|
+
var import_type_guards24 = require("@wistia/type-guards");
|
|
7669
|
+
var import_jsx_runtime184 = require("react/jsx-runtime");
|
|
7670
|
+
var VisuallyHidden = import_styled_components41.default.div({ ...visuallyHiddenStyle });
|
|
7671
|
+
var VisuallyHiddenButFocusable = import_styled_components41.default.div({
|
|
7610
7672
|
"&:not(:focus-within)": visuallyHiddenStyle
|
|
7611
7673
|
});
|
|
7612
7674
|
var ScreenReaderOnly = ({
|
|
@@ -7615,26 +7677,26 @@ var ScreenReaderOnly = ({
|
|
|
7615
7677
|
focusable = false,
|
|
7616
7678
|
...otherProps
|
|
7617
7679
|
}) => {
|
|
7618
|
-
const accessibleText = (0,
|
|
7680
|
+
const accessibleText = (0, import_type_guards24.isNotNil)(text) ? text : children;
|
|
7619
7681
|
if (focusable) {
|
|
7620
|
-
return /* @__PURE__ */ (0,
|
|
7682
|
+
return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(VisuallyHiddenButFocusable, { ...otherProps, children: accessibleText });
|
|
7621
7683
|
}
|
|
7622
|
-
return /* @__PURE__ */ (0,
|
|
7684
|
+
return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(VisuallyHidden, { ...otherProps, children: accessibleText });
|
|
7623
7685
|
};
|
|
7624
7686
|
ScreenReaderOnly.displayName = "ScreenReaderOnly";
|
|
7625
7687
|
|
|
7626
7688
|
// src/components/Tooltip/Tooltip.tsx
|
|
7627
7689
|
var import_react_tooltip2 = require("@radix-ui/react-tooltip");
|
|
7628
|
-
var
|
|
7629
|
-
var
|
|
7630
|
-
var CompactTooltipStyles =
|
|
7690
|
+
var import_styled_components42 = __toESM(require("styled-components"));
|
|
7691
|
+
var import_jsx_runtime185 = require("react/jsx-runtime");
|
|
7692
|
+
var CompactTooltipStyles = import_styled_components42.css`
|
|
7631
7693
|
--tooltip-font-size: var(--wui-typography-label-4-size);
|
|
7632
7694
|
--tooltip-line-height: var(--wui-typography-label-4-line-height);
|
|
7633
7695
|
--tooltip-font-weight: var(--wui-typography-label-4-weight);
|
|
7634
7696
|
--tooltip-horizontal-padding: var(--wui-space-02);
|
|
7635
7697
|
--tooltip-vertical-padding: var(--wui-space-03);
|
|
7636
7698
|
`;
|
|
7637
|
-
var StyledContent = (0,
|
|
7699
|
+
var StyledContent = (0, import_styled_components42.default)(import_react_tooltip2.Content)`
|
|
7638
7700
|
--tooltip-font-family: var(--wui-typography-family-default);
|
|
7639
7701
|
--tooltip-border-radius: var(--wui-border-radius-05);
|
|
7640
7702
|
--tooltip-bg: var(--wui-color-bg-tooltip);
|
|
@@ -7692,14 +7754,14 @@ var Tooltip = ({
|
|
|
7692
7754
|
if (forceOpen === true) {
|
|
7693
7755
|
rootProps.open = true;
|
|
7694
7756
|
}
|
|
7695
|
-
return /* @__PURE__ */ (0,
|
|
7757
|
+
return /* @__PURE__ */ (0, import_jsx_runtime185.jsxs)(
|
|
7696
7758
|
import_react_tooltip2.Root,
|
|
7697
7759
|
{
|
|
7698
7760
|
delayDuration: delay,
|
|
7699
7761
|
...rootProps,
|
|
7700
7762
|
children: [
|
|
7701
|
-
/* @__PURE__ */ (0,
|
|
7702
|
-
/* @__PURE__ */ (0,
|
|
7763
|
+
/* @__PURE__ */ (0, import_jsx_runtime185.jsx)(import_react_tooltip2.Trigger, { asChild: true, children }),
|
|
7764
|
+
/* @__PURE__ */ (0, import_jsx_runtime185.jsx)(import_react_tooltip2.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime185.jsxs)(
|
|
7703
7765
|
StyledContent,
|
|
7704
7766
|
{
|
|
7705
7767
|
$compact: compact,
|
|
@@ -7707,7 +7769,7 @@ var Tooltip = ({
|
|
|
7707
7769
|
sideOffset: hideArrow ? VISUAL_OFFSET : VISUAL_OFFSET - 2,
|
|
7708
7770
|
children: [
|
|
7709
7771
|
content,
|
|
7710
|
-
!hideArrow ? /* @__PURE__ */ (0,
|
|
7772
|
+
!hideArrow ? /* @__PURE__ */ (0, import_jsx_runtime185.jsx)(import_react_tooltip2.Arrow, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime185.jsx)(
|
|
7711
7773
|
"svg",
|
|
7712
7774
|
{
|
|
7713
7775
|
fill: "var(--tooltip-bg)",
|
|
@@ -7716,7 +7778,7 @@ var Tooltip = ({
|
|
|
7716
7778
|
viewBox: "0 0 12 8",
|
|
7717
7779
|
width: "12",
|
|
7718
7780
|
xmlns: "http://www.w3.org/2000/svg",
|
|
7719
|
-
children: /* @__PURE__ */ (0,
|
|
7781
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime185.jsx)("path", { d: "M6.8 6.93333C6.4 7.46667 5.6 7.46667 5.2 6.93333L-2.54292e-07 -1.04907e-06L12 0L6.8 6.93333Z" })
|
|
7720
7782
|
}
|
|
7721
7783
|
) }) : null
|
|
7722
7784
|
]
|
|
@@ -7729,11 +7791,11 @@ var Tooltip = ({
|
|
|
7729
7791
|
Tooltip.displayName = "Tooltip";
|
|
7730
7792
|
|
|
7731
7793
|
// src/components/Input/Input.tsx
|
|
7732
|
-
var
|
|
7733
|
-
var
|
|
7734
|
-
var
|
|
7735
|
-
var
|
|
7736
|
-
var inputStyles =
|
|
7794
|
+
var import_react22 = require("react");
|
|
7795
|
+
var import_styled_components43 = __toESM(require("styled-components"));
|
|
7796
|
+
var import_type_guards25 = require("@wistia/type-guards");
|
|
7797
|
+
var import_jsx_runtime186 = require("react/jsx-runtime");
|
|
7798
|
+
var inputStyles = import_styled_components43.css`
|
|
7737
7799
|
--wui-input-color-bg: var(--wui-color-bg-surface);
|
|
7738
7800
|
--wui-input-color-bg-disabled: var(--wui-color-bg-surface-disabled);
|
|
7739
7801
|
--wui-input-color-border: var(--wui-color-border);
|
|
@@ -7774,7 +7836,7 @@ var inputStyles = import_styled_components41.css`
|
|
|
7774
7836
|
}
|
|
7775
7837
|
}
|
|
7776
7838
|
`;
|
|
7777
|
-
var StyledInputContainer =
|
|
7839
|
+
var StyledInputContainer = import_styled_components43.default.div`
|
|
7778
7840
|
display: inline-flex;
|
|
7779
7841
|
position: relative;
|
|
7780
7842
|
${inputStyles};
|
|
@@ -7818,7 +7880,7 @@ var StyledInputContainer = import_styled_components41.default.div`
|
|
|
7818
7880
|
padding-right: 32px;
|
|
7819
7881
|
}
|
|
7820
7882
|
`;
|
|
7821
|
-
var Input = (0,
|
|
7883
|
+
var Input = (0, import_react22.forwardRef)(
|
|
7822
7884
|
({
|
|
7823
7885
|
fullWidth = false,
|
|
7824
7886
|
monospace = false,
|
|
@@ -7828,27 +7890,27 @@ var Input = (0, import_react21.forwardRef)(
|
|
|
7828
7890
|
rightIcon,
|
|
7829
7891
|
...props
|
|
7830
7892
|
}, externalRef) => {
|
|
7831
|
-
const internalRef = (0,
|
|
7832
|
-
const ref = (0,
|
|
7893
|
+
const internalRef = (0, import_react22.useRef)();
|
|
7894
|
+
const ref = (0, import_type_guards25.isNotNil)(externalRef) && (0, import_type_guards25.isRecord)(externalRef) && "current" in externalRef ? externalRef : internalRef;
|
|
7833
7895
|
let leftIconToDisplay = leftIcon;
|
|
7834
|
-
if ((0,
|
|
7835
|
-
leftIconToDisplay = /* @__PURE__ */ (0,
|
|
7896
|
+
if ((0, import_type_guards25.isNil)(leftIcon) && type === "search") {
|
|
7897
|
+
leftIconToDisplay = /* @__PURE__ */ (0, import_jsx_runtime186.jsx)(Icon, { type: "search" });
|
|
7836
7898
|
}
|
|
7837
|
-
if ((0,
|
|
7838
|
-
leftIconToDisplay = (0,
|
|
7899
|
+
if ((0, import_type_guards25.isNotNil)(leftIconToDisplay)) {
|
|
7900
|
+
leftIconToDisplay = (0, import_react22.cloneElement)(leftIconToDisplay, {
|
|
7839
7901
|
size: "md",
|
|
7840
7902
|
className: "wui-input-left-icon"
|
|
7841
7903
|
});
|
|
7842
7904
|
}
|
|
7843
7905
|
let rightIconToDisplay = rightIcon;
|
|
7844
|
-
if ((0,
|
|
7845
|
-
rightIconToDisplay = (0,
|
|
7906
|
+
if ((0, import_type_guards25.isNotNil)(rightIconToDisplay)) {
|
|
7907
|
+
rightIconToDisplay = (0, import_react22.cloneElement)(rightIconToDisplay, {
|
|
7846
7908
|
size: "md",
|
|
7847
7909
|
className: "wui-input-right-icon"
|
|
7848
7910
|
});
|
|
7849
7911
|
}
|
|
7850
7912
|
const handleFocus = (event) => {
|
|
7851
|
-
if ((0,
|
|
7913
|
+
if ((0, import_type_guards25.isNotNil)(props.onFocus)) {
|
|
7852
7914
|
props.onFocus(event);
|
|
7853
7915
|
}
|
|
7854
7916
|
if (autoSelect && isValidRef(ref) && "current" in ref) {
|
|
@@ -7857,21 +7919,21 @@ var Input = (0, import_react21.forwardRef)(
|
|
|
7857
7919
|
});
|
|
7858
7920
|
}
|
|
7859
7921
|
};
|
|
7860
|
-
return /* @__PURE__ */ (0,
|
|
7922
|
+
return /* @__PURE__ */ (0, import_jsx_runtime186.jsxs)(
|
|
7861
7923
|
StyledInputContainer,
|
|
7862
7924
|
{
|
|
7863
7925
|
$fullWidth: fullWidth,
|
|
7864
7926
|
$monospace: monospace,
|
|
7865
7927
|
children: [
|
|
7866
7928
|
leftIconToDisplay ?? null,
|
|
7867
|
-
type === "multiline" ? /* @__PURE__ */ (0,
|
|
7929
|
+
type === "multiline" ? /* @__PURE__ */ (0, import_jsx_runtime186.jsx)(
|
|
7868
7930
|
"textarea",
|
|
7869
7931
|
{
|
|
7870
7932
|
...props,
|
|
7871
7933
|
ref,
|
|
7872
7934
|
onFocus: handleFocus
|
|
7873
7935
|
}
|
|
7874
|
-
) : /* @__PURE__ */ (0,
|
|
7936
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime186.jsx)(
|
|
7875
7937
|
"input",
|
|
7876
7938
|
{
|
|
7877
7939
|
...props,
|
|
@@ -7889,8 +7951,8 @@ var Input = (0, import_react21.forwardRef)(
|
|
|
7889
7951
|
Input.displayName = "Input";
|
|
7890
7952
|
|
|
7891
7953
|
// src/components/EditableHeading/EditableHeading.tsx
|
|
7892
|
-
var
|
|
7893
|
-
var StyledInput = (0,
|
|
7954
|
+
var import_jsx_runtime187 = require("react/jsx-runtime");
|
|
7955
|
+
var StyledInput = (0, import_styled_components44.default)(Input)`
|
|
7894
7956
|
:not([rows]) {
|
|
7895
7957
|
min-height: unset;
|
|
7896
7958
|
}
|
|
@@ -7910,7 +7972,7 @@ var StyledInput = (0, import_styled_components42.default)(Input)`
|
|
|
7910
7972
|
height: ${({ $height }) => `${$height}px`};
|
|
7911
7973
|
}
|
|
7912
7974
|
`;
|
|
7913
|
-
var editableStyles =
|
|
7975
|
+
var editableStyles = import_styled_components44.css`
|
|
7914
7976
|
&:has(+ :focus-within) {
|
|
7915
7977
|
background: var(--wui-color-bg-surface-hover);
|
|
7916
7978
|
}
|
|
@@ -7920,7 +7982,7 @@ var editableStyles = import_styled_components42.css`
|
|
|
7920
7982
|
cursor: pointer;
|
|
7921
7983
|
}
|
|
7922
7984
|
`;
|
|
7923
|
-
var StyledHeading2 = (0,
|
|
7985
|
+
var StyledHeading2 = (0, import_styled_components44.default)(Heading)`
|
|
7924
7986
|
width: 100%;
|
|
7925
7987
|
border-radius: var(--wui-border-radius-02);
|
|
7926
7988
|
padding: var(--wui-space-02);
|
|
@@ -7937,11 +7999,11 @@ var EditableHeading = ({
|
|
|
7937
7999
|
forceEditing = false,
|
|
7938
8000
|
editingDisabled = false
|
|
7939
8001
|
}) => {
|
|
7940
|
-
const [isEditing, setIsEditing] = (0,
|
|
7941
|
-
const [value, setValue] = (0,
|
|
7942
|
-
const [previousValue, setPreviousValue] = (0,
|
|
7943
|
-
const [headingHeight, setHeadingHeight] = (0,
|
|
7944
|
-
const headingRef = (0,
|
|
8002
|
+
const [isEditing, setIsEditing] = (0, import_react23.useState)(false);
|
|
8003
|
+
const [value, setValue] = (0, import_react23.useState)(children);
|
|
8004
|
+
const [previousValue, setPreviousValue] = (0, import_react23.useState)(children);
|
|
8005
|
+
const [headingHeight, setHeadingHeight] = (0, import_react23.useState)("60");
|
|
8006
|
+
const headingRef = (0, import_react23.useRef)(null);
|
|
7945
8007
|
const handleSetEditing = (editing) => {
|
|
7946
8008
|
if (editingDisabled) return;
|
|
7947
8009
|
if (editing && headingRef.current) {
|
|
@@ -7974,7 +8036,7 @@ var EditableHeading = ({
|
|
|
7974
8036
|
handleSetEditing(false);
|
|
7975
8037
|
}
|
|
7976
8038
|
};
|
|
7977
|
-
const HeadingComponent2 = /* @__PURE__ */ (0,
|
|
8039
|
+
const HeadingComponent2 = /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(
|
|
7978
8040
|
StyledHeading2,
|
|
7979
8041
|
{
|
|
7980
8042
|
ref: headingRef,
|
|
@@ -7988,7 +8050,7 @@ var EditableHeading = ({
|
|
|
7988
8050
|
return HeadingComponent2;
|
|
7989
8051
|
}
|
|
7990
8052
|
if (isEditing || forceEditing) {
|
|
7991
|
-
return /* @__PURE__ */ (0,
|
|
8053
|
+
return /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(
|
|
7992
8054
|
StyledInput,
|
|
7993
8055
|
{
|
|
7994
8056
|
$height: headingHeight,
|
|
@@ -8006,8 +8068,8 @@ var EditableHeading = ({
|
|
|
8006
8068
|
}
|
|
8007
8069
|
);
|
|
8008
8070
|
}
|
|
8009
|
-
return /* @__PURE__ */ (0,
|
|
8010
|
-
/* @__PURE__ */ (0,
|
|
8071
|
+
return /* @__PURE__ */ (0, import_jsx_runtime187.jsxs)(import_jsx_runtime187.Fragment, { children: [
|
|
8072
|
+
/* @__PURE__ */ (0, import_jsx_runtime187.jsx)(
|
|
8011
8073
|
Tooltip,
|
|
8012
8074
|
{
|
|
8013
8075
|
compact: true,
|
|
@@ -8015,7 +8077,7 @@ var EditableHeading = ({
|
|
|
8015
8077
|
children: HeadingComponent2
|
|
8016
8078
|
}
|
|
8017
8079
|
),
|
|
8018
|
-
/* @__PURE__ */ (0,
|
|
8080
|
+
/* @__PURE__ */ (0, import_jsx_runtime187.jsx)(ScreenReaderOnly, { children: /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(
|
|
8019
8081
|
"button",
|
|
8020
8082
|
{
|
|
8021
8083
|
"aria-label": ariaLabel,
|
|
@@ -8027,25 +8089,25 @@ var EditableHeading = ({
|
|
|
8027
8089
|
};
|
|
8028
8090
|
|
|
8029
8091
|
// src/components/Form/Form.tsx
|
|
8030
|
-
var
|
|
8031
|
-
var
|
|
8032
|
-
var
|
|
8092
|
+
var import_react25 = require("react");
|
|
8093
|
+
var import_styled_components46 = __toESM(require("styled-components"));
|
|
8094
|
+
var import_type_guards26 = require("@wistia/type-guards");
|
|
8033
8095
|
|
|
8034
8096
|
// src/components/Stack/Stack.tsx
|
|
8035
|
-
var
|
|
8036
|
-
var
|
|
8037
|
-
var
|
|
8097
|
+
var import_react24 = require("react");
|
|
8098
|
+
var import_styled_components45 = __toESM(require("styled-components"));
|
|
8099
|
+
var import_jsx_runtime188 = require("react/jsx-runtime");
|
|
8038
8100
|
var DEFAULT_ELEMENT4 = "div";
|
|
8039
|
-
var StyledStack =
|
|
8101
|
+
var StyledStack = import_styled_components45.default.div`
|
|
8040
8102
|
display: flex;
|
|
8041
8103
|
flex-direction: ${({ $direction }) => $direction === "horizontal" ? "row" : "column"};
|
|
8042
8104
|
gap: ${({ $gap }) => `var(--wui-${$gap})`};
|
|
8043
8105
|
`;
|
|
8044
|
-
var StackComponent = (0,
|
|
8106
|
+
var StackComponent = (0, import_react24.forwardRef)(
|
|
8045
8107
|
({ renderAs, direction = "vertical", gap = "space-02", ...props }, ref) => {
|
|
8046
8108
|
const responsiveGap = useResponsiveProp(gap);
|
|
8047
8109
|
const responsiveDirection = useResponsiveProp(direction);
|
|
8048
|
-
return /* @__PURE__ */ (0,
|
|
8110
|
+
return /* @__PURE__ */ (0, import_jsx_runtime188.jsx)(
|
|
8049
8111
|
StyledStack,
|
|
8050
8112
|
{
|
|
8051
8113
|
ref,
|
|
@@ -8061,29 +8123,29 @@ StackComponent.displayName = "Stack";
|
|
|
8061
8123
|
var Stack = makePolymorphic(StackComponent);
|
|
8062
8124
|
|
|
8063
8125
|
// src/components/Form/Form.tsx
|
|
8064
|
-
var
|
|
8065
|
-
var StyledForm =
|
|
8126
|
+
var import_jsx_runtime189 = require("react/jsx-runtime");
|
|
8127
|
+
var StyledForm = import_styled_components46.default.form`
|
|
8066
8128
|
--form-default-width: 690px;
|
|
8067
8129
|
|
|
8068
8130
|
max-width: ${({ $fullWidth }) => $fullWidth ? "auto" : "var(--form-default-width)"};
|
|
8069
8131
|
align-items: ${({ $fullWidth }) => $fullWidth ? "stretch" : "flex-start"};
|
|
8070
8132
|
`;
|
|
8071
|
-
var FormContext = (0,
|
|
8133
|
+
var FormContext = (0, import_react25.createContext)({
|
|
8072
8134
|
values: {},
|
|
8073
8135
|
errors: {},
|
|
8074
8136
|
hasSubmitted: false,
|
|
8075
8137
|
formId: ""
|
|
8076
8138
|
});
|
|
8077
8139
|
var FormComponent = ({ children, action, values = {}, validate, fullWidth = false, ...props }, forwardedRef) => {
|
|
8078
|
-
const [errors, setErrors] = (0,
|
|
8079
|
-
const [hasSubmitted, setHasSubmitted] = (0,
|
|
8080
|
-
const innerRef = (0,
|
|
8140
|
+
const [errors, setErrors] = (0, import_react25.useState)({});
|
|
8141
|
+
const [hasSubmitted, setHasSubmitted] = (0, import_react25.useState)(false);
|
|
8142
|
+
const innerRef = (0, import_react25.useRef)();
|
|
8081
8143
|
const ref = forwardedRef ?? innerRef;
|
|
8082
|
-
const autoId = (0,
|
|
8144
|
+
const autoId = (0, import_react25.useId)();
|
|
8083
8145
|
const id = props.id ?? autoId;
|
|
8084
8146
|
const handleValidate = (nextFormData) => {
|
|
8085
8147
|
const nextData = Object.fromEntries(nextFormData.entries());
|
|
8086
|
-
if ((0,
|
|
8148
|
+
if ((0, import_type_guards26.isUndefined)(validate)) {
|
|
8087
8149
|
return {};
|
|
8088
8150
|
}
|
|
8089
8151
|
return validate(nextData);
|
|
@@ -8093,7 +8155,7 @@ var FormComponent = ({ children, action, values = {}, validate, fullWidth = fals
|
|
|
8093
8155
|
props.onBlur(event);
|
|
8094
8156
|
}
|
|
8095
8157
|
const formData = new FormData(event.currentTarget);
|
|
8096
|
-
if ((0,
|
|
8158
|
+
if ((0, import_type_guards26.isNotUndefined)(validate)) {
|
|
8097
8159
|
handleValidate(formData);
|
|
8098
8160
|
}
|
|
8099
8161
|
};
|
|
@@ -8121,7 +8183,7 @@ var FormComponent = ({ children, action, values = {}, validate, fullWidth = fals
|
|
|
8121
8183
|
void action(null);
|
|
8122
8184
|
}
|
|
8123
8185
|
};
|
|
8124
|
-
const context = (0,
|
|
8186
|
+
const context = (0, import_react25.useMemo)(() => {
|
|
8125
8187
|
return {
|
|
8126
8188
|
values,
|
|
8127
8189
|
errors,
|
|
@@ -8131,7 +8193,7 @@ var FormComponent = ({ children, action, values = {}, validate, fullWidth = fals
|
|
|
8131
8193
|
}, [values, errors, id, hasSubmitted]);
|
|
8132
8194
|
return (
|
|
8133
8195
|
// @ts-expect-error - generic context providers are a giant pain
|
|
8134
|
-
/* @__PURE__ */ (0,
|
|
8196
|
+
/* @__PURE__ */ (0, import_jsx_runtime189.jsx)(FormContext.Provider, { value: context, children: /* @__PURE__ */ (0, import_jsx_runtime189.jsx)(
|
|
8135
8197
|
Stack,
|
|
8136
8198
|
{
|
|
8137
8199
|
gap: "space-05",
|
|
@@ -8149,15 +8211,15 @@ var FormComponent = ({ children, action, values = {}, validate, fullWidth = fals
|
|
|
8149
8211
|
);
|
|
8150
8212
|
};
|
|
8151
8213
|
FormComponent.displayName = "Form";
|
|
8152
|
-
var Form = (0,
|
|
8214
|
+
var Form = (0, import_react25.forwardRef)(FormComponent);
|
|
8153
8215
|
|
|
8154
8216
|
// src/components/Form/useFormState.tsx
|
|
8155
|
-
var
|
|
8217
|
+
var import_react26 = require("react");
|
|
8156
8218
|
var useFormState = (action, initialData = {}) => {
|
|
8157
|
-
const [data, setData] = (0,
|
|
8158
|
-
const [isPending, setIsPending] = (0,
|
|
8159
|
-
const [error, setError] = (0,
|
|
8160
|
-
const formAction = (0,
|
|
8219
|
+
const [data, setData] = (0, import_react26.useState)(initialData);
|
|
8220
|
+
const [isPending, setIsPending] = (0, import_react26.useState)(false);
|
|
8221
|
+
const [error, setError] = (0, import_react26.useState)(null);
|
|
8222
|
+
const formAction = (0, import_react26.useCallback)(
|
|
8161
8223
|
async (nextFormData) => {
|
|
8162
8224
|
if (nextFormData === null) {
|
|
8163
8225
|
setData(initialData);
|
|
@@ -8188,23 +8250,23 @@ var useFormState = (action, initialData = {}) => {
|
|
|
8188
8250
|
};
|
|
8189
8251
|
|
|
8190
8252
|
// src/components/Form/FormErrorSummary.tsx
|
|
8191
|
-
var
|
|
8192
|
-
var
|
|
8193
|
-
var
|
|
8253
|
+
var import_react27 = require("react");
|
|
8254
|
+
var import_type_guards27 = require("@wistia/type-guards");
|
|
8255
|
+
var import_jsx_runtime190 = require("react/jsx-runtime");
|
|
8194
8256
|
var ErrorItem = ({ name, error, formId }) => {
|
|
8195
|
-
return /* @__PURE__ */ (0,
|
|
8257
|
+
return /* @__PURE__ */ (0, import_jsx_runtime190.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime190.jsx)(Link, { href: `${formId}-${name}`, children: error }) }, name);
|
|
8196
8258
|
};
|
|
8197
8259
|
var FormErrorSummary = ({ description }) => {
|
|
8198
|
-
const ref = (0,
|
|
8199
|
-
const { formId, errors, hasSubmitted } = (0,
|
|
8260
|
+
const ref = (0, import_react27.useRef)(null);
|
|
8261
|
+
const { formId, errors, hasSubmitted } = (0, import_react27.useContext)(FormContext);
|
|
8200
8262
|
const isValid = Object.keys(errors).length === 0;
|
|
8201
8263
|
if (isValid || !hasSubmitted) {
|
|
8202
8264
|
return null;
|
|
8203
8265
|
}
|
|
8204
|
-
return /* @__PURE__ */ (0,
|
|
8205
|
-
/* @__PURE__ */ (0,
|
|
8206
|
-
/* @__PURE__ */ (0,
|
|
8207
|
-
([name, error]) => (0,
|
|
8266
|
+
return /* @__PURE__ */ (0, import_jsx_runtime190.jsxs)("div", { ref, children: [
|
|
8267
|
+
/* @__PURE__ */ (0, import_jsx_runtime190.jsx)("p", { children: description }),
|
|
8268
|
+
/* @__PURE__ */ (0, import_jsx_runtime190.jsx)("ul", { children: Object.entries(errors).filter(([, error]) => (0, import_type_guards27.isNotUndefined)(error)).map(
|
|
8269
|
+
([name, error]) => (0, import_type_guards27.isArray)(error) ? error.map((err) => /* @__PURE__ */ (0, import_jsx_runtime190.jsx)(
|
|
8208
8270
|
ErrorItem,
|
|
8209
8271
|
{
|
|
8210
8272
|
error: err,
|
|
@@ -8212,7 +8274,7 @@ var FormErrorSummary = ({ description }) => {
|
|
|
8212
8274
|
name
|
|
8213
8275
|
},
|
|
8214
8276
|
err
|
|
8215
|
-
)) : /* @__PURE__ */ (0,
|
|
8277
|
+
)) : /* @__PURE__ */ (0, import_jsx_runtime190.jsx)(
|
|
8216
8278
|
ErrorItem,
|
|
8217
8279
|
{
|
|
8218
8280
|
error: error ?? "",
|
|
@@ -8226,33 +8288,33 @@ var FormErrorSummary = ({ description }) => {
|
|
|
8226
8288
|
};
|
|
8227
8289
|
|
|
8228
8290
|
// src/components/FormField/FormField.tsx
|
|
8229
|
-
var
|
|
8230
|
-
var
|
|
8231
|
-
var
|
|
8291
|
+
var import_react30 = require("react");
|
|
8292
|
+
var import_styled_components48 = __toESM(require("styled-components"));
|
|
8293
|
+
var import_type_guards28 = require("@wistia/type-guards");
|
|
8232
8294
|
|
|
8233
8295
|
// src/components/FormGroup/CheckboxGroup.tsx
|
|
8234
|
-
var
|
|
8296
|
+
var import_react29 = require("react");
|
|
8235
8297
|
|
|
8236
8298
|
// src/components/FormGroup/FormGroup.tsx
|
|
8237
|
-
var
|
|
8238
|
-
var
|
|
8239
|
-
var
|
|
8240
|
-
var StyledFieldset =
|
|
8299
|
+
var import_styled_components47 = __toESM(require("styled-components"));
|
|
8300
|
+
var import_react28 = require("react");
|
|
8301
|
+
var import_jsx_runtime191 = require("react/jsx-runtime");
|
|
8302
|
+
var StyledFieldset = import_styled_components47.default.fieldset`
|
|
8241
8303
|
border: 0;
|
|
8242
8304
|
`;
|
|
8243
|
-
var StyledLegend =
|
|
8305
|
+
var StyledLegend = import_styled_components47.default.legend`
|
|
8244
8306
|
margin-bottom: var(--space-01);
|
|
8245
8307
|
`;
|
|
8246
8308
|
var FormGroup = ({ children, label, ...props }) => {
|
|
8247
|
-
const ref = (0,
|
|
8248
|
-
return /* @__PURE__ */ (0,
|
|
8309
|
+
const ref = (0, import_react28.useRef)();
|
|
8310
|
+
return /* @__PURE__ */ (0, import_jsx_runtime191.jsxs)(
|
|
8249
8311
|
Stack,
|
|
8250
8312
|
{
|
|
8251
8313
|
...props,
|
|
8252
8314
|
ref,
|
|
8253
8315
|
renderAs: StyledFieldset,
|
|
8254
8316
|
children: [
|
|
8255
|
-
/* @__PURE__ */ (0,
|
|
8317
|
+
/* @__PURE__ */ (0, import_jsx_runtime191.jsx)(
|
|
8256
8318
|
Heading,
|
|
8257
8319
|
{
|
|
8258
8320
|
renderAs: StyledLegend,
|
|
@@ -8268,8 +8330,8 @@ var FormGroup = ({ children, label, ...props }) => {
|
|
|
8268
8330
|
FormGroup.displayName = "FormGroup";
|
|
8269
8331
|
|
|
8270
8332
|
// src/components/FormGroup/CheckboxGroup.tsx
|
|
8271
|
-
var
|
|
8272
|
-
var CheckboxGroupContext = (0,
|
|
8333
|
+
var import_jsx_runtime192 = require("react/jsx-runtime");
|
|
8334
|
+
var CheckboxGroupContext = (0, import_react29.createContext)(null);
|
|
8273
8335
|
var CheckboxGroup = ({
|
|
8274
8336
|
children,
|
|
8275
8337
|
name,
|
|
@@ -8277,19 +8339,19 @@ var CheckboxGroup = ({
|
|
|
8277
8339
|
value,
|
|
8278
8340
|
...props
|
|
8279
8341
|
}) => {
|
|
8280
|
-
const context = (0,
|
|
8342
|
+
const context = (0, import_react29.useMemo)(() => {
|
|
8281
8343
|
return {
|
|
8282
8344
|
name,
|
|
8283
8345
|
onChange
|
|
8284
8346
|
};
|
|
8285
8347
|
}, [name, onChange]);
|
|
8286
|
-
return /* @__PURE__ */ (0,
|
|
8348
|
+
return /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(CheckboxGroupContext.Provider, { value: context, children: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(FormGroup, { ...props, children }) });
|
|
8287
8349
|
};
|
|
8288
8350
|
CheckboxGroup.displayName = "CheckboxGroup";
|
|
8289
8351
|
|
|
8290
8352
|
// src/components/FormField/FormField.tsx
|
|
8291
|
-
var
|
|
8292
|
-
var StyledFormField =
|
|
8353
|
+
var import_jsx_runtime193 = require("react/jsx-runtime");
|
|
8354
|
+
var StyledFormField = import_styled_components48.default.div`
|
|
8293
8355
|
--form-field-spacing: var(--wui-space-01);
|
|
8294
8356
|
--form-field-error-color: var(--wui-color-text-secondary-error);
|
|
8295
8357
|
|
|
@@ -8297,7 +8359,7 @@ var StyledFormField = import_styled_components46.default.div`
|
|
|
8297
8359
|
flex-direction: column;
|
|
8298
8360
|
gap: var(--form-field-spacing);
|
|
8299
8361
|
`;
|
|
8300
|
-
var StyledErrorList =
|
|
8362
|
+
var StyledErrorList = import_styled_components48.default.ul`
|
|
8301
8363
|
margin: 0;
|
|
8302
8364
|
padding: 0;
|
|
8303
8365
|
padding-left: var(--wui-space-04);
|
|
@@ -8306,8 +8368,8 @@ var StyledErrorList = import_styled_components46.default.ul`
|
|
|
8306
8368
|
gap: var(--wui-space-01);
|
|
8307
8369
|
`;
|
|
8308
8370
|
var ErrorMessages = ({ errors, id }) => {
|
|
8309
|
-
const isMultipleErrors = (0,
|
|
8310
|
-
return isMultipleErrors ? /* @__PURE__ */ (0,
|
|
8371
|
+
const isMultipleErrors = (0, import_type_guards28.isArray)(errors);
|
|
8372
|
+
return isMultipleErrors ? /* @__PURE__ */ (0, import_jsx_runtime193.jsx)(StyledErrorList, { children: errors.map((error, index) => /* @__PURE__ */ (0, import_jsx_runtime193.jsx)(
|
|
8311
8373
|
Text,
|
|
8312
8374
|
{
|
|
8313
8375
|
colorScheme: "error",
|
|
@@ -8317,7 +8379,7 @@ var ErrorMessages = ({ errors, id }) => {
|
|
|
8317
8379
|
children: error
|
|
8318
8380
|
},
|
|
8319
8381
|
`${id}-${index}`
|
|
8320
|
-
)) }) : /* @__PURE__ */ (0,
|
|
8382
|
+
)) }) : /* @__PURE__ */ (0, import_jsx_runtime193.jsx)(
|
|
8321
8383
|
Text,
|
|
8322
8384
|
{
|
|
8323
8385
|
colorScheme: "error",
|
|
@@ -8337,8 +8399,8 @@ var FormField = ({
|
|
|
8337
8399
|
value,
|
|
8338
8400
|
...props
|
|
8339
8401
|
}) => {
|
|
8340
|
-
const formState = (0,
|
|
8341
|
-
const checkboxGroup = (0,
|
|
8402
|
+
const formState = (0, import_react30.useContext)(FormContext);
|
|
8403
|
+
const checkboxGroup = (0, import_react30.useContext)(CheckboxGroupContext);
|
|
8342
8404
|
const id = props.id ?? `${formState.formId}-${name}`;
|
|
8343
8405
|
const isInlineLabel = children.type === Checkbox;
|
|
8344
8406
|
const computedError = error ?? formState.errors[name];
|
|
@@ -8349,19 +8411,19 @@ var FormField = ({
|
|
|
8349
8411
|
label: isInlineLabel ? label : void 0,
|
|
8350
8412
|
...props
|
|
8351
8413
|
};
|
|
8352
|
-
if ((0,
|
|
8414
|
+
if ((0, import_type_guards28.isUndefined)(value) && (0, import_type_guards28.isNotUndefined)(defaultValue)) {
|
|
8353
8415
|
childProps = {
|
|
8354
8416
|
...childProps,
|
|
8355
8417
|
defaultValue
|
|
8356
8418
|
};
|
|
8357
8419
|
}
|
|
8358
|
-
if ((0,
|
|
8359
|
-
const computedName = (0,
|
|
8420
|
+
if ((0, import_type_guards28.isNotNil)(checkboxGroup)) {
|
|
8421
|
+
const computedName = (0, import_type_guards28.isNotNil)(checkboxGroup.name) ? `${checkboxGroup.name}[${name}]` : name;
|
|
8360
8422
|
const handleChange = (event) => {
|
|
8361
|
-
if ((0,
|
|
8423
|
+
if ((0, import_type_guards28.isNotUndefined)(props.onChange)) {
|
|
8362
8424
|
props.onChange(event);
|
|
8363
8425
|
}
|
|
8364
|
-
if ((0,
|
|
8426
|
+
if ((0, import_type_guards28.isNotUndefined)(checkboxGroup.onChange)) {
|
|
8365
8427
|
checkboxGroup.onChange(event);
|
|
8366
8428
|
}
|
|
8367
8429
|
};
|
|
@@ -8369,15 +8431,15 @@ var FormField = ({
|
|
|
8369
8431
|
...childProps,
|
|
8370
8432
|
name: computedName,
|
|
8371
8433
|
onChange: handleChange,
|
|
8372
|
-
"aria-invalid": (0,
|
|
8373
|
-
"aria-describedby": (0,
|
|
8434
|
+
"aria-invalid": (0, import_type_guards28.isNotNil)(error),
|
|
8435
|
+
"aria-describedby": (0, import_type_guards28.isNotNil)(error) ? `${id}-error` : void 0
|
|
8374
8436
|
};
|
|
8375
8437
|
}
|
|
8376
|
-
|
|
8377
|
-
return /* @__PURE__ */ (0,
|
|
8378
|
-
!isInlineLabel && /* @__PURE__ */ (0,
|
|
8379
|
-
(0,
|
|
8380
|
-
(0,
|
|
8438
|
+
import_react30.Children.only(children);
|
|
8439
|
+
return /* @__PURE__ */ (0, import_jsx_runtime193.jsxs)(StyledFormField, { ...props, children: [
|
|
8440
|
+
!isInlineLabel && /* @__PURE__ */ (0, import_jsx_runtime193.jsx)(Label, { htmlFor: id, children: label }),
|
|
8441
|
+
(0, import_react30.cloneElement)(children, childProps),
|
|
8442
|
+
(0, import_type_guards28.isNotNil)(computedError) ? /* @__PURE__ */ (0, import_jsx_runtime193.jsx)(
|
|
8381
8443
|
ErrorMessages,
|
|
8382
8444
|
{
|
|
8383
8445
|
errors: computedError,
|
|
@@ -8389,9 +8451,9 @@ var FormField = ({
|
|
|
8389
8451
|
FormField.displayName = "FormField";
|
|
8390
8452
|
|
|
8391
8453
|
// src/components/FormGroup/RadioGroup.tsx
|
|
8392
|
-
var
|
|
8393
|
-
var
|
|
8394
|
-
var RadioGroupContext = (0,
|
|
8454
|
+
var import_react31 = require("react");
|
|
8455
|
+
var import_jsx_runtime194 = require("react/jsx-runtime");
|
|
8456
|
+
var RadioGroupContext = (0, import_react31.createContext)(null);
|
|
8395
8457
|
var RadioGroup = ({
|
|
8396
8458
|
children,
|
|
8397
8459
|
name,
|
|
@@ -8399,21 +8461,21 @@ var RadioGroup = ({
|
|
|
8399
8461
|
value,
|
|
8400
8462
|
...props
|
|
8401
8463
|
}) => {
|
|
8402
|
-
const context = (0,
|
|
8464
|
+
const context = (0, import_react31.useMemo)(() => {
|
|
8403
8465
|
return {
|
|
8404
8466
|
name,
|
|
8405
8467
|
onChange
|
|
8406
8468
|
};
|
|
8407
8469
|
}, [name, onChange]);
|
|
8408
|
-
return /* @__PURE__ */ (0,
|
|
8470
|
+
return /* @__PURE__ */ (0, import_jsx_runtime194.jsx)(RadioGroupContext.Provider, { value: context, children: /* @__PURE__ */ (0, import_jsx_runtime194.jsx)(FormGroup, { ...props, children }) });
|
|
8409
8471
|
};
|
|
8410
8472
|
RadioGroup.displayName = "RadioGroup";
|
|
8411
8473
|
|
|
8412
8474
|
// src/components/IconButton/IconButton.tsx
|
|
8413
|
-
var
|
|
8414
|
-
var
|
|
8415
|
-
var
|
|
8416
|
-
var StyledButton2 = (0,
|
|
8475
|
+
var import_react32 = require("react");
|
|
8476
|
+
var import_styled_components49 = __toESM(require("styled-components"));
|
|
8477
|
+
var import_jsx_runtime195 = require("react/jsx-runtime");
|
|
8478
|
+
var StyledButton2 = (0, import_styled_components49.default)(Button)`
|
|
8417
8479
|
--icon-button-size-sm: 24px;
|
|
8418
8480
|
--icon-button-size-md: 32px;
|
|
8419
8481
|
--icon-button-size-lg: 40px;
|
|
@@ -8427,10 +8489,10 @@ var StyledButton2 = (0, import_styled_components47.default)(Button)`
|
|
|
8427
8489
|
align-items: center;
|
|
8428
8490
|
line-height: 1;
|
|
8429
8491
|
`;
|
|
8430
|
-
var IconButton = (0,
|
|
8492
|
+
var IconButton = (0, import_react32.forwardRef)(
|
|
8431
8493
|
({ children, label, size = "md", ...props }, ref) => {
|
|
8432
8494
|
const responsiveSize = useResponsiveProp(size);
|
|
8433
|
-
return /* @__PURE__ */ (0,
|
|
8495
|
+
return /* @__PURE__ */ (0, import_jsx_runtime195.jsx)(
|
|
8434
8496
|
StyledButton2,
|
|
8435
8497
|
{
|
|
8436
8498
|
...props,
|
|
@@ -8438,7 +8500,7 @@ var IconButton = (0, import_react31.forwardRef)(
|
|
|
8438
8500
|
"aria-label": label,
|
|
8439
8501
|
"data-wistia-ui-icon-button": true,
|
|
8440
8502
|
size: responsiveSize,
|
|
8441
|
-
children: (0,
|
|
8503
|
+
children: (0, import_react32.cloneElement)(import_react32.Children.only(children), {
|
|
8442
8504
|
size: responsiveSize
|
|
8443
8505
|
})
|
|
8444
8506
|
}
|
|
@@ -8448,19 +8510,19 @@ var IconButton = (0, import_react31.forwardRef)(
|
|
|
8448
8510
|
IconButton.displayName = "IconButton";
|
|
8449
8511
|
|
|
8450
8512
|
// src/components/Menu/Menu.tsx
|
|
8451
|
-
var
|
|
8513
|
+
var import_styled_components50 = __toESM(require("styled-components"));
|
|
8452
8514
|
var import_react_dropdown_menu = require("@radix-ui/react-dropdown-menu");
|
|
8453
|
-
var
|
|
8454
|
-
var
|
|
8515
|
+
var import_type_guards29 = require("@wistia/type-guards");
|
|
8516
|
+
var import_react34 = require("react");
|
|
8455
8517
|
|
|
8456
8518
|
// src/components/Menu/MenuContext.tsx
|
|
8457
|
-
var
|
|
8458
|
-
var MenuContext = (0,
|
|
8459
|
-
var useMenuContext = () => (0,
|
|
8519
|
+
var import_react33 = require("react");
|
|
8520
|
+
var MenuContext = (0, import_react33.createContext)({ compact: false });
|
|
8521
|
+
var useMenuContext = () => (0, import_react33.useContext)(MenuContext);
|
|
8460
8522
|
|
|
8461
8523
|
// src/components/Menu/Menu.tsx
|
|
8462
|
-
var
|
|
8463
|
-
var open =
|
|
8524
|
+
var import_jsx_runtime196 = require("react/jsx-runtime");
|
|
8525
|
+
var open = import_styled_components50.keyframes`
|
|
8464
8526
|
from {
|
|
8465
8527
|
opacity: 0;
|
|
8466
8528
|
transform: scale(.97) translateY(-8px);
|
|
@@ -8470,7 +8532,7 @@ var open = import_styled_components48.keyframes`
|
|
|
8470
8532
|
transform: scale(1);
|
|
8471
8533
|
}
|
|
8472
8534
|
`;
|
|
8473
|
-
var close =
|
|
8535
|
+
var close = import_styled_components50.keyframes`
|
|
8474
8536
|
from {
|
|
8475
8537
|
opacity: 1;
|
|
8476
8538
|
transform: scale(1);
|
|
@@ -8480,7 +8542,7 @@ var close = import_styled_components48.keyframes`
|
|
|
8480
8542
|
transform: scale(.97) translateY(-8px);
|
|
8481
8543
|
}
|
|
8482
8544
|
`;
|
|
8483
|
-
var menuItemCss =
|
|
8545
|
+
var menuItemCss = import_styled_components50.css`
|
|
8484
8546
|
--menu-label-description-gap: var(--wui-space-01);
|
|
8485
8547
|
--menu-item-inner-gap: var(--wui-space-03);
|
|
8486
8548
|
--menu-item-left-icon-size: 24px;
|
|
@@ -8491,7 +8553,7 @@ var menuItemCss = import_styled_components48.css`
|
|
|
8491
8553
|
--menu-label-line-height: var(--wui-typography-label-3-line-height);
|
|
8492
8554
|
--menu-divider-margin: var(--wui-space-02);
|
|
8493
8555
|
`;
|
|
8494
|
-
var compactMenuItemCss =
|
|
8556
|
+
var compactMenuItemCss = import_styled_components50.css`
|
|
8495
8557
|
--menu-label-description-gap: 0;
|
|
8496
8558
|
--menu-item-inner-gap: var(--wui-space-02);
|
|
8497
8559
|
--menu-item-left-icon-size: 16px;
|
|
@@ -8502,7 +8564,7 @@ var compactMenuItemCss = import_styled_components48.css`
|
|
|
8502
8564
|
--menu-label-line-height: var(--wui-typography-label-4-line-height);
|
|
8503
8565
|
--menu-divider-margin: var(--wui-space-01);
|
|
8504
8566
|
`;
|
|
8505
|
-
var menuContentCss =
|
|
8567
|
+
var menuContentCss = import_styled_components50.css`
|
|
8506
8568
|
--menu-font-family: var(--wui-typography-family-default);
|
|
8507
8569
|
--menu-bg: var(--wui-color-bg-surface);
|
|
8508
8570
|
--menu-shadow: var(--wui-elevation-01);
|
|
@@ -8544,7 +8606,7 @@ var menuContentCss = import_styled_components48.css`
|
|
|
8544
8606
|
margin: var(--menu-divider-margin) 0;
|
|
8545
8607
|
}
|
|
8546
8608
|
`;
|
|
8547
|
-
var MenuContent = (0,
|
|
8609
|
+
var MenuContent = (0, import_styled_components50.default)(import_react_dropdown_menu.DropdownMenuContent)`
|
|
8548
8610
|
${menuContentCss}
|
|
8549
8611
|
`;
|
|
8550
8612
|
var Menu = ({
|
|
@@ -8560,9 +8622,9 @@ var Menu = ({
|
|
|
8560
8622
|
onInteractOutside,
|
|
8561
8623
|
...props
|
|
8562
8624
|
}) => {
|
|
8563
|
-
const contextValue = (0,
|
|
8625
|
+
const contextValue = (0, import_react34.useMemo)(() => ({ compact }), [compact]);
|
|
8564
8626
|
let controlProps = {
|
|
8565
|
-
...(0,
|
|
8627
|
+
...(0, import_type_guards29.isNotNil)(onOpenChange) && (0, import_type_guards29.isNotNil)(isOpen) ? { open: isOpen, onOpenChange } : {}
|
|
8566
8628
|
};
|
|
8567
8629
|
if (disabled) {
|
|
8568
8630
|
controlProps = {
|
|
@@ -8570,24 +8632,24 @@ var Menu = ({
|
|
|
8570
8632
|
onOpenChange: () => null
|
|
8571
8633
|
};
|
|
8572
8634
|
}
|
|
8573
|
-
return /* @__PURE__ */ (0,
|
|
8635
|
+
return /* @__PURE__ */ (0, import_jsx_runtime196.jsx)(MenuContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime196.jsxs)(
|
|
8574
8636
|
import_react_dropdown_menu.DropdownMenu,
|
|
8575
8637
|
{
|
|
8576
8638
|
modal: false,
|
|
8577
8639
|
...controlProps,
|
|
8578
8640
|
children: [
|
|
8579
|
-
/* @__PURE__ */ (0,
|
|
8641
|
+
/* @__PURE__ */ (0, import_jsx_runtime196.jsx)(import_react_dropdown_menu.DropdownMenuTrigger, { asChild: true, children: (0, import_type_guards29.isNotUndefined)(trigger) ? trigger : /* @__PURE__ */ (0, import_jsx_runtime196.jsx)(
|
|
8580
8642
|
Button,
|
|
8581
8643
|
{
|
|
8582
8644
|
"aria-expanded": isOpen,
|
|
8583
8645
|
disabled,
|
|
8584
8646
|
forceState: isOpen ? "active" : void 0,
|
|
8585
|
-
rightIcon: /* @__PURE__ */ (0,
|
|
8647
|
+
rightIcon: /* @__PURE__ */ (0, import_jsx_runtime196.jsx)(Icon, { type: "caret-down" }),
|
|
8586
8648
|
...triggerProps,
|
|
8587
8649
|
children: label
|
|
8588
8650
|
}
|
|
8589
8651
|
) }),
|
|
8590
|
-
/* @__PURE__ */ (0,
|
|
8652
|
+
/* @__PURE__ */ (0, import_jsx_runtime196.jsx)(import_react_dropdown_menu.DropdownMenuPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime196.jsx)(
|
|
8591
8653
|
MenuContent,
|
|
8592
8654
|
{
|
|
8593
8655
|
...props,
|
|
@@ -8607,19 +8669,19 @@ var Menu = ({
|
|
|
8607
8669
|
Menu.displayName = "Menu";
|
|
8608
8670
|
|
|
8609
8671
|
// src/components/Menu/MenuLabel.tsx
|
|
8610
|
-
var
|
|
8672
|
+
var import_styled_components51 = __toESM(require("styled-components"));
|
|
8611
8673
|
var import_react_dropdown_menu2 = require("@radix-ui/react-dropdown-menu");
|
|
8612
|
-
var
|
|
8613
|
-
var StyledMenuLabel = (0,
|
|
8674
|
+
var import_jsx_runtime197 = require("react/jsx-runtime");
|
|
8675
|
+
var StyledMenuLabel = (0, import_styled_components51.default)(import_react_dropdown_menu2.DropdownMenuLabel)`
|
|
8614
8676
|
padding: var(--wui-space-02);
|
|
8615
8677
|
`;
|
|
8616
8678
|
var MenuLabel = ({ children, ...props }) => {
|
|
8617
|
-
return /* @__PURE__ */ (0,
|
|
8679
|
+
return /* @__PURE__ */ (0, import_jsx_runtime197.jsx)(
|
|
8618
8680
|
StyledMenuLabel,
|
|
8619
8681
|
{
|
|
8620
8682
|
asChild: true,
|
|
8621
8683
|
...props,
|
|
8622
|
-
children: /* @__PURE__ */ (0,
|
|
8684
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime197.jsx)(
|
|
8623
8685
|
Heading,
|
|
8624
8686
|
{
|
|
8625
8687
|
renderAs: "span",
|
|
@@ -8634,17 +8696,17 @@ var MenuLabel = ({ children, ...props }) => {
|
|
|
8634
8696
|
MenuLabel.displayName = "MenuLabel";
|
|
8635
8697
|
|
|
8636
8698
|
// src/components/Menu/SubMenu.tsx
|
|
8637
|
-
var
|
|
8638
|
-
var
|
|
8699
|
+
var import_react36 = require("react");
|
|
8700
|
+
var import_styled_components54 = __toESM(require("styled-components"));
|
|
8639
8701
|
var import_react_dropdown_menu3 = require("@radix-ui/react-dropdown-menu");
|
|
8640
|
-
var
|
|
8702
|
+
var import_type_guards31 = require("@wistia/type-guards");
|
|
8641
8703
|
|
|
8642
8704
|
// src/components/Menu/MenuItemButton.tsx
|
|
8643
|
-
var
|
|
8644
|
-
var
|
|
8645
|
-
var
|
|
8646
|
-
var
|
|
8647
|
-
var StyledButton3 = (0,
|
|
8705
|
+
var import_react35 = require("react");
|
|
8706
|
+
var import_styled_components52 = __toESM(require("styled-components"));
|
|
8707
|
+
var import_type_guards30 = require("@wistia/type-guards");
|
|
8708
|
+
var import_jsx_runtime198 = require("react/jsx-runtime");
|
|
8709
|
+
var StyledButton3 = (0, import_styled_components52.default)(Button)`
|
|
8648
8710
|
${({ colorScheme }) => getColorScheme(colorScheme)};
|
|
8649
8711
|
|
|
8650
8712
|
display: flex;
|
|
@@ -8683,7 +8745,7 @@ var StyledButton3 = (0, import_styled_components50.default)(Button)`
|
|
|
8683
8745
|
padding-left: var(--wui-space-04);
|
|
8684
8746
|
}
|
|
8685
8747
|
`;
|
|
8686
|
-
var StyledLeftIconContainer =
|
|
8748
|
+
var StyledLeftIconContainer = import_styled_components52.default.div`
|
|
8687
8749
|
height: var(--menu-item-left-icon-size);
|
|
8688
8750
|
width: var(--menu-item-left-icon-size);
|
|
8689
8751
|
|
|
@@ -8694,7 +8756,7 @@ var StyledLeftIconContainer = import_styled_components50.default.div`
|
|
|
8694
8756
|
}
|
|
8695
8757
|
}
|
|
8696
8758
|
`;
|
|
8697
|
-
var StyledRightIconContainer =
|
|
8759
|
+
var StyledRightIconContainer = import_styled_components52.default.div`
|
|
8698
8760
|
height: var(--menu-item-right-icon-size);
|
|
8699
8761
|
width: var(--menu-item-right-icon-size);
|
|
8700
8762
|
|
|
@@ -8705,28 +8767,28 @@ var StyledRightIconContainer = import_styled_components50.default.div`
|
|
|
8705
8767
|
}
|
|
8706
8768
|
}
|
|
8707
8769
|
`;
|
|
8708
|
-
var StyledLabelAndDescriptionContainer =
|
|
8770
|
+
var StyledLabelAndDescriptionContainer = import_styled_components52.default.div`
|
|
8709
8771
|
display: flex;
|
|
8710
8772
|
flex-direction: column;
|
|
8711
8773
|
gap: var(--menu-label-description-gap);
|
|
8712
8774
|
flex-basis: 100%;
|
|
8713
8775
|
`;
|
|
8714
|
-
var StyledBadgeContainer =
|
|
8776
|
+
var StyledBadgeContainer = import_styled_components52.default.div`
|
|
8715
8777
|
align-self: start;
|
|
8716
8778
|
justify-self: end;
|
|
8717
8779
|
font-size: var(--wui-typography-label-4-size);
|
|
8718
8780
|
color: var(--wui-color-text-secondary);
|
|
8719
8781
|
`;
|
|
8720
|
-
var MenuItemButton = (0,
|
|
8782
|
+
var MenuItemButton = (0, import_react35.forwardRef)(({ children, appearance, command, icon, ...props }, ref) => {
|
|
8721
8783
|
let { colorScheme, badge } = props;
|
|
8722
8784
|
if (appearance === "dangerous") {
|
|
8723
|
-
if ((0,
|
|
8785
|
+
if ((0, import_type_guards30.isNotUndefined)(colorScheme)) {
|
|
8724
8786
|
console.warn("colorScheme prop is ignored when appearance is dangerous");
|
|
8725
8787
|
}
|
|
8726
8788
|
colorScheme = "error";
|
|
8727
8789
|
}
|
|
8728
8790
|
if (appearance === "gated") {
|
|
8729
|
-
badge = /* @__PURE__ */ (0,
|
|
8791
|
+
badge = /* @__PURE__ */ (0, import_jsx_runtime198.jsx)(
|
|
8730
8792
|
Icon,
|
|
8731
8793
|
{
|
|
8732
8794
|
colorScheme: "purple",
|
|
@@ -8738,7 +8800,7 @@ var MenuItemButton = (0, import_react34.forwardRef)(({ children, appearance, com
|
|
|
8738
8800
|
}
|
|
8739
8801
|
);
|
|
8740
8802
|
}
|
|
8741
|
-
return /* @__PURE__ */ (0,
|
|
8803
|
+
return /* @__PURE__ */ (0, import_jsx_runtime198.jsxs)(
|
|
8742
8804
|
StyledButton3,
|
|
8743
8805
|
{
|
|
8744
8806
|
...props,
|
|
@@ -8748,10 +8810,10 @@ var MenuItemButton = (0, import_react34.forwardRef)(({ children, appearance, com
|
|
|
8748
8810
|
fullWidth: true,
|
|
8749
8811
|
unstyled: true,
|
|
8750
8812
|
children: [
|
|
8751
|
-
props.leftIcon ? /* @__PURE__ */ (0,
|
|
8752
|
-
/* @__PURE__ */ (0,
|
|
8753
|
-
(0,
|
|
8754
|
-
props.rightIcon ? /* @__PURE__ */ (0,
|
|
8813
|
+
props.leftIcon ? /* @__PURE__ */ (0, import_jsx_runtime198.jsx)(StyledLeftIconContainer, { children: props.leftIcon }) : null,
|
|
8814
|
+
/* @__PURE__ */ (0, import_jsx_runtime198.jsx)(StyledLabelAndDescriptionContainer, { children }),
|
|
8815
|
+
(0, import_type_guards30.isNotNil)(badge) || (0, import_type_guards30.isNotNil)(command) ? /* @__PURE__ */ (0, import_jsx_runtime198.jsx)(StyledBadgeContainer, { children: badge ?? command }) : null,
|
|
8816
|
+
props.rightIcon ? /* @__PURE__ */ (0, import_jsx_runtime198.jsx)(StyledRightIconContainer, { children: props.rightIcon }) : null
|
|
8755
8817
|
]
|
|
8756
8818
|
}
|
|
8757
8819
|
);
|
|
@@ -8759,33 +8821,33 @@ var MenuItemButton = (0, import_react34.forwardRef)(({ children, appearance, com
|
|
|
8759
8821
|
MenuItemButton.displayName = "MenuItemButton";
|
|
8760
8822
|
|
|
8761
8823
|
// src/components/Menu/MenuItemLabelDescription.tsx
|
|
8762
|
-
var
|
|
8763
|
-
var
|
|
8764
|
-
var StyledMenuItemLabel =
|
|
8765
|
-
var StyledMenuItemDescription = (0,
|
|
8824
|
+
var import_styled_components53 = __toESM(require("styled-components"));
|
|
8825
|
+
var import_jsx_runtime199 = require("react/jsx-runtime");
|
|
8826
|
+
var StyledMenuItemLabel = import_styled_components53.default.span``;
|
|
8827
|
+
var StyledMenuItemDescription = (0, import_styled_components53.default)(Text).attrs({
|
|
8766
8828
|
variant: "body4",
|
|
8767
8829
|
prominence: "secondary"
|
|
8768
8830
|
})``;
|
|
8769
8831
|
var MenuItemLabel = ({ children }) => {
|
|
8770
|
-
return /* @__PURE__ */ (0,
|
|
8832
|
+
return /* @__PURE__ */ (0, import_jsx_runtime199.jsx)(StyledMenuItemLabel, { children });
|
|
8771
8833
|
};
|
|
8772
8834
|
var MenuItemDescription = ({ children }) => {
|
|
8773
|
-
return /* @__PURE__ */ (0,
|
|
8835
|
+
return /* @__PURE__ */ (0, import_jsx_runtime199.jsx)(StyledMenuItemDescription, { children });
|
|
8774
8836
|
};
|
|
8775
8837
|
|
|
8776
8838
|
// src/components/Menu/SubMenu.tsx
|
|
8777
|
-
var
|
|
8778
|
-
var SubMenuContent = (0,
|
|
8839
|
+
var import_jsx_runtime200 = require("react/jsx-runtime");
|
|
8840
|
+
var SubMenuContent = (0, import_styled_components54.default)(import_react_dropdown_menu3.DropdownMenuSubContent)`
|
|
8779
8841
|
${menuContentCss}
|
|
8780
8842
|
|
|
8781
8843
|
${mq.smAndDown} {
|
|
8782
8844
|
transform: translateX(-100%) !important;
|
|
8783
8845
|
}
|
|
8784
8846
|
`;
|
|
8785
|
-
var StyledMobileSubMenuItems =
|
|
8847
|
+
var StyledMobileSubMenuItems = import_styled_components54.default.div`
|
|
8786
8848
|
margin-left: var(--wui-space-04);
|
|
8787
8849
|
`;
|
|
8788
|
-
var StyledSubTrigger = (0,
|
|
8850
|
+
var StyledSubTrigger = (0, import_styled_components54.default)(import_react_dropdown_menu3.DropdownMenuSubTrigger)`
|
|
8789
8851
|
outline: none;
|
|
8790
8852
|
|
|
8791
8853
|
&[data-state='open'],
|
|
@@ -8795,12 +8857,12 @@ var StyledSubTrigger = (0, import_styled_components52.default)(import_react_drop
|
|
|
8795
8857
|
`;
|
|
8796
8858
|
var SubMenuTrigger = (props) => {
|
|
8797
8859
|
const { isSmAndUp } = useMq();
|
|
8798
|
-
const
|
|
8799
|
-
return /* @__PURE__ */ (0,
|
|
8860
|
+
const Trigger4 = isSmAndUp ? StyledSubTrigger : import_react_dropdown_menu3.DropdownMenuItem;
|
|
8861
|
+
return /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(Trigger4, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(
|
|
8800
8862
|
MenuItemButton,
|
|
8801
8863
|
{
|
|
8802
8864
|
...props,
|
|
8803
|
-
rightIcon: /* @__PURE__ */ (0,
|
|
8865
|
+
rightIcon: /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(Icon, { type: "caret-right" })
|
|
8804
8866
|
}
|
|
8805
8867
|
) });
|
|
8806
8868
|
};
|
|
@@ -8812,16 +8874,16 @@ var SubMenu = ({
|
|
|
8812
8874
|
...props
|
|
8813
8875
|
}) => {
|
|
8814
8876
|
const { isSmAndUp } = useMq();
|
|
8815
|
-
const [isExpanded, setIsExpanded] = (0,
|
|
8877
|
+
const [isExpanded, setIsExpanded] = (0, import_react36.useState)(false);
|
|
8816
8878
|
const { compact } = useMenuContext();
|
|
8817
|
-
return isSmAndUp ? /* @__PURE__ */ (0,
|
|
8818
|
-
/* @__PURE__ */ (0,
|
|
8819
|
-
/* @__PURE__ */ (0,
|
|
8820
|
-
(0,
|
|
8879
|
+
return isSmAndUp ? /* @__PURE__ */ (0, import_jsx_runtime200.jsxs)(import_react_dropdown_menu3.DropdownMenuSub, { onOpenChange, children: [
|
|
8880
|
+
/* @__PURE__ */ (0, import_jsx_runtime200.jsxs)(SubMenuTrigger, { ...props, children: [
|
|
8881
|
+
/* @__PURE__ */ (0, import_jsx_runtime200.jsx)(MenuItemLabel, { children: label }),
|
|
8882
|
+
(0, import_type_guards31.isNotNil)(description) ? /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(MenuItemDescription, { children: description }) : null
|
|
8821
8883
|
] }),
|
|
8822
|
-
/* @__PURE__ */ (0,
|
|
8823
|
-
] }) : /* @__PURE__ */ (0,
|
|
8824
|
-
/* @__PURE__ */ (0,
|
|
8884
|
+
/* @__PURE__ */ (0, import_jsx_runtime200.jsx)(import_react_dropdown_menu3.DropdownMenuPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(SubMenuContent, { $compact: compact, children }) })
|
|
8885
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime200.jsxs)(import_react_dropdown_menu3.DropdownMenuGroup, { children: [
|
|
8886
|
+
/* @__PURE__ */ (0, import_jsx_runtime200.jsxs)(
|
|
8825
8887
|
SubMenuTrigger,
|
|
8826
8888
|
{
|
|
8827
8889
|
...props,
|
|
@@ -8830,28 +8892,28 @@ var SubMenu = ({
|
|
|
8830
8892
|
setIsExpanded((prev) => !prev);
|
|
8831
8893
|
},
|
|
8832
8894
|
children: [
|
|
8833
|
-
/* @__PURE__ */ (0,
|
|
8834
|
-
/* @__PURE__ */ (0,
|
|
8895
|
+
/* @__PURE__ */ (0, import_jsx_runtime200.jsx)(MenuItemLabel, { children: label }),
|
|
8896
|
+
/* @__PURE__ */ (0, import_jsx_runtime200.jsx)(MenuItemDescription, { children: description })
|
|
8835
8897
|
]
|
|
8836
8898
|
}
|
|
8837
8899
|
),
|
|
8838
|
-
/* @__PURE__ */ (0,
|
|
8900
|
+
/* @__PURE__ */ (0, import_jsx_runtime200.jsx)(StyledMobileSubMenuItems, { children: isExpanded ? children : null })
|
|
8839
8901
|
] });
|
|
8840
8902
|
};
|
|
8841
8903
|
SubMenu.displayName = "SubMenu";
|
|
8842
8904
|
|
|
8843
8905
|
// src/components/Menu/MenuItem.tsx
|
|
8844
|
-
var
|
|
8906
|
+
var import_react37 = require("react");
|
|
8845
8907
|
var import_react_dropdown_menu4 = require("@radix-ui/react-dropdown-menu");
|
|
8846
|
-
var
|
|
8847
|
-
var MenuItem = (0,
|
|
8908
|
+
var import_jsx_runtime201 = require("react/jsx-runtime");
|
|
8909
|
+
var MenuItem = (0, import_react37.forwardRef)(
|
|
8848
8910
|
({ onSelect = () => null, ...props }, ref) => {
|
|
8849
|
-
return /* @__PURE__ */ (0,
|
|
8911
|
+
return /* @__PURE__ */ (0, import_jsx_runtime201.jsx)(
|
|
8850
8912
|
import_react_dropdown_menu4.DropdownMenuItem,
|
|
8851
8913
|
{
|
|
8852
8914
|
asChild: true,
|
|
8853
8915
|
onSelect,
|
|
8854
|
-
children: /* @__PURE__ */ (0,
|
|
8916
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime201.jsx)(
|
|
8855
8917
|
MenuItemButton,
|
|
8856
8918
|
{
|
|
8857
8919
|
...props,
|
|
@@ -8867,10 +8929,10 @@ MenuItem.displayName = "MenuItem";
|
|
|
8867
8929
|
|
|
8868
8930
|
// src/components/Menu/MenuRadioGroup.tsx
|
|
8869
8931
|
var import_react_dropdown_menu5 = require("@radix-ui/react-dropdown-menu");
|
|
8870
|
-
var
|
|
8932
|
+
var import_jsx_runtime202 = require("react/jsx-runtime");
|
|
8871
8933
|
var MenuRadioGroup = ({ children, label, ...props }) => {
|
|
8872
|
-
return /* @__PURE__ */ (0,
|
|
8873
|
-
/* @__PURE__ */ (0,
|
|
8934
|
+
return /* @__PURE__ */ (0, import_jsx_runtime202.jsxs)(import_react_dropdown_menu5.DropdownMenuRadioGroup, { ...props, children: [
|
|
8935
|
+
/* @__PURE__ */ (0, import_jsx_runtime202.jsx)(MenuLabel, { children: label }),
|
|
8874
8936
|
children
|
|
8875
8937
|
] });
|
|
8876
8938
|
};
|
|
@@ -8878,11 +8940,11 @@ MenuRadioGroup.displayName = "MenuRadioGroup";
|
|
|
8878
8940
|
|
|
8879
8941
|
// src/components/Menu/RadioMenuItem.tsx
|
|
8880
8942
|
var import_react_dropdown_menu6 = require("@radix-ui/react-dropdown-menu");
|
|
8881
|
-
var
|
|
8943
|
+
var import_jsx_runtime203 = require("react/jsx-runtime");
|
|
8882
8944
|
var RadioMenuItem = ({
|
|
8883
8945
|
onSelect,
|
|
8884
8946
|
value,
|
|
8885
|
-
indicator = /* @__PURE__ */ (0,
|
|
8947
|
+
indicator = /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(
|
|
8886
8948
|
Icon,
|
|
8887
8949
|
{
|
|
8888
8950
|
size: "sm",
|
|
@@ -8892,17 +8954,17 @@ var RadioMenuItem = ({
|
|
|
8892
8954
|
...props
|
|
8893
8955
|
}) => {
|
|
8894
8956
|
const extraProps = onSelect ? { onSelect } : {};
|
|
8895
|
-
return /* @__PURE__ */ (0,
|
|
8957
|
+
return /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(
|
|
8896
8958
|
import_react_dropdown_menu6.DropdownMenuRadioItem,
|
|
8897
8959
|
{
|
|
8898
8960
|
...extraProps,
|
|
8899
8961
|
asChild: true,
|
|
8900
8962
|
value,
|
|
8901
|
-
children: /* @__PURE__ */ (0,
|
|
8963
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(
|
|
8902
8964
|
MenuItemButton,
|
|
8903
8965
|
{
|
|
8904
8966
|
...props,
|
|
8905
|
-
rightIcon: /* @__PURE__ */ (0,
|
|
8967
|
+
rightIcon: /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(import_react_dropdown_menu6.DropdownMenuItemIndicator, { children: indicator })
|
|
8906
8968
|
}
|
|
8907
8969
|
)
|
|
8908
8970
|
}
|
|
@@ -8912,9 +8974,9 @@ RadioMenuItem.displayName = "RadioMenuItem";
|
|
|
8912
8974
|
|
|
8913
8975
|
// src/components/Menu/CheckboxMenuItem.tsx
|
|
8914
8976
|
var import_react_dropdown_menu7 = require("@radix-ui/react-dropdown-menu");
|
|
8915
|
-
var
|
|
8977
|
+
var import_jsx_runtime204 = require("react/jsx-runtime");
|
|
8916
8978
|
var CheckboxIndicator2 = ({ checked, ...props }) => {
|
|
8917
|
-
return checked ? /* @__PURE__ */ (0,
|
|
8979
|
+
return checked ? /* @__PURE__ */ (0, import_jsx_runtime204.jsxs)(
|
|
8918
8980
|
"svg",
|
|
8919
8981
|
{
|
|
8920
8982
|
...props,
|
|
@@ -8924,14 +8986,14 @@ var CheckboxIndicator2 = ({ checked, ...props }) => {
|
|
|
8924
8986
|
width: "24",
|
|
8925
8987
|
xmlns: "http://www.w3.org/2000/svg",
|
|
8926
8988
|
children: [
|
|
8927
|
-
/* @__PURE__ */ (0,
|
|
8989
|
+
/* @__PURE__ */ (0, import_jsx_runtime204.jsx)(
|
|
8928
8990
|
"path",
|
|
8929
8991
|
{
|
|
8930
8992
|
d: "m4 8c0-2.20914 1.79086-4 4-4h8c2.2091 0 4 1.79086 4 4v8c0 2.2091-1.7909 4-4 4h-8c-2.20914 0-4-1.7909-4-4z",
|
|
8931
8993
|
fill: "#2949e5"
|
|
8932
8994
|
}
|
|
8933
8995
|
),
|
|
8934
|
-
/* @__PURE__ */ (0,
|
|
8996
|
+
/* @__PURE__ */ (0, import_jsx_runtime204.jsx)(
|
|
8935
8997
|
"path",
|
|
8936
8998
|
{
|
|
8937
8999
|
d: "m10.4728 15.1931-3.09523-3.1131c-.18596-.187-.18596-.4902 0-.6773l.67341-.6773c.18596-.187.48749-.187.67344 0l2.08508 2.0971 4.4661-4.49174c.1859-.18703.4875-.18703.6734 0l.6734.67731c.186.18703.186.49027 0 .67731l-5.4762 5.50772c-.1859.187-.4874.187-.6734 0z",
|
|
@@ -8940,7 +9002,7 @@ var CheckboxIndicator2 = ({ checked, ...props }) => {
|
|
|
8940
9002
|
)
|
|
8941
9003
|
]
|
|
8942
9004
|
}
|
|
8943
|
-
) : /* @__PURE__ */ (0,
|
|
9005
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime204.jsxs)(
|
|
8944
9006
|
"svg",
|
|
8945
9007
|
{
|
|
8946
9008
|
...props,
|
|
@@ -8950,14 +9012,14 @@ var CheckboxIndicator2 = ({ checked, ...props }) => {
|
|
|
8950
9012
|
width: "24",
|
|
8951
9013
|
xmlns: "http://www.w3.org/2000/svg",
|
|
8952
9014
|
children: [
|
|
8953
|
-
/* @__PURE__ */ (0,
|
|
9015
|
+
/* @__PURE__ */ (0, import_jsx_runtime204.jsx)(
|
|
8954
9016
|
"path",
|
|
8955
9017
|
{
|
|
8956
9018
|
d: "m8 4.5h8c1.933 0 3.5 1.567 3.5 3.5v8c0 1.933-1.567 3.5-3.5 3.5h-8c-1.933 0-3.5-1.567-3.5-3.5v-8c0-1.933 1.567-3.5 3.5-3.5z",
|
|
8957
9019
|
fill: "#fcfcfd"
|
|
8958
9020
|
}
|
|
8959
9021
|
),
|
|
8960
|
-
/* @__PURE__ */ (0,
|
|
9022
|
+
/* @__PURE__ */ (0, import_jsx_runtime204.jsx)(
|
|
8961
9023
|
"path",
|
|
8962
9024
|
{
|
|
8963
9025
|
d: "m8 4.5h8c1.933 0 3.5 1.567 3.5 3.5v8c0 1.933-1.567 3.5-3.5 3.5h-8c-1.933 0-3.5-1.567-3.5-3.5v-8c0-1.933 1.567-3.5 3.5-3.5z",
|
|
@@ -8974,18 +9036,18 @@ var CheckboxMenuItem = ({
|
|
|
8974
9036
|
onCheckedChange,
|
|
8975
9037
|
...props
|
|
8976
9038
|
}) => {
|
|
8977
|
-
return /* @__PURE__ */ (0,
|
|
9039
|
+
return /* @__PURE__ */ (0, import_jsx_runtime204.jsx)(
|
|
8978
9040
|
import_react_dropdown_menu7.DropdownMenuCheckboxItem,
|
|
8979
9041
|
{
|
|
8980
9042
|
asChild: true,
|
|
8981
9043
|
checked,
|
|
8982
9044
|
onCheckedChange,
|
|
8983
9045
|
onSelect,
|
|
8984
|
-
children: /* @__PURE__ */ (0,
|
|
9046
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime204.jsx)(
|
|
8985
9047
|
MenuItemButton,
|
|
8986
9048
|
{
|
|
8987
9049
|
...props,
|
|
8988
|
-
leftIcon: /* @__PURE__ */ (0,
|
|
9050
|
+
leftIcon: /* @__PURE__ */ (0, import_jsx_runtime204.jsx)(CheckboxIndicator2, { checked })
|
|
8989
9051
|
}
|
|
8990
9052
|
)
|
|
8991
9053
|
}
|
|
@@ -8994,37 +9056,37 @@ var CheckboxMenuItem = ({
|
|
|
8994
9056
|
CheckboxMenuItem.displayName = "CheckboxMenuItem";
|
|
8995
9057
|
|
|
8996
9058
|
// src/components/Modal/Modal.tsx
|
|
8997
|
-
var
|
|
8998
|
-
var
|
|
9059
|
+
var import_react41 = require("react");
|
|
9060
|
+
var import_styled_components59 = __toESM(require("styled-components"));
|
|
8999
9061
|
var import_react_dialog4 = require("@radix-ui/react-dialog");
|
|
9000
|
-
var
|
|
9062
|
+
var import_type_guards33 = require("@wistia/type-guards");
|
|
9001
9063
|
|
|
9002
9064
|
// src/components/Modal/ModalHeader.tsx
|
|
9003
|
-
var
|
|
9065
|
+
var import_styled_components56 = __toESM(require("styled-components"));
|
|
9004
9066
|
var import_react_dialog2 = require("@radix-ui/react-dialog");
|
|
9005
9067
|
|
|
9006
9068
|
// src/components/Modal/ModalCloseButton.tsx
|
|
9007
|
-
var
|
|
9069
|
+
var import_styled_components55 = __toESM(require("styled-components"));
|
|
9008
9070
|
var import_react_dialog = require("@radix-ui/react-dialog");
|
|
9009
|
-
var
|
|
9010
|
-
var CloseButton = (0,
|
|
9071
|
+
var import_jsx_runtime205 = require("react/jsx-runtime");
|
|
9072
|
+
var CloseButton = (0, import_styled_components55.default)(import_react_dialog.Close)`
|
|
9011
9073
|
align-self: start;
|
|
9012
9074
|
`;
|
|
9013
9075
|
var ModalCloseButton = () => {
|
|
9014
|
-
return /* @__PURE__ */ (0,
|
|
9076
|
+
return /* @__PURE__ */ (0, import_jsx_runtime205.jsx)(CloseButton, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime205.jsx)(
|
|
9015
9077
|
IconButton,
|
|
9016
9078
|
{
|
|
9017
9079
|
label: "Dismiss modal",
|
|
9018
9080
|
size: "sm",
|
|
9019
9081
|
variant: "ghost",
|
|
9020
|
-
children: /* @__PURE__ */ (0,
|
|
9082
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime205.jsx)(Icon, { type: "close" })
|
|
9021
9083
|
}
|
|
9022
9084
|
) });
|
|
9023
9085
|
};
|
|
9024
9086
|
|
|
9025
9087
|
// src/components/Modal/ModalHeader.tsx
|
|
9026
|
-
var
|
|
9027
|
-
var Header =
|
|
9088
|
+
var import_jsx_runtime206 = require("react/jsx-runtime");
|
|
9089
|
+
var Header = import_styled_components56.default.header`
|
|
9028
9090
|
display: flex;
|
|
9029
9091
|
order: 1;
|
|
9030
9092
|
gap: var(--wui-space-01);
|
|
@@ -9036,7 +9098,7 @@ var Header = import_styled_components54.default.header`
|
|
|
9036
9098
|
margin-top: 0;
|
|
9037
9099
|
}
|
|
9038
9100
|
`;
|
|
9039
|
-
var Title = (0,
|
|
9101
|
+
var Title = (0, import_styled_components56.default)(import_react_dialog2.Title)`
|
|
9040
9102
|
font-family: var(--wui-typography-heading-2-family);
|
|
9041
9103
|
line-height: var(--wui-typography-heading-2-line-height);
|
|
9042
9104
|
font-size: var(--wui-typography-heading-2-size);
|
|
@@ -9048,28 +9110,28 @@ var ModalHeader = ({
|
|
|
9048
9110
|
hideCloseButton
|
|
9049
9111
|
}) => {
|
|
9050
9112
|
const TitleWrapper = hideTitle ? ScreenReaderOnly : Title;
|
|
9051
|
-
return /* @__PURE__ */ (0,
|
|
9052
|
-
/* @__PURE__ */ (0,
|
|
9053
|
-
hideCloseButton ? null : /* @__PURE__ */ (0,
|
|
9113
|
+
return /* @__PURE__ */ (0, import_jsx_runtime206.jsxs)(Header, { children: [
|
|
9114
|
+
/* @__PURE__ */ (0, import_jsx_runtime206.jsx)(TitleWrapper, { children: title }),
|
|
9115
|
+
hideCloseButton ? null : /* @__PURE__ */ (0, import_jsx_runtime206.jsx)(ModalCloseButton, {})
|
|
9054
9116
|
] });
|
|
9055
9117
|
};
|
|
9056
9118
|
|
|
9057
9119
|
// src/components/Modal/ModalContent.tsx
|
|
9058
|
-
var
|
|
9059
|
-
var
|
|
9120
|
+
var import_react39 = require("react");
|
|
9121
|
+
var import_styled_components57 = __toESM(require("styled-components"));
|
|
9060
9122
|
var import_react_dialog3 = require("@radix-ui/react-dialog");
|
|
9061
9123
|
|
|
9062
9124
|
// src/private/hooks/useFocusRestore/useFocusRestore.ts
|
|
9063
|
-
var
|
|
9064
|
-
var
|
|
9125
|
+
var import_react38 = require("react");
|
|
9126
|
+
var import_type_guards32 = require("@wistia/type-guards");
|
|
9065
9127
|
var useFocusRestore = () => {
|
|
9066
|
-
const previouslyFocusedRef = (0,
|
|
9067
|
-
(0,
|
|
9128
|
+
const previouslyFocusedRef = (0, import_react38.useRef)(null);
|
|
9129
|
+
(0, import_react38.useEffect)(() => {
|
|
9068
9130
|
previouslyFocusedRef.current = document.activeElement;
|
|
9069
9131
|
}, []);
|
|
9070
|
-
(0,
|
|
9132
|
+
(0, import_react38.useEffect)(() => {
|
|
9071
9133
|
return () => {
|
|
9072
|
-
if ((0,
|
|
9134
|
+
if ((0, import_type_guards32.isNotNil)(previouslyFocusedRef.current)) {
|
|
9073
9135
|
setTimeout(() => {
|
|
9074
9136
|
previouslyFocusedRef.current?.focus();
|
|
9075
9137
|
}, 0);
|
|
@@ -9079,8 +9141,8 @@ var useFocusRestore = () => {
|
|
|
9079
9141
|
};
|
|
9080
9142
|
|
|
9081
9143
|
// src/components/Modal/ModalContent.tsx
|
|
9082
|
-
var
|
|
9083
|
-
var StyledModalContent = (0,
|
|
9144
|
+
var import_jsx_runtime207 = require("react/jsx-runtime");
|
|
9145
|
+
var StyledModalContent = (0, import_styled_components57.default)(import_react_dialog3.Content)`
|
|
9084
9146
|
background-color: var(--wui-color-bg-app);
|
|
9085
9147
|
box-sizing: border-box;
|
|
9086
9148
|
display: flex;
|
|
@@ -9121,10 +9183,10 @@ var StyledModalContent = (0, import_styled_components55.default)(import_react_di
|
|
|
9121
9183
|
}
|
|
9122
9184
|
}
|
|
9123
9185
|
`;
|
|
9124
|
-
var ModalContent = (0,
|
|
9186
|
+
var ModalContent = (0, import_react39.forwardRef)(
|
|
9125
9187
|
({ fullHeight, width, children, ...otherProps }, ref) => {
|
|
9126
9188
|
useFocusRestore();
|
|
9127
|
-
return /* @__PURE__ */ (0,
|
|
9189
|
+
return /* @__PURE__ */ (0, import_jsx_runtime207.jsx)(
|
|
9128
9190
|
StyledModalContent,
|
|
9129
9191
|
{
|
|
9130
9192
|
ref,
|
|
@@ -9139,9 +9201,9 @@ var ModalContent = (0, import_react38.forwardRef)(
|
|
|
9139
9201
|
);
|
|
9140
9202
|
|
|
9141
9203
|
// src/private/components/Backdrop/Backdrop.tsx
|
|
9142
|
-
var
|
|
9143
|
-
var
|
|
9144
|
-
var
|
|
9204
|
+
var import_react40 = require("react");
|
|
9205
|
+
var import_styled_components58 = __toESM(require("styled-components"));
|
|
9206
|
+
var import_jsx_runtime208 = require("react/jsx-runtime");
|
|
9145
9207
|
var backdropAnimationDuration = 150;
|
|
9146
9208
|
var alignVerticalMap = {
|
|
9147
9209
|
stretch: "normal",
|
|
@@ -9154,7 +9216,7 @@ var alignHorizontalMap = {
|
|
|
9154
9216
|
center: "center",
|
|
9155
9217
|
right: "end"
|
|
9156
9218
|
};
|
|
9157
|
-
var BackdropComponent =
|
|
9219
|
+
var BackdropComponent = import_styled_components58.default.div`
|
|
9158
9220
|
align-items: ${({ $alignVertical }) => alignVerticalMap[$alignVertical]};
|
|
9159
9221
|
animation-name: backdropShow;
|
|
9160
9222
|
animation-duration: ${() => `${backdropAnimationDuration}ms`};
|
|
@@ -9177,8 +9239,8 @@ var BackdropComponent = import_styled_components56.default.div`
|
|
|
9177
9239
|
}
|
|
9178
9240
|
}
|
|
9179
9241
|
`;
|
|
9180
|
-
var Backdrop = (0,
|
|
9181
|
-
({ alignHorizontal = "center", alignVertical = "center", children, ...otherProps }, ref) => /* @__PURE__ */ (0,
|
|
9242
|
+
var Backdrop = (0, import_react40.forwardRef)(
|
|
9243
|
+
({ alignHorizontal = "center", alignVertical = "center", children, ...otherProps }, ref) => /* @__PURE__ */ (0, import_jsx_runtime208.jsx)(
|
|
9182
9244
|
BackdropComponent,
|
|
9183
9245
|
{
|
|
9184
9246
|
ref,
|
|
@@ -9192,14 +9254,14 @@ var Backdrop = (0, import_react39.forwardRef)(
|
|
|
9192
9254
|
Backdrop.displayName = "Backdrop";
|
|
9193
9255
|
|
|
9194
9256
|
// src/components/Modal/Modal.tsx
|
|
9195
|
-
var
|
|
9257
|
+
var import_jsx_runtime209 = require("react/jsx-runtime");
|
|
9196
9258
|
var DEFAULT_MODAL_WIDTH = "532px";
|
|
9197
|
-
var ModalBody =
|
|
9259
|
+
var ModalBody = import_styled_components59.default.div`
|
|
9198
9260
|
flex-direction: column;
|
|
9199
9261
|
display: flex;
|
|
9200
9262
|
order: 2;
|
|
9201
9263
|
`;
|
|
9202
|
-
var Modal = (0,
|
|
9264
|
+
var Modal = (0, import_react41.forwardRef)(
|
|
9203
9265
|
({
|
|
9204
9266
|
children,
|
|
9205
9267
|
fullHeight = false,
|
|
@@ -9212,24 +9274,24 @@ var Modal = (0, import_react40.forwardRef)(
|
|
|
9212
9274
|
width = DEFAULT_MODAL_WIDTH,
|
|
9213
9275
|
...props
|
|
9214
9276
|
}, ref) => {
|
|
9215
|
-
return /* @__PURE__ */ (0,
|
|
9277
|
+
return /* @__PURE__ */ (0, import_jsx_runtime209.jsx)(
|
|
9216
9278
|
import_react_dialog4.Root,
|
|
9217
9279
|
{
|
|
9218
9280
|
onOpenChange: (open2) => {
|
|
9219
|
-
if (!open2 && (0,
|
|
9281
|
+
if (!open2 && (0, import_type_guards33.isNotNil)(onRequestClose)) {
|
|
9220
9282
|
onRequestClose();
|
|
9221
9283
|
}
|
|
9222
9284
|
},
|
|
9223
9285
|
open: isOpen,
|
|
9224
|
-
children: /* @__PURE__ */ (0,
|
|
9225
|
-
/* @__PURE__ */ (0,
|
|
9226
|
-
/* @__PURE__ */ (0,
|
|
9286
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime209.jsxs)(import_react_dialog4.Portal, { children: [
|
|
9287
|
+
/* @__PURE__ */ (0, import_jsx_runtime209.jsx)(Backdrop, {}),
|
|
9288
|
+
/* @__PURE__ */ (0, import_jsx_runtime209.jsxs)(
|
|
9227
9289
|
ModalContent,
|
|
9228
9290
|
{
|
|
9229
9291
|
ref,
|
|
9230
9292
|
fullHeight,
|
|
9231
9293
|
onOpenAutoFocus: (event) => {
|
|
9232
|
-
if ((0,
|
|
9294
|
+
if ((0, import_type_guards33.isNotNil)(initialFocusRef) && initialFocusRef.current) {
|
|
9233
9295
|
event.preventDefault();
|
|
9234
9296
|
requestAnimationFrame(() => {
|
|
9235
9297
|
initialFocusRef.current?.focus();
|
|
@@ -9239,8 +9301,8 @@ var Modal = (0, import_react40.forwardRef)(
|
|
|
9239
9301
|
width,
|
|
9240
9302
|
...props,
|
|
9241
9303
|
children: [
|
|
9242
|
-
/* @__PURE__ */ (0,
|
|
9243
|
-
/* @__PURE__ */ (0,
|
|
9304
|
+
/* @__PURE__ */ (0, import_jsx_runtime209.jsx)(ModalBody, { children }),
|
|
9305
|
+
/* @__PURE__ */ (0, import_jsx_runtime209.jsx)(
|
|
9244
9306
|
ModalHeader,
|
|
9245
9307
|
{
|
|
9246
9308
|
hideCloseButton,
|
|
@@ -9259,16 +9321,16 @@ var Modal = (0, import_react40.forwardRef)(
|
|
|
9259
9321
|
Modal.displayName = "Modal";
|
|
9260
9322
|
|
|
9261
9323
|
// src/components/Radio/Radio.tsx
|
|
9262
|
-
var
|
|
9263
|
-
var
|
|
9264
|
-
var
|
|
9265
|
-
var
|
|
9266
|
-
var StyledLabelWrapper2 =
|
|
9324
|
+
var import_react42 = require("react");
|
|
9325
|
+
var import_styled_components60 = __toESM(require("styled-components"));
|
|
9326
|
+
var import_type_guards34 = require("@wistia/type-guards");
|
|
9327
|
+
var import_jsx_runtime210 = require("react/jsx-runtime");
|
|
9328
|
+
var StyledLabelWrapper2 = import_styled_components60.default.div`
|
|
9267
9329
|
display: flex;
|
|
9268
9330
|
flex-direction: column;
|
|
9269
9331
|
padding-left: var(--wui-space-02);
|
|
9270
9332
|
`;
|
|
9271
|
-
var StyledRadio =
|
|
9333
|
+
var StyledRadio = import_styled_components60.default.input`
|
|
9272
9334
|
box-shadow: ${({ type }) => type === "checkbox" ? "inset 0 0.5px 1.5px 0 rgba(0, 0, 0, 0.38)" : "none"};
|
|
9273
9335
|
appearance: none;
|
|
9274
9336
|
margin: 0;
|
|
@@ -9294,11 +9356,11 @@ var StyledRadio = import_styled_components58.default.input`
|
|
|
9294
9356
|
transform: scale(1);
|
|
9295
9357
|
}
|
|
9296
9358
|
`;
|
|
9297
|
-
var disabledStyle2 =
|
|
9359
|
+
var disabledStyle2 = import_styled_components60.css`
|
|
9298
9360
|
cursor: not-allowed;
|
|
9299
9361
|
opacity: 0.5;
|
|
9300
9362
|
`;
|
|
9301
|
-
var errorStyle =
|
|
9363
|
+
var errorStyle = import_styled_components60.css`
|
|
9302
9364
|
/* TODO Lamp to design error state */
|
|
9303
9365
|
&:hover,
|
|
9304
9366
|
&:focus,
|
|
@@ -9306,11 +9368,11 @@ var errorStyle = import_styled_components58.css`
|
|
|
9306
9368
|
border-color: transparent !important;
|
|
9307
9369
|
}
|
|
9308
9370
|
`;
|
|
9309
|
-
var defaultHoverStyle =
|
|
9371
|
+
var defaultHoverStyle = import_styled_components60.css`
|
|
9310
9372
|
/* TODO Lamp to design hover state */
|
|
9311
9373
|
cursor: pointer;
|
|
9312
9374
|
`;
|
|
9313
|
-
var StyledRadioWrapper =
|
|
9375
|
+
var StyledRadioWrapper = import_styled_components60.default.div`
|
|
9314
9376
|
align-items: baseline;
|
|
9315
9377
|
border: 1px solid transparent;
|
|
9316
9378
|
border-radius: 4px;
|
|
@@ -9333,7 +9395,7 @@ var StyledRadioWrapper = import_styled_components58.default.div`
|
|
|
9333
9395
|
|
|
9334
9396
|
${({ disabled }) => disabled && disabledStyle2};
|
|
9335
9397
|
`;
|
|
9336
|
-
var Radio = (0,
|
|
9398
|
+
var Radio = (0, import_react42.forwardRef)(
|
|
9337
9399
|
({
|
|
9338
9400
|
checked,
|
|
9339
9401
|
disabled = false,
|
|
@@ -9346,15 +9408,15 @@ var Radio = (0, import_react41.forwardRef)(
|
|
|
9346
9408
|
value = "false",
|
|
9347
9409
|
...otherProps
|
|
9348
9410
|
}, ref) => {
|
|
9349
|
-
const generatedId = (0,
|
|
9350
|
-
const computedId = (0,
|
|
9351
|
-
return /* @__PURE__ */ (0,
|
|
9411
|
+
const generatedId = (0, import_react42.useId)();
|
|
9412
|
+
const computedId = (0, import_type_guards34.isNonEmptyString)(id) ? id : `ui-radio-${generatedId}`;
|
|
9413
|
+
return /* @__PURE__ */ (0, import_jsx_runtime210.jsxs)(
|
|
9352
9414
|
StyledRadioWrapper,
|
|
9353
9415
|
{
|
|
9354
9416
|
"aria-invalid": otherProps["aria-invalid"],
|
|
9355
9417
|
disabled,
|
|
9356
9418
|
children: [
|
|
9357
|
-
/* @__PURE__ */ (0,
|
|
9419
|
+
/* @__PURE__ */ (0, import_jsx_runtime210.jsx)(
|
|
9358
9420
|
StyledRadio,
|
|
9359
9421
|
{
|
|
9360
9422
|
ref,
|
|
@@ -9369,8 +9431,8 @@ var Radio = (0, import_react41.forwardRef)(
|
|
|
9369
9431
|
...otherProps
|
|
9370
9432
|
}
|
|
9371
9433
|
),
|
|
9372
|
-
/* @__PURE__ */ (0,
|
|
9373
|
-
/* @__PURE__ */ (0,
|
|
9434
|
+
/* @__PURE__ */ (0, import_jsx_runtime210.jsxs)(StyledLabelWrapper2, { children: [
|
|
9435
|
+
/* @__PURE__ */ (0, import_jsx_runtime210.jsx)(
|
|
9374
9436
|
Label,
|
|
9375
9437
|
{
|
|
9376
9438
|
disabled,
|
|
@@ -9379,7 +9441,7 @@ var Radio = (0, import_react41.forwardRef)(
|
|
|
9379
9441
|
children: label
|
|
9380
9442
|
}
|
|
9381
9443
|
),
|
|
9382
|
-
/* @__PURE__ */ (0,
|
|
9444
|
+
/* @__PURE__ */ (0, import_jsx_runtime210.jsx)(LabelDescription, { children: description })
|
|
9383
9445
|
] })
|
|
9384
9446
|
]
|
|
9385
9447
|
}
|
|
@@ -9389,23 +9451,112 @@ var Radio = (0, import_react41.forwardRef)(
|
|
|
9389
9451
|
Radio.displayName = "Radio";
|
|
9390
9452
|
|
|
9391
9453
|
// src/components/SegmentedControl/SegmentedControl.tsx
|
|
9392
|
-
var
|
|
9393
|
-
var
|
|
9454
|
+
var import_react46 = require("react");
|
|
9455
|
+
var import_styled_components62 = __toESM(require("styled-components"));
|
|
9394
9456
|
var import_react_toggle_group = require("@radix-ui/react-toggle-group");
|
|
9395
|
-
var
|
|
9396
|
-
|
|
9397
|
-
|
|
9457
|
+
var import_type_guards35 = require("@wistia/type-guards");
|
|
9458
|
+
|
|
9459
|
+
// src/components/SegmentedControl/useSelectedItemMeasurements.tsx
|
|
9460
|
+
var import_react43 = require("react");
|
|
9461
|
+
var import_jsx_runtime211 = require("react/jsx-runtime");
|
|
9462
|
+
var SelectedItemMeasurementsContext = (0, import_react43.createContext)(
|
|
9463
|
+
null
|
|
9464
|
+
);
|
|
9465
|
+
var SelectedItemMeasurementsProvider = ({
|
|
9466
|
+
children
|
|
9467
|
+
}) => {
|
|
9468
|
+
const [selectedItemMeasurements, setSelectedItemMeasurements] = (0, import_react43.useState)(null);
|
|
9469
|
+
const contextValue = (0, import_react43.useMemo)(
|
|
9470
|
+
() => ({
|
|
9471
|
+
setSelectedItemMeasurements,
|
|
9472
|
+
selectedItemMeasurements
|
|
9473
|
+
}),
|
|
9474
|
+
[selectedItemMeasurements]
|
|
9475
|
+
);
|
|
9476
|
+
return /* @__PURE__ */ (0, import_jsx_runtime211.jsx)(SelectedItemMeasurementsContext.Provider, { value: contextValue, children });
|
|
9477
|
+
};
|
|
9478
|
+
var useSelectedItemMeasurements = () => {
|
|
9479
|
+
const context = (0, import_react43.useContext)(SelectedItemMeasurementsContext);
|
|
9480
|
+
if (context === null) {
|
|
9481
|
+
throw new Error(
|
|
9482
|
+
"useSelectedItemMeasurements must be used within a SelectedItemMeasurementsProvider"
|
|
9483
|
+
);
|
|
9484
|
+
}
|
|
9485
|
+
return context;
|
|
9486
|
+
};
|
|
9487
|
+
|
|
9488
|
+
// src/components/SegmentedControl/SelectedItemIndicator.tsx
|
|
9489
|
+
var import_react45 = require("react");
|
|
9490
|
+
var import_styled_components61 = __toESM(require("styled-components"));
|
|
9491
|
+
|
|
9492
|
+
// src/components/SegmentedControl/useSegmentedControlValue.tsx
|
|
9493
|
+
var import_react44 = require("react");
|
|
9494
|
+
var SegmentedControlValueContext = (0, import_react44.createContext)(null);
|
|
9495
|
+
var SegmentedControlValueProvider = SegmentedControlValueContext.Provider;
|
|
9496
|
+
var useSegmentedControlValue = () => {
|
|
9497
|
+
const context = (0, import_react44.useContext)(SegmentedControlValueContext);
|
|
9498
|
+
if (context === null) {
|
|
9499
|
+
throw new Error("useSegmentedControlValue must be used within a SegmentedControlValueProvider");
|
|
9500
|
+
}
|
|
9501
|
+
return context;
|
|
9502
|
+
};
|
|
9503
|
+
|
|
9504
|
+
// src/components/SegmentedControl/SelectedItemIndicator.tsx
|
|
9505
|
+
var import_jsx_runtime212 = require("react/jsx-runtime");
|
|
9506
|
+
var Z_INDEX_TO_SIT_BEHIND_SIBLINGS = -1;
|
|
9507
|
+
var SelectedItemIndicatorDiv = import_styled_components61.default.div`
|
|
9508
|
+
background-color: var(--wui-color-bg-fill-white);
|
|
9509
|
+
border-radius: var(--wui-border-radius-rounded);
|
|
9510
|
+
left: 0;
|
|
9511
|
+
position: absolute;
|
|
9512
|
+
top: 0;
|
|
9513
|
+
transition:
|
|
9514
|
+
transform var(--wui-motion-duration-03) var(--wui-motion-ease-out),
|
|
9515
|
+
width var(--wui-motion-duration-02) var(--wui-motion-ease-out);
|
|
9516
|
+
z-index: ${Z_INDEX_TO_SIT_BEHIND_SIBLINGS};
|
|
9517
|
+
`;
|
|
9518
|
+
var SelectedItemIndicator = () => {
|
|
9519
|
+
const selectedValue = useSegmentedControlValue();
|
|
9520
|
+
const { selectedItemMeasurements } = useSelectedItemMeasurements();
|
|
9521
|
+
const selectedItemIndicatorStyle = (0, import_react45.useMemo)(
|
|
9522
|
+
() => selectedItemMeasurements != null ? {
|
|
9523
|
+
height: `${selectedItemMeasurements.offsetHeight}px`,
|
|
9524
|
+
transform: `translateX(${selectedItemMeasurements.offsetLeft}px)`,
|
|
9525
|
+
width: `${selectedItemMeasurements.offsetWidth}px`
|
|
9526
|
+
} : {},
|
|
9527
|
+
[selectedItemMeasurements]
|
|
9528
|
+
);
|
|
9529
|
+
if (!selectedValue) {
|
|
9530
|
+
return null;
|
|
9531
|
+
}
|
|
9532
|
+
return /* @__PURE__ */ (0, import_jsx_runtime212.jsx)(
|
|
9533
|
+
SelectedItemIndicatorDiv,
|
|
9534
|
+
{
|
|
9535
|
+
style: {
|
|
9536
|
+
width: selectedItemIndicatorStyle.width,
|
|
9537
|
+
transform: selectedItemIndicatorStyle.transform,
|
|
9538
|
+
height: selectedItemIndicatorStyle.height
|
|
9539
|
+
}
|
|
9540
|
+
}
|
|
9541
|
+
);
|
|
9542
|
+
};
|
|
9543
|
+
|
|
9544
|
+
// src/components/SegmentedControl/SegmentedControl.tsx
|
|
9545
|
+
var import_jsx_runtime213 = require("react/jsx-runtime");
|
|
9546
|
+
var segmentedControlStyles = import_styled_components62.css`
|
|
9398
9547
|
display: inline-flex;
|
|
9399
9548
|
background-color: var(--wui-color-bg-surface-secondary);
|
|
9400
9549
|
border-radius: var(--wui-border-radius-rounded);
|
|
9401
9550
|
border: 2px solid var(--wui-color-bg-surface-secondary);
|
|
9402
9551
|
gap: var(--wui-space-01);
|
|
9552
|
+
isolation: isolate;
|
|
9553
|
+
position: relative;
|
|
9403
9554
|
width: ${({ $fullWidth }) => $fullWidth ? "100%" : "auto"};
|
|
9404
9555
|
`;
|
|
9405
|
-
var StyledSegmentedControl = (0,
|
|
9556
|
+
var StyledSegmentedControl = (0, import_styled_components62.default)(import_react_toggle_group.Root)`
|
|
9406
9557
|
${segmentedControlStyles}
|
|
9407
9558
|
`;
|
|
9408
|
-
var SegmentedControl = (0,
|
|
9559
|
+
var SegmentedControl = (0, import_react46.forwardRef)(
|
|
9409
9560
|
({
|
|
9410
9561
|
children,
|
|
9411
9562
|
disabled = false,
|
|
@@ -9414,10 +9565,10 @@ var SegmentedControl = (0, import_react42.forwardRef)(
|
|
|
9414
9565
|
onSelectedValueChange,
|
|
9415
9566
|
...props
|
|
9416
9567
|
}, ref) => {
|
|
9417
|
-
if ((0,
|
|
9568
|
+
if ((0, import_type_guards35.isNil)(children)) {
|
|
9418
9569
|
return null;
|
|
9419
9570
|
}
|
|
9420
|
-
return /* @__PURE__ */ (0,
|
|
9571
|
+
return /* @__PURE__ */ (0, import_jsx_runtime213.jsx)(
|
|
9421
9572
|
StyledSegmentedControl,
|
|
9422
9573
|
{
|
|
9423
9574
|
ref,
|
|
@@ -9429,7 +9580,10 @@ var SegmentedControl = (0, import_react42.forwardRef)(
|
|
|
9429
9580
|
type: "single",
|
|
9430
9581
|
value: selectedValue,
|
|
9431
9582
|
...props,
|
|
9432
|
-
children
|
|
9583
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime213.jsx)(SegmentedControlValueProvider, { value: selectedValue, children: /* @__PURE__ */ (0, import_jsx_runtime213.jsxs)(SelectedItemMeasurementsProvider, { children: [
|
|
9584
|
+
/* @__PURE__ */ (0, import_jsx_runtime213.jsx)(SelectedItemIndicator, {}),
|
|
9585
|
+
children
|
|
9586
|
+
] }) })
|
|
9433
9587
|
}
|
|
9434
9588
|
);
|
|
9435
9589
|
}
|
|
@@ -9437,12 +9591,28 @@ var SegmentedControl = (0, import_react42.forwardRef)(
|
|
|
9437
9591
|
SegmentedControl.displayName = "SegmentedControl";
|
|
9438
9592
|
|
|
9439
9593
|
// src/components/SegmentedControl/SegmentedControlItem.tsx
|
|
9440
|
-
var
|
|
9441
|
-
var
|
|
9594
|
+
var import_react47 = require("react");
|
|
9595
|
+
var import_styled_components63 = __toESM(require("styled-components"));
|
|
9442
9596
|
var import_react_toggle_group2 = require("@radix-ui/react-toggle-group");
|
|
9443
|
-
var
|
|
9444
|
-
|
|
9445
|
-
|
|
9597
|
+
var import_type_guards37 = require("@wistia/type-guards");
|
|
9598
|
+
|
|
9599
|
+
// src/private/helpers/mergeRefs/mergeRefs.ts
|
|
9600
|
+
var import_type_guards36 = require("@wistia/type-guards");
|
|
9601
|
+
var mergeRefs = (refs) => (value) => {
|
|
9602
|
+
refs.forEach((ref) => {
|
|
9603
|
+
if ((0, import_type_guards36.isFunction)(ref)) {
|
|
9604
|
+
ref(value);
|
|
9605
|
+
return;
|
|
9606
|
+
}
|
|
9607
|
+
if ((0, import_type_guards36.isNotNil)(ref)) {
|
|
9608
|
+
ref.current = value;
|
|
9609
|
+
}
|
|
9610
|
+
});
|
|
9611
|
+
};
|
|
9612
|
+
|
|
9613
|
+
// src/components/SegmentedControl/SegmentedControlItem.tsx
|
|
9614
|
+
var import_jsx_runtime214 = require("react/jsx-runtime");
|
|
9615
|
+
var segmentedControlItemStyles = import_styled_components63.css`
|
|
9446
9616
|
all: unset; /* ToggleGroupItem is a button element */
|
|
9447
9617
|
align-items: center;
|
|
9448
9618
|
border-radius: var(--wui-border-radius-rounded);
|
|
@@ -9452,8 +9622,9 @@ var segmentedControlItemStyles = import_styled_components60.css`
|
|
|
9452
9622
|
flex-grow: 1;
|
|
9453
9623
|
flex-shrink: 1;
|
|
9454
9624
|
font-size: var(--wui-typography-label-3-size);
|
|
9625
|
+
font-weight: var(--wui-typography-label-3-weight);
|
|
9455
9626
|
justify-content: center;
|
|
9456
|
-
padding: 6px 8px;
|
|
9627
|
+
padding: 6px ${({ $hasLabel }) => $hasLabel ? "8px" : "6px"};
|
|
9457
9628
|
user-select: none;
|
|
9458
9629
|
|
|
9459
9630
|
/* Icon component */
|
|
@@ -9465,18 +9636,17 @@ var segmentedControlItemStyles = import_styled_components60.css`
|
|
|
9465
9636
|
${({ $hasLabel }) => $hasLabel ? "margin-right: var(--wui-space-01)" : ""}
|
|
9466
9637
|
}
|
|
9467
9638
|
|
|
9468
|
-
&:hover {
|
|
9469
|
-
background-color: var(--wui-color-bg-surface-secondary-hover);
|
|
9470
|
-
}
|
|
9471
|
-
|
|
9472
9639
|
&:focus-visible {
|
|
9473
9640
|
outline: 2px solid var(--wui-color-focus-ring);
|
|
9474
9641
|
}
|
|
9475
9642
|
|
|
9643
|
+
&:hover:not([data-state='on'], [data-state='active']) {
|
|
9644
|
+
background-color: var(--wui-color-bg-surface-secondary-hover);
|
|
9645
|
+
}
|
|
9646
|
+
|
|
9476
9647
|
/* note: react-toggle-group uses "on" and react-tabs uses "active" */
|
|
9477
9648
|
&[data-state='on'],
|
|
9478
9649
|
&[data-state='active'] {
|
|
9479
|
-
background-color: var(--wui-color-bg-fill-white);
|
|
9480
9650
|
color: var(--wui-color-text-selected);
|
|
9481
9651
|
cursor: default;
|
|
9482
9652
|
}
|
|
@@ -9491,17 +9661,26 @@ var segmentedControlItemStyles = import_styled_components60.css`
|
|
|
9491
9661
|
|
|
9492
9662
|
&[data-disabled] {
|
|
9493
9663
|
cursor: not-allowed;
|
|
9664
|
+
color: var(--wui-color-text-disabled);
|
|
9665
|
+
|
|
9666
|
+
svg path {
|
|
9667
|
+
fill: var(--wui-color-icon-disabled);
|
|
9668
|
+
}
|
|
9494
9669
|
|
|
9495
9670
|
&:hover {
|
|
9496
9671
|
background-color: inherit;
|
|
9497
9672
|
}
|
|
9498
9673
|
}
|
|
9499
9674
|
`;
|
|
9500
|
-
var StyledSegmentedControlItem = (0,
|
|
9675
|
+
var StyledSegmentedControlItem = (0, import_styled_components63.default)(import_react_toggle_group2.Item)`
|
|
9501
9676
|
${segmentedControlItemStyles}
|
|
9502
9677
|
`;
|
|
9503
|
-
var SegmentedControlItem = (0,
|
|
9504
|
-
({ disabled, icon, label, "aria-label": ariaLabel, value },
|
|
9678
|
+
var SegmentedControlItem = (0, import_react47.forwardRef)(
|
|
9679
|
+
({ disabled, icon, label, "aria-label": ariaLabel, value }, forwardedRef) => {
|
|
9680
|
+
const selectedValue = useSegmentedControlValue();
|
|
9681
|
+
const { setSelectedItemMeasurements } = useSelectedItemMeasurements();
|
|
9682
|
+
const buttonRef = (0, import_react47.useRef)(null);
|
|
9683
|
+
const combinedRef = mergeRefs([buttonRef, forwardedRef]);
|
|
9505
9684
|
const handleClick = (event) => {
|
|
9506
9685
|
const target = event.target;
|
|
9507
9686
|
const { state } = target.dataset;
|
|
@@ -9509,12 +9688,37 @@ var SegmentedControlItem = (0, import_react43.forwardRef)(
|
|
|
9509
9688
|
event.preventDefault();
|
|
9510
9689
|
}
|
|
9511
9690
|
};
|
|
9512
|
-
|
|
9691
|
+
(0, import_react47.useEffect)(() => {
|
|
9692
|
+
const buttonElem = buttonRef.current;
|
|
9693
|
+
if (!buttonElem) {
|
|
9694
|
+
return void 0;
|
|
9695
|
+
}
|
|
9696
|
+
if (selectedValue !== value) {
|
|
9697
|
+
return void 0;
|
|
9698
|
+
}
|
|
9699
|
+
setSelectedItemMeasurements({
|
|
9700
|
+
offsetLeft: buttonElem.offsetLeft,
|
|
9701
|
+
offsetWidth: buttonElem.offsetWidth,
|
|
9702
|
+
offsetHeight: buttonElem.offsetHeight
|
|
9703
|
+
});
|
|
9704
|
+
const resizeObserver = new ResizeObserver(() => {
|
|
9705
|
+
setSelectedItemMeasurements({
|
|
9706
|
+
offsetLeft: buttonElem.offsetLeft,
|
|
9707
|
+
offsetWidth: buttonElem.offsetWidth,
|
|
9708
|
+
offsetHeight: buttonElem.offsetHeight
|
|
9709
|
+
});
|
|
9710
|
+
});
|
|
9711
|
+
resizeObserver.observe(buttonElem);
|
|
9712
|
+
return () => {
|
|
9713
|
+
resizeObserver.disconnect();
|
|
9714
|
+
};
|
|
9715
|
+
}, [selectedValue, setSelectedItemMeasurements, value]);
|
|
9716
|
+
return /* @__PURE__ */ (0, import_jsx_runtime214.jsxs)(
|
|
9513
9717
|
StyledSegmentedControlItem,
|
|
9514
9718
|
{
|
|
9515
|
-
ref,
|
|
9516
|
-
$hasLabel: (0,
|
|
9517
|
-
"aria-label": (0,
|
|
9719
|
+
ref: combinedRef,
|
|
9720
|
+
$hasLabel: (0, import_type_guards37.isNotNil)(label),
|
|
9721
|
+
"aria-label": (0, import_type_guards37.isNotNil)(label) ? void 0 : ariaLabel,
|
|
9518
9722
|
disabled,
|
|
9519
9723
|
onClick: handleClick,
|
|
9520
9724
|
value,
|
|
@@ -9528,205 +9732,21 @@ var SegmentedControlItem = (0, import_react43.forwardRef)(
|
|
|
9528
9732
|
);
|
|
9529
9733
|
SegmentedControlItem.displayName = "SegmentedControlItem";
|
|
9530
9734
|
|
|
9531
|
-
// src/components/Select/Select.tsx
|
|
9532
|
-
var import_react_select = require("@radix-ui/react-select");
|
|
9533
|
-
var import_react44 = require("react");
|
|
9534
|
-
var import_styled_components61 = __toESM(require("styled-components"));
|
|
9535
|
-
var import_jsx_runtime210 = require("react/jsx-runtime");
|
|
9536
|
-
var StyledTrigger = (0, import_styled_components61.default)(import_react_select.Trigger)`
|
|
9537
|
-
${({ $colorScheme }) => getColorScheme($colorScheme)};
|
|
9538
|
-
--wui-select-color-bg: var(--wui-color-bg-surface);
|
|
9539
|
-
--wui-select-color-bg-disabled: var(--wui-color-bg-surface-disabled);
|
|
9540
|
-
--wui-select-color-border: var(--wui-color-border);
|
|
9541
|
-
--wui-select-color-border-focus: var(--wui-color-border-active);
|
|
9542
|
-
--wui-select-color-border-error: var(--wui-color-border-error);
|
|
9543
|
-
--wui-select-color-border-disabled: var(--wui-color-border-disabled);
|
|
9544
|
-
--wui-select-border-radius: var(--wui-border-radius-rounded);
|
|
9545
|
-
--wui-select-multiline-border-radius: var(--wui-border-radius-02);
|
|
9546
|
-
--wui-select-vertical-padding: var(--wui-space-02);
|
|
9547
|
-
--wui-select-horizontal-padding: var(--wui-space-03);
|
|
9548
|
-
--wui-select-placeholder: var(--wui-gray-10);
|
|
9549
|
-
--wui-select-color-text-error: var(--wui-color-text-error);
|
|
9550
|
-
|
|
9551
|
-
padding: var(--wui-select-vertical-padding) var(--wui-select-horizontal-padding);
|
|
9552
|
-
background-color: var(--wui-select-color-bg);
|
|
9553
|
-
border: 1px solid var(--wui-select-color-border);
|
|
9554
|
-
border-radius: var(--wui-select-border-radius);
|
|
9555
|
-
min-width: 200px;
|
|
9556
|
-
text-align: left;
|
|
9557
|
-
display: inline-flex;
|
|
9558
|
-
align-items: center;
|
|
9559
|
-
justify-content: space-between;
|
|
9560
|
-
width: ${({ $fullWidth = false }) => $fullWidth ? "100%" : "auto"};
|
|
9561
|
-
|
|
9562
|
-
&[aria-expanded='true'],
|
|
9563
|
-
&:focus {
|
|
9564
|
-
outline: 2px solid var(--wui-color-focus-ring);
|
|
9565
|
-
}
|
|
9566
|
-
|
|
9567
|
-
&[aria-invalid='true'] {
|
|
9568
|
-
outline: 2px solid var(--wui-select-color-border-error);
|
|
9569
|
-
color: var(--wui-select-color-text-error);
|
|
9570
|
-
}
|
|
9571
|
-
|
|
9572
|
-
&:disabled {
|
|
9573
|
-
border-color: var(--wui-color-bg-surface-disabled);
|
|
9574
|
-
background-color: var(--wui-color-bg-surface-disabled);
|
|
9575
|
-
}
|
|
9576
|
-
`;
|
|
9577
|
-
var StyledContent2 = (0, import_styled_components61.default)(import_react_select.Content)`
|
|
9578
|
-
--wui-select-content-border: var(--wui-color-border);
|
|
9579
|
-
--wui-select-content-bg: var(--wui-color-bg-surface);
|
|
9580
|
-
--wui-select-content-border-radius: var(--wui-border-radius-02);
|
|
9581
|
-
--wui-select-option-padding: var(--wui-space-02);
|
|
9582
|
-
--wui-select-option-inner-gap: var(--wui-space-03);
|
|
9583
|
-
--wui-select-option-bg-hover: var(--wui-color-bg-surface-hover);
|
|
9584
|
-
|
|
9585
|
-
overflow: hidden;
|
|
9586
|
-
transform: translateY(8px);
|
|
9587
|
-
background-color: var(--wui-select-content-bg);
|
|
9588
|
-
border: 1px solid var(--wui-select-content-border);
|
|
9589
|
-
border-radius: var(--wui-select-content-border-radius);
|
|
9590
|
-
padding: var(--wui-select-option-padding);
|
|
9591
|
-
min-width: 200px;
|
|
9592
|
-
`;
|
|
9593
|
-
var Select = (0, import_react44.forwardRef)(
|
|
9594
|
-
({
|
|
9595
|
-
colorScheme = "inherit",
|
|
9596
|
-
children,
|
|
9597
|
-
onChange = () => null,
|
|
9598
|
-
placeholder = "Select...",
|
|
9599
|
-
fullWidth = false,
|
|
9600
|
-
...props
|
|
9601
|
-
}, forwardedRef) => {
|
|
9602
|
-
const responsiveFullWidth = useResponsiveProp(fullWidth);
|
|
9603
|
-
return /* @__PURE__ */ (0, import_jsx_runtime210.jsxs)(
|
|
9604
|
-
import_react_select.Root,
|
|
9605
|
-
{
|
|
9606
|
-
...props,
|
|
9607
|
-
onValueChange: onChange,
|
|
9608
|
-
children: [
|
|
9609
|
-
/* @__PURE__ */ (0, import_jsx_runtime210.jsxs)(
|
|
9610
|
-
StyledTrigger,
|
|
9611
|
-
{
|
|
9612
|
-
ref: forwardedRef,
|
|
9613
|
-
$colorScheme: colorScheme,
|
|
9614
|
-
$fullWidth: responsiveFullWidth,
|
|
9615
|
-
...props,
|
|
9616
|
-
children: [
|
|
9617
|
-
/* @__PURE__ */ (0, import_jsx_runtime210.jsx)(import_react_select.Value, { placeholder }),
|
|
9618
|
-
/* @__PURE__ */ (0, import_jsx_runtime210.jsx)(
|
|
9619
|
-
Icon,
|
|
9620
|
-
{
|
|
9621
|
-
size: "md",
|
|
9622
|
-
type: "caret-down"
|
|
9623
|
-
}
|
|
9624
|
-
)
|
|
9625
|
-
]
|
|
9626
|
-
}
|
|
9627
|
-
),
|
|
9628
|
-
/* @__PURE__ */ (0, import_jsx_runtime210.jsx)(import_react_select.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime210.jsxs)(StyledContent2, { position: "popper", children: [
|
|
9629
|
-
/* @__PURE__ */ (0, import_jsx_runtime210.jsx)(import_react_select.ScrollUpButton, { children: /* @__PURE__ */ (0, import_jsx_runtime210.jsx)(Icon, { type: "caret-up" }) }),
|
|
9630
|
-
/* @__PURE__ */ (0, import_jsx_runtime210.jsx)(import_react_select.Viewport, { children }),
|
|
9631
|
-
/* @__PURE__ */ (0, import_jsx_runtime210.jsx)(import_react_select.ScrollDownButton, { children: /* @__PURE__ */ (0, import_jsx_runtime210.jsx)(Icon, { type: "caret-down" }) })
|
|
9632
|
-
] }) })
|
|
9633
|
-
]
|
|
9634
|
-
}
|
|
9635
|
-
);
|
|
9636
|
-
}
|
|
9637
|
-
);
|
|
9638
|
-
Select.displayName = "Select";
|
|
9639
|
-
|
|
9640
|
-
// src/components/Select/SelectOption.tsx
|
|
9641
|
-
var import_react_select2 = require("@radix-ui/react-select");
|
|
9642
|
-
var import_react45 = require("react");
|
|
9643
|
-
var import_styled_components62 = __toESM(require("styled-components"));
|
|
9644
|
-
var import_jsx_runtime211 = require("react/jsx-runtime");
|
|
9645
|
-
var StyledItem = (0, import_styled_components62.default)(import_react_select2.Item)`
|
|
9646
|
-
${variantStyleMap2.body3};
|
|
9647
|
-
display: flex;
|
|
9648
|
-
padding: var(--wui-select-option-padding);
|
|
9649
|
-
gap: var(--wui-select-option-inner-gap);
|
|
9650
|
-
font-size: var(--font-size);
|
|
9651
|
-
font-weight: var(--font-weight);
|
|
9652
|
-
border-radius: var(--wui-border-radius-01);
|
|
9653
|
-
|
|
9654
|
-
&:hover,
|
|
9655
|
-
&:focus-visible {
|
|
9656
|
-
background-color: var(--wui-select-option-bg-hover);
|
|
9657
|
-
outline: none;
|
|
9658
|
-
}
|
|
9659
|
-
|
|
9660
|
-
&[aria-disabled='true'] {
|
|
9661
|
-
color: var(--wui-color-text-disabled);
|
|
9662
|
-
}
|
|
9663
|
-
|
|
9664
|
-
&[aria-disabled='true']:hover {
|
|
9665
|
-
background-color: transparent;
|
|
9666
|
-
}
|
|
9667
|
-
`;
|
|
9668
|
-
var StyledIconContainer = import_styled_components62.default.span`
|
|
9669
|
-
width: 12px;
|
|
9670
|
-
`;
|
|
9671
|
-
var SelectOption = (0, import_react45.forwardRef)(
|
|
9672
|
-
({ children, ...props }, forwardedRef) => {
|
|
9673
|
-
return /* @__PURE__ */ (0, import_jsx_runtime211.jsxs)(
|
|
9674
|
-
StyledItem,
|
|
9675
|
-
{
|
|
9676
|
-
...props,
|
|
9677
|
-
ref: forwardedRef,
|
|
9678
|
-
children: [
|
|
9679
|
-
/* @__PURE__ */ (0, import_jsx_runtime211.jsx)(StyledIconContainer, { children: /* @__PURE__ */ (0, import_jsx_runtime211.jsx)(import_react_select2.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime211.jsx)(
|
|
9680
|
-
Icon,
|
|
9681
|
-
{
|
|
9682
|
-
size: "sm",
|
|
9683
|
-
type: "checkmark"
|
|
9684
|
-
}
|
|
9685
|
-
) }) }),
|
|
9686
|
-
/* @__PURE__ */ (0, import_jsx_runtime211.jsx)(import_react_select2.ItemText, { children })
|
|
9687
|
-
]
|
|
9688
|
-
}
|
|
9689
|
-
);
|
|
9690
|
-
}
|
|
9691
|
-
);
|
|
9692
|
-
SelectOption.displayName = "Option";
|
|
9693
|
-
|
|
9694
|
-
// src/components/Select/SelectOptionGroup.tsx
|
|
9695
|
-
var import_react_select3 = require("@radix-ui/react-select");
|
|
9696
|
-
var import_styled_components63 = __toESM(require("styled-components"));
|
|
9697
|
-
var import_jsx_runtime212 = require("react/jsx-runtime");
|
|
9698
|
-
var StyledLabel4 = (0, import_styled_components63.default)(import_react_select3.Label)`
|
|
9699
|
-
padding: var(--wui-select-option-padding);
|
|
9700
|
-
`;
|
|
9701
|
-
var SelectOptionGroup = ({ children, label, ...props }) => {
|
|
9702
|
-
return /* @__PURE__ */ (0, import_jsx_runtime212.jsxs)(import_react_select3.Group, { ...props, children: [
|
|
9703
|
-
/* @__PURE__ */ (0, import_jsx_runtime212.jsx)(StyledLabel4, { children: /* @__PURE__ */ (0, import_jsx_runtime212.jsx)(
|
|
9704
|
-
Text,
|
|
9705
|
-
{
|
|
9706
|
-
prominence: "secondary",
|
|
9707
|
-
variant: "body3",
|
|
9708
|
-
children: label
|
|
9709
|
-
}
|
|
9710
|
-
) }),
|
|
9711
|
-
children
|
|
9712
|
-
] });
|
|
9713
|
-
};
|
|
9714
|
-
|
|
9715
9735
|
// src/components/Tabs/Tabs.tsx
|
|
9716
|
-
var
|
|
9736
|
+
var import_react52 = require("react");
|
|
9717
9737
|
var import_react_tabs4 = require("@radix-ui/react-tabs");
|
|
9718
|
-
var
|
|
9738
|
+
var import_type_guards39 = require("@wistia/type-guards");
|
|
9719
9739
|
|
|
9720
9740
|
// src/components/Tabs/TabPanel.tsx
|
|
9721
9741
|
var import_styled_components64 = __toESM(require("styled-components"));
|
|
9722
9742
|
var import_react_tabs = require("@radix-ui/react-tabs");
|
|
9723
|
-
var
|
|
9743
|
+
var import_jsx_runtime215 = require("react/jsx-runtime");
|
|
9724
9744
|
var StyledTabPanel = (0, import_styled_components64.default)(import_react_tabs.Content)`
|
|
9725
9745
|
display: flex;
|
|
9726
9746
|
flex-direction: column;
|
|
9727
9747
|
`;
|
|
9728
9748
|
var TabPanel = ({ children, value, ...props }) => {
|
|
9729
|
-
return /* @__PURE__ */ (0,
|
|
9749
|
+
return /* @__PURE__ */ (0, import_jsx_runtime215.jsx)(
|
|
9730
9750
|
StyledTabPanel,
|
|
9731
9751
|
{
|
|
9732
9752
|
value,
|
|
@@ -9740,7 +9760,7 @@ TabPanel.displayName = "TabPanel";
|
|
|
9740
9760
|
// src/components/Tabs/TabList.tsx
|
|
9741
9761
|
var import_styled_components65 = __toESM(require("styled-components"));
|
|
9742
9762
|
var import_react_tabs2 = require("@radix-ui/react-tabs");
|
|
9743
|
-
var
|
|
9763
|
+
var import_jsx_runtime216 = require("react/jsx-runtime");
|
|
9744
9764
|
var StyledTabList = (0, import_styled_components65.default)(import_react_tabs2.List)`
|
|
9745
9765
|
${segmentedControlStyles}
|
|
9746
9766
|
|
|
@@ -9752,7 +9772,7 @@ var TabList = ({
|
|
|
9752
9772
|
ariaLabel,
|
|
9753
9773
|
...props
|
|
9754
9774
|
}) => {
|
|
9755
|
-
return /* @__PURE__ */ (0,
|
|
9775
|
+
return /* @__PURE__ */ (0, import_jsx_runtime216.jsx)(
|
|
9756
9776
|
StyledTabList,
|
|
9757
9777
|
{
|
|
9758
9778
|
$fullWidth: fullWidth,
|
|
@@ -9765,26 +9785,69 @@ var TabList = ({
|
|
|
9765
9785
|
TabList.displayName = "TabList";
|
|
9766
9786
|
|
|
9767
9787
|
// src/components/Tabs/TabItem.tsx
|
|
9768
|
-
var
|
|
9788
|
+
var import_react49 = require("react");
|
|
9769
9789
|
var import_styled_components66 = __toESM(require("styled-components"));
|
|
9770
9790
|
var import_react_tabs3 = require("@radix-ui/react-tabs");
|
|
9771
|
-
var
|
|
9772
|
-
|
|
9791
|
+
var import_type_guards38 = require("@wistia/type-guards");
|
|
9792
|
+
|
|
9793
|
+
// src/components/Tabs/useTabsValue.tsx
|
|
9794
|
+
var import_react48 = require("react");
|
|
9795
|
+
var TabsValueContext = (0, import_react48.createContext)(null);
|
|
9796
|
+
var TabsValueProvider = TabsValueContext.Provider;
|
|
9797
|
+
var useTabsValue = () => {
|
|
9798
|
+
const context = (0, import_react48.useContext)(TabsValueContext);
|
|
9799
|
+
if (context === null) {
|
|
9800
|
+
throw new Error("useTabsValue must be used within a TabsValueProvider");
|
|
9801
|
+
}
|
|
9802
|
+
return context;
|
|
9803
|
+
};
|
|
9804
|
+
|
|
9805
|
+
// src/components/Tabs/TabItem.tsx
|
|
9806
|
+
var import_jsx_runtime217 = require("react/jsx-runtime");
|
|
9773
9807
|
var StyledTabItem = (0, import_styled_components66.default)(import_react_tabs3.Trigger)`
|
|
9774
9808
|
${segmentedControlItemStyles}
|
|
9775
9809
|
|
|
9776
|
-
|
|
9777
|
-
|
|
9810
|
+
&:focus-visible {
|
|
9811
|
+
outline: none;
|
|
9778
9812
|
}
|
|
9779
9813
|
`;
|
|
9780
|
-
var TabItem = (0,
|
|
9781
|
-
({ disabled = false, icon, label, "aria-label": ariaLabel, value },
|
|
9782
|
-
|
|
9814
|
+
var TabItem = (0, import_react49.forwardRef)(
|
|
9815
|
+
({ disabled = false, icon, label, "aria-label": ariaLabel, value }, forwardedRef) => {
|
|
9816
|
+
const selectedValue = useTabsValue();
|
|
9817
|
+
const { setSelectedItemMeasurements } = useSelectedItemMeasurements();
|
|
9818
|
+
const buttonRef = (0, import_react49.useRef)(null);
|
|
9819
|
+
const combinedRef = mergeRefs([buttonRef, forwardedRef]);
|
|
9820
|
+
(0, import_react49.useEffect)(() => {
|
|
9821
|
+
const buttonElem = buttonRef.current;
|
|
9822
|
+
if (!buttonElem) {
|
|
9823
|
+
return void 0;
|
|
9824
|
+
}
|
|
9825
|
+
if (selectedValue !== value) {
|
|
9826
|
+
return void 0;
|
|
9827
|
+
}
|
|
9828
|
+
setSelectedItemMeasurements({
|
|
9829
|
+
offsetLeft: buttonElem.offsetLeft,
|
|
9830
|
+
offsetWidth: buttonElem.offsetWidth,
|
|
9831
|
+
offsetHeight: buttonElem.offsetHeight
|
|
9832
|
+
});
|
|
9833
|
+
const resizeObserver = new ResizeObserver(() => {
|
|
9834
|
+
setSelectedItemMeasurements({
|
|
9835
|
+
offsetLeft: buttonElem.offsetLeft,
|
|
9836
|
+
offsetWidth: buttonElem.offsetWidth,
|
|
9837
|
+
offsetHeight: buttonElem.offsetHeight
|
|
9838
|
+
});
|
|
9839
|
+
});
|
|
9840
|
+
resizeObserver.observe(buttonElem);
|
|
9841
|
+
return () => {
|
|
9842
|
+
resizeObserver.disconnect();
|
|
9843
|
+
};
|
|
9844
|
+
}, [selectedValue, setSelectedItemMeasurements, value]);
|
|
9845
|
+
return /* @__PURE__ */ (0, import_jsx_runtime217.jsxs)(
|
|
9783
9846
|
StyledTabItem,
|
|
9784
9847
|
{
|
|
9785
|
-
ref,
|
|
9786
|
-
$hasLabel: (0,
|
|
9787
|
-
"aria-label": (0,
|
|
9848
|
+
ref: combinedRef,
|
|
9849
|
+
$hasLabel: (0, import_type_guards38.isNotNil)(label),
|
|
9850
|
+
"aria-label": (0, import_type_guards38.isNotNil)(label) ? void 0 : ariaLabel,
|
|
9788
9851
|
disabled,
|
|
9789
9852
|
value,
|
|
9790
9853
|
children: [
|
|
@@ -9798,16 +9861,16 @@ var TabItem = (0, import_react46.forwardRef)(
|
|
|
9798
9861
|
TabItem.displayName = "TabItem";
|
|
9799
9862
|
|
|
9800
9863
|
// src/components/Tabs/extractTabItems.ts
|
|
9801
|
-
var
|
|
9864
|
+
var import_react50 = require("react");
|
|
9802
9865
|
var extractTabItems = (children) => {
|
|
9803
9866
|
const tabItems = [];
|
|
9804
|
-
|
|
9805
|
-
if (!(0,
|
|
9867
|
+
import_react50.Children.forEach(children, (child) => {
|
|
9868
|
+
if (!(0, import_react50.isValidElement)(child)) {
|
|
9806
9869
|
return;
|
|
9807
9870
|
}
|
|
9808
9871
|
if (typeof child.type !== "string" && child.type.displayName === "Tab") {
|
|
9809
9872
|
tabItems.push(child);
|
|
9810
|
-
} else if (child.type ===
|
|
9873
|
+
} else if (child.type === import_react50.Fragment) {
|
|
9811
9874
|
const fragmentElement = child;
|
|
9812
9875
|
tabItems.push(...extractTabItems(fragmentElement.props.children));
|
|
9813
9876
|
} else if ((child.props.children ?? null) != null) {
|
|
@@ -9819,9 +9882,44 @@ var extractTabItems = (children) => {
|
|
|
9819
9882
|
return tabItems;
|
|
9820
9883
|
};
|
|
9821
9884
|
|
|
9885
|
+
// src/components/Tabs/SelectedItemIndicator.tsx
|
|
9886
|
+
var import_react51 = require("react");
|
|
9887
|
+
var import_styled_components67 = __toESM(require("styled-components"));
|
|
9888
|
+
var import_jsx_runtime218 = require("react/jsx-runtime");
|
|
9889
|
+
var TabsSelectedItemIndicatorDiv = (0, import_styled_components67.default)(SelectedItemIndicatorDiv)`
|
|
9890
|
+
&:has(~ ${StyledTabItem}:focus-visible) {
|
|
9891
|
+
outline: 2px solid var(--wui-color-focus-ring);
|
|
9892
|
+
}
|
|
9893
|
+
`;
|
|
9894
|
+
var SelectedItemIndicator2 = () => {
|
|
9895
|
+
const { selectedItemMeasurements } = useSelectedItemMeasurements();
|
|
9896
|
+
const selectedValue = useTabsValue();
|
|
9897
|
+
const selectedItemIndicatorStyle = (0, import_react51.useMemo)(
|
|
9898
|
+
() => selectedItemMeasurements != null ? {
|
|
9899
|
+
height: `${selectedItemMeasurements.offsetHeight}px`,
|
|
9900
|
+
transform: `translateX(${selectedItemMeasurements.offsetLeft}px)`,
|
|
9901
|
+
width: `${selectedItemMeasurements.offsetWidth}px`
|
|
9902
|
+
} : {},
|
|
9903
|
+
[selectedItemMeasurements]
|
|
9904
|
+
);
|
|
9905
|
+
if (selectedValue == null) {
|
|
9906
|
+
return null;
|
|
9907
|
+
}
|
|
9908
|
+
return /* @__PURE__ */ (0, import_jsx_runtime218.jsx)(
|
|
9909
|
+
TabsSelectedItemIndicatorDiv,
|
|
9910
|
+
{
|
|
9911
|
+
style: {
|
|
9912
|
+
width: selectedItemIndicatorStyle.width,
|
|
9913
|
+
transform: selectedItemIndicatorStyle.transform,
|
|
9914
|
+
height: selectedItemIndicatorStyle.height
|
|
9915
|
+
}
|
|
9916
|
+
}
|
|
9917
|
+
);
|
|
9918
|
+
};
|
|
9919
|
+
|
|
9822
9920
|
// src/components/Tabs/Tabs.tsx
|
|
9823
|
-
var
|
|
9824
|
-
var Tabs = (0,
|
|
9921
|
+
var import_jsx_runtime219 = require("react/jsx-runtime");
|
|
9922
|
+
var Tabs = (0, import_react52.forwardRef)(
|
|
9825
9923
|
({
|
|
9826
9924
|
children,
|
|
9827
9925
|
fullWidth = true,
|
|
@@ -9832,76 +9930,89 @@ var Tabs = (0, import_react48.forwardRef)(
|
|
|
9832
9930
|
...otherProps
|
|
9833
9931
|
}, ref) => {
|
|
9834
9932
|
const tabItems = extractTabItems(children);
|
|
9835
|
-
const
|
|
9836
|
-
|
|
9933
|
+
const [internalSelectedValue, setInternalSelectedValue] = (0, import_react52.useState)(defaultSelectedValue);
|
|
9934
|
+
const modeProps = defaultSelectedValue !== void 0 ? {
|
|
9935
|
+
defaultValue: defaultSelectedValue,
|
|
9936
|
+
onValueChange: setInternalSelectedValue
|
|
9937
|
+
} : { value: selectedValue, onValueChange: onSelectedValueChange };
|
|
9938
|
+
return /* @__PURE__ */ (0, import_jsx_runtime219.jsx)(
|
|
9837
9939
|
import_react_tabs4.Root,
|
|
9838
9940
|
{
|
|
9839
9941
|
ref,
|
|
9840
9942
|
activationMode: "automatic",
|
|
9841
9943
|
...otherProps,
|
|
9842
9944
|
...modeProps,
|
|
9843
|
-
children:
|
|
9844
|
-
|
|
9845
|
-
|
|
9846
|
-
|
|
9847
|
-
|
|
9848
|
-
|
|
9849
|
-
|
|
9850
|
-
|
|
9851
|
-
|
|
9852
|
-
|
|
9853
|
-
|
|
9854
|
-
|
|
9855
|
-
|
|
9856
|
-
|
|
9857
|
-
|
|
9858
|
-
|
|
9859
|
-
|
|
9860
|
-
|
|
9861
|
-
|
|
9862
|
-
|
|
9863
|
-
|
|
9864
|
-
|
|
9865
|
-
|
|
9866
|
-
|
|
9867
|
-
|
|
9868
|
-
|
|
9869
|
-
|
|
9870
|
-
|
|
9871
|
-
|
|
9872
|
-
|
|
9873
|
-
|
|
9874
|
-
label
|
|
9875
|
-
|
|
9876
|
-
|
|
9877
|
-
|
|
9878
|
-
|
|
9879
|
-
|
|
9880
|
-
|
|
9881
|
-
|
|
9882
|
-
|
|
9883
|
-
|
|
9884
|
-
|
|
9885
|
-
|
|
9886
|
-
|
|
9887
|
-
|
|
9888
|
-
|
|
9889
|
-
|
|
9890
|
-
|
|
9945
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime219.jsx)(
|
|
9946
|
+
TabsValueProvider,
|
|
9947
|
+
{
|
|
9948
|
+
value: defaultSelectedValue !== void 0 ? internalSelectedValue : selectedValue,
|
|
9949
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime219.jsxs)(SelectedItemMeasurementsProvider, { children: [
|
|
9950
|
+
/* @__PURE__ */ (0, import_jsx_runtime219.jsxs)(
|
|
9951
|
+
TabList,
|
|
9952
|
+
{
|
|
9953
|
+
ariaLabel,
|
|
9954
|
+
fullWidth,
|
|
9955
|
+
children: [
|
|
9956
|
+
/* @__PURE__ */ (0, import_jsx_runtime219.jsx)(SelectedItemIndicator2, {}),
|
|
9957
|
+
tabItems.map((tab) => {
|
|
9958
|
+
const {
|
|
9959
|
+
value,
|
|
9960
|
+
disabled = false,
|
|
9961
|
+
icon,
|
|
9962
|
+
label,
|
|
9963
|
+
"aria-label": ariaLabelForTab
|
|
9964
|
+
} = tab.props;
|
|
9965
|
+
if ((0, import_type_guards39.isNil)(icon)) {
|
|
9966
|
+
return /* @__PURE__ */ (0, import_jsx_runtime219.jsx)(
|
|
9967
|
+
TabItem,
|
|
9968
|
+
{
|
|
9969
|
+
disabled,
|
|
9970
|
+
label,
|
|
9971
|
+
value
|
|
9972
|
+
},
|
|
9973
|
+
value
|
|
9974
|
+
);
|
|
9975
|
+
}
|
|
9976
|
+
if ((0, import_type_guards39.isNotNil)(label)) {
|
|
9977
|
+
return /* @__PURE__ */ (0, import_jsx_runtime219.jsx)(
|
|
9978
|
+
TabItem,
|
|
9979
|
+
{
|
|
9980
|
+
disabled,
|
|
9981
|
+
icon,
|
|
9982
|
+
label,
|
|
9983
|
+
value
|
|
9984
|
+
},
|
|
9985
|
+
value
|
|
9986
|
+
);
|
|
9987
|
+
}
|
|
9988
|
+
if ((0, import_type_guards39.isNotNil)(ariaLabelForTab)) {
|
|
9989
|
+
return /* @__PURE__ */ (0, import_jsx_runtime219.jsx)(
|
|
9990
|
+
TabItem,
|
|
9991
|
+
{
|
|
9992
|
+
"aria-label": ariaLabelForTab,
|
|
9993
|
+
disabled,
|
|
9994
|
+
icon,
|
|
9995
|
+
value
|
|
9996
|
+
},
|
|
9997
|
+
value
|
|
9998
|
+
);
|
|
9999
|
+
}
|
|
10000
|
+
throw new Error("A `Tab` with an icon must have either label or aria-label");
|
|
10001
|
+
})
|
|
10002
|
+
]
|
|
9891
10003
|
}
|
|
9892
|
-
|
|
9893
|
-
|
|
9894
|
-
|
|
9895
|
-
|
|
9896
|
-
|
|
9897
|
-
|
|
9898
|
-
|
|
9899
|
-
|
|
9900
|
-
|
|
9901
|
-
}
|
|
9902
|
-
|
|
9903
|
-
|
|
9904
|
-
]
|
|
10004
|
+
),
|
|
10005
|
+
tabItems.map((tab) => /* @__PURE__ */ (0, import_jsx_runtime219.jsx)(
|
|
10006
|
+
TabPanel,
|
|
10007
|
+
{
|
|
10008
|
+
value: tab.props.value,
|
|
10009
|
+
children: tab.props.children
|
|
10010
|
+
},
|
|
10011
|
+
tab.props.value
|
|
10012
|
+
))
|
|
10013
|
+
] })
|
|
10014
|
+
}
|
|
10015
|
+
)
|
|
9905
10016
|
}
|
|
9906
10017
|
);
|
|
9907
10018
|
}
|
|
@@ -9909,19 +10020,19 @@ var Tabs = (0, import_react48.forwardRef)(
|
|
|
9909
10020
|
Tabs.displayName = "Tabs";
|
|
9910
10021
|
|
|
9911
10022
|
// src/components/Tabs/Tab.tsx
|
|
9912
|
-
var
|
|
9913
|
-
var
|
|
9914
|
-
var Tab = (0,
|
|
9915
|
-
return /* @__PURE__ */ (0,
|
|
10023
|
+
var import_react53 = require("react");
|
|
10024
|
+
var import_jsx_runtime220 = require("react/jsx-runtime");
|
|
10025
|
+
var Tab = (0, import_react53.forwardRef)(({ children }, ref) => {
|
|
10026
|
+
return /* @__PURE__ */ (0, import_jsx_runtime220.jsx)("div", { ref, children });
|
|
9916
10027
|
});
|
|
9917
10028
|
Tab.displayName = "Tab";
|
|
9918
10029
|
|
|
9919
10030
|
// src/components/Tag/Tag.tsx
|
|
9920
|
-
var
|
|
9921
|
-
var
|
|
9922
|
-
var
|
|
9923
|
-
var
|
|
9924
|
-
var TagLabel =
|
|
10031
|
+
var import_react54 = require("react");
|
|
10032
|
+
var import_styled_components68 = __toESM(require("styled-components"));
|
|
10033
|
+
var import_type_guards40 = require("@wistia/type-guards");
|
|
10034
|
+
var import_jsx_runtime221 = require("react/jsx-runtime");
|
|
10035
|
+
var TagLabel = import_styled_components68.default.a`
|
|
9925
10036
|
${({ $colorScheme }) => getColorScheme($colorScheme)};
|
|
9926
10037
|
font-size: var(--wui-typography-label-4-size);
|
|
9927
10038
|
font-weight: var(--wui-typography-label-4-weight);
|
|
@@ -9949,14 +10060,14 @@ var TagLabel = import_styled_components67.default.a`
|
|
|
9949
10060
|
box-shadow: inset 0 0 0 2px var(--wui-color-border-secondary);
|
|
9950
10061
|
}
|
|
9951
10062
|
`;
|
|
9952
|
-
var TagDivider =
|
|
10063
|
+
var TagDivider = import_styled_components68.default.div`
|
|
9953
10064
|
${({ $colorScheme }) => getColorScheme($colorScheme)};
|
|
9954
10065
|
border-left: 1px solid var(--wui-color-border);
|
|
9955
10066
|
display: flex;
|
|
9956
10067
|
height: 14px;
|
|
9957
10068
|
width: 1px;
|
|
9958
10069
|
`;
|
|
9959
|
-
var StyledRemoveButton =
|
|
10070
|
+
var StyledRemoveButton = import_styled_components68.default.button`
|
|
9960
10071
|
${({ $colorScheme }) => getColorScheme($colorScheme)};
|
|
9961
10072
|
all: unset;
|
|
9962
10073
|
cursor: pointer;
|
|
@@ -9984,7 +10095,7 @@ var StyledRemoveButton = import_styled_components67.default.button`
|
|
|
9984
10095
|
box-shadow: inset 0 0 0 2px var(--wui-color-border-secondary);
|
|
9985
10096
|
}
|
|
9986
10097
|
`;
|
|
9987
|
-
var StyledTag =
|
|
10098
|
+
var StyledTag = import_styled_components68.default.div`
|
|
9988
10099
|
${({ $colorScheme }) => getColorScheme($colorScheme)};
|
|
9989
10100
|
align-items: center;
|
|
9990
10101
|
background-color: var(--wui-color-bg-surface-secondary);
|
|
@@ -9997,47 +10108,47 @@ var StyledTag = import_styled_components67.default.div`
|
|
|
9997
10108
|
}
|
|
9998
10109
|
`;
|
|
9999
10110
|
var RemoveButton = ({ onClickRemove, onClickRemoveLabel, colorScheme }) => {
|
|
10000
|
-
if ((0,
|
|
10111
|
+
if ((0, import_type_guards40.isNil)(onClickRemove)) {
|
|
10001
10112
|
return null;
|
|
10002
10113
|
}
|
|
10003
|
-
if ((0,
|
|
10114
|
+
if ((0, import_type_guards40.isNil)(onClickRemoveLabel)) {
|
|
10004
10115
|
throw new Error(
|
|
10005
10116
|
"for accessibility, onClickRemoveLabel must be provided if onClickRemove is provided"
|
|
10006
10117
|
);
|
|
10007
10118
|
}
|
|
10008
|
-
return /* @__PURE__ */ (0,
|
|
10009
|
-
/* @__PURE__ */ (0,
|
|
10010
|
-
/* @__PURE__ */ (0,
|
|
10119
|
+
return /* @__PURE__ */ (0, import_jsx_runtime221.jsxs)(import_jsx_runtime221.Fragment, { children: [
|
|
10120
|
+
/* @__PURE__ */ (0, import_jsx_runtime221.jsx)(TagDivider, { $colorScheme: colorScheme }),
|
|
10121
|
+
/* @__PURE__ */ (0, import_jsx_runtime221.jsxs)(
|
|
10011
10122
|
StyledRemoveButton,
|
|
10012
10123
|
{
|
|
10013
10124
|
$colorScheme: colorScheme,
|
|
10014
10125
|
onClick: onClickRemove,
|
|
10015
10126
|
type: "button",
|
|
10016
10127
|
children: [
|
|
10017
|
-
/* @__PURE__ */ (0,
|
|
10128
|
+
/* @__PURE__ */ (0, import_jsx_runtime221.jsx)(
|
|
10018
10129
|
Icon,
|
|
10019
10130
|
{
|
|
10020
10131
|
size: "sm",
|
|
10021
10132
|
type: "close"
|
|
10022
10133
|
}
|
|
10023
10134
|
),
|
|
10024
|
-
/* @__PURE__ */ (0,
|
|
10135
|
+
/* @__PURE__ */ (0, import_jsx_runtime221.jsx)(ScreenReaderOnly, { children: onClickRemoveLabel })
|
|
10025
10136
|
]
|
|
10026
10137
|
}
|
|
10027
10138
|
)
|
|
10028
10139
|
] });
|
|
10029
10140
|
};
|
|
10030
|
-
var Tag = (0,
|
|
10141
|
+
var Tag = (0, import_react54.forwardRef)(
|
|
10031
10142
|
({ onClickRemove, colorScheme = "inherit", href, label, onClickRemoveLabel, ...otherProps }, ref) => {
|
|
10032
|
-
const labelProps = (0,
|
|
10033
|
-
return /* @__PURE__ */ (0,
|
|
10143
|
+
const labelProps = (0, import_type_guards40.isNotNil)(href) && (0, import_type_guards40.isNonEmptyString)(href) ? { href, as: "a" } : { as: "span" };
|
|
10144
|
+
return /* @__PURE__ */ (0, import_jsx_runtime221.jsxs)(
|
|
10034
10145
|
StyledTag,
|
|
10035
10146
|
{
|
|
10036
10147
|
ref,
|
|
10037
10148
|
$colorScheme: colorScheme,
|
|
10038
10149
|
...otherProps,
|
|
10039
10150
|
children: [
|
|
10040
|
-
/* @__PURE__ */ (0,
|
|
10151
|
+
/* @__PURE__ */ (0, import_jsx_runtime221.jsx)(
|
|
10041
10152
|
TagLabel,
|
|
10042
10153
|
{
|
|
10043
10154
|
...labelProps,
|
|
@@ -10045,7 +10156,7 @@ var Tag = (0, import_react50.forwardRef)(
|
|
|
10045
10156
|
children: label
|
|
10046
10157
|
}
|
|
10047
10158
|
),
|
|
10048
|
-
/* @__PURE__ */ (0,
|
|
10159
|
+
/* @__PURE__ */ (0, import_jsx_runtime221.jsx)(
|
|
10049
10160
|
RemoveButton,
|
|
10050
10161
|
{
|
|
10051
10162
|
colorScheme,
|
|
@@ -10061,26 +10172,26 @@ var Tag = (0, import_react50.forwardRef)(
|
|
|
10061
10172
|
Tag.displayName = "Tag";
|
|
10062
10173
|
|
|
10063
10174
|
// src/components/WistiaLogo/WistiaLogo.tsx
|
|
10064
|
-
var
|
|
10065
|
-
var
|
|
10066
|
-
var
|
|
10175
|
+
var import_styled_components69 = __toESM(require("styled-components"));
|
|
10176
|
+
var import_type_guards41 = require("@wistia/type-guards");
|
|
10177
|
+
var import_jsx_runtime222 = require("react/jsx-runtime");
|
|
10067
10178
|
var renderBrandmark = (brandmarkColor, iconOnly) => {
|
|
10068
10179
|
if (iconOnly) {
|
|
10069
|
-
return /* @__PURE__ */ (0,
|
|
10180
|
+
return /* @__PURE__ */ (0, import_jsx_runtime222.jsx)(
|
|
10070
10181
|
"g",
|
|
10071
10182
|
{
|
|
10072
10183
|
"data-testid": "ui-wistia-logo-brandmark",
|
|
10073
10184
|
fill: brandmarkColor,
|
|
10074
|
-
children: /* @__PURE__ */ (0,
|
|
10185
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime222.jsx)("path", { d: "M16.09 17.1h-5.2c-1.58 0-3.08.68-4.11 1.87L.21 26.53c4.78.25 9.78.25 13.3.25 18.31 0 20.89-11.27 20.89-16.55-1.59 1.93-6.06 6.87-18.32 6.87ZM32.14 0c-.08.92-.59 4.69-11.31 4.69-8.72 0-12.24 0-20.83-.17l6.44 7.4a6.657 6.657 0 0 0 4.96 2.3c2.13.03 5.05.06 5.53.06 11.01 0 17.19-5.05 17.19-9.89 0-2.01-.67-3.44-1.97-4.4Z" })
|
|
10075
10186
|
}
|
|
10076
10187
|
);
|
|
10077
10188
|
}
|
|
10078
|
-
return /* @__PURE__ */ (0,
|
|
10189
|
+
return /* @__PURE__ */ (0, import_jsx_runtime222.jsx)(
|
|
10079
10190
|
"g",
|
|
10080
10191
|
{
|
|
10081
10192
|
"data-testid": "ui-wistia-logo-brandmark",
|
|
10082
10193
|
fill: brandmarkColor,
|
|
10083
|
-
children: /* @__PURE__ */ (0,
|
|
10194
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime222.jsx)("path", { d: "M16.09 21.37h-5.2c-1.58 0-3.08.68-4.11 1.87L.21 30.8c4.78.25 9.78.25 13.3.25 18.31 0 20.89-11.27 20.89-16.55-1.59 1.93-6.06 6.87-18.32 6.87Zm16.05-17.1c-.08.92-.59 4.69-11.31 4.69-8.72 0-12.24 0-20.83-.17l6.44 7.4a6.657 6.657 0 0 0 4.96 2.3c2.13.03 5.05.06 5.53.06 11.01 0 17.19-5.05 17.19-9.89 0-2.01-.67-3.44-1.97-4.4Z" })
|
|
10084
10195
|
}
|
|
10085
10196
|
);
|
|
10086
10197
|
};
|
|
@@ -10088,12 +10199,12 @@ var renderLogotype = (logotypeColor, iconOnly) => {
|
|
|
10088
10199
|
if (iconOnly) {
|
|
10089
10200
|
return null;
|
|
10090
10201
|
}
|
|
10091
|
-
return /* @__PURE__ */ (0,
|
|
10202
|
+
return /* @__PURE__ */ (0, import_jsx_runtime222.jsx)(
|
|
10092
10203
|
"g",
|
|
10093
10204
|
{
|
|
10094
10205
|
"data-testid": "ui-wistia-logo-logotype",
|
|
10095
10206
|
fill: logotypeColor,
|
|
10096
|
-
children: /* @__PURE__ */ (0,
|
|
10207
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime222.jsx)("path", { d: "M70.16 8.66v15.18c0 1.68-.35 3.09-1.05 4.23a6.612 6.612 0 0 1-2.85 2.54c-1.19.55-2.52.82-4.01.82s-2.8-.28-4.01-.85a6.655 6.655 0 0 1-3.11-2.96c-.08.15-.16.29-.24.42a6.552 6.552 0 0 1-2.87 2.54c-1.2.56-2.54.85-4.01.85s-2.8-.27-3.94-.82a6.214 6.214 0 0 1-2.71-2.52c-.67-1.14-1.01-2.56-1.02-4.25l-.22-15.18h7.34V22.3c0 .82.19 1.37.56 1.67.39.28.85.42 1.38.42s1.02-.15 1.45-.45c.43-.3.65-.85.65-1.65V8.65h7.3v13.64c0 .8.22 1.35.65 1.65.43.3.91.45 1.45.45s.99-.14 1.36-.42c.39-.3.58-.85.58-1.67V8.66h7.34Zm2.45 0v22.26h7.34V8.66h-7.34Zm5.67-1.87c.61-.3 1.08-.71 1.42-1.25.36-.55.53-1.19.53-1.94s-.18-1.34-.53-1.89A3.43 3.43 0 0 0 78.28.44c-.59-.3-1.25-.45-1.98-.45s-1.42.15-2.02.45c-.59.3-1.07.72-1.42 1.27-.36.55-.53 1.18-.53 1.89 0 1.1.38 1.97 1.13 2.63.76.65 1.71.98 2.85.98.73 0 1.39-.14 1.98-.42Zm8.86 1.96c-1.42.4-2.6 1.11-3.54 2.14-.93 1.02-1.4 2.4-1.4 4.12 0 1.11.17 2.09.51 2.94.36.85.82 1.62 1.38 2.34.22.28.55.65.98 1.11.37.4.64.72.8.96.18.24.27.47.27.69 0 .5-.4.87-1.2 1.09-.8.21-1.62.31-2.47.31-.1-.01-.22-.02-.33-.02l1.02 6.94c.42.07.92.11 1.51.11 1.9 0 3.6-.28 5.1-.85 1.5-.56 2.68-1.42 3.54-2.56.88-1.14 1.31-2.55 1.31-4.23 0-.68-.07-1.31-.22-1.87-.13-.58-.32-1.09-.56-1.54a6.64 6.64 0 0 0-.8-1.27c-.3-.37-.74-.82-1.34-1.36-.39-.33-.67-.59-.85-.8-.18-.22-.27-.45-.27-.67 0-.46.26-.79.78-.98.53-.19 1.17-.29 1.91-.29.25 0 .51.01.78.04l-.71-6.88a10.4 10.4 0 0 0-1.56-.11c-1.66 0-3.21.21-4.65.62Zm19.54 15.71c-.99 0-1.71-.23-2.14-.69-.42-.47-.62-1.18-.62-2.11v-6.57h4.21V8.66h-4.21V3.38l-7.34 1.85V24.1c0 2.45.47 4.29 1.4 5.52.95 1.22 2.45 1.83 4.49 1.83.95 0 1.86-.07 2.74-.22.88-.13 1.62-.34 2.25-.62l1.38-6.3c-.55.1-1.27.16-2.16.16Zm4.13-15.8v22.26h7.34V8.66h-7.34Zm5.67-1.87c.61-.3 1.08-.71 1.42-1.25.36-.55.53-1.19.53-1.94s-.18-1.34-.53-1.89a3.43 3.43 0 0 0-1.42-1.27c-.59-.3-1.25-.45-1.98-.45s-1.42.15-2.02.45c-.59.3-1.07.72-1.42 1.27-.36.55-.53 1.18-.53 1.89 0 1.1.38 1.97 1.14 2.63.76.65 1.71.98 2.85.98.73 0 1.39-.14 1.98-.42Zm27.51 1.87v22.26h-7.34v-2.28c-.41.43-.85.83-1.34 1.19-1.44 1.07-3.12 1.6-5.05 1.6s-3.61-.52-5.1-1.56c-1.48-1.05-2.63-2.47-3.45-4.25-.82-1.78-1.22-3.73-1.22-5.85s.41-4.07 1.22-5.83c.82-1.78 1.97-3.19 3.45-4.23 1.48-1.05 3.18-1.58 5.1-1.58s3.61.53 5.05 1.6c.48.36.93.75 1.34 1.19V8.66h7.34Zm-7.1 11.11c0-.8-.19-1.53-.56-2.18-.37-.67-.88-1.19-1.54-1.58-.64-.39-1.34-.58-2.09-.58s-1.45.19-2.09.58c-.64.39-1.15.91-1.54 1.58-.37.67-.56 1.39-.56 2.18s.19 1.51.56 2.18c.39.67.9 1.19 1.54 1.58.64.39 1.34.58 2.09.58s1.45-.19 2.09-.58c.65-.39 1.16-.91 1.54-1.56.37-.67.56-1.4.56-2.2Z" })
|
|
10097
10208
|
}
|
|
10098
10209
|
);
|
|
10099
10210
|
};
|
|
@@ -10103,7 +10214,7 @@ var computedViewBox = (iconOnly) => {
|
|
|
10103
10214
|
}
|
|
10104
10215
|
return "0 0 144 31.47";
|
|
10105
10216
|
};
|
|
10106
|
-
var WistiaLogoComponent =
|
|
10217
|
+
var WistiaLogoComponent = import_styled_components69.default.svg`
|
|
10107
10218
|
height: ${({ height }) => `${height}px`};
|
|
10108
10219
|
|
|
10109
10220
|
/* ensure it will always fit on mobile */
|
|
@@ -10145,7 +10256,7 @@ var WistiaLogo = ({
|
|
|
10145
10256
|
};
|
|
10146
10257
|
const brandmarkColor = VARIANT_COLORS[variant].brandmark;
|
|
10147
10258
|
const logotypeColor = VARIANT_COLORS[variant].logotype;
|
|
10148
|
-
const Logo = /* @__PURE__ */ (0,
|
|
10259
|
+
const Logo = /* @__PURE__ */ (0, import_jsx_runtime222.jsxs)(
|
|
10149
10260
|
WistiaLogoComponent,
|
|
10150
10261
|
{
|
|
10151
10262
|
$hoverColor: hoverColor,
|
|
@@ -10155,16 +10266,200 @@ var WistiaLogo = ({
|
|
|
10155
10266
|
xmlns: "http://www.w3.org/2000/svg",
|
|
10156
10267
|
...otherProps,
|
|
10157
10268
|
children: [
|
|
10158
|
-
/* @__PURE__ */ (0,
|
|
10159
|
-
(0,
|
|
10269
|
+
/* @__PURE__ */ (0, import_jsx_runtime222.jsx)("title", { children: title }),
|
|
10270
|
+
(0, import_type_guards41.isNotNil)(description) ? /* @__PURE__ */ (0, import_jsx_runtime222.jsx)("desc", { children: description }) : null,
|
|
10160
10271
|
renderBrandmark(brandmarkColor, iconOnly),
|
|
10161
10272
|
renderLogotype(logotypeColor, iconOnly)
|
|
10162
10273
|
]
|
|
10163
10274
|
}
|
|
10164
10275
|
);
|
|
10165
|
-
return href !== void 0 ? /* @__PURE__ */ (0,
|
|
10276
|
+
return href !== void 0 ? /* @__PURE__ */ (0, import_jsx_runtime222.jsx)("a", { href, children: Logo }) : Logo;
|
|
10166
10277
|
};
|
|
10167
10278
|
WistiaLogo.displayName = "WistiaLogo";
|
|
10279
|
+
|
|
10280
|
+
// src/components/Select/Select.tsx
|
|
10281
|
+
var import_react_select = require("@radix-ui/react-select");
|
|
10282
|
+
var import_react55 = require("react");
|
|
10283
|
+
var import_styled_components70 = __toESM(require("styled-components"));
|
|
10284
|
+
var import_jsx_runtime223 = require("react/jsx-runtime");
|
|
10285
|
+
var StyledTrigger = (0, import_styled_components70.default)(import_react_select.Trigger)`
|
|
10286
|
+
${({ $colorScheme }) => getColorScheme($colorScheme)};
|
|
10287
|
+
--wui-select-color-bg: var(--wui-color-bg-surface);
|
|
10288
|
+
--wui-select-color-bg-disabled: var(--wui-color-bg-surface-disabled);
|
|
10289
|
+
--wui-select-color-border: var(--wui-color-border);
|
|
10290
|
+
--wui-select-color-border-focus: var(--wui-color-border-active);
|
|
10291
|
+
--wui-select-color-border-error: var(--wui-color-border-error);
|
|
10292
|
+
--wui-select-color-border-disabled: var(--wui-color-border-disabled);
|
|
10293
|
+
--wui-select-border-radius: var(--wui-border-radius-rounded);
|
|
10294
|
+
--wui-select-multiline-border-radius: var(--wui-border-radius-02);
|
|
10295
|
+
--wui-select-vertical-padding: var(--wui-space-02);
|
|
10296
|
+
--wui-select-horizontal-padding: var(--wui-space-03);
|
|
10297
|
+
--wui-select-placeholder: var(--wui-gray-10);
|
|
10298
|
+
--wui-select-color-text-error: var(--wui-color-text-error);
|
|
10299
|
+
|
|
10300
|
+
padding: var(--wui-select-vertical-padding) var(--wui-select-horizontal-padding);
|
|
10301
|
+
background-color: var(--wui-select-color-bg);
|
|
10302
|
+
border: 1px solid var(--wui-select-color-border);
|
|
10303
|
+
border-radius: var(--wui-select-border-radius);
|
|
10304
|
+
min-width: 200px;
|
|
10305
|
+
text-align: left;
|
|
10306
|
+
display: inline-flex;
|
|
10307
|
+
align-items: center;
|
|
10308
|
+
justify-content: space-between;
|
|
10309
|
+
width: ${({ $fullWidth = false }) => $fullWidth ? "100%" : "auto"};
|
|
10310
|
+
|
|
10311
|
+
&[aria-expanded='true'],
|
|
10312
|
+
&:focus {
|
|
10313
|
+
outline: 2px solid var(--wui-color-focus-ring);
|
|
10314
|
+
}
|
|
10315
|
+
|
|
10316
|
+
&[aria-invalid='true'] {
|
|
10317
|
+
outline: 2px solid var(--wui-select-color-border-error);
|
|
10318
|
+
color: var(--wui-select-color-text-error);
|
|
10319
|
+
}
|
|
10320
|
+
|
|
10321
|
+
&:disabled {
|
|
10322
|
+
border-color: var(--wui-color-bg-surface-disabled);
|
|
10323
|
+
background-color: var(--wui-color-bg-surface-disabled);
|
|
10324
|
+
}
|
|
10325
|
+
`;
|
|
10326
|
+
var StyledContent2 = (0, import_styled_components70.default)(import_react_select.Content)`
|
|
10327
|
+
--wui-select-content-border: var(--wui-color-border);
|
|
10328
|
+
--wui-select-content-bg: var(--wui-color-bg-surface);
|
|
10329
|
+
--wui-select-content-border-radius: var(--wui-border-radius-02);
|
|
10330
|
+
--wui-select-option-padding: var(--wui-space-02);
|
|
10331
|
+
--wui-select-option-inner-gap: var(--wui-space-03);
|
|
10332
|
+
--wui-select-option-bg-hover: var(--wui-color-bg-surface-hover);
|
|
10333
|
+
|
|
10334
|
+
overflow: hidden;
|
|
10335
|
+
transform: translateY(8px);
|
|
10336
|
+
background-color: var(--wui-select-content-bg);
|
|
10337
|
+
border: 1px solid var(--wui-select-content-border);
|
|
10338
|
+
border-radius: var(--wui-select-content-border-radius);
|
|
10339
|
+
padding: var(--wui-select-option-padding);
|
|
10340
|
+
min-width: 200px;
|
|
10341
|
+
`;
|
|
10342
|
+
var Select = (0, import_react55.forwardRef)(
|
|
10343
|
+
({
|
|
10344
|
+
colorScheme = "inherit",
|
|
10345
|
+
children,
|
|
10346
|
+
onChange = () => null,
|
|
10347
|
+
placeholder = "Select...",
|
|
10348
|
+
fullWidth = false,
|
|
10349
|
+
...props
|
|
10350
|
+
}, forwardedRef) => {
|
|
10351
|
+
const responsiveFullWidth = useResponsiveProp(fullWidth);
|
|
10352
|
+
return /* @__PURE__ */ (0, import_jsx_runtime223.jsxs)(
|
|
10353
|
+
import_react_select.Root,
|
|
10354
|
+
{
|
|
10355
|
+
...props,
|
|
10356
|
+
onValueChange: onChange,
|
|
10357
|
+
children: [
|
|
10358
|
+
/* @__PURE__ */ (0, import_jsx_runtime223.jsxs)(
|
|
10359
|
+
StyledTrigger,
|
|
10360
|
+
{
|
|
10361
|
+
ref: forwardedRef,
|
|
10362
|
+
$colorScheme: colorScheme,
|
|
10363
|
+
$fullWidth: responsiveFullWidth,
|
|
10364
|
+
...props,
|
|
10365
|
+
children: [
|
|
10366
|
+
/* @__PURE__ */ (0, import_jsx_runtime223.jsx)(import_react_select.Value, { placeholder }),
|
|
10367
|
+
/* @__PURE__ */ (0, import_jsx_runtime223.jsx)(
|
|
10368
|
+
Icon,
|
|
10369
|
+
{
|
|
10370
|
+
size: "md",
|
|
10371
|
+
type: "caret-down"
|
|
10372
|
+
}
|
|
10373
|
+
)
|
|
10374
|
+
]
|
|
10375
|
+
}
|
|
10376
|
+
),
|
|
10377
|
+
/* @__PURE__ */ (0, import_jsx_runtime223.jsx)(import_react_select.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime223.jsxs)(StyledContent2, { position: "popper", children: [
|
|
10378
|
+
/* @__PURE__ */ (0, import_jsx_runtime223.jsx)(import_react_select.ScrollUpButton, { children: /* @__PURE__ */ (0, import_jsx_runtime223.jsx)(Icon, { type: "caret-up" }) }),
|
|
10379
|
+
/* @__PURE__ */ (0, import_jsx_runtime223.jsx)(import_react_select.Viewport, { children }),
|
|
10380
|
+
/* @__PURE__ */ (0, import_jsx_runtime223.jsx)(import_react_select.ScrollDownButton, { children: /* @__PURE__ */ (0, import_jsx_runtime223.jsx)(Icon, { type: "caret-down" }) })
|
|
10381
|
+
] }) })
|
|
10382
|
+
]
|
|
10383
|
+
}
|
|
10384
|
+
);
|
|
10385
|
+
}
|
|
10386
|
+
);
|
|
10387
|
+
Select.displayName = "Select";
|
|
10388
|
+
|
|
10389
|
+
// src/components/Select/SelectOption.tsx
|
|
10390
|
+
var import_react_select2 = require("@radix-ui/react-select");
|
|
10391
|
+
var import_react56 = require("react");
|
|
10392
|
+
var import_styled_components71 = __toESM(require("styled-components"));
|
|
10393
|
+
var import_jsx_runtime224 = require("react/jsx-runtime");
|
|
10394
|
+
var StyledItem = (0, import_styled_components71.default)(import_react_select2.Item)`
|
|
10395
|
+
${variantStyleMap2.body3};
|
|
10396
|
+
display: flex;
|
|
10397
|
+
padding: var(--wui-select-option-padding);
|
|
10398
|
+
gap: var(--wui-select-option-inner-gap);
|
|
10399
|
+
font-size: var(--font-size);
|
|
10400
|
+
font-weight: var(--font-weight);
|
|
10401
|
+
border-radius: var(--wui-border-radius-01);
|
|
10402
|
+
|
|
10403
|
+
&:hover,
|
|
10404
|
+
&:focus-visible {
|
|
10405
|
+
background-color: var(--wui-select-option-bg-hover);
|
|
10406
|
+
outline: none;
|
|
10407
|
+
}
|
|
10408
|
+
|
|
10409
|
+
&[aria-disabled='true'] {
|
|
10410
|
+
color: var(--wui-color-text-disabled);
|
|
10411
|
+
}
|
|
10412
|
+
|
|
10413
|
+
&[aria-disabled='true']:hover {
|
|
10414
|
+
background-color: transparent;
|
|
10415
|
+
}
|
|
10416
|
+
`;
|
|
10417
|
+
var StyledIconContainer = import_styled_components71.default.span`
|
|
10418
|
+
width: 12px;
|
|
10419
|
+
`;
|
|
10420
|
+
var SelectOption = (0, import_react56.forwardRef)(
|
|
10421
|
+
({ children, ...props }, forwardedRef) => {
|
|
10422
|
+
return /* @__PURE__ */ (0, import_jsx_runtime224.jsxs)(
|
|
10423
|
+
StyledItem,
|
|
10424
|
+
{
|
|
10425
|
+
...props,
|
|
10426
|
+
ref: forwardedRef,
|
|
10427
|
+
children: [
|
|
10428
|
+
/* @__PURE__ */ (0, import_jsx_runtime224.jsx)(StyledIconContainer, { children: /* @__PURE__ */ (0, import_jsx_runtime224.jsx)(import_react_select2.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime224.jsx)(
|
|
10429
|
+
Icon,
|
|
10430
|
+
{
|
|
10431
|
+
size: "sm",
|
|
10432
|
+
type: "checkmark"
|
|
10433
|
+
}
|
|
10434
|
+
) }) }),
|
|
10435
|
+
/* @__PURE__ */ (0, import_jsx_runtime224.jsx)(import_react_select2.ItemText, { children })
|
|
10436
|
+
]
|
|
10437
|
+
}
|
|
10438
|
+
);
|
|
10439
|
+
}
|
|
10440
|
+
);
|
|
10441
|
+
SelectOption.displayName = "Option";
|
|
10442
|
+
|
|
10443
|
+
// src/components/Select/SelectOptionGroup.tsx
|
|
10444
|
+
var import_react_select3 = require("@radix-ui/react-select");
|
|
10445
|
+
var import_styled_components72 = __toESM(require("styled-components"));
|
|
10446
|
+
var import_jsx_runtime225 = require("react/jsx-runtime");
|
|
10447
|
+
var StyledLabel4 = (0, import_styled_components72.default)(import_react_select3.Label)`
|
|
10448
|
+
padding: var(--wui-select-option-padding);
|
|
10449
|
+
`;
|
|
10450
|
+
var SelectOptionGroup = ({ children, label, ...props }) => {
|
|
10451
|
+
return /* @__PURE__ */ (0, import_jsx_runtime225.jsxs)(import_react_select3.Group, { ...props, children: [
|
|
10452
|
+
/* @__PURE__ */ (0, import_jsx_runtime225.jsx)(StyledLabel4, { children: /* @__PURE__ */ (0, import_jsx_runtime225.jsx)(
|
|
10453
|
+
Text,
|
|
10454
|
+
{
|
|
10455
|
+
prominence: "secondary",
|
|
10456
|
+
variant: "body3",
|
|
10457
|
+
children: label
|
|
10458
|
+
}
|
|
10459
|
+
) }),
|
|
10460
|
+
children
|
|
10461
|
+
] });
|
|
10462
|
+
};
|
|
10168
10463
|
// Annotate the CommonJS export names for ESM import in node:
|
|
10169
10464
|
0 && (module.exports = {
|
|
10170
10465
|
ActionButton,
|
|
@@ -10179,6 +10474,9 @@ WistiaLogo.displayName = "WistiaLogo";
|
|
|
10179
10474
|
Checkbox,
|
|
10180
10475
|
CheckboxGroup,
|
|
10181
10476
|
CheckboxMenuItem,
|
|
10477
|
+
Collapsible,
|
|
10478
|
+
CollapsibleContent,
|
|
10479
|
+
CollapsibleTrigger,
|
|
10182
10480
|
ColorSchemeWrapper,
|
|
10183
10481
|
DataCard,
|
|
10184
10482
|
DataCardTrend,
|