@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
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./MarkdownRender-BOGosy9w.cjs");exports.MarkdownRender=e.MarkdownRender;
2
- //# sourceMappingURL=markdown-render.cjs.map
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./MarkdownRender-CKB5xnfI.cjs`);exports.MarkdownRender=e.t;
@@ -1,5 +1,2 @@
1
- import { M as o } from "./MarkdownRender-BmrS3q0l.js";
2
- export {
3
- o as MarkdownRender
4
- };
5
- //# sourceMappingURL=markdown-render.js.map
1
+ import { t as e } from "./MarkdownRender-c_W7bXpS.js";
2
+ export { e as MarkdownRender };
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./MonthlyCalendar-D-tD_2xK.cjs");exports.MonthlyCalendar=e.MonthlyCalendar;
2
- //# sourceMappingURL=monthly-calendar.cjs.map
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./MonthlyCalendar-DDXHhlwC.cjs`);exports.MonthlyCalendar=e.t;
@@ -1,5 +1,2 @@
1
- import { M as r } from "./MonthlyCalendar-D9jC2b2L.js";
2
- export {
3
- r as MonthlyCalendar
4
- };
5
- //# sourceMappingURL=monthly-calendar.js.map
1
+ import { t as e } from "./MonthlyCalendar-BflN-u8m.js";
2
+ export { e as MonthlyCalendar };
@@ -0,0 +1 @@
1
+ export {};
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./ThemeSwitch-C7k1_MA4.cjs");exports.ThemeSwitch=e.ThemeSwitch;
2
- //# sourceMappingURL=theme-switch.cjs.map
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./ThemeSwitch-Cn7-KsSv.cjs`);exports.ThemeSwitch=e.t;
@@ -1,5 +1,2 @@
1
- import { T as m } from "./ThemeSwitch-DbaEio36.js";
2
- export {
3
- m as ThemeSwitch
4
- };
5
- //# sourceMappingURL=theme-switch.js.map
1
+ import { t as e } from "./ThemeSwitch-C648hdUm.js";
2
+ export { e as ThemeSwitch };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@macolmenerori/component-library",
3
- "version": "1.3.0",
3
+ "version": "1.4.0-beta.1",
4
4
  "type": "module",
5
5
  "description": "",
6
6
  "keywords": [],
@@ -37,7 +37,16 @@
37
37
  "default": "./dist/theme-switch.cjs"
38
38
  }
39
39
  },
40
- "./theme-switch-css": "./dist/ThemeSwitch.css",
40
+ "./theme-switch-css": {
41
+ "import": {
42
+ "types": "./dist/theme-switch-css.d.ts",
43
+ "default": "./dist/ThemeSwitch.css"
44
+ },
45
+ "require": {
46
+ "types": "./dist/theme-switch-css.d.ts",
47
+ "default": "./dist/ThemeSwitch.css"
48
+ }
49
+ },
41
50
  "./markdown-render": {
42
51
  "import": {
43
52
  "types": "./dist/types/components/MarkdownRender/index.d.ts",
@@ -93,7 +102,7 @@
93
102
  "@types/node": "^25.0.0",
94
103
  "@types/react": "^19.2.2",
95
104
  "@types/react-dom": "^19.2.2",
96
- "@vitejs/plugin-react": "^5.1.0",
105
+ "@vitejs/plugin-react": "^6.0.1",
97
106
  "eslint": "^9.39.1",
98
107
  "eslint-config-prettier": "^10.1.8",
99
108
  "eslint-plugin-jest-dom": "^5.5.0",
@@ -101,7 +110,7 @@
101
110
  "eslint-plugin-prettier": "^5.5.4",
102
111
  "eslint-plugin-react": "^7.37.5",
103
112
  "eslint-plugin-react-hooks": "^7.0.1",
104
- "eslint-plugin-simple-import-sort": "^12.1.1",
113
+ "eslint-plugin-simple-import-sort": "^13.0.0",
105
114
  "eslint-plugin-testing-library": "^7.13.3",
106
115
  "jest": "^30.2.0",
107
116
  "jest-environment-jsdom": "^30.2.0",
@@ -109,22 +118,23 @@
109
118
  "prettier": "^3.6.2",
110
119
  "react": "^19.2.0",
111
120
  "react-dom": "^19.2.0",
112
- "typescript": "^5.9.3",
113
- "typescript-eslint": "^8.46.3",
114
- "vite": "^7.2.1",
121
+ "typescript": "^6.0.2",
122
+ "typescript-eslint": "^8.58.1",
123
+ "vite": "^8.0.5",
115
124
  "vite-plugin-dts": "^4.5.4",
116
125
  "vite-plugin-lib-inject-css": "^2.2.2"
117
126
  },
118
127
  "scripts": {
119
128
  "dev": "vite",
120
- "build": "tsc --noEmit && vite build",
129
+ "build": "tsc --noEmit && vite build && cp src/types/theme-switch-css.d.ts dist/theme-switch-css.d.ts",
121
130
  "preview": "vite preview",
122
131
  "prettify": "prettier -w --log-level=silent src/",
123
132
  "lint": "eslint --fix ./src/",
124
133
  "test": "echo \"Info: no tests for the moment\" && exit 0",
125
134
  "types": "tsc --noEmit",
126
- "verify": "pnpm lint && pnpm prettify && pnpm types && pnpm test && pnpm audit --prod && pnpm build",
135
+ "verify": "pnpm audit --prod && pnpm lint && pnpm prettify && pnpm types && pnpm test && pnpm build",
127
136
  "publish:npm": "pnpm publish --registry https://registry.npmjs.org/ --access public",
128
- "publish:github": "pnpm publish --registry https://npm.pkg.github.com"
137
+ "publish:github": "pnpm publish --registry https://npm.pkg.github.com",
138
+ "release": "npx tsx scripts/release.ts"
129
139
  }
130
140
  }
@@ -1,2 +0,0 @@
1
- "use strict";const n=require("react/jsx-runtime"),h=require("react"),j=require("react-markdown"),l=require("remark-gfm"),x=({content:d,className:c,components:e,linkTarget:r,responsiveImages:o,rehypePlugins:u})=>{const a=h.useMemo(()=>{const s={};return r&&!e?.a&&(s.a=({children:i,...t})=>n.jsx("a",{...t,target:r,rel:r==="_blank"?"noreferrer":void 0,children:i})),o&&!e?.img&&(s.img=({alt:i,...t})=>n.jsx("img",{alt:i??"",...t,style:{maxWidth:"100%",height:"auto",...t.style}})),{...s,...e}},[e,r,o]),m=Object.keys(a).length>0;return n.jsx("div",{className:c,children:n.jsx(j,{remarkPlugins:[l],rehypePlugins:u,components:m?a:void 0,children:d})})};exports.MarkdownRender=x;
2
- //# sourceMappingURL=MarkdownRender-BOGosy9w.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MarkdownRender-BOGosy9w.cjs","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"],"names":["MarkdownRender","content","className","components","linkTarget","responsiveImages","rehypePlugins","mergedComponents","useMemo","generated","children","props","jsx","alt","hasComponents","ReactMarkdown","remarkGfm"],"mappings":"yHAyBMA,EAA0C,CAAC,CAC/C,QAAAC,EACA,UAAAC,EACA,WAAAC,EACA,WAAAC,EACA,iBAAAC,EACA,cAAAC,CACF,IAAM,CACJ,MAAMC,EAAmBC,EAAAA,QAAQ,IAAM,CACrC,MAAMC,EAAiC,CAAA,EAGvC,OAAIL,GAAc,CAACD,GAAY,IAC7BM,EAAU,EAAI,CAAC,CAAE,SAAAC,EAAU,GAAGC,KAC5BC,EAAAA,IAAC,IAAA,CAAG,GAAGD,EAAO,OAAQP,EAAY,IAAKA,IAAe,SAAW,aAAe,OAC7E,SAAAM,EACH,GAKAL,GAAoB,CAACF,GAAY,MACnCM,EAAU,IAAM,CAAC,CAAE,IAAAI,EAAK,GAAGF,KACzBC,EAAAA,IAAC,MAAA,CACC,IAAKC,GAAO,GACX,GAAGF,EACJ,MAAO,CAAE,SAAU,OAAQ,OAAQ,OAAQ,GAAGA,EAAM,KAAA,CAAM,CAAA,GAMzD,CAAE,GAAGF,EAAW,GAAGN,CAAA,CAC5B,EAAG,CAACA,EAAYC,EAAYC,CAAgB,CAAC,EAEvCS,EAAgB,OAAO,KAAKP,CAAgB,EAAE,OAAS,EAE7D,OACEK,EAAAA,IAAC,OAAI,UAAAV,EACH,SAAAU,EAAAA,IAACG,EAAA,CACC,cAAe,CAACC,CAAS,EACzB,cAAAV,EACA,WAAYQ,EAAgBP,EAAmB,OAE9C,SAAAN,CAAA,CAAA,EAEL,CAEJ"}
@@ -1,37 +0,0 @@
1
- import { jsx as o } from "react/jsx-runtime";
2
- import { useMemo as c } from "react";
3
- import l from "react-markdown";
4
- import g from "remark-gfm";
5
- const y = ({
6
- content: d,
7
- className: f,
8
- components: r,
9
- linkTarget: e,
10
- responsiveImages: a,
11
- rehypePlugins: s
12
- }) => {
13
- const n = c(() => {
14
- const m = {};
15
- return e && !r?.a && (m.a = ({ children: i, ...t }) => /* @__PURE__ */ o("a", { ...t, target: e, rel: e === "_blank" ? "noreferrer" : void 0, children: i })), a && !r?.img && (m.img = ({ alt: i, ...t }) => /* @__PURE__ */ o(
16
- "img",
17
- {
18
- alt: i ?? "",
19
- ...t,
20
- style: { maxWidth: "100%", height: "auto", ...t.style }
21
- }
22
- )), { ...m, ...r };
23
- }, [r, e, a]), h = Object.keys(n).length > 0;
24
- return /* @__PURE__ */ o("div", { className: f, children: /* @__PURE__ */ o(
25
- l,
26
- {
27
- remarkPlugins: [g],
28
- rehypePlugins: s,
29
- components: h ? n : void 0,
30
- children: d
31
- }
32
- ) });
33
- };
34
- export {
35
- y as M
36
- };
37
- //# sourceMappingURL=MarkdownRender-BmrS3q0l.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MarkdownRender-BmrS3q0l.js","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"],"names":["MarkdownRender","content","className","components","linkTarget","responsiveImages","rehypePlugins","mergedComponents","useMemo","generated","children","props","jsx","alt","hasComponents","ReactMarkdown","remarkGfm"],"mappings":";;;;AAyBA,MAAMA,IAA0C,CAAC;AAAA,EAC/C,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,eAAAC;AACF,MAAM;AACJ,QAAMC,IAAmBC,EAAQ,MAAM;AACrC,UAAMC,IAAiC,CAAA;AAGvC,WAAIL,KAAc,CAACD,GAAY,MAC7BM,EAAU,IAAI,CAAC,EAAE,UAAAC,GAAU,GAAGC,QAC5B,gBAAAC,EAAC,KAAA,EAAG,GAAGD,GAAO,QAAQP,GAAY,KAAKA,MAAe,WAAW,eAAe,QAC7E,UAAAM,GACH,IAKAL,KAAoB,CAACF,GAAY,QACnCM,EAAU,MAAM,CAAC,EAAE,KAAAI,GAAK,GAAGF,QACzB,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAKC,KAAO;AAAA,QACX,GAAGF;AAAA,QACJ,OAAO,EAAE,UAAU,QAAQ,QAAQ,QAAQ,GAAGA,EAAM,MAAA;AAAA,MAAM;AAAA,IAAA,IAMzD,EAAE,GAAGF,GAAW,GAAGN,EAAA;AAAA,EAC5B,GAAG,CAACA,GAAYC,GAAYC,CAAgB,CAAC,GAEvCS,IAAgB,OAAO,KAAKP,CAAgB,EAAE,SAAS;AAE7D,SACE,gBAAAK,EAAC,SAAI,WAAAV,GACH,UAAA,gBAAAU;AAAA,IAACG;AAAA,IAAA;AAAA,MACC,eAAe,CAACC,CAAS;AAAA,MACzB,eAAAV;AAAA,MACA,YAAYQ,IAAgBP,IAAmB;AAAA,MAE9C,UAAAN;AAAA,IAAA;AAAA,EAAA,GAEL;AAEJ;"}
@@ -1,2 +0,0 @@
1
- "use strict";const e=require("react/jsx-runtime"),C=require("react"),j={dayColor:"#222",headerColor:"#555",annotationColor:"inherit"},b={dayColor:"#f0f0f0",headerColor:"#a0a0b8",annotationColor:"#d0d0e0"},w={borderCollapse:"collapse",border:"none",width:"100%",tableLayout:"fixed",fontFamily:"sans-serif"},y={border:"none",verticalAlign:"top",padding:0,position:"relative",textAlign:"center"},v=({year:s,month:i,annotations:d=[],headers:c,style:p={},darkMode:x=!1})=>{const a=x?b:j,g=C.useMemo(()=>{const t=new Date(s,i,0).getDate(),n=new Date(s,i-1,1).getDay(),o=Math.ceil((n+t)/7)*7,l=[];let r=1-n;for(let h=0;h<o/7;h++){const f=[];for(let u=0;u<7;u++)f.push(r>=1&&r<=t?r:null),r++;l.push(f)}return l},[s,i]),m={...w,...p};return e.jsxs("table",{style:m,children:[c&&e.jsx("thead",{children:e.jsx("tr",{children:c.map((t,n)=>e.jsx("th",{style:{...y,fontWeight:600,fontSize:"0.85rem",paddingBottom:6,color:a.headerColor},children:t},n))})}),e.jsx("tbody",{children:g.map((t,n)=>e.jsx("tr",{children:t.map((o,l)=>e.jsx("td",{style:y,children:e.jsx("div",{style:{width:"100%",paddingBottom:"100%",position:"relative"},children:e.jsx("div",{style:{position:"absolute",inset:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"flex-start",paddingTop:6,gap:4,overflow:"hidden"},children:o!==null&&e.jsxs(e.Fragment,{children:[e.jsx("span",{style:{fontFamily:"sans-serif",fontSize:"0.95rem",fontWeight:500,color:a.dayColor},children:o}),d[o-1]!=null&&e.jsx("div",{style:{fontSize:"0.75rem",lineHeight:1.2,overflow:"hidden",width:"100%",textAlign:"center",color:a.annotationColor},children:d[o-1]})]})})})},l))},n))})]})};exports.MonthlyCalendar=v;
2
- //# sourceMappingURL=MonthlyCalendar-D-tD_2xK.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MonthlyCalendar-D-tD_2xK.cjs","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"],"names":["LIGHT_THEME","DARK_THEME","defaultTableStyle","defaultCellStyle","MonthlyCalendar","year","month","annotations","headers","style","darkMode","theme","weeks","useMemo","daysInMonth","startDay","totalCells","result","currentDay","w","week","d","mergedTableStyle","jsxs","jsx","h","i","wi","day","di","Fragment"],"mappings":"qEAmCMA,EAAc,CAClB,SAAU,OACV,YAAa,OACb,gBAAiB,SACnB,EAEMC,EAAa,CACjB,SAAU,UACV,YAAa,UACb,gBAAiB,SACnB,EAIMC,EAAmC,CACvC,eAAgB,WAChB,OAAQ,OACR,MAAO,OACP,YAAa,QACb,WAAY,YACd,EAEMC,EAAkC,CACtC,OAAQ,OACR,cAAe,MACf,QAAS,EACT,SAAU,WACV,UAAW,QACb,EAuBMC,EAAkD,CAAC,CACvD,KAAAC,EACA,MAAAC,EACA,YAAAC,EAAc,CAAA,EACd,QAAAC,EACA,MAAAC,EAAQ,CAAA,EACR,SAAAC,EAAW,EACb,IAAM,CACJ,MAAMC,EAAQD,EAAWT,EAAaD,EAEhCY,EAAQC,EAAAA,QAAQ,IAAM,CAC1B,MAAMC,EAAc,IAAI,KAAKT,EAAMC,EAAO,CAAC,EAAE,QAAA,EACvCS,EAAW,IAAI,KAAKV,EAAMC,EAAQ,EAAG,CAAC,EAAE,OAAA,EACxCU,EAAa,KAAK,MAAMD,EAAWD,GAAe,CAAC,EAAI,EACvDG,EAA8B,CAAA,EACpC,IAAIC,EAAa,EAAIH,EAErB,QAASI,EAAI,EAAGA,EAAIH,EAAa,EAAGG,IAAK,CACvC,MAAMC,EAA0B,CAAA,EAChC,QAASC,EAAI,EAAGA,EAAI,EAAGA,IACrBD,EAAK,KAAKF,GAAc,GAAKA,GAAcJ,EAAcI,EAAa,IAAI,EAC1EA,IAEFD,EAAO,KAAKG,CAAI,CAClB,CACA,OAAOH,CACT,EAAG,CAACZ,EAAMC,CAAK,CAAC,EAEVgB,EAAmB,CAAE,GAAGpB,EAAmB,GAAGO,CAAA,EAEpD,OACEc,EAAAA,KAAC,QAAA,CAAM,MAAOD,EACX,SAAA,CAAAd,GACCgB,EAAAA,IAAC,SACC,SAAAA,EAAAA,IAAC,KAAA,CACE,WAAQ,IAAI,CAACC,EAAGC,IACfF,EAAAA,IAAC,KAAA,CAEC,MAAO,CACL,GAAGrB,EACH,WAAY,IACZ,SAAU,UACV,cAAe,EACf,MAAOQ,EAAM,WAAA,EAGd,SAAAc,CAAA,EATIC,CAAA,CAWR,EACH,CAAA,CACF,QAED,QAAA,CACE,SAAAd,EAAM,IAAI,CAACQ,EAAMO,IAChBH,EAAAA,IAAC,KAAA,CACE,SAAAJ,EAAK,IAAI,CAACQ,EAAKC,IACdL,EAAAA,IAAC,KAAA,CAAY,MAAOrB,EAClB,SAAAqB,EAAAA,IAAC,MAAA,CACC,MAAO,CACL,MAAO,OACP,cAAe,OACf,SAAU,UAAA,EAGZ,SAAAA,EAAAA,IAAC,MAAA,CACC,MAAO,CACL,SAAU,WACV,MAAO,EACP,QAAS,OACT,cAAe,SACf,WAAY,SACZ,eAAgB,aAChB,WAAY,EACZ,IAAK,EACL,SAAU,QAAA,EAGX,SAAAI,IAAQ,MACPL,EAAAA,KAAAO,EAAAA,SAAA,CACE,SAAA,CAAAN,EAAAA,IAAC,OAAA,CACC,MAAO,CACL,WAAY,aACZ,SAAU,UACV,WAAY,IACZ,MAAOb,EAAM,QAAA,EAGd,SAAAiB,CAAA,CAAA,EAEFrB,EAAYqB,EAAM,CAAC,GAAK,MACvBJ,EAAAA,IAAC,MAAA,CACC,MAAO,CACL,SAAU,UACV,WAAY,IACZ,SAAU,SACV,MAAO,OACP,UAAW,SACX,MAAOb,EAAM,eAAA,EAGd,SAAAJ,EAAYqB,EAAM,CAAC,CAAA,CAAA,CACtB,CAAA,CAEJ,CAAA,CAAA,CAEJ,CAAA,GAjDKC,CAmDT,CACD,GAtDMF,CAuDT,CACD,CAAA,CACH,CAAA,EACF,CAEJ"}
@@ -1,116 +0,0 @@
1
- import { jsxs as y, jsx as e, Fragment as w } from "react/jsx-runtime";
2
- import { useMemo as x } from "react";
3
- const v = {
4
- dayColor: "#222",
5
- headerColor: "#555",
6
- annotationColor: "inherit"
7
- }, D = {
8
- dayColor: "#f0f0f0",
9
- headerColor: "#a0a0b8",
10
- annotationColor: "#d0d0e0"
11
- }, M = {
12
- borderCollapse: "collapse",
13
- border: "none",
14
- width: "100%",
15
- tableLayout: "fixed",
16
- fontFamily: "sans-serif"
17
- }, m = {
18
- border: "none",
19
- verticalAlign: "top",
20
- padding: 0,
21
- position: "relative",
22
- textAlign: "center"
23
- }, A = ({
24
- year: i,
25
- month: a,
26
- annotations: d = [],
27
- headers: c,
28
- style: g = {},
29
- darkMode: u = !1
30
- }) => {
31
- const s = u ? D : v, C = x(() => {
32
- const t = new Date(i, a, 0).getDate(), o = new Date(i, a - 1, 1).getDay(), l = Math.ceil((o + t) / 7) * 7, n = [];
33
- let r = 1 - o;
34
- for (let h = 0; h < l / 7; h++) {
35
- const f = [];
36
- for (let p = 0; p < 7; p++)
37
- f.push(r >= 1 && r <= t ? r : null), r++;
38
- n.push(f);
39
- }
40
- return n;
41
- }, [i, a]), b = { ...M, ...g };
42
- return /* @__PURE__ */ y("table", { style: b, children: [
43
- c && /* @__PURE__ */ e("thead", { children: /* @__PURE__ */ e("tr", { children: c.map((t, o) => /* @__PURE__ */ e(
44
- "th",
45
- {
46
- style: {
47
- ...m,
48
- fontWeight: 600,
49
- fontSize: "0.85rem",
50
- paddingBottom: 6,
51
- color: s.headerColor
52
- },
53
- children: t
54
- },
55
- o
56
- )) }) }),
57
- /* @__PURE__ */ e("tbody", { children: C.map((t, o) => /* @__PURE__ */ e("tr", { children: t.map((l, n) => /* @__PURE__ */ e("td", { style: m, children: /* @__PURE__ */ e(
58
- "div",
59
- {
60
- style: {
61
- width: "100%",
62
- paddingBottom: "100%",
63
- position: "relative"
64
- },
65
- children: /* @__PURE__ */ e(
66
- "div",
67
- {
68
- style: {
69
- position: "absolute",
70
- inset: 0,
71
- display: "flex",
72
- flexDirection: "column",
73
- alignItems: "center",
74
- justifyContent: "flex-start",
75
- paddingTop: 6,
76
- gap: 4,
77
- overflow: "hidden"
78
- },
79
- children: l !== null && /* @__PURE__ */ y(w, { children: [
80
- /* @__PURE__ */ e(
81
- "span",
82
- {
83
- style: {
84
- fontFamily: "sans-serif",
85
- fontSize: "0.95rem",
86
- fontWeight: 500,
87
- color: s.dayColor
88
- },
89
- children: l
90
- }
91
- ),
92
- d[l - 1] != null && /* @__PURE__ */ e(
93
- "div",
94
- {
95
- style: {
96
- fontSize: "0.75rem",
97
- lineHeight: 1.2,
98
- overflow: "hidden",
99
- width: "100%",
100
- textAlign: "center",
101
- color: s.annotationColor
102
- },
103
- children: d[l - 1]
104
- }
105
- )
106
- ] })
107
- }
108
- )
109
- }
110
- ) }, n)) }, o)) })
111
- ] });
112
- };
113
- export {
114
- A as M
115
- };
116
- //# sourceMappingURL=MonthlyCalendar-D9jC2b2L.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MonthlyCalendar-D9jC2b2L.js","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"],"names":["LIGHT_THEME","DARK_THEME","defaultTableStyle","defaultCellStyle","MonthlyCalendar","year","month","annotations","headers","style","darkMode","theme","weeks","useMemo","daysInMonth","startDay","totalCells","result","currentDay","w","week","d","mergedTableStyle","jsxs","jsx","h","i","wi","day","di","Fragment"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";require('./ThemeSwitch.css');const e=require("react/jsx-runtime"),l="ThemeSwitch-module__sunCore___tUhud",m="ThemeSwitch-module__small___YlvWo",d="ThemeSwitch-module__medium___Q8Rro",r="ThemeSwitch-module__large___BMOxC",n="ThemeSwitch-module__sunspot1___8RI1V",u="ThemeSwitch-module__sunspot2___U0whF",i="ThemeSwitch-module__sunspot3___kWYEI",h="ThemeSwitch-module__sunRay___t1B4U",w="ThemeSwitch-module__rotateSun___JQByd",S="ThemeSwitch-module__switchContainer___VENjU",T="ThemeSwitch-module__dark___a4vSn",N="ThemeSwitch-module__background___Rpodp",x="ThemeSwitch-module__cloud___OoOyx",j="ThemeSwitch-module__light___ddTa2",v="ThemeSwitch-module__cloud1___aqGNx",g="ThemeSwitch-module__floatCloud1___MdWMj",$="ThemeSwitch-module__cloud2___guY71",C="ThemeSwitch-module__floatCloud2___2x6Sp",p="ThemeSwitch-module__cloud3___7-NhR",R="ThemeSwitch-module__floatCloud3___FJCbV",y="ThemeSwitch-module__star___Z98bU",k="ThemeSwitch-module__star1___rhotb",b="ThemeSwitch-module__star2___pzbNR",f="ThemeSwitch-module__star3___iK7lJ",I="ThemeSwitch-module__star4___t5pqN",F="ThemeSwitch-module__star5___dx42N",J="ThemeSwitch-module__star6___wur-I",K="ThemeSwitch-module__star7___KONgd",U="ThemeSwitch-module__star8___gIYpk",O="ThemeSwitch-module__twinkle___Abun5",V="ThemeSwitch-module__toggle___L5FGS",W="ThemeSwitch-module__sun___s8noI",Y="ThemeSwitch-module__moon___TNpFJ",q="ThemeSwitch-module__moonCore___svwjb",B="ThemeSwitch-module__crater1___swpHc",E="ThemeSwitch-module__crater2___WQVKR",Q="ThemeSwitch-module__crater3___F-KJu",G="ThemeSwitch-module__crater4___ZsIb7",s={sunCore:l,small:m,medium:d,large:r,sunspot1:n,sunspot2:u,sunspot3:i,sunRay:h,rotateSun:w,switchContainer:S,dark:T,background:N,cloud:x,light:j,cloud1:v,floatCloud1:g,cloud2:$,floatCloud2:C,cloud3:p,floatCloud3:R,star:y,star1:k,star2:b,star3:f,star4:I,star5:F,star6:J,star7:K,star8:U,twinkle:O,toggle:V,sun:W,moon:Y,moonCore:q,crater1:B,crater2:E,crater3:Q,crater4:G},Z=({enableDarkMode:t,setEnableDarkMode:a,size:c="large"})=>{const _=()=>{a(!t)};return e.jsxs("div",{className:`${s.switchContainer} ${s[c]} ${t?s.dark:s.light}`,onClick:_,role:"button",tabIndex:0,"aria-label":`Switch to ${t?"light":"dark"} mode`,onKeyDown:o=>{(o.key==="Enter"||o.key===" ")&&_()},children:[e.jsxs("div",{className:s.background,children:[e.jsx("div",{className:`${s.cloud} ${s.cloud1}`}),e.jsx("div",{className:`${s.cloud} ${s.cloud2}`}),e.jsx("div",{className:`${s.cloud} ${s.cloud3}`}),e.jsx("div",{className:`${s.star} ${s.star1}`}),e.jsx("div",{className:`${s.star} ${s.star2}`}),e.jsx("div",{className:`${s.star} ${s.star3}`}),e.jsx("div",{className:`${s.star} ${s.star4}`}),e.jsx("div",{className:`${s.star} ${s.star5}`}),e.jsx("div",{className:`${s.star} ${s.star6}`}),e.jsx("div",{className:`${s.star} ${s.star7}`}),e.jsx("div",{className:`${s.star} ${s.star8}`})]}),e.jsxs("div",{className:s.toggle,children:[e.jsxs("div",{className:s.sun,children:[e.jsxs("div",{className:s.sunCore,children:[e.jsx("div",{className:s.sunspot1}),e.jsx("div",{className:s.sunspot2}),e.jsx("div",{className:s.sunspot3})]}),e.jsx("div",{className:s.sunRay}),e.jsx("div",{className:s.sunRay}),e.jsx("div",{className:s.sunRay}),e.jsx("div",{className:s.sunRay}),e.jsx("div",{className:s.sunRay}),e.jsx("div",{className:s.sunRay}),e.jsx("div",{className:s.sunRay}),e.jsx("div",{className:s.sunRay})]}),e.jsx("div",{className:s.moon,children:e.jsxs("div",{className:s.moonCore,children:[e.jsx("div",{className:s.crater1}),e.jsx("div",{className:s.crater2}),e.jsx("div",{className:s.crater3}),e.jsx("div",{className:s.crater4})]})})]})]})};exports.ThemeSwitch=Z;
2
- //# sourceMappingURL=ThemeSwitch-C7k1_MA4.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ThemeSwitch-C7k1_MA4.cjs","sources":["../src/components/ThemeSwitch/ThemeSwitch.tsx"],"sourcesContent":["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"],"names":["ThemeSwitch","enableDarkMode","setEnableDarkMode","size","handleToggle","jsxs","styles","e","jsx"],"mappings":"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"}
@@ -1,104 +0,0 @@
1
- import { jsxs as t, jsx as e } from "react/jsx-runtime";
2
- import './ThemeSwitch.css';const m = "ThemeSwitch-module__sunCore___tUhud", d = "ThemeSwitch-module__small___YlvWo", r = "ThemeSwitch-module__medium___Q8Rro", n = "ThemeSwitch-module__large___BMOxC", u = "ThemeSwitch-module__sunspot1___8RI1V", i = "ThemeSwitch-module__sunspot2___U0whF", h = "ThemeSwitch-module__sunspot3___kWYEI", w = "ThemeSwitch-module__sunRay___t1B4U", S = "ThemeSwitch-module__rotateSun___JQByd", T = "ThemeSwitch-module__switchContainer___VENjU", N = "ThemeSwitch-module__dark___a4vSn", v = "ThemeSwitch-module__background___Rpodp", g = "ThemeSwitch-module__cloud___OoOyx", $ = "ThemeSwitch-module__light___ddTa2", C = "ThemeSwitch-module__cloud1___aqGNx", p = "ThemeSwitch-module__floatCloud1___MdWMj", y = "ThemeSwitch-module__cloud2___guY71", R = "ThemeSwitch-module__floatCloud2___2x6Sp", k = "ThemeSwitch-module__cloud3___7-NhR", b = "ThemeSwitch-module__floatCloud3___FJCbV", f = "ThemeSwitch-module__star___Z98bU", x = "ThemeSwitch-module__star1___rhotb", I = "ThemeSwitch-module__star2___pzbNR", j = "ThemeSwitch-module__star3___iK7lJ", F = "ThemeSwitch-module__star4___t5pqN", J = "ThemeSwitch-module__star5___dx42N", K = "ThemeSwitch-module__star6___wur-I", U = "ThemeSwitch-module__star7___KONgd", O = "ThemeSwitch-module__star8___gIYpk", V = "ThemeSwitch-module__twinkle___Abun5", W = "ThemeSwitch-module__toggle___L5FGS", Y = "ThemeSwitch-module__sun___s8noI", B = "ThemeSwitch-module__moon___TNpFJ", E = "ThemeSwitch-module__moonCore___svwjb", Q = "ThemeSwitch-module__crater1___swpHc", q = "ThemeSwitch-module__crater2___WQVKR", G = "ThemeSwitch-module__crater3___F-KJu", Z = "ThemeSwitch-module__crater4___ZsIb7", s = {
3
- sunCore: m,
4
- small: d,
5
- medium: r,
6
- large: n,
7
- sunspot1: u,
8
- sunspot2: i,
9
- sunspot3: h,
10
- sunRay: w,
11
- rotateSun: S,
12
- switchContainer: T,
13
- dark: N,
14
- background: v,
15
- cloud: g,
16
- light: $,
17
- cloud1: C,
18
- floatCloud1: p,
19
- cloud2: y,
20
- floatCloud2: R,
21
- cloud3: k,
22
- floatCloud3: b,
23
- star: f,
24
- star1: x,
25
- star2: I,
26
- star3: j,
27
- star4: F,
28
- star5: J,
29
- star6: K,
30
- star7: U,
31
- star8: O,
32
- twinkle: V,
33
- toggle: W,
34
- sun: Y,
35
- moon: B,
36
- moonCore: E,
37
- crater1: Q,
38
- crater2: q,
39
- crater3: G,
40
- crater4: Z
41
- }, A = ({
42
- enableDarkMode: _,
43
- setEnableDarkMode: c,
44
- size: l = "large"
45
- }) => {
46
- const o = () => {
47
- c(!_);
48
- };
49
- return /* @__PURE__ */ t(
50
- "div",
51
- {
52
- className: `${s.switchContainer} ${s[l]} ${_ ? s.dark : s.light}`,
53
- onClick: o,
54
- role: "button",
55
- tabIndex: 0,
56
- "aria-label": `Switch to ${_ ? "light" : "dark"} mode`,
57
- onKeyDown: (a) => {
58
- (a.key === "Enter" || a.key === " ") && o();
59
- },
60
- children: [
61
- /* @__PURE__ */ t("div", { className: s.background, children: [
62
- /* @__PURE__ */ e("div", { className: `${s.cloud} ${s.cloud1}` }),
63
- /* @__PURE__ */ e("div", { className: `${s.cloud} ${s.cloud2}` }),
64
- /* @__PURE__ */ e("div", { className: `${s.cloud} ${s.cloud3}` }),
65
- /* @__PURE__ */ e("div", { className: `${s.star} ${s.star1}` }),
66
- /* @__PURE__ */ e("div", { className: `${s.star} ${s.star2}` }),
67
- /* @__PURE__ */ e("div", { className: `${s.star} ${s.star3}` }),
68
- /* @__PURE__ */ e("div", { className: `${s.star} ${s.star4}` }),
69
- /* @__PURE__ */ e("div", { className: `${s.star} ${s.star5}` }),
70
- /* @__PURE__ */ e("div", { className: `${s.star} ${s.star6}` }),
71
- /* @__PURE__ */ e("div", { className: `${s.star} ${s.star7}` }),
72
- /* @__PURE__ */ e("div", { className: `${s.star} ${s.star8}` })
73
- ] }),
74
- /* @__PURE__ */ t("div", { className: s.toggle, children: [
75
- /* @__PURE__ */ t("div", { className: s.sun, children: [
76
- /* @__PURE__ */ t("div", { className: s.sunCore, children: [
77
- /* @__PURE__ */ e("div", { className: s.sunspot1 }),
78
- /* @__PURE__ */ e("div", { className: s.sunspot2 }),
79
- /* @__PURE__ */ e("div", { className: s.sunspot3 })
80
- ] }),
81
- /* @__PURE__ */ e("div", { className: s.sunRay }),
82
- /* @__PURE__ */ e("div", { className: s.sunRay }),
83
- /* @__PURE__ */ e("div", { className: s.sunRay }),
84
- /* @__PURE__ */ e("div", { className: s.sunRay }),
85
- /* @__PURE__ */ e("div", { className: s.sunRay }),
86
- /* @__PURE__ */ e("div", { className: s.sunRay }),
87
- /* @__PURE__ */ e("div", { className: s.sunRay }),
88
- /* @__PURE__ */ e("div", { className: s.sunRay })
89
- ] }),
90
- /* @__PURE__ */ e("div", { className: s.moon, children: /* @__PURE__ */ t("div", { className: s.moonCore, children: [
91
- /* @__PURE__ */ e("div", { className: s.crater1 }),
92
- /* @__PURE__ */ e("div", { className: s.crater2 }),
93
- /* @__PURE__ */ e("div", { className: s.crater3 }),
94
- /* @__PURE__ */ e("div", { className: s.crater4 })
95
- ] }) })
96
- ] })
97
- ]
98
- }
99
- );
100
- };
101
- export {
102
- A as T
103
- };
104
- //# sourceMappingURL=ThemeSwitch-DbaEio36.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ThemeSwitch-DbaEio36.js","sources":["../src/components/ThemeSwitch/ThemeSwitch.tsx"],"sourcesContent":["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"],"names":["ThemeSwitch","enableDarkMode","setEnableDarkMode","size","handleToggle","jsxs","styles","e","jsx"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"markdown-render.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"markdown-render.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"monthly-calendar.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"monthly-calendar.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"theme-switch.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"theme-switch.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
File without changes