@extrachill/components 0.4.11 → 0.4.13

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/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.4.13] - 2026-03-25
4
+
5
+ ### Changed
6
+ - Limit responsive tabs styling changes to mobile only
7
+
8
+ ## [0.4.12] - 2026-03-25
9
+
10
+ ### Changed
11
+ - Make shell and responsive tabs use one shared path
12
+
3
13
  ## [0.4.11] - 2026-03-25
4
14
 
5
15
  ### Changed
@@ -5,7 +5,6 @@ export interface BlockShellProps {
5
5
  classPrefix?: string;
6
6
  compact?: boolean;
7
7
  depth?: 0 | 1 | 2 | 3;
8
- variant?: 'card' | 'plain';
9
8
  }
10
- export declare function BlockShell({ children, className, classPrefix, compact, depth, variant, }: BlockShellProps): import("react/jsx-runtime").JSX.Element;
9
+ export declare function BlockShell({ children, className, classPrefix, compact, depth, }: BlockShellProps): import("react/jsx-runtime").JSX.Element;
11
10
  //# sourceMappingURL=BlockShell.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlockShell.d.ts","sourceRoot":"","sources":["../src/BlockShell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,eAAe;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3B;AAED,wBAAgB,UAAU,CAAE,EAC3B,QAAQ,EACR,SAAc,EACd,WAA8B,EAC9B,OAAe,EACf,KAAS,EACT,OAAgB,GAChB,EAAE,eAAe,2CAUjB"}
1
+ {"version":3,"file":"BlockShell.d.ts","sourceRoot":"","sources":["../src/BlockShell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,eAAe;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CACtB;AAED,wBAAgB,UAAU,CAAE,EAC3B,QAAQ,EACR,SAAc,EACd,WAA8B,EAC9B,OAAe,EACf,KAAS,GACT,EAAE,eAAe,2CASjB"}
@@ -1,10 +1,9 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- export function BlockShell({ children, className = '', classPrefix = 'ec-block-shell', compact = false, depth = 0, variant = 'card', }) {
2
+ export function BlockShell({ children, className = '', classPrefix = 'ec-block-shell', compact = false, depth = 0, }) {
3
3
  const shellClass = [
4
4
  classPrefix,
5
5
  compact ? `${classPrefix}--compact` : '',
6
6
  `${classPrefix}--depth-${depth}`,
7
- `${classPrefix}--${variant}`,
8
7
  className,
9
8
  ].filter(Boolean).join(' ');
10
9
  return _jsx("div", { className: shellClass, children: children });
@@ -12,7 +12,6 @@ export interface ResponsiveTabsProps {
12
12
  mobileBreakpoint?: number;
13
13
  accordionClassName?: string;
14
14
  showDesktopTabs?: boolean;
15
- mobileEdgeToEdge?: boolean;
16
15
  }
17
- export declare function ResponsiveTabs({ tabs, active, onChange, renderPanel, className, classPrefix, tabsClassName, tabsClassPrefix, mobileBreakpoint, accordionClassName, showDesktopTabs, mobileEdgeToEdge, }: ResponsiveTabsProps): import("react/jsx-runtime").JSX.Element | null;
16
+ export declare function ResponsiveTabs({ tabs, active, onChange, renderPanel, className, classPrefix, tabsClassName, tabsClassPrefix, mobileBreakpoint, accordionClassName, showDesktopTabs, }: ResponsiveTabsProps): import("react/jsx-runtime").JSX.Element | null;
18
17
  //# sourceMappingURL=ResponsiveTabs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResponsiveTabs.d.ts","sourceRoot":"","sources":["../src/ResponsiveTabs.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAQ,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAE,EAAE,EAAE,MAAM,KAAM,IAAI,CAAC;IACjC,WAAW,EAAE,CAAE,EAAE,EAAE,MAAM,KAAM,SAAS,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,cAAc,CAAE,EAC/B,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,WAAW,EACX,SAAc,EACd,WAAkC,EAClC,aAAkB,EAClB,eAA2B,EAC3B,gBAAsB,EACtB,kBAAuB,EACvB,eAAsB,EACtB,gBAAwB,GACxB,EAAE,mBAAmB,kDAmFrB"}
1
+ {"version":3,"file":"ResponsiveTabs.d.ts","sourceRoot":"","sources":["../src/ResponsiveTabs.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAQ,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAE,EAAE,EAAE,MAAM,KAAM,IAAI,CAAC;IACjC,WAAW,EAAE,CAAE,EAAE,EAAE,MAAM,KAAM,SAAS,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,cAAc,CAAE,EAC/B,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,WAAW,EACX,SAAc,EACd,WAAkC,EAClC,aAAkB,EAClB,eAA2B,EAC3B,gBAAsB,EACtB,kBAAuB,EACvB,eAAsB,GACtB,EAAE,mBAAmB,kDAkFrB"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useMemo, useState } from 'react';
3
3
  import { Tabs } from "./Tabs.js";
4
- export function ResponsiveTabs({ tabs, active, onChange, renderPanel, className = '', classPrefix = 'ec-responsive-tabs', tabsClassName = '', tabsClassPrefix = 'ec-tabs', mobileBreakpoint = 768, accordionClassName = '', showDesktopTabs = true, mobileEdgeToEdge = false, }) {
4
+ export function ResponsiveTabs({ tabs, active, onChange, renderPanel, className = '', classPrefix = 'ec-responsive-tabs', tabsClassName = '', tabsClassPrefix = 'ec-tabs', mobileBreakpoint = 768, accordionClassName = '', showDesktopTabs = true, }) {
5
5
  const [isMobile, setIsMobile] = useState(() => {
6
6
  if (typeof window === 'undefined') {
7
7
  return false;
@@ -22,11 +22,10 @@ export function ResponsiveTabs({ tabs, active, onChange, renderPanel, className
22
22
  const rootClass = useMemo(() => [
23
23
  classPrefix,
24
24
  isMobile ? `${classPrefix}--mobile` : `${classPrefix}--desktop`,
25
- mobileEdgeToEdge ? `${classPrefix}--mobile-edge-to-edge` : '',
26
25
  className,
27
26
  ]
28
27
  .filter(Boolean)
29
- .join(' '), [className, classPrefix, isMobile, mobileEdgeToEdge]);
28
+ .join(' '), [className, classPrefix, isMobile]);
30
29
  if (tabs.length === 0) {
31
30
  return null;
32
31
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@extrachill/components",
3
- "version": "0.4.11",
3
+ "version": "0.4.13",
4
4
  "description": "Shared React components for the Extra Chill Platform.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -6,7 +6,6 @@ export interface BlockShellProps {
6
6
  classPrefix?: string;
7
7
  compact?: boolean;
8
8
  depth?: 0 | 1 | 2 | 3;
9
- variant?: 'card' | 'plain';
10
9
  }
11
10
 
12
11
  export function BlockShell( {
@@ -15,13 +14,11 @@ export function BlockShell( {
15
14
  classPrefix = 'ec-block-shell',
16
15
  compact = false,
17
16
  depth = 0,
18
- variant = 'card',
19
17
  }: BlockShellProps ) {
20
18
  const shellClass = [
21
19
  classPrefix,
22
20
  compact ? `${ classPrefix }--compact` : '',
23
21
  `${ classPrefix }--depth-${ depth }`,
24
- `${ classPrefix }--${ variant }`,
25
22
  className,
26
23
  ].filter( Boolean ).join( ' ' );
27
24
 
@@ -14,7 +14,6 @@ export interface ResponsiveTabsProps {
14
14
  mobileBreakpoint?: number;
15
15
  accordionClassName?: string;
16
16
  showDesktopTabs?: boolean;
17
- mobileEdgeToEdge?: boolean;
18
17
  }
19
18
 
20
19
  export function ResponsiveTabs( {
@@ -29,7 +28,6 @@ export function ResponsiveTabs( {
29
28
  mobileBreakpoint = 768,
30
29
  accordionClassName = '',
31
30
  showDesktopTabs = true,
32
- mobileEdgeToEdge = false,
33
31
  }: ResponsiveTabsProps ) {
34
32
  const [ isMobile, setIsMobile ] = useState( () => {
35
33
  if ( typeof window === 'undefined' ) {
@@ -58,12 +56,11 @@ export function ResponsiveTabs( {
58
56
  () => [
59
57
  classPrefix,
60
58
  isMobile ? `${ classPrefix }--mobile` : `${ classPrefix }--desktop`,
61
- mobileEdgeToEdge ? `${ classPrefix }--mobile-edge-to-edge` : '',
62
59
  className,
63
60
  ]
64
61
  .filter( Boolean )
65
62
  .join( ' ' ),
66
- [ className, classPrefix, isMobile, mobileEdgeToEdge ]
63
+ [ className, classPrefix, isMobile ]
67
64
  );
68
65
 
69
66
  if ( tabs.length === 0 ) {
@@ -240,34 +240,6 @@
240
240
  .ec-responsive-tabs__accordion {
241
241
  display: none;
242
242
  }
243
-
244
- .ec-responsive-tabs .ec-tabs__tabs {
245
- display: flex;
246
- flex-wrap: wrap;
247
- margin-bottom: -1px;
248
- position: relative;
249
- }
250
-
251
- .ec-responsive-tabs .ec-tabs__tab {
252
- border: 1px solid var(--border-color, #ddd);
253
- border-bottom: 1px solid var(--border-color, #ddd);
254
- border-radius: var(--border-radius-md, 8px) var(--border-radius-md, 8px) 0 0;
255
- padding: var(--spacing-sm, 0.5rem) var(--spacing-md, 1rem);
256
- font-size: var(--font-size-base, 1rem);
257
- position: relative;
258
- top: 1px;
259
- margin-right: var(--spacing-xs, 0.25rem);
260
- background: var(--card-background, #f8f8f8);
261
- color: var(--text-color, #111);
262
- z-index: 2;
263
- }
264
-
265
- .ec-responsive-tabs .ec-tabs__tab.is-active {
266
- background: var(--background-color, #fff);
267
- color: var(--link-color, #0b5394);
268
- border-bottom: 1px solid var(--background-color, #fff);
269
- z-index: 3;
270
- }
271
243
  }
272
244
 
273
245
  @media (max-width: 768px) {
@@ -276,7 +248,7 @@
276
248
  display: none;
277
249
  }
278
250
 
279
- .ec-responsive-tabs--mobile-edge-to-edge .ec-responsive-tabs__item {
251
+ .ec-responsive-tabs__item {
280
252
  margin-left: calc(var(--spacing-md, 1rem) * -1);
281
253
  margin-right: calc(var(--spacing-md, 1rem) * -1);
282
254
  border-left: 0;
@@ -297,33 +269,26 @@
297
269
 
298
270
  // Block shell / top-level wrapper
299
271
  .ec-block-shell {
300
- background: var(--card-background, #f1f5f9);
301
- border: 1px solid var(--border-color, #ddd);
302
- border-radius: var(--border-radius-xl, 14px);
303
- padding: var(--spacing-lg, 1.5rem);
304
- box-sizing: border-box;
305
- display: grid;
306
- gap: var(--spacing-lg, 1.5rem);
307
- }
308
-
309
- .ec-block-shell--plain {
310
272
  background: transparent;
311
273
  border: 0;
312
274
  border-radius: 0;
313
275
  padding: 0;
276
+ box-sizing: border-box;
277
+ display: grid;
278
+ gap: var(--spacing-lg, 1.5rem);
314
279
  }
315
280
 
316
281
  .ec-block-shell--depth-0 {
317
- background: var(--card-background, #f1f5f9);
282
+ background: transparent;
318
283
  }
319
284
 
320
285
  .ec-block-shell--depth-1,
321
286
  .ec-block-shell--depth-3 {
322
- background: var(--background-color, #fff);
287
+ background: transparent;
323
288
  }
324
289
 
325
290
  .ec-block-shell--depth-2 {
326
- background: var(--card-background, #f1f5f9);
291
+ background: transparent;
327
292
  }
328
293
 
329
294
  .ec-block-shell--compact {