@extrachill/components 0.4.11 → 0.4.12

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,10 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.4.12] - 2026-03-25
4
+
5
+ ### Changed
6
+ - Make shell and responsive tabs use one shared path
7
+
3
8
  ## [0.4.11] - 2026-03-25
4
9
 
5
10
  ### 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.12",
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 ) {
@@ -276,7 +276,7 @@
276
276
  display: none;
277
277
  }
278
278
 
279
- .ec-responsive-tabs--mobile-edge-to-edge .ec-responsive-tabs__item {
279
+ .ec-responsive-tabs__item {
280
280
  margin-left: calc(var(--spacing-md, 1rem) * -1);
281
281
  margin-right: calc(var(--spacing-md, 1rem) * -1);
282
282
  border-left: 0;
@@ -297,33 +297,26 @@
297
297
 
298
298
  // Block shell / top-level wrapper
299
299
  .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
300
  background: transparent;
311
301
  border: 0;
312
302
  border-radius: 0;
313
303
  padding: 0;
304
+ box-sizing: border-box;
305
+ display: grid;
306
+ gap: var(--spacing-lg, 1.5rem);
314
307
  }
315
308
 
316
309
  .ec-block-shell--depth-0 {
317
- background: var(--card-background, #f1f5f9);
310
+ background: transparent;
318
311
  }
319
312
 
320
313
  .ec-block-shell--depth-1,
321
314
  .ec-block-shell--depth-3 {
322
- background: var(--background-color, #fff);
315
+ background: transparent;
323
316
  }
324
317
 
325
318
  .ec-block-shell--depth-2 {
326
- background: var(--card-background, #f1f5f9);
319
+ background: transparent;
327
320
  }
328
321
 
329
322
  .ec-block-shell--compact {