@wistia/ui 0.8.4-beta.ce2e7158.f79e970 → 0.8.4

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.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
 
2
2
  /*
3
- * @license @wistia/ui v0.8.4-beta.ce2e7158.f79e970
3
+ * @license @wistia/ui v0.8.4
4
4
  *
5
5
  * Copyright (c) 2024-2025, Wistia, Inc. and its affiliates.
6
6
  *
@@ -11042,42 +11042,37 @@ import styled52, { css as css31 } from "styled-components";
11042
11042
  import { Root as ToggleGroupRoot } from "@radix-ui/react-toggle-group";
11043
11043
  import { isNil as isNil14 } from "@wistia/type-guards";
11044
11044
 
11045
- // src/components/SegmentedControl/useSelectedItemStyle.tsx
11045
+ // src/components/SegmentedControl/useSelectedItemMeasurements.tsx
11046
11046
  import { createContext as createContext6, useContext as useContext5, useMemo as useMemo8, useState as useState10 } from "react";
11047
11047
  import { jsx as jsx247 } from "react/jsx-runtime";
11048
- var SelectedItemStyleContext = createContext6(null);
11049
- var SelectedItemStyleProvider = ({
11048
+ var SelectedItemMeasurementsContext = createContext6(
11049
+ null
11050
+ );
11051
+ var SelectedItemMeasurementsProvider = ({
11050
11052
  children
11051
11053
  }) => {
11052
11054
  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
11055
  const contextValue = useMemo8(
11064
11056
  () => ({
11065
11057
  setSelectedItemMeasurements,
11066
- selectedItemIndicatorStyle
11058
+ selectedItemMeasurements
11067
11059
  }),
11068
- [selectedItemIndicatorStyle]
11060
+ [selectedItemMeasurements]
11069
11061
  );
11070
- return /* @__PURE__ */ jsx247(SelectedItemStyleContext.Provider, { value: contextValue, children });
11062
+ return /* @__PURE__ */ jsx247(SelectedItemMeasurementsContext.Provider, { value: contextValue, children });
11071
11063
  };
11072
- var useSelectedItemStyle = () => {
11073
- const context = useContext5(SelectedItemStyleContext);
11064
+ var useSelectedItemMeasurements = () => {
11065
+ const context = useContext5(SelectedItemMeasurementsContext);
11074
11066
  if (context === null) {
11075
- throw new Error("useSelectedItemStyle must be used within a SelectedItemStyleProvider");
11067
+ throw new Error(
11068
+ "useSelectedItemMeasurements must be used within a SelectedItemMeasurementsProvider"
11069
+ );
11076
11070
  }
11077
11071
  return context;
11078
11072
  };
11079
11073
 
11080
11074
  // src/components/SegmentedControl/SelectedItemIndicator.tsx
11075
+ import { useMemo as useMemo9 } from "react";
11081
11076
  import styled51 from "styled-components";
11082
11077
 
11083
11078
  // src/components/SegmentedControl/useSegmentedControlValue.tsx
@@ -11099,7 +11094,7 @@ var SelectedItemIndicatorDiv = styled51.div`
11099
11094
  border-radius: var(--wui-border-radius-rounded);
11100
11095
  left: 0;
11101
11096
  position: absolute;
11102
- top: 50%;
11097
+ top: 0;
11103
11098
  box-shadow: var(--wui-elevation-01);
11104
11099
  transition:
11105
11100
  transform var(--wui-motion-duration-02) var(--wui-motion-ease-out),
@@ -11108,11 +11103,28 @@ var SelectedItemIndicatorDiv = styled51.div`
11108
11103
  `;
11109
11104
  var SelectedItemIndicator = () => {
11110
11105
  const selectedValue = useSegmentedControlValue();
11111
- const { selectedItemIndicatorStyle } = useSelectedItemStyle();
11106
+ const { selectedItemMeasurements } = useSelectedItemMeasurements();
11107
+ const selectedItemIndicatorStyle = useMemo9(
11108
+ () => selectedItemMeasurements != null ? {
11109
+ height: `${selectedItemMeasurements.offsetHeight}px`,
11110
+ transform: `translateX(${selectedItemMeasurements.offsetLeft}px)`,
11111
+ width: `${selectedItemMeasurements.offsetWidth}px`
11112
+ } : {},
11113
+ [selectedItemMeasurements]
11114
+ );
11112
11115
  if (!selectedValue) {
11113
11116
  return null;
11114
11117
  }
11115
- return /* @__PURE__ */ jsx248(SelectedItemIndicatorDiv, { style: selectedItemIndicatorStyle });
11118
+ return /* @__PURE__ */ jsx248(
11119
+ SelectedItemIndicatorDiv,
11120
+ {
11121
+ style: {
11122
+ width: selectedItemIndicatorStyle.width,
11123
+ transform: selectedItemIndicatorStyle.transform,
11124
+ height: selectedItemIndicatorStyle.height
11125
+ }
11126
+ }
11127
+ );
11116
11128
  };
11117
11129
 
11118
11130
  // src/components/SegmentedControl/SegmentedControl.tsx
@@ -11121,10 +11133,9 @@ var segmentedControlStyles = css31`
11121
11133
  display: inline-flex;
11122
11134
  background-color: var(--wui-color-bg-surface-secondary);
11123
11135
  border-radius: var(--wui-border-radius-rounded);
11136
+ border: 2px solid var(--wui-color-bg-surface-secondary);
11124
11137
  gap: var(--wui-space-01);
11125
11138
  isolation: isolate;
11126
- overflow: hidden;
11127
- padding: 2px;
11128
11139
  position: relative;
11129
11140
  width: ${({ $fullWidth }) => $fullWidth ? "100%" : "auto"};
11130
11141
  `;
@@ -11155,7 +11166,7 @@ var SegmentedControl = forwardRef20(
11155
11166
  type: "single",
11156
11167
  value: selectedValue,
11157
11168
  ...props,
11158
- children: /* @__PURE__ */ jsx249(SegmentedControlValueProvider, { value: selectedValue, children: /* @__PURE__ */ jsxs35(SelectedItemStyleProvider, { children: [
11169
+ children: /* @__PURE__ */ jsx249(SegmentedControlValueProvider, { value: selectedValue, children: /* @__PURE__ */ jsxs35(SelectedItemMeasurementsProvider, { children: [
11159
11170
  /* @__PURE__ */ jsx249(SelectedItemIndicator, {}),
11160
11171
  children
11161
11172
  ] }) })
@@ -11237,7 +11248,7 @@ var StyledSegmentedControlItem = styled53(ToggleGroupItem)`
11237
11248
  var SegmentedControlItem = forwardRef21(
11238
11249
  ({ disabled, icon, label, "aria-label": ariaLabel, value }, forwardedRef) => {
11239
11250
  const selectedValue = useSegmentedControlValue();
11240
- const { setSelectedItemMeasurements } = useSelectedItemStyle();
11251
+ const { setSelectedItemMeasurements } = useSelectedItemMeasurements();
11241
11252
  const buttonRef = useRef10(null);
11242
11253
  const combinedRef = mergeRefs([buttonRef, forwardedRef]);
11243
11254
  const handleClick = (event) => {
@@ -11845,7 +11856,7 @@ var StyledTabItem = styled66(RadixTab)`
11845
11856
  var TabItem = forwardRef25(
11846
11857
  ({ disabled = false, icon, label, "aria-label": ariaLabel, value }, forwardedRef) => {
11847
11858
  const selectedValue = useTabsValue();
11848
- const { setSelectedItemMeasurements } = useSelectedItemStyle();
11859
+ const { setSelectedItemMeasurements } = useSelectedItemMeasurements();
11849
11860
  const buttonRef = useRef11(null);
11850
11861
  const combinedRef = mergeRefs([buttonRef, forwardedRef]);
11851
11862
  useEffect9(() => {
@@ -11914,6 +11925,7 @@ var extractTabItems = (children) => {
11914
11925
  };
11915
11926
 
11916
11927
  // src/components/Tabs/SelectedItemIndicator.tsx
11928
+ import { useMemo as useMemo10 } from "react";
11917
11929
  import styled67 from "styled-components";
11918
11930
  import { jsx as jsx262 } from "react/jsx-runtime";
11919
11931
  var TabsSelectedItemIndicatorDiv = styled67(SelectedItemIndicatorDiv)`
@@ -11922,12 +11934,29 @@ var TabsSelectedItemIndicatorDiv = styled67(SelectedItemIndicatorDiv)`
11922
11934
  }
11923
11935
  `;
11924
11936
  var SelectedItemIndicator2 = () => {
11925
- const { selectedItemIndicatorStyle } = useSelectedItemStyle();
11937
+ const { selectedItemMeasurements } = useSelectedItemMeasurements();
11926
11938
  const selectedValue = useTabsValue();
11939
+ const selectedItemIndicatorStyle = useMemo10(
11940
+ () => selectedItemMeasurements != null ? {
11941
+ height: `${selectedItemMeasurements.offsetHeight}px`,
11942
+ transform: `translateX(${selectedItemMeasurements.offsetLeft}px)`,
11943
+ width: `${selectedItemMeasurements.offsetWidth}px`
11944
+ } : {},
11945
+ [selectedItemMeasurements]
11946
+ );
11927
11947
  if (selectedValue == null) {
11928
11948
  return null;
11929
11949
  }
11930
- return /* @__PURE__ */ jsx262(TabsSelectedItemIndicatorDiv, { style: selectedItemIndicatorStyle });
11950
+ return /* @__PURE__ */ jsx262(
11951
+ TabsSelectedItemIndicatorDiv,
11952
+ {
11953
+ style: {
11954
+ width: selectedItemIndicatorStyle.width,
11955
+ transform: selectedItemIndicatorStyle.transform,
11956
+ height: selectedItemIndicatorStyle.height
11957
+ }
11958
+ }
11959
+ );
11931
11960
  };
11932
11961
 
11933
11962
  // src/components/Tabs/Tabs.tsx
@@ -11974,7 +12003,7 @@ var Tabs = forwardRef26(
11974
12003
  activationMode: "automatic",
11975
12004
  ...props,
11976
12005
  ...modeProps,
11977
- children: /* @__PURE__ */ jsx263(TabsValueProvider, { value: currentValue, children: /* @__PURE__ */ jsxs42(SelectedItemStyleProvider, { children: [
12006
+ children: /* @__PURE__ */ jsx263(TabsValueProvider, { value: currentValue, children: /* @__PURE__ */ jsxs42(SelectedItemMeasurementsProvider, { children: [
11978
12007
  /* @__PURE__ */ jsxs42(
11979
12008
  TabList,
11980
12009
  {