@wistia/ui 0.13.11 → 0.13.12-beta.4daf4b25.f2049e2

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.13.11
3
+ * @license @wistia/ui v0.13.12-beta.4daf4b25.f2049e2
4
4
  *
5
5
  * Copyright (c) 2024-2025, Wistia, Inc. and its affiliates.
6
6
  *
@@ -1676,6 +1676,7 @@ var minutesInHour = 60;
1676
1676
  var halfAnHourInMinutes = 30;
1677
1677
  var hoursInDay = 24;
1678
1678
  var milisecondsInSecond = 1e3;
1679
+ var daysInWeek = 7;
1679
1680
  var millisecondsInDay = hoursInDay * minutesInHour * secondsInMinute * milisecondsInSecond;
1680
1681
 
1681
1682
  // src/helpers/dateTime/buildTimeDuration.ts
@@ -1819,7 +1820,7 @@ var dateTimeRounded = (dateTime2, toISOString = true) => {
1819
1820
 
1820
1821
  // src/helpers/dateTime/dateTimeString.ts
1821
1822
  var import_type_guards3 = require("@wistia/type-guards");
1822
- var dateTimeString = (date, { timeZone = defaultTimeZone } = {}) => {
1823
+ var dateTimeString = (date, { timeZone = defaultTimeZone, omitYear = false } = {}) => {
1823
1824
  if ((0, import_type_guards3.isNil)(date)) {
1824
1825
  return "";
1825
1826
  }
@@ -1828,11 +1829,15 @@ var dateTimeString = (date, { timeZone = defaultTimeZone } = {}) => {
1828
1829
  return "";
1829
1830
  }
1830
1831
  try {
1831
- return new Intl.DateTimeFormat(defaultLocales, {
1832
- dateStyle: "medium",
1833
- timeStyle: "short",
1832
+ const baseOptions = {
1833
+ month: "short",
1834
+ day: "numeric",
1835
+ hour: "numeric",
1836
+ minute: "2-digit",
1834
1837
  timeZone
1835
- }).format(formattedDate);
1838
+ };
1839
+ const options = omitYear ? baseOptions : { ...baseOptions, year: "numeric" };
1840
+ return formattedDate.toLocaleDateString(defaultLocales, options);
1836
1841
  } catch (error) {
1837
1842
  console.error(error);
1838
1843
  return "";
@@ -1983,13 +1988,12 @@ var differenceInCalendarDays = (dateLeft, dateRight) => {
1983
1988
  };
1984
1989
 
1985
1990
  // src/helpers/dateTime/timeAgoString.ts
1986
- var timeAgoString = (date, { nowAnchor = /* @__PURE__ */ new Date() } = {}) => {
1987
- if (isInvalidDate(date)) {
1988
- return "";
1989
- }
1991
+ var timeAgoString = (date, { nowAnchor = /* @__PURE__ */ new Date(), includeTime = true } = {}) => {
1992
+ if (isInvalidDate(date)) return "";
1990
1993
  const minutesAgo = (nowAnchor.valueOf() - date.valueOf()) / (secondsInMinute * milisecondsInSecond);
1991
1994
  const minutesAgoRounded = Math.round(minutesAgo);
1992
1995
  const differenceInDays = differenceInCalendarDays(nowAnchor, date);
1996
+ const isSameYear = date.getFullYear() === nowAnchor.getFullYear();
1993
1997
  if (minutesAgo < 0) {
1994
1998
  return dateTimeString(date);
1995
1999
  }
@@ -2003,20 +2007,15 @@ var timeAgoString = (date, { nowAnchor = /* @__PURE__ */ new Date() } = {}) => {
2003
2007
  return `${minutesAgoRounded} minutes ago`;
2004
2008
  }
2005
2009
  if (differenceInDays === 0) {
2006
- return `Today, ${Intl.DateTimeFormat(defaultLocales, { timeStyle: "short" }).format(date)}`;
2010
+ return includeTime ? `Today, ${Intl.DateTimeFormat(defaultLocales, { hour: "numeric", minute: "2-digit" }).format(date)}` : "Today";
2007
2011
  }
2008
2012
  if (differenceInDays === 1) {
2009
- return `Yesterday, ${Intl.DateTimeFormat(defaultLocales, { timeStyle: "short" }).format(date)}`;
2013
+ return includeTime ? `Yesterday, ${Intl.DateTimeFormat(defaultLocales, { hour: "numeric", minute: "2-digit" }).format(date)}` : "Yesterday";
2010
2014
  }
2011
- if (date.getFullYear() === nowAnchor.getFullYear()) {
2012
- return Intl.DateTimeFormat(defaultLocales, {
2013
- day: "numeric",
2014
- month: "short",
2015
- hour: "numeric",
2016
- minute: "2-digit"
2017
- }).format(date);
2015
+ if (differenceInDays < daysInWeek && !includeTime) {
2016
+ return `on ${dayOfWeekString(date)}`;
2018
2017
  }
2019
- return dateTimeString(date);
2018
+ return includeTime ? dateTimeString(date, { omitYear: isSameYear }) : dateOnlyString(date, { omitYear: isSameYear });
2020
2019
  };
2021
2020
 
2022
2021
  // src/helpers/dateTime/timeOnlyString.ts
@@ -7184,10 +7183,26 @@ var iconSizeMap = {
7184
7183
  xl: "32",
7185
7184
  xxl: "48"
7186
7185
  };
7186
+ var iconInlineStyle = import_styled_components19.css`
7187
+ [data-wui-icon-inline] {
7188
+ --wui-icon-inline-size: 0.8em;
7189
+ --wui-icon-inline-offset: 0.05em;
7190
+ --wui-icon-vertical-align: none;
7191
+
7192
+ top: var(--wui-icon-inline-offset);
7193
+ position: relative;
7194
+ }
7195
+ `;
7187
7196
  var StyledIcon = import_styled_components19.default.svg`
7188
7197
  ${({ $colorScheme }) => getColorScheme($colorScheme ?? "inherit")}
7198
+ --wui-icon-size: var(--wui-icon-inline-size, ${({ $height }) => $height}px);
7199
+ --wui-icon-vertical-align: middle;
7200
+
7201
+ height: var(--wui-icon-size);
7202
+ width: var(--wui-icon-size);
7189
7203
  `;
7190
7204
  var Icon = ({
7205
+ useInlineStyles = true,
7191
7206
  invertColor,
7192
7207
  colorScheme = "inherit",
7193
7208
  size = "lg",
@@ -7209,7 +7224,7 @@ var Icon = ({
7209
7224
  }
7210
7225
  const IconElement = iconMap[type];
7211
7226
  const defaultStyle = {
7212
- verticalAlign: "middle",
7227
+ verticalAlign: "var(--wui-icon-vertical-align)",
7213
7228
  ...style
7214
7229
  };
7215
7230
  const iconColor = invertColor ? "var(--wui-color-icon-on-fill)" : "var(--wui-color-icon)";
@@ -7217,13 +7232,14 @@ var Icon = ({
7217
7232
  StyledIcon,
7218
7233
  {
7219
7234
  $colorScheme: colorScheme,
7235
+ $height: iconSizeMap[responsiveSize],
7236
+ $width: iconSizeMap[responsiveSize],
7220
7237
  "aria-hidden": "true",
7221
7238
  as: IconElement,
7222
- height: `${iconSizeMap[responsiveSize]}px`,
7239
+ "data-wui-icon-inline": useInlineStyles ? true : void 0,
7223
7240
  role: "presentation",
7224
7241
  style: defaultStyle,
7225
7242
  viewBox: "0 0 24 24",
7226
- width: `${iconSizeMap[responsiveSize]}px`,
7227
7243
  xmlns: "http://www.w3.org/2000/svg",
7228
7244
  ...props,
7229
7245
  color: iconColor
@@ -8247,6 +8263,8 @@ var StyledHeading = import_styled_components28.default.div`
8247
8263
  text-align: ${$align};
8248
8264
  `}
8249
8265
  margin: 0;
8266
+
8267
+ ${iconInlineStyle}
8250
8268
  `;
8251
8269
  var variantElementMap = {
8252
8270
  hero: DEFAULT_ELEMENT2,
@@ -8428,6 +8446,7 @@ var StyledText = import_styled_components29.default.div`
8428
8446
  return "var(--wui-color-text)";
8429
8447
  }};
8430
8448
 
8449
+ ${iconInlineStyle}
8431
8450
  color: var(--text-color);
8432
8451
  font-family: var(--font-family);
8433
8452
  font-size: var(--font-size);
@@ -8654,21 +8673,6 @@ var StyledBanner = import_styled_components32.default.div`
8654
8673
 
8655
8674
  ${({ $colorScheme }) => getColorScheme($colorScheme)};
8656
8675
  `;
8657
- var IconWrapper = (0, import_styled_components32.default)(Box)`
8658
- --wui-banner-icon-size: var(--font-size, 24px);
8659
-
8660
- ${({ $iconPosition }) => $iconPosition === "inline" && import_styled_components32.css`
8661
- display: inline-block;
8662
- vertical-align: text-bottom;
8663
- margin-right: calc(var(--wui-banner-icon-size) / 3);
8664
- `}
8665
-
8666
- svg {
8667
- color: var(--wui-color-icon);
8668
- width: var(--wui-banner-icon-size);
8669
- height: var(--wui-banner-icon-size);
8670
- }
8671
- `;
8672
8676
  var Banner = ({
8673
8677
  bodyText,
8674
8678
  colorScheme = "inherit",
@@ -8731,9 +8735,8 @@ var Banner = ({
8731
8735
  style: { padding: "var(--wui-banner-padding)" },
8732
8736
  children: [
8733
8737
  iconPosition === "above" && /* @__PURE__ */ (0, import_jsx_runtime208.jsx)(
8734
- IconWrapper,
8738
+ Box,
8735
8739
  {
8736
- $iconPosition: "above",
8737
8740
  alignSelf: "stretch",
8738
8741
  direction: "column",
8739
8742
  justifyContent: "center",
@@ -8749,7 +8752,10 @@ var Banner = ({
8749
8752
  justifyContent: "center",
8750
8753
  children: [
8751
8754
  (0, import_type_guards24.isNotNil)(headingText) ? /* @__PURE__ */ (0, import_jsx_runtime208.jsxs)(Heading, { variant: headingVariant, children: [
8752
- iconPosition === "inline" && /* @__PURE__ */ (0, import_jsx_runtime208.jsx)(IconWrapper, { $iconPosition: "inline", children: icon }),
8755
+ iconPosition === "inline" && /* @__PURE__ */ (0, import_jsx_runtime208.jsxs)(import_jsx_runtime208.Fragment, { children: [
8756
+ icon,
8757
+ " "
8758
+ ] }),
8753
8759
  headingText
8754
8760
  ] }) : null,
8755
8761
  /* @__PURE__ */ (0, import_jsx_runtime208.jsx)(Text, { variant: textVariant, children: bodyText })
@@ -10066,7 +10072,7 @@ var ColorPickerProvider = ({
10066
10072
  }),
10067
10073
  [colorForComparison, minimumContrastRatio, opacityForContrastCalculation]
10068
10074
  );
10069
- const valueAsHsv = shouldEnforceMinContrast ? getAccessibleDerivativeColor((0, import_fn4.formatHex)(nonDerivedValueAsHsv)) : nonDerivedValueAsHsv;
10075
+ const valueAsHsv = shouldEnforceMinContrast ? getAccessibleDerivativeColor(nonDerivedValueAsHsv) : nonDerivedValueAsHsv;
10070
10076
  const currentContrastRatio = calculateContrast({
10071
10077
  backgroundColor: valueAsHex,
10072
10078
  foregroundColor: colorForComparison,