@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 +10 -0
- package/dist/BlockShell.d.ts +1 -2
- package/dist/BlockShell.d.ts.map +1 -1
- package/dist/BlockShell.js +1 -2
- package/dist/ResponsiveTabs.d.ts +1 -2
- package/dist/ResponsiveTabs.d.ts.map +1 -1
- package/dist/ResponsiveTabs.js +2 -3
- package/package.json +1 -1
- package/src/BlockShell.tsx +0 -3
- package/src/ResponsiveTabs.tsx +1 -4
- package/styles/components.scss +7 -42
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
|
package/dist/BlockShell.d.ts
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,
|
|
9
|
+
export declare function BlockShell({ children, className, classPrefix, compact, depth, }: BlockShellProps): import("react/jsx-runtime").JSX.Element;
|
|
11
10
|
//# sourceMappingURL=BlockShell.d.ts.map
|
package/dist/BlockShell.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/BlockShell.js
CHANGED
|
@@ -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,
|
|
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 });
|
package/dist/ResponsiveTabs.d.ts
CHANGED
|
@@ -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,
|
|
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;
|
|
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"}
|
package/dist/ResponsiveTabs.js
CHANGED
|
@@ -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,
|
|
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
|
|
28
|
+
.join(' '), [className, classPrefix, isMobile]);
|
|
30
29
|
if (tabs.length === 0) {
|
|
31
30
|
return null;
|
|
32
31
|
}
|
package/package.json
CHANGED
package/src/BlockShell.tsx
CHANGED
|
@@ -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
|
|
package/src/ResponsiveTabs.tsx
CHANGED
|
@@ -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
|
|
63
|
+
[ className, classPrefix, isMobile ]
|
|
67
64
|
);
|
|
68
65
|
|
|
69
66
|
if ( tabs.length === 0 ) {
|
package/styles/components.scss
CHANGED
|
@@ -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-
|
|
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:
|
|
282
|
+
background: transparent;
|
|
318
283
|
}
|
|
319
284
|
|
|
320
285
|
.ec-block-shell--depth-1,
|
|
321
286
|
.ec-block-shell--depth-3 {
|
|
322
|
-
background:
|
|
287
|
+
background: transparent;
|
|
323
288
|
}
|
|
324
289
|
|
|
325
290
|
.ec-block-shell--depth-2 {
|
|
326
|
-
background:
|
|
291
|
+
background: transparent;
|
|
327
292
|
}
|
|
328
293
|
|
|
329
294
|
.ec-block-shell--compact {
|