@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/esm/index.js CHANGED
@@ -7,5 +7,6 @@ export { default as Mermaid } from './components/Mermaid.js';
7
7
  export { default as BlogLink } from './components/BlogLink.js';
8
8
  export { default as Table } from './components/Table.js';
9
9
  export { default as CheckList } from './components/CheckList.js';
10
+ export { default as Checkbox } from './components/Checkbox.js';
10
11
  export { generateIdForBlogTitle, generateUrlForBlogTitle } from './utils/index.js';
11
12
  //# 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":";;;;;;;;;;"}
@@ -1,8 +1,8 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import styles from '../styles/Blog.module.scss.js';
3
3
 
4
- const BlogStatic = ({ children, jsonLd }) => {
5
- 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 })] }));
4
+ const BlogStatic = ({ children, jsonLd, increasedWidthMode = false }) => {
5
+ 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 })] }));
6
6
  };
7
7
 
8
8
  export { BlogStatic as default };
@@ -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","_jsx"],"mappings":";;;AASA,MAAM,UAAU,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAwB,KAAI;AACjE,IAAA,QACCA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,IAAI,EAAA,QAAA,EAAA,CACzB,MAAM,KACNC,GAAA,CAAA,QAAA,EAAA,EACC,IAAI,EAAC,qBAAqB,EAC1B,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAA,CAC1D,CACF,EACDA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,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","_jsx"],"mappings":";;;AAUA,MAAM,UAAU,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,kBAAkB,GAAG,KAAK,EAAwB,KAAI;IAC7F,QACCA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,EAAG,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,kBAAkB,GAAG,MAAM,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAA,CAAE,EAAA,QAAA,EAAA,CAE3F,MAAM,KACNC,GAAA,CAAA,QAAA,EAAA,EACC,IAAI,EAAC,qBAAqB,EAC1B,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAA,CAC1D,CACF,EACDA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,eAAe,CAAC,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAO,CAAA,EAAA,CACpD;AAER;;;;"}
@@ -1,8 +1,9 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import Checkbox from '../components/Checkbox.js';
2
3
  import styles from '../styles/CheckList.module.scss.js';
3
4
 
4
5
  const CheckListStatic = ({ items, hasMarginUp = false, hasMarginDown = false, }) => {
5
- return (jsx("div", { className: `${styles['check-list']} ${hasMarginUp ? styles['margin-top--1'] : ''} ${hasMarginDown ? styles['margin-bottom--2'] : ''}`, children: items.map((item) => (jsxs("div", { className: styles['check-list__item'], "data-id": item.id, children: [jsx("div", { className: `${styles['check-list__item__input']} ${item.isChecked ? styles['check-list__item__input--checked'] : ''}` }), item.children] }, item.id))) }));
6
+ return (jsx("div", { className: `${styles['check-list']} ${hasMarginUp ? styles['margin-top--1'] : ''} ${hasMarginDown ? styles['margin-bottom--2'] : ''}`, children: items.map((item) => (jsxs("div", { className: styles['check-list__item'], "data-id": item.id, children: [jsx(Checkbox, { isChecked: item.isChecked, onClick: item.onClick }), item.children] }, item.id))) }));
6
7
  };
7
8
 
8
9
  export { CheckListStatic as default };
@@ -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","_jsxs"],"mappings":";;;AAgBA,MAAM,eAAe,GAAG,CAAC,EACxB,KAAK,EACL,WAAW,GAAG,KAAK,EACnB,aAAa,GAAG,KAAK,GACA,KAAI;IACzB,QACCA,aACC,SAAS,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA,CAAA,EAAI,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,CAAA,CAAA,EAC/E,aAAa,GAAG,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAC9C,EAAE,EAAA,QAAA,EAED,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MACfC,IAAA,CAAA,KAAA,EAAA,EAAmB,SAAS,EAAE,MAAM,CAAC,kBAAkB,CAAC,aAAW,IAAI,CAAC,EAAE,EAAA,QAAA,EAAA,CACzED,GAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAE,CAAA,EAAG,MAAM,CAAC,yBAAyB,CAAC,CAAA,CAAA,EAC9C,IAAI,CAAC,SAAS,GAAG,MAAM,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","_jsxs"],"mappings":";;;;AAkBA,MAAM,eAAe,GAAG,CAAC,EACxB,KAAK,EACL,WAAW,GAAG,KAAK,EACnB,aAAa,GAAG,KAAK,GACA,KAAI;AACzB,IAAA,QACCA,GAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAE,CAAA,EAAG,MAAM,CAAC,YAAY,CAAC,CAAA,CAAA,EAAI,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,IAC/E,aAAa,GAAG,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAC9C,CAAA,CAAE,EAAA,QAAA,EAED,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MACfC,IAAA,CAAA,KAAA,EAAA,EAAmB,SAAS,EAAE,MAAM,CAAC,kBAAkB,CAAC,aAAW,IAAI,CAAC,EAAE,EAAA,QAAA,EAAA,CACzED,GAAA,CAAC,QAAQ,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;;;;"}
@@ -1,4 +1,4 @@
1
- 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"};
1
+ 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"};
2
2
 
3
3
  export { styles as default };
4
4
  //# sourceMappingURL=Blog.module.scss.js.map
@@ -4,7 +4,8 @@ interface BlogProperties {
4
4
  children: ReactNode;
5
5
  title?: string;
6
6
  jsonLd?: WithContext<Thing>;
7
+ increasedWidthMode?: boolean;
7
8
  }
8
- declare const Blog: ({ children, title, jsonLd }: BlogProperties) => import("react").JSX.Element;
9
+ declare const Blog: ({ children, title, jsonLd, increasedWidthMode }: BlogProperties) => import("react").JSX.Element;
9
10
  export default Blog;
10
11
  //# sourceMappingURL=Blog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Blog.d.ts","sourceRoot":"","sources":["../../../src/components/Blog.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAKrD,UAAU,cAAc;IACvB,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;CAC5B;AAED,QAAA,MAAM,IAAI,GAAI,6BAAiD,cAAc,gCAM5E,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"Blog.d.ts","sourceRoot":"","sources":["../../../src/components/Blog.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAKrD,UAAU,cAAc;IACvB,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,QAAA,MAAM,IAAI,GAAI,iDAA6E,cAAc,gCAMxG,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -0,0 +1,7 @@
1
+ interface CheckboxProperties {
2
+ isChecked?: boolean;
3
+ onClick?: () => void;
4
+ }
5
+ declare const Checkbox: ({ isChecked, onClick }: CheckboxProperties) => import("react").JSX.Element;
6
+ export default Checkbox;
7
+ //# sourceMappingURL=Checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../src/components/Checkbox.tsx"],"names":[],"mappings":"AAIA,UAAU,kBAAkB;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,QAAA,MAAM,QAAQ,GAAI,wBAAgC,kBAAkB,gCAYnE,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Checkbox.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox.test.d.ts","sourceRoot":"","sources":["../../../src/components/Checkbox.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ declare const WidthModeToggle: () => import("react").JSX.Element | null;
2
+ export default WidthModeToggle;
3
+ //# sourceMappingURL=WidthModeToggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidthModeToggle.d.ts","sourceRoot":"","sources":["../../../src/components/WidthModeToggle.tsx"],"names":[],"mappings":"AAIA,QAAA,MAAM,eAAe,0CAgBpB,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { ReactNode } from 'react';
2
+ interface WidthModeContextValue {
3
+ increasedWidthMode: boolean;
4
+ setIncreasedWidthMode: (value: boolean) => void;
5
+ }
6
+ interface WidthModeProviderProperties {
7
+ children: ReactNode;
8
+ }
9
+ export declare const WidthModeProvider: ({ children }: WidthModeProviderProperties) => import("react").JSX.Element;
10
+ export declare const useWidthMode: () => WidthModeContextValue | null;
11
+ export {};
12
+ //# sourceMappingURL=WidthModeContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidthModeContext.d.ts","sourceRoot":"","sources":["../../../src/context/WidthModeContext.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,UAAU,qBAAqB;IAC9B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,qBAAqB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAChD;AAID,UAAU,2BAA2B;IACpC,QAAQ,EAAE,SAAS,CAAC;CACpB;AAED,eAAO,MAAM,iBAAiB,GAAI,cAAc,2BAA2B,gCAkB1E,CAAC;AAEF,eAAO,MAAM,YAAY,oCAAqC,CAAC"}
@@ -4,11 +4,12 @@ interface BlogProperties {
4
4
  children: ReactNode;
5
5
  title?: string;
6
6
  jsonLd?: WithContext<Thing>;
7
+ increasedWidthMode?: boolean;
7
8
  }
8
9
  export interface ForwardedReference {
9
10
  parentRef: HTMLDivElement;
10
11
  childRefs: ForwardedReference[];
11
12
  }
12
- declare const Blog: ({ children, title, jsonLd, }: BlogProperties) => import("react").JSX.Element;
13
+ declare const Blog: ({ children, title, jsonLd, increasedWidthMode, }: BlogProperties) => import("react").JSX.Element;
13
14
  export default Blog;
14
15
  //# sourceMappingURL=BlogDynamic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlogDynamic.d.ts","sourceRoot":"","sources":["../../../src/dynamicComponents/BlogDynamic.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AASrD,UAAU,cAAc;IACvB,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IAClC,SAAS,EAAE,cAAc,CAAC;IAC1B,SAAS,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAsBD,QAAA,MAAM,IAAI,GAAI,8BAIX,cAAc,gCAuDhB,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"BlogDynamic.d.ts","sourceRoot":"","sources":["../../../src/dynamicComponents/BlogDynamic.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AASrD,UAAU,cAAc;IACvB,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IAClC,SAAS,EAAE,cAAc,CAAC;IAC1B,SAAS,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAsBD,QAAA,MAAM,IAAI,GAAI,kDAKX,cAAc,gCAuDhB,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -7,5 +7,6 @@ export { default as Mermaid } from './components/Mermaid';
7
7
  export { default as BlogLink } from './components/BlogLink';
8
8
  export { default as Table } from './components/Table';
9
9
  export { default as CheckList, type CheckListItem } from './components/CheckList';
10
+ export { default as Checkbox } from './components/Checkbox';
10
11
  export { generateIdForBlogTitle, generateUrlForBlogTitle } from './utils';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGlF,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC"}
@@ -3,7 +3,8 @@ import type { Thing, WithContext } from 'schema-dts';
3
3
  interface BlogStaticProperties {
4
4
  children: ReactNode;
5
5
  jsonLd?: WithContext<Thing>;
6
+ increasedWidthMode?: boolean;
6
7
  }
7
- declare const BlogStatic: ({ children, jsonLd }: BlogStaticProperties) => import("react").JSX.Element;
8
+ declare const BlogStatic: ({ children, jsonLd, increasedWidthMode }: BlogStaticProperties) => import("react").JSX.Element;
8
9
  export default BlogStatic;
9
10
  //# sourceMappingURL=BlogStatic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlogStatic.d.ts","sourceRoot":"","sources":["../../../src/staticComponents/BlogStatic.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGrD,UAAU,oBAAoB;IAC7B,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;CAC5B;AAED,QAAA,MAAM,UAAU,GAAI,sBAAsB,oBAAoB,gCAY7D,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"BlogStatic.d.ts","sourceRoot":"","sources":["../../../src/staticComponents/BlogStatic.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGrD,UAAU,oBAAoB;IAC7B,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,QAAA,MAAM,UAAU,GAAI,0CAAkD,oBAAoB,gCAazF,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -3,6 +3,7 @@ export interface CheckListItem {
3
3
  id: string;
4
4
  children: ReactElement<HTMLAttributes<HTMLParagraphElement>, 'p'>;
5
5
  isChecked?: boolean;
6
+ onClick?: () => void;
6
7
  }
7
8
  interface CheckListProperties {
8
9
  items: CheckListItem[];
@@ -1 +1 @@
1
- {"version":3,"file":"CheckListStatic.d.ts","sourceRoot":"","sources":["../../../src/staticComponents/CheckListStatic.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAI1D,MAAM,WAAW,aAAa;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,oBAAoB,CAAC,EAAE,GAAG,CAAC,CAAC;IAClE,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,mBAAmB;IAC5B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,QAAA,MAAM,eAAe,GAAI,wCAItB,mBAAmB,gCAmBrB,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"CheckListStatic.d.ts","sourceRoot":"","sources":["../../../src/staticComponents/CheckListStatic.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAK1D,MAAM,WAAW,aAAa;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,oBAAoB,CAAC,EAAE,GAAG,CAAC,CAAC;IAClE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,UAAU,mBAAmB;IAC5B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,QAAA,MAAM,eAAe,GAAI,wCAItB,mBAAmB,gCAerB,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=CheckListStatic.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckListStatic.test.d.ts","sourceRoot":"","sources":["../../../src/staticComponents/CheckListStatic.test.tsx"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@san-siva/blogkit",
3
- "version": "1.1.42",
3
+ "version": "1.1.44",
4
4
  "description": "A reusable blog component library for React/Next.js applications with code highlighting, diagrams, and rich content features",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -41,7 +41,7 @@
41
41
  "author": "Santhosh Siva",
42
42
  "license": "MIT",
43
43
  "dependencies": {
44
- "@san-siva/stylekit": "^1.0.13",
44
+ "@san-siva/stylekit": "^1.0.14",
45
45
  "schema-dts": "^1.1.5"
46
46
  },
47
47
  "peerDependencies": {
@@ -11,12 +11,13 @@ interface BlogProperties {
11
11
  children: ReactNode;
12
12
  title?: string;
13
13
  jsonLd?: WithContext<Thing>;
14
+ increasedWidthMode?: boolean;
14
15
  }
15
16
 
16
- const Blog = ({ children, title = 'In this article', jsonLd }: BlogProperties) => {
17
+ const Blog = ({ children, title = 'In this article', jsonLd, increasedWidthMode = false }: BlogProperties) => {
17
18
  return (
18
- <Suspense fallback={<BlogStatic jsonLd={jsonLd}>{children}</BlogStatic>}>
19
- <BlogDynamic title={title} jsonLd={jsonLd}>{children}</BlogDynamic>
19
+ <Suspense fallback={<BlogStatic jsonLd={jsonLd} increasedWidthMode={increasedWidthMode}>{children}</BlogStatic>}>
20
+ <BlogDynamic title={title} jsonLd={jsonLd} increasedWidthMode={increasedWidthMode}>{children}</BlogDynamic>
20
21
  </Suspense>
21
22
  );
22
23
  };
@@ -0,0 +1,32 @@
1
+ import { describe, expect, it, vi } from 'vitest';
2
+ import { renderToStaticMarkup } from 'react-dom/server';
3
+
4
+ import Checkbox from './Checkbox';
5
+
6
+ describe('Checkbox', () => {
7
+ it('renders unchecked by default with no interactive attributes', () => {
8
+ const html = renderToStaticMarkup(<Checkbox />);
9
+ expect(html).not.toContain('role="checkbox"');
10
+ expect(html).not.toContain('tabindex');
11
+ });
12
+
13
+ it('adds role, aria-checked and tabIndex when onClick is provided', () => {
14
+ const html = renderToStaticMarkup(<Checkbox isChecked onClick={() => {}} />);
15
+ expect(html).toContain('role="checkbox"');
16
+ expect(html).toContain('aria-checked="true"');
17
+ expect(html).toContain('tabindex="0"');
18
+ });
19
+
20
+ it('renders a different className when checked vs unchecked', () => {
21
+ const uncheckedHtml = renderToStaticMarkup(<Checkbox isChecked={false} />);
22
+ const checkedHtml = renderToStaticMarkup(<Checkbox isChecked />);
23
+ expect(checkedHtml).not.toBe(uncheckedHtml);
24
+ });
25
+
26
+ it('wires the onClick prop through to the rendered element', () => {
27
+ const onClick = vi.fn();
28
+ const element = Checkbox({ onClick });
29
+ element.props.onClick();
30
+ expect(onClick).toHaveBeenCalledTimes(1);
31
+ });
32
+ });
@@ -0,0 +1,24 @@
1
+ 'use client';
2
+
3
+ import styles from '../styles/CheckList.module.scss';
4
+
5
+ interface CheckboxProperties {
6
+ isChecked?: boolean;
7
+ onClick?: () => void;
8
+ }
9
+
10
+ const Checkbox = ({ isChecked = false, onClick }: CheckboxProperties) => {
11
+ return (
12
+ <div
13
+ className={`${styles['check-list__item__input']} ${
14
+ isChecked ? styles['check-list__item__input--checked'] : ''
15
+ }`}
16
+ onClick={onClick}
17
+ role={onClick ? 'checkbox' : undefined}
18
+ aria-checked={onClick ? isChecked : undefined}
19
+ tabIndex={onClick ? 0 : undefined}
20
+ />
21
+ );
22
+ };
23
+
24
+ export default Checkbox;
@@ -22,6 +22,7 @@ interface BlogProperties {
22
22
  children: ReactNode;
23
23
  title?: string;
24
24
  jsonLd?: WithContext<Thing>;
25
+ increasedWidthMode?: boolean;
25
26
  }
26
27
 
27
28
  export interface ForwardedReference {
@@ -53,6 +54,7 @@ const Blog = ({
53
54
  children,
54
55
  title = 'In this article',
55
56
  jsonLd,
57
+ increasedWidthMode = false,
56
58
  }: BlogProperties) => {
57
59
  const [visibleTitle, setVisibleTitle] = useState<string | null>(null);
58
60
  const [showTOC, setShowTOC] = useState(false);
@@ -75,7 +77,7 @@ const Blog = ({
75
77
  });
76
78
 
77
79
  return (
78
- <div className={styles.blog}>
80
+ <div className={`${styles.blog} ${increasedWidthMode ? styles['blog--increased-width'] : ''}`}>
79
81
  {jsonLd && (
80
82
  <script
81
83
  type="application/ld+json"
package/src/index.ts CHANGED
@@ -8,6 +8,7 @@ export { default as Mermaid } from './components/Mermaid';
8
8
  export { default as BlogLink } from './components/BlogLink';
9
9
  export { default as Table } from './components/Table';
10
10
  export { default as CheckList, type CheckListItem } from './components/CheckList';
11
+ export { default as Checkbox } from './components/Checkbox';
11
12
 
12
13
  // Utilities
13
14
  export { generateIdForBlogTitle, generateUrlForBlogTitle } from './utils';
@@ -5,11 +5,13 @@ import styles from '../styles/Blog.module.scss';
5
5
  interface BlogStaticProperties {
6
6
  children: ReactNode;
7
7
  jsonLd?: WithContext<Thing>;
8
+ increasedWidthMode?: boolean;
8
9
  }
9
10
 
10
- const BlogStatic = ({ children, jsonLd }: BlogStaticProperties) => {
11
+ const BlogStatic = ({ children, jsonLd, increasedWidthMode = false }: BlogStaticProperties) => {
11
12
  return (
12
- <div className={styles.blog}>
13
+ <div className={`${styles.blog} ${increasedWidthMode ? styles['blog--increased-width'] : ''}`}>
14
+
13
15
  {jsonLd && (
14
16
  <script
15
17
  type="application/ld+json"
@@ -0,0 +1,29 @@
1
+ import { describe, expect, it, vi } from 'vitest';
2
+ import { renderToStaticMarkup } from 'react-dom/server';
3
+
4
+ import CheckListStatic from './CheckListStatic';
5
+
6
+ describe('CheckListStatic', () => {
7
+ it('renders one item per entry', () => {
8
+ const html = renderToStaticMarkup(
9
+ <CheckListStatic
10
+ items={[
11
+ { id: 'a', children: <p>A</p> },
12
+ { id: 'b', children: <p>B</p> },
13
+ ]}
14
+ />
15
+ );
16
+ expect(html).toContain('data-id="a"');
17
+ expect(html).toContain('data-id="b"');
18
+ });
19
+
20
+ it("wires each item's onClick through to its Checkbox", () => {
21
+ const onClick = vi.fn();
22
+ const element = CheckListStatic({
23
+ items: [{ id: 'a', children: <p>A</p>, onClick }],
24
+ });
25
+ const checkbox = element.props.children[0].props.children[0];
26
+ checkbox.props.onClick();
27
+ expect(onClick).toHaveBeenCalledTimes(1);
28
+ });
29
+ });
@@ -1,11 +1,13 @@
1
1
  import type { HTMLAttributes, ReactElement } from 'react';
2
2
 
3
+ import Checkbox from '../components/Checkbox';
3
4
  import styles from '../styles/CheckList.module.scss';
4
5
 
5
6
  export interface CheckListItem {
6
7
  id: string;
7
8
  children: ReactElement<HTMLAttributes<HTMLParagraphElement>, 'p'>;
8
9
  isChecked?: boolean;
10
+ onClick?: () => void;
9
11
  }
10
12
 
11
13
  interface CheckListProperties {
@@ -27,11 +29,7 @@ const CheckListStatic = ({
27
29
  >
28
30
  {items.map((item) => (
29
31
  <div key={item.id} className={styles['check-list__item']} data-id={item.id}>
30
- <div
31
- className={`${styles['check-list__item__input']} ${
32
- item.isChecked ? styles['check-list__item__input--checked'] : ''
33
- }`}
34
- />
32
+ <Checkbox isChecked={item.isChecked} onClick={item.onClick} />
35
33
  {item.children}
36
34
  </div>
37
35
  ))}
@@ -1,10 +1,18 @@
1
- @use '@san-siva/stylekit/styles/index.module.scss' as styles;
1
+ @use '@san-siva/stylekit/styles/utils.module.scss' as utils;
2
+ @use '@san-siva/stylekit/styles/index.module.scss' as styles with (
3
+ $max-width--page-contents: utils.rem(1200)
4
+ );
5
+
6
+ $sidebar-width: 22rem;
7
+ $content-width: styles.rem(780);
8
+ $total-width: calc(#{$content-width} + #{styles.space(8)} + #{$sidebar-width});
2
9
 
3
10
  .blog {
4
11
  width: 100%;
5
- max-width: 100%;
12
+ max-width: $total-width;
13
+ margin: 0 auto;
6
14
  display: grid;
7
- grid-template-columns: #{styles.rem(780)} minmax(#{styles.rem(320)}, 1fr);
15
+ grid-template-columns: $content-width $sidebar-width;
8
16
  grid-gap: styles.space(8);
9
17
 
10
18
  &__content {
@@ -23,11 +31,21 @@
23
31
  padding-right: 0;
24
32
  border-radius: styles.$border-radius--1;
25
33
  }
34
+
35
+ &--increased-width {
36
+ max-width: 100%;
37
+ grid-template-columns: minmax(0, 1fr) $sidebar-width;
38
+
39
+ .blog__content {
40
+ max-width: none;
41
+ min-width: 0;
42
+ }
43
+ }
26
44
  }
27
45
 
28
46
  $breakpoint: calc(
29
47
  #{styles.rem(120)} + #{styles.rem(780)} + #{styles.space(8)} +
30
- #{styles.rem(320)} + #{styles.rem(120)}
48
+ #{$sidebar-width} + #{styles.rem(120)}
31
49
  );
32
50
 
33
51
  @media (max-width: $breakpoint) {
@@ -1,5 +1,6 @@
1
1
  declare const styles: {
2
2
  readonly blog: string;
3
+ readonly 'blog--increased-width': string;
3
4
  readonly 'blog__content': string;
4
5
  readonly 'blog__sidebar': string;
5
6
  readonly 'margin-bottom--3': string;