@macolmenerori/component-library 1.3.0 → 1.4.0-beta.1

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.
Files changed (52) hide show
  1. package/README.md +9 -8
  2. package/dist/MarkdownRender-CKB5xnfI.cjs +2 -0
  3. package/dist/MarkdownRender-CKB5xnfI.cjs.map +1 -0
  4. package/dist/MarkdownRender-c_W7bXpS.js +44 -0
  5. package/dist/MarkdownRender-c_W7bXpS.js.map +1 -0
  6. package/dist/MonthlyCalendar-BflN-u8m.js +95 -0
  7. package/dist/MonthlyCalendar-BflN-u8m.js.map +1 -0
  8. package/dist/MonthlyCalendar-DDXHhlwC.cjs +2 -0
  9. package/dist/MonthlyCalendar-DDXHhlwC.cjs.map +1 -0
  10. package/dist/ThemeSwitch-C648hdUm.js +110 -0
  11. package/dist/ThemeSwitch-C648hdUm.js.map +1 -0
  12. package/dist/ThemeSwitch-Cn7-KsSv.cjs +2 -0
  13. package/dist/ThemeSwitch-Cn7-KsSv.cjs.map +1 -0
  14. package/dist/ThemeSwitch.css +1 -1
  15. package/dist/chunk-Bmb41Sf3.cjs +1 -0
  16. package/dist/index.cjs +1 -2
  17. package/dist/index.js +4 -9
  18. package/dist/markdown-render.cjs +1 -2
  19. package/dist/markdown-render.js +2 -5
  20. package/dist/monthly-calendar.cjs +1 -2
  21. package/dist/monthly-calendar.js +2 -5
  22. package/dist/theme-switch-css.d.ts +1 -0
  23. package/dist/theme-switch.cjs +1 -2
  24. package/dist/theme-switch.js +2 -5
  25. package/package.json +20 -10
  26. package/dist/MarkdownRender-BOGosy9w.cjs +0 -2
  27. package/dist/MarkdownRender-BOGosy9w.cjs.map +0 -1
  28. package/dist/MarkdownRender-BmrS3q0l.js +0 -37
  29. package/dist/MarkdownRender-BmrS3q0l.js.map +0 -1
  30. package/dist/MonthlyCalendar-D-tD_2xK.cjs +0 -2
  31. package/dist/MonthlyCalendar-D-tD_2xK.cjs.map +0 -1
  32. package/dist/MonthlyCalendar-D9jC2b2L.js +0 -116
  33. package/dist/MonthlyCalendar-D9jC2b2L.js.map +0 -1
  34. package/dist/ThemeSwitch-C7k1_MA4.cjs +0 -2
  35. package/dist/ThemeSwitch-C7k1_MA4.cjs.map +0 -1
  36. package/dist/ThemeSwitch-DbaEio36.js +0 -104
  37. package/dist/ThemeSwitch-DbaEio36.js.map +0 -1
  38. package/dist/index.cjs.map +0 -1
  39. package/dist/index.js.map +0 -1
  40. package/dist/markdown-render.cjs.map +0 -1
  41. package/dist/markdown-render.js.map +0 -1
  42. package/dist/monthly-calendar.cjs.map +0 -1
  43. package/dist/monthly-calendar.js.map +0 -1
  44. package/dist/theme-switch.cjs.map +0 -1
  45. package/dist/theme-switch.js.map +0 -1
  46. /package/dist/types/{components → src/components}/MarkdownRender/MarkdownRender.d.ts +0 -0
  47. /package/dist/types/{components → src/components}/MarkdownRender/index.d.ts +0 -0
  48. /package/dist/types/{components → src/components}/MonthlyCalendar/MonthlyCalendar.d.ts +0 -0
  49. /package/dist/types/{components → src/components}/MonthlyCalendar/index.d.ts +0 -0
  50. /package/dist/types/{components → src/components}/ThemeSwitch/ThemeSwitch.d.ts +0 -0
  51. /package/dist/types/{components → src/components}/ThemeSwitch/index.d.ts +0 -0
  52. /package/dist/types/{index.d.ts → src/index.d.ts} +0 -0
package/README.md CHANGED
@@ -38,12 +38,12 @@ Import components from the library. You can use the main entry point or subpath
38
38
 
39
39
  ### Subpath Exports
40
40
 
41
- | Import Path | Components | Dependencies Required |
42
- | -------------------------------------------------- | -------------- | --------------------------------- |
43
- | `@macolmenerori/component-library` | All | react, react-markdown, remark-gfm |
44
- | `@macolmenerori/component-library/theme-switch` | ThemeSwitch | react |
45
- | `@macolmenerori/component-library/monthly-calendar` | MonthlyCalendar | react |
46
- | `@macolmenerori/component-library/markdown-render` | MarkdownRender | react, react-markdown, remark-gfm |
41
+ | Import Path | Components | Dependencies Required |
42
+ | --------------------------------------------------- | --------------- | --------------------------------- |
43
+ | `@macolmenerori/component-library` | All | react, react-markdown, remark-gfm |
44
+ | `@macolmenerori/component-library/theme-switch` | ThemeSwitch | react |
45
+ | `@macolmenerori/component-library/monthly-calendar` | MonthlyCalendar | react |
46
+ | `@macolmenerori/component-library/markdown-render` | MarkdownRender | react, react-markdown, remark-gfm |
47
47
 
48
48
  ### Available Components
49
49
 
@@ -226,8 +226,9 @@ This will generate multiple entry points:
226
226
 
227
227
  To publish a new version:
228
228
 
229
- 1. Build the library: `pnpm build`
230
- 2. Publish: `pnpm publish`
229
+ 1. Bump version with `pnpm release <major | minor | patch>`
230
+ 2. Build the library: `pnpm build`
231
+ 3. Publish: `pnpm publish`
231
232
 
232
233
  ## Technology Stack
233
234
 
@@ -0,0 +1,2 @@
1
+ const e=require(`./chunk-Bmb41Sf3.cjs`);let t=require(`react`),n=require(`react-markdown`);n=e.t(n);let r=require(`remark-gfm`);r=e.t(r);let i=require(`react/jsx-runtime`);var a=({content:e,className:a,components:o,linkTarget:s,responsiveImages:c,rehypePlugins:l})=>{let u=(0,t.useMemo)(()=>{let e={};return s&&!o?.a&&(e.a=({children:e,...t})=>(0,i.jsx)(`a`,{...t,target:s,rel:s===`_blank`?`noreferrer`:void 0,children:e})),c&&!o?.img&&(e.img=({alt:e,...t})=>(0,i.jsx)(`img`,{alt:e??``,...t,style:{maxWidth:`100%`,height:`auto`,...t.style}})),{...e,...o}},[o,s,c]),d=Object.keys(u).length>0;return(0,i.jsx)(`div`,{className:a,children:(0,i.jsx)(n.default,{remarkPlugins:[r.default],rehypePlugins:l,components:d?u:void 0,children:e})})};Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
2
+ //# sourceMappingURL=MarkdownRender-CKB5xnfI.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkdownRender-CKB5xnfI.cjs","names":[],"sources":["../src/components/MarkdownRender/MarkdownRender.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport ReactMarkdown, { type Components, type Options } from 'react-markdown';\n\nimport remarkGfm from 'remark-gfm';\n\nexport interface MarkdownProps {\n /** The markdown string to render */\n content: string;\n /** Optional CSS class name for the container */\n className?: string;\n /** Custom component overrides for markdown elements */\n components?: Partial<Components>;\n /** Target for all links (defaults to '_self') */\n linkTarget?: '_blank' | '_self' | '_parent' | '_top';\n /** Make all images responsive (defaults to false) */\n responsiveImages?: boolean;\n /** Optional rehype plugins for HTML processing */\n rehypePlugins?: Options['rehypePlugins'];\n}\n\n/**\n * A component that renders a markdown string as HTML.\n * Supports GitHub Flavored Markdown (GFM) including tables,\n * strikethrough, task lists, and autolinks.\n */\nconst MarkdownRender: React.FC<MarkdownProps> = ({\n content,\n className,\n components,\n linkTarget,\n responsiveImages,\n rehypePlugins\n}) => {\n const mergedComponents = useMemo(() => {\n const generated: Partial<Components> = {};\n\n // Auto-generate link component if linkTarget is set and no custom 'a' provided\n if (linkTarget && !components?.a) {\n generated.a = ({ children, ...props }) => (\n <a {...props} target={linkTarget} rel={linkTarget === '_blank' ? 'noreferrer' : undefined}>\n {children}\n </a>\n );\n }\n\n // Auto-generate image component if responsiveImages and no custom 'img' provided\n if (responsiveImages && !components?.img) {\n generated.img = ({ alt, ...props }) => (\n <img\n alt={alt ?? ''}\n {...props}\n style={{ maxWidth: '100%', height: 'auto', ...props.style }}\n />\n );\n }\n\n // User-provided components override auto-generated ones\n return { ...generated, ...components };\n }, [components, linkTarget, responsiveImages]);\n\n const hasComponents = Object.keys(mergedComponents).length > 0;\n\n return (\n <div className={className}>\n <ReactMarkdown\n remarkPlugins={[remarkGfm]}\n rehypePlugins={rehypePlugins}\n components={hasComponents ? mergedComponents : undefined}\n >\n {content}\n </ReactMarkdown>\n </div>\n );\n};\n\nexport default MarkdownRender;\n"],"mappings":"4KAyBA,IAAM,GAA2C,CAC/C,UACA,YACA,aACA,aACA,mBACA,mBACI,CACJ,IAAM,GAAA,EAAA,EAAA,aAAiC,CACrC,IAAM,EAAiC,EAAE,CAuBzC,OApBI,GAAc,CAAC,GAAY,IAC7B,EAAU,GAAK,CAAE,WAAU,GAAG,MAC5B,EAAA,EAAA,KAAC,IAAD,CAAG,GAAI,EAAO,OAAQ,EAAY,IAAK,IAAe,SAAW,aAAe,IAAA,GAC7E,WACC,CAAA,EAKJ,GAAoB,CAAC,GAAY,MACnC,EAAU,KAAO,CAAE,MAAK,GAAG,MACzB,EAAA,EAAA,KAAC,MAAD,CACE,IAAK,GAAO,GACZ,GAAI,EACJ,MAAO,CAAE,SAAU,OAAQ,OAAQ,OAAQ,GAAG,EAAM,MAAO,CAC3D,CAAA,EAKC,CAAE,GAAG,EAAW,GAAG,EAAY,EACrC,CAAC,EAAY,EAAY,EAAiB,CAAC,CAExC,EAAgB,OAAO,KAAK,EAAiB,CAAC,OAAS,EAE7D,OACE,EAAA,EAAA,KAAC,MAAD,CAAgB,sBACd,EAAA,EAAA,KAAC,EAAA,QAAD,CACE,cAAe,CAAC,EAAA,QAAU,CACX,gBACf,WAAY,EAAgB,EAAmB,IAAA,YAE9C,EACa,CAAA,CACZ,CAAA"}
@@ -0,0 +1,44 @@
1
+ import { useMemo as e } from "react";
2
+ import t from "react-markdown";
3
+ import n from "remark-gfm";
4
+ import { jsx as r } from "react/jsx-runtime";
5
+ //#region src/components/MarkdownRender/MarkdownRender.tsx
6
+ var i = ({ content: i, className: a, components: o, linkTarget: s, responsiveImages: c, rehypePlugins: l }) => {
7
+ let u = e(() => {
8
+ let e = {};
9
+ return s && !o?.a && (e.a = ({ children: e, ...t }) => /* @__PURE__ */ r("a", {
10
+ ...t,
11
+ target: s,
12
+ rel: s === "_blank" ? "noreferrer" : void 0,
13
+ children: e
14
+ })), c && !o?.img && (e.img = ({ alt: e, ...t }) => /* @__PURE__ */ r("img", {
15
+ alt: e ?? "",
16
+ ...t,
17
+ style: {
18
+ maxWidth: "100%",
19
+ height: "auto",
20
+ ...t.style
21
+ }
22
+ })), {
23
+ ...e,
24
+ ...o
25
+ };
26
+ }, [
27
+ o,
28
+ s,
29
+ c
30
+ ]), d = Object.keys(u).length > 0;
31
+ return /* @__PURE__ */ r("div", {
32
+ className: a,
33
+ children: /* @__PURE__ */ r(t, {
34
+ remarkPlugins: [n],
35
+ rehypePlugins: l,
36
+ components: d ? u : void 0,
37
+ children: i
38
+ })
39
+ });
40
+ };
41
+ //#endregion
42
+ export { i as t };
43
+
44
+ //# sourceMappingURL=MarkdownRender-c_W7bXpS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkdownRender-c_W7bXpS.js","names":[],"sources":["../src/components/MarkdownRender/MarkdownRender.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport ReactMarkdown, { type Components, type Options } from 'react-markdown';\n\nimport remarkGfm from 'remark-gfm';\n\nexport interface MarkdownProps {\n /** The markdown string to render */\n content: string;\n /** Optional CSS class name for the container */\n className?: string;\n /** Custom component overrides for markdown elements */\n components?: Partial<Components>;\n /** Target for all links (defaults to '_self') */\n linkTarget?: '_blank' | '_self' | '_parent' | '_top';\n /** Make all images responsive (defaults to false) */\n responsiveImages?: boolean;\n /** Optional rehype plugins for HTML processing */\n rehypePlugins?: Options['rehypePlugins'];\n}\n\n/**\n * A component that renders a markdown string as HTML.\n * Supports GitHub Flavored Markdown (GFM) including tables,\n * strikethrough, task lists, and autolinks.\n */\nconst MarkdownRender: React.FC<MarkdownProps> = ({\n content,\n className,\n components,\n linkTarget,\n responsiveImages,\n rehypePlugins\n}) => {\n const mergedComponents = useMemo(() => {\n const generated: Partial<Components> = {};\n\n // Auto-generate link component if linkTarget is set and no custom 'a' provided\n if (linkTarget && !components?.a) {\n generated.a = ({ children, ...props }) => (\n <a {...props} target={linkTarget} rel={linkTarget === '_blank' ? 'noreferrer' : undefined}>\n {children}\n </a>\n );\n }\n\n // Auto-generate image component if responsiveImages and no custom 'img' provided\n if (responsiveImages && !components?.img) {\n generated.img = ({ alt, ...props }) => (\n <img\n alt={alt ?? ''}\n {...props}\n style={{ maxWidth: '100%', height: 'auto', ...props.style }}\n />\n );\n }\n\n // User-provided components override auto-generated ones\n return { ...generated, ...components };\n }, [components, linkTarget, responsiveImages]);\n\n const hasComponents = Object.keys(mergedComponents).length > 0;\n\n return (\n <div className={className}>\n <ReactMarkdown\n remarkPlugins={[remarkGfm]}\n rehypePlugins={rehypePlugins}\n components={hasComponents ? mergedComponents : undefined}\n >\n {content}\n </ReactMarkdown>\n </div>\n );\n};\n\nexport default MarkdownRender;\n"],"mappings":";;;;;AAyBA,IAAM,KAA2C,EAC/C,YACA,cACA,eACA,eACA,qBACA,uBACI;CACJ,IAAM,IAAmB,QAAc;EACrC,IAAM,IAAiC,EAAE;AAuBzC,SApBI,KAAc,CAAC,GAAY,MAC7B,EAAU,KAAK,EAAE,aAAU,GAAG,QAC5B,kBAAC,KAAD;GAAG,GAAI;GAAO,QAAQ;GAAY,KAAK,MAAe,WAAW,eAAe,KAAA;GAC7E;GACC,CAAA,GAKJ,KAAoB,CAAC,GAAY,QACnC,EAAU,OAAO,EAAE,QAAK,GAAG,QACzB,kBAAC,OAAD;GACE,KAAK,KAAO;GACZ,GAAI;GACJ,OAAO;IAAE,UAAU;IAAQ,QAAQ;IAAQ,GAAG,EAAM;IAAO;GAC3D,CAAA,GAKC;GAAE,GAAG;GAAW,GAAG;GAAY;IACrC;EAAC;EAAY;EAAY;EAAiB,CAAC,EAExC,IAAgB,OAAO,KAAK,EAAiB,CAAC,SAAS;AAE7D,QACE,kBAAC,OAAD;EAAgB;YACd,kBAAC,GAAD;GACE,eAAe,CAAC,EAAU;GACX;GACf,YAAY,IAAgB,IAAmB,KAAA;aAE9C;GACa,CAAA;EACZ,CAAA"}
@@ -0,0 +1,95 @@
1
+ import { useMemo as e } from "react";
2
+ import { Fragment as t, jsx as n, jsxs as r } from "react/jsx-runtime";
3
+ //#region src/components/MonthlyCalendar/MonthlyCalendar.tsx
4
+ var i = {
5
+ dayColor: "#222",
6
+ headerColor: "#555",
7
+ annotationColor: "inherit"
8
+ }, a = {
9
+ dayColor: "#f0f0f0",
10
+ headerColor: "#a0a0b8",
11
+ annotationColor: "#d0d0e0"
12
+ }, o = {
13
+ borderCollapse: "collapse",
14
+ border: "none",
15
+ width: "100%",
16
+ tableLayout: "fixed",
17
+ fontFamily: "sans-serif"
18
+ }, s = {
19
+ border: "none",
20
+ verticalAlign: "top",
21
+ padding: 0,
22
+ position: "relative",
23
+ textAlign: "center"
24
+ }, c = ({ year: c, month: l, annotations: u = [], headers: d, style: f = {}, darkMode: p = !1 }) => {
25
+ let m = p ? a : i, h = e(() => {
26
+ let e = new Date(c, l, 0).getDate(), t = new Date(c, l - 1, 1).getDay(), n = Math.ceil((t + e) / 7) * 7, r = [], i = 1 - t;
27
+ for (let t = 0; t < n / 7; t++) {
28
+ let t = [];
29
+ for (let n = 0; n < 7; n++) t.push(i >= 1 && i <= e ? i : null), i++;
30
+ r.push(t);
31
+ }
32
+ return r;
33
+ }, [c, l]);
34
+ return /* @__PURE__ */ r("table", {
35
+ style: {
36
+ ...o,
37
+ ...f
38
+ },
39
+ children: [d && /* @__PURE__ */ n("thead", { children: /* @__PURE__ */ n("tr", { children: d.map((e, t) => /* @__PURE__ */ n("th", {
40
+ style: {
41
+ ...s,
42
+ fontWeight: 600,
43
+ fontSize: "0.85rem",
44
+ paddingBottom: 6,
45
+ color: m.headerColor
46
+ },
47
+ children: e
48
+ }, t)) }) }), /* @__PURE__ */ n("tbody", { children: h.map((e, i) => /* @__PURE__ */ n("tr", { children: e.map((e, i) => /* @__PURE__ */ n("td", {
49
+ style: s,
50
+ children: /* @__PURE__ */ n("div", {
51
+ style: {
52
+ width: "100%",
53
+ paddingBottom: "100%",
54
+ position: "relative"
55
+ },
56
+ children: /* @__PURE__ */ n("div", {
57
+ style: {
58
+ position: "absolute",
59
+ inset: 0,
60
+ display: "flex",
61
+ flexDirection: "column",
62
+ alignItems: "center",
63
+ justifyContent: "flex-start",
64
+ paddingTop: 6,
65
+ gap: 4,
66
+ overflow: "hidden"
67
+ },
68
+ children: e !== null && /* @__PURE__ */ r(t, { children: [/* @__PURE__ */ n("span", {
69
+ style: {
70
+ fontFamily: "sans-serif",
71
+ fontSize: "0.95rem",
72
+ fontWeight: 500,
73
+ color: m.dayColor
74
+ },
75
+ children: e
76
+ }), u[e - 1] != null && /* @__PURE__ */ n("div", {
77
+ style: {
78
+ fontSize: "0.75rem",
79
+ lineHeight: 1.2,
80
+ overflow: "hidden",
81
+ width: "100%",
82
+ textAlign: "center",
83
+ color: m.annotationColor
84
+ },
85
+ children: u[e - 1]
86
+ })] })
87
+ })
88
+ })
89
+ }, i)) }, i)) })]
90
+ });
91
+ };
92
+ //#endregion
93
+ export { c as t };
94
+
95
+ //# sourceMappingURL=MonthlyCalendar-BflN-u8m.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MonthlyCalendar-BflN-u8m.js","names":[],"sources":["../src/components/MonthlyCalendar/MonthlyCalendar.tsx"],"sourcesContent":["import React, { CSSProperties, ReactNode, useMemo } from 'react';\n\n/**\n * Props for the MonthlyCalendar component\n */\nexport interface MonthlyCalendarProps {\n /** Full four-digit year (e.g. 2026) */\n year: number;\n /** Month to display, 1-based: 1 = January, 12 = December */\n month: number;\n /**\n * Array of React nodes, one per day of the month.\n * annotations[0] maps to Day 1, annotations[1] maps to Day 2, etc.\n * Use null or undefined for days with no annotation.\n */\n annotations?: (ReactNode | null | undefined)[];\n /**\n * Array of exactly 7 strings for the weekday header labels.\n * Omit to hide the header row entirely.\n */\n headers?: [string, string, string, string, string, string, string];\n /**\n * Inline styles merged onto the table element, overriding defaults via shallow spread.\n */\n style?: CSSProperties;\n /**\n * Enables the dark color theme for day numbers, headers, and annotation text.\n * The component does not set its own background — wrap it in a dark container when enabled.\n * @default false\n */\n darkMode?: boolean;\n}\n\n// ─── Theme definitions ───\n\nconst LIGHT_THEME = {\n dayColor: '#222',\n headerColor: '#555',\n annotationColor: 'inherit'\n};\n\nconst DARK_THEME = {\n dayColor: '#f0f0f0',\n headerColor: '#a0a0b8',\n annotationColor: '#d0d0e0'\n};\n\n// ─── Static style objects ───\n\nconst defaultTableStyle: CSSProperties = {\n borderCollapse: 'collapse',\n border: 'none',\n width: '100%',\n tableLayout: 'fixed',\n fontFamily: 'sans-serif'\n};\n\nconst defaultCellStyle: CSSProperties = {\n border: 'none',\n verticalAlign: 'top',\n padding: 0,\n position: 'relative',\n textAlign: 'center'\n};\n\n/**\n * MonthlyCalendar Component\n *\n * A zero-dependency monthly calendar grid rendered as a semantic HTML table.\n * Each day occupies a square cell with an optional annotation slot that accepts\n * any ReactNode (text, images, badges, icons, or entire sub-components).\n *\n * Features built-in light and dark themes, customizable headers, and\n * table-level style overrides. All styling is inline — no CSS files required.\n *\n * @component\n * @example\n * ```tsx\n * <MonthlyCalendar\n * year={2026}\n * month={2}\n * headers={['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']}\n * darkMode={false}\n * />\n * ```\n */\nconst MonthlyCalendar: React.FC<MonthlyCalendarProps> = ({\n year,\n month,\n annotations = [],\n headers,\n style = {},\n darkMode = false\n}) => {\n const theme = darkMode ? DARK_THEME : LIGHT_THEME;\n\n const weeks = useMemo(() => {\n const daysInMonth = new Date(year, month, 0).getDate();\n const startDay = new Date(year, month - 1, 1).getDay(); // 0=Sun\n const totalCells = Math.ceil((startDay + daysInMonth) / 7) * 7;\n const result: (number | null)[][] = [];\n let currentDay = 1 - startDay;\n\n for (let w = 0; w < totalCells / 7; w++) {\n const week: (number | null)[] = [];\n for (let d = 0; d < 7; d++) {\n week.push(currentDay >= 1 && currentDay <= daysInMonth ? currentDay : null);\n currentDay++;\n }\n result.push(week);\n }\n return result;\n }, [year, month]);\n\n const mergedTableStyle = { ...defaultTableStyle, ...style };\n\n return (\n <table style={mergedTableStyle}>\n {headers && (\n <thead>\n <tr>\n {headers.map((h, i) => (\n <th\n key={i}\n style={{\n ...defaultCellStyle,\n fontWeight: 600,\n fontSize: '0.85rem',\n paddingBottom: 6,\n color: theme.headerColor\n }}\n >\n {h}\n </th>\n ))}\n </tr>\n </thead>\n )}\n <tbody>\n {weeks.map((week, wi) => (\n <tr key={wi}>\n {week.map((day, di) => (\n <td key={di} style={defaultCellStyle}>\n <div\n style={{\n width: '100%',\n paddingBottom: '100%',\n position: 'relative'\n }}\n >\n <div\n style={{\n position: 'absolute',\n inset: 0,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'flex-start',\n paddingTop: 6,\n gap: 4,\n overflow: 'hidden'\n }}\n >\n {day !== null && (\n <>\n <span\n style={{\n fontFamily: 'sans-serif',\n fontSize: '0.95rem',\n fontWeight: 500,\n color: theme.dayColor\n }}\n >\n {day}\n </span>\n {annotations[day - 1] != null && (\n <div\n style={{\n fontSize: '0.75rem',\n lineHeight: 1.2,\n overflow: 'hidden',\n width: '100%',\n textAlign: 'center',\n color: theme.annotationColor\n }}\n >\n {annotations[day - 1]}\n </div>\n )}\n </>\n )}\n </div>\n </div>\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n );\n};\n\nexport default MonthlyCalendar;\n"],"mappings":";;;AAmCA,IAAM,IAAc;CAClB,UAAU;CACV,aAAa;CACb,iBAAiB;CAClB,EAEK,IAAa;CACjB,UAAU;CACV,aAAa;CACb,iBAAiB;CAClB,EAIK,IAAmC;CACvC,gBAAgB;CAChB,QAAQ;CACR,OAAO;CACP,aAAa;CACb,YAAY;CACb,EAEK,IAAkC;CACtC,QAAQ;CACR,eAAe;CACf,SAAS;CACT,UAAU;CACV,WAAW;CACZ,EAuBK,KAAmD,EACvD,SACA,UACA,iBAAc,EAAE,EAChB,YACA,WAAQ,EAAE,EACV,cAAW,SACP;CACJ,IAAM,IAAQ,IAAW,IAAa,GAEhC,IAAQ,QAAc;EAC1B,IAAM,IAAc,IAAI,KAAK,GAAM,GAAO,EAAE,CAAC,SAAS,EAChD,IAAW,IAAI,KAAK,GAAM,IAAQ,GAAG,EAAE,CAAC,QAAQ,EAChD,IAAa,KAAK,MAAM,IAAW,KAAe,EAAE,GAAG,GACvD,IAA8B,EAAE,EAClC,IAAa,IAAI;AAErB,OAAK,IAAI,IAAI,GAAG,IAAI,IAAa,GAAG,KAAK;GACvC,IAAM,IAA0B,EAAE;AAClC,QAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAErB,CADA,EAAK,KAAK,KAAc,KAAK,KAAc,IAAc,IAAa,KAAK,EAC3E;AAEF,KAAO,KAAK,EAAK;;AAEnB,SAAO;IACN,CAAC,GAAM,EAAM,CAAC;AAIjB,QACE,kBAAC,SAAD;EAAO,OAHgB;GAAE,GAAG;GAAmB,GAAG;GAAO;YAGzD,CACG,KACC,kBAAC,SAAD,EAAA,UACE,kBAAC,MAAD,EAAA,UACG,EAAQ,KAAK,GAAG,MACf,kBAAC,MAAD;GAEE,OAAO;IACL,GAAG;IACH,YAAY;IACZ,UAAU;IACV,eAAe;IACf,OAAO,EAAM;IACd;aAEA;GACE,EAVE,EAUF,CACL,EACC,CAAA,EACC,CAAA,EAEV,kBAAC,SAAD,EAAA,UACG,EAAM,KAAK,GAAM,MAChB,kBAAC,MAAD,EAAA,UACG,EAAK,KAAK,GAAK,MACd,kBAAC,MAAD;GAAa,OAAO;aAClB,kBAAC,OAAD;IACE,OAAO;KACL,OAAO;KACP,eAAe;KACf,UAAU;KACX;cAED,kBAAC,OAAD;KACE,OAAO;MACL,UAAU;MACV,OAAO;MACP,SAAS;MACT,eAAe;MACf,YAAY;MACZ,gBAAgB;MAChB,YAAY;MACZ,KAAK;MACL,UAAU;MACX;eAEA,MAAQ,QACP,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,QAAD;MACE,OAAO;OACL,YAAY;OACZ,UAAU;OACV,YAAY;OACZ,OAAO,EAAM;OACd;gBAEA;MACI,CAAA,EACN,EAAY,IAAM,MAAM,QACvB,kBAAC,OAAD;MACE,OAAO;OACL,UAAU;OACV,YAAY;OACZ,UAAU;OACV,OAAO;OACP,WAAW;OACX,OAAO,EAAM;OACd;gBAEA,EAAY,IAAM;MACf,CAAA,CAEP,EAAA,CAAA;KAED,CAAA;IACF,CAAA;GACH,EAnDI,EAmDJ,CACL,EACC,EAvDI,EAuDJ,CACL,EACI,CAAA,CACF"}
@@ -0,0 +1,2 @@
1
+ const e=require(`./chunk-Bmb41Sf3.cjs`);let t=require(`react`);t=e.t(t);let n=require(`react/jsx-runtime`);var r={dayColor:`#222`,headerColor:`#555`,annotationColor:`inherit`},i={dayColor:`#f0f0f0`,headerColor:`#a0a0b8`,annotationColor:`#d0d0e0`},a={borderCollapse:`collapse`,border:`none`,width:`100%`,tableLayout:`fixed`,fontFamily:`sans-serif`},o={border:`none`,verticalAlign:`top`,padding:0,position:`relative`,textAlign:`center`},s=({year:e,month:s,annotations:c=[],headers:l,style:u={},darkMode:d=!1})=>{let f=d?i:r,p=(0,t.useMemo)(()=>{let t=new Date(e,s,0).getDate(),n=new Date(e,s-1,1).getDay(),r=Math.ceil((n+t)/7)*7,i=[],a=1-n;for(let e=0;e<r/7;e++){let e=[];for(let n=0;n<7;n++)e.push(a>=1&&a<=t?a:null),a++;i.push(e)}return i},[e,s]);return(0,n.jsxs)(`table`,{style:{...a,...u},children:[l&&(0,n.jsx)(`thead`,{children:(0,n.jsx)(`tr`,{children:l.map((e,t)=>(0,n.jsx)(`th`,{style:{...o,fontWeight:600,fontSize:`0.85rem`,paddingBottom:6,color:f.headerColor},children:e},t))})}),(0,n.jsx)(`tbody`,{children:p.map((e,t)=>(0,n.jsx)(`tr`,{children:e.map((e,t)=>(0,n.jsx)(`td`,{style:o,children:(0,n.jsx)(`div`,{style:{width:`100%`,paddingBottom:`100%`,position:`relative`},children:(0,n.jsx)(`div`,{style:{position:`absolute`,inset:0,display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`flex-start`,paddingTop:6,gap:4,overflow:`hidden`},children:e!==null&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(`span`,{style:{fontFamily:`sans-serif`,fontSize:`0.95rem`,fontWeight:500,color:f.dayColor},children:e}),c[e-1]!=null&&(0,n.jsx)(`div`,{style:{fontSize:`0.75rem`,lineHeight:1.2,overflow:`hidden`,width:`100%`,textAlign:`center`,color:f.annotationColor},children:c[e-1]})]})})})},t))},t))})]})};Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
2
+ //# sourceMappingURL=MonthlyCalendar-DDXHhlwC.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MonthlyCalendar-DDXHhlwC.cjs","names":[],"sources":["../src/components/MonthlyCalendar/MonthlyCalendar.tsx"],"sourcesContent":["import React, { CSSProperties, ReactNode, useMemo } from 'react';\n\n/**\n * Props for the MonthlyCalendar component\n */\nexport interface MonthlyCalendarProps {\n /** Full four-digit year (e.g. 2026) */\n year: number;\n /** Month to display, 1-based: 1 = January, 12 = December */\n month: number;\n /**\n * Array of React nodes, one per day of the month.\n * annotations[0] maps to Day 1, annotations[1] maps to Day 2, etc.\n * Use null or undefined for days with no annotation.\n */\n annotations?: (ReactNode | null | undefined)[];\n /**\n * Array of exactly 7 strings for the weekday header labels.\n * Omit to hide the header row entirely.\n */\n headers?: [string, string, string, string, string, string, string];\n /**\n * Inline styles merged onto the table element, overriding defaults via shallow spread.\n */\n style?: CSSProperties;\n /**\n * Enables the dark color theme for day numbers, headers, and annotation text.\n * The component does not set its own background — wrap it in a dark container when enabled.\n * @default false\n */\n darkMode?: boolean;\n}\n\n// ─── Theme definitions ───\n\nconst LIGHT_THEME = {\n dayColor: '#222',\n headerColor: '#555',\n annotationColor: 'inherit'\n};\n\nconst DARK_THEME = {\n dayColor: '#f0f0f0',\n headerColor: '#a0a0b8',\n annotationColor: '#d0d0e0'\n};\n\n// ─── Static style objects ───\n\nconst defaultTableStyle: CSSProperties = {\n borderCollapse: 'collapse',\n border: 'none',\n width: '100%',\n tableLayout: 'fixed',\n fontFamily: 'sans-serif'\n};\n\nconst defaultCellStyle: CSSProperties = {\n border: 'none',\n verticalAlign: 'top',\n padding: 0,\n position: 'relative',\n textAlign: 'center'\n};\n\n/**\n * MonthlyCalendar Component\n *\n * A zero-dependency monthly calendar grid rendered as a semantic HTML table.\n * Each day occupies a square cell with an optional annotation slot that accepts\n * any ReactNode (text, images, badges, icons, or entire sub-components).\n *\n * Features built-in light and dark themes, customizable headers, and\n * table-level style overrides. All styling is inline — no CSS files required.\n *\n * @component\n * @example\n * ```tsx\n * <MonthlyCalendar\n * year={2026}\n * month={2}\n * headers={['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']}\n * darkMode={false}\n * />\n * ```\n */\nconst MonthlyCalendar: React.FC<MonthlyCalendarProps> = ({\n year,\n month,\n annotations = [],\n headers,\n style = {},\n darkMode = false\n}) => {\n const theme = darkMode ? DARK_THEME : LIGHT_THEME;\n\n const weeks = useMemo(() => {\n const daysInMonth = new Date(year, month, 0).getDate();\n const startDay = new Date(year, month - 1, 1).getDay(); // 0=Sun\n const totalCells = Math.ceil((startDay + daysInMonth) / 7) * 7;\n const result: (number | null)[][] = [];\n let currentDay = 1 - startDay;\n\n for (let w = 0; w < totalCells / 7; w++) {\n const week: (number | null)[] = [];\n for (let d = 0; d < 7; d++) {\n week.push(currentDay >= 1 && currentDay <= daysInMonth ? currentDay : null);\n currentDay++;\n }\n result.push(week);\n }\n return result;\n }, [year, month]);\n\n const mergedTableStyle = { ...defaultTableStyle, ...style };\n\n return (\n <table style={mergedTableStyle}>\n {headers && (\n <thead>\n <tr>\n {headers.map((h, i) => (\n <th\n key={i}\n style={{\n ...defaultCellStyle,\n fontWeight: 600,\n fontSize: '0.85rem',\n paddingBottom: 6,\n color: theme.headerColor\n }}\n >\n {h}\n </th>\n ))}\n </tr>\n </thead>\n )}\n <tbody>\n {weeks.map((week, wi) => (\n <tr key={wi}>\n {week.map((day, di) => (\n <td key={di} style={defaultCellStyle}>\n <div\n style={{\n width: '100%',\n paddingBottom: '100%',\n position: 'relative'\n }}\n >\n <div\n style={{\n position: 'absolute',\n inset: 0,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'flex-start',\n paddingTop: 6,\n gap: 4,\n overflow: 'hidden'\n }}\n >\n {day !== null && (\n <>\n <span\n style={{\n fontFamily: 'sans-serif',\n fontSize: '0.95rem',\n fontWeight: 500,\n color: theme.dayColor\n }}\n >\n {day}\n </span>\n {annotations[day - 1] != null && (\n <div\n style={{\n fontSize: '0.75rem',\n lineHeight: 1.2,\n overflow: 'hidden',\n width: '100%',\n textAlign: 'center',\n color: theme.annotationColor\n }}\n >\n {annotations[day - 1]}\n </div>\n )}\n </>\n )}\n </div>\n </div>\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n );\n};\n\nexport default MonthlyCalendar;\n"],"mappings":"2GAmCA,IAAM,EAAc,CAClB,SAAU,OACV,YAAa,OACb,gBAAiB,UAClB,CAEK,EAAa,CACjB,SAAU,UACV,YAAa,UACb,gBAAiB,UAClB,CAIK,EAAmC,CACvC,eAAgB,WAChB,OAAQ,OACR,MAAO,OACP,YAAa,QACb,WAAY,aACb,CAEK,EAAkC,CACtC,OAAQ,OACR,cAAe,MACf,QAAS,EACT,SAAU,WACV,UAAW,SACZ,CAuBK,GAAmD,CACvD,OACA,QACA,cAAc,EAAE,CAChB,UACA,QAAQ,EAAE,CACV,WAAW,MACP,CACJ,IAAM,EAAQ,EAAW,EAAa,EAEhC,GAAA,EAAA,EAAA,aAAsB,CAC1B,IAAM,EAAc,IAAI,KAAK,EAAM,EAAO,EAAE,CAAC,SAAS,CAChD,EAAW,IAAI,KAAK,EAAM,EAAQ,EAAG,EAAE,CAAC,QAAQ,CAChD,EAAa,KAAK,MAAM,EAAW,GAAe,EAAE,CAAG,EACvD,EAA8B,EAAE,CAClC,EAAa,EAAI,EAErB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAa,EAAG,IAAK,CACvC,IAAM,EAA0B,EAAE,CAClC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,IACrB,EAAK,KAAK,GAAc,GAAK,GAAc,EAAc,EAAa,KAAK,CAC3E,IAEF,EAAO,KAAK,EAAK,CAEnB,OAAO,GACN,CAAC,EAAM,EAAM,CAAC,CAIjB,OACE,EAAA,EAAA,MAAC,QAAD,CAAO,MAHgB,CAAE,GAAG,EAAmB,GAAG,EAAO,UAGzD,CACG,IACC,EAAA,EAAA,KAAC,QAAD,CAAA,UACE,EAAA,EAAA,KAAC,KAAD,CAAA,SACG,EAAQ,KAAK,EAAG,KACf,EAAA,EAAA,KAAC,KAAD,CAEE,MAAO,CACL,GAAG,EACH,WAAY,IACZ,SAAU,UACV,cAAe,EACf,MAAO,EAAM,YACd,UAEA,EACE,CAVE,EAUF,CACL,CACC,CAAA,CACC,CAAA,EAEV,EAAA,EAAA,KAAC,QAAD,CAAA,SACG,EAAM,KAAK,EAAM,KAChB,EAAA,EAAA,KAAC,KAAD,CAAA,SACG,EAAK,KAAK,EAAK,KACd,EAAA,EAAA,KAAC,KAAD,CAAa,MAAO,YAClB,EAAA,EAAA,KAAC,MAAD,CACE,MAAO,CACL,MAAO,OACP,cAAe,OACf,SAAU,WACX,WAED,EAAA,EAAA,KAAC,MAAD,CACE,MAAO,CACL,SAAU,WACV,MAAO,EACP,QAAS,OACT,cAAe,SACf,WAAY,SACZ,eAAgB,aAChB,WAAY,EACZ,IAAK,EACL,SAAU,SACX,UAEA,IAAQ,OACP,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACE,EAAA,EAAA,KAAC,OAAD,CACE,MAAO,CACL,WAAY,aACZ,SAAU,UACV,WAAY,IACZ,MAAO,EAAM,SACd,UAEA,EACI,CAAA,CACN,EAAY,EAAM,IAAM,OACvB,EAAA,EAAA,KAAC,MAAD,CACE,MAAO,CACL,SAAU,UACV,WAAY,IACZ,SAAU,SACV,MAAO,OACP,UAAW,SACX,MAAO,EAAM,gBACd,UAEA,EAAY,EAAM,GACf,CAAA,CAEP,CAAA,CAAA,CAED,CAAA,CACF,CAAA,CACH,CAnDI,EAmDJ,CACL,CACC,CAvDI,EAuDJ,CACL,CACI,CAAA,CACF"}
@@ -0,0 +1,110 @@
1
+ import "react";
2
+ import { jsx as e, jsxs as t } from "react/jsx-runtime";
3
+ import './ThemeSwitch.css';var n = {
4
+ sunCore: "ThemeSwitch-module__sunCore___tUhud",
5
+ small: "ThemeSwitch-module__small___YlvWo",
6
+ medium: "ThemeSwitch-module__medium___Q8Rro",
7
+ large: "ThemeSwitch-module__large___BMOxC",
8
+ sunspot1: "ThemeSwitch-module__sunspot1___8RI1V",
9
+ sunspot2: "ThemeSwitch-module__sunspot2___U0whF",
10
+ sunspot3: "ThemeSwitch-module__sunspot3___kWYEI",
11
+ sunRay: "ThemeSwitch-module__sunRay___t1B4U",
12
+ rotateSun: "ThemeSwitch-module__rotateSun___JQByd",
13
+ switchContainer: "ThemeSwitch-module__switchContainer___VENjU",
14
+ dark: "ThemeSwitch-module__dark___a4vSn",
15
+ background: "ThemeSwitch-module__background___Rpodp",
16
+ cloud: "ThemeSwitch-module__cloud___OoOyx",
17
+ light: "ThemeSwitch-module__light___ddTa2",
18
+ cloud1: "ThemeSwitch-module__cloud1___aqGNx",
19
+ floatCloud1: "ThemeSwitch-module__floatCloud1___MdWMj",
20
+ cloud2: "ThemeSwitch-module__cloud2___guY71",
21
+ floatCloud2: "ThemeSwitch-module__floatCloud2___2x6Sp",
22
+ cloud3: "ThemeSwitch-module__cloud3___7-NhR",
23
+ floatCloud3: "ThemeSwitch-module__floatCloud3___FJCbV",
24
+ star: "ThemeSwitch-module__star___Z98bU",
25
+ star1: "ThemeSwitch-module__star1___rhotb",
26
+ star2: "ThemeSwitch-module__star2___pzbNR",
27
+ star3: "ThemeSwitch-module__star3___iK7lJ",
28
+ star4: "ThemeSwitch-module__star4___t5pqN",
29
+ star5: "ThemeSwitch-module__star5___dx42N",
30
+ star6: "ThemeSwitch-module__star6___wur-I",
31
+ star7: "ThemeSwitch-module__star7___KONgd",
32
+ star8: "ThemeSwitch-module__star8___gIYpk",
33
+ twinkle: "ThemeSwitch-module__twinkle___Abun5",
34
+ toggle: "ThemeSwitch-module__toggle___L5FGS",
35
+ sun: "ThemeSwitch-module__sun___s8noI",
36
+ moon: "ThemeSwitch-module__moon___TNpFJ",
37
+ moonCore: "ThemeSwitch-module__moonCore___svwjb",
38
+ crater1: "ThemeSwitch-module__crater1___swpHc",
39
+ crater2: "ThemeSwitch-module__crater2___WQVKR",
40
+ crater3: "ThemeSwitch-module__crater3___F-KJu",
41
+ crater4: "ThemeSwitch-module__crater4___ZsIb7"
42
+ }, r = ({ enableDarkMode: r, setEnableDarkMode: i, size: a = "large" }) => {
43
+ let o = () => {
44
+ i(!r);
45
+ };
46
+ return /* @__PURE__ */ t("div", {
47
+ className: `${n.switchContainer} ${n[a]} ${r ? n.dark : n.light}`,
48
+ onClick: o,
49
+ role: "button",
50
+ tabIndex: 0,
51
+ "aria-label": `Switch to ${r ? "light" : "dark"} mode`,
52
+ onKeyDown: (e) => {
53
+ (e.key === "Enter" || e.key === " ") && o();
54
+ },
55
+ children: [/* @__PURE__ */ t("div", {
56
+ className: n.background,
57
+ children: [
58
+ /* @__PURE__ */ e("div", { className: `${n.cloud} ${n.cloud1}` }),
59
+ /* @__PURE__ */ e("div", { className: `${n.cloud} ${n.cloud2}` }),
60
+ /* @__PURE__ */ e("div", { className: `${n.cloud} ${n.cloud3}` }),
61
+ /* @__PURE__ */ e("div", { className: `${n.star} ${n.star1}` }),
62
+ /* @__PURE__ */ e("div", { className: `${n.star} ${n.star2}` }),
63
+ /* @__PURE__ */ e("div", { className: `${n.star} ${n.star3}` }),
64
+ /* @__PURE__ */ e("div", { className: `${n.star} ${n.star4}` }),
65
+ /* @__PURE__ */ e("div", { className: `${n.star} ${n.star5}` }),
66
+ /* @__PURE__ */ e("div", { className: `${n.star} ${n.star6}` }),
67
+ /* @__PURE__ */ e("div", { className: `${n.star} ${n.star7}` }),
68
+ /* @__PURE__ */ e("div", { className: `${n.star} ${n.star8}` })
69
+ ]
70
+ }), /* @__PURE__ */ t("div", {
71
+ className: n.toggle,
72
+ children: [/* @__PURE__ */ t("div", {
73
+ className: n.sun,
74
+ children: [
75
+ /* @__PURE__ */ t("div", {
76
+ className: n.sunCore,
77
+ children: [
78
+ /* @__PURE__ */ e("div", { className: n.sunspot1 }),
79
+ /* @__PURE__ */ e("div", { className: n.sunspot2 }),
80
+ /* @__PURE__ */ e("div", { className: n.sunspot3 })
81
+ ]
82
+ }),
83
+ /* @__PURE__ */ e("div", { className: n.sunRay }),
84
+ /* @__PURE__ */ e("div", { className: n.sunRay }),
85
+ /* @__PURE__ */ e("div", { className: n.sunRay }),
86
+ /* @__PURE__ */ e("div", { className: n.sunRay }),
87
+ /* @__PURE__ */ e("div", { className: n.sunRay }),
88
+ /* @__PURE__ */ e("div", { className: n.sunRay }),
89
+ /* @__PURE__ */ e("div", { className: n.sunRay }),
90
+ /* @__PURE__ */ e("div", { className: n.sunRay })
91
+ ]
92
+ }), /* @__PURE__ */ e("div", {
93
+ className: n.moon,
94
+ children: /* @__PURE__ */ t("div", {
95
+ className: n.moonCore,
96
+ children: [
97
+ /* @__PURE__ */ e("div", { className: n.crater1 }),
98
+ /* @__PURE__ */ e("div", { className: n.crater2 }),
99
+ /* @__PURE__ */ e("div", { className: n.crater3 }),
100
+ /* @__PURE__ */ e("div", { className: n.crater4 })
101
+ ]
102
+ })
103
+ })]
104
+ })]
105
+ });
106
+ };
107
+ //#endregion
108
+ export { r as t };
109
+
110
+ //# sourceMappingURL=ThemeSwitch-C648hdUm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeSwitch-C648hdUm.js","names":[],"sources":["../src/components/ThemeSwitch/ThemeSwitch.module.css","../src/components/ThemeSwitch/ThemeSwitch.tsx"],"sourcesContent":["/* Sun - Size variants */\n.sunCore {\n position: relative;\n background: radial-gradient(circle, #ffd700, #ffa500);\n border-radius: 50%;\n}\n\n.small .sunCore {\n width: 16px;\n height: 16px;\n box-shadow: inset -1px -1px 2px rgba(255, 140, 0, 0.5);\n}\n\n.medium .sunCore {\n width: 24px;\n height: 24px;\n box-shadow: inset -1.5px -1.5px 3px rgba(255, 140, 0, 0.5);\n}\n\n.large .sunCore {\n width: 32px;\n height: 32px;\n box-shadow: inset -2px -2px 4px rgba(255, 140, 0, 0.5);\n}\n\n/* Sunspots - Size variants */\n.small .sunspot1 {\n position: absolute;\n width: 2px;\n height: 2px;\n background: rgba(255, 140, 0, 0.6);\n border-radius: 50%;\n top: 4px;\n left: 5px;\n}\n\n.small .sunspot2 {\n position: absolute;\n width: 1.5px;\n height: 1.5px;\n background: rgba(255, 140, 0, 0.5);\n border-radius: 50%;\n bottom: 5px;\n right: 4px;\n}\n\n.small .sunspot3 {\n position: absolute;\n width: 1px;\n height: 1px;\n background: rgba(255, 140, 0, 0.4);\n border-radius: 50%;\n top: 6px;\n right: 6px;\n}\n\n.medium .sunspot1 {\n position: absolute;\n width: 3px;\n height: 3px;\n background: rgba(255, 140, 0, 0.6);\n border-radius: 50%;\n top: 6px;\n left: 7.5px;\n}\n\n.medium .sunspot2 {\n position: absolute;\n width: 2.25px;\n height: 2.25px;\n background: rgba(255, 140, 0, 0.5);\n border-radius: 50%;\n bottom: 7.5px;\n right: 6px;\n}\n\n.medium .sunspot3 {\n position: absolute;\n width: 1.5px;\n height: 1.5px;\n background: rgba(255, 140, 0, 0.4);\n border-radius: 50%;\n top: 9px;\n right: 9px;\n}\n\n.large .sunspot1 {\n position: absolute;\n width: 4px;\n height: 4px;\n background: rgba(255, 140, 0, 0.6);\n border-radius: 50%;\n top: 8px;\n left: 10px;\n}\n\n.large .sunspot2 {\n position: absolute;\n width: 3px;\n height: 3px;\n background: rgba(255, 140, 0, 0.5);\n border-radius: 50%;\n bottom: 10px;\n right: 8px;\n}\n\n.large .sunspot3 {\n position: absolute;\n width: 2px;\n height: 2px;\n background: rgba(255, 140, 0, 0.4);\n border-radius: 50%;\n top: 12px;\n right: 12px;\n}\n\n/* Sun rays - Size adjustments */\n.small .sunRay {\n position: absolute;\n background: linear-gradient(90deg, transparent, #ffd700, transparent);\n animation: rotateSun 10s linear infinite;\n}\n\n.small .sunRay:nth-child(2) {\n width: 20px;\n height: 1px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n.small .sunRay:nth-child(3) {\n width: 1px;\n height: 20px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n.small .sunRay:nth-child(4) {\n width: 20px;\n height: 1px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(45deg);\n}\n\n.small .sunRay:nth-child(5) {\n width: 20px;\n height: 1px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(-45deg);\n}\n\n.small .sunRay:nth-child(6),\n.small .sunRay:nth-child(7),\n.small .sunRay:nth-child(8),\n.small .sunRay:nth-child(9) {\n display: none;\n}\n\n.medium .sunRay {\n position: absolute;\n background: linear-gradient(90deg, transparent, #ffd700, transparent);\n animation: rotateSun 10s linear infinite;\n}\n\n.medium .sunRay:nth-child(2) {\n width: 30px;\n height: 1.5px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n.medium .sunRay:nth-child(3) {\n width: 1.5px;\n height: 30px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n.medium .sunRay:nth-child(4) {\n width: 30px;\n height: 1.5px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(45deg);\n}\n\n.medium .sunRay:nth-child(5) {\n width: 30px;\n height: 1.5px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(-45deg);\n}\n\n.medium .sunRay:nth-child(6) {\n width: 26px;\n height: 1px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(22.5deg);\n}\n\n.medium .sunRay:nth-child(7) {\n width: 26px;\n height: 1px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(-22.5deg);\n}\n\n.medium .sunRay:nth-child(8),\n.medium .sunRay:nth-child(9) {\n display: none;\n}\n\n.large .sunRay {\n position: absolute;\n background: linear-gradient(90deg, transparent, #ffd700, transparent);\n animation: rotateSun 10s linear infinite;\n}\n\n.large .sunRay:nth-child(2) {\n width: 40px;\n height: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n.large .sunRay:nth-child(3) {\n width: 2px;\n height: 40px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n.large .sunRay:nth-child(4) {\n width: 40px;\n height: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(45deg);\n}\n\n.large .sunRay:nth-child(5) {\n width: 40px;\n height: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(-45deg);\n}\n\n.large .sunRay:nth-child(6) {\n width: 35px;\n height: 1px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(22.5deg);\n}\n\n.large .sunRay:nth-child(7) {\n width: 35px;\n height: 1px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(-22.5deg);\n}\n\n/* Base container styles */\n.switchContainer {\n position: relative;\n background: linear-gradient(135deg, #87ceeb, #add8e6);\n border-radius: 30px;\n cursor: pointer;\n overflow: hidden;\n transition: background 0.6s cubic-bezier(0.4, 0, 0.2, 1);\n box-shadow:\n inset 0 2px 8px rgba(0, 0, 0, 0.1),\n 0 4px 12px rgba(0, 0, 0, 0.15);\n user-select: none;\n}\n\n/* Size variants */\n.switchContainer.small {\n width: 60px;\n height: 30px;\n border-radius: 15px;\n}\n\n.switchContainer.medium {\n width: 90px;\n height: 45px;\n border-radius: 22.5px;\n}\n\n.switchContainer.large {\n width: 120px;\n height: 60px;\n border-radius: 30px;\n}\n\n.switchContainer:focus {\n outline: 2px solid #4a90e2;\n outline-offset: 2px;\n}\n\n.switchContainer.dark {\n background: linear-gradient(135deg, #1a1a3e, #0a0a1f);\n}\n\n.background {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n pointer-events: none;\n}\n\n/* Clouds - Base styles */\n.cloud {\n position: absolute;\n background: rgba(255, 255, 255, 0.4);\n border-radius: 100px;\n opacity: 0;\n transition: opacity 0.6s ease;\n}\n\n.light .cloud {\n opacity: 1;\n}\n\n.cloud::before,\n.cloud::after {\n content: '';\n position: absolute;\n background: rgba(255, 255, 255, 0.4);\n border-radius: 100px;\n}\n\n/* Cloud 1 - Size variants */\n.small .cloud1 {\n width: 12px;\n height: 4px;\n top: 7px;\n left: 10px;\n}\n\n.small .cloud1::before {\n width: 5px;\n height: 5px;\n top: -2.5px;\n left: 2.5px;\n}\n\n.small .cloud1::after {\n width: 6px;\n height: 4px;\n top: -1.5px;\n right: 2.5px;\n}\n\n.medium .cloud1 {\n width: 19px;\n height: 6px;\n top: 11px;\n left: 15px;\n}\n\n.medium .cloud1::before {\n width: 7.5px;\n height: 7.5px;\n top: -3.75px;\n left: 3.75px;\n}\n\n.medium .cloud1::after {\n width: 9px;\n height: 6px;\n top: -2.25px;\n right: 3.75px;\n}\n\n.large .cloud1 {\n width: 25px;\n height: 8px;\n top: 15px;\n left: 20px;\n}\n\n.large .cloud1::before {\n width: 10px;\n height: 10px;\n top: -5px;\n left: 5px;\n}\n\n.large .cloud1::after {\n width: 12px;\n height: 8px;\n top: -3px;\n right: 5px;\n}\n\n.cloud1 {\n animation: floatCloud1 12s infinite ease-in-out;\n}\n\n/* Cloud 2 - Size variants */\n.small .cloud2 {\n width: 10px;\n height: 3px;\n top: 17px;\n right: 12px;\n}\n\n.small .cloud2::before {\n width: 4px;\n height: 4px;\n top: -2px;\n left: 1.5px;\n}\n\n.medium .cloud2 {\n width: 15px;\n height: 4.5px;\n top: 26px;\n right: 19px;\n}\n\n.medium .cloud2::before {\n width: 6px;\n height: 6px;\n top: -3px;\n left: 2.25px;\n}\n\n.large .cloud2 {\n width: 20px;\n height: 6px;\n top: 35px;\n right: 25px;\n}\n\n.large .cloud2::before {\n width: 8px;\n height: 8px;\n top: -4px;\n left: 3px;\n}\n\n.cloud2 {\n animation: floatCloud2 15s infinite ease-in-out;\n}\n\n/* Cloud 3 - Size variants */\n.small .cloud3 {\n width: 9px;\n height: 2.5px;\n bottom: 9px;\n left: 17px;\n}\n\n.small .cloud3::after {\n width: 5px;\n height: 3px;\n top: -1.5px;\n right: 1.5px;\n}\n\n.medium .cloud3 {\n width: 13.5px;\n height: 3.75px;\n bottom: 13.5px;\n left: 26px;\n}\n\n.medium .cloud3::after {\n width: 7.5px;\n height: 4.5px;\n top: -2.25px;\n right: 2.25px;\n}\n\n.large .cloud3 {\n width: 18px;\n height: 5px;\n bottom: 18px;\n left: 35px;\n}\n\n.large .cloud3::after {\n width: 10px;\n height: 6px;\n top: -3px;\n right: 3px;\n}\n\n.cloud3 {\n animation: floatCloud3 18s infinite ease-in-out;\n}\n\n@keyframes floatCloud1 {\n 0%,\n 100% {\n transform: translateX(0);\n }\n 50% {\n transform: translateX(5px);\n }\n}\n\n@keyframes floatCloud2 {\n 0%,\n 100% {\n transform: translateX(0);\n }\n 50% {\n transform: translateX(-3px);\n }\n}\n\n@keyframes floatCloud3 {\n 0%,\n 100% {\n transform: translateX(0);\n }\n 50% {\n transform: translateX(4px);\n }\n}\n\n/* Stars - Base styles */\n.star {\n position: absolute;\n background: white;\n border-radius: 50%;\n opacity: 0;\n transition: opacity 0.6s ease;\n}\n\n.dark .star {\n opacity: 1;\n}\n\n/* Stars - Size variants */\n.small .star1 {\n width: 1px;\n height: 1px;\n top: 5px;\n left: 12px;\n}\n\n.small .star2 {\n width: 1px;\n height: 1px;\n top: 9px;\n right: 15px;\n}\n\n.small .star3 {\n width: 1px;\n height: 1px;\n bottom: 7px;\n left: 20px;\n}\n\n.small .star4 {\n width: 0.75px;\n height: 0.75px;\n top: 12px;\n left: 7px;\n}\n\n.small .star5 {\n width: 1px;\n height: 1px;\n bottom: 10px;\n right: 17px;\n}\n\n.small .star6 {\n width: 0.5px;\n height: 0.5px;\n top: 17px;\n right: 10px;\n}\n\n.small .star7 {\n width: 0.75px;\n height: 0.75px;\n bottom: 12px;\n left: 10px;\n}\n\n.small .star8 {\n width: 0.5px;\n height: 0.5px;\n top: 6px;\n right: 7px;\n}\n\n.medium .star1 {\n width: 1.5px;\n height: 1.5px;\n top: 7.5px;\n left: 19px;\n}\n\n.medium .star2 {\n width: 1.5px;\n height: 1.5px;\n top: 13.5px;\n right: 22.5px;\n}\n\n.medium .star3 {\n width: 1.5px;\n height: 1.5px;\n bottom: 11px;\n left: 30px;\n}\n\n.medium .star4 {\n width: 1.13px;\n height: 1.13px;\n top: 19px;\n left: 11px;\n}\n\n.medium .star5 {\n width: 1.5px;\n height: 1.5px;\n bottom: 15px;\n right: 26px;\n}\n\n.medium .star6 {\n width: 0.75px;\n height: 0.75px;\n top: 26px;\n right: 15px;\n}\n\n.medium .star7 {\n width: 1.13px;\n height: 1.13px;\n bottom: 19px;\n left: 15px;\n}\n\n.medium .star8 {\n width: 0.75px;\n height: 0.75px;\n top: 9px;\n right: 11px;\n}\n\n.large .star1 {\n width: 2px;\n height: 2px;\n top: 10px;\n left: 25px;\n}\n\n.large .star2 {\n width: 2px;\n height: 2px;\n top: 18px;\n right: 30px;\n}\n\n.large .star3 {\n width: 2px;\n height: 2px;\n bottom: 15px;\n left: 40px;\n}\n\n.large .star4 {\n width: 1.5px;\n height: 1.5px;\n top: 25px;\n left: 15px;\n}\n\n.large .star5 {\n width: 2px;\n height: 2px;\n bottom: 20px;\n right: 35px;\n}\n\n.large .star6 {\n width: 1px;\n height: 1px;\n top: 35px;\n right: 20px;\n}\n\n.large .star7 {\n width: 1.5px;\n height: 1.5px;\n bottom: 25px;\n left: 20px;\n}\n\n.large .star8 {\n width: 1px;\n height: 1px;\n top: 12px;\n right: 15px;\n}\n\n.star1 {\n animation: twinkle 3s infinite;\n}\n\n.star2 {\n animation: twinkle 3s infinite 0.5s;\n}\n\n.star3 {\n animation: twinkle 3s infinite 1s;\n}\n\n.star4 {\n animation: twinkle 3s infinite 1.5s;\n}\n\n.star5 {\n animation: twinkle 3s infinite 2s;\n}\n\n.star6 {\n animation: twinkle 3s infinite 2.5s;\n}\n\n.star7 {\n animation: twinkle 3s infinite 0.8s;\n}\n\n.star8 {\n animation: twinkle 3s infinite 1.3s;\n}\n\n@keyframes twinkle {\n 0%,\n 100% {\n opacity: 0.3;\n }\n 50% {\n opacity: 1;\n }\n}\n\n/* Toggle - Size variants */\n.toggle {\n position: absolute;\n border-radius: 50%;\n transition:\n transform 0.6s cubic-bezier(0.4, 0, 0.2, 1),\n background 0.6s cubic-bezier(0.4, 0, 0.2, 1);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.small .toggle {\n width: 24px;\n height: 24px;\n background: linear-gradient(135deg, #ffd700, #ffa500);\n top: 3px;\n left: 3px;\n box-shadow:\n 0 1px 4px rgba(0, 0, 0, 0.2),\n 0 0 10px rgba(255, 215, 0, 0.3);\n}\n\n.medium .toggle {\n width: 36px;\n height: 36px;\n background: linear-gradient(135deg, #ffd700, #ffa500);\n top: 4.5px;\n left: 4.5px;\n box-shadow:\n 0 1.5px 6px rgba(0, 0, 0, 0.2),\n 0 0 15px rgba(255, 215, 0, 0.3);\n}\n\n.large .toggle {\n width: 48px;\n height: 48px;\n background: linear-gradient(135deg, #ffd700, #ffa500);\n top: 6px;\n left: 6px;\n box-shadow:\n 0 2px 8px rgba(0, 0, 0, 0.2),\n 0 0 20px rgba(255, 215, 0, 0.3);\n}\n\n.dark.small .toggle {\n transform: translateX(30px);\n background: linear-gradient(135deg, #f5f5dc, #d3d3d3);\n box-shadow:\n 0 1px 4px rgba(0, 0, 0, 0.3),\n 0 0 10px rgba(245, 245, 220, 0.2);\n}\n\n.dark.medium .toggle {\n transform: translateX(45px);\n background: linear-gradient(135deg, #f5f5dc, #d3d3d3);\n box-shadow:\n 0 1.5px 6px rgba(0, 0, 0, 0.3),\n 0 0 15px rgba(245, 245, 220, 0.2);\n}\n\n.dark.large .toggle {\n transform: translateX(60px);\n background: linear-gradient(135deg, #f5f5dc, #d3d3d3);\n box-shadow:\n 0 2px 8px rgba(0, 0, 0, 0.3),\n 0 0 20px rgba(245, 245, 220, 0.2);\n}\n\n/* Sun */\n.sun {\n position: absolute;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 1;\n transform: rotate(0deg) scale(1);\n transition:\n opacity 0.6s ease,\n transform 0.6s ease;\n}\n\n.dark .sun {\n opacity: 0;\n transform: rotate(180deg) scale(0.5);\n}\n\n.large .sunRay:nth-child(7) {\n width: 35px;\n height: 1px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(-22.5deg);\n}\n\n.large .sunRay:nth-child(8) {\n width: 35px;\n height: 1px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(67.5deg);\n}\n\n.large .sunRay:nth-child(9) {\n width: 35px;\n height: 1px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(-67.5deg);\n}\n\n@keyframes rotateSun {\n from {\n transform: translate(-50%, -50%) rotate(0deg);\n }\n to {\n transform: translate(-50%, -50%) rotate(360deg);\n }\n}\n\n/* Moon */\n.moon {\n position: absolute;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transform: rotate(-180deg) scale(0.5);\n transition:\n opacity 0.6s ease,\n transform 0.6s ease;\n}\n\n.dark .moon {\n opacity: 1;\n transform: rotate(0deg) scale(1);\n}\n\n/* Moon - Size variants */\n.moonCore {\n position: relative;\n border-radius: 50%;\n}\n\n.small .moonCore {\n width: 16px;\n height: 16px;\n background: radial-gradient(circle at 30% 30%, #f5f5dc, #c0c0c0);\n box-shadow:\n inset -1.5px -1.5px 4px rgba(0, 0, 0, 0.2),\n inset 1px 1px 4px rgba(255, 255, 255, 0.3);\n}\n\n.medium .moonCore {\n width: 24px;\n height: 24px;\n background: radial-gradient(circle at 30% 30%, #f5f5dc, #c0c0c0);\n box-shadow:\n inset -2.25px -2.25px 6px rgba(0, 0, 0, 0.2),\n inset 1.5px 1.5px 6px rgba(255, 255, 255, 0.3);\n}\n\n.large .moonCore {\n width: 32px;\n height: 32px;\n background: radial-gradient(circle at 30% 30%, #f5f5dc, #c0c0c0);\n box-shadow:\n inset -3px -3px 8px rgba(0, 0, 0, 0.2),\n inset 2px 2px 8px rgba(255, 255, 255, 0.3);\n}\n\n/* Craters - Size variants */\n.small .crater1 {\n position: absolute;\n width: 3px;\n height: 3px;\n background: radial-gradient(circle, rgba(128, 128, 128, 0.4), rgba(105, 105, 105, 0.2));\n border-radius: 50%;\n top: 4px;\n left: 5px;\n box-shadow: inset 0.5px 0.5px 1px rgba(0, 0, 0, 0.2);\n}\n\n.small .crater2 {\n position: absolute;\n width: 2px;\n height: 2px;\n background: radial-gradient(circle, rgba(128, 128, 128, 0.3), rgba(105, 105, 105, 0.15));\n border-radius: 50%;\n bottom: 4.5px;\n right: 3.5px;\n box-shadow: inset 0.5px 0.5px 0.5px rgba(0, 0, 0, 0.15);\n}\n\n.small .crater3 {\n position: absolute;\n width: 1.5px;\n height: 1.5px;\n background: radial-gradient(circle, rgba(128, 128, 128, 0.25), rgba(105, 105, 105, 0.1));\n border-radius: 50%;\n top: 7.5px;\n right: 5.5px;\n box-shadow: inset 0.25px 0.25px 0.5px rgba(0, 0, 0, 0.1);\n}\n\n.small .crater4 {\n position: absolute;\n width: 2.5px;\n height: 2.5px;\n background: radial-gradient(circle, rgba(128, 128, 128, 0.35), rgba(105, 105, 105, 0.18));\n border-radius: 50%;\n bottom: 3px;\n left: 4px;\n box-shadow: inset 0.5px 0.5px 0.75px rgba(0, 0, 0, 0.18);\n}\n\n.medium .crater1 {\n position: absolute;\n width: 4.5px;\n height: 4.5px;\n background: radial-gradient(circle, rgba(128, 128, 128, 0.4), rgba(105, 105, 105, 0.2));\n border-radius: 50%;\n top: 6px;\n left: 7.5px;\n box-shadow: inset 0.75px 0.75px 1.5px rgba(0, 0, 0, 0.2);\n}\n\n.medium .crater2 {\n position: absolute;\n width: 3px;\n height: 3px;\n background: radial-gradient(circle, rgba(128, 128, 128, 0.3), rgba(105, 105, 105, 0.15));\n border-radius: 50%;\n bottom: 6.75px;\n right: 5.25px;\n box-shadow: inset 0.75px 0.75px 0.75px rgba(0, 0, 0, 0.15);\n}\n\n.medium .crater3 {\n position: absolute;\n width: 2.25px;\n height: 2.25px;\n background: radial-gradient(circle, rgba(128, 128, 128, 0.25), rgba(105, 105, 105, 0.1));\n border-radius: 50%;\n top: 11.25px;\n right: 8.25px;\n box-shadow: inset 0.375px 0.375px 0.75px rgba(0, 0, 0, 0.1);\n}\n\n.medium .crater4 {\n position: absolute;\n width: 3.75px;\n height: 3.75px;\n background: radial-gradient(circle, rgba(128, 128, 128, 0.35), rgba(105, 105, 105, 0.18));\n border-radius: 50%;\n bottom: 4.5px;\n left: 6px;\n box-shadow: inset 0.75px 0.75px 1.125px rgba(0, 0, 0, 0.18);\n}\n\n.large .crater1 {\n position: absolute;\n width: 6px;\n height: 6px;\n background: radial-gradient(circle, rgba(128, 128, 128, 0.4), rgba(105, 105, 105, 0.2));\n border-radius: 50%;\n top: 8px;\n left: 10px;\n box-shadow: inset 1px 1px 2px rgba(0, 0, 0, 0.2);\n}\n\n.large .crater2 {\n position: absolute;\n width: 4px;\n height: 4px;\n background: radial-gradient(circle, rgba(128, 128, 128, 0.3), rgba(105, 105, 105, 0.15));\n border-radius: 50%;\n bottom: 9px;\n right: 7px;\n box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.15);\n}\n\n.large .crater3 {\n position: absolute;\n width: 3px;\n height: 3px;\n background: radial-gradient(circle, rgba(128, 128, 128, 0.25), rgba(105, 105, 105, 0.1));\n border-radius: 50%;\n top: 15px;\n right: 11px;\n box-shadow: inset 0.5px 0.5px 1px rgba(0, 0, 0, 0.1);\n}\n\n.large .crater4 {\n position: absolute;\n width: 5px;\n height: 5px;\n background: radial-gradient(circle, rgba(128, 128, 128, 0.35), rgba(105, 105, 105, 0.18));\n border-radius: 50%;\n bottom: 6px;\n left: 8px;\n box-shadow: inset 1px 1px 1.5px rgba(0, 0, 0, 0.18);\n}\n","import React from 'react';\n\nimport styles from './ThemeSwitch.module.css';\n\n/**\n * Props for the ThemeSwitch component\n */\nexport interface ThemeSwitchProps {\n /** Whether dark mode is currently enabled */\n enableDarkMode: boolean;\n /** Callback function to update the dark mode state */\n setEnableDarkMode: (value: boolean) => void;\n /** Size variant of the switch. Defaults to 'large' */\n size?: 'small' | 'medium' | 'large';\n}\n\n/**\n * ThemeSwitch Component\n *\n * An animated toggle switch for switching between light and dark themes.\n * Features sun/moon icons with animated clouds (light mode) and stars (dark mode).\n *\n * @component\n * @example\n * ```tsx\n * const [darkMode, setDarkMode] = useState(false);\n * <ThemeSwitch\n * enableDarkMode={darkMode}\n * setEnableDarkMode={setDarkMode}\n * size=\"medium\"\n * />\n * ```\n */\nconst ThemeSwitch: React.FC<ThemeSwitchProps> = ({\n enableDarkMode,\n setEnableDarkMode,\n size = 'large'\n}) => {\n const handleToggle = () => {\n setEnableDarkMode(!enableDarkMode);\n };\n\n return (\n <div\n className={`${styles.switchContainer} ${styles[size]} ${\n enableDarkMode ? styles.dark : styles.light\n }`}\n onClick={handleToggle}\n role=\"button\"\n tabIndex={0}\n aria-label={`Switch to ${enableDarkMode ? 'light' : 'dark'} mode`}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n handleToggle();\n }\n }}\n >\n {/* Background elements */}\n <div className={styles.background}>\n {/* Clouds for light mode */}\n <div className={`${styles.cloud} ${styles.cloud1}`}></div>\n <div className={`${styles.cloud} ${styles.cloud2}`}></div>\n <div className={`${styles.cloud} ${styles.cloud3}`}></div>\n\n {/* Stars for dark mode */}\n <div className={`${styles.star} ${styles.star1}`}></div>\n <div className={`${styles.star} ${styles.star2}`}></div>\n <div className={`${styles.star} ${styles.star3}`}></div>\n <div className={`${styles.star} ${styles.star4}`}></div>\n <div className={`${styles.star} ${styles.star5}`}></div>\n <div className={`${styles.star} ${styles.star6}`}></div>\n <div className={`${styles.star} ${styles.star7}`}></div>\n <div className={`${styles.star} ${styles.star8}`}></div>\n </div>\n\n {/* Toggle circle with sun/moon */}\n <div className={styles.toggle}>\n {/* Sun */}\n <div className={styles.sun}>\n <div className={styles.sunCore}>\n <div className={styles.sunspot1}></div>\n <div className={styles.sunspot2}></div>\n <div className={styles.sunspot3}></div>\n </div>\n <div className={styles.sunRay}></div>\n <div className={styles.sunRay}></div>\n <div className={styles.sunRay}></div>\n <div className={styles.sunRay}></div>\n <div className={styles.sunRay}></div>\n <div className={styles.sunRay}></div>\n <div className={styles.sunRay}></div>\n <div className={styles.sunRay}></div>\n </div>\n\n {/* Moon */}\n <div className={styles.moon}>\n <div className={styles.moonCore}>\n <div className={styles.crater1}></div>\n <div className={styles.crater2}></div>\n <div className={styles.crater3}></div>\n <div className={styles.crater4}></div>\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default ThemeSwitch;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GCiCM,KAA2C,EAC/C,mBACA,sBACA,UAAO,cACH;CACJ,IAAM,UAAqB;AACzB,IAAkB,CAAC,EAAe;;AAGpC,QACE,kBAAC,OAAD;EACE,WAAW,GAAG,EAAO,gBAAgB,GAAG,EAAO,GAAM,GACnD,IAAiB,EAAO,OAAO,EAAO;EAExC,SAAS;EACT,MAAK;EACL,UAAU;EACV,cAAY,aAAa,IAAiB,UAAU,OAAO;EAC3D,YAAY,MAAM;AAChB,IAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,QACjC,GAAc;;YAVpB,CAeE,kBAAC,OAAD;GAAK,WAAW,EAAO;aAAvB;IAEE,kBAAC,OAAD,EAAK,WAAW,GAAG,EAAO,MAAM,GAAG,EAAO,UAAgB,CAAA;IAC1D,kBAAC,OAAD,EAAK,WAAW,GAAG,EAAO,MAAM,GAAG,EAAO,UAAgB,CAAA;IAC1D,kBAAC,OAAD,EAAK,WAAW,GAAG,EAAO,MAAM,GAAG,EAAO,UAAgB,CAAA;IAG1D,kBAAC,OAAD,EAAK,WAAW,GAAG,EAAO,KAAK,GAAG,EAAO,SAAe,CAAA;IACxD,kBAAC,OAAD,EAAK,WAAW,GAAG,EAAO,KAAK,GAAG,EAAO,SAAe,CAAA;IACxD,kBAAC,OAAD,EAAK,WAAW,GAAG,EAAO,KAAK,GAAG,EAAO,SAAe,CAAA;IACxD,kBAAC,OAAD,EAAK,WAAW,GAAG,EAAO,KAAK,GAAG,EAAO,SAAe,CAAA;IACxD,kBAAC,OAAD,EAAK,WAAW,GAAG,EAAO,KAAK,GAAG,EAAO,SAAe,CAAA;IACxD,kBAAC,OAAD,EAAK,WAAW,GAAG,EAAO,KAAK,GAAG,EAAO,SAAe,CAAA;IACxD,kBAAC,OAAD,EAAK,WAAW,GAAG,EAAO,KAAK,GAAG,EAAO,SAAe,CAAA;IACxD,kBAAC,OAAD,EAAK,WAAW,GAAG,EAAO,KAAK,GAAG,EAAO,SAAe,CAAA;IACpD;MAGN,kBAAC,OAAD;GAAK,WAAW,EAAO;aAAvB,CAEE,kBAAC,OAAD;IAAK,WAAW,EAAO;cAAvB;KACE,kBAAC,OAAD;MAAK,WAAW,EAAO;gBAAvB;OACE,kBAAC,OAAD,EAAK,WAAW,EAAO,UAAgB,CAAA;OACvC,kBAAC,OAAD,EAAK,WAAW,EAAO,UAAgB,CAAA;OACvC,kBAAC,OAAD,EAAK,WAAW,EAAO,UAAgB,CAAA;OACnC;;KACN,kBAAC,OAAD,EAAK,WAAW,EAAO,QAAc,CAAA;KACrC,kBAAC,OAAD,EAAK,WAAW,EAAO,QAAc,CAAA;KACrC,kBAAC,OAAD,EAAK,WAAW,EAAO,QAAc,CAAA;KACrC,kBAAC,OAAD,EAAK,WAAW,EAAO,QAAc,CAAA;KACrC,kBAAC,OAAD,EAAK,WAAW,EAAO,QAAc,CAAA;KACrC,kBAAC,OAAD,EAAK,WAAW,EAAO,QAAc,CAAA;KACrC,kBAAC,OAAD,EAAK,WAAW,EAAO,QAAc,CAAA;KACrC,kBAAC,OAAD,EAAK,WAAW,EAAO,QAAc,CAAA;KACjC;OAGN,kBAAC,OAAD;IAAK,WAAW,EAAO;cACrB,kBAAC,OAAD;KAAK,WAAW,EAAO;eAAvB;MACE,kBAAC,OAAD,EAAK,WAAW,EAAO,SAAe,CAAA;MACtC,kBAAC,OAAD,EAAK,WAAW,EAAO,SAAe,CAAA;MACtC,kBAAC,OAAD,EAAK,WAAW,EAAO,SAAe,CAAA;MACtC,kBAAC,OAAD,EAAK,WAAW,EAAO,SAAe,CAAA;MAClC;;IACF,CAAA,CACF;KACF"}
@@ -0,0 +1,2 @@
1
+ require('./ThemeSwitch.css');const e=require(`./chunk-Bmb41Sf3.cjs`);let t=require(`react`);t=e.t(t);let n=require(`react/jsx-runtime`);var r={sunCore:`ThemeSwitch-module__sunCore___tUhud`,small:`ThemeSwitch-module__small___YlvWo`,medium:`ThemeSwitch-module__medium___Q8Rro`,large:`ThemeSwitch-module__large___BMOxC`,sunspot1:`ThemeSwitch-module__sunspot1___8RI1V`,sunspot2:`ThemeSwitch-module__sunspot2___U0whF`,sunspot3:`ThemeSwitch-module__sunspot3___kWYEI`,sunRay:`ThemeSwitch-module__sunRay___t1B4U`,rotateSun:`ThemeSwitch-module__rotateSun___JQByd`,switchContainer:`ThemeSwitch-module__switchContainer___VENjU`,dark:`ThemeSwitch-module__dark___a4vSn`,background:`ThemeSwitch-module__background___Rpodp`,cloud:`ThemeSwitch-module__cloud___OoOyx`,light:`ThemeSwitch-module__light___ddTa2`,cloud1:`ThemeSwitch-module__cloud1___aqGNx`,floatCloud1:`ThemeSwitch-module__floatCloud1___MdWMj`,cloud2:`ThemeSwitch-module__cloud2___guY71`,floatCloud2:`ThemeSwitch-module__floatCloud2___2x6Sp`,cloud3:`ThemeSwitch-module__cloud3___7-NhR`,floatCloud3:`ThemeSwitch-module__floatCloud3___FJCbV`,star:`ThemeSwitch-module__star___Z98bU`,star1:`ThemeSwitch-module__star1___rhotb`,star2:`ThemeSwitch-module__star2___pzbNR`,star3:`ThemeSwitch-module__star3___iK7lJ`,star4:`ThemeSwitch-module__star4___t5pqN`,star5:`ThemeSwitch-module__star5___dx42N`,star6:`ThemeSwitch-module__star6___wur-I`,star7:`ThemeSwitch-module__star7___KONgd`,star8:`ThemeSwitch-module__star8___gIYpk`,twinkle:`ThemeSwitch-module__twinkle___Abun5`,toggle:`ThemeSwitch-module__toggle___L5FGS`,sun:`ThemeSwitch-module__sun___s8noI`,moon:`ThemeSwitch-module__moon___TNpFJ`,moonCore:`ThemeSwitch-module__moonCore___svwjb`,crater1:`ThemeSwitch-module__crater1___swpHc`,crater2:`ThemeSwitch-module__crater2___WQVKR`,crater3:`ThemeSwitch-module__crater3___F-KJu`,crater4:`ThemeSwitch-module__crater4___ZsIb7`},i=({enableDarkMode:e,setEnableDarkMode:t,size:i=`large`})=>{let a=()=>{t(!e)};return(0,n.jsxs)(`div`,{className:`${r.switchContainer} ${r[i]} ${e?r.dark:r.light}`,onClick:a,role:`button`,tabIndex:0,"aria-label":`Switch to ${e?`light`:`dark`} mode`,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&a()},children:[(0,n.jsxs)(`div`,{className:r.background,children:[(0,n.jsx)(`div`,{className:`${r.cloud} ${r.cloud1}`}),(0,n.jsx)(`div`,{className:`${r.cloud} ${r.cloud2}`}),(0,n.jsx)(`div`,{className:`${r.cloud} ${r.cloud3}`}),(0,n.jsx)(`div`,{className:`${r.star} ${r.star1}`}),(0,n.jsx)(`div`,{className:`${r.star} ${r.star2}`}),(0,n.jsx)(`div`,{className:`${r.star} ${r.star3}`}),(0,n.jsx)(`div`,{className:`${r.star} ${r.star4}`}),(0,n.jsx)(`div`,{className:`${r.star} ${r.star5}`}),(0,n.jsx)(`div`,{className:`${r.star} ${r.star6}`}),(0,n.jsx)(`div`,{className:`${r.star} ${r.star7}`}),(0,n.jsx)(`div`,{className:`${r.star} ${r.star8}`})]}),(0,n.jsxs)(`div`,{className:r.toggle,children:[(0,n.jsxs)(`div`,{className:r.sun,children:[(0,n.jsxs)(`div`,{className:r.sunCore,children:[(0,n.jsx)(`div`,{className:r.sunspot1}),(0,n.jsx)(`div`,{className:r.sunspot2}),(0,n.jsx)(`div`,{className:r.sunspot3})]}),(0,n.jsx)(`div`,{className:r.sunRay}),(0,n.jsx)(`div`,{className:r.sunRay}),(0,n.jsx)(`div`,{className:r.sunRay}),(0,n.jsx)(`div`,{className:r.sunRay}),(0,n.jsx)(`div`,{className:r.sunRay}),(0,n.jsx)(`div`,{className:r.sunRay}),(0,n.jsx)(`div`,{className:r.sunRay}),(0,n.jsx)(`div`,{className:r.sunRay})]}),(0,n.jsx)(`div`,{className:r.moon,children:(0,n.jsxs)(`div`,{className:r.moonCore,children:[(0,n.jsx)(`div`,{className:r.crater1}),(0,n.jsx)(`div`,{className:r.crater2}),(0,n.jsx)(`div`,{className:r.crater3}),(0,n.jsx)(`div`,{className:r.crater4})]})})]})]})};Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
2
+ //# sourceMappingURL=ThemeSwitch-Cn7-KsSv.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeSwitch-Cn7-KsSv.cjs","names":[],"sources":["../src/components/ThemeSwitch/ThemeSwitch.module.css","../src/components/ThemeSwitch/ThemeSwitch.tsx"],"sourcesContent":["/* Sun - Size variants */\n.sunCore {\n position: relative;\n background: radial-gradient(circle, #ffd700, #ffa500);\n border-radius: 50%;\n}\n\n.small .sunCore {\n width: 16px;\n height: 16px;\n box-shadow: inset -1px -1px 2px rgba(255, 140, 0, 0.5);\n}\n\n.medium .sunCore {\n width: 24px;\n height: 24px;\n box-shadow: inset -1.5px -1.5px 3px rgba(255, 140, 0, 0.5);\n}\n\n.large .sunCore {\n width: 32px;\n height: 32px;\n box-shadow: inset -2px -2px 4px rgba(255, 140, 0, 0.5);\n}\n\n/* Sunspots - Size variants */\n.small .sunspot1 {\n position: absolute;\n width: 2px;\n height: 2px;\n background: rgba(255, 140, 0, 0.6);\n border-radius: 50%;\n top: 4px;\n left: 5px;\n}\n\n.small .sunspot2 {\n position: absolute;\n width: 1.5px;\n height: 1.5px;\n background: rgba(255, 140, 0, 0.5);\n border-radius: 50%;\n bottom: 5px;\n right: 4px;\n}\n\n.small .sunspot3 {\n position: absolute;\n width: 1px;\n height: 1px;\n background: rgba(255, 140, 0, 0.4);\n border-radius: 50%;\n top: 6px;\n right: 6px;\n}\n\n.medium .sunspot1 {\n position: absolute;\n width: 3px;\n height: 3px;\n background: rgba(255, 140, 0, 0.6);\n border-radius: 50%;\n top: 6px;\n left: 7.5px;\n}\n\n.medium .sunspot2 {\n position: absolute;\n width: 2.25px;\n height: 2.25px;\n background: rgba(255, 140, 0, 0.5);\n border-radius: 50%;\n bottom: 7.5px;\n right: 6px;\n}\n\n.medium .sunspot3 {\n position: absolute;\n width: 1.5px;\n height: 1.5px;\n background: rgba(255, 140, 0, 0.4);\n border-radius: 50%;\n top: 9px;\n right: 9px;\n}\n\n.large .sunspot1 {\n position: absolute;\n width: 4px;\n height: 4px;\n background: rgba(255, 140, 0, 0.6);\n border-radius: 50%;\n top: 8px;\n left: 10px;\n}\n\n.large .sunspot2 {\n position: absolute;\n width: 3px;\n height: 3px;\n background: rgba(255, 140, 0, 0.5);\n border-radius: 50%;\n bottom: 10px;\n right: 8px;\n}\n\n.large .sunspot3 {\n position: absolute;\n width: 2px;\n height: 2px;\n background: rgba(255, 140, 0, 0.4);\n border-radius: 50%;\n top: 12px;\n right: 12px;\n}\n\n/* Sun rays - Size adjustments */\n.small .sunRay {\n position: absolute;\n background: linear-gradient(90deg, transparent, #ffd700, transparent);\n animation: rotateSun 10s linear infinite;\n}\n\n.small .sunRay:nth-child(2) {\n width: 20px;\n height: 1px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n.small .sunRay:nth-child(3) {\n width: 1px;\n height: 20px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n.small .sunRay:nth-child(4) {\n width: 20px;\n height: 1px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(45deg);\n}\n\n.small .sunRay:nth-child(5) {\n width: 20px;\n height: 1px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(-45deg);\n}\n\n.small .sunRay:nth-child(6),\n.small .sunRay:nth-child(7),\n.small .sunRay:nth-child(8),\n.small .sunRay:nth-child(9) {\n display: none;\n}\n\n.medium .sunRay {\n position: absolute;\n background: linear-gradient(90deg, transparent, #ffd700, transparent);\n animation: rotateSun 10s linear infinite;\n}\n\n.medium .sunRay:nth-child(2) {\n width: 30px;\n height: 1.5px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n.medium .sunRay:nth-child(3) {\n width: 1.5px;\n height: 30px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n.medium .sunRay:nth-child(4) {\n width: 30px;\n height: 1.5px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(45deg);\n}\n\n.medium .sunRay:nth-child(5) {\n width: 30px;\n height: 1.5px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(-45deg);\n}\n\n.medium .sunRay:nth-child(6) {\n width: 26px;\n height: 1px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(22.5deg);\n}\n\n.medium .sunRay:nth-child(7) {\n width: 26px;\n height: 1px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(-22.5deg);\n}\n\n.medium .sunRay:nth-child(8),\n.medium .sunRay:nth-child(9) {\n display: none;\n}\n\n.large .sunRay {\n position: absolute;\n background: linear-gradient(90deg, transparent, #ffd700, transparent);\n animation: rotateSun 10s linear infinite;\n}\n\n.large .sunRay:nth-child(2) {\n width: 40px;\n height: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n.large .sunRay:nth-child(3) {\n width: 2px;\n height: 40px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n.large .sunRay:nth-child(4) {\n width: 40px;\n height: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(45deg);\n}\n\n.large .sunRay:nth-child(5) {\n width: 40px;\n height: 2px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(-45deg);\n}\n\n.large .sunRay:nth-child(6) {\n width: 35px;\n height: 1px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(22.5deg);\n}\n\n.large .sunRay:nth-child(7) {\n width: 35px;\n height: 1px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(-22.5deg);\n}\n\n/* Base container styles */\n.switchContainer {\n position: relative;\n background: linear-gradient(135deg, #87ceeb, #add8e6);\n border-radius: 30px;\n cursor: pointer;\n overflow: hidden;\n transition: background 0.6s cubic-bezier(0.4, 0, 0.2, 1);\n box-shadow:\n inset 0 2px 8px rgba(0, 0, 0, 0.1),\n 0 4px 12px rgba(0, 0, 0, 0.15);\n user-select: none;\n}\n\n/* Size variants */\n.switchContainer.small {\n width: 60px;\n height: 30px;\n border-radius: 15px;\n}\n\n.switchContainer.medium {\n width: 90px;\n height: 45px;\n border-radius: 22.5px;\n}\n\n.switchContainer.large {\n width: 120px;\n height: 60px;\n border-radius: 30px;\n}\n\n.switchContainer:focus {\n outline: 2px solid #4a90e2;\n outline-offset: 2px;\n}\n\n.switchContainer.dark {\n background: linear-gradient(135deg, #1a1a3e, #0a0a1f);\n}\n\n.background {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n pointer-events: none;\n}\n\n/* Clouds - Base styles */\n.cloud {\n position: absolute;\n background: rgba(255, 255, 255, 0.4);\n border-radius: 100px;\n opacity: 0;\n transition: opacity 0.6s ease;\n}\n\n.light .cloud {\n opacity: 1;\n}\n\n.cloud::before,\n.cloud::after {\n content: '';\n position: absolute;\n background: rgba(255, 255, 255, 0.4);\n border-radius: 100px;\n}\n\n/* Cloud 1 - Size variants */\n.small .cloud1 {\n width: 12px;\n height: 4px;\n top: 7px;\n left: 10px;\n}\n\n.small .cloud1::before {\n width: 5px;\n height: 5px;\n top: -2.5px;\n left: 2.5px;\n}\n\n.small .cloud1::after {\n width: 6px;\n height: 4px;\n top: -1.5px;\n right: 2.5px;\n}\n\n.medium .cloud1 {\n width: 19px;\n height: 6px;\n top: 11px;\n left: 15px;\n}\n\n.medium .cloud1::before {\n width: 7.5px;\n height: 7.5px;\n top: -3.75px;\n left: 3.75px;\n}\n\n.medium .cloud1::after {\n width: 9px;\n height: 6px;\n top: -2.25px;\n right: 3.75px;\n}\n\n.large .cloud1 {\n width: 25px;\n height: 8px;\n top: 15px;\n left: 20px;\n}\n\n.large .cloud1::before {\n width: 10px;\n height: 10px;\n top: -5px;\n left: 5px;\n}\n\n.large .cloud1::after {\n width: 12px;\n height: 8px;\n top: -3px;\n right: 5px;\n}\n\n.cloud1 {\n animation: floatCloud1 12s infinite ease-in-out;\n}\n\n/* Cloud 2 - Size variants */\n.small .cloud2 {\n width: 10px;\n height: 3px;\n top: 17px;\n right: 12px;\n}\n\n.small .cloud2::before {\n width: 4px;\n height: 4px;\n top: -2px;\n left: 1.5px;\n}\n\n.medium .cloud2 {\n width: 15px;\n height: 4.5px;\n top: 26px;\n right: 19px;\n}\n\n.medium .cloud2::before {\n width: 6px;\n height: 6px;\n top: -3px;\n left: 2.25px;\n}\n\n.large .cloud2 {\n width: 20px;\n height: 6px;\n top: 35px;\n right: 25px;\n}\n\n.large .cloud2::before {\n width: 8px;\n height: 8px;\n top: -4px;\n left: 3px;\n}\n\n.cloud2 {\n animation: floatCloud2 15s infinite ease-in-out;\n}\n\n/* Cloud 3 - Size variants */\n.small .cloud3 {\n width: 9px;\n height: 2.5px;\n bottom: 9px;\n left: 17px;\n}\n\n.small .cloud3::after {\n width: 5px;\n height: 3px;\n top: -1.5px;\n right: 1.5px;\n}\n\n.medium .cloud3 {\n width: 13.5px;\n height: 3.75px;\n bottom: 13.5px;\n left: 26px;\n}\n\n.medium .cloud3::after {\n width: 7.5px;\n height: 4.5px;\n top: -2.25px;\n right: 2.25px;\n}\n\n.large .cloud3 {\n width: 18px;\n height: 5px;\n bottom: 18px;\n left: 35px;\n}\n\n.large .cloud3::after {\n width: 10px;\n height: 6px;\n top: -3px;\n right: 3px;\n}\n\n.cloud3 {\n animation: floatCloud3 18s infinite ease-in-out;\n}\n\n@keyframes floatCloud1 {\n 0%,\n 100% {\n transform: translateX(0);\n }\n 50% {\n transform: translateX(5px);\n }\n}\n\n@keyframes floatCloud2 {\n 0%,\n 100% {\n transform: translateX(0);\n }\n 50% {\n transform: translateX(-3px);\n }\n}\n\n@keyframes floatCloud3 {\n 0%,\n 100% {\n transform: translateX(0);\n }\n 50% {\n transform: translateX(4px);\n }\n}\n\n/* Stars - Base styles */\n.star {\n position: absolute;\n background: white;\n border-radius: 50%;\n opacity: 0;\n transition: opacity 0.6s ease;\n}\n\n.dark .star {\n opacity: 1;\n}\n\n/* Stars - Size variants */\n.small .star1 {\n width: 1px;\n height: 1px;\n top: 5px;\n left: 12px;\n}\n\n.small .star2 {\n width: 1px;\n height: 1px;\n top: 9px;\n right: 15px;\n}\n\n.small .star3 {\n width: 1px;\n height: 1px;\n bottom: 7px;\n left: 20px;\n}\n\n.small .star4 {\n width: 0.75px;\n height: 0.75px;\n top: 12px;\n left: 7px;\n}\n\n.small .star5 {\n width: 1px;\n height: 1px;\n bottom: 10px;\n right: 17px;\n}\n\n.small .star6 {\n width: 0.5px;\n height: 0.5px;\n top: 17px;\n right: 10px;\n}\n\n.small .star7 {\n width: 0.75px;\n height: 0.75px;\n bottom: 12px;\n left: 10px;\n}\n\n.small .star8 {\n width: 0.5px;\n height: 0.5px;\n top: 6px;\n right: 7px;\n}\n\n.medium .star1 {\n width: 1.5px;\n height: 1.5px;\n top: 7.5px;\n left: 19px;\n}\n\n.medium .star2 {\n width: 1.5px;\n height: 1.5px;\n top: 13.5px;\n right: 22.5px;\n}\n\n.medium .star3 {\n width: 1.5px;\n height: 1.5px;\n bottom: 11px;\n left: 30px;\n}\n\n.medium .star4 {\n width: 1.13px;\n height: 1.13px;\n top: 19px;\n left: 11px;\n}\n\n.medium .star5 {\n width: 1.5px;\n height: 1.5px;\n bottom: 15px;\n right: 26px;\n}\n\n.medium .star6 {\n width: 0.75px;\n height: 0.75px;\n top: 26px;\n right: 15px;\n}\n\n.medium .star7 {\n width: 1.13px;\n height: 1.13px;\n bottom: 19px;\n left: 15px;\n}\n\n.medium .star8 {\n width: 0.75px;\n height: 0.75px;\n top: 9px;\n right: 11px;\n}\n\n.large .star1 {\n width: 2px;\n height: 2px;\n top: 10px;\n left: 25px;\n}\n\n.large .star2 {\n width: 2px;\n height: 2px;\n top: 18px;\n right: 30px;\n}\n\n.large .star3 {\n width: 2px;\n height: 2px;\n bottom: 15px;\n left: 40px;\n}\n\n.large .star4 {\n width: 1.5px;\n height: 1.5px;\n top: 25px;\n left: 15px;\n}\n\n.large .star5 {\n width: 2px;\n height: 2px;\n bottom: 20px;\n right: 35px;\n}\n\n.large .star6 {\n width: 1px;\n height: 1px;\n top: 35px;\n right: 20px;\n}\n\n.large .star7 {\n width: 1.5px;\n height: 1.5px;\n bottom: 25px;\n left: 20px;\n}\n\n.large .star8 {\n width: 1px;\n height: 1px;\n top: 12px;\n right: 15px;\n}\n\n.star1 {\n animation: twinkle 3s infinite;\n}\n\n.star2 {\n animation: twinkle 3s infinite 0.5s;\n}\n\n.star3 {\n animation: twinkle 3s infinite 1s;\n}\n\n.star4 {\n animation: twinkle 3s infinite 1.5s;\n}\n\n.star5 {\n animation: twinkle 3s infinite 2s;\n}\n\n.star6 {\n animation: twinkle 3s infinite 2.5s;\n}\n\n.star7 {\n animation: twinkle 3s infinite 0.8s;\n}\n\n.star8 {\n animation: twinkle 3s infinite 1.3s;\n}\n\n@keyframes twinkle {\n 0%,\n 100% {\n opacity: 0.3;\n }\n 50% {\n opacity: 1;\n }\n}\n\n/* Toggle - Size variants */\n.toggle {\n position: absolute;\n border-radius: 50%;\n transition:\n transform 0.6s cubic-bezier(0.4, 0, 0.2, 1),\n background 0.6s cubic-bezier(0.4, 0, 0.2, 1);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.small .toggle {\n width: 24px;\n height: 24px;\n background: linear-gradient(135deg, #ffd700, #ffa500);\n top: 3px;\n left: 3px;\n box-shadow:\n 0 1px 4px rgba(0, 0, 0, 0.2),\n 0 0 10px rgba(255, 215, 0, 0.3);\n}\n\n.medium .toggle {\n width: 36px;\n height: 36px;\n background: linear-gradient(135deg, #ffd700, #ffa500);\n top: 4.5px;\n left: 4.5px;\n box-shadow:\n 0 1.5px 6px rgba(0, 0, 0, 0.2),\n 0 0 15px rgba(255, 215, 0, 0.3);\n}\n\n.large .toggle {\n width: 48px;\n height: 48px;\n background: linear-gradient(135deg, #ffd700, #ffa500);\n top: 6px;\n left: 6px;\n box-shadow:\n 0 2px 8px rgba(0, 0, 0, 0.2),\n 0 0 20px rgba(255, 215, 0, 0.3);\n}\n\n.dark.small .toggle {\n transform: translateX(30px);\n background: linear-gradient(135deg, #f5f5dc, #d3d3d3);\n box-shadow:\n 0 1px 4px rgba(0, 0, 0, 0.3),\n 0 0 10px rgba(245, 245, 220, 0.2);\n}\n\n.dark.medium .toggle {\n transform: translateX(45px);\n background: linear-gradient(135deg, #f5f5dc, #d3d3d3);\n box-shadow:\n 0 1.5px 6px rgba(0, 0, 0, 0.3),\n 0 0 15px rgba(245, 245, 220, 0.2);\n}\n\n.dark.large .toggle {\n transform: translateX(60px);\n background: linear-gradient(135deg, #f5f5dc, #d3d3d3);\n box-shadow:\n 0 2px 8px rgba(0, 0, 0, 0.3),\n 0 0 20px rgba(245, 245, 220, 0.2);\n}\n\n/* Sun */\n.sun {\n position: absolute;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 1;\n transform: rotate(0deg) scale(1);\n transition:\n opacity 0.6s ease,\n transform 0.6s ease;\n}\n\n.dark .sun {\n opacity: 0;\n transform: rotate(180deg) scale(0.5);\n}\n\n.large .sunRay:nth-child(7) {\n width: 35px;\n height: 1px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(-22.5deg);\n}\n\n.large .sunRay:nth-child(8) {\n width: 35px;\n height: 1px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(67.5deg);\n}\n\n.large .sunRay:nth-child(9) {\n width: 35px;\n height: 1px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(-67.5deg);\n}\n\n@keyframes rotateSun {\n from {\n transform: translate(-50%, -50%) rotate(0deg);\n }\n to {\n transform: translate(-50%, -50%) rotate(360deg);\n }\n}\n\n/* Moon */\n.moon {\n position: absolute;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transform: rotate(-180deg) scale(0.5);\n transition:\n opacity 0.6s ease,\n transform 0.6s ease;\n}\n\n.dark .moon {\n opacity: 1;\n transform: rotate(0deg) scale(1);\n}\n\n/* Moon - Size variants */\n.moonCore {\n position: relative;\n border-radius: 50%;\n}\n\n.small .moonCore {\n width: 16px;\n height: 16px;\n background: radial-gradient(circle at 30% 30%, #f5f5dc, #c0c0c0);\n box-shadow:\n inset -1.5px -1.5px 4px rgba(0, 0, 0, 0.2),\n inset 1px 1px 4px rgba(255, 255, 255, 0.3);\n}\n\n.medium .moonCore {\n width: 24px;\n height: 24px;\n background: radial-gradient(circle at 30% 30%, #f5f5dc, #c0c0c0);\n box-shadow:\n inset -2.25px -2.25px 6px rgba(0, 0, 0, 0.2),\n inset 1.5px 1.5px 6px rgba(255, 255, 255, 0.3);\n}\n\n.large .moonCore {\n width: 32px;\n height: 32px;\n background: radial-gradient(circle at 30% 30%, #f5f5dc, #c0c0c0);\n box-shadow:\n inset -3px -3px 8px rgba(0, 0, 0, 0.2),\n inset 2px 2px 8px rgba(255, 255, 255, 0.3);\n}\n\n/* Craters - Size variants */\n.small .crater1 {\n position: absolute;\n width: 3px;\n height: 3px;\n background: radial-gradient(circle, rgba(128, 128, 128, 0.4), rgba(105, 105, 105, 0.2));\n border-radius: 50%;\n top: 4px;\n left: 5px;\n box-shadow: inset 0.5px 0.5px 1px rgba(0, 0, 0, 0.2);\n}\n\n.small .crater2 {\n position: absolute;\n width: 2px;\n height: 2px;\n background: radial-gradient(circle, rgba(128, 128, 128, 0.3), rgba(105, 105, 105, 0.15));\n border-radius: 50%;\n bottom: 4.5px;\n right: 3.5px;\n box-shadow: inset 0.5px 0.5px 0.5px rgba(0, 0, 0, 0.15);\n}\n\n.small .crater3 {\n position: absolute;\n width: 1.5px;\n height: 1.5px;\n background: radial-gradient(circle, rgba(128, 128, 128, 0.25), rgba(105, 105, 105, 0.1));\n border-radius: 50%;\n top: 7.5px;\n right: 5.5px;\n box-shadow: inset 0.25px 0.25px 0.5px rgba(0, 0, 0, 0.1);\n}\n\n.small .crater4 {\n position: absolute;\n width: 2.5px;\n height: 2.5px;\n background: radial-gradient(circle, rgba(128, 128, 128, 0.35), rgba(105, 105, 105, 0.18));\n border-radius: 50%;\n bottom: 3px;\n left: 4px;\n box-shadow: inset 0.5px 0.5px 0.75px rgba(0, 0, 0, 0.18);\n}\n\n.medium .crater1 {\n position: absolute;\n width: 4.5px;\n height: 4.5px;\n background: radial-gradient(circle, rgba(128, 128, 128, 0.4), rgba(105, 105, 105, 0.2));\n border-radius: 50%;\n top: 6px;\n left: 7.5px;\n box-shadow: inset 0.75px 0.75px 1.5px rgba(0, 0, 0, 0.2);\n}\n\n.medium .crater2 {\n position: absolute;\n width: 3px;\n height: 3px;\n background: radial-gradient(circle, rgba(128, 128, 128, 0.3), rgba(105, 105, 105, 0.15));\n border-radius: 50%;\n bottom: 6.75px;\n right: 5.25px;\n box-shadow: inset 0.75px 0.75px 0.75px rgba(0, 0, 0, 0.15);\n}\n\n.medium .crater3 {\n position: absolute;\n width: 2.25px;\n height: 2.25px;\n background: radial-gradient(circle, rgba(128, 128, 128, 0.25), rgba(105, 105, 105, 0.1));\n border-radius: 50%;\n top: 11.25px;\n right: 8.25px;\n box-shadow: inset 0.375px 0.375px 0.75px rgba(0, 0, 0, 0.1);\n}\n\n.medium .crater4 {\n position: absolute;\n width: 3.75px;\n height: 3.75px;\n background: radial-gradient(circle, rgba(128, 128, 128, 0.35), rgba(105, 105, 105, 0.18));\n border-radius: 50%;\n bottom: 4.5px;\n left: 6px;\n box-shadow: inset 0.75px 0.75px 1.125px rgba(0, 0, 0, 0.18);\n}\n\n.large .crater1 {\n position: absolute;\n width: 6px;\n height: 6px;\n background: radial-gradient(circle, rgba(128, 128, 128, 0.4), rgba(105, 105, 105, 0.2));\n border-radius: 50%;\n top: 8px;\n left: 10px;\n box-shadow: inset 1px 1px 2px rgba(0, 0, 0, 0.2);\n}\n\n.large .crater2 {\n position: absolute;\n width: 4px;\n height: 4px;\n background: radial-gradient(circle, rgba(128, 128, 128, 0.3), rgba(105, 105, 105, 0.15));\n border-radius: 50%;\n bottom: 9px;\n right: 7px;\n box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.15);\n}\n\n.large .crater3 {\n position: absolute;\n width: 3px;\n height: 3px;\n background: radial-gradient(circle, rgba(128, 128, 128, 0.25), rgba(105, 105, 105, 0.1));\n border-radius: 50%;\n top: 15px;\n right: 11px;\n box-shadow: inset 0.5px 0.5px 1px rgba(0, 0, 0, 0.1);\n}\n\n.large .crater4 {\n position: absolute;\n width: 5px;\n height: 5px;\n background: radial-gradient(circle, rgba(128, 128, 128, 0.35), rgba(105, 105, 105, 0.18));\n border-radius: 50%;\n bottom: 6px;\n left: 8px;\n box-shadow: inset 1px 1px 1.5px rgba(0, 0, 0, 0.18);\n}\n","import React from 'react';\n\nimport styles from './ThemeSwitch.module.css';\n\n/**\n * Props for the ThemeSwitch component\n */\nexport interface ThemeSwitchProps {\n /** Whether dark mode is currently enabled */\n enableDarkMode: boolean;\n /** Callback function to update the dark mode state */\n setEnableDarkMode: (value: boolean) => void;\n /** Size variant of the switch. Defaults to 'large' */\n size?: 'small' | 'medium' | 'large';\n}\n\n/**\n * ThemeSwitch Component\n *\n * An animated toggle switch for switching between light and dark themes.\n * Features sun/moon icons with animated clouds (light mode) and stars (dark mode).\n *\n * @component\n * @example\n * ```tsx\n * const [darkMode, setDarkMode] = useState(false);\n * <ThemeSwitch\n * enableDarkMode={darkMode}\n * setEnableDarkMode={setDarkMode}\n * size=\"medium\"\n * />\n * ```\n */\nconst ThemeSwitch: React.FC<ThemeSwitchProps> = ({\n enableDarkMode,\n setEnableDarkMode,\n size = 'large'\n}) => {\n const handleToggle = () => {\n setEnableDarkMode(!enableDarkMode);\n };\n\n return (\n <div\n className={`${styles.switchContainer} ${styles[size]} ${\n enableDarkMode ? styles.dark : styles.light\n }`}\n onClick={handleToggle}\n role=\"button\"\n tabIndex={0}\n aria-label={`Switch to ${enableDarkMode ? 'light' : 'dark'} mode`}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n handleToggle();\n }\n }}\n >\n {/* Background elements */}\n <div className={styles.background}>\n {/* Clouds for light mode */}\n <div className={`${styles.cloud} ${styles.cloud1}`}></div>\n <div className={`${styles.cloud} ${styles.cloud2}`}></div>\n <div className={`${styles.cloud} ${styles.cloud3}`}></div>\n\n {/* Stars for dark mode */}\n <div className={`${styles.star} ${styles.star1}`}></div>\n <div className={`${styles.star} ${styles.star2}`}></div>\n <div className={`${styles.star} ${styles.star3}`}></div>\n <div className={`${styles.star} ${styles.star4}`}></div>\n <div className={`${styles.star} ${styles.star5}`}></div>\n <div className={`${styles.star} ${styles.star6}`}></div>\n <div className={`${styles.star} ${styles.star7}`}></div>\n <div className={`${styles.star} ${styles.star8}`}></div>\n </div>\n\n {/* Toggle circle with sun/moon */}\n <div className={styles.toggle}>\n {/* Sun */}\n <div className={styles.sun}>\n <div className={styles.sunCore}>\n <div className={styles.sunspot1}></div>\n <div className={styles.sunspot2}></div>\n <div className={styles.sunspot3}></div>\n </div>\n <div className={styles.sunRay}></div>\n <div className={styles.sunRay}></div>\n <div className={styles.sunRay}></div>\n <div className={styles.sunRay}></div>\n <div className={styles.sunRay}></div>\n <div className={styles.sunRay}></div>\n <div className={styles.sunRay}></div>\n <div className={styles.sunRay}></div>\n </div>\n\n {/* Moon */}\n <div className={styles.moon}>\n <div className={styles.moonCore}>\n <div className={styles.crater1}></div>\n <div className={styles.crater2}></div>\n <div className={styles.crater3}></div>\n <div className={styles.crater4}></div>\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default ThemeSwitch;\n"],"mappings":"2yDCiCM,GAA2C,CAC/C,iBACA,oBACA,OAAO,WACH,CACJ,IAAM,MAAqB,CACzB,EAAkB,CAAC,EAAe,EAGpC,OACE,EAAA,EAAA,MAAC,MAAD,CACE,UAAW,GAAG,EAAO,gBAAgB,GAAG,EAAO,GAAM,GACnD,EAAiB,EAAO,KAAO,EAAO,QAExC,QAAS,EACT,KAAK,SACL,SAAU,EACV,aAAY,aAAa,EAAiB,QAAU,OAAO,OAC3D,UAAY,GAAM,EACZ,EAAE,MAAQ,SAAW,EAAE,MAAQ,MACjC,GAAc,WAVpB,EAeE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAO,oBAAvB,EAEE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,GAAG,EAAO,MAAM,GAAG,EAAO,SAAgB,CAAA,EAC1D,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,GAAG,EAAO,MAAM,GAAG,EAAO,SAAgB,CAAA,EAC1D,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,GAAG,EAAO,MAAM,GAAG,EAAO,SAAgB,CAAA,EAG1D,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,GAAG,EAAO,KAAK,GAAG,EAAO,QAAe,CAAA,EACxD,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,GAAG,EAAO,KAAK,GAAG,EAAO,QAAe,CAAA,EACxD,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,GAAG,EAAO,KAAK,GAAG,EAAO,QAAe,CAAA,EACxD,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,GAAG,EAAO,KAAK,GAAG,EAAO,QAAe,CAAA,EACxD,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,GAAG,EAAO,KAAK,GAAG,EAAO,QAAe,CAAA,EACxD,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,GAAG,EAAO,KAAK,GAAG,EAAO,QAAe,CAAA,EACxD,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,GAAG,EAAO,KAAK,GAAG,EAAO,QAAe,CAAA,EACxD,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,GAAG,EAAO,KAAK,GAAG,EAAO,QAAe,CAAA,CACpD,IAGN,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAO,gBAAvB,EAEE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAO,aAAvB,EACE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAO,iBAAvB,EACE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAO,SAAgB,CAAA,EACvC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAO,SAAgB,CAAA,EACvC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAO,SAAgB,CAAA,CACnC,IACN,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAO,OAAc,CAAA,EACrC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAO,OAAc,CAAA,EACrC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAO,OAAc,CAAA,EACrC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAO,OAAc,CAAA,EACrC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAO,OAAc,CAAA,EACrC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAO,OAAc,CAAA,EACrC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAO,OAAc,CAAA,EACrC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAO,OAAc,CAAA,CACjC,IAGN,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAO,eACrB,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAO,kBAAvB,EACE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAO,QAAe,CAAA,EACtC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAO,QAAe,CAAA,EACtC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAO,QAAe,CAAA,EACtC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAO,QAAe,CAAA,CAClC,GACF,CAAA,CACF,GACF"}
@@ -1 +1 @@
1
- .ThemeSwitch-module__sunCore___tUhud{position:relative;background:radial-gradient(circle,gold,orange);border-radius:50%}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__sunCore___tUhud{width:16px;height:16px;box-shadow:inset -1px -1px 2px #ff8c0080}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__sunCore___tUhud{width:24px;height:24px;box-shadow:inset -1.5px -1.5px 3px #ff8c0080}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__sunCore___tUhud{width:32px;height:32px;box-shadow:inset -2px -2px 4px #ff8c0080}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__sunspot1___8RI1V{position:absolute;width:2px;height:2px;background:#ff8c0099;border-radius:50%;top:4px;left:5px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__sunspot2___U0whF{position:absolute;width:1.5px;height:1.5px;background:#ff8c0080;border-radius:50%;bottom:5px;right:4px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__sunspot3___kWYEI{position:absolute;width:1px;height:1px;background:#ff8c0066;border-radius:50%;top:6px;right:6px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__sunspot1___8RI1V{position:absolute;width:3px;height:3px;background:#ff8c0099;border-radius:50%;top:6px;left:7.5px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__sunspot2___U0whF{position:absolute;width:2.25px;height:2.25px;background:#ff8c0080;border-radius:50%;bottom:7.5px;right:6px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__sunspot3___kWYEI{position:absolute;width:1.5px;height:1.5px;background:#ff8c0066;border-radius:50%;top:9px;right:9px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__sunspot1___8RI1V{position:absolute;width:4px;height:4px;background:#ff8c0099;border-radius:50%;top:8px;left:10px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__sunspot2___U0whF{position:absolute;width:3px;height:3px;background:#ff8c0080;border-radius:50%;bottom:10px;right:8px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__sunspot3___kWYEI{position:absolute;width:2px;height:2px;background:#ff8c0066;border-radius:50%;top:12px;right:12px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__sunRay___t1B4U{position:absolute;background:linear-gradient(90deg,transparent,#ffd700,transparent);animation:ThemeSwitch-module__rotateSun___JQByd 10s linear infinite}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__sunRay___t1B4U:nth-child(2){width:20px;height:1px;top:50%;left:50%;transform:translate(-50%,-50%)}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__sunRay___t1B4U:nth-child(3){width:1px;height:20px;top:50%;left:50%;transform:translate(-50%,-50%)}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__sunRay___t1B4U:nth-child(4){width:20px;height:1px;top:50%;left:50%;transform:translate(-50%,-50%) rotate(45deg)}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__sunRay___t1B4U:nth-child(5){width:20px;height:1px;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-45deg)}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__sunRay___t1B4U:nth-child(6),.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__sunRay___t1B4U:nth-child(7),.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__sunRay___t1B4U:nth-child(8),.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__sunRay___t1B4U:nth-child(9){display:none}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__sunRay___t1B4U{position:absolute;background:linear-gradient(90deg,transparent,#ffd700,transparent);animation:ThemeSwitch-module__rotateSun___JQByd 10s linear infinite}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__sunRay___t1B4U:nth-child(2){width:30px;height:1.5px;top:50%;left:50%;transform:translate(-50%,-50%)}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__sunRay___t1B4U:nth-child(3){width:1.5px;height:30px;top:50%;left:50%;transform:translate(-50%,-50%)}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__sunRay___t1B4U:nth-child(4){width:30px;height:1.5px;top:50%;left:50%;transform:translate(-50%,-50%) rotate(45deg)}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__sunRay___t1B4U:nth-child(5){width:30px;height:1.5px;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-45deg)}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__sunRay___t1B4U:nth-child(6){width:26px;height:1px;top:50%;left:50%;transform:translate(-50%,-50%) rotate(22.5deg)}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__sunRay___t1B4U:nth-child(7){width:26px;height:1px;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-22.5deg)}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__sunRay___t1B4U:nth-child(8),.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__sunRay___t1B4U:nth-child(9){display:none}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__sunRay___t1B4U{position:absolute;background:linear-gradient(90deg,transparent,#ffd700,transparent);animation:ThemeSwitch-module__rotateSun___JQByd 10s linear infinite}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__sunRay___t1B4U:nth-child(2){width:40px;height:2px;top:50%;left:50%;transform:translate(-50%,-50%)}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__sunRay___t1B4U:nth-child(3){width:2px;height:40px;top:50%;left:50%;transform:translate(-50%,-50%)}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__sunRay___t1B4U:nth-child(4){width:40px;height:2px;top:50%;left:50%;transform:translate(-50%,-50%) rotate(45deg)}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__sunRay___t1B4U:nth-child(5){width:40px;height:2px;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-45deg)}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__sunRay___t1B4U:nth-child(6){width:35px;height:1px;top:50%;left:50%;transform:translate(-50%,-50%) rotate(22.5deg)}.ThemeSwitch-module__switchContainer___VENjU{position:relative;background:linear-gradient(135deg,#87ceeb,#add8e6);border-radius:30px;cursor:pointer;overflow:hidden;transition:background .6s cubic-bezier(.4,0,.2,1);box-shadow:inset 0 2px 8px #0000001a,0 4px 12px #00000026;-webkit-user-select:none;user-select:none}.ThemeSwitch-module__switchContainer___VENjU.ThemeSwitch-module__small___YlvWo{width:60px;height:30px;border-radius:15px}.ThemeSwitch-module__switchContainer___VENjU.ThemeSwitch-module__medium___Q8Rro{width:90px;height:45px;border-radius:22.5px}.ThemeSwitch-module__switchContainer___VENjU.ThemeSwitch-module__large___BMOxC{width:120px;height:60px;border-radius:30px}.ThemeSwitch-module__switchContainer___VENjU:focus{outline:2px solid #4a90e2;outline-offset:2px}.ThemeSwitch-module__switchContainer___VENjU.ThemeSwitch-module__dark___a4vSn{background:linear-gradient(135deg,#1a1a3e,#0a0a1f)}.ThemeSwitch-module__background___Rpodp{position:absolute;width:100%;height:100%;top:0;left:0;pointer-events:none}.ThemeSwitch-module__cloud___OoOyx{position:absolute;background:#fff6;border-radius:100px;opacity:0;transition:opacity .6s ease}.ThemeSwitch-module__light___ddTa2 .ThemeSwitch-module__cloud___OoOyx{opacity:1}.ThemeSwitch-module__cloud___OoOyx:before,.ThemeSwitch-module__cloud___OoOyx:after{content:"";position:absolute;background:#fff6;border-radius:100px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__cloud1___aqGNx{width:12px;height:4px;top:7px;left:10px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__cloud1___aqGNx:before{width:5px;height:5px;top:-2.5px;left:2.5px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__cloud1___aqGNx:after{width:6px;height:4px;top:-1.5px;right:2.5px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__cloud1___aqGNx{width:19px;height:6px;top:11px;left:15px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__cloud1___aqGNx:before{width:7.5px;height:7.5px;top:-3.75px;left:3.75px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__cloud1___aqGNx:after{width:9px;height:6px;top:-2.25px;right:3.75px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__cloud1___aqGNx{width:25px;height:8px;top:15px;left:20px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__cloud1___aqGNx:before{width:10px;height:10px;top:-5px;left:5px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__cloud1___aqGNx:after{width:12px;height:8px;top:-3px;right:5px}.ThemeSwitch-module__cloud1___aqGNx{animation:ThemeSwitch-module__floatCloud1___MdWMj 12s infinite ease-in-out}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__cloud2___guY71{width:10px;height:3px;top:17px;right:12px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__cloud2___guY71:before{width:4px;height:4px;top:-2px;left:1.5px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__cloud2___guY71{width:15px;height:4.5px;top:26px;right:19px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__cloud2___guY71:before{width:6px;height:6px;top:-3px;left:2.25px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__cloud2___guY71{width:20px;height:6px;top:35px;right:25px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__cloud2___guY71:before{width:8px;height:8px;top:-4px;left:3px}.ThemeSwitch-module__cloud2___guY71{animation:ThemeSwitch-module__floatCloud2___2x6Sp 15s infinite ease-in-out}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__cloud3___7-NhR{width:9px;height:2.5px;bottom:9px;left:17px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__cloud3___7-NhR:after{width:5px;height:3px;top:-1.5px;right:1.5px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__cloud3___7-NhR{width:13.5px;height:3.75px;bottom:13.5px;left:26px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__cloud3___7-NhR:after{width:7.5px;height:4.5px;top:-2.25px;right:2.25px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__cloud3___7-NhR{width:18px;height:5px;bottom:18px;left:35px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__cloud3___7-NhR:after{width:10px;height:6px;top:-3px;right:3px}.ThemeSwitch-module__cloud3___7-NhR{animation:ThemeSwitch-module__floatCloud3___FJCbV 18s infinite ease-in-out}@keyframes ThemeSwitch-module__floatCloud1___MdWMj{0%,to{transform:translate(0)}50%{transform:translate(5px)}}@keyframes ThemeSwitch-module__floatCloud2___2x6Sp{0%,to{transform:translate(0)}50%{transform:translate(-3px)}}@keyframes ThemeSwitch-module__floatCloud3___FJCbV{0%,to{transform:translate(0)}50%{transform:translate(4px)}}.ThemeSwitch-module__star___Z98bU{position:absolute;background:#fff;border-radius:50%;opacity:0;transition:opacity .6s ease}.ThemeSwitch-module__dark___a4vSn .ThemeSwitch-module__star___Z98bU{opacity:1}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__star1___rhotb{width:1px;height:1px;top:5px;left:12px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__star2___pzbNR{width:1px;height:1px;top:9px;right:15px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__star3___iK7lJ{width:1px;height:1px;bottom:7px;left:20px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__star4___t5pqN{width:.75px;height:.75px;top:12px;left:7px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__star5___dx42N{width:1px;height:1px;bottom:10px;right:17px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__star6___wur-I{width:.5px;height:.5px;top:17px;right:10px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__star7___KONgd{width:.75px;height:.75px;bottom:12px;left:10px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__star8___gIYpk{width:.5px;height:.5px;top:6px;right:7px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__star1___rhotb{width:1.5px;height:1.5px;top:7.5px;left:19px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__star2___pzbNR{width:1.5px;height:1.5px;top:13.5px;right:22.5px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__star3___iK7lJ{width:1.5px;height:1.5px;bottom:11px;left:30px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__star4___t5pqN{width:1.13px;height:1.13px;top:19px;left:11px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__star5___dx42N{width:1.5px;height:1.5px;bottom:15px;right:26px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__star6___wur-I{width:.75px;height:.75px;top:26px;right:15px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__star7___KONgd{width:1.13px;height:1.13px;bottom:19px;left:15px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__star8___gIYpk{width:.75px;height:.75px;top:9px;right:11px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__star1___rhotb{width:2px;height:2px;top:10px;left:25px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__star2___pzbNR{width:2px;height:2px;top:18px;right:30px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__star3___iK7lJ{width:2px;height:2px;bottom:15px;left:40px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__star4___t5pqN{width:1.5px;height:1.5px;top:25px;left:15px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__star5___dx42N{width:2px;height:2px;bottom:20px;right:35px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__star6___wur-I{width:1px;height:1px;top:35px;right:20px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__star7___KONgd{width:1.5px;height:1.5px;bottom:25px;left:20px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__star8___gIYpk{width:1px;height:1px;top:12px;right:15px}.ThemeSwitch-module__star1___rhotb{animation:ThemeSwitch-module__twinkle___Abun5 3s infinite}.ThemeSwitch-module__star2___pzbNR{animation:ThemeSwitch-module__twinkle___Abun5 3s infinite .5s}.ThemeSwitch-module__star3___iK7lJ{animation:ThemeSwitch-module__twinkle___Abun5 3s infinite 1s}.ThemeSwitch-module__star4___t5pqN{animation:ThemeSwitch-module__twinkle___Abun5 3s infinite 1.5s}.ThemeSwitch-module__star5___dx42N{animation:ThemeSwitch-module__twinkle___Abun5 3s infinite 2s}.ThemeSwitch-module__star6___wur-I{animation:ThemeSwitch-module__twinkle___Abun5 3s infinite 2.5s}.ThemeSwitch-module__star7___KONgd{animation:ThemeSwitch-module__twinkle___Abun5 3s infinite .8s}.ThemeSwitch-module__star8___gIYpk{animation:ThemeSwitch-module__twinkle___Abun5 3s infinite 1.3s}@keyframes ThemeSwitch-module__twinkle___Abun5{0%,to{opacity:.3}50%{opacity:1}}.ThemeSwitch-module__toggle___L5FGS{position:absolute;border-radius:50%;transition:transform .6s cubic-bezier(.4,0,.2,1),background .6s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__toggle___L5FGS{width:24px;height:24px;background:linear-gradient(135deg,gold,orange);top:3px;left:3px;box-shadow:0 1px 4px #0003,0 0 10px #ffd7004d}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__toggle___L5FGS{width:36px;height:36px;background:linear-gradient(135deg,gold,orange);top:4.5px;left:4.5px;box-shadow:0 1.5px 6px #0003,0 0 15px #ffd7004d}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__toggle___L5FGS{width:48px;height:48px;background:linear-gradient(135deg,gold,orange);top:6px;left:6px;box-shadow:0 2px 8px #0003,0 0 20px #ffd7004d}.ThemeSwitch-module__dark___a4vSn.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__toggle___L5FGS{transform:translate(30px);background:linear-gradient(135deg,beige,#d3d3d3);box-shadow:0 1px 4px #0000004d,0 0 10px #f5f5dc33}.ThemeSwitch-module__dark___a4vSn.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__toggle___L5FGS{transform:translate(45px);background:linear-gradient(135deg,beige,#d3d3d3);box-shadow:0 1.5px 6px #0000004d,0 0 15px #f5f5dc33}.ThemeSwitch-module__dark___a4vSn.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__toggle___L5FGS{transform:translate(60px);background:linear-gradient(135deg,beige,#d3d3d3);box-shadow:0 2px 8px #0000004d,0 0 20px #f5f5dc33}.ThemeSwitch-module__sun___s8noI{position:absolute;width:100%;height:100%;display:flex;align-items:center;justify-content:center;opacity:1;transform:rotate(0) scale(1);transition:opacity .6s ease,transform .6s ease}.ThemeSwitch-module__dark___a4vSn .ThemeSwitch-module__sun___s8noI{opacity:0;transform:rotate(180deg) scale(.5)}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__sunRay___t1B4U:nth-child(7){width:35px;height:1px;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-22.5deg)}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__sunRay___t1B4U:nth-child(8){width:35px;height:1px;top:50%;left:50%;transform:translate(-50%,-50%) rotate(67.5deg)}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__sunRay___t1B4U:nth-child(9){width:35px;height:1px;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-67.5deg)}@keyframes ThemeSwitch-module__rotateSun___JQByd{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.ThemeSwitch-module__moon___TNpFJ{position:absolute;width:100%;height:100%;display:flex;align-items:center;justify-content:center;opacity:0;transform:rotate(-180deg) scale(.5);transition:opacity .6s ease,transform .6s ease}.ThemeSwitch-module__dark___a4vSn .ThemeSwitch-module__moon___TNpFJ{opacity:1;transform:rotate(0) scale(1)}.ThemeSwitch-module__moonCore___svwjb{position:relative;border-radius:50%}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__moonCore___svwjb{width:16px;height:16px;background:radial-gradient(circle at 30% 30%,beige,silver);box-shadow:inset -1.5px -1.5px 4px #0003,inset 1px 1px 4px #ffffff4d}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__moonCore___svwjb{width:24px;height:24px;background:radial-gradient(circle at 30% 30%,beige,silver);box-shadow:inset -2.25px -2.25px 6px #0003,inset 1.5px 1.5px 6px #ffffff4d}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__moonCore___svwjb{width:32px;height:32px;background:radial-gradient(circle at 30% 30%,beige,silver);box-shadow:inset -3px -3px 8px #0003,inset 2px 2px 8px #ffffff4d}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__crater1___swpHc{position:absolute;width:3px;height:3px;background:radial-gradient(circle,#80808066,#69696933);border-radius:50%;top:4px;left:5px;box-shadow:inset .5px .5px 1px #0003}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__crater2___WQVKR{position:absolute;width:2px;height:2px;background:radial-gradient(circle,#8080804d,#69696926);border-radius:50%;bottom:4.5px;right:3.5px;box-shadow:inset .5px .5px .5px #00000026}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__crater3___F-KJu{position:absolute;width:1.5px;height:1.5px;background:radial-gradient(circle,#80808040,#6969691a);border-radius:50%;top:7.5px;right:5.5px;box-shadow:inset .25px .25px .5px #0000001a}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__crater4___ZsIb7{position:absolute;width:2.5px;height:2.5px;background:radial-gradient(circle,#80808059,#6969692e);border-radius:50%;bottom:3px;left:4px;box-shadow:inset .5px .5px .75px #0000002e}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__crater1___swpHc{position:absolute;width:4.5px;height:4.5px;background:radial-gradient(circle,#80808066,#69696933);border-radius:50%;top:6px;left:7.5px;box-shadow:inset .75px .75px 1.5px #0003}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__crater2___WQVKR{position:absolute;width:3px;height:3px;background:radial-gradient(circle,#8080804d,#69696926);border-radius:50%;bottom:6.75px;right:5.25px;box-shadow:inset .75px .75px .75px #00000026}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__crater3___F-KJu{position:absolute;width:2.25px;height:2.25px;background:radial-gradient(circle,#80808040,#6969691a);border-radius:50%;top:11.25px;right:8.25px;box-shadow:inset .375px .375px .75px #0000001a}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__crater4___ZsIb7{position:absolute;width:3.75px;height:3.75px;background:radial-gradient(circle,#80808059,#6969692e);border-radius:50%;bottom:4.5px;left:6px;box-shadow:inset .75px .75px 1.125px #0000002e}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__crater1___swpHc{position:absolute;width:6px;height:6px;background:radial-gradient(circle,#80808066,#69696933);border-radius:50%;top:8px;left:10px;box-shadow:inset 1px 1px 2px #0003}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__crater2___WQVKR{position:absolute;width:4px;height:4px;background:radial-gradient(circle,#8080804d,#69696926);border-radius:50%;bottom:9px;right:7px;box-shadow:inset 1px 1px 1px #00000026}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__crater3___F-KJu{position:absolute;width:3px;height:3px;background:radial-gradient(circle,#80808040,#6969691a);border-radius:50%;top:15px;right:11px;box-shadow:inset .5px .5px 1px #0000001a}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__crater4___ZsIb7{position:absolute;width:5px;height:5px;background:radial-gradient(circle,#80808059,#6969692e);border-radius:50%;bottom:6px;left:8px;box-shadow:inset 1px 1px 1.5px #0000002e}
1
+ .ThemeSwitch-module__sunCore___tUhud{background:radial-gradient(circle,gold,orange);border-radius:50%;position:relative}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__sunCore___tUhud{width:16px;height:16px;box-shadow:inset -1px -1px 2px #ff8c0080}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__sunCore___tUhud{width:24px;height:24px;box-shadow:inset -1.5px -1.5px 3px #ff8c0080}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__sunCore___tUhud{width:32px;height:32px;box-shadow:inset -2px -2px 4px #ff8c0080}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__sunspot1___8RI1V{background:#ff8c0099;border-radius:50%;width:2px;height:2px;position:absolute;top:4px;left:5px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__sunspot2___U0whF{background:#ff8c0080;border-radius:50%;width:1.5px;height:1.5px;position:absolute;bottom:5px;right:4px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__sunspot3___kWYEI{background:#ff8c0066;border-radius:50%;width:1px;height:1px;position:absolute;top:6px;right:6px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__sunspot1___8RI1V{background:#ff8c0099;border-radius:50%;width:3px;height:3px;position:absolute;top:6px;left:7.5px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__sunspot2___U0whF{background:#ff8c0080;border-radius:50%;width:2.25px;height:2.25px;position:absolute;bottom:7.5px;right:6px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__sunspot3___kWYEI{background:#ff8c0066;border-radius:50%;width:1.5px;height:1.5px;position:absolute;top:9px;right:9px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__sunspot1___8RI1V{background:#ff8c0099;border-radius:50%;width:4px;height:4px;position:absolute;top:8px;left:10px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__sunspot2___U0whF{background:#ff8c0080;border-radius:50%;width:3px;height:3px;position:absolute;bottom:10px;right:8px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__sunspot3___kWYEI{background:#ff8c0066;border-radius:50%;width:2px;height:2px;position:absolute;top:12px;right:12px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__sunRay___t1B4U{background:linear-gradient(90deg,#0000,gold,#0000);animation:10s linear infinite ThemeSwitch-module__rotateSun___JQByd;position:absolute}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__sunRay___t1B4U:nth-child(2){width:20px;height:1px;top:50%;left:50%;transform:translate(-50%,-50%)}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__sunRay___t1B4U:nth-child(3){width:1px;height:20px;top:50%;left:50%;transform:translate(-50%,-50%)}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__sunRay___t1B4U:nth-child(4){width:20px;height:1px;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__sunRay___t1B4U:nth-child(5){width:20px;height:1px;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-45deg)}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__sunRay___t1B4U:nth-child(6),.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__sunRay___t1B4U:nth-child(7),.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__sunRay___t1B4U:nth-child(8),.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__sunRay___t1B4U:nth-child(9){display:none}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__sunRay___t1B4U{background:linear-gradient(90deg,#0000,gold,#0000);animation:10s linear infinite ThemeSwitch-module__rotateSun___JQByd;position:absolute}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__sunRay___t1B4U:nth-child(2){width:30px;height:1.5px;top:50%;left:50%;transform:translate(-50%,-50%)}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__sunRay___t1B4U:nth-child(3){width:1.5px;height:30px;top:50%;left:50%;transform:translate(-50%,-50%)}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__sunRay___t1B4U:nth-child(4){width:30px;height:1.5px;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__sunRay___t1B4U:nth-child(5){width:30px;height:1.5px;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-45deg)}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__sunRay___t1B4U:nth-child(6){width:26px;height:1px;top:50%;left:50%;transform:translate(-50%,-50%)rotate(22.5deg)}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__sunRay___t1B4U:nth-child(7){width:26px;height:1px;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-22.5deg)}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__sunRay___t1B4U:nth-child(8),.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__sunRay___t1B4U:nth-child(9){display:none}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__sunRay___t1B4U{background:linear-gradient(90deg,#0000,gold,#0000);animation:10s linear infinite ThemeSwitch-module__rotateSun___JQByd;position:absolute}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__sunRay___t1B4U:nth-child(2){width:40px;height:2px;top:50%;left:50%;transform:translate(-50%,-50%)}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__sunRay___t1B4U:nth-child(3){width:2px;height:40px;top:50%;left:50%;transform:translate(-50%,-50%)}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__sunRay___t1B4U:nth-child(4){width:40px;height:2px;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__sunRay___t1B4U:nth-child(5){width:40px;height:2px;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-45deg)}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__sunRay___t1B4U:nth-child(6){width:35px;height:1px;top:50%;left:50%;transform:translate(-50%,-50%)rotate(22.5deg)}.ThemeSwitch-module__switchContainer___VENjU{cursor:pointer;-webkit-user-select:none;user-select:none;background:linear-gradient(135deg,#87ceeb,#add8e6);border-radius:30px;transition:background .6s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:inset 0 2px 8px #0000001a,0 4px 12px #00000026}.ThemeSwitch-module__switchContainer___VENjU.ThemeSwitch-module__small___YlvWo{border-radius:15px;width:60px;height:30px}.ThemeSwitch-module__switchContainer___VENjU.ThemeSwitch-module__medium___Q8Rro{border-radius:22.5px;width:90px;height:45px}.ThemeSwitch-module__switchContainer___VENjU.ThemeSwitch-module__large___BMOxC{border-radius:30px;width:120px;height:60px}.ThemeSwitch-module__switchContainer___VENjU:focus{outline-offset:2px;outline:2px solid #4a90e2}.ThemeSwitch-module__switchContainer___VENjU.ThemeSwitch-module__dark___a4vSn{background:linear-gradient(135deg,#1a1a3e,#0a0a1f)}.ThemeSwitch-module__background___Rpodp{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.ThemeSwitch-module__cloud___OoOyx{opacity:0;background:#fff6;border-radius:100px;transition:opacity .6s;position:absolute}.ThemeSwitch-module__light___ddTa2 .ThemeSwitch-module__cloud___OoOyx{opacity:1}.ThemeSwitch-module__cloud___OoOyx:before,.ThemeSwitch-module__cloud___OoOyx:after{content:"";background:#fff6;border-radius:100px;position:absolute}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__cloud1___aqGNx{width:12px;height:4px;top:7px;left:10px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__cloud1___aqGNx:before{width:5px;height:5px;top:-2.5px;left:2.5px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__cloud1___aqGNx:after{width:6px;height:4px;top:-1.5px;right:2.5px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__cloud1___aqGNx{width:19px;height:6px;top:11px;left:15px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__cloud1___aqGNx:before{width:7.5px;height:7.5px;top:-3.75px;left:3.75px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__cloud1___aqGNx:after{width:9px;height:6px;top:-2.25px;right:3.75px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__cloud1___aqGNx{width:25px;height:8px;top:15px;left:20px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__cloud1___aqGNx:before{width:10px;height:10px;top:-5px;left:5px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__cloud1___aqGNx:after{width:12px;height:8px;top:-3px;right:5px}.ThemeSwitch-module__cloud1___aqGNx{animation:12s ease-in-out infinite ThemeSwitch-module__floatCloud1___MdWMj}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__cloud2___guY71{width:10px;height:3px;top:17px;right:12px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__cloud2___guY71:before{width:4px;height:4px;top:-2px;left:1.5px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__cloud2___guY71{width:15px;height:4.5px;top:26px;right:19px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__cloud2___guY71:before{width:6px;height:6px;top:-3px;left:2.25px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__cloud2___guY71{width:20px;height:6px;top:35px;right:25px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__cloud2___guY71:before{width:8px;height:8px;top:-4px;left:3px}.ThemeSwitch-module__cloud2___guY71{animation:15s ease-in-out infinite ThemeSwitch-module__floatCloud2___2x6Sp}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__cloud3___7-NhR{width:9px;height:2.5px;bottom:9px;left:17px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__cloud3___7-NhR:after{width:5px;height:3px;top:-1.5px;right:1.5px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__cloud3___7-NhR{width:13.5px;height:3.75px;bottom:13.5px;left:26px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__cloud3___7-NhR:after{width:7.5px;height:4.5px;top:-2.25px;right:2.25px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__cloud3___7-NhR{width:18px;height:5px;bottom:18px;left:35px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__cloud3___7-NhR:after{width:10px;height:6px;top:-3px;right:3px}.ThemeSwitch-module__cloud3___7-NhR{animation:18s ease-in-out infinite ThemeSwitch-module__floatCloud3___FJCbV}@keyframes ThemeSwitch-module__floatCloud1___MdWMj{0%,to{transform:translate(0)}50%{transform:translate(5px)}}@keyframes ThemeSwitch-module__floatCloud2___2x6Sp{0%,to{transform:translate(0)}50%{transform:translate(-3px)}}@keyframes ThemeSwitch-module__floatCloud3___FJCbV{0%,to{transform:translate(0)}50%{transform:translate(4px)}}.ThemeSwitch-module__star___Z98bU{opacity:0;background:#fff;border-radius:50%;transition:opacity .6s;position:absolute}.ThemeSwitch-module__dark___a4vSn .ThemeSwitch-module__star___Z98bU{opacity:1}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__star1___rhotb{width:1px;height:1px;top:5px;left:12px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__star2___pzbNR{width:1px;height:1px;top:9px;right:15px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__star3___iK7lJ{width:1px;height:1px;bottom:7px;left:20px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__star4___t5pqN{width:.75px;height:.75px;top:12px;left:7px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__star5___dx42N{width:1px;height:1px;bottom:10px;right:17px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__star6___wur-I{width:.5px;height:.5px;top:17px;right:10px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__star7___KONgd{width:.75px;height:.75px;bottom:12px;left:10px}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__star8___gIYpk{width:.5px;height:.5px;top:6px;right:7px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__star1___rhotb{width:1.5px;height:1.5px;top:7.5px;left:19px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__star2___pzbNR{width:1.5px;height:1.5px;top:13.5px;right:22.5px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__star3___iK7lJ{width:1.5px;height:1.5px;bottom:11px;left:30px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__star4___t5pqN{width:1.13px;height:1.13px;top:19px;left:11px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__star5___dx42N{width:1.5px;height:1.5px;bottom:15px;right:26px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__star6___wur-I{width:.75px;height:.75px;top:26px;right:15px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__star7___KONgd{width:1.13px;height:1.13px;bottom:19px;left:15px}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__star8___gIYpk{width:.75px;height:.75px;top:9px;right:11px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__star1___rhotb{width:2px;height:2px;top:10px;left:25px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__star2___pzbNR{width:2px;height:2px;top:18px;right:30px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__star3___iK7lJ{width:2px;height:2px;bottom:15px;left:40px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__star4___t5pqN{width:1.5px;height:1.5px;top:25px;left:15px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__star5___dx42N{width:2px;height:2px;bottom:20px;right:35px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__star6___wur-I{width:1px;height:1px;top:35px;right:20px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__star7___KONgd{width:1.5px;height:1.5px;bottom:25px;left:20px}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__star8___gIYpk{width:1px;height:1px;top:12px;right:15px}.ThemeSwitch-module__star1___rhotb{animation:3s infinite ThemeSwitch-module__twinkle___Abun5}.ThemeSwitch-module__star2___pzbNR{animation:3s .5s infinite ThemeSwitch-module__twinkle___Abun5}.ThemeSwitch-module__star3___iK7lJ{animation:3s 1s infinite ThemeSwitch-module__twinkle___Abun5}.ThemeSwitch-module__star4___t5pqN{animation:3s 1.5s infinite ThemeSwitch-module__twinkle___Abun5}.ThemeSwitch-module__star5___dx42N{animation:3s 2s infinite ThemeSwitch-module__twinkle___Abun5}.ThemeSwitch-module__star6___wur-I{animation:3s 2.5s infinite ThemeSwitch-module__twinkle___Abun5}.ThemeSwitch-module__star7___KONgd{animation:3s .8s infinite ThemeSwitch-module__twinkle___Abun5}.ThemeSwitch-module__star8___gIYpk{animation:3s 1.3s infinite ThemeSwitch-module__twinkle___Abun5}@keyframes ThemeSwitch-module__twinkle___Abun5{0%,to{opacity:.3}50%{opacity:1}}.ThemeSwitch-module__toggle___L5FGS{border-radius:50%;justify-content:center;align-items:center;transition:transform .6s cubic-bezier(.4,0,.2,1),background .6s cubic-bezier(.4,0,.2,1);display:flex;position:absolute}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__toggle___L5FGS{background:linear-gradient(135deg,gold,orange);width:24px;height:24px;top:3px;left:3px;box-shadow:0 1px 4px #0003,0 0 10px #ffd7004d}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__toggle___L5FGS{background:linear-gradient(135deg,gold,orange);width:36px;height:36px;top:4.5px;left:4.5px;box-shadow:0 1.5px 6px #0003,0 0 15px #ffd7004d}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__toggle___L5FGS{background:linear-gradient(135deg,gold,orange);width:48px;height:48px;top:6px;left:6px;box-shadow:0 2px 8px #0003,0 0 20px #ffd7004d}.ThemeSwitch-module__dark___a4vSn.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__toggle___L5FGS{background:linear-gradient(135deg,beige,#d3d3d3);transform:translate(30px);box-shadow:0 1px 4px #0000004d,0 0 10px #f5f5dc33}.ThemeSwitch-module__dark___a4vSn.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__toggle___L5FGS{background:linear-gradient(135deg,beige,#d3d3d3);transform:translate(45px);box-shadow:0 1.5px 6px #0000004d,0 0 15px #f5f5dc33}.ThemeSwitch-module__dark___a4vSn.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__toggle___L5FGS{background:linear-gradient(135deg,beige,#d3d3d3);transform:translate(60px);box-shadow:0 2px 8px #0000004d,0 0 20px #f5f5dc33}.ThemeSwitch-module__sun___s8noI{opacity:1;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .6s,transform .6s;display:flex;position:absolute;transform:rotate(0)scale(1)}.ThemeSwitch-module__dark___a4vSn .ThemeSwitch-module__sun___s8noI{opacity:0;transform:rotate(180deg)scale(.5)}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__sunRay___t1B4U:nth-child(7){width:35px;height:1px;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-22.5deg)}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__sunRay___t1B4U:nth-child(8){width:35px;height:1px;top:50%;left:50%;transform:translate(-50%,-50%)rotate(67.5deg)}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__sunRay___t1B4U:nth-child(9){width:35px;height:1px;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-67.5deg)}@keyframes ThemeSwitch-module__rotateSun___JQByd{0%{transform:translate(-50%,-50%)rotate(0)}to{transform:translate(-50%,-50%)rotate(360deg)}}.ThemeSwitch-module__moon___TNpFJ{opacity:0;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .6s,transform .6s;display:flex;position:absolute;transform:rotate(-180deg)scale(.5)}.ThemeSwitch-module__dark___a4vSn .ThemeSwitch-module__moon___TNpFJ{opacity:1;transform:rotate(0)scale(1)}.ThemeSwitch-module__moonCore___svwjb{border-radius:50%;position:relative}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__moonCore___svwjb{background:radial-gradient(circle at 30% 30%,beige,silver);width:16px;height:16px;box-shadow:inset -1.5px -1.5px 4px #0003,inset 1px 1px 4px #ffffff4d}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__moonCore___svwjb{background:radial-gradient(circle at 30% 30%,beige,silver);width:24px;height:24px;box-shadow:inset -2.25px -2.25px 6px #0003,inset 1.5px 1.5px 6px #ffffff4d}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__moonCore___svwjb{background:radial-gradient(circle at 30% 30%,beige,silver);width:32px;height:32px;box-shadow:inset -3px -3px 8px #0003,inset 2px 2px 8px #ffffff4d}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__crater1___swpHc{background:radial-gradient(circle,#80808066,#69696933);border-radius:50%;width:3px;height:3px;position:absolute;top:4px;left:5px;box-shadow:inset .5px .5px 1px #0003}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__crater2___WQVKR{background:radial-gradient(circle,#8080804d,#69696926);border-radius:50%;width:2px;height:2px;position:absolute;bottom:4.5px;right:3.5px;box-shadow:inset .5px .5px .5px #00000026}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__crater3___F-KJu{background:radial-gradient(circle,#80808040,#6969691a);border-radius:50%;width:1.5px;height:1.5px;position:absolute;top:7.5px;right:5.5px;box-shadow:inset .25px .25px .5px #0000001a}.ThemeSwitch-module__small___YlvWo .ThemeSwitch-module__crater4___ZsIb7{background:radial-gradient(circle,#80808059,#6969692e);border-radius:50%;width:2.5px;height:2.5px;position:absolute;bottom:3px;left:4px;box-shadow:inset .5px .5px .75px #0000002e}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__crater1___swpHc{background:radial-gradient(circle,#80808066,#69696933);border-radius:50%;width:4.5px;height:4.5px;position:absolute;top:6px;left:7.5px;box-shadow:inset .75px .75px 1.5px #0003}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__crater2___WQVKR{background:radial-gradient(circle,#8080804d,#69696926);border-radius:50%;width:3px;height:3px;position:absolute;bottom:6.75px;right:5.25px;box-shadow:inset .75px .75px .75px #00000026}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__crater3___F-KJu{background:radial-gradient(circle,#80808040,#6969691a);border-radius:50%;width:2.25px;height:2.25px;position:absolute;top:11.25px;right:8.25px;box-shadow:inset .375px .375px .75px #0000001a}.ThemeSwitch-module__medium___Q8Rro .ThemeSwitch-module__crater4___ZsIb7{background:radial-gradient(circle,#80808059,#6969692e);border-radius:50%;width:3.75px;height:3.75px;position:absolute;bottom:4.5px;left:6px;box-shadow:inset .75px .75px 1.125px #0000002e}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__crater1___swpHc{background:radial-gradient(circle,#80808066,#69696933);border-radius:50%;width:6px;height:6px;position:absolute;top:8px;left:10px;box-shadow:inset 1px 1px 2px #0003}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__crater2___WQVKR{background:radial-gradient(circle,#8080804d,#69696926);border-radius:50%;width:4px;height:4px;position:absolute;bottom:9px;right:7px;box-shadow:inset 1px 1px 1px #00000026}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__crater3___F-KJu{background:radial-gradient(circle,#80808040,#6969691a);border-radius:50%;width:3px;height:3px;position:absolute;top:15px;right:11px;box-shadow:inset .5px .5px 1px #0000001a}.ThemeSwitch-module__large___BMOxC .ThemeSwitch-module__crater4___ZsIb7{background:radial-gradient(circle,#80808059,#6969692e);border-radius:50%;width:5px;height:5px;position:absolute;bottom:6px;left:8px;box-shadow:inset 1px 1px 1.5px #0000002e}
@@ -0,0 +1 @@
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
package/dist/index.cjs CHANGED
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./MarkdownRender-BOGosy9w.cjs"),r=require("./MonthlyCalendar-D-tD_2xK.cjs"),n=require("./ThemeSwitch-C7k1_MA4.cjs");exports.MarkdownRender=e.MarkdownRender;exports.MonthlyCalendar=r.MonthlyCalendar;exports.ThemeSwitch=n.ThemeSwitch;
2
- //# sourceMappingURL=index.cjs.map
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./MarkdownRender-CKB5xnfI.cjs`),t=require(`./MonthlyCalendar-DDXHhlwC.cjs`),n=require(`./ThemeSwitch-Cn7-KsSv.cjs`);exports.MarkdownRender=e.t,exports.MonthlyCalendar=t.t,exports.ThemeSwitch=n.t;
package/dist/index.js CHANGED
@@ -1,9 +1,4 @@
1
- import { M as o } from "./MarkdownRender-BmrS3q0l.js";
2
- import { M as t } from "./MonthlyCalendar-D9jC2b2L.js";
3
- import { T as n } from "./ThemeSwitch-DbaEio36.js";
4
- export {
5
- o as MarkdownRender,
6
- t as MonthlyCalendar,
7
- n as ThemeSwitch
8
- };
9
- //# sourceMappingURL=index.js.map
1
+ import { t as e } from "./MarkdownRender-c_W7bXpS.js";
2
+ import { t } from "./MonthlyCalendar-BflN-u8m.js";
3
+ import { t as n } from "./ThemeSwitch-C648hdUm.js";
4
+ export { e as MarkdownRender, t as MonthlyCalendar, n as ThemeSwitch };