@cck-ui/core 0.27.0 → 0.28.0

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.
@@ -0,0 +1,17 @@
1
+ "use client";
2
+ import { rem } from "../../core/utils/units-converters/rem.mjs";
3
+ import { getSize } from "../../core/utils/get-size/get-size.mjs";
4
+ import { getThemeColor } from "../../core/config-provider/color-functions/get-theme-color/get-theme-color.mjs";
5
+ import { createVarsResolver } from "../../core/styles-api/create-vars-resolver/create-vars-resolver.mjs";
6
+ //#region packages/@cck-ui/core/src/components/burger/burger.utils.ts
7
+ const varsResolver = createVarsResolver((theme, { color, size, lineSize, transitionDuration, transitionTimingFunction }) => ({ root: {
8
+ "--burger-color": color ? getThemeColor(color, theme) : void 0,
9
+ "--burger-line-size": lineSize ? rem(lineSize) : void 0,
10
+ "--burger-size": getSize(size, "burger-size"),
11
+ "--burger-transition-duration": transitionDuration === void 0 ? void 0 : `${transitionDuration}ms`,
12
+ "--burger-transition-timing-function": transitionTimingFunction
13
+ } }));
14
+ //#endregion
15
+ export { varsResolver };
16
+
17
+ //# sourceMappingURL=burger.utils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"burger.utils.mjs","names":[],"sources":["../../../src/components/burger/burger.utils.ts"],"sourcesContent":["import { createVarsResolver, getSize, getThemeColor, rem } from '../../core'\nimport { BurgerFactory } from './burger.types'\n\nexport const varsResolver = createVarsResolver<BurgerFactory>(\n (theme, { color, size, lineSize, transitionDuration, transitionTimingFunction }) => ({\n root: {\n '--burger-color': color ? getThemeColor(color, theme) : undefined,\n '--burger-line-size': lineSize ? rem(lineSize) : undefined,\n '--burger-size': getSize(size, 'burger-size'),\n '--burger-transition-duration':\n transitionDuration === undefined ? undefined : `${transitionDuration}ms`,\n '--burger-transition-timing-function': transitionTimingFunction,\n },\n })\n)\n"],"mappings":";;;;;;AAGA,MAAa,eAAe,oBACzB,OAAO,EAAE,OAAO,MAAM,UAAU,oBAAoB,gCAAgC,EACnF,MAAM;CACJ,kBAAkB,QAAQ,cAAc,OAAO,KAAK,IAAI,KAAA;CACxD,sBAAsB,WAAW,IAAI,QAAQ,IAAI,KAAA;CACjD,iBAAiB,QAAQ,MAAM,aAAa;CAC5C,gCACE,uBAAuB,KAAA,IAAY,KAAA,IAAY,GAAG,mBAAmB;CACvE,uCAAuC;AACzC,EACF,EACF"}
@@ -0,0 +1,11 @@
1
+ "use client";
2
+ import { withInstall } from "../../core/utils/vue/install.mjs";
3
+ import { withClasses, withExtend, withPropsFactory, withVarsResolver } from "../../core/utils/vue/statics.mjs";
4
+ import burger_module_default from "./burger.module.mjs";
5
+ import { varsResolver } from "./burger.utils.mjs";
6
+ import burger_default from "./burger.mjs";
7
+ const CBurger = withInstall(withPropsFactory(withExtend(withVarsResolver(withClasses(burger_default, burger_module_default), varsResolver))));
8
+ //#endregion
9
+ export { CBurger, CBurger as default };
10
+
11
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":["Burger","classes"],"sources":["../../../src/components/burger/index.ts"],"sourcesContent":["import {\n SFCWithInstallAndClasses,\n withClasses,\n withExtend,\n withInstall,\n withPropsFactory,\n withVarsResolver,\n} from '../../core'\nimport classes from './burger.module.css'\nimport { varsResolver } from './burger.utils'\nimport Burger from './burger.vue'\n\nconst BurgerWithStatic = withPropsFactory(\n withExtend(withVarsResolver(withClasses(Burger, classes), varsResolver))\n)\n\nexport const CBurger: SFCWithInstallAndClasses<typeof Burger, typeof classes> =\n withInstall(BurgerWithStatic)\n\nexport default CBurger\n\nexport * from './burger.types'\n"],"mappings":";;;;;;AAgBA,MAAa,UACX,YALuB,iBACvB,WAAW,iBAAiB,YAAYA,gBAAQC,qBAAO,GAAG,YAAY,CAAC,CAI3D,CAAgB"}
package/esm/index.mjs CHANGED
@@ -62,6 +62,7 @@ import { CText } from "./components/text/index.mjs";
62
62
  import { CAnchor } from "./components/anchor/index.mjs";
63
63
  import { CAspectRatio } from "./components/aspect-ratio/index.mjs";
64
64
  import { CBreadcrumbs } from "./components/breadcrumbs/index.mjs";
65
+ import { CBurger } from "./components/burger/index.mjs";
65
66
  import { CButton, CButtonGroup, CButtonGroupSection } from "./components/button/index.mjs";
66
67
  import { CCenter } from "./components/center/index.mjs";
67
68
  import { CContainer } from "./components/container/index.mjs";
@@ -96,6 +97,7 @@ const components = [
96
97
  CAnchor,
97
98
  CAspectRatio,
98
99
  CBreadcrumbs,
100
+ CBurger,
99
101
  CButton,
100
102
  CButtonGroup,
101
103
  CButtonGroupSection,
@@ -140,6 +142,6 @@ const CckUI = { install(app) {
140
142
  });
141
143
  } };
142
144
  //#endregion
143
- export { CActionIcon, CActionIconGroup, CActionIconGroupSection, CAlert, CAnchor, CAspectRatio, CBox, CBreadcrumbs, CButton, CButtonGroup, CButtonGroupSection, transitions as CCK_TRANSITIONS, CCenter, CCloseButton, CCol, CContainer, CCopyButton, CDefaultLoaders, CDivider, CEmptyState, CEmptyStateActions, CEmptyStateDescription, CEmptyStateIndicator, CEmptyStateTitle, CFileButton, CFlex, CFocusTrap, CGrid, CGroup, CImage, CLoader, CONFIG_KEY, CPaper, CPortal, CSemiCircleProgress, CSimpleGrid, CSkeleton, CSpace, CSplitter, CSplitterPane, CStack, CText, CTransition, CTypography, CVisuallyHidden, CckConfigProvider, CckUI, CckUI as default, DEFAULT_THEME, FOCUS_CLASS_NAMES, STYLE_PROPS_DATA, THEME_KEY, UnstyledButton, alpha, camelToKebabCase, colorsTuple, createTheme, createVarsResolver, darken, deepMerge, defaultCssVariablesResolver, defaultVariantColorsResolver, em, extractStyleProps, filterProps, getBaseValue, getBreakpointValue, getCSSColorVariables, getComponentName, getFontSize, getGradient, getLineHeight, getPrimaryShade, getRadius, getShadow, getSize, getSortedBreakpoints, getSpacing, getThemeColor, getTransitionProps, hashStyleProps, isLightColor, isNumber, isNumberLike, isString, isStringNumber, isUndefined, isVirtualColor, keys, luminance, mergeThemeOverrides, normalizeNumberLikeStringProp, numberLikeStringToNumber, parseStyleProps, parseThemeColor, px, rem, resolveClassNames, resolveStyles, responsiveStyleManager, rgb, rgba, stylesToString, toRgba, useCckClassNamesPrefix, useCckColorScheme, useCckCssVariablesResolver, useCckEnv, useCckIsHeadless, useCckStyleNonce, useCckStylesTransform, useCckSxTransform, useCckTheme, useCckWithStaticClasses, useComponentProps, useConfigContext, useProviderColorScheme, useRandomClassName, useStyles, virtualColor, withClasses, withExtend, withInstall, withPropsDefaultSetter, withPropsFactory, withVarsResolver };
145
+ export { CActionIcon, CActionIconGroup, CActionIconGroupSection, CAlert, CAnchor, CAspectRatio, CBox, CBreadcrumbs, CBurger, CButton, CButtonGroup, CButtonGroupSection, transitions as CCK_TRANSITIONS, CCenter, CCloseButton, CCol, CContainer, CCopyButton, CDefaultLoaders, CDivider, CEmptyState, CEmptyStateActions, CEmptyStateDescription, CEmptyStateIndicator, CEmptyStateTitle, CFileButton, CFlex, CFocusTrap, CGrid, CGroup, CImage, CLoader, CONFIG_KEY, CPaper, CPortal, CSemiCircleProgress, CSimpleGrid, CSkeleton, CSpace, CSplitter, CSplitterPane, CStack, CText, CTransition, CTypography, CVisuallyHidden, CckConfigProvider, CckUI, CckUI as default, DEFAULT_THEME, FOCUS_CLASS_NAMES, STYLE_PROPS_DATA, THEME_KEY, UnstyledButton, alpha, camelToKebabCase, colorsTuple, createTheme, createVarsResolver, darken, deepMerge, defaultCssVariablesResolver, defaultVariantColorsResolver, em, extractStyleProps, filterProps, getBaseValue, getBreakpointValue, getCSSColorVariables, getComponentName, getFontSize, getGradient, getLineHeight, getPrimaryShade, getRadius, getShadow, getSize, getSortedBreakpoints, getSpacing, getThemeColor, getTransitionProps, hashStyleProps, isLightColor, isNumber, isNumberLike, isString, isStringNumber, isUndefined, isVirtualColor, keys, luminance, mergeThemeOverrides, normalizeNumberLikeStringProp, numberLikeStringToNumber, parseStyleProps, parseThemeColor, px, rem, resolveClassNames, resolveStyles, responsiveStyleManager, rgb, rgba, stylesToString, toRgba, useCckClassNamesPrefix, useCckColorScheme, useCckCssVariablesResolver, useCckEnv, useCckIsHeadless, useCckStyleNonce, useCckStylesTransform, useCckSxTransform, useCckTheme, useCckWithStaticClasses, useComponentProps, useConfigContext, useProviderColorScheme, useRandomClassName, useStyles, virtualColor, withClasses, withExtend, withInstall, withPropsDefaultSetter, withPropsFactory, withVarsResolver };
144
146
 
145
147
  //# sourceMappingURL=index.mjs.map
package/esm/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["import type { App, Plugin } from 'vue'\nimport {\n CActionIcon,\n CActionIconGroup,\n CActionIconGroupSection,\n CAlert,\n CAnchor,\n CAspectRatio,\n CBreadcrumbs,\n CButton,\n CButtonGroup,\n CButtonGroupSection,\n CCenter,\n CCloseButton,\n CCol,\n CContainer,\n CCopyButton,\n CDivider,\n CEmptyState,\n CEmptyStateActions,\n CEmptyStateDescription,\n CEmptyStateIndicator,\n CEmptyStateTitle,\n CFileButton,\n CFlex,\n CFocusTrap,\n CGrid,\n CGroup,\n CImage,\n CLoader,\n CPaper,\n CPortal,\n CSemiCircleProgress,\n CSimpleGrid,\n CSkeleton,\n CSpace,\n CSplitter,\n CSplitterPane,\n CStack,\n CText,\n CTransition,\n CTypography,\n CVisuallyHidden,\n UnstyledButton,\n} from './components'\nimport { CckConfigProvider, CBox } from './core'\n\nconst INSTALLED_KEY = Symbol('INSTALLED_KEY')\n\nconst components = [\n CckConfigProvider,\n CBox,\n CActionIcon,\n CActionIconGroup,\n CActionIconGroupSection,\n CAlert,\n CAnchor,\n CAspectRatio,\n CBreadcrumbs,\n CButton,\n CButtonGroup,\n CButtonGroupSection,\n CCenter,\n CCloseButton,\n CCol,\n CContainer,\n CCopyButton,\n CDivider,\n CEmptyState,\n CEmptyStateActions,\n CEmptyStateDescription,\n CEmptyStateIndicator,\n CEmptyStateTitle,\n CFileButton,\n CFlex,\n CFocusTrap,\n CGrid,\n CGroup,\n CImage,\n CLoader,\n CPaper,\n CPortal,\n CSemiCircleProgress,\n CSimpleGrid,\n CSkeleton,\n CSpace,\n CSplitter,\n CSplitterPane,\n CStack,\n CText,\n CTransition,\n CTypography,\n CVisuallyHidden,\n UnstyledButton,\n]\n\nconst CckUI: Plugin = {\n install(app: App) {\n if ((app as any)[INSTALLED_KEY]) {\n return\n }\n ;(app as any)[INSTALLED_KEY] = true\n components.forEach((c) => {\n if (c.name) {\n app.component(c.name, c)\n }\n })\n },\n}\n\nexport default CckUI\nexport { CckUI }\n\nexport * from './components'\nexport * from './core'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,MAAM,gBAAgB,OAAO,eAAe;AAE5C,MAAM,aAAa;CACjB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,MAAM,QAAgB,EACpB,QAAQ,KAAU;CAChB,IAAK,IAAY,gBACf;CAED,IAAa,iBAAiB;CAC/B,WAAW,SAAS,MAAM;EACxB,IAAI,EAAE,MACJ,IAAI,UAAU,EAAE,MAAM,CAAC;CAE3B,CAAC;AACH,EACF"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["import type { App, Plugin } from 'vue'\nimport {\n CActionIcon,\n CActionIconGroup,\n CActionIconGroupSection,\n CAlert,\n CAnchor,\n CAspectRatio,\n CBreadcrumbs,\n CBurger,\n CButton,\n CButtonGroup,\n CButtonGroupSection,\n CCenter,\n CCloseButton,\n CCol,\n CContainer,\n CCopyButton,\n CDivider,\n CEmptyState,\n CEmptyStateActions,\n CEmptyStateDescription,\n CEmptyStateIndicator,\n CEmptyStateTitle,\n CFileButton,\n CFlex,\n CFocusTrap,\n CGrid,\n CGroup,\n CImage,\n CLoader,\n CPaper,\n CPortal,\n CSemiCircleProgress,\n CSimpleGrid,\n CSkeleton,\n CSpace,\n CSplitter,\n CSplitterPane,\n CStack,\n CText,\n CTransition,\n CTypography,\n CVisuallyHidden,\n UnstyledButton,\n} from './components'\nimport { CckConfigProvider, CBox } from './core'\n\nconst INSTALLED_KEY = Symbol('INSTALLED_KEY')\n\nconst components = [\n CckConfigProvider,\n CBox,\n CActionIcon,\n CActionIconGroup,\n CActionIconGroupSection,\n CAlert,\n CAnchor,\n CAspectRatio,\n CBreadcrumbs,\n CBurger,\n CButton,\n CButtonGroup,\n CButtonGroupSection,\n CCenter,\n CCloseButton,\n CCol,\n CContainer,\n CCopyButton,\n CDivider,\n CEmptyState,\n CEmptyStateActions,\n CEmptyStateDescription,\n CEmptyStateIndicator,\n CEmptyStateTitle,\n CFileButton,\n CFlex,\n CFocusTrap,\n CGrid,\n CGroup,\n CImage,\n CLoader,\n CPaper,\n CPortal,\n CSemiCircleProgress,\n CSimpleGrid,\n CSkeleton,\n CSpace,\n CSplitter,\n CSplitterPane,\n CStack,\n CText,\n CTransition,\n CTypography,\n CVisuallyHidden,\n UnstyledButton,\n]\n\nconst CckUI: Plugin = {\n install(app: App) {\n if ((app as any)[INSTALLED_KEY]) {\n return\n }\n ;(app as any)[INSTALLED_KEY] = true\n components.forEach((c) => {\n if (c.name) {\n app.component(c.name, c)\n }\n })\n },\n}\n\nexport default CckUI\nexport { CckUI }\n\nexport * from './components'\nexport * from './core'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,MAAM,gBAAgB,OAAO,eAAe;AAE5C,MAAM,aAAa;CACjB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,MAAM,QAAgB,EACpB,QAAQ,KAAU;CAChB,IAAK,IAAY,gBACf;CAED,IAAa,iBAAiB;CAC/B,WAAW,SAAS,MAAM;EACxB,IAAI,EAAE,MACJ,IAAI,UAAU,EAAE,MAAM,CAAC;CAE3B,CAAC;AACH,EACF"}
@@ -0,0 +1,40 @@
1
+ import { BoxProps, CColor, CSize, ElementProps, Factory, StylesApiProps } from '../../core';
2
+ export type BurgerStylesNames = 'root' | 'burger';
3
+ export type BurgerCssVariables = {
4
+ root: '--burger-color' | '--burger-size' | '--burger-line-size' | '--burger-transition-duration' | '--burger-transition-timing-function';
5
+ };
6
+ export interface BurgerProps extends BoxProps, StylesApiProps<BurgerFactory>, /* @vue-ignore */ ElementProps<'button'> {
7
+ /**
8
+ * Controls burger `width` and `height`, numbers are converted to rem
9
+ * @default 'md'
10
+ */
11
+ size?: CSize | (string & {}) | number;
12
+ /**
13
+ * Controls height of lines, by default calculated based on `size` prop
14
+ */
15
+ lineSize?: string | number;
16
+ /**
17
+ * Key of `theme.colors` of any valid CSS value, by default `theme.white` in dark color scheme and `theme.black` in light
18
+ */
19
+ color?: CColor;
20
+ /**
21
+ * State of the burger, when `true` burger is transformed into x
22
+ * @default false
23
+ */
24
+ opened?: boolean;
25
+ /**
26
+ * `transition-duration` property value in ms
27
+ * @default 300
28
+ */
29
+ transitionDuration?: number;
30
+ /** `transition-timing-function` property value
31
+ * @default 'ease'
32
+ */
33
+ transitionTimingFunction?: string;
34
+ }
35
+ export type BurgerFactory = Factory<{
36
+ props: BurgerProps;
37
+ ref: HTMLButtonElement;
38
+ stylesNames: BurgerStylesNames;
39
+ vars: BurgerCssVariables;
40
+ }>;
@@ -0,0 +1,6 @@
1
+ export declare const varsResolver: import("../..").VarsResolver<{
2
+ props: import("./burger.types").BurgerProps;
3
+ ref: HTMLButtonElement;
4
+ stylesNames: import("./burger.types").BurgerStylesNames;
5
+ vars: import("./burger.types").BurgerCssVariables;
6
+ }>;
@@ -0,0 +1,6 @@
1
+ import { SFCWithInstallAndClasses } from '../../core';
2
+ import classes from './burger.module.css';
3
+ import Burger from './burger.vue';
4
+ export declare const CBurger: SFCWithInstallAndClasses<typeof Burger, typeof classes>;
5
+ export default CBurger;
6
+ export * from './burger.types';
@@ -3,6 +3,7 @@ export * from './alert';
3
3
  export * from './anchor';
4
4
  export * from './aspect-ratio';
5
5
  export * from './breadcrumbs';
6
+ export * from './burger';
6
7
  export * from './button';
7
8
  export * from './center';
8
9
  export * from './close-button';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cck-ui/core",
3
- "version": "0.27.0",
3
+ "version": "0.28.0",
4
4
  "description": "Vue component library focused on usability, accessibility and developer experience",
5
5
  "homepage": "https://cck-ui.jackatlas.xyz",
6
6
  "license": "ISC",
@@ -0,0 +1,68 @@
1
+ .m_9b3d173a {
2
+ --burger-size-xs: calc(0.75rem * var(--c-scale));
3
+ --burger-size-sm: calc(1.125rem * var(--c-scale));
4
+ --burger-size-md: calc(1.5rem * var(--c-scale));
5
+ --burger-size-lg: calc(2.125rem * var(--c-scale));
6
+ --burger-size-xl: calc(2.625rem * var(--c-scale));
7
+
8
+ --burger-size: var(--burger-size-md);
9
+ --burger-line-size: calc(var(--burger-size) / 12);
10
+
11
+ width: calc(var(--burger-size) + var(--c-spacing-xs));
12
+ height: calc(var(--burger-size) + var(--c-spacing-xs));
13
+ padding: calc(var(--c-spacing-xs) / 2);
14
+ cursor: pointer;
15
+ }
16
+
17
+ :where([data-c-color-scheme='light']) .m_9b3d173a {
18
+ --burger-color: var(--c-color-black);
19
+ }
20
+
21
+ :where([data-c-color-scheme='dark']) .m_9b3d173a {
22
+ --burger-color: var(--c-color-white);
23
+ }
24
+
25
+ .m_a55c6ccd {
26
+ position: relative;
27
+ user-select: none;
28
+ }
29
+
30
+ .m_a55c6ccd,
31
+ .m_a55c6ccd::before,
32
+ .m_a55c6ccd::after {
33
+ display: block;
34
+ width: var(--burger-size);
35
+ height: var(--burger-line-size);
36
+ background-color: var(--burger-color);
37
+ outline: calc(0.0625rem * var(--c-scale)) solid transparent;
38
+ transition-property: background-color, transform;
39
+ transition-duration: var(--burger-transition-duration, 300ms);
40
+ transition-timing-function: var(--burger-transition-timing-function, ease);
41
+ }
42
+
43
+ .m_a55c6ccd::before,
44
+ .m_a55c6ccd::after {
45
+ position: absolute;
46
+ content: '';
47
+ inset-inline-start: 0;
48
+ }
49
+
50
+ .m_a55c6ccd::before {
51
+ top: calc(var(--burger-size) / -3);
52
+ }
53
+
54
+ .m_a55c6ccd::after {
55
+ top: calc(var(--burger-size) / 3);
56
+ }
57
+
58
+ .m_a55c6ccd[data-opened] {
59
+ background-color: transparent;
60
+ }
61
+
62
+ .m_a55c6ccd[data-opened]::before {
63
+ transform: translateY(calc(var(--burger-size) / 3)) rotate(45deg);
64
+ }
65
+
66
+ .m_a55c6ccd[data-opened]::after {
67
+ transform: translateY(calc(var(--burger-size) / -3)) rotate(-45deg);
68
+ }
@@ -0,0 +1,69 @@
1
+ @layer cck {.m_9b3d173a {
2
+ --burger-size-xs: calc(0.75rem * var(--c-scale));
3
+ --burger-size-sm: calc(1.125rem * var(--c-scale));
4
+ --burger-size-md: calc(1.5rem * var(--c-scale));
5
+ --burger-size-lg: calc(2.125rem * var(--c-scale));
6
+ --burger-size-xl: calc(2.625rem * var(--c-scale));
7
+
8
+ --burger-size: var(--burger-size-md);
9
+ --burger-line-size: calc(var(--burger-size) / 12);
10
+
11
+ width: calc(var(--burger-size) + var(--c-spacing-xs));
12
+ height: calc(var(--burger-size) + var(--c-spacing-xs));
13
+ padding: calc(var(--c-spacing-xs) / 2);
14
+ cursor: pointer;
15
+ }
16
+
17
+ :where([data-c-color-scheme='light']) .m_9b3d173a {
18
+ --burger-color: var(--c-color-black);
19
+ }
20
+
21
+ :where([data-c-color-scheme='dark']) .m_9b3d173a {
22
+ --burger-color: var(--c-color-white);
23
+ }
24
+
25
+ .m_a55c6ccd {
26
+ position: relative;
27
+ user-select: none;
28
+ }
29
+
30
+ .m_a55c6ccd,
31
+ .m_a55c6ccd::before,
32
+ .m_a55c6ccd::after {
33
+ display: block;
34
+ width: var(--burger-size);
35
+ height: var(--burger-line-size);
36
+ background-color: var(--burger-color);
37
+ outline: calc(0.0625rem * var(--c-scale)) solid transparent;
38
+ transition-property: background-color, transform;
39
+ transition-duration: var(--burger-transition-duration, 300ms);
40
+ transition-timing-function: var(--burger-transition-timing-function, ease);
41
+ }
42
+
43
+ .m_a55c6ccd::before,
44
+ .m_a55c6ccd::after {
45
+ position: absolute;
46
+ content: '';
47
+ inset-inline-start: 0;
48
+ }
49
+
50
+ .m_a55c6ccd::before {
51
+ top: calc(var(--burger-size) / -3);
52
+ }
53
+
54
+ .m_a55c6ccd::after {
55
+ top: calc(var(--burger-size) / 3);
56
+ }
57
+
58
+ .m_a55c6ccd[data-opened] {
59
+ background-color: transparent;
60
+ }
61
+
62
+ .m_a55c6ccd[data-opened]::before {
63
+ transform: translateY(calc(var(--burger-size) / 3)) rotate(45deg);
64
+ }
65
+
66
+ .m_a55c6ccd[data-opened]::after {
67
+ transform: translateY(calc(var(--burger-size) / -3)) rotate(-45deg);
68
+ }
69
+ }
package/styles.css CHANGED
@@ -1306,6 +1306,75 @@ fieldset:disabled .c-active:active {
1306
1306
  color: var(--c-color-dark-2);
1307
1307
  }
1308
1308
 
1309
+ .m_9b3d173a {
1310
+ --burger-size-xs: calc(0.75rem * var(--c-scale));
1311
+ --burger-size-sm: calc(1.125rem * var(--c-scale));
1312
+ --burger-size-md: calc(1.5rem * var(--c-scale));
1313
+ --burger-size-lg: calc(2.125rem * var(--c-scale));
1314
+ --burger-size-xl: calc(2.625rem * var(--c-scale));
1315
+
1316
+ --burger-size: var(--burger-size-md);
1317
+ --burger-line-size: calc(var(--burger-size) / 12);
1318
+
1319
+ width: calc(var(--burger-size) + var(--c-spacing-xs));
1320
+ height: calc(var(--burger-size) + var(--c-spacing-xs));
1321
+ padding: calc(var(--c-spacing-xs) / 2);
1322
+ cursor: pointer;
1323
+ }
1324
+
1325
+ :where([data-c-color-scheme='light']) .m_9b3d173a {
1326
+ --burger-color: var(--c-color-black);
1327
+ }
1328
+
1329
+ :where([data-c-color-scheme='dark']) .m_9b3d173a {
1330
+ --burger-color: var(--c-color-white);
1331
+ }
1332
+
1333
+ .m_a55c6ccd {
1334
+ position: relative;
1335
+ user-select: none;
1336
+ }
1337
+
1338
+ .m_a55c6ccd,
1339
+ .m_a55c6ccd::before,
1340
+ .m_a55c6ccd::after {
1341
+ display: block;
1342
+ width: var(--burger-size);
1343
+ height: var(--burger-line-size);
1344
+ background-color: var(--burger-color);
1345
+ outline: calc(0.0625rem * var(--c-scale)) solid transparent;
1346
+ transition-property: background-color, transform;
1347
+ transition-duration: var(--burger-transition-duration, 300ms);
1348
+ transition-timing-function: var(--burger-transition-timing-function, ease);
1349
+ }
1350
+
1351
+ .m_a55c6ccd::before,
1352
+ .m_a55c6ccd::after {
1353
+ position: absolute;
1354
+ content: '';
1355
+ inset-inline-start: 0;
1356
+ }
1357
+
1358
+ .m_a55c6ccd::before {
1359
+ top: calc(var(--burger-size) / -3);
1360
+ }
1361
+
1362
+ .m_a55c6ccd::after {
1363
+ top: calc(var(--burger-size) / 3);
1364
+ }
1365
+
1366
+ .m_a55c6ccd[data-opened] {
1367
+ background-color: transparent;
1368
+ }
1369
+
1370
+ .m_a55c6ccd[data-opened]::before {
1371
+ transform: translateY(calc(var(--burger-size) / 3)) rotate(45deg);
1372
+ }
1373
+
1374
+ .m_a55c6ccd[data-opened]::after {
1375
+ transform: translateY(calc(var(--burger-size) / -3)) rotate(-45deg);
1376
+ }
1377
+
1309
1378
  .m_e0e8435a {
1310
1379
  display: flex;
1311
1380
  align-items: center;
package/styles.layer.css CHANGED
@@ -1306,6 +1306,75 @@ fieldset:disabled .c-active:active {
1306
1306
  color: var(--c-color-dark-2);
1307
1307
  }
1308
1308
 
1309
+ .m_9b3d173a {
1310
+ --burger-size-xs: calc(0.75rem * var(--c-scale));
1311
+ --burger-size-sm: calc(1.125rem * var(--c-scale));
1312
+ --burger-size-md: calc(1.5rem * var(--c-scale));
1313
+ --burger-size-lg: calc(2.125rem * var(--c-scale));
1314
+ --burger-size-xl: calc(2.625rem * var(--c-scale));
1315
+
1316
+ --burger-size: var(--burger-size-md);
1317
+ --burger-line-size: calc(var(--burger-size) / 12);
1318
+
1319
+ width: calc(var(--burger-size) + var(--c-spacing-xs));
1320
+ height: calc(var(--burger-size) + var(--c-spacing-xs));
1321
+ padding: calc(var(--c-spacing-xs) / 2);
1322
+ cursor: pointer;
1323
+ }
1324
+
1325
+ :where([data-c-color-scheme='light']) .m_9b3d173a {
1326
+ --burger-color: var(--c-color-black);
1327
+ }
1328
+
1329
+ :where([data-c-color-scheme='dark']) .m_9b3d173a {
1330
+ --burger-color: var(--c-color-white);
1331
+ }
1332
+
1333
+ .m_a55c6ccd {
1334
+ position: relative;
1335
+ user-select: none;
1336
+ }
1337
+
1338
+ .m_a55c6ccd,
1339
+ .m_a55c6ccd::before,
1340
+ .m_a55c6ccd::after {
1341
+ display: block;
1342
+ width: var(--burger-size);
1343
+ height: var(--burger-line-size);
1344
+ background-color: var(--burger-color);
1345
+ outline: calc(0.0625rem * var(--c-scale)) solid transparent;
1346
+ transition-property: background-color, transform;
1347
+ transition-duration: var(--burger-transition-duration, 300ms);
1348
+ transition-timing-function: var(--burger-transition-timing-function, ease);
1349
+ }
1350
+
1351
+ .m_a55c6ccd::before,
1352
+ .m_a55c6ccd::after {
1353
+ position: absolute;
1354
+ content: '';
1355
+ inset-inline-start: 0;
1356
+ }
1357
+
1358
+ .m_a55c6ccd::before {
1359
+ top: calc(var(--burger-size) / -3);
1360
+ }
1361
+
1362
+ .m_a55c6ccd::after {
1363
+ top: calc(var(--burger-size) / 3);
1364
+ }
1365
+
1366
+ .m_a55c6ccd[data-opened] {
1367
+ background-color: transparent;
1368
+ }
1369
+
1370
+ .m_a55c6ccd[data-opened]::before {
1371
+ transform: translateY(calc(var(--burger-size) / 3)) rotate(45deg);
1372
+ }
1373
+
1374
+ .m_a55c6ccd[data-opened]::after {
1375
+ transform: translateY(calc(var(--burger-size) / -3)) rotate(-45deg);
1376
+ }
1377
+
1309
1378
  .m_e0e8435a {
1310
1379
  display: flex;
1311
1380
  align-items: center;