@san-siva/blogkit 1.1.42 → 1.1.44

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 (69) hide show
  1. package/dist/cjs/components/Blog.js +2 -2
  2. package/dist/cjs/components/Blog.js.map +1 -1
  3. package/dist/cjs/components/Checkbox.js +14 -0
  4. package/dist/cjs/components/Checkbox.js.map +1 -0
  5. package/dist/cjs/components/WidthModeToggle.js +18 -0
  6. package/dist/cjs/components/WidthModeToggle.js.map +1 -0
  7. package/dist/cjs/context/WidthModeContext.js +23 -0
  8. package/dist/cjs/context/WidthModeContext.js.map +1 -0
  9. package/dist/cjs/dynamicComponents/BlogDynamic.js +2 -2
  10. package/dist/cjs/dynamicComponents/BlogDynamic.js.map +1 -1
  11. package/dist/cjs/index.css +1 -1
  12. package/dist/cjs/index.css.map +1 -1
  13. package/dist/cjs/index.js +2 -0
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/cjs/staticComponents/BlogStatic.js +2 -2
  16. package/dist/cjs/staticComponents/BlogStatic.js.map +1 -1
  17. package/dist/cjs/staticComponents/CheckListStatic.js +2 -1
  18. package/dist/cjs/staticComponents/CheckListStatic.js.map +1 -1
  19. package/dist/cjs/styles/Blog.module.scss.js +1 -1
  20. package/dist/esm/components/Blog.js +2 -2
  21. package/dist/esm/components/Blog.js.map +1 -1
  22. package/dist/esm/components/Checkbox.js +10 -0
  23. package/dist/esm/components/Checkbox.js.map +1 -0
  24. package/dist/esm/components/WidthModeToggle.js +14 -0
  25. package/dist/esm/components/WidthModeToggle.js.map +1 -0
  26. package/dist/esm/context/WidthModeContext.js +20 -0
  27. package/dist/esm/context/WidthModeContext.js.map +1 -0
  28. package/dist/esm/dynamicComponents/BlogDynamic.js +2 -2
  29. package/dist/esm/dynamicComponents/BlogDynamic.js.map +1 -1
  30. package/dist/esm/index.css +1 -1
  31. package/dist/esm/index.css.map +1 -1
  32. package/dist/esm/index.js +1 -0
  33. package/dist/esm/index.js.map +1 -1
  34. package/dist/esm/staticComponents/BlogStatic.js +2 -2
  35. package/dist/esm/staticComponents/BlogStatic.js.map +1 -1
  36. package/dist/esm/staticComponents/CheckListStatic.js +2 -1
  37. package/dist/esm/staticComponents/CheckListStatic.js.map +1 -1
  38. package/dist/esm/styles/Blog.module.scss.js +1 -1
  39. package/dist/types/components/Blog.d.ts +2 -1
  40. package/dist/types/components/Blog.d.ts.map +1 -1
  41. package/dist/types/components/Checkbox.d.ts +7 -0
  42. package/dist/types/components/Checkbox.d.ts.map +1 -0
  43. package/dist/types/components/Checkbox.test.d.ts +2 -0
  44. package/dist/types/components/Checkbox.test.d.ts.map +1 -0
  45. package/dist/types/components/WidthModeToggle.d.ts +3 -0
  46. package/dist/types/components/WidthModeToggle.d.ts.map +1 -0
  47. package/dist/types/context/WidthModeContext.d.ts +12 -0
  48. package/dist/types/context/WidthModeContext.d.ts.map +1 -0
  49. package/dist/types/dynamicComponents/BlogDynamic.d.ts +2 -1
  50. package/dist/types/dynamicComponents/BlogDynamic.d.ts.map +1 -1
  51. package/dist/types/index.d.ts +1 -0
  52. package/dist/types/index.d.ts.map +1 -1
  53. package/dist/types/staticComponents/BlogStatic.d.ts +2 -1
  54. package/dist/types/staticComponents/BlogStatic.d.ts.map +1 -1
  55. package/dist/types/staticComponents/CheckListStatic.d.ts +1 -0
  56. package/dist/types/staticComponents/CheckListStatic.d.ts.map +1 -1
  57. package/dist/types/staticComponents/CheckListStatic.test.d.ts +2 -0
  58. package/dist/types/staticComponents/CheckListStatic.test.d.ts.map +1 -0
  59. package/package.json +2 -2
  60. package/src/components/Blog.tsx +4 -3
  61. package/src/components/Checkbox.test.tsx +32 -0
  62. package/src/components/Checkbox.tsx +24 -0
  63. package/src/dynamicComponents/BlogDynamic.tsx +3 -1
  64. package/src/index.ts +1 -0
  65. package/src/staticComponents/BlogStatic.tsx +4 -2
  66. package/src/staticComponents/CheckListStatic.test.tsx +29 -0
  67. package/src/staticComponents/CheckListStatic.tsx +3 -5
  68. package/src/styles/Blog.module.scss +22 -4
  69. package/src/styles/Blog.module.scss.d.ts +1 -0
package/dist/cjs/index.js CHANGED
@@ -9,6 +9,7 @@ var Mermaid = require('./components/Mermaid.js');
9
9
  var BlogLink = require('./components/BlogLink.js');
10
10
  var Table = require('./components/Table.js');
11
11
  var CheckList = require('./components/CheckList.js');
12
+ var Checkbox = require('./components/Checkbox.js');
12
13
  var index = require('./utils/index.js');
13
14
 
14
15
 
@@ -22,6 +23,7 @@ exports.Mermaid = Mermaid.default;
22
23
  exports.BlogLink = BlogLink.default;
23
24
  exports.Table = Table.default;
24
25
  exports.CheckList = CheckList.default;
26
+ exports.Checkbox = Checkbox.default;
25
27
  exports.generateIdForBlogTitle = index.generateIdForBlogTitle;
26
28
  exports.generateUrlForBlogTitle = index.generateUrlForBlogTitle;
27
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -5,8 +5,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
  var Blog_module = require('../styles/Blog.module.scss.js');
7
7
 
8
- const BlogStatic = ({ children, jsonLd }) => {
9
- return (jsxRuntime.jsxs("div", { className: Blog_module.default.blog, children: [jsonLd && (jsxRuntime.jsx("script", { type: "application/ld+json", dangerouslySetInnerHTML: { __html: JSON.stringify(jsonLd) } })), jsxRuntime.jsx("div", { className: Blog_module.default['blog__content'], children: children })] }));
8
+ const BlogStatic = ({ children, jsonLd, increasedWidthMode = false }) => {
9
+ return (jsxRuntime.jsxs("div", { className: `${Blog_module.default.blog} ${increasedWidthMode ? Blog_module.default['blog--increased-width'] : ''}`, children: [jsonLd && (jsxRuntime.jsx("script", { type: "application/ld+json", dangerouslySetInnerHTML: { __html: JSON.stringify(jsonLd) } })), jsxRuntime.jsx("div", { className: Blog_module.default['blog__content'], children: children })] }));
10
10
  };
11
11
 
12
12
  exports.default = BlogStatic;
@@ -1 +1 @@
1
- {"version":3,"file":"BlogStatic.js","sources":["../../../src/staticComponents/BlogStatic.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport type { Thing, WithContext } from 'schema-dts';\nimport styles from '../styles/Blog.module.scss';\n\ninterface BlogStaticProperties {\n\tchildren: ReactNode;\n\tjsonLd?: WithContext<Thing>;\n}\n\nconst BlogStatic = ({ children, jsonLd }: BlogStaticProperties) => {\n\treturn (\n\t\t<div className={styles.blog}>\n\t\t\t{jsonLd && (\n\t\t\t\t<script\n\t\t\t\t\ttype=\"application/ld+json\"\n\t\t\t\t\tdangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t<div className={styles['blog__content']}>{children}</div>\n\t\t</div>\n\t);\n};\n\nexport default BlogStatic;\n"],"names":["_jsxs","styles","_jsx"],"mappings":";;;;;;;AASA,MAAM,UAAU,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAwB,KAAI;AACjE,IAAA,QACCA,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEC,mBAAM,CAAC,IAAI,EAAA,QAAA,EAAA,CACzB,MAAM,KACNC,cAAA,CAAA,QAAA,EAAA,EACC,IAAI,EAAC,qBAAqB,EAC1B,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAA,CAC1D,CACF,EACDA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,mBAAM,CAAC,eAAe,CAAC,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAO,CAAA,EAAA,CACpD;AAER;;;;"}
1
+ {"version":3,"file":"BlogStatic.js","sources":["../../../src/staticComponents/BlogStatic.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport type { Thing, WithContext } from 'schema-dts';\nimport styles from '../styles/Blog.module.scss';\n\ninterface BlogStaticProperties {\n\tchildren: ReactNode;\n\tjsonLd?: WithContext<Thing>;\n\tincreasedWidthMode?: boolean;\n}\n\nconst BlogStatic = ({ children, jsonLd, increasedWidthMode = false }: BlogStaticProperties) => {\n\treturn (\n\t\t<div className={`${styles.blog} ${increasedWidthMode ? styles['blog--increased-width'] : ''}`}>\n\n\t\t\t{jsonLd && (\n\t\t\t\t<script\n\t\t\t\t\ttype=\"application/ld+json\"\n\t\t\t\t\tdangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t<div className={styles['blog__content']}>{children}</div>\n\t\t</div>\n\t);\n};\n\nexport default BlogStatic;\n"],"names":["_jsxs","styles","_jsx"],"mappings":";;;;;;;AAUA,MAAM,UAAU,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,kBAAkB,GAAG,KAAK,EAAwB,KAAI;IAC7F,QACCA,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,EAAGC,mBAAM,CAAC,IAAI,CAAA,CAAA,EAAI,kBAAkB,GAAGA,mBAAM,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAA,CAAE,EAAA,QAAA,EAAA,CAE3F,MAAM,KACNC,cAAA,CAAA,QAAA,EAAA,EACC,IAAI,EAAC,qBAAqB,EAC1B,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAA,CAC1D,CACF,EACDA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,mBAAM,CAAC,eAAe,CAAC,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAO,CAAA,EAAA,CACpD;AAER;;;;"}
@@ -3,10 +3,11 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
+ var Checkbox = require('../components/Checkbox.js');
6
7
  var CheckList_module = require('../styles/CheckList.module.scss.js');
7
8
 
8
9
  const CheckListStatic = ({ items, hasMarginUp = false, hasMarginDown = false, }) => {
9
- return (jsxRuntime.jsx("div", { className: `${CheckList_module.default['check-list']} ${hasMarginUp ? CheckList_module.default['margin-top--1'] : ''} ${hasMarginDown ? CheckList_module.default['margin-bottom--2'] : ''}`, children: items.map((item) => (jsxRuntime.jsxs("div", { className: CheckList_module.default['check-list__item'], "data-id": item.id, children: [jsxRuntime.jsx("div", { className: `${CheckList_module.default['check-list__item__input']} ${item.isChecked ? CheckList_module.default['check-list__item__input--checked'] : ''}` }), item.children] }, item.id))) }));
10
+ return (jsxRuntime.jsx("div", { className: `${CheckList_module.default['check-list']} ${hasMarginUp ? CheckList_module.default['margin-top--1'] : ''} ${hasMarginDown ? CheckList_module.default['margin-bottom--2'] : ''}`, children: items.map((item) => (jsxRuntime.jsxs("div", { className: CheckList_module.default['check-list__item'], "data-id": item.id, children: [jsxRuntime.jsx(Checkbox.default, { isChecked: item.isChecked, onClick: item.onClick }), item.children] }, item.id))) }));
10
11
  };
11
12
 
12
13
  exports.default = CheckListStatic;
@@ -1 +1 @@
1
- {"version":3,"file":"CheckListStatic.js","sources":["../../../src/staticComponents/CheckListStatic.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactElement } from 'react';\n\nimport styles from '../styles/CheckList.module.scss';\n\nexport interface CheckListItem {\n\tid: string;\n\tchildren: ReactElement<HTMLAttributes<HTMLParagraphElement>, 'p'>;\n\tisChecked?: boolean;\n}\n\ninterface CheckListProperties {\n\titems: CheckListItem[];\n\thasMarginUp?: boolean;\n\thasMarginDown?: boolean;\n}\n\nconst CheckListStatic = ({\n\titems,\n\thasMarginUp = false,\n\thasMarginDown = false,\n}: CheckListProperties) => {\n\treturn (\n\t\t<div\n\t\t\tclassName={`${styles['check-list']} ${hasMarginUp ? styles['margin-top--1'] : ''} ${\n\t\t\t\thasMarginDown ? styles['margin-bottom--2'] : ''\n\t\t\t}`}\n\t\t>\n\t\t\t{items.map((item) => (\n\t\t\t\t<div key={item.id} className={styles['check-list__item']} data-id={item.id}>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={`${styles['check-list__item__input']} ${\n\t\t\t\t\t\t\titem.isChecked ? styles['check-list__item__input--checked'] : ''\n\t\t\t\t\t\t}`}\n\t\t\t\t\t/>\n\t\t\t\t\t{item.children}\n\t\t\t\t</div>\n\t\t\t))}\n\t\t</div>\n\t);\n};\n\nexport default CheckListStatic;\n"],"names":["_jsx","styles","_jsxs"],"mappings":";;;;;;;AAgBA,MAAM,eAAe,GAAG,CAAC,EACxB,KAAK,EACL,WAAW,GAAG,KAAK,EACnB,aAAa,GAAG,KAAK,GACA,KAAI;IACzB,QACCA,wBACC,SAAS,EAAE,GAAGC,wBAAM,CAAC,YAAY,CAAC,CAAA,CAAA,EAAI,WAAW,GAAGA,wBAAM,CAAC,eAAe,CAAC,GAAG,EAAE,CAAA,CAAA,EAC/E,aAAa,GAAGA,wBAAM,CAAC,kBAAkB,CAAC,GAAG,EAC9C,EAAE,EAAA,QAAA,EAED,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MACfC,eAAA,CAAA,KAAA,EAAA,EAAmB,SAAS,EAAED,wBAAM,CAAC,kBAAkB,CAAC,aAAW,IAAI,CAAC,EAAE,EAAA,QAAA,EAAA,CACzED,cAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAE,CAAA,EAAGC,wBAAM,CAAC,yBAAyB,CAAC,CAAA,CAAA,EAC9C,IAAI,CAAC,SAAS,GAAGA,wBAAM,CAAC,kCAAkC,CAAC,GAAG,EAC/D,CAAA,CAAE,EAAA,CACD,EACD,IAAI,CAAC,QAAQ,CAAA,EAAA,EANL,IAAI,CAAC,EAAE,CAOX,CACN,CAAC,EAAA,CACG;AAER;;;;"}
1
+ {"version":3,"file":"CheckListStatic.js","sources":["../../../src/staticComponents/CheckListStatic.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactElement } from 'react';\n\nimport Checkbox from '../components/Checkbox';\nimport styles from '../styles/CheckList.module.scss';\n\nexport interface CheckListItem {\n\tid: string;\n\tchildren: ReactElement<HTMLAttributes<HTMLParagraphElement>, 'p'>;\n\tisChecked?: boolean;\n\tonClick?: () => void;\n}\n\ninterface CheckListProperties {\n\titems: CheckListItem[];\n\thasMarginUp?: boolean;\n\thasMarginDown?: boolean;\n}\n\nconst CheckListStatic = ({\n\titems,\n\thasMarginUp = false,\n\thasMarginDown = false,\n}: CheckListProperties) => {\n\treturn (\n\t\t<div\n\t\t\tclassName={`${styles['check-list']} ${hasMarginUp ? styles['margin-top--1'] : ''} ${\n\t\t\t\thasMarginDown ? styles['margin-bottom--2'] : ''\n\t\t\t}`}\n\t\t>\n\t\t\t{items.map((item) => (\n\t\t\t\t<div key={item.id} className={styles['check-list__item']} data-id={item.id}>\n\t\t\t\t\t<Checkbox isChecked={item.isChecked} onClick={item.onClick} />\n\t\t\t\t\t{item.children}\n\t\t\t\t</div>\n\t\t\t))}\n\t\t</div>\n\t);\n};\n\nexport default CheckListStatic;\n"],"names":["_jsx","styles","_jsxs","Checkbox"],"mappings":";;;;;;;;AAkBA,MAAM,eAAe,GAAG,CAAC,EACxB,KAAK,EACL,WAAW,GAAG,KAAK,EACnB,aAAa,GAAG,KAAK,GACA,KAAI;AACzB,IAAA,QACCA,cAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAE,CAAA,EAAGC,wBAAM,CAAC,YAAY,CAAC,CAAA,CAAA,EAAI,WAAW,GAAGA,wBAAM,CAAC,eAAe,CAAC,GAAG,EAAE,IAC/E,aAAa,GAAGA,wBAAM,CAAC,kBAAkB,CAAC,GAAG,EAC9C,CAAA,CAAE,EAAA,QAAA,EAED,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MACfC,eAAA,CAAA,KAAA,EAAA,EAAmB,SAAS,EAAED,wBAAM,CAAC,kBAAkB,CAAC,aAAW,IAAI,CAAC,EAAE,EAAA,QAAA,EAAA,CACzED,cAAA,CAACG,gBAAQ,EAAA,EAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAA,CAAI,EAC7D,IAAI,CAAC,QAAQ,CAAA,EAAA,EAFL,IAAI,CAAC,EAAE,CAGX,CACN,CAAC,EAAA,CACG;AAER;;;;"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var styles = {"margin-bottom--3":"Blog-module_margin-bottom--3__ir35O","category__header":"Blog-module_category__header__F1K0V","blog":"Blog-module_blog__Lpv6Z","blog__content":"Blog-module_blog__content__RMDiY","blog__sidebar":"Blog-module_blog__sidebar__uSu3l"};
5
+ var styles = {"margin-bottom--3":"Blog-module_margin-bottom--3__ir35O","category__header":"Blog-module_category__header__F1K0V","blog":"Blog-module_blog__Lpv6Z","blog__content":"Blog-module_blog__content__RMDiY","blog__sidebar":"Blog-module_blog__sidebar__uSu3l","blog--increased-width":"Blog-module_blog--increased-width__QxyOD"};
6
6
 
7
7
  exports.default = styles;
8
8
  //# sourceMappingURL=Blog.module.scss.js.map
@@ -4,8 +4,8 @@ import { lazy, Suspense } from 'react';
4
4
  import BlogStatic from '../staticComponents/BlogStatic.js';
5
5
 
6
6
  const BlogDynamic = lazy(() => import('../dynamicComponents/BlogDynamic.js'));
7
- const Blog = ({ children, title = 'In this article', jsonLd }) => {
8
- return (jsx(Suspense, { fallback: jsx(BlogStatic, { jsonLd: jsonLd, children: children }), children: jsx(BlogDynamic, { title: title, jsonLd: jsonLd, children: children }) }));
7
+ const Blog = ({ children, title = 'In this article', jsonLd, increasedWidthMode = false }) => {
8
+ return (jsx(Suspense, { fallback: jsx(BlogStatic, { jsonLd: jsonLd, increasedWidthMode: increasedWidthMode, children: children }), children: jsx(BlogDynamic, { title: title, jsonLd: jsonLd, increasedWidthMode: increasedWidthMode, children: children }) }));
9
9
  };
10
10
 
11
11
  export { Blog as default };
@@ -1 +1 @@
1
- {"version":3,"file":"Blog.js","sources":["../../../src/components/Blog.tsx"],"sourcesContent":["'use client';\n\nimport { lazy, Suspense } from 'react';\nimport type { ReactNode } from 'react';\nimport type { Thing, WithContext } from 'schema-dts';\nimport BlogStatic from '../staticComponents/BlogStatic';\n\nconst BlogDynamic = lazy(() => import('../dynamicComponents/BlogDynamic'));\n\ninterface BlogProperties {\n\tchildren: ReactNode;\n\ttitle?: string;\n\tjsonLd?: WithContext<Thing>;\n}\n\nconst Blog = ({ children, title = 'In this article', jsonLd }: BlogProperties) => {\n\treturn (\n\t\t<Suspense fallback={<BlogStatic jsonLd={jsonLd}>{children}</BlogStatic>}>\n\t\t\t<BlogDynamic title={title} jsonLd={jsonLd}>{children}</BlogDynamic>\n\t\t</Suspense>\n\t);\n};\n\nexport default Blog;\n"],"names":["_jsx"],"mappings":";;;;AAOA,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,OAAO,qCAAkC,CAAC,CAAC;AAQ1E,MAAM,IAAI,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,GAAG,iBAAiB,EAAE,MAAM,EAAkB,KAAI;AAChF,IAAA,QACCA,GAAA,CAAC,QAAQ,EAAA,EAAC,QAAQ,EAAEA,GAAA,CAAC,UAAU,EAAA,EAAC,MAAM,EAAE,MAAM,YAAG,QAAQ,EAAA,CAAc,EAAA,QAAA,EACtEA,GAAA,CAAC,WAAW,EAAA,EAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAe,EAAA,CACzD;AAEb;;;;"}
1
+ {"version":3,"file":"Blog.js","sources":["../../../src/components/Blog.tsx"],"sourcesContent":["'use client';\n\nimport { lazy, Suspense } from 'react';\nimport type { ReactNode } from 'react';\nimport type { Thing, WithContext } from 'schema-dts';\nimport BlogStatic from '../staticComponents/BlogStatic';\n\nconst BlogDynamic = lazy(() => import('../dynamicComponents/BlogDynamic'));\n\ninterface BlogProperties {\n\tchildren: ReactNode;\n\ttitle?: string;\n\tjsonLd?: WithContext<Thing>;\n\tincreasedWidthMode?: boolean;\n}\n\nconst Blog = ({ children, title = 'In this article', jsonLd, increasedWidthMode = false }: BlogProperties) => {\n\treturn (\n\t\t<Suspense fallback={<BlogStatic jsonLd={jsonLd} increasedWidthMode={increasedWidthMode}>{children}</BlogStatic>}>\n\t\t\t<BlogDynamic title={title} jsonLd={jsonLd} increasedWidthMode={increasedWidthMode}>{children}</BlogDynamic>\n\t\t</Suspense>\n\t);\n};\n\nexport default Blog;\n"],"names":["_jsx"],"mappings":";;;;AAOA,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,OAAO,qCAAkC,CAAC,CAAC;AAS1E,MAAM,IAAI,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,GAAG,iBAAiB,EAAE,MAAM,EAAE,kBAAkB,GAAG,KAAK,EAAkB,KAAI;AAC5G,IAAA,QACCA,GAAA,CAAC,QAAQ,EAAA,EAAC,QAAQ,EAAEA,GAAA,CAAC,UAAU,EAAA,EAAC,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,kBAAkB,YAAG,QAAQ,EAAA,CAAc,EAAA,QAAA,EAC9GA,GAAA,CAAC,WAAW,EAAA,EAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,kBAAkB,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAe,EAAA,CACjG;AAEb;;;;"}
@@ -0,0 +1,10 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import styles from '../styles/CheckList.module.scss.js';
4
+
5
+ const Checkbox = ({ isChecked = false, onClick }) => {
6
+ return (jsx("div", { className: `${styles['check-list__item__input']} ${isChecked ? styles['check-list__item__input--checked'] : ''}`, onClick: onClick, role: onClick ? 'checkbox' : undefined, "aria-checked": onClick ? isChecked : undefined, tabIndex: onClick ? 0 : undefined }));
7
+ };
8
+
9
+ export { Checkbox as default };
10
+ //# sourceMappingURL=Checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox.js","sources":["../../../src/components/Checkbox.tsx"],"sourcesContent":["'use client';\n\nimport styles from '../styles/CheckList.module.scss';\n\ninterface CheckboxProperties {\n\tisChecked?: boolean;\n\tonClick?: () => void;\n}\n\nconst Checkbox = ({ isChecked = false, onClick }: CheckboxProperties) => {\n\treturn (\n\t\t<div\n\t\t\tclassName={`${styles['check-list__item__input']} ${\n\t\t\t\tisChecked ? styles['check-list__item__input--checked'] : ''\n\t\t\t}`}\n\t\t\tonClick={onClick}\n\t\t\trole={onClick ? 'checkbox' : undefined}\n\t\t\taria-checked={onClick ? isChecked : undefined}\n\t\t\ttabIndex={onClick ? 0 : undefined}\n\t\t/>\n\t);\n};\n\nexport default Checkbox;\n"],"names":["_jsx"],"mappings":";;;AASA,MAAM,QAAQ,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,EAAE,OAAO,EAAsB,KAAI;AACvE,IAAA,QACCA,GAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAE,CAAA,EAAG,MAAM,CAAC,yBAAyB,CAAC,CAAA,CAAA,EAC9C,SAAS,GAAG,MAAM,CAAC,kCAAkC,CAAC,GAAG,EAC1D,CAAA,CAAE,EACF,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,EAAA,cAAA,EACxB,OAAO,GAAG,SAAS,GAAG,SAAS,EAC7C,QAAQ,EAAE,OAAO,GAAG,CAAC,GAAG,SAAS,EAAA,CAChC;AAEJ;;;;"}
@@ -0,0 +1,14 @@
1
+ 'use client';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import { useWidthMode } from '../context/WidthModeContext.js';
4
+
5
+ const WidthModeToggle = () => {
6
+ const widthMode = useWidthMode();
7
+ if (!widthMode)
8
+ return null;
9
+ const { increasedWidthMode, setIncreasedWidthMode } = widthMode;
10
+ return (jsxs("label", { style: { display: 'flex', alignItems: 'center', gap: '0.5rem' }, children: [jsx("input", { type: "checkbox", checked: increasedWidthMode, onChange: event => setIncreasedWidthMode(event.target.checked) }), "Increased width mode"] }));
11
+ };
12
+
13
+ export { WidthModeToggle as default };
14
+ //# sourceMappingURL=WidthModeToggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidthModeToggle.js","sources":["../../../src/components/WidthModeToggle.tsx"],"sourcesContent":["'use client';\n\nimport { useWidthMode } from '../context/WidthModeContext';\n\nconst WidthModeToggle = () => {\n\tconst widthMode = useWidthMode();\n\tif (!widthMode) return null;\n\n\tconst { increasedWidthMode, setIncreasedWidthMode } = widthMode;\n\n\treturn (\n\t\t<label style={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}>\n\t\t\t<input\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\tchecked={increasedWidthMode}\n\t\t\t\tonChange={event => setIncreasedWidthMode(event.target.checked)}\n\t\t\t/>\n\t\t\tIncreased width mode\n\t\t</label>\n\t);\n};\n\nexport default WidthModeToggle;\n"],"names":["_jsxs","_jsx"],"mappings":";;;AAIA,MAAM,eAAe,GAAG,MAAK;AAC5B,IAAA,MAAM,SAAS,GAAG,YAAY,EAAE;AAChC,IAAA,IAAI,CAAC,SAAS;AAAE,QAAA,OAAO,IAAI;AAE3B,IAAA,MAAM,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,GAAG,SAAS;IAE/D,QACCA,gBAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CACrEC,GAAA,CAAA,OAAA,EAAA,EACC,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,KAAK,IAAI,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAA,CAC7D,EAAA,sBAAA,CAAA,EAAA,CAEK;AAEV;;;;"}
@@ -0,0 +1,20 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { createContext, useContext, useState, useEffect } from 'react';
4
+
5
+ const STORAGE_KEY = 'blogkit:increased-width-mode';
6
+ const WidthModeContext = createContext(null);
7
+ const WidthModeProvider = ({ children }) => {
8
+ const [increasedWidthMode, setIncreasedWidthMode] = useState(false);
9
+ useEffect(() => {
10
+ setIncreasedWidthMode(localStorage.getItem(STORAGE_KEY) === 'true');
11
+ }, []);
12
+ useEffect(() => {
13
+ localStorage.setItem(STORAGE_KEY, String(increasedWidthMode));
14
+ }, [increasedWidthMode]);
15
+ return (jsx(WidthModeContext.Provider, { value: { increasedWidthMode, setIncreasedWidthMode }, children: children }));
16
+ };
17
+ const useWidthMode = () => useContext(WidthModeContext);
18
+
19
+ export { WidthModeProvider, useWidthMode };
20
+ //# sourceMappingURL=WidthModeContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidthModeContext.js","sources":["../../../src/context/WidthModeContext.tsx"],"sourcesContent":["'use client';\n\nimport { createContext, useContext, useEffect, useState } from 'react';\nimport type { ReactNode } from 'react';\n\nconst STORAGE_KEY = 'blogkit:increased-width-mode';\n\ninterface WidthModeContextValue {\n\tincreasedWidthMode: boolean;\n\tsetIncreasedWidthMode: (value: boolean) => void;\n}\n\nconst WidthModeContext = createContext<WidthModeContextValue | null>(null);\n\ninterface WidthModeProviderProperties {\n\tchildren: ReactNode;\n}\n\nexport const WidthModeProvider = ({ children }: WidthModeProviderProperties) => {\n\tconst [increasedWidthMode, setIncreasedWidthMode] = useState(false);\n\n\tuseEffect(() => {\n\t\tsetIncreasedWidthMode(localStorage.getItem(STORAGE_KEY) === 'true');\n\t}, []);\n\n\tuseEffect(() => {\n\t\tlocalStorage.setItem(STORAGE_KEY, String(increasedWidthMode));\n\t}, [increasedWidthMode]);\n\n\treturn (\n\t\t<WidthModeContext.Provider\n\t\t\tvalue={{ increasedWidthMode, setIncreasedWidthMode }}\n\t\t>\n\t\t\t{children}\n\t\t</WidthModeContext.Provider>\n\t);\n};\n\nexport const useWidthMode = () => useContext(WidthModeContext);\n"],"names":["_jsx"],"mappings":";;;AAKA,MAAM,WAAW,GAAG,8BAA8B;AAOlD,MAAM,gBAAgB,GAAG,aAAa,CAA+B,IAAI,CAAC;MAM7D,iBAAiB,GAAG,CAAC,EAAE,QAAQ,EAA+B,KAAI;IAC9E,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IAEnE,SAAS,CAAC,MAAK;QACd,qBAAqB,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC;IACpE,CAAC,EAAE,EAAE,CAAC;IAEN,SAAS,CAAC,MAAK;QACd,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAC9D,IAAA,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC;AAExB,IAAA,QACCA,GAAA,CAAC,gBAAgB,CAAC,QAAQ,IACzB,KAAK,EAAE,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,YAEnD,QAAQ,EAAA,CACkB;AAE9B;AAEO,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,gBAAgB;;;;"}
@@ -26,7 +26,7 @@ const buildTocTree = (entries) => {
26
26
  }
27
27
  return roots;
28
28
  };
29
- const Blog = ({ children, title = 'In this article', jsonLd, }) => {
29
+ const Blog = ({ children, title = 'In this article', jsonLd, increasedWidthMode = false, }) => {
30
30
  const [visibleTitle, setVisibleTitle] = useState(null);
31
31
  const [showTOC, setShowTOC] = useState(false);
32
32
  const { categoryTitles, handleSectionReference } = useCategoryTitles({
@@ -43,7 +43,7 @@ const Blog = ({ children, title = 'In this article', jsonLd, }) => {
43
43
  transform: showTOC ? 'translateX(0)' : 'translateX(40px)',
44
44
  config: config.gentle,
45
45
  });
46
- return (jsxs("div", { className: styles.blog, children: [jsonLd && (jsx("script", { type: "application/ld+json", dangerouslySetInnerHTML: { __html: JSON.stringify(jsonLd) } })), jsx("div", { className: styles['blog__content'], children: Children.map(children, child => {
46
+ return (jsxs("div", { className: `${styles.blog} ${increasedWidthMode ? styles['blog--increased-width'] : ''}`, children: [jsonLd && (jsx("script", { type: "application/ld+json", dangerouslySetInnerHTML: { __html: JSON.stringify(jsonLd) } })), jsx("div", { className: styles['blog__content'], children: Children.map(children, child => {
47
47
  if (!isValidElement(child))
48
48
  return child;
49
49
  return cloneElement(child, {
@@ -1 +1 @@
1
- {"version":3,"file":"BlogDynamic.js","sources":["../../../src/dynamicComponents/BlogDynamic.tsx"],"sourcesContent":["'use client';\n\nimport {\n\tChildren,\n\tcloneElement,\n\tisValidElement,\n\tuseState,\n} from 'react';\nimport { useSpring, animated, config } from '@react-spring/web';\n\nimport type { ReactNode, RefAttributes } from 'react';\nimport type { Thing, WithContext } from 'schema-dts';\n\nimport styles from '../styles/Blog.module.scss';\nimport { useCategoryTitles } from '../hooks/useCategoryTitles';\nimport { useSectionObserver } from '../hooks/useSectionObserver';\nimport type { CategoryTitleValue } from '../hooks/useCategoryTitles';\nimport TocNodeStatic from '../staticComponents/TocNodeStatic';\nimport type { TocNode } from '../staticComponents/TocNodeStatic';\n\ninterface BlogProperties {\n\tchildren: ReactNode;\n\ttitle?: string;\n\tjsonLd?: WithContext<Thing>;\n}\n\nexport interface ForwardedReference {\n\tparentRef: HTMLDivElement;\n\tchildRefs: ForwardedReference[];\n}\n\nconst MAX_TOC_DEPTH = 2;\n\nconst buildTocTree = (entries: [string, CategoryTitleValue][]): TocNode[] => {\n\tconst roots: TocNode[] = [];\n\tconst stack: TocNode[] = [];\n\tfor (const [id, { title, depth }] of entries.filter(([, { depth }]) => depth <= MAX_TOC_DEPTH)) {\n\t\tconst node: TocNode = { id, title, depth, children: [] };\n\t\twhile (stack.length > 0 && stack[stack.length - 1].depth >= depth) {\n\t\t\tstack.pop();\n\t\t}\n\t\tif (stack.length === 0) {\n\t\t\troots.push(node);\n\t\t} else {\n\t\t\tstack[stack.length - 1].children.push(node);\n\t\t}\n\t\tstack.push(node);\n\t}\n\treturn roots;\n};\n\nconst Blog = ({\n\tchildren,\n\ttitle = 'In this article',\n\tjsonLd,\n}: BlogProperties) => {\n\tconst [visibleTitle, setVisibleTitle] = useState<string | null>(null);\n\tconst [showTOC, setShowTOC] = useState(false);\n\n\tconst { categoryTitles, handleSectionReference } = useCategoryTitles({\n\t\tvisibleTitle,\n\t\tsetVisibleTitle,\n\t\tsetShowTOC,\n\t});\n\n\tconst { handleClickCategoryTitle } = useSectionObserver({\n\t\tcategoryTitles,\n\t\tsetVisibleTitle,\n\t});\n\n\tconst sidebarStyle = useSpring({\n\t\topacity: showTOC ? 1 : 0,\n\t\ttransform: showTOC ? 'translateX(0)' : 'translateX(40px)',\n\t\tconfig: config.gentle,\n\t});\n\n\treturn (\n\t\t<div className={styles.blog}>\n\t\t\t{jsonLd && (\n\t\t\t\t<script\n\t\t\t\t\ttype=\"application/ld+json\"\n\t\t\t\t\tdangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t<div className={styles['blog__content']}>\n\t\t\t\t{Children.map(children, child => {\n\t\t\t\t\tif (!isValidElement(child)) return child;\n\t\t\t\t\treturn cloneElement(child, {\n\t\t\t\t\t\tref: handleSectionReference,\n\t\t\t\t\t} as RefAttributes<ForwardedReference>);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t\t<animated.div className={styles['blog__sidebar']} style={sidebarStyle}>\n\t\t\t\t<p\n\t\t\t\t\tclassName={`${styles['margin-bottom--3']} ${styles['category__header']}`}\n\t\t\t\t>\n\t\t\t\t\t{title}\n\t\t\t\t</p>\n\t\t\t\t{buildTocTree([...categoryTitles]).map((node, i) => (\n\t\t\t\t\t<TocNodeStatic\n\t\t\t\t\t\tkey={node.id}\n\t\t\t\t\t\tnode={node}\n\t\t\t\t\t\tindex={i}\n\t\t\t\t\t\tvisibleTitle={visibleTitle}\n\t\t\t\t\t\tonClick={handleClickCategoryTitle}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</animated.div>\n\t\t</div>\n\t);\n};\n\nexport default Blog;\n"],"names":["_jsxs","_jsx","TocNodeStatic"],"mappings":"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"}
1
+ {"version":3,"file":"BlogDynamic.js","sources":["../../../src/dynamicComponents/BlogDynamic.tsx"],"sourcesContent":["'use client';\n\nimport {\n\tChildren,\n\tcloneElement,\n\tisValidElement,\n\tuseState,\n} from 'react';\nimport { useSpring, animated, config } from '@react-spring/web';\n\nimport type { ReactNode, RefAttributes } from 'react';\nimport type { Thing, WithContext } from 'schema-dts';\n\nimport styles from '../styles/Blog.module.scss';\nimport { useCategoryTitles } from '../hooks/useCategoryTitles';\nimport { useSectionObserver } from '../hooks/useSectionObserver';\nimport type { CategoryTitleValue } from '../hooks/useCategoryTitles';\nimport TocNodeStatic from '../staticComponents/TocNodeStatic';\nimport type { TocNode } from '../staticComponents/TocNodeStatic';\n\ninterface BlogProperties {\n\tchildren: ReactNode;\n\ttitle?: string;\n\tjsonLd?: WithContext<Thing>;\n\tincreasedWidthMode?: boolean;\n}\n\nexport interface ForwardedReference {\n\tparentRef: HTMLDivElement;\n\tchildRefs: ForwardedReference[];\n}\n\nconst MAX_TOC_DEPTH = 2;\n\nconst buildTocTree = (entries: [string, CategoryTitleValue][]): TocNode[] => {\n\tconst roots: TocNode[] = [];\n\tconst stack: TocNode[] = [];\n\tfor (const [id, { title, depth }] of entries.filter(([, { depth }]) => depth <= MAX_TOC_DEPTH)) {\n\t\tconst node: TocNode = { id, title, depth, children: [] };\n\t\twhile (stack.length > 0 && stack[stack.length - 1].depth >= depth) {\n\t\t\tstack.pop();\n\t\t}\n\t\tif (stack.length === 0) {\n\t\t\troots.push(node);\n\t\t} else {\n\t\t\tstack[stack.length - 1].children.push(node);\n\t\t}\n\t\tstack.push(node);\n\t}\n\treturn roots;\n};\n\nconst Blog = ({\n\tchildren,\n\ttitle = 'In this article',\n\tjsonLd,\n\tincreasedWidthMode = false,\n}: BlogProperties) => {\n\tconst [visibleTitle, setVisibleTitle] = useState<string | null>(null);\n\tconst [showTOC, setShowTOC] = useState(false);\n\n\tconst { categoryTitles, handleSectionReference } = useCategoryTitles({\n\t\tvisibleTitle,\n\t\tsetVisibleTitle,\n\t\tsetShowTOC,\n\t});\n\n\tconst { handleClickCategoryTitle } = useSectionObserver({\n\t\tcategoryTitles,\n\t\tsetVisibleTitle,\n\t});\n\n\tconst sidebarStyle = useSpring({\n\t\topacity: showTOC ? 1 : 0,\n\t\ttransform: showTOC ? 'translateX(0)' : 'translateX(40px)',\n\t\tconfig: config.gentle,\n\t});\n\n\treturn (\n\t\t<div className={`${styles.blog} ${increasedWidthMode ? styles['blog--increased-width'] : ''}`}>\n\t\t\t{jsonLd && (\n\t\t\t\t<script\n\t\t\t\t\ttype=\"application/ld+json\"\n\t\t\t\t\tdangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t<div className={styles['blog__content']}>\n\t\t\t\t{Children.map(children, child => {\n\t\t\t\t\tif (!isValidElement(child)) return child;\n\t\t\t\t\treturn cloneElement(child, {\n\t\t\t\t\t\tref: handleSectionReference,\n\t\t\t\t\t} as RefAttributes<ForwardedReference>);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t\t<animated.div className={styles['blog__sidebar']} style={sidebarStyle}>\n\t\t\t\t<p\n\t\t\t\t\tclassName={`${styles['margin-bottom--3']} ${styles['category__header']}`}\n\t\t\t\t>\n\t\t\t\t\t{title}\n\t\t\t\t</p>\n\t\t\t\t{buildTocTree([...categoryTitles]).map((node, i) => (\n\t\t\t\t\t<TocNodeStatic\n\t\t\t\t\t\tkey={node.id}\n\t\t\t\t\t\tnode={node}\n\t\t\t\t\t\tindex={i}\n\t\t\t\t\t\tvisibleTitle={visibleTitle}\n\t\t\t\t\t\tonClick={handleClickCategoryTitle}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</animated.div>\n\t\t</div>\n\t);\n};\n\nexport default Blog;\n"],"names":["_jsxs","_jsx","TocNodeStatic"],"mappings":"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"}