@wistia/ui 0.18.18-beta.60c739ab.0edacec → 0.18.18-beta.ab8816f1.f832860

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 CHANGED
@@ -1,6 +1,6 @@
1
1
 
2
2
  /*
3
- * @license @wistia/ui v0.18.18-beta.60c739ab.0edacec
3
+ * @license @wistia/ui v0.18.18-beta.ab8816f1.f832860
4
4
  *
5
5
  * Copyright (c) 2024-2025, Wistia, Inc. and its affiliates.
6
6
  *
@@ -14252,7 +14252,7 @@ var DataCardInner = ({
14252
14252
  StyledLabel3,
14253
14253
  {
14254
14254
  "data-wui-data-card-skeleton": isLoading,
14255
- renderAs: "span",
14255
+ renderAs: "dt",
14256
14256
  variant: "heading6",
14257
14257
  children: label
14258
14258
  }
@@ -14261,7 +14261,7 @@ var DataCardInner = ({
14261
14261
  StyledValue,
14262
14262
  {
14263
14263
  "data-wui-data-card-skeleton": isLoading,
14264
- renderAs: "span",
14264
+ renderAs: "dd",
14265
14265
  variant: "heading3",
14266
14266
  children: value
14267
14267
  }
@@ -14314,16 +14314,9 @@ var import_styled_components78 = require("styled-components");
14314
14314
  var import_jsx_runtime279 = require("react/jsx-runtime");
14315
14315
  var StyledDataCards = (0, import_styled_components78.styled)(Box)`
14316
14316
  ${({ $colorScheme }) => getColorScheme($colorScheme)};
14317
- --wui-data-cards-column-count: ${({ $columns }) => $columns === "auto" ? void 0 : $columns};
14318
- --wui-data-cards-total-column-gap-width: calc(var(--wui-data-cards-column-count) - 1) *
14319
- var(--wui-space-02);
14320
- --wui-data-cards-column-width: calc(
14321
- (100% - var(--wui-data-cards-total-column-gap-width)) / var(--wui-data-cards-column-count)
14322
- );
14323
14317
 
14324
14318
  > * {
14325
14319
  min-width: 120px;
14326
- flex-basis: var(--wui-data-cards-column-width, 0);
14327
14320
  max-width: ${({ $cardMaxWidth }) => $cardMaxWidth};
14328
14321
  }
14329
14322
  `;
@@ -14331,22 +14324,19 @@ var DataCards = ({
14331
14324
  children,
14332
14325
  cardMaxWidth = "none",
14333
14326
  colorScheme = "inherit",
14334
- columns = "auto",
14335
14327
  ...props
14336
14328
  }) => {
14337
- const responsiveCardMaxWidth = useResponsiveProp(cardMaxWidth);
14338
- const responsiveColumns = useResponsiveProp(columns);
14339
14329
  return /* @__PURE__ */ (0, import_jsx_runtime279.jsx)(
14340
14330
  StyledDataCards,
14341
14331
  {
14342
14332
  ...props,
14343
- $cardMaxWidth: responsiveCardMaxWidth,
14333
+ $cardMaxWidth: cardMaxWidth,
14344
14334
  $colorScheme: colorScheme,
14345
- $columns: responsiveColumns,
14346
14335
  alignItems: "stretch",
14347
14336
  direction: "row",
14348
14337
  fill: "horizontal",
14349
14338
  gap: "space-02",
14339
+ renderAs: "dl",
14350
14340
  wrapItems: true,
14351
14341
  children
14352
14342
  }
@@ -15240,8 +15230,20 @@ var import_react73 = require("react");
15240
15230
  var import_styled_components87 = require("styled-components");
15241
15231
  var import_type_guards49 = require("@wistia/type-guards");
15242
15232
  var import_jsx_runtime293 = require("react/jsx-runtime");
15233
+ var inlineErrorStyles = import_styled_components87.css`
15234
+ grid-template-rows: 1fr auto;
15235
+ grid-template-areas: 'label-description input' '. error';
15236
+ `;
15237
+ var inlineBaseGridAreaStyles = import_styled_components87.css`
15238
+ grid-template-rows: 1fr;
15239
+ grid-template-areas: 'label-description input';
15240
+ `;
15241
+ var blockGridErrorStyles = import_styled_components87.css`
15242
+ grid-template-rows: auto 1fr auto;
15243
+ grid-template-areas: 'label-description' 'input' 'error';
15244
+ `;
15243
15245
  var StyledFormField = import_styled_components87.styled.div`
15244
- --form-field-spacing: var(--wui-space-01);
15246
+ --form-field-spacing: var(--wui-space-02);
15245
15247
  --form-field-spacing-inline: var(--wui-space-02);
15246
15248
  --form-field-error-color: var(--wui-color-text-secondary-error);
15247
15249
 
@@ -15255,21 +15257,28 @@ var StyledFormField = import_styled_components87.styled.div`
15255
15257
  &[data-label-position='inline-compact'] {
15256
15258
  gap: var(--form-field-spacing-inline);
15257
15259
  grid-template-columns: auto 1fr;
15258
- grid-template-rows: 1fr auto;
15260
+ ${inlineBaseGridAreaStyles}
15261
+ ${({ $hasError }) => $hasError && inlineErrorStyles}
15259
15262
  }
15260
15263
 
15261
15264
  &[data-label-position='inline'] {
15262
15265
  gap: var(--form-field-spacing-inline);
15263
15266
  grid-template-columns: minmax(auto, 1fr) 1fr;
15264
- grid-template-rows: 1fr auto;
15267
+ ${inlineBaseGridAreaStyles}
15268
+ ${({ $hasError }) => $hasError && inlineErrorStyles}
15265
15269
  }
15266
15270
 
15267
15271
  &[data-label-position='block'] {
15268
15272
  gap: var(--form-field-spacing);
15269
15273
  grid-template-columns: 1fr;
15270
- grid-template-rows: 1fr;
15274
+ grid-template-rows: auto 1fr;
15275
+ grid-template-areas: 'label-description' 'input';
15276
+ ${({ $hasError }) => $hasError && blockGridErrorStyles}
15271
15277
  }
15272
15278
  `;
15279
+ var ErrorText = (0, import_styled_components87.styled)(Text)`
15280
+ grid-area: error;
15281
+ `;
15273
15282
  var StyledErrorList = import_styled_components87.styled.ul`
15274
15283
  margin: 0;
15275
15284
  padding: 0;
@@ -15277,13 +15286,14 @@ var StyledErrorList = import_styled_components87.styled.ul`
15277
15286
  display: flex;
15278
15287
  flex-direction: column;
15279
15288
  gap: var(--wui-space-01);
15289
+ grid-area: error;
15280
15290
  `;
15281
15291
  var ErrorMessages = ({ errors, id }) => {
15282
15292
  const isErrorArray = (0, import_type_guards49.isArray)(errors);
15283
15293
  const isMultipleErrors = isErrorArray && errors.length > 1;
15284
15294
  if (!isErrorArray) {
15285
15295
  return /* @__PURE__ */ (0, import_jsx_runtime293.jsx)(
15286
- Text,
15296
+ ErrorText,
15287
15297
  {
15288
15298
  colorScheme: "error",
15289
15299
  id,
@@ -15296,7 +15306,7 @@ var ErrorMessages = ({ errors, id }) => {
15296
15306
  }
15297
15307
  if (!isMultipleErrors) {
15298
15308
  return /* @__PURE__ */ (0, import_jsx_runtime293.jsx)(
15299
- Text,
15309
+ ErrorText,
15300
15310
  {
15301
15311
  colorScheme: "error",
15302
15312
  id,
@@ -15341,12 +15351,16 @@ var FormField = ({
15341
15351
  const descriptionId = `${computedId}-description`;
15342
15352
  const errorId = `${computedId}-error`;
15343
15353
  const ariaDescribedby = [descriptionId, errorId].filter(Boolean).join(" ") || void 0;
15354
+ const hasDescription = (0, import_type_guards49.isNotNil)(description);
15355
+ const hasError = (0, import_type_guards49.isNotNil)(computedError);
15356
+ const shouldRenderLabelDescriptionWrapper = !isIntegratedLabel || hasDescription;
15344
15357
  let childProps = {
15345
15358
  name,
15346
15359
  id: computedId,
15347
15360
  label: isIntegratedLabel ? label : void 0,
15348
15361
  "aria-describedby": ariaDescribedby,
15349
- "aria-invalid": (0, import_type_guards49.isNotNil)(computedError),
15362
+ "aria-invalid": hasError,
15363
+ style: { gridArea: "input" },
15350
15364
  ...props
15351
15365
  };
15352
15366
  if ((0, import_type_guards49.isUndefined)(value) && (0, import_type_guards49.isNotUndefined)(defaultValue)) {
@@ -15376,28 +15390,38 @@ var FormField = ({
15376
15390
  StyledFormField,
15377
15391
  {
15378
15392
  ...props,
15393
+ $hasError: hasError,
15379
15394
  "data-label-position": labelPosition ?? formState.labelPosition,
15380
15395
  children: [
15381
- !isIntegratedLabel && /* @__PURE__ */ (0, import_jsx_runtime293.jsx)(
15382
- Label,
15396
+ shouldRenderLabelDescriptionWrapper ? /* @__PURE__ */ (0, import_jsx_runtime293.jsxs)(
15397
+ Stack,
15383
15398
  {
15384
- htmlFor: computedId,
15385
- required,
15386
- children: label
15399
+ direction: "vertical",
15400
+ gap: "space-01",
15401
+ style: {
15402
+ gridArea: "label-description"
15403
+ },
15404
+ children: [
15405
+ !isIntegratedLabel && /* @__PURE__ */ (0, import_jsx_runtime293.jsx)(
15406
+ Label,
15407
+ {
15408
+ htmlFor: computedId,
15409
+ required,
15410
+ children: label
15411
+ }
15412
+ ),
15413
+ hasDescription ? /* @__PURE__ */ (0, import_jsx_runtime293.jsx)(FormControlLabelDescription, { id: descriptionId, children: description }) : null
15414
+ ]
15387
15415
  }
15388
- ),
15389
- (0, import_type_guards49.isNotNil)(description) ? /* @__PURE__ */ (0, import_jsx_runtime293.jsx)(FormControlLabelDescription, { id: descriptionId, children: description }) : null,
15416
+ ) : null,
15390
15417
  (0, import_react73.cloneElement)(children, childProps),
15391
- (0, import_type_guards49.isNotNil)(computedError) ? /* @__PURE__ */ (0, import_jsx_runtime293.jsxs)(import_jsx_runtime293.Fragment, { children: [
15392
- /* @__PURE__ */ (0, import_jsx_runtime293.jsx)("div", {}),
15393
- /* @__PURE__ */ (0, import_jsx_runtime293.jsx)(
15394
- ErrorMessages,
15395
- {
15396
- errors: computedError,
15397
- id: errorId
15398
- }
15399
- )
15400
- ] }) : null
15418
+ hasError ? /* @__PURE__ */ (0, import_jsx_runtime293.jsx)(
15419
+ ErrorMessages,
15420
+ {
15421
+ errors: computedError,
15422
+ id: errorId
15423
+ }
15424
+ ) : null
15401
15425
  ]
15402
15426
  }
15403
15427
  );