@wistia/ui 0.8.3-beta.e5caab02.ee46837 → 0.8.3

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.d.mts CHANGED
@@ -1160,9 +1160,9 @@ type EditableHeadingProps = {
1160
1160
  ariaLabel?: string;
1161
1161
  /**
1162
1162
  * Force editing state for testing purposes
1163
- * @ignore
1163
+ *
1164
1164
  */
1165
- __forceEditing?: boolean;
1165
+ forceEditing?: boolean;
1166
1166
  /**
1167
1167
  * When true, prevents the heading from entering edit mode
1168
1168
  * @default false
@@ -1175,7 +1175,7 @@ type EditableHeadingProps = {
1175
1175
  * an accessible button that enables editing mode. The component handles empty values, keyboard
1176
1176
  * navigation (Enter to save, Escape to cancel), and provides callbacks for value and state changes.
1177
1177
  */
1178
- declare const EditableHeading: ({ children, onValueChange, onEditingChange, tooltipText, ariaLabel, __forceEditing, editingDisabled, }: EditableHeadingProps) => JSX.Element;
1178
+ declare const EditableHeading: ({ children, onValueChange, onEditingChange, tooltipText, ariaLabel, forceEditing, editingDisabled, }: EditableHeadingProps) => JSX.Element;
1179
1179
 
1180
1180
  type EllipsisProps = ComponentPropsWithoutRef<'span'> & {
1181
1181
  /**
package/dist/index.d.ts CHANGED
@@ -1160,9 +1160,9 @@ type EditableHeadingProps = {
1160
1160
  ariaLabel?: string;
1161
1161
  /**
1162
1162
  * Force editing state for testing purposes
1163
- * @ignore
1163
+ *
1164
1164
  */
1165
- __forceEditing?: boolean;
1165
+ forceEditing?: boolean;
1166
1166
  /**
1167
1167
  * When true, prevents the heading from entering edit mode
1168
1168
  * @default false
@@ -1175,7 +1175,7 @@ type EditableHeadingProps = {
1175
1175
  * an accessible button that enables editing mode. The component handles empty values, keyboard
1176
1176
  * navigation (Enter to save, Escape to cancel), and provides callbacks for value and state changes.
1177
1177
  */
1178
- declare const EditableHeading: ({ children, onValueChange, onEditingChange, tooltipText, ariaLabel, __forceEditing, editingDisabled, }: EditableHeadingProps) => JSX.Element;
1178
+ declare const EditableHeading: ({ children, onValueChange, onEditingChange, tooltipText, ariaLabel, forceEditing, editingDisabled, }: EditableHeadingProps) => JSX.Element;
1179
1179
 
1180
1180
  type EllipsisProps = ComponentPropsWithoutRef<'span'> & {
1181
1181
  /**
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
 
2
2
  /*
3
- * @license @wistia/ui v0.8.3-beta.e5caab02.ee46837
3
+ * @license @wistia/ui v0.8.3
4
4
  *
5
5
  * Copyright (c) 2024-2025, Wistia, Inc. and its affiliates.
6
6
  *
@@ -9022,7 +9022,6 @@ import { isNil as isNil13, isNotNil as isNotNil16, isRecord as isRecord4 } from
9022
9022
  // src/css/sharedStyles/inputCssVariables.ts
9023
9023
  import { css as css24 } from "styled-components";
9024
9024
  var inputCssVariables = css24`
9025
- /* Colors */
9026
9025
  --wui-input-color-bg: var(--wui-color-bg-surface);
9027
9026
  --wui-input-color-bg-disabled: var(--wui-color-bg-surface-disabled);
9028
9027
  --wui-input-color-border: var(--wui-color-border-secondary);
@@ -9030,20 +9029,13 @@ var inputCssVariables = css24`
9030
9029
  --wui-input-color-border-error: var(--wui-color-invalid-indicator);
9031
9030
  --wui-input-color-border-disabled: var(--wui-color-border-disabled);
9032
9031
  --wui-input-color-text: var(--wui-color-text);
9033
-
9034
- /* Border */
9035
9032
  --wui-input-border-radius: var(--wui-border-radius-03);
9036
9033
  --wui-input-multiline-border-radius: var(--wui-border-radius-02);
9037
-
9038
- /* Padding */
9039
9034
  --wui-input-vertical-padding: var(--wui-space-02);
9040
9035
  --wui-input-horizontal-padding: var(--wui-space-03);
9041
-
9042
- /* Typography */
9043
9036
  --wui-input-placeholder: var(--wui-gray-10);
9044
9037
  --wui-input-font-size: var(--wui-typography-body-3-size);
9045
9038
  --wui-input-line-height: 16px;
9046
- --wui-input-font-weight: var(--wui-typography-weight-body);
9047
9039
  `;
9048
9040
 
9049
9041
  // src/components/Input/Input.tsx
@@ -9060,7 +9052,7 @@ var inputStyles = css25`
9060
9052
  border-radius: var(--wui-input-border-radius);
9061
9053
  font-size: var(--wui-input-font-size);
9062
9054
  line-height: var(--wui-input-line-height);
9063
- font-weight: var(--wui-input-font-weight);
9055
+ font-weight: var(--wui-typography-weight-body);
9064
9056
  color: var(--wui-input-color-text);
9065
9057
 
9066
9058
  &::placeholder {
@@ -9230,12 +9222,15 @@ var StyledInput = styled31(Input)`
9230
9222
  min-height: unset;
9231
9223
  }
9232
9224
 
9233
- && {
9234
- --wui-input-font-size: var(--wui-typography-heading-1-size);
9235
- --wui-input-font-weight: var(--wui-typography-heading-1-weight);
9236
- --wui-input-line-height: var(--wui-typography-heading-1-line-height);
9225
+ resize: vertical;
9226
+ font-size: var(--wui-typography-heading-1-size);
9227
+ font-weight: var(--wui-typography-heading-1-weight);
9228
+ line-height: var(--wui-typography-heading-1-line-height);
9229
+ font-family: var(--wui-typography-heading-1-family);
9230
+ outline: 2px solid var(--wui-color-focus-ring);
9231
+ outline-offset: -2px;
9237
9232
 
9238
- font-family: var(--wui-typography-heading-1-family);
9233
+ && {
9239
9234
  width: 100%;
9240
9235
  padding: var(--wui-space-02);
9241
9236
  border: none;
@@ -9266,7 +9261,7 @@ var EditableHeading = ({
9266
9261
  onEditingChange,
9267
9262
  tooltipText = "Click to edit title",
9268
9263
  ariaLabel = "Edit title",
9269
- __forceEditing = false,
9264
+ forceEditing = false,
9270
9265
  editingDisabled = false
9271
9266
  }) => {
9272
9267
  const [isEditing, setIsEditing] = useState6(false);
@@ -9319,7 +9314,7 @@ var EditableHeading = ({
9319
9314
  if (editingDisabled) {
9320
9315
  return HeadingComponent2;
9321
9316
  }
9322
- if (isEditing || __forceEditing) {
9317
+ if (isEditing || forceEditing) {
9323
9318
  return /* @__PURE__ */ jsx220(
9324
9319
  StyledInput,
9325
9320
  {
@@ -11042,42 +11037,37 @@ import styled52, { css as css31 } from "styled-components";
11042
11037
  import { Root as ToggleGroupRoot } from "@radix-ui/react-toggle-group";
11043
11038
  import { isNil as isNil14 } from "@wistia/type-guards";
11044
11039
 
11045
- // src/components/SegmentedControl/useSelectedItemStyle.tsx
11040
+ // src/components/SegmentedControl/useSelectedItemMeasurements.tsx
11046
11041
  import { createContext as createContext6, useContext as useContext5, useMemo as useMemo8, useState as useState10 } from "react";
11047
11042
  import { jsx as jsx247 } from "react/jsx-runtime";
11048
- var SelectedItemStyleContext = createContext6(null);
11049
- var SelectedItemStyleProvider = ({
11043
+ var SelectedItemMeasurementsContext = createContext6(
11044
+ null
11045
+ );
11046
+ var SelectedItemMeasurementsProvider = ({
11050
11047
  children
11051
11048
  }) => {
11052
11049
  const [selectedItemMeasurements, setSelectedItemMeasurements] = useState10(null);
11053
- const selectedItemIndicatorStyle = useMemo8(
11054
- () => selectedItemMeasurements != null ? {
11055
- height: `${selectedItemMeasurements.offsetHeight}px`,
11056
- transform: `translateX(${selectedItemMeasurements.offsetLeft}px) translateY(-50%)`,
11057
- width: `${selectedItemMeasurements.offsetWidth}px`
11058
- } : {
11059
- transform: "translateY(-50%)"
11060
- },
11061
- [selectedItemMeasurements]
11062
- );
11063
11050
  const contextValue = useMemo8(
11064
11051
  () => ({
11065
11052
  setSelectedItemMeasurements,
11066
- selectedItemIndicatorStyle
11053
+ selectedItemMeasurements
11067
11054
  }),
11068
- [selectedItemIndicatorStyle]
11055
+ [selectedItemMeasurements]
11069
11056
  );
11070
- return /* @__PURE__ */ jsx247(SelectedItemStyleContext.Provider, { value: contextValue, children });
11057
+ return /* @__PURE__ */ jsx247(SelectedItemMeasurementsContext.Provider, { value: contextValue, children });
11071
11058
  };
11072
- var useSelectedItemStyle = () => {
11073
- const context = useContext5(SelectedItemStyleContext);
11059
+ var useSelectedItemMeasurements = () => {
11060
+ const context = useContext5(SelectedItemMeasurementsContext);
11074
11061
  if (context === null) {
11075
- throw new Error("useSelectedItemStyle must be used within a SelectedItemStyleProvider");
11062
+ throw new Error(
11063
+ "useSelectedItemMeasurements must be used within a SelectedItemMeasurementsProvider"
11064
+ );
11076
11065
  }
11077
11066
  return context;
11078
11067
  };
11079
11068
 
11080
11069
  // src/components/SegmentedControl/SelectedItemIndicator.tsx
11070
+ import { useMemo as useMemo9 } from "react";
11081
11071
  import styled51 from "styled-components";
11082
11072
 
11083
11073
  // src/components/SegmentedControl/useSegmentedControlValue.tsx
@@ -11099,7 +11089,7 @@ var SelectedItemIndicatorDiv = styled51.div`
11099
11089
  border-radius: var(--wui-border-radius-rounded);
11100
11090
  left: 0;
11101
11091
  position: absolute;
11102
- top: 50%;
11092
+ top: 0;
11103
11093
  box-shadow: var(--wui-elevation-01);
11104
11094
  transition:
11105
11095
  transform var(--wui-motion-duration-02) var(--wui-motion-ease-out),
@@ -11108,11 +11098,28 @@ var SelectedItemIndicatorDiv = styled51.div`
11108
11098
  `;
11109
11099
  var SelectedItemIndicator = () => {
11110
11100
  const selectedValue = useSegmentedControlValue();
11111
- const { selectedItemIndicatorStyle } = useSelectedItemStyle();
11101
+ const { selectedItemMeasurements } = useSelectedItemMeasurements();
11102
+ const selectedItemIndicatorStyle = useMemo9(
11103
+ () => selectedItemMeasurements != null ? {
11104
+ height: `${selectedItemMeasurements.offsetHeight}px`,
11105
+ transform: `translateX(${selectedItemMeasurements.offsetLeft}px)`,
11106
+ width: `${selectedItemMeasurements.offsetWidth}px`
11107
+ } : {},
11108
+ [selectedItemMeasurements]
11109
+ );
11112
11110
  if (!selectedValue) {
11113
11111
  return null;
11114
11112
  }
11115
- return /* @__PURE__ */ jsx248(SelectedItemIndicatorDiv, { style: selectedItemIndicatorStyle });
11113
+ return /* @__PURE__ */ jsx248(
11114
+ SelectedItemIndicatorDiv,
11115
+ {
11116
+ style: {
11117
+ width: selectedItemIndicatorStyle.width,
11118
+ transform: selectedItemIndicatorStyle.transform,
11119
+ height: selectedItemIndicatorStyle.height
11120
+ }
11121
+ }
11122
+ );
11116
11123
  };
11117
11124
 
11118
11125
  // src/components/SegmentedControl/SegmentedControl.tsx
@@ -11121,10 +11128,9 @@ var segmentedControlStyles = css31`
11121
11128
  display: inline-flex;
11122
11129
  background-color: var(--wui-color-bg-surface-secondary);
11123
11130
  border-radius: var(--wui-border-radius-rounded);
11131
+ border: 2px solid var(--wui-color-bg-surface-secondary);
11124
11132
  gap: var(--wui-space-01);
11125
11133
  isolation: isolate;
11126
- overflow: hidden;
11127
- padding: 2px;
11128
11134
  position: relative;
11129
11135
  width: ${({ $fullWidth }) => $fullWidth ? "100%" : "auto"};
11130
11136
  `;
@@ -11155,7 +11161,7 @@ var SegmentedControl = forwardRef20(
11155
11161
  type: "single",
11156
11162
  value: selectedValue,
11157
11163
  ...props,
11158
- children: /* @__PURE__ */ jsx249(SegmentedControlValueProvider, { value: selectedValue, children: /* @__PURE__ */ jsxs35(SelectedItemStyleProvider, { children: [
11164
+ children: /* @__PURE__ */ jsx249(SegmentedControlValueProvider, { value: selectedValue, children: /* @__PURE__ */ jsxs35(SelectedItemMeasurementsProvider, { children: [
11159
11165
  /* @__PURE__ */ jsx249(SelectedItemIndicator, {}),
11160
11166
  children
11161
11167
  ] }) })
@@ -11237,7 +11243,7 @@ var StyledSegmentedControlItem = styled53(ToggleGroupItem)`
11237
11243
  var SegmentedControlItem = forwardRef21(
11238
11244
  ({ disabled, icon, label, "aria-label": ariaLabel, value }, forwardedRef) => {
11239
11245
  const selectedValue = useSegmentedControlValue();
11240
- const { setSelectedItemMeasurements } = useSelectedItemStyle();
11246
+ const { setSelectedItemMeasurements } = useSelectedItemMeasurements();
11241
11247
  const buttonRef = useRef10(null);
11242
11248
  const combinedRef = mergeRefs([buttonRef, forwardedRef]);
11243
11249
  const handleClick = (event) => {
@@ -11845,7 +11851,7 @@ var StyledTabItem = styled66(RadixTab)`
11845
11851
  var TabItem = forwardRef25(
11846
11852
  ({ disabled = false, icon, label, "aria-label": ariaLabel, value }, forwardedRef) => {
11847
11853
  const selectedValue = useTabsValue();
11848
- const { setSelectedItemMeasurements } = useSelectedItemStyle();
11854
+ const { setSelectedItemMeasurements } = useSelectedItemMeasurements();
11849
11855
  const buttonRef = useRef11(null);
11850
11856
  const combinedRef = mergeRefs([buttonRef, forwardedRef]);
11851
11857
  useEffect9(() => {
@@ -11914,6 +11920,7 @@ var extractTabItems = (children) => {
11914
11920
  };
11915
11921
 
11916
11922
  // src/components/Tabs/SelectedItemIndicator.tsx
11923
+ import { useMemo as useMemo10 } from "react";
11917
11924
  import styled67 from "styled-components";
11918
11925
  import { jsx as jsx262 } from "react/jsx-runtime";
11919
11926
  var TabsSelectedItemIndicatorDiv = styled67(SelectedItemIndicatorDiv)`
@@ -11922,12 +11929,29 @@ var TabsSelectedItemIndicatorDiv = styled67(SelectedItemIndicatorDiv)`
11922
11929
  }
11923
11930
  `;
11924
11931
  var SelectedItemIndicator2 = () => {
11925
- const { selectedItemIndicatorStyle } = useSelectedItemStyle();
11932
+ const { selectedItemMeasurements } = useSelectedItemMeasurements();
11926
11933
  const selectedValue = useTabsValue();
11934
+ const selectedItemIndicatorStyle = useMemo10(
11935
+ () => selectedItemMeasurements != null ? {
11936
+ height: `${selectedItemMeasurements.offsetHeight}px`,
11937
+ transform: `translateX(${selectedItemMeasurements.offsetLeft}px)`,
11938
+ width: `${selectedItemMeasurements.offsetWidth}px`
11939
+ } : {},
11940
+ [selectedItemMeasurements]
11941
+ );
11927
11942
  if (selectedValue == null) {
11928
11943
  return null;
11929
11944
  }
11930
- return /* @__PURE__ */ jsx262(TabsSelectedItemIndicatorDiv, { style: selectedItemIndicatorStyle });
11945
+ return /* @__PURE__ */ jsx262(
11946
+ TabsSelectedItemIndicatorDiv,
11947
+ {
11948
+ style: {
11949
+ width: selectedItemIndicatorStyle.width,
11950
+ transform: selectedItemIndicatorStyle.transform,
11951
+ height: selectedItemIndicatorStyle.height
11952
+ }
11953
+ }
11954
+ );
11931
11955
  };
11932
11956
 
11933
11957
  // src/components/Tabs/Tabs.tsx
@@ -11974,7 +11998,7 @@ var Tabs = forwardRef26(
11974
11998
  activationMode: "automatic",
11975
11999
  ...props,
11976
12000
  ...modeProps,
11977
- children: /* @__PURE__ */ jsx263(TabsValueProvider, { value: currentValue, children: /* @__PURE__ */ jsxs42(SelectedItemStyleProvider, { children: [
12001
+ children: /* @__PURE__ */ jsx263(TabsValueProvider, { value: currentValue, children: /* @__PURE__ */ jsxs42(SelectedItemMeasurementsProvider, { children: [
11978
12002
  /* @__PURE__ */ jsxs42(
11979
12003
  TabList,
11980
12004
  {