quirk-ui 0.1.126 → 0.1.128

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.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../../index33.css');const _=require("react/jsx-runtime"),o=require("react"),R=require("./Context.cjs"),B="_tabs_1g6a3_1",K="_tabsList_1g6a3_7",O="_horizontal_1g6a3_24",U="_tabsPanel_1g6a3_26",X="_vertical_1g6a3_31",Y="_tabsTrigger_1g6a3_42",F="_tabsPanelWrapper_1g6a3_47",G="_indicator_1g6a3_70",J="_active_1g6a3_119",Q="_disabled_1g6a3_123",V="_dark_1g6a3_177",Z="_light_1g6a3_189",tt="_transparent_1g6a3_213",n={tabs:B,tabsList:K,horizontal:O,tabsPanel:U,vertical:X,tabsTrigger:Y,tabsPanelWrapper:F,indicator:G,active:J,disabled:Q,default:"_default_1g6a3_173",dark:V,light:Z,transparent:tt},D={horizontal:n.horizontal,vertical:n.vertical},N={default:n.default,light:n.light,dark:n.dark,transparent:n.transparent};function L({children:g,defaultIndex:a=0,activeIndex:r,onIndexChange:l,orientation:c="horizontal",theme:f="default",className:h,style:v}){const[p,x]=o.useState(a),y=r!==void 0,s=y?r:p,[i,$]=o.useState({width:0,left:0,top:0,height:0}),w=typeof window<"u",T=w?o.useLayoutEffect:o.useEffect,m=o.useId(),P=[],t=[],I=new Set,j=o.useRef(null),A=o.useRef([]),M=o.useRef([]),S=o.useCallback(e=>{I.has(e)||(y||x(e),l==null||l(e))},[y,l,I]),q=o.useMemo(()=>({activeIndex:s,setActiveIndex:S,idPrefix:m,orientation:c,theme:f,panelRefs:A,triggerRefs:M,indicatorStyle:i,disabledIndices:I}),[s,S,m,c,f,i]);o.Children.forEach(g,e=>{var u;(e==null?void 0:e.type)===H?P.push(e):((e==null?void 0:e.type)===W||((u=e==null?void 0:e.type)==null?void 0:u.name)==="Panel")&&t.push(e)});const k=o.useCallback(()=>{var u;const e=M.current[s];if(e){const b=e.getBoundingClientRect(),d=(u=e.parentElement)==null?void 0:u.getBoundingClientRect();if(!d)return;if(window.innerWidth<768||c==="vertical"){const z=b.top-d.top,E=b.height;$({top:z,height:E,left:0,width:d.width})}else{const z=b.left-d.left,E=b.width;$({left:z,width:E,top:0,height:d.height})}}},[s,c]);return T(()=>{if(!(typeof window>"u")&&w)return k(),window.addEventListener("resize",k),()=>{window.removeEventListener("resize",k)}},[k,w]),o.useLayoutEffect(()=>{const e=j.current,u=A.current[s];if(!e||!u)return;const b=()=>{const C=u.offsetHeight;e.offsetHeight,e.style.height=`${C}px`};b();const d=new ResizeObserver(b);return d.observe(u),()=>{d.disconnect()}},[s]),_.jsx(R.TabsContext.Provider,{value:q,children:_.jsxs("div",{className:`${n.tabs} ${D[c]} ${N[f]} ${h??""}`.trim(),style:v,children:[P,_.jsx("div",{ref:j,className:n.tabsPanelWrapper,children:t})]})})}function H({children:g,className:a}){const{indicatorStyle:r}=R.useTabsContext();return _.jsxs("div",{className:`${n.tabsList} ${a??""}`.trim(),role:"tablist","aria-label":"Tabs",children:[_.jsx("div",{className:n.indicator,style:{width:r.width,height:r.height,transform:`translateX(${r.left}px) translateY(${r.top}px)`}}),g]})}function et({children:g,index:a,disabled:r=!1,className:l}){const{activeIndex:c,setActiveIndex:f,idPrefix:h,triggerRefs:v,disabledIndices:p}=R.useTabsContext();r&&p.add(a);const x=s=>{var w,T,m,P;const i=v.current.filter(Boolean),$=i.findIndex(t=>t===s.currentTarget);if(s.key==="ArrowRight"||s.key==="ArrowDown"){s.preventDefault();let t=$+1;for(;t<i.length&&p.has(t);)t++;t<i.length&&(f(t),(w=i[t])==null||w.focus())}else if(s.key==="ArrowLeft"||s.key==="ArrowUp"){s.preventDefault();let t=$-1;for(;t>=0&&p.has(t);)t--;t>=0&&(f(t),(T=i[t])==null||T.focus())}else if(s.key==="Home"){s.preventDefault();let t=0;for(;t<i.length&&p.has(t);)t++;t<i.length&&(f(t),(m=i[t])==null||m.focus())}else if(s.key==="End"){s.preventDefault();let t=i.length-1;for(;t>=0&&p.has(t);)t--;t>=0&&(f(t),(P=i[t])==null||P.focus())}},y=c===a;return _.jsx("button",{className:`${n.tabsTrigger} ${y?n.active:""} ${r?n.disabled:""} ${l??""}`.trim(),role:"tab",ref:s=>{v.current[a]=s},id:`${h}-tab-${a}`,"aria-selected":c===a,"aria-disabled":r,tabIndex:c===a?0:-1,onClick:()=>!r&&f(a),onKeyDown:x,disabled:r,children:g})}function W({children:g,index:a,className:r}){const{activeIndex:l,idPrefix:c,panelRefs:f}=R.useTabsContext(),h=a===l;return _.jsx("div",{ref:v=>{f.current[a]=v},className:`${n.tabsPanel} ${r??""}`.trim(),role:"tabpanel",id:`${c}-panel-${a}`,"aria-labelledby":`${c}-tab-${a}`,"aria-hidden":!h,hidden:!h,children:g})}L.List=H;L.Trigger=et;L.Panel=W;exports.Tabs=L;exports.orientationClassMap=D;exports.themeClassMap=N;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../../index33.css');const w=require("react/jsx-runtime"),o=require("react"),R=require("./Context.cjs"),B="_tabs_1evwt_1",K="_tabsList_1evwt_7",O="_horizontal_1evwt_24",U="_tabsPanel_1evwt_26",X="_vertical_1evwt_31",Y="_tabsTrigger_1evwt_42",F="_tabsPanelWrapper_1evwt_47",G="_indicator_1evwt_70",J="_active_1evwt_119",Q="_disabled_1evwt_123",V="_dark_1evwt_177",Z="_light_1evwt_189",tt="_transparent_1evwt_213",n={tabs:B,tabsList:K,horizontal:O,tabsPanel:U,vertical:X,tabsTrigger:Y,tabsPanelWrapper:F,indicator:G,active:J,disabled:Q,default:"_default_1evwt_173",dark:V,light:Z,transparent:tt},D={horizontal:n.horizontal,vertical:n.vertical},N={default:n.default,light:n.light,dark:n.dark,transparent:n.transparent};function L({children:p,defaultIndex:r=0,activeIndex:a,onIndexChange:l,orientation:c="horizontal",theme:f="default",className:_,style:g}){const[v,x]=o.useState(r),y=a!==void 0,s=y?a:v,[i,$]=o.useState({width:0,left:0,top:0,height:0}),h=typeof window<"u",T=h?o.useLayoutEffect:o.useEffect,m=o.useId(),P=[],t=[],I=new Set,j=o.useRef(null),A=o.useRef([]),M=o.useRef([]),S=o.useCallback(e=>{I.has(e)||(y||x(e),l==null||l(e))},[y,l,I]),q=o.useMemo(()=>({activeIndex:s,setActiveIndex:S,idPrefix:m,orientation:c,theme:f,panelRefs:A,triggerRefs:M,indicatorStyle:i,disabledIndices:I}),[s,S,m,c,f,i]);o.Children.forEach(p,e=>{var u;(e==null?void 0:e.type)===H?P.push(e):((e==null?void 0:e.type)===W||((u=e==null?void 0:e.type)==null?void 0:u.name)==="Panel")&&t.push(e)});const k=o.useCallback(()=>{var u;const e=M.current[s];if(e){const b=e.getBoundingClientRect(),d=(u=e.parentElement)==null?void 0:u.getBoundingClientRect();if(!d)return;if(window.innerWidth<768||c==="vertical"){const z=b.top-d.top,E=b.height;$({top:z,height:E,left:0,width:d.width})}else{const z=b.left-d.left,E=b.width;$({left:z,width:E,top:0,height:d.height})}}},[s,c]);return T(()=>{if(!(typeof window>"u")&&h)return k(),window.addEventListener("resize",k),()=>{window.removeEventListener("resize",k)}},[k,h]),o.useLayoutEffect(()=>{const e=j.current,u=A.current[s];if(!e||!u)return;const b=()=>{const C=u.offsetHeight;e.offsetHeight,e.style.height=`${C}px`};b();const d=new ResizeObserver(b);return d.observe(u),()=>{d.disconnect()}},[s]),w.jsx(R.TabsContext.Provider,{value:q,children:w.jsxs("div",{className:`${n.tabs} ${D[c]} ${N[f]} ${_??""}`.trim(),style:g,children:[P,w.jsx("div",{ref:j,className:n.tabsPanelWrapper,children:t})]})})}function H({children:p,className:r}){const{indicatorStyle:a}=R.useTabsContext();return w.jsxs("div",{className:`${n.tabsList} ${r??""}`.trim(),role:"tablist","aria-label":"Tabs",children:[w.jsx("div",{className:n.indicator,style:{width:a.width,height:a.height,transform:`translateX(${a.left}px) translateY(${a.top}px)`}}),p]})}function et({children:p,index:r,disabled:a=!1,className:l}){const{activeIndex:c,setActiveIndex:f,idPrefix:_,triggerRefs:g,disabledIndices:v}=R.useTabsContext();a&&v.add(r);const x=s=>{var h,T,m,P;const i=g.current.filter(Boolean),$=i.findIndex(t=>t===s.currentTarget);if(s.key==="ArrowRight"||s.key==="ArrowDown"){s.preventDefault();let t=$+1;for(;t<i.length&&v.has(t);)t++;t<i.length&&(f(t),(h=i[t])==null||h.focus())}else if(s.key==="ArrowLeft"||s.key==="ArrowUp"){s.preventDefault();let t=$-1;for(;t>=0&&v.has(t);)t--;t>=0&&(f(t),(T=i[t])==null||T.focus())}else if(s.key==="Home"){s.preventDefault();let t=0;for(;t<i.length&&v.has(t);)t++;t<i.length&&(f(t),(m=i[t])==null||m.focus())}else if(s.key==="End"){s.preventDefault();let t=i.length-1;for(;t>=0&&v.has(t);)t--;t>=0&&(f(t),(P=i[t])==null||P.focus())}},y=c===r;return w.jsx("button",{className:`${n.tabsTrigger} ${y?n.active:""} ${a?n.disabled:""} ${l??""}`.trim(),role:"tab",ref:s=>{g.current[r]=s},id:`${_}-tab-${r}`,"aria-selected":c===r,"aria-disabled":a,tabIndex:c===r?0:-1,onClick:()=>!a&&f(r),onKeyDown:x,disabled:a,children:p})}function W({children:p,index:r,className:a}){const{activeIndex:l,idPrefix:c,panelRefs:f}=R.useTabsContext(),_=r===l;return w.jsx("div",{ref:g=>{f.current[r]=g},className:`${n.tabsPanel} ${a??""}`.trim(),role:"tabpanel",id:`${c}-panel-${r}`,"aria-labelledby":`${c}-tab-${r}`,"aria-hidden":!_,hidden:!_,children:p})}L.List=H;L.Trigger=et;L.Panel=W;exports.Tabs=L;exports.orientationClassMap=D;exports.themeClassMap=N;
@@ -1,7 +1,7 @@
1
1
  import { jsx as $, jsxs as j } from "react/jsx-runtime";
2
2
  import U, { useState as W, useId as X, useRef as z, useCallback as x, useMemo as Y, useLayoutEffect as B, useEffect as q } from "react";
3
3
  import { TabsContext as F, useTabsContext as A } from "./Context.mjs";
4
- import '../../../index33.css';const G = "_tabs_1g6a3_1", J = "_tabsList_1g6a3_7", Q = "_horizontal_1g6a3_24", V = "_tabsPanel_1g6a3_26", Z = "_vertical_1g6a3_31", tt = "_tabsTrigger_1g6a3_42", et = "_tabsPanelWrapper_1g6a3_47", st = "_indicator_1g6a3_70", rt = "_active_1g6a3_119", at = "_disabled_1g6a3_123", nt = "_dark_1g6a3_177", it = "_light_1g6a3_189", ot = "_transparent_1g6a3_213", n = {
4
+ import '../../../index33.css';const G = "_tabs_1evwt_1", J = "_tabsList_1evwt_7", Q = "_horizontal_1evwt_24", V = "_tabsPanel_1evwt_26", Z = "_vertical_1evwt_31", tt = "_tabsTrigger_1evwt_42", et = "_tabsPanelWrapper_1evwt_47", st = "_indicator_1evwt_70", rt = "_active_1evwt_119", at = "_disabled_1evwt_123", nt = "_dark_1evwt_177", it = "_light_1evwt_189", ot = "_transparent_1evwt_213", n = {
5
5
  tabs: G,
6
6
  tabsList: J,
7
7
  horizontal: Q,
@@ -12,7 +12,7 @@ import '../../../index33.css';const G = "_tabs_1g6a3_1", J = "_tabsList_1g6a3_7"
12
12
  indicator: st,
13
13
  active: rt,
14
14
  disabled: at,
15
- default: "_default_1g6a3_173",
15
+ default: "_default_1evwt_173",
16
16
  dark: nt,
17
17
  light: it,
18
18
  transparent: ot
@@ -32,19 +32,19 @@ function E({
32
32
  onIndexChange: c,
33
33
  orientation: o = "horizontal",
34
34
  theme: l = "default",
35
- className: b,
36
- style: _
35
+ className: w,
36
+ style: b
37
37
  }) {
38
- const [p, L] = W(r), v = a !== void 0, s = v ? a : p, [i, w] = W({
38
+ const [p, L] = W(r), h = a !== void 0, s = h ? a : p, [i, g] = W({
39
39
  width: 0,
40
40
  left: 0,
41
41
  top: 0,
42
42
  height: 0
43
- }), h = typeof window < "u", P = h ? B : q, m = X(), y = [], t = [], R = /* @__PURE__ */ new Set(), D = z(null), N = z([]), H = z([]), M = x(
43
+ }), _ = typeof window < "u", P = _ ? B : q, m = X(), y = [], t = [], R = /* @__PURE__ */ new Set(), D = z(null), N = z([]), H = z([]), M = x(
44
44
  (e) => {
45
- R.has(e) || (v || L(e), c == null || c(e));
45
+ R.has(e) || (h || L(e), c == null || c(e));
46
46
  },
47
- [v, c, R]
47
+ [h, c, R]
48
48
  ), O = Y(
49
49
  () => ({
50
50
  activeIndex: s,
@@ -67,14 +67,14 @@ function E({
67
67
  var f;
68
68
  const e = H.current[s];
69
69
  if (e) {
70
- const g = e.getBoundingClientRect(), u = (f = e.parentElement) == null ? void 0 : f.getBoundingClientRect();
70
+ const v = e.getBoundingClientRect(), u = (f = e.parentElement) == null ? void 0 : f.getBoundingClientRect();
71
71
  if (!u) return;
72
72
  if (window.innerWidth < 768 || o === "vertical") {
73
- const T = g.top - u.top, I = g.height;
74
- w({ top: T, height: I, left: 0, width: u.width });
73
+ const T = v.top - u.top, I = v.height;
74
+ g({ top: T, height: I, left: 0, width: u.width });
75
75
  } else {
76
- const T = g.left - u.left, I = g.width;
77
- w({
76
+ const T = v.left - u.left, I = v.width;
77
+ g({
78
78
  left: T,
79
79
  width: I,
80
80
  top: 0,
@@ -84,27 +84,27 @@ function E({
84
84
  }
85
85
  }, [s, o]);
86
86
  return P(() => {
87
- if (!(typeof window > "u") && h)
87
+ if (!(typeof window > "u") && _)
88
88
  return k(), window.addEventListener("resize", k), () => {
89
89
  window.removeEventListener("resize", k);
90
90
  };
91
- }, [k, h]), B(() => {
91
+ }, [k, _]), B(() => {
92
92
  const e = D.current, f = N.current[s];
93
93
  if (!e || !f) return;
94
- const g = () => {
94
+ const v = () => {
95
95
  const S = f.offsetHeight;
96
96
  e.offsetHeight, e.style.height = `${S}px`;
97
97
  };
98
- g();
99
- const u = new ResizeObserver(g);
98
+ v();
99
+ const u = new ResizeObserver(v);
100
100
  return u.observe(f), () => {
101
101
  u.disconnect();
102
102
  };
103
103
  }, [s]), /* @__PURE__ */ $(F.Provider, { value: O, children: /* @__PURE__ */ j(
104
104
  "div",
105
105
  {
106
- className: `${n.tabs} ${ct[o]} ${lt[l]} ${b ?? ""}`.trim(),
107
- style: _,
106
+ className: `${n.tabs} ${ct[o]} ${lt[l]} ${w ?? ""}`.trim(),
107
+ style: b,
108
108
  children: [
109
109
  y,
110
110
  /* @__PURE__ */ $("div", { ref: D, className: n.tabsPanelWrapper, children: t })
@@ -146,25 +146,25 @@ function ft({
146
146
  const {
147
147
  activeIndex: o,
148
148
  setActiveIndex: l,
149
- idPrefix: b,
150
- triggerRefs: _,
149
+ idPrefix: w,
150
+ triggerRefs: b,
151
151
  disabledIndices: p
152
152
  } = A();
153
153
  a && p.add(r);
154
154
  const L = (s) => {
155
- var h, P, m, y;
156
- const i = _.current.filter(Boolean), w = i.findIndex(
155
+ var _, P, m, y;
156
+ const i = b.current.filter(Boolean), g = i.findIndex(
157
157
  (t) => t === s.currentTarget
158
158
  );
159
159
  if (s.key === "ArrowRight" || s.key === "ArrowDown") {
160
160
  s.preventDefault();
161
- let t = w + 1;
161
+ let t = g + 1;
162
162
  for (; t < i.length && p.has(t); )
163
163
  t++;
164
- t < i.length && (l(t), (h = i[t]) == null || h.focus());
164
+ t < i.length && (l(t), (_ = i[t]) == null || _.focus());
165
165
  } else if (s.key === "ArrowLeft" || s.key === "ArrowUp") {
166
166
  s.preventDefault();
167
- let t = w - 1;
167
+ let t = g - 1;
168
168
  for (; t >= 0 && p.has(t); )
169
169
  t--;
170
170
  t >= 0 && (l(t), (P = i[t]) == null || P.focus());
@@ -181,16 +181,16 @@ function ft({
181
181
  t--;
182
182
  t >= 0 && (l(t), (y = i[t]) == null || y.focus());
183
183
  }
184
- }, v = o === r;
184
+ }, h = o === r;
185
185
  return /* @__PURE__ */ $(
186
186
  "button",
187
187
  {
188
- className: `${n.tabsTrigger} ${v ? n.active : ""} ${a ? n.disabled : ""} ${c ?? ""}`.trim(),
188
+ className: `${n.tabsTrigger} ${h ? n.active : ""} ${a ? n.disabled : ""} ${c ?? ""}`.trim(),
189
189
  role: "tab",
190
190
  ref: (s) => {
191
- _.current[r] = s;
191
+ b.current[r] = s;
192
192
  },
193
- id: `${b}-tab-${r}`,
193
+ id: `${w}-tab-${r}`,
194
194
  "aria-selected": o === r,
195
195
  "aria-disabled": a,
196
196
  tabIndex: o === r ? 0 : -1,
@@ -202,19 +202,19 @@ function ft({
202
202
  );
203
203
  }
204
204
  function C({ children: d, index: r, className: a }) {
205
- const { activeIndex: c, idPrefix: o, panelRefs: l } = A(), b = r === c;
205
+ const { activeIndex: c, idPrefix: o, panelRefs: l } = A(), w = r === c;
206
206
  return /* @__PURE__ */ $(
207
207
  "div",
208
208
  {
209
- ref: (_) => {
210
- l.current[r] = _;
209
+ ref: (b) => {
210
+ l.current[r] = b;
211
211
  },
212
212
  className: `${n.tabsPanel} ${a ?? ""}`.trim(),
213
213
  role: "tabpanel",
214
214
  id: `${o}-panel-${r}`,
215
215
  "aria-labelledby": `${o}-tab-${r}`,
216
- "aria-hidden": !b,
217
- hidden: !b,
216
+ "aria-hidden": !w,
217
+ hidden: !w,
218
218
  children: d
219
219
  }
220
220
  );
package/dist/index13.css CHANGED
@@ -1 +1 @@
1
- ._tabs_3x761_1{width:100%;padding-top:var(--spacing-xl);padding-bottom:var(--spacing-xl)}._container_3x761_7{width:100%;max-width:var(--layout-width);margin:0 auto;padding-left:var(--spacing-md);padding-right:var(--spacing-md)}._container_3x761_7 h1,._container_3x761_7 h2,._container_3x761_7 h3,._container_3x761_7 h4,._container_3x761_7 h5,._container_3x761_7 h6{width:100%;margin-block:0}._heading_3x761_25{position:relative;display:flex;flex-direction:column;gap:var(--spacing-md)}._text_3x761_32{flex:1;display:flex;justify-content:center;flex-direction:column;gap:var(--spacing-lg)}@media (max-width: 767px){._text_3x761_32{flex:1;width:100%;align-items:flex-start}}._headingHorizontal_3x761_46{flex-direction:row;justify-content:space-between}._headingHorizontal_3x761_46 ._container_3x761_7{flex:1}._headingHorizontal_3x761_46 ._title_3x761_54{margin-bottom:0;text-wrap:pretty}@media (max-width: 768px){._headingHorizontal_3x761_46{flex-direction:column}}._headingVertical_3x761_64{flex-direction:column;justify-content:flex-start}._tabContent_3x761_74{display:flex;align-items:center;justify-content:space-between;gap:4rem;max-width:800px;margin:0 auto}._tabContent_3x761_74 ul{columns:1}._tabContent_3x761_74 .textPrimary{font-weight:var(--font-weight-semibold);font-size:var(--font-size-lg)}@media (max-width: 767px){._tabContent_3x761_74{flex-direction:column;gap:var(--spacing-lg);align-items:flex-start}}._tabContent_3x761_74._vertical_3x761_97{flex-direction:row;align-items:flex-start;justify-content:space-between;gap:var(--spacing-lg)}@media (max-width: 767px){._tabContent_3x761_74._vertical_3x761_97{flex-direction:column}}._tabContent_3x761_74._vertical_3x761_97 ._tabsContainer_3x761_69{padding-top:var(--spacing-lg);padding-bottom:var(--spacing-lg)}._tabContent_3x761_74._vertical_3x761_97 ._tabImage_3x761_112 img{width:auto}._tabText_3x761_120{display:flex;flex-direction:column;align-items:flex-start;gap:var(--spacing-md);flex:1}._tabImage_3x761_112{width:100%;height:auto;max-width:175px;align-items:center}._tabImage_3x761_112 img{position:relative;width:100%;height:auto}._gridItems_3x761_141{display:grid;width:100%;grid-template-columns:1fr;gap:var(--spacing-md)}@media (min-width: 480px){._gridItems_3x761_141{grid-template-columns:repeat(2,1fr)}}@media (min-width: 768px){._gridItems_3x761_141{grid-template-columns:repeat(4,1fr)}}._gridItem_3x761_141 img{width:100%;height:auto;aspect-ratio:15/9;object-fit:cover;border-radius:var(--radius-md)}._default_3x761_166 ._container_3x761_7{display:flex;flex-direction:column;gap:var(--spacing-md)}.orientationVertical ._tabsContainer_3x761_69{padding-top:var(--spacing-lg);padding-bottom:var(--spacing-lg)}._fullBleed_3x761_181{position:relative;padding-top:var(--spacing-md);padding-left:var(--spacing-md);padding-right:var(--spacing-md)}._fullBleed_3x761_181 ._container_3x761_7{max-width:var(--layout-width);position:relative;display:flex;align-items:flex-end;width:100%;min-height:650px;height:100%;overflow:hidden;flex-grow:1;border-radius:var(--radius-md)}._fullBleed_3x761_181 ._container_3x761_7 img{transition:width .3s ease-in-out,height .3s ease-in-out}._fullBleed_3x761_181 ._overlay_3x761_208{width:100%;max-width:var(--layout-width);margin:0 auto;z-index:3;position:relative;padding-left:var(--spacing-md);padding-right:var(--spacing-md)}._fullBleed_3x761_181 ._heading_3x761_25{z-index:3;position:relative;max-width:665px;display:flex;flex-direction:column;gap:var(--spacing-md);background-color:#fff;padding:var(--spacing-xl);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}._fullBleed_3x761_181 ._heading_3x761_25:has(._title_3x761_54+._cta_3x761_232):not(:has(._text_3x761_32)){gap:var(--spacing-lg)}._fullBleed_3x761_181 ._text_3x761_32{flex:1;display:flex;justify-content:center;flex-direction:column;gap:var(--spacing-lg)}@media (max-width: 767px){._fullBleed_3x761_181 ._text_3x761_32{flex:1;width:100%;align-items:flex-start}}._fullBleed_3x761_181.paddingTopBanner,._fullBleed_3x761_181.paddingTop4,._fullBleed_3x761_181.paddingTop2,._fullBleed_3x761_181.paddingTop1{padding-top:0}._fullBleed_3x761_181.paddingBottomBanner,._fullBleed_3x761_181.paddingBottom4,._fullBleed_3x761_181.paddingBottom2,._fullBleed_3x761_181.paddingBottom1{padding-bottom:0}._fullBleed_3x761_181.paddingTopBanner ._overlay_3x761_208{padding-top:8rem}._fullBleed_3x761_181.paddingBottomBanner ._overlay_3x761_208{padding-bottom:8rem}._fullBleed_3x761_181.paddingTop4 ._overlay_3x761_208{padding-top:4rem}._fullBleed_3x761_181.paddingBottom4 ._overlay_3x761_208{padding-bottom:4rem}._fullBleed_3x761_181.paddingTop2 ._overlay_3x761_208{padding-top:2rem}._fullBleed_3x761_181.paddingBottom2 ._overlay_3x761_208{padding-bottom:2rem}._fullBleed_3x761_181.paddingTop1 ._overlay_3x761_208{padding-top:1rem}._fullBleed_3x761_181.paddingBottom1 ._overlay_3x761_208{padding-bottom:1rem}._eyebrow_3x761_314{font-weight:var(--font-weight-bold)}
1
+ ._tabs_jt1ik_1{width:100%;padding-top:var(--spacing-xl);padding-bottom:var(--spacing-xl)}._container_jt1ik_7{width:100%;max-width:var(--layout-width);margin:0 auto;padding-left:var(--spacing-md);padding-right:var(--spacing-md)}._container_jt1ik_7 h1,._container_jt1ik_7 h2,._container_jt1ik_7 h3,._container_jt1ik_7 h4,._container_jt1ik_7 h5,._container_jt1ik_7 h6{width:100%;margin-block:0}._heading_jt1ik_25{position:relative;display:flex;flex-direction:column;gap:var(--spacing-md)}._text_jt1ik_32{flex:1;display:flex;justify-content:center;flex-direction:column;gap:var(--spacing-lg)}@media (max-width: 767px){._text_jt1ik_32{flex:1;width:100%;align-items:flex-start}}._headingHorizontal_jt1ik_46{flex-direction:row;justify-content:space-between}._headingHorizontal_jt1ik_46 ._container_jt1ik_7{flex:1}._headingHorizontal_jt1ik_46 ._title_jt1ik_54{margin-bottom:0;text-wrap:pretty}@media (max-width: 768px){._headingHorizontal_jt1ik_46{flex-direction:column}}._headingVertical_jt1ik_64{flex-direction:column;justify-content:flex-start}._tabContent_jt1ik_74{display:flex;align-items:center;justify-content:space-between;gap:4rem;max-width:800px;margin:0 auto}._tabContent_jt1ik_74 ul{columns:1}._tabContent_jt1ik_74 .textPrimary{font-weight:var(--font-weight-semibold);font-size:var(--font-size-lg)}@media (max-width: 767px){._tabContent_jt1ik_74{flex-direction:column;gap:var(--spacing-lg);align-items:flex-start}}._tabContent_jt1ik_74._horizontal_jt1ik_97 ._tabImage_jt1ik_98{max-width:175px}._tabContent_jt1ik_74._vertical_jt1ik_103{flex-direction:column;align-items:flex-start;justify-content:space-between;gap:var(--spacing-lg)}@media (max-width: 767px){._tabContent_jt1ik_74._vertical_jt1ik_103{flex-direction:column}}._tabContent_jt1ik_74._vertical_jt1ik_103 ._tabsContainer_jt1ik_69{padding-top:var(--spacing-lg);padding-bottom:var(--spacing-lg)}._tabContent_jt1ik_74._vertical_jt1ik_103 ._tabImage_jt1ik_98 img{width:auto}._tabText_jt1ik_126{display:flex;flex-direction:column;align-items:flex-start;gap:var(--spacing-md);flex:1}._tabImage_jt1ik_98{width:100%;height:auto;align-items:center}._tabImage_jt1ik_98 img{position:relative;width:100%;height:auto}._gridItems_jt1ik_146{display:grid;width:100%;grid-template-columns:1fr;gap:var(--spacing-md)}@media (min-width: 480px){._gridItems_jt1ik_146{grid-template-columns:repeat(2,1fr)}}@media (min-width: 768px){._gridItems_jt1ik_146{grid-template-columns:repeat(4,1fr)}}._gridItem_jt1ik_146 img{width:100%;height:auto;aspect-ratio:15/9;object-fit:cover;border-radius:var(--radius-md)}._default_jt1ik_171 ._container_jt1ik_7{display:flex;flex-direction:column;gap:var(--spacing-md)}.orientationVertical ._tabsContainer_jt1ik_69{padding-top:var(--spacing-lg);padding-bottom:var(--spacing-lg)}._fullBleed_jt1ik_186{position:relative;padding-top:var(--spacing-md);padding-left:var(--spacing-md);padding-right:var(--spacing-md)}._fullBleed_jt1ik_186 ._container_jt1ik_7{max-width:var(--layout-width);position:relative;display:flex;align-items:flex-end;width:100%;min-height:650px;height:100%;overflow:hidden;flex-grow:1;border-radius:var(--radius-md)}._fullBleed_jt1ik_186 ._container_jt1ik_7 img{transition:width .3s ease-in-out,height .3s ease-in-out}._fullBleed_jt1ik_186 ._overlay_jt1ik_213{width:100%;max-width:var(--layout-width);margin:0 auto;z-index:3;position:relative;padding-left:var(--spacing-md);padding-right:var(--spacing-md)}._fullBleed_jt1ik_186 ._heading_jt1ik_25{z-index:3;position:relative;max-width:665px;display:flex;flex-direction:column;gap:var(--spacing-md);background-color:#fff;padding:var(--spacing-xl);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}._fullBleed_jt1ik_186 ._heading_jt1ik_25:has(._title_jt1ik_54+._cta_jt1ik_237):not(:has(._text_jt1ik_32)){gap:var(--spacing-lg)}._fullBleed_jt1ik_186 ._text_jt1ik_32{flex:1;display:flex;justify-content:center;flex-direction:column;gap:var(--spacing-lg)}@media (max-width: 767px){._fullBleed_jt1ik_186 ._text_jt1ik_32{flex:1;width:100%;align-items:flex-start}}._fullBleed_jt1ik_186.paddingTopBanner,._fullBleed_jt1ik_186.paddingTop4,._fullBleed_jt1ik_186.paddingTop2,._fullBleed_jt1ik_186.paddingTop1{padding-top:0}._fullBleed_jt1ik_186.paddingBottomBanner,._fullBleed_jt1ik_186.paddingBottom4,._fullBleed_jt1ik_186.paddingBottom2,._fullBleed_jt1ik_186.paddingBottom1{padding-bottom:0}._fullBleed_jt1ik_186.paddingTopBanner ._overlay_jt1ik_213{padding-top:8rem}._fullBleed_jt1ik_186.paddingBottomBanner ._overlay_jt1ik_213{padding-bottom:8rem}._fullBleed_jt1ik_186.paddingTop4 ._overlay_jt1ik_213{padding-top:4rem}._fullBleed_jt1ik_186.paddingBottom4 ._overlay_jt1ik_213{padding-bottom:4rem}._fullBleed_jt1ik_186.paddingTop2 ._overlay_jt1ik_213{padding-top:2rem}._fullBleed_jt1ik_186.paddingBottom2 ._overlay_jt1ik_213{padding-bottom:2rem}._fullBleed_jt1ik_186.paddingTop1 ._overlay_jt1ik_213{padding-top:1rem}._fullBleed_jt1ik_186.paddingBottom1 ._overlay_jt1ik_213{padding-bottom:1rem}._eyebrow_jt1ik_319{font-weight:var(--font-weight-bold)}.imageRadius-sm ._tabImage_jt1ik_98 img{border-radius:var(--radius-sm)}.imageRadius-md ._tabImage_jt1ik_98 img{border-radius:var(--radius-md)}.imageRadius-lg ._tabImage_jt1ik_98 img{border-radius:var(--radius-lg)}.imageRadius-full ._tabImage_jt1ik_98 img{border-radius:var(--radius-full)}
package/dist/index33.css CHANGED
@@ -1 +1 @@
1
- ._tabs_1g6a3_1{display:flex;flex-direction:column;width:100%}._tabsList_1g6a3_7{display:flex;width:100%;background-color:var(--color-secondary-10);border-radius:calc(var(--radius-md) + 5px);position:relative;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}._tabsList_1g6a3_7::-webkit-scrollbar{display:none}._horizontal_1g6a3_24{flex-direction:column}._horizontal_1g6a3_24 ._tabsPanel_1g6a3_26{padding:var(--spacing-lg) var(--spacing-md)}._vertical_1g6a3_31{flex-direction:column;align-items:flex-start;gap:3rem}._vertical_1g6a3_31 ._tabsList_1g6a3_7{flex-direction:column;overflow-x:visible;flex:.25 0 150px}._vertical_1g6a3_31 ._tabsTrigger_1g6a3_42{white-space:normal;text-align:left}._vertical_1g6a3_31 ._tabsPanelWrapper_1g6a3_47{flex:1;width:100%}@media (max-width: 767px){._vertical_1g6a3_31{flex-direction:column}}._left_1g6a3_58{justify-content:flex-start}._center_1g6a3_62{justify-content:center}._right_1g6a3_66{justify-content:flex-end}._indicator_1g6a3_70{position:absolute;left:0;top:0;border-radius:var(--radius-md);transition:transform .3s ease-in-out,width .3s ease-in-out;z-index:0;border:5px solid var(--color-secondary-10)}._indicator_1g6a3_70:after{content:"";border-radius:var(--radius-md);background-color:var(--color-secondary-100);display:block;position:absolute;width:100%;height:100%}._tabsTrigger_1g6a3_42{padding:var(--spacing-md);border:none;background:none;cursor:pointer;color:var(--color-text-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);transition:color .3s ease;position:relative;z-index:1;white-space:nowrap;text-align:center;width:100%}._tabsTrigger_1g6a3_42._active_1g6a3_119{color:var(--color-tab-text)}._tabsTrigger_1g6a3_42._disabled_1g6a3_123{opacity:.5;cursor:not-allowed}._tabsTrigger_1g6a3_42:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 767px){._tabsList_1g6a3_7{flex-direction:column;overflow-x:visible}._tabsTrigger_1g6a3_42{white-space:normal;text-align:left}}._tabsPanelWrapper_1g6a3_47{position:relative;overflow:hidden;height:auto;transition:height .3s ease-in-out}._tabsPanel_1g6a3_26{animation:_fadeSlide_1g6a3_1 .3s ease both;position:relative;width:100%;color:var(--color-text-primary)}@keyframes _fadeSlide_1g6a3_1{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}._default_1g6a3_173{background-color:transparent}._dark_1g6a3_177{background-color:var(--color-tab-background)}._dark_1g6a3_177 ._indicator_1g6a3_70{border:5px solid transparent}._dark_1g6a3_177 ._tabsTrigger_1g6a3_42{color:var(--color-primary-25)}._light_1g6a3_189{background-color:#fff}._light_1g6a3_189 ._indicator_1g6a3_70{border:5px solid transparent}._light_1g6a3_189 ._tabsList_1g6a3_7{background-color:#fff}._light_1g6a3_189 ._tabsTrigger_1g6a3_42{color:var(--color-text-primary)}._light_1g6a3_189 ._tabsTrigger_1g6a3_42:hover{color:var(--color-primary-100)}._light_1g6a3_189 ._tabsTrigger_1g6a3_42._active_1g6a3_119{color:#fff}._transparent_1g6a3_213{background-color:transparent}._transparent_1g6a3_213 ._indicator_1g6a3_70{border:5px solid transparent}._transparent_1g6a3_213 ._tabsList_1g6a3_7{background-color:transparent}._transparent_1g6a3_213 ._tabsTrigger_1g6a3_42{color:var(--color-text-primary)}._transparent_1g6a3_213 ._tabsTrigger_1g6a3_42:hover{color:var(--color-primary-100)}._transparent_1g6a3_213 ._tabsTrigger_1g6a3_42._active_1g6a3_119{color:#fff}
1
+ ._tabs_1evwt_1{display:flex;flex-direction:column;width:100%}._tabsList_1evwt_7{display:flex;width:100%;background-color:var(--color-secondary-10);border-radius:calc(var(--radius-md) + 5px);position:relative;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}._tabsList_1evwt_7::-webkit-scrollbar{display:none}._horizontal_1evwt_24{flex-direction:column}._horizontal_1evwt_24 ._tabsPanel_1evwt_26{padding:var(--spacing-lg) var(--spacing-md)}._vertical_1evwt_31{flex-direction:row;align-items:flex-start;gap:3rem}._vertical_1evwt_31 ._tabsList_1evwt_7{flex-direction:column;overflow-x:visible;flex:.25 0 150px}._vertical_1evwt_31 ._tabsTrigger_1evwt_42{white-space:normal;text-align:left}._vertical_1evwt_31 ._tabsPanelWrapper_1evwt_47{flex:1;width:100%}@media (max-width: 767px){._vertical_1evwt_31{flex-direction:column}}._left_1evwt_58{justify-content:flex-start}._center_1evwt_62{justify-content:center}._right_1evwt_66{justify-content:flex-end}._indicator_1evwt_70{position:absolute;left:0;top:0;border-radius:var(--radius-md);transition:transform .3s ease-in-out,width .3s ease-in-out;z-index:0;border:5px solid var(--color-secondary-10)}._indicator_1evwt_70:after{content:"";border-radius:var(--radius-md);background-color:var(--color-secondary-100);display:block;position:absolute;width:100%;height:100%}._tabsTrigger_1evwt_42{padding:var(--spacing-md);border:none;background:none;cursor:pointer;color:var(--color-text-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);transition:color .3s ease;position:relative;z-index:1;white-space:nowrap;text-align:center;width:100%}._tabsTrigger_1evwt_42._active_1evwt_119{color:var(--color-tab-text)}._tabsTrigger_1evwt_42._disabled_1evwt_123{opacity:.5;cursor:not-allowed}._tabsTrigger_1evwt_42:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 767px){._tabsList_1evwt_7{flex-direction:column;overflow-x:visible}._tabsTrigger_1evwt_42{white-space:normal;text-align:left}}._tabsPanelWrapper_1evwt_47{position:relative;overflow:hidden;height:auto;transition:height .3s ease-in-out}._tabsPanel_1evwt_26{animation:_fadeSlide_1evwt_1 .3s ease both;position:relative;width:100%;color:var(--color-text-primary)}@keyframes _fadeSlide_1evwt_1{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}._default_1evwt_173{background-color:transparent}._dark_1evwt_177{background-color:var(--color-tab-background)}._dark_1evwt_177 ._indicator_1evwt_70{border:5px solid transparent}._dark_1evwt_177 ._tabsTrigger_1evwt_42{color:var(--color-primary-25)}._light_1evwt_189{background-color:#fff}._light_1evwt_189 ._indicator_1evwt_70{border:5px solid transparent}._light_1evwt_189 ._tabsList_1evwt_7{background-color:#fff}._light_1evwt_189 ._tabsTrigger_1evwt_42{color:var(--color-text-primary)}._light_1evwt_189 ._tabsTrigger_1evwt_42:hover{color:var(--color-primary-100)}._light_1evwt_189 ._tabsTrigger_1evwt_42._active_1evwt_119{color:#fff}._transparent_1evwt_213{background-color:transparent}._transparent_1evwt_213 ._indicator_1evwt_70{border:5px solid transparent}._transparent_1evwt_213 ._tabsList_1evwt_7{background-color:transparent}._transparent_1evwt_213 ._tabsTrigger_1evwt_42{color:var(--color-text-primary)}._transparent_1evwt_213 ._tabsTrigger_1evwt_42:hover{color:var(--color-primary-100)}._transparent_1evwt_213 ._tabsTrigger_1evwt_42._active_1evwt_119{color:#fff}
@@ -1 +1 @@
1
- "use strict";const n=require("react/jsx-runtime"),e=require("../../../react.esm-C_9Ma9mj.cjs"),r=require("./index.cjs");e.vi.mock("./styles.module.css",()=>({default:new Proxy({},{get:(a,o)=>o})}));e.vi.mock("../../hooks/useStyleClasses",()=>({useStyleClasses:()=>"style-classes"}));e.vi.mock("../../context/ThemeContext",()=>({useTheme:()=>({mode:"light"})}));e.vi.mock("../../utils/mediaUtils",()=>({resolveImageUrl:(t,a,o)=>t?`https://cdn.example.com/${o??"medium"}.jpg`:void 0,resolveAltText:(t,a,o)=>t?"Resolved alt text":o??""}));e.vi.mock("../../utils/resolveLinkUrl",()=>({resolveLinkURL:t=>(t==null?void 0:t.href)??"/resolved"}));const{MockTabs:m,MockTabsList:T,MockTabsTrigger:x,MockTabsPanel:u}=e.vi.hoisted(()=>{const t=e.vi.fn(({children:i})=>n.jsx("div",{"data-testid":"tabs-list",children:i})),a=e.vi.fn(({children:i,index:b})=>n.jsx("button",{"data-testid":"tabs-trigger","data-index":b,children:i})),o=e.vi.fn(({children:i,index:b})=>n.jsx("div",{"data-testid":"tabs-panel","data-index":b,children:i}));return{MockTabs:e.vi.fn(({children:i,orientation:b,theme:p})=>n.jsx("div",{"data-testid":"tabs","data-orientation":b,"data-theme":p,children:i})),MockTabsList:t,MockTabsTrigger:a,MockTabsPanel:o}});e.vi.mock("../../../core/components/Tabs",()=>({Tabs:Object.assign(m,{List:T,Trigger:x,Panel:u})}));e.vi.mock("../../../core/components/Button",()=>({Button:({children:t,href:a,target:o,rel:d,"aria-label":i})=>n.jsx("a",{"data-testid":"tab-button",href:a,target:o,rel:d,"aria-label":i,children:t})}));function c(t){return[{_type:"block",_key:"b1",style:"normal",markDefs:[],children:[{_type:"span",_key:"s1",text:t,marks:[]}]}]}const h=({blocks:t,className:a})=>{var o,d,i;return n.jsx("span",{"data-testid":"rich-text",className:a,children:((i=(d=(o=t==null?void 0:t[0])==null?void 0:o.children)==null?void 0:d[0])==null?void 0:i.text)??""})},B=({items:t,alignment:a})=>n.jsx("nav",{"data-testid":"cta","data-alignment":a,children:t.map(o=>n.jsx("a",{children:o.label},o._key))}),g=({src:t,alt:a,fill:o})=>n.jsx("img",{"data-testid":"render-image",src:t,alt:a,"data-fill":o});function l(t,a={}){return{title:t,content:{tabText:c(`${t} body text`),...a}}}function s(t={}){return{heading:{title:c("Tabs Heading")},items:[l("Tab One"),l("Tab Two")],callToAction:{alignment:"left",spacing:"md",mobileOrientation:"column",items:[]},styleOptions:{layout:"default"},renderRichText:h,renderCallToAction:B,...t}}e.beforeEach(()=>{m.mockClear(),T.mockClear(),x.mockClear(),u.mockClear()});e.describe("1. Default layout",()=>{e.it("renders a section with the default class",()=>{var a;const{container:t}=e.render(n.jsx(r.TabsBlock,{...s()}));e.globalExpect((a=t.querySelector("section"))==null?void 0:a.className).toContain("default")}),e.it("renders the tabs element",()=>{e.render(n.jsx(r.TabsBlock,{...s()})),e.globalExpect(e.screen.getByTestId("tabs")).toBeInTheDocument()}),e.it("renders the heading",()=>{e.render(n.jsx(r.TabsBlock,{...s()}));const t=e.screen.getAllByTestId("rich-text");e.globalExpect(t.some(a=>a.textContent==="Tabs Heading")).toBe(!0)}),e.it("does not set data-overlay on the section",()=>{var a;const{container:t}=e.render(n.jsx(r.TabsBlock,{...s()}));e.globalExpect((a=t.querySelector("section"))==null?void 0:a.dataset.overlay).toBeUndefined()})});e.describe("2. Full-bleed layout",()=>{const t={styleOptions:{layout:"full-bleed"}};e.it("renders a section with the fullBleed class",()=>{var o;const{container:a}=e.render(n.jsx(r.TabsBlock,{...s(t)}));e.globalExpect((o=a.querySelector("section"))==null?void 0:o.className).toContain("fullBleed")}),e.it("sets data-overlay=true on the section",()=>{var o;const{container:a}=e.render(n.jsx(r.TabsBlock,{...s(t)}));e.globalExpect((o=a.querySelector("section"))==null?void 0:o.dataset.overlay).toBe("true")}),e.it("renders an overlay div",()=>{const{container:a}=e.render(n.jsx(r.TabsBlock,{...s(t)}));e.globalExpect(a.querySelector(".overlay")).toBeInTheDocument()}),e.it("renders the tabs inside the overlay",()=>{var o;const{container:a}=e.render(n.jsx(r.TabsBlock,{...s(t)}));e.globalExpect((o=a.querySelector(".overlay"))==null?void 0:o.querySelector("[data-testid='tabs']")).toBeInTheDocument()})});e.describe("3. Unknown layout — returns null",()=>{e.it("renders nothing for an unknown layout value",()=>{const{container:t}=e.render(n.jsx(r.TabsBlock,{...s({styleOptions:{layout:"unknown"}})}));e.globalExpect(t.firstChild).toBeNull()})});e.describe("4. Heading area — eyebrow, title, description, disclaimer",()=>{e.it("renders the title",()=>{e.render(n.jsx(r.TabsBlock,{...s()}));const t=e.screen.getAllByTestId("rich-text");e.globalExpect(t.some(a=>a.textContent==="Tabs Heading")).toBe(!0)}),e.it("renders the eyebrow when provided",()=>{e.render(n.jsx(r.TabsBlock,{...s({heading:{title:c("Title"),eyebrow:c("Product")}})}));const t=e.screen.getAllByTestId("rich-text");e.globalExpect(t.some(a=>a.textContent==="Product")).toBe(!0)}),e.it("renders description when provided",()=>{e.render(n.jsx(r.TabsBlock,{...s({heading:{title:c("Title"),description:c("Intro paragraph")}})}));const t=e.screen.getAllByTestId("rich-text");e.globalExpect(t.some(a=>a.textContent==="Intro paragraph")).toBe(!0)}),e.it("renders disclaimer when provided",()=>{e.render(n.jsx(r.TabsBlock,{...s({heading:{title:c("Title"),disclaimer:c("Terms apply")}})}));const t=e.screen.getAllByTestId("rich-text");e.globalExpect(t.some(a=>a.textContent==="Terms apply")).toBe(!0)})});e.describe("5. headingLayout class",()=>{e.it("applies headingVertical by default",()=>{var a;const{container:t}=e.render(n.jsx(r.TabsBlock,{...s()}));e.globalExpect((a=t.querySelector(".heading"))==null?void 0:a.className).toContain("headingVertical")}),e.it("applies headingHorizontal when headingLayout=horizontal",()=>{var a;const{container:t}=e.render(n.jsx(r.TabsBlock,{...s({heading:{title:c("Title"),headingLayout:"horizontal"}})}));e.globalExpect((a=t.querySelector(".heading"))==null?void 0:a.className).toContain("headingHorizontal")})});e.describe("6. Tabs element — triggers and panels per item",()=>{e.it("renders one trigger per item",()=>{e.render(n.jsx(r.TabsBlock,{...s()})),e.globalExpect(e.screen.getAllByTestId("tabs-trigger")).toHaveLength(2)}),e.it("renders each item title as trigger text",()=>{e.render(n.jsx(r.TabsBlock,{...s()}));const t=e.screen.getAllByTestId("tabs-trigger");e.globalExpect(t[0].textContent).toBe("Tab One"),e.globalExpect(t[1].textContent).toBe("Tab Two")}),e.it("renders one panel per item",()=>{e.render(n.jsx(r.TabsBlock,{...s()})),e.globalExpect(e.screen.getAllByTestId("tabs-panel")).toHaveLength(2)})});e.describe("7. Tab panel — tabText, tabImage, tabDisclaimer",()=>{e.it("renders tabText via renderRichText",()=>{e.render(n.jsx(r.TabsBlock,{...s()}));const t=e.screen.getAllByTestId("rich-text");e.globalExpect(t.some(a=>a.textContent==="Tab One body text")).toBe(!0)}),e.it("renders a tab image when tabImage is provided",()=>{e.render(n.jsx(r.TabsBlock,{...s({items:[l("Tab One",{tabImage:{asset:{_ref:"img-abc"}}})],renderImage:g})})),e.globalExpect(e.screen.getByTestId("render-image")).toBeInTheDocument()}),e.it("renders tabDisclaimer when provided",()=>{e.render(n.jsx(r.TabsBlock,{...s({items:[l("Tab One",{tabDisclaimer:c("Tab disclaimer text")})]})}));const t=e.screen.getAllByTestId("rich-text");e.globalExpect(t.some(a=>a.textContent==="Tab disclaimer text")).toBe(!0)}),e.it("does not render image div when tabImage is absent",()=>{const{container:t}=e.render(n.jsx(r.TabsBlock,{...s()}));e.globalExpect(t.querySelector(".tabImage")).toBeNull()})});e.describe("8. Tab CTA link — Button for valid URL; absent for '#' or missing",()=>{e.it("renders a Button when tabLink resolves to a valid URL",()=>{e.render(n.jsx(r.TabsBlock,{...s({items:[l("Tab One",{tabLink:{href:"/learn-more",label:"Learn More"}})]})})),e.globalExpect(e.screen.getByTestId("tab-button")).toBeInTheDocument(),e.globalExpect(e.screen.getByTestId("tab-button").textContent).toBe("Learn More")}),e.it("does not render a Button when tabLink is absent",()=>{e.render(n.jsx(r.TabsBlock,{...s()})),e.globalExpect(e.screen.queryByTestId("tab-button")).toBeNull()}),e.it("does not render a Button when resolved URL is '#'",()=>{e.render(n.jsx(r.TabsBlock,{...s({items:[l("Tab One",{tabLink:{href:"#",label:"Anchor"}})]})})),e.globalExpect(e.screen.queryByTestId("tab-button")).toBeNull()})});e.describe("9. Tab CTA — external links get target=_blank and rel=noopener",()=>{e.it("sets target=_blank for external link type",()=>{e.render(n.jsx(r.TabsBlock,{...s({items:[l("Tab One",{tabLink:{href:"/go",label:"Go",linkOptions:{linkType:"external"}}})]})})),e.globalExpect(e.screen.getByTestId("tab-button").getAttribute("target")).toBe("_blank")}),e.it("sets rel=noopener noreferrer for external links",()=>{e.render(n.jsx(r.TabsBlock,{...s({items:[l("Tab One",{tabLink:{href:"/go",label:"Go",linkOptions:{linkType:"external"}}})]})})),e.globalExpect(e.screen.getByTestId("tab-button").getAttribute("rel")).toBe("noopener noreferrer")}),e.it("sets target=_self for internal links",()=>{e.render(n.jsx(r.TabsBlock,{...s({items:[l("Tab One",{tabLink:{href:"/internal",label:"Internal",linkOptions:{linkType:"internal"}}})]})})),e.globalExpect(e.screen.getByTestId("tab-button").getAttribute("target")).toBe("_self")})});e.describe("10. Tab grid items — GridItems rendered with image and text",()=>{e.it("renders grid item text via renderRichText",()=>{e.render(n.jsx(r.TabsBlock,{...s({items:[l("Tab One",{tabGridItem:[{itemText:c("Grid item text")}]})]})}));const t=e.screen.getAllByTestId("rich-text");e.globalExpect(t.some(a=>a.textContent==="Grid item text")).toBe(!0)}),e.it("renders grid item image via renderImage when provided",()=>{e.render(n.jsx(r.TabsBlock,{...s({items:[l("Tab One",{tabGridItem:[{itemImage:{asset:{_ref:"grid-img"}}}]})],renderImage:g})})),e.globalExpect(e.screen.getByTestId("render-image")).toBeInTheDocument()}),e.it("renders a plain <img> fallback for grid item when renderImage is absent",()=>{const{container:t}=e.render(n.jsx(r.TabsBlock,{...s({items:[l("Tab One",{tabGridItem:[{itemImage:{asset:{_ref:"grid-img"}}}]})],renderImage:void 0})}));e.globalExpect(t.querySelector("img")).toBeInTheDocument()})});e.describe("11. Block-level image",()=>{e.it("renders BlockImage in default layout when image is provided",()=>{e.render(n.jsx(r.TabsBlock,{...s({image:{asset:{_ref:"block-img"}},renderImage:g})})),e.globalExpect(e.screen.getByTestId("render-image")).toBeInTheDocument()}),e.it("does not render a block image when image prop is absent",()=>{const{container:t}=e.render(n.jsx(r.TabsBlock,{...s()}));e.globalExpect(t.querySelector("img")).toBeNull()}),e.it("renders a fill image in full-bleed layout",()=>{e.render(n.jsx(r.TabsBlock,{...s({image:{asset:{_ref:"bg-img"}},styleOptions:{layout:"full-bleed"},renderImage:g})})),e.globalExpect(e.screen.getByTestId("render-image").dataset.fill).toBe("true")})});e.describe("12. renderImage — plain <img> fallback when renderImage not provided",()=>{e.it("renders a plain <img> for tab image when renderImage is absent",()=>{var a;const{container:t}=e.render(n.jsx(r.TabsBlock,{...s({items:[l("Tab One",{tabImage:{asset:{_ref:"tab-img"}}})],renderImage:void 0})}));e.globalExpect(t.querySelector("img")).toBeInTheDocument(),e.globalExpect((a=t.querySelector("img"))==null?void 0:a.getAttribute("src")).toContain("cdn.example.com")})});e.describe("13. renderCallToAction — called with correct props",()=>{e.it("renders CTA via renderCallToAction when items are present",()=>{e.render(n.jsx(r.TabsBlock,{...s({callToAction:{alignment:"center",spacing:"lg",mobileOrientation:"row",items:[{_key:"l1",href:"/go",label:"Go"}]}})})),e.globalExpect(e.screen.getByTestId("cta")).toBeInTheDocument()}),e.it("passes alignment to renderCallToAction",()=>{e.render(n.jsx(r.TabsBlock,{...s({callToAction:{alignment:"right",spacing:"sm",mobileOrientation:"column",items:[{_key:"l1",href:"/x",label:"X"}]}})})),e.globalExpect(e.screen.getByTestId("cta").dataset.alignment).toBe("right")})});e.describe("14. Orientation — forwarded to Tabs",()=>{e.it("passes horizontal orientation by default",()=>{e.render(n.jsx(r.TabsBlock,{...s()})),e.globalExpect(e.screen.getByTestId("tabs").dataset.orientation).toBe("horizontal")}),e.it("passes vertical orientation when styleOptions.orientation=orientationVertical",()=>{e.render(n.jsx(r.TabsBlock,{...s({styleOptions:{layout:"default",orientation:"orientationVertical"}})})),e.globalExpect(e.screen.getByTestId("tabs").dataset.orientation).toBe("vertical")})});e.describe("15. Theme — resolved from styleOptions.theme and forwarded to Tabs",()=>{e.it("passes default theme by default",()=>{e.render(n.jsx(r.TabsBlock,{...s()})),e.globalExpect(e.screen.getByTestId("tabs").dataset.theme).toBe("default")}),e.it("passes dark theme when styleOptions.theme=themeDark",()=>{e.render(n.jsx(r.TabsBlock,{...s({styleOptions:{layout:"default",theme:"themeDark"}})})),e.globalExpect(e.screen.getByTestId("tabs").dataset.theme).toBe("dark")}),e.it("passes light theme when styleOptions.theme=themeLight",()=>{e.render(n.jsx(r.TabsBlock,{...s({styleOptions:{layout:"default",theme:"themeLight"}})})),e.globalExpect(e.screen.getByTestId("tabs").dataset.theme).toBe("light")})});
1
+ "use strict";const s=require("react/jsx-runtime"),e=require("../../../react.esm-C_9Ma9mj.cjs"),r=require("./index.cjs");e.vi.mock("./styles.module.css",()=>({default:new Proxy({},{get:(a,l)=>l})}));e.vi.mock("../../hooks/useStyleClasses",()=>({useStyleClasses:e.vi.fn(t=>t!=null&&t.tabClass?`tab-style-${t.tabClass}`:"block-style-classes")}));e.vi.mock("../../context/ThemeContext",()=>({useTheme:()=>({mode:"light",mounted:!0,toggleTheme:e.vi.fn(),setTheme:e.vi.fn()})}));let d=!1;e.vi.mock("../../hooks/useMediaQuery",()=>({useMediaQuery:()=>d}));const m=e.vi.fn((t,a)=>({objectFit:"contain"}));e.vi.mock("../../utils/mediaUtils",()=>({resolveImageUrl:(t,a,l)=>t?`https://cdn.example.com/${l??"medium"}.jpg`:void 0,resolveAltText:()=>"Alt text",resolveImageStyle:(t,a)=>m(t,a)}));e.vi.mock("../../utils/resolveLinkUrl",()=>({resolveLinkURL:t=>(t==null?void 0:t.href)??"/resolved"}));const{MockTabs:u,MockTabsList:p,MockTabsTrigger:T,MockTabsPanel:y}=e.vi.hoisted(()=>{const t=e.vi.fn(({children:n})=>s.jsx("div",{"data-testid":"tabs-list",children:n})),a=e.vi.fn(({children:n,index:g})=>s.jsx("button",{"data-testid":"tabs-trigger","data-index":g,children:n})),l=e.vi.fn(({children:n,index:g})=>s.jsx("div",{"data-testid":"tabs-panel","data-index":g,children:n})),i=e.vi.fn(({children:n})=>s.jsx("div",{"data-testid":"tabs",children:n}));return i.List=t,i.Trigger=a,i.Panel=l,{MockTabs:i,MockTabsList:t,MockTabsTrigger:a,MockTabsPanel:l}});e.vi.mock("../../../core/components/Tabs",()=>({Tabs:new Proxy(u,{get:(t,a)=>a==="List"?p:a==="Trigger"?T:a==="Panel"?y:t[a]})}));e.vi.mock("../../../core/components/Button",()=>({Button:({children:t})=>s.jsx("button",{children:t})}));function x(t){return[{_type:"block",_key:"b1",style:"normal",markDefs:[],children:[{_type:"span",_key:"s1",text:t,marks:[]}]}]}const k=({blocks:t,className:a})=>{var l,i,n;return s.jsx("span",{"data-testid":"rich-text",className:a,children:((n=(i=(l=t==null?void 0:t[0])==null?void 0:l.children)==null?void 0:i[0])==null?void 0:n.text)??""})},b={asset:{_ref:"image-abc"}};function o(t,a={}){return{title:t,content:{tabText:x(`${t} body`),...a}}}function c(t={}){return{heading:{title:x("Heading")},items:[o("Tab One")],callToAction:{alignment:"left",spacing:"md",mobileOrientation:"column",items:[]},styleOptions:{layout:"default"},renderRichText:k,...t}}e.beforeEach(()=>{d=!1,m.mockReturnValue({objectFit:"contain"}),u.mockClear(),y.mockClear()});e.describe("1. tabStyleOptions — useStyleClasses result applied to tabContent div",()=>{e.it("applies the tab style class to the tabContent wrapper",()=>{e.render(s.jsx(r.TabsBlock,{...c({items:[o("Tab One",{tabStyleOptions:{tabClass:"fancy"}})]})}));const a=e.screen.getAllByTestId("tabs-panel")[0].querySelector(".tabContent");e.globalExpect(a==null?void 0:a.className).toContain("tab-style-fancy")}),e.it("applies tab style classes from multiple tabs independently",()=>{var a,l;e.render(s.jsx(r.TabsBlock,{...c({items:[o("Tab One",{tabStyleOptions:{tabClass:"alpha"}}),o("Tab Two",{tabStyleOptions:{tabClass:"beta"}})]})}));const t=e.screen.getAllByTestId("tabs-panel");e.globalExpect((a=t[0].querySelector(".tabContent"))==null?void 0:a.className).toContain("tab-style-alpha"),e.globalExpect((l=t[1].querySelector(".tabContent"))==null?void 0:l.className).toContain("tab-style-beta")})});e.describe("2. imageStyle — resolveImageStyle result forwarded to renderImage",()=>{e.it("passes the imageStyle to renderImage for a tab image",()=>{m.mockReturnValue({objectFit:"cover",width:"100%"});const t=e.vi.fn(({style:a})=>s.jsx("img",{"data-testid":"render-image",style:a,src:"x",alt:"x"}));e.render(s.jsx(r.TabsBlock,{...c({items:[o("Tab One",{tabImage:b})],renderImage:t})})),e.globalExpect(t).toHaveBeenCalledWith(e.globalExpect.objectContaining({style:e.globalExpect.objectContaining({objectFit:"cover"})}))})});e.describe("3. imageStyle — applied to plain <img> fallback style",()=>{e.it("merges imageStyle into the fallback <img> style",()=>{m.mockReturnValue({borderRadius:"8px"});const{container:t}=e.render(s.jsx(r.TabsBlock,{...c({items:[o("Tab One",{tabImage:b})],renderImage:void 0})})),a=t.querySelector(".tabImage img");e.globalExpect(a).toBeInTheDocument(),e.globalExpect(a.style.borderRadius).toBe("8px")})});e.describe("4. isMobile — resolveImageStyle called with isMobile flag",()=>{e.it("calls resolveImageStyle with isMobile=false on desktop",()=>{d=!1,e.render(s.jsx(r.TabsBlock,{...c({image:b,items:[o("Tab One",{tabImage:b})]})})),e.globalExpect(m).toHaveBeenCalledWith(e.globalExpect.anything(),!1)}),e.it("calls resolveImageStyle with isMobile=true on mobile",()=>{d=!0,e.render(s.jsx(r.TabsBlock,{...c({image:b,items:[o("Tab One",{tabImage:b})]})})),e.globalExpect(m).toHaveBeenCalledWith(e.globalExpect.anything(),!0)})});e.describe("5. tabStyleOptions absent — no extra class on tabContent when omitted",()=>{e.it("renders tabContent with undefined tabStyles when tabStyleOptions not provided",()=>{e.render(s.jsx(r.TabsBlock,{...c()}));const a=e.screen.getAllByTestId("tabs-panel")[0].querySelector(".tabContent");e.globalExpect(a==null?void 0:a.className).not.toContain("tab-style-")})});