@chtc/web-components 0.0.0-3 → 0.0.0-31

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 (91) hide show
  1. package/README.md +17 -3
  2. package/dist/Article/Article.d.ts +6 -0
  3. package/dist/Article/Article.d.ts.map +1 -0
  4. package/dist/Article/Article.js +20 -0
  5. package/dist/Article/Article.js.map +1 -0
  6. package/dist/Article/index.d.ts +2 -0
  7. package/dist/Article/index.d.ts.map +1 -0
  8. package/dist/Article/index.js +2 -0
  9. package/dist/Article/index.js.map +1 -0
  10. package/dist/ArticleCard/ArticleCard.d.ts +4 -0
  11. package/dist/ArticleCard/ArticleCard.d.ts.map +1 -0
  12. package/dist/ArticleCard/ArticleCard.js +15 -0
  13. package/dist/ArticleCard/ArticleCard.js.map +1 -0
  14. package/dist/ArticleCard/index.d.ts +2 -0
  15. package/dist/ArticleCard/index.d.ts.map +1 -0
  16. package/dist/ArticleCard/index.js +2 -0
  17. package/dist/ArticleCard/index.js.map +1 -0
  18. package/dist/ColorBar/ColorBar.d.ts +25 -0
  19. package/dist/ColorBar/ColorBar.d.ts.map +1 -0
  20. package/dist/ColorBar/ColorBar.js +72 -0
  21. package/dist/ColorBar/ColorBar.js.map +1 -0
  22. package/dist/ColorBar/index.d.ts +2 -0
  23. package/dist/ColorBar/index.d.ts.map +1 -0
  24. package/dist/ColorBar/index.js +2 -0
  25. package/dist/ColorBar/index.js.map +1 -0
  26. package/dist/HorizontalArticleCard/HorizontalArticleCard.d.ts +4 -0
  27. package/dist/HorizontalArticleCard/HorizontalArticleCard.d.ts.map +1 -0
  28. package/dist/HorizontalArticleCard/HorizontalArticleCard.js +11 -0
  29. package/dist/HorizontalArticleCard/HorizontalArticleCard.js.map +1 -0
  30. package/dist/HorizontalArticleCard/index.d.ts +2 -0
  31. package/dist/HorizontalArticleCard/index.d.ts.map +1 -0
  32. package/dist/HorizontalArticleCard/index.js +2 -0
  33. package/dist/HorizontalArticleCard/index.js.map +1 -0
  34. package/dist/PieChart/PieChart.d.ts +4 -0
  35. package/dist/PieChart/PieChart.d.ts.map +1 -0
  36. package/dist/PieChart/PieChart.js +154 -0
  37. package/dist/PieChart/PieChart.js.map +1 -0
  38. package/dist/PieChart/index.d.ts +2 -0
  39. package/dist/PieChart/index.d.ts.map +1 -0
  40. package/dist/PieChart/index.js +2 -0
  41. package/dist/PieChart/index.js.map +1 -0
  42. package/dist/Table/Table.d.ts +4 -0
  43. package/dist/Table/Table.d.ts.map +1 -0
  44. package/dist/Table/Table.js +76 -0
  45. package/dist/Table/Table.js.map +1 -0
  46. package/dist/Table/index.d.ts +2 -0
  47. package/dist/Table/index.d.ts.map +1 -0
  48. package/dist/Table/index.js +2 -0
  49. package/dist/Table/index.js.map +1 -0
  50. package/dist/TopStyledBlock/TopStyledBlock.d.ts +10 -0
  51. package/dist/TopStyledBlock/TopStyledBlock.d.ts.map +1 -0
  52. package/dist/TopStyledBlock/TopStyledBlock.js +10 -0
  53. package/dist/TopStyledBlock/TopStyledBlock.js.map +1 -0
  54. package/dist/TopStyledBlock/index.d.ts +2 -0
  55. package/dist/TopStyledBlock/index.d.ts.map +1 -0
  56. package/dist/TopStyledBlock/index.js +2 -0
  57. package/dist/TopStyledBlock/index.js.map +1 -0
  58. package/dist/index.d.ts +9 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +9 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/types.d.ts +114 -0
  63. package/dist/types.d.ts.map +1 -0
  64. package/dist/types.js +2 -0
  65. package/dist/types.js.map +1 -0
  66. package/dist/utils/filterArticles.d.ts +4 -0
  67. package/dist/utils/filterArticles.d.ts.map +1 -0
  68. package/dist/utils/filterArticles.js +5 -0
  69. package/dist/utils/filterArticles.js.map +1 -0
  70. package/dist/utils/getArticle.d.ts +4 -0
  71. package/dist/utils/getArticle.d.ts.map +1 -0
  72. package/dist/utils/getArticle.js +43 -0
  73. package/dist/utils/getArticle.js.map +1 -0
  74. package/dist/utils/getArticles.d.ts +36 -0
  75. package/dist/utils/getArticles.d.ts.map +1 -0
  76. package/dist/utils/getArticles.js +44 -0
  77. package/dist/utils/getArticles.js.map +1 -0
  78. package/dist/utils/index.d.ts +4 -0
  79. package/dist/utils/index.d.ts.map +1 -0
  80. package/dist/utils/index.js +4 -0
  81. package/dist/utils/index.js.map +1 -0
  82. package/package.json +26 -17
  83. package/src/index.ts +0 -1
  84. package/src/layout/Header/BurgerMenu.tsx +0 -101
  85. package/src/layout/Header/DesktopMenu.tsx +0 -50
  86. package/src/layout/Header/Header.tsx +0 -54
  87. package/src/layout/Header/HeaderDropdown.tsx +0 -71
  88. package/src/layout/Header/HeaderItem.tsx +0 -110
  89. package/src/layout/Header/ImageIcon.tsx +0 -1
  90. package/src/layout/Header/index.ts +0 -25
  91. package/src/layout/index.ts +0 -1
@@ -1,54 +0,0 @@
1
- 'use client'
2
-
3
- import {useState, useEffect, ReactNode} from "react";
4
- import {Box, Typography} from "@mui/material"
5
- import styles from "../../../app/page.module.css"
6
- import Link from "next/link";
7
-
8
- import {MenuProps} from "./index.d";
9
- import {BurgerMenu, DesktopMenu, ImageIcon} from "./index";
10
-
11
- export interface HeaderProps {
12
- icon: ReactNode,
13
- title: string,
14
- menuItems: MenuProps[]
15
- }
16
-
17
- export const Header = ({icon, title, menuItems}: HeaderProps) => {
18
-
19
- // Scroll watcher for opacity
20
- let [scrolledTop, setScrolledTop] = useState(true);
21
- useEffect(() => {
22
- setScrolledTop(window.scrollY < 50);
23
- addEventListener("scroll", (event) => {
24
- setScrolledTop(window.scrollY < 50);
25
- });
26
- }, [])
27
-
28
- return (
29
- <Box className={`${styles.header} ${scrolledTop ? styles.headerScrolled : ""}`} style={{
30
- display: "flex",
31
- justifyContent: "space-between",
32
- padding: "1rem",
33
- position: "fixed",
34
- zIndex: "1",
35
- width: "100%",
36
- overflow: "hidden"
37
- }}>
38
- <Box display={"flex"} flexGrow={1}>
39
- <Link href={"/"}>
40
- <Box style={{display: "flex"}}>
41
- {icon}
42
- <Typography variant={"h5"} pl={1} my={"auto"}>{title}</Typography>
43
- </Box>
44
- </Link>
45
- <Box sx={{display: {xs: "flex", "md": "none"}}} flexGrow={1}>
46
- <BurgerMenu menuItems={menuItems}/>
47
- </Box>
48
- <Box sx={{display: {xs: "none", "md": "flex"}}} flexGrow={1}>
49
- <DesktopMenu menuItems={menuItems}/>
50
- </Box>
51
- </Box>
52
- </Box>
53
- )
54
- }
@@ -1,71 +0,0 @@
1
- 'use client'
2
-
3
- import React, { ReactNode, useState } from "react";
4
- import {Typography, ListItemButton, ListItemIcon, Collapse} from "@mui/material";
5
- import Link, {LinkProps} from "next/link";
6
- import { ExpandLess, ExpandMore} from "@mui/icons-material";
7
-
8
- interface HeaderLinkProps extends LinkProps {
9
- value: string
10
- icon: ReactNode
11
- target?: string
12
- onClick: () => void
13
- }
14
-
15
- export const HeaderLink = ({ value, href, icon, target, onClick }: HeaderLinkProps) => {
16
- return (
17
- <ListItemButton
18
- onClick={onClick}>
19
- <ListItemIcon sx={{ marginRight: "-0.8em", fontSize:"1.5em", marginLeft: "1em" }}>
20
- {icon}
21
- </ListItemIcon>
22
- <Typography variant="h6">
23
- <Link href={href} target={target}>
24
- {value}
25
- </Link>
26
- </Typography>
27
- </ListItemButton>
28
- )
29
- }
30
-
31
- export const HeaderMainLink = ({ value, href, icon, target, onClick }: HeaderLinkProps) => {
32
- return (
33
- <ListItemButton
34
- onClick={onClick}
35
- >
36
- <ListItemIcon sx={{ marginRight: "-0.8em", fontSize: "2em" }}>
37
- {icon}
38
- </ListItemIcon>
39
- <Typography variant="h5">
40
- <Link href={href} target={target}>
41
- {value}
42
- </Link>
43
- </Typography>
44
- </ListItemButton>
45
- )
46
- }
47
-
48
- export const HeaderDropdown = ({ value, children, icon }: { value: string, children: ReactNode, icon: ReactNode}) => {
49
- const [openState, setOpenState] = useState(false);
50
- const handleClick = () => {
51
- setOpenState(!openState);
52
- };
53
-
54
- return (
55
- <>
56
- <ListItemButton onClick={handleClick}>
57
- <ListItemIcon sx={{ marginRight: "-0.8em", fontSize: "2em" }}>
58
- {icon}
59
- </ListItemIcon>
60
- <Typography variant="h5">
61
- {value}
62
- </Typography>
63
- {openState ? <ExpandLess sx={{ marginLeft: "1em" }} /> : <ExpandMore sx={{ marginLeft: "0.5em" }} />}
64
- </ListItemButton>
65
- <Collapse in={openState} timeout="auto" unmountOnExit>
66
- {children}
67
- </Collapse>
68
- </>
69
- )
70
- }
71
-
@@ -1,110 +0,0 @@
1
- import React, {useRef, useEffect, useState} from "react";
2
- import Link from "next/link";
3
- import {Box, Menu, MenuItem, Tooltip, Typography} from "@mui/material";
4
- import {ArrowDropDown, ArrowDropUp} from "@mui/icons-material";
5
-
6
- import type {HeaderLinkItem, HeaderMenuProps, MenuProps} from "./index";
7
-
8
- export const HeaderItem = ({...props}: HeaderMenuProps | HeaderLinkItem) => {
9
- if("menuItems" in props) {
10
- return <HeaderMenu {...props} />
11
- } else if(props.type == "text") {
12
- return <HeaderLink {...props} />
13
- } else {
14
- return <HeaderIconLink {...props} />
15
- }
16
- }
17
-
18
- const HeaderMenu = ({icon, value, open, setAnchor, menuItems}: HeaderMenuProps) => {
19
-
20
- const anchorRef = useRef<HTMLElement>(null)
21
-
22
- // Effect to perform actions when ref changes
23
- const [refChange, setRefChange] = useState<number>(0); // State to track ref changes
24
- useEffect(() => {
25
- setRefChange(refChange + 1);
26
- }, [anchorRef.current]); // Dependency on refChange state to trigger effect
27
-
28
- return (
29
- <>
30
- <Box style={{display: "flex"}}
31
- ref={anchorRef}
32
- aria-controls={open ? `${value}-menu` : undefined}
33
- aria-haspopup="true"
34
- aria-expanded={open ? 'true' : undefined}
35
- onClick={e => setAnchor(anchorRef.current)}
36
- >
37
- <Typography id={`${value}-header`} display={"flex"} my={"auto"} pl={2} lineHeight={1} variant={"h6"}>
38
- <Box display={"inline"} my={"auto"}>
39
- {value}
40
- </Box>
41
- {open ?
42
- <ArrowDropUp /> :
43
- <ArrowDropDown />
44
- }
45
- </Typography>
46
- </Box>
47
- <Menu
48
- anchorEl={anchorRef.current}
49
- open={open}
50
- onClose={() => setAnchor(null)}
51
- sx={{mt: 2}}
52
- anchorOrigin={{
53
- vertical: 'bottom',
54
- horizontal: 'left',
55
- }}
56
- transformOrigin={{
57
- vertical: 'top',
58
- horizontal: 'left',
59
- }}
60
- >
61
- {menuItems.map((item) => (
62
- <Link key={item.value} {...item} style={{textDecoration: "none", ...item.style}}>
63
- <MenuItem onClick={e => setAnchor(anchorRef.current)}>{item.value}</MenuItem>
64
- </Link>
65
- ))}
66
- </Menu>
67
- </>
68
- )
69
- }
70
-
71
- const HeaderLink = ({...props} : HeaderLinkItem) => {
72
- return (
73
- <Link {...props} style={{display: "flex", textDecoration: "none", ...props.style}} >
74
- <Typography my={"auto"} pl={2} lineHeight={1} variant={"h6"}>
75
- {props.value}
76
- </Typography>
77
- </Link>
78
- )
79
- }
80
-
81
- const HeaderIconLink = ({...props} : HeaderLinkItem) => {
82
- return (
83
- <Link href={props.href} target={props.target}>
84
- <Tooltip title={props.value}>
85
- <Box
86
- sx={{
87
- ":hover": {
88
- transform: "scale(1.15)",
89
- transition: "transform 0.3s",
90
- },
91
- marginTop: "2px"
92
- }}
93
- >
94
- {
95
- React.cloneElement(props.icon, {
96
- fontSize: "large",
97
- sx:{
98
- ":hover": {
99
- transform: "scale(1.15)",
100
- transition: "transform 0.3s",
101
- },
102
- marginTop: "2px"
103
- }
104
- })
105
- }
106
- </Box>
107
- </Tooltip>
108
- </Link>
109
- )
110
- }
@@ -1 +0,0 @@
1
- export const ImageIcon = ({ src, alt }: { src: string, alt: string }) => <img src={src} alt={alt} style={{ width: '24px', height: '24px' }} />;
@@ -1,25 +0,0 @@
1
- import {ReactNode} from "react";
2
- import {LinkProps} from "next/link";
3
-
4
- export * from './Header';
5
- export * from './HeaderItem';
6
- export * from "./BurgerMenu"
7
- export * from "./ImageIcon"
8
- export * from "./DesktopMenu"
9
-
10
- export type MenuProps = Omit<HeaderMenuProps, "setAnchor" | "anchorEl"> | HeaderLinkItem
11
-
12
- interface HeaderMenuProps {
13
- icon: ReactNode
14
- value: string
15
- anchorEl: HTMLElement | null
16
- setAnchor: (x: HTMLElement | null) => void
17
- menuItems: HeaderLinkItem[]
18
- }
19
-
20
- interface HeaderLinkItem extends LinkProps {
21
- icon: ReactNode
22
- value: string
23
- target?: "_self" | "_blank"
24
- type?: "icon" | "text"
25
- }
@@ -1 +0,0 @@
1
- export * from './Header';