@twreporter/react-typescript-components 0.1.0-beta.10 → 0.1.0-beta.12
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.
- package/lib/button/index.js +1 -1
- package/lib/button/index.mjs +1 -1
- package/lib/{button-DFLYlJJW.js → button-CS2fz7hm.js} +5 -5
- package/lib/{button-DFLYlJJW.js.map → button-CS2fz7hm.js.map} +1 -1
- package/lib/{button-DyUYGG90.mjs → button-KtEMUa_S.mjs} +5 -5
- package/lib/{button-DyUYGG90.mjs.map → button-KtEMUa_S.mjs.map} +1 -1
- package/lib/constants/external-links.d.mts +1 -0
- package/lib/constants/external-links.d.ts +1 -0
- package/lib/constants/external-links.js +1 -1
- package/lib/constants/external-links.mjs +1 -1
- package/lib/{constants-DF_II8Fz.js → constants-BxxTZn8I.js} +3 -2
- package/lib/{constants-DF_II8Fz.js.map → constants-BxxTZn8I.js.map} +1 -1
- package/lib/{constants-BswaTS-y.d.mts → constants-C9Ev_zet.d.mts} +2 -1
- package/lib/{constants-Bz-ufaJ2.js → constants-CBWeKJ-C.js} +2 -2
- package/lib/{constants-Bz-ufaJ2.js.map → constants-CBWeKJ-C.js.map} +1 -1
- package/lib/{constants-DQxcqnYL.d.ts → constants-CBjyeHSl.d.ts} +2 -1
- package/lib/{constants-CQscYQcW.mjs → constants-CeM93YWF.mjs} +3 -2
- package/lib/{constants-CQscYQcW.mjs.map → constants-CeM93YWF.mjs.map} +1 -1
- package/lib/{constants-QF71lY6v.mjs → constants-VHBN0pYQ.mjs} +2 -2
- package/lib/{constants-QF71lY6v.mjs.map → constants-VHBN0pYQ.mjs.map} +1 -1
- package/lib/dropdown-menu/index.js +3 -3
- package/lib/dropdown-menu/index.mjs +3 -3
- package/lib/{dropdown-menu-Cil4RtSK.mjs → dropdown-menu-CrEAe1Td.mjs} +4 -4
- package/lib/dropdown-menu-CrEAe1Td.mjs.map +1 -0
- package/lib/{dropdown-menu-CCtPuYyJ.js → dropdown-menu-DPQvVa7J.js} +4 -4
- package/lib/dropdown-menu-DPQvVa7J.js.map +1 -0
- package/lib/{external-links-2b4M_rcA.mjs → external-links-B-A17Osq.mjs} +3 -2
- package/lib/{external-links-2b4M_rcA.mjs.map → external-links-B-A17Osq.mjs.map} +1 -1
- package/lib/{external-links-SfJjb48j.js → external-links-DCn-uTD-.js} +3 -2
- package/lib/{external-links-SfJjb48j.js.map → external-links-DCn-uTD-.js.map} +1 -1
- package/lib/hamburger-menu/index.js +7 -7
- package/lib/hamburger-menu/index.mjs +7 -7
- package/lib/{hamburger-menu-Bd_wmcAB.js → hamburger-menu-Bi0MDOgC.js} +36 -36
- package/lib/hamburger-menu-Bi0MDOgC.js.map +1 -0
- package/lib/{hamburger-menu-BZ1hA7l5.mjs → hamburger-menu-BxO_YWHd.mjs} +36 -36
- package/lib/hamburger-menu-BxO_YWHd.mjs.map +1 -0
- package/lib/header/index.js +11 -12
- package/lib/header/index.js.map +1 -1
- package/lib/header/index.mjs +11 -12
- package/lib/header/index.mjs.map +1 -1
- package/lib/icons/constants.d.mts +1 -1
- package/lib/icons/constants.d.ts +1 -1
- package/lib/icons/constants.js +1 -1
- package/lib/icons/constants.mjs +1 -1
- package/lib/icons/index.d.mts +1 -1
- package/lib/icons/index.d.ts +1 -1
- package/lib/icons/index.js +2 -2
- package/lib/icons/index.mjs +2 -2
- package/lib/{icons-DguoV48M.mjs → icons-DJMi42DI.mjs} +2 -2
- package/lib/{icons-DguoV48M.mjs.map → icons-DJMi42DI.mjs.map} +1 -1
- package/lib/{icons-DF-7dKxN.js → icons-_Vt_HeKY.js} +2 -2
- package/lib/{icons-DF-7dKxN.js.map → icons-_Vt_HeKY.js.map} +1 -1
- package/lib/logo/index.d.ts +5 -5
- package/lib/logo/index.js +1 -1
- package/lib/logo/index.mjs +1 -1
- package/lib/{logo-CC5oU9Qb.mjs → logo-Caqpr_8x.mjs} +1 -1
- package/lib/{logo-CC5oU9Qb.mjs.map → logo-Caqpr_8x.mjs.map} +1 -1
- package/lib/{logo-D4M-1sGD.js → logo-Dz8Mm84n.js} +1 -1
- package/lib/{logo-D4M-1sGD.js.map → logo-Dz8Mm84n.js.map} +1 -1
- package/lib/styles.css +29 -46
- package/lib/tab-bar/constants.js +3 -3
- package/lib/tab-bar/constants.mjs +3 -3
- package/lib/tab-bar/index.js +5 -5
- package/lib/tab-bar/index.mjs +5 -5
- package/lib/{tab-bar-CBL2tDXk.mjs → tab-bar-BbOB2CDM.mjs} +4 -4
- package/lib/{tab-bar-CBL2tDXk.mjs.map → tab-bar-BbOB2CDM.mjs.map} +1 -1
- package/lib/{tab-bar-ZRrpziiN.js → tab-bar-BmqqhoCY.js} +4 -4
- package/lib/{tab-bar-ZRrpziiN.js.map → tab-bar-BmqqhoCY.js.map} +1 -1
- package/lib/title-bar/index.d.ts +4 -4
- package/lib/title-bar/index.js +1 -1
- package/lib/title-bar/index.mjs +1 -1
- package/package.json +2 -3
- package/lib/dropdown-menu-CCtPuYyJ.js.map +0 -1
- package/lib/dropdown-menu-Cil4RtSK.mjs.map +0 -1
- package/lib/hamburger-menu-BZ1hA7l5.mjs.map +0 -1
- package/lib/hamburger-menu-Bd_wmcAB.js.map +0 -1
|
@@ -22,8 +22,9 @@ declare const MEDIA_TYPE: {
|
|
|
22
22
|
readonly line: "line";
|
|
23
23
|
readonly google: "google";
|
|
24
24
|
readonly plurk: "plurk";
|
|
25
|
+
readonly threads: "threads";
|
|
25
26
|
};
|
|
26
27
|
type MediaType = ValuesOf<typeof MEDIA_TYPE>;
|
|
27
28
|
//#endregion
|
|
28
29
|
export { ARROW_DIRECTION, ArrowDirection, ICON_TYPE, IconType, MEDIA_TYPE, MediaType };
|
|
29
|
-
//# sourceMappingURL=constants-
|
|
30
|
+
//# sourceMappingURL=constants-CBjyeHSl.d.ts.map
|
|
@@ -17,9 +17,10 @@ const MEDIA_TYPE = {
|
|
|
17
17
|
youtube: "youtube",
|
|
18
18
|
line: "line",
|
|
19
19
|
google: "google",
|
|
20
|
-
plurk: "plurk"
|
|
20
|
+
plurk: "plurk",
|
|
21
|
+
threads: "threads"
|
|
21
22
|
};
|
|
22
23
|
|
|
23
24
|
//#endregion
|
|
24
25
|
export { ARROW_DIRECTION, ICON_TYPE, MEDIA_TYPE };
|
|
25
|
-
//# sourceMappingURL=constants-
|
|
26
|
+
//# sourceMappingURL=constants-CeM93YWF.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants-
|
|
1
|
+
{"version":3,"file":"constants-CeM93YWF.mjs","names":[],"sources":["../src/icons/constants.ts"],"sourcesContent":["import type { ValuesOf } from '../types'\n\nexport const ICON_TYPE = {\n mask: 'mask',\n raw: 'raw',\n} as const\n\nexport type IconType = ValuesOf<typeof ICON_TYPE>\n\nexport const ARROW_DIRECTION = {\n right: 'right',\n left: 'left',\n up: 'up',\n down: 'down',\n} as const\n\nexport type ArrowDirection = ValuesOf<typeof ARROW_DIRECTION>\n\nexport const MEDIA_TYPE = {\n facebook: 'facebook',\n instagram: 'instagram',\n medium: 'medium',\n twitter: 'twitter',\n youtube: 'youtube',\n line: 'line',\n google: 'google',\n plurk: 'plurk',\n threads: 'threads',\n} as const\n\nexport type MediaType = ValuesOf<typeof MEDIA_TYPE>\n"],"mappings":";AAEA,MAAa,YAAY;CACvB,MAAM;CACN,KAAK;CACN;AAID,MAAa,kBAAkB;CAC7B,OAAO;CACP,MAAM;CACN,IAAI;CACJ,MAAM;CACP;AAID,MAAa,aAAa;CACxB,UAAU;CACV,WAAW;CACX,QAAQ;CACR,SAAS;CACT,SAAS;CACT,MAAM;CACN,QAAQ;CACR,OAAO;CACP,SAAS;CACV"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { INTERNAL_LINKS } from "./internal-links-BF-974mA.mjs";
|
|
2
|
-
import { Clock, Home, KidStar, Topic } from "./icons-
|
|
2
|
+
import { Clock, Home, KidStar, Topic } from "./icons-DJMi42DI.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/tab-bar/constants.ts
|
|
5
5
|
const TabBarItems = (releaseBranch) => [
|
|
@@ -31,4 +31,4 @@ const TabBarItems = (releaseBranch) => [
|
|
|
31
31
|
|
|
32
32
|
//#endregion
|
|
33
33
|
export { TabBarItems };
|
|
34
|
-
//# sourceMappingURL=constants-
|
|
34
|
+
//# sourceMappingURL=constants-VHBN0pYQ.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants-
|
|
1
|
+
{"version":3,"file":"constants-VHBN0pYQ.mjs","names":["TabBarItems: (releaseBranch: ReleaseBranch) => TabBarItem[]"],"sources":["../src/tab-bar/constants.ts"],"sourcesContent":["import type { ReactElement } from 'react'\nimport { INTERNAL_LINKS } from '../constants/internal-links'\nimport type { LinkTarget } from '../customized-link/type'\n// icons\nimport { Home, Clock, Topic, KidStar } from '../icons'\n// release branch\nimport type { ReleaseBranch } from '../constants/release-branch'\n\ntype TabBarItem = {\n text: string\n link: string\n target: LinkTarget\n icon: ReactElement\n}\nexport const TabBarItems: (releaseBranch: ReleaseBranch) => TabBarItem[] = (\n releaseBranch\n) => [\n {\n text: '首頁',\n link: INTERNAL_LINKS.home,\n target: '_self',\n icon: Home(releaseBranch),\n },\n {\n text: '最新',\n link: INTERNAL_LINKS.latest,\n target: '_self',\n icon: Clock(releaseBranch),\n },\n {\n text: '深度專題',\n link: INTERNAL_LINKS.topics,\n target: '_self',\n icon: Topic(releaseBranch),\n },\n {\n text: '我的閱讀',\n link: INTERNAL_LINKS.myReading.index,\n target: '_self',\n icon: KidStar(releaseBranch),\n },\n]\n"],"mappings":";;;;AAcA,MAAaA,eACX,kBACG;CACH;EACE,MAAM;EACN,MAAM,eAAe;EACrB,QAAQ;EACR,MAAM,KAAK,cAAc;EAC1B;CACD;EACE,MAAM;EACN,MAAM,eAAe;EACrB,QAAQ;EACR,MAAM,MAAM,cAAc;EAC3B;CACD;EACE,MAAM;EACN,MAAM,eAAe;EACrB,QAAQ;EACR,MAAM,MAAM,cAAc;EAC3B;CACD;EACE,MAAM;EACN,MAAM,eAAe,UAAU;EAC/B,QAAQ;EACR,MAAM,QAAQ,cAAc;EAC7B;CACF"}
|
|
@@ -6,9 +6,9 @@ require('../external-link-CEDvlQYo.js');
|
|
|
6
6
|
require('../internal-link-CqTu3Yi5.js');
|
|
7
7
|
require('../customized-link-CK7Xlgdt.js');
|
|
8
8
|
require('../context-Bvr0Qj2x.js');
|
|
9
|
-
require('../constants-
|
|
10
|
-
require('../icons-
|
|
9
|
+
require('../constants-BxxTZn8I.js');
|
|
10
|
+
require('../icons-_Vt_HeKY.js');
|
|
11
11
|
require('../constants-2TRY2zTK.js');
|
|
12
|
-
const require_dropdown_menu = require('../dropdown-menu-
|
|
12
|
+
const require_dropdown_menu = require('../dropdown-menu-DPQvVa7J.js');
|
|
13
13
|
|
|
14
14
|
exports.DropdownMenu = require_dropdown_menu.DropdownMenu;
|
|
@@ -6,9 +6,9 @@ import "../release-branch-DNCD1uH_.mjs";
|
|
|
6
6
|
import "../external-link-Cx9S31Ye.mjs";
|
|
7
7
|
import "../customized-link-BkuKVCKQ.mjs";
|
|
8
8
|
import "../context-BCesW3fW.mjs";
|
|
9
|
-
import "../constants-
|
|
10
|
-
import "../icons-
|
|
9
|
+
import "../constants-CeM93YWF.mjs";
|
|
10
|
+
import "../icons-DJMi42DI.mjs";
|
|
11
11
|
import "../constants-BqeEbkVD.mjs";
|
|
12
|
-
import { DropdownMenu } from "../dropdown-menu-
|
|
12
|
+
import { DropdownMenu } from "../dropdown-menu-CrEAe1Td.mjs";
|
|
13
13
|
|
|
14
14
|
export { DropdownMenu };
|
|
@@ -3,7 +3,7 @@ import { P1, P2 } from "./paragraph-BWXQNQtX.mjs";
|
|
|
3
3
|
import { THEME } from "./theme-BG6yZVj-.mjs";
|
|
4
4
|
import { external_link_default } from "./external-link-Cx9S31Ye.mjs";
|
|
5
5
|
import { HeaderContext } from "./context-BCesW3fW.mjs";
|
|
6
|
-
import { Arrow } from "./icons-
|
|
6
|
+
import { Arrow } from "./icons-DJMi42DI.mjs";
|
|
7
7
|
import { LOGO_SYMBOL_TYPE } from "./constants-BqeEbkVD.mjs";
|
|
8
8
|
import { useContext } from "react";
|
|
9
9
|
import clsx from "clsx";
|
|
@@ -14,11 +14,11 @@ const selectHamburgerMenuTheme = (theme) => {
|
|
|
14
14
|
switch (theme) {
|
|
15
15
|
case THEME.photography: return {
|
|
16
16
|
bgColor: "bg-photo-dark",
|
|
17
|
-
scrollBarColor: "scrollbar-thumb-opacity-white-08"
|
|
17
|
+
scrollBarColor: "[&::-webkit-scrollbar-thumb]:bg-opacity-white-08"
|
|
18
18
|
};
|
|
19
19
|
default: return {
|
|
20
20
|
bgColor: "bg-gray-white",
|
|
21
|
-
scrollBarColor: "scrollbar-thumb-opacity-black-02"
|
|
21
|
+
scrollBarColor: "[&::-webkit-scrollbar-thumb]:bg-opacity-black-02"
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
24
|
};
|
|
@@ -114,4 +114,4 @@ const DropdownMenu = ({ text = "", isActive = false, dropdownItems = [] }) => {
|
|
|
114
114
|
|
|
115
115
|
//#endregion
|
|
116
116
|
export { DropdownMenu, selectHamburgerFooterTheme, selectHamburgerItemTheme, selectHamburgerMenuTheme, selectLogoType };
|
|
117
|
-
//# sourceMappingURL=dropdown-menu-
|
|
117
|
+
//# sourceMappingURL=dropdown-menu-CrEAe1Td.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dropdown-menu-CrEAe1Td.mjs","names":["DropdownMenuItem: FC<{\n label: string\n}>","DropdownMenu: FC<DropdownMenuProps>","ExternalLink","InternalLink","DropdownMenuItem"],"sources":["../src/hamburger-menu/utils/theme.ts","../src/dropdown-menu/dropdown-menu-item/index.tsx","../src/dropdown-menu/index.tsx"],"sourcesContent":["import { THEME, type Theme } from '../../constants/theme'\n// logo\nimport { LOGO_SYMBOL_TYPE } from '../../logo/constants'\n\nexport const selectHamburgerMenuTheme = (theme: Theme) => {\n switch (theme) {\n case THEME.photography:\n return {\n bgColor: 'bg-photo-dark',\n scrollBarColor: '[&::-webkit-scrollbar-thumb]:bg-opacity-white-08',\n }\n default:\n return {\n bgColor: 'bg-gray-white',\n scrollBarColor: '[&::-webkit-scrollbar-thumb]:bg-opacity-black-02',\n }\n }\n}\n\nexport const selectLogoType = (theme: Theme) => {\n switch (theme) {\n case THEME.photography:\n case THEME.transparent:\n return LOGO_SYMBOL_TYPE.white\n default:\n return LOGO_SYMBOL_TYPE.default\n }\n}\n\nexport const selectHamburgerItemTheme = (theme: Theme, active = false) => {\n switch (theme) {\n case THEME.photography:\n return {\n color: active ? 'text-supportive-pastel' : 'text-gray-white',\n svgBgColor: active\n ? '[&>svg]:bg-supportive-pastel'\n : '[&>svg]:bg-gray-white',\n hoverBgColor: 'hover:bg-opacity-white-02',\n activeBgColor: 'active:bg-opacity-white-05',\n }\n default:\n return {\n color: active ? 'text-brand-heavy' : 'text-gray-800',\n svgBgColor: active ? '[&>svg]:bg-brand-heavy' : '[&>svg]:bg-gray-800',\n hoverBgColor: 'hover:bg-gray-100',\n activeBgColor: 'active:bg-gray-200',\n }\n }\n}\n\nexport const selectHamburgerFooterTheme = (theme: Theme) => {\n switch (theme) {\n case THEME.photography:\n return {\n color: 'text-gray-400',\n hoverColor: 'hover:text-gray-400',\n hoverBgColor: 'hover:bg-opacity-white-02',\n svgHoverBgColor: 'hover:[&>svg]:bg-gray-400',\n svgBgColor: '[&>svg]:bg-gray-400',\n activeColor: 'active:text-gray-400',\n activeBgColor: 'active:bg-opacity-white-05',\n svgActiveBgColor: 'active:[&>svg]:bg-gray-400',\n }\n default:\n return {\n color: 'text-gray-600',\n hoverColor: 'hover:text-gray-800',\n hoverBgColor: 'hover:bg-gray-100',\n svgHoverBgColor: 'hover:[&>svg]:bg-gray-800',\n svgBgColor: '[&>svg]:bg-gray-600',\n activeColor: 'active:text-gray-800',\n activeBgColor: 'active:bg-gray-200',\n svgActiveBgColor: 'active:[&>svg]:bg-gray-800',\n }\n }\n}\n","import { useContext, type FC } from 'react'\nimport clsx from 'clsx'\n// context\nimport { HeaderContext } from '../../header/context'\n// theme\nimport { selectHamburgerItemTheme } from '../../hamburger-menu/utils/theme'\n// text\nimport { P2 } from '../../text/paragraph'\nconst DropdownMenuItem: FC<{\n label: string\n}> = ({ label }) => {\n const { theme } = useContext(HeaderContext)\n const { color, hoverBgColor, activeBgColor } = selectHamburgerItemTheme(theme)\n return (\n <div\n className={clsx(\n 'py-[8px] pl-[48px] pr-[32px] cursor-pointer',\n color,\n hoverBgColor,\n activeBgColor\n )}\n >\n <P2 text={label} weight={P2.Weight.bold} />\n </div>\n )\n}\n\nexport default DropdownMenuItem\n","import { useContext, type FC } from 'react'\nimport clsx from 'clsx'\n// context\nimport { HeaderContext } from '../header/context'\n// text\nimport { P1 } from '../text/paragraph'\n// icons\nimport { Arrow } from '../icons'\n// theme\nimport { selectHamburgerItemTheme } from '../hamburger-menu/utils/theme'\n// components\nimport DropdownMenuItem from './dropdown-menu-item'\n// link\nimport { ExternalLink, InternalLink } from '../customized-link'\nimport type { LinkTarget } from '../customized-link/type'\n\ntype DropdownMenuProps = {\n text?: string\n isActive?: boolean\n dropdownItems: { label: string; to: string; target: LinkTarget }[]\n}\nconst DropdownMenu: FC<DropdownMenuProps> = ({\n text = '',\n isActive = false,\n dropdownItems = [],\n}) => {\n const { theme, releaseBranch, isLinkExternal } = useContext(HeaderContext)\n const { color, svgBgColor, hoverBgColor, activeBgColor } =\n selectHamburgerItemTheme(theme, isActive)\n const LinkComponent = isLinkExternal ? ExternalLink : InternalLink\n return (\n <>\n <div\n className={clsx(\n 'flex items-center justify-between cursor-pointer py-[8px] px-[32px]',\n '[&>svg]:transition-all [&>svg]:duration-300',\n svgBgColor,\n color,\n hoverBgColor,\n isActive ? `[&>svg]:-rotate-[180deg]` : '[&>svg]:rotate-[0deg]',\n isActive ? activeBgColor : ''\n )}\n >\n <P1 text={text} weight={P1.Weight.bold} />\n <Arrow direction=\"down\" releaseBranch={releaseBranch} />\n </div>\n <div\n className={clsx(\n 'overflow-hidden transition-all duration-300 ease-in-out',\n isActive ? 'max-h-[300px]' : 'max-h-0'\n )}\n >\n {dropdownItems.map((itme) => {\n return (\n <LinkComponent to={itme.to} target={itme.target} key={itme.label}>\n <DropdownMenuItem label={itme.label} />\n </LinkComponent>\n )\n })}\n </div>\n </>\n )\n}\n\nexport { DropdownMenu }\n"],"mappings":";;;;;;;;;;;;AAIA,MAAa,4BAA4B,UAAiB;AACxD,SAAQ,OAAR;EACE,KAAK,MAAM,YACT,QAAO;GACL,SAAS;GACT,gBAAgB;GACjB;EACH,QACE,QAAO;GACL,SAAS;GACT,gBAAgB;GACjB;;;AAIP,MAAa,kBAAkB,UAAiB;AAC9C,SAAQ,OAAR;EACE,KAAK,MAAM;EACX,KAAK,MAAM,YACT,QAAO,iBAAiB;EAC1B,QACE,QAAO,iBAAiB;;;AAI9B,MAAa,4BAA4B,OAAc,SAAS,UAAU;AACxE,SAAQ,OAAR;EACE,KAAK,MAAM,YACT,QAAO;GACL,OAAO,SAAS,2BAA2B;GAC3C,YAAY,SACR,iCACA;GACJ,cAAc;GACd,eAAe;GAChB;EACH,QACE,QAAO;GACL,OAAO,SAAS,qBAAqB;GACrC,YAAY,SAAS,2BAA2B;GAChD,cAAc;GACd,eAAe;GAChB;;;AAIP,MAAa,8BAA8B,UAAiB;AAC1D,SAAQ,OAAR;EACE,KAAK,MAAM,YACT,QAAO;GACL,OAAO;GACP,YAAY;GACZ,cAAc;GACd,iBAAiB;GACjB,YAAY;GACZ,aAAa;GACb,eAAe;GACf,kBAAkB;GACnB;EACH,QACE,QAAO;GACL,OAAO;GACP,YAAY;GACZ,cAAc;GACd,iBAAiB;GACjB,YAAY;GACZ,aAAa;GACb,eAAe;GACf,kBAAkB;GACnB;;;;;;ACjEP,MAAMA,oBAEA,EAAE,YAAY;CAClB,MAAM,EAAE,UAAU,WAAW,cAAc;CAC3C,MAAM,EAAE,OAAO,cAAc,kBAAkB,yBAAyB,MAAM;AAC9E,QACE,oBAAC;EACC,WAAW,KACT,+CACA,OACA,cACA,cACD;YAED,oBAAC;GAAG,MAAM;GAAO,QAAQ,GAAG,OAAO;IAAQ;GACvC;;AAIV,iCAAe;;;;ACNf,MAAMC,gBAAuC,EAC3C,OAAO,IACP,WAAW,OACX,gBAAgB,EAAE,OACd;CACJ,MAAM,EAAE,OAAO,eAAe,mBAAmB,WAAW,cAAc;CAC1E,MAAM,EAAE,OAAO,YAAY,cAAc,kBACvC,yBAAyB,OAAO,SAAS;CAC3C,MAAM,gBAAgB,iBAAiBC,wBAAeC;AACtD,QACE,4CACE,qBAAC;EACC,WAAW,KACT,uEACA,+CACA,YACA,OACA,cACA,WAAW,6BAA6B,yBACxC,WAAW,gBAAgB,GAC5B;aAED,oBAAC;GAAS;GAAM,QAAQ,GAAG,OAAO;IAAQ,EAC1C,oBAAC;GAAM,WAAU;GAAsB;IAAiB;GACpD,EACN,oBAAC;EACC,WAAW,KACT,2DACA,WAAW,kBAAkB,UAC9B;YAEA,cAAc,KAAK,SAAS;AAC3B,UACE,oBAAC;IAAc,IAAI,KAAK;IAAI,QAAQ,KAAK;cACvC,oBAACC,8BAAiB,OAAO,KAAK,QAAS;MADa,KAAK,MAE3C;IAElB;GACE,IACL"}
|
|
@@ -4,7 +4,7 @@ const require_theme = require('./theme-DDBlIbeS.js');
|
|
|
4
4
|
const require_external_link = require('./external-link-CEDvlQYo.js');
|
|
5
5
|
const require_internal_link = require('./internal-link-CqTu3Yi5.js');
|
|
6
6
|
const require_context = require('./context-Bvr0Qj2x.js');
|
|
7
|
-
const require_icons = require('./icons-
|
|
7
|
+
const require_icons = require('./icons-_Vt_HeKY.js');
|
|
8
8
|
const require_constants = require('./constants-2TRY2zTK.js');
|
|
9
9
|
let react = require("react");
|
|
10
10
|
react = require_chunk.__toESM(react);
|
|
@@ -18,11 +18,11 @@ const selectHamburgerMenuTheme = (theme) => {
|
|
|
18
18
|
switch (theme) {
|
|
19
19
|
case require_theme.THEME.photography: return {
|
|
20
20
|
bgColor: "bg-photo-dark",
|
|
21
|
-
scrollBarColor: "scrollbar-thumb-opacity-white-08"
|
|
21
|
+
scrollBarColor: "[&::-webkit-scrollbar-thumb]:bg-opacity-white-08"
|
|
22
22
|
};
|
|
23
23
|
default: return {
|
|
24
24
|
bgColor: "bg-gray-white",
|
|
25
|
-
scrollBarColor: "scrollbar-thumb-opacity-black-02"
|
|
25
|
+
scrollBarColor: "[&::-webkit-scrollbar-thumb]:bg-opacity-black-02"
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
28
|
};
|
|
@@ -147,4 +147,4 @@ Object.defineProperty(exports, 'selectLogoType', {
|
|
|
147
147
|
return selectLogoType;
|
|
148
148
|
}
|
|
149
149
|
});
|
|
150
|
-
//# sourceMappingURL=dropdown-menu-
|
|
150
|
+
//# sourceMappingURL=dropdown-menu-DPQvVa7J.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dropdown-menu-DPQvVa7J.js","names":["THEME","LOGO_SYMBOL_TYPE","DropdownMenuItem: FC<{\n label: string\n}>","HeaderContext","P2","DropdownMenu: FC<DropdownMenuProps>","HeaderContext","ExternalLink","InternalLink","P1","Arrow","DropdownMenuItem"],"sources":["../src/hamburger-menu/utils/theme.ts","../src/dropdown-menu/dropdown-menu-item/index.tsx","../src/dropdown-menu/index.tsx"],"sourcesContent":["import { THEME, type Theme } from '../../constants/theme'\n// logo\nimport { LOGO_SYMBOL_TYPE } from '../../logo/constants'\n\nexport const selectHamburgerMenuTheme = (theme: Theme) => {\n switch (theme) {\n case THEME.photography:\n return {\n bgColor: 'bg-photo-dark',\n scrollBarColor: '[&::-webkit-scrollbar-thumb]:bg-opacity-white-08',\n }\n default:\n return {\n bgColor: 'bg-gray-white',\n scrollBarColor: '[&::-webkit-scrollbar-thumb]:bg-opacity-black-02',\n }\n }\n}\n\nexport const selectLogoType = (theme: Theme) => {\n switch (theme) {\n case THEME.photography:\n case THEME.transparent:\n return LOGO_SYMBOL_TYPE.white\n default:\n return LOGO_SYMBOL_TYPE.default\n }\n}\n\nexport const selectHamburgerItemTheme = (theme: Theme, active = false) => {\n switch (theme) {\n case THEME.photography:\n return {\n color: active ? 'text-supportive-pastel' : 'text-gray-white',\n svgBgColor: active\n ? '[&>svg]:bg-supportive-pastel'\n : '[&>svg]:bg-gray-white',\n hoverBgColor: 'hover:bg-opacity-white-02',\n activeBgColor: 'active:bg-opacity-white-05',\n }\n default:\n return {\n color: active ? 'text-brand-heavy' : 'text-gray-800',\n svgBgColor: active ? '[&>svg]:bg-brand-heavy' : '[&>svg]:bg-gray-800',\n hoverBgColor: 'hover:bg-gray-100',\n activeBgColor: 'active:bg-gray-200',\n }\n }\n}\n\nexport const selectHamburgerFooterTheme = (theme: Theme) => {\n switch (theme) {\n case THEME.photography:\n return {\n color: 'text-gray-400',\n hoverColor: 'hover:text-gray-400',\n hoverBgColor: 'hover:bg-opacity-white-02',\n svgHoverBgColor: 'hover:[&>svg]:bg-gray-400',\n svgBgColor: '[&>svg]:bg-gray-400',\n activeColor: 'active:text-gray-400',\n activeBgColor: 'active:bg-opacity-white-05',\n svgActiveBgColor: 'active:[&>svg]:bg-gray-400',\n }\n default:\n return {\n color: 'text-gray-600',\n hoverColor: 'hover:text-gray-800',\n hoverBgColor: 'hover:bg-gray-100',\n svgHoverBgColor: 'hover:[&>svg]:bg-gray-800',\n svgBgColor: '[&>svg]:bg-gray-600',\n activeColor: 'active:text-gray-800',\n activeBgColor: 'active:bg-gray-200',\n svgActiveBgColor: 'active:[&>svg]:bg-gray-800',\n }\n }\n}\n","import { useContext, type FC } from 'react'\nimport clsx from 'clsx'\n// context\nimport { HeaderContext } from '../../header/context'\n// theme\nimport { selectHamburgerItemTheme } from '../../hamburger-menu/utils/theme'\n// text\nimport { P2 } from '../../text/paragraph'\nconst DropdownMenuItem: FC<{\n label: string\n}> = ({ label }) => {\n const { theme } = useContext(HeaderContext)\n const { color, hoverBgColor, activeBgColor } = selectHamburgerItemTheme(theme)\n return (\n <div\n className={clsx(\n 'py-[8px] pl-[48px] pr-[32px] cursor-pointer',\n color,\n hoverBgColor,\n activeBgColor\n )}\n >\n <P2 text={label} weight={P2.Weight.bold} />\n </div>\n )\n}\n\nexport default DropdownMenuItem\n","import { useContext, type FC } from 'react'\nimport clsx from 'clsx'\n// context\nimport { HeaderContext } from '../header/context'\n// text\nimport { P1 } from '../text/paragraph'\n// icons\nimport { Arrow } from '../icons'\n// theme\nimport { selectHamburgerItemTheme } from '../hamburger-menu/utils/theme'\n// components\nimport DropdownMenuItem from './dropdown-menu-item'\n// link\nimport { ExternalLink, InternalLink } from '../customized-link'\nimport type { LinkTarget } from '../customized-link/type'\n\ntype DropdownMenuProps = {\n text?: string\n isActive?: boolean\n dropdownItems: { label: string; to: string; target: LinkTarget }[]\n}\nconst DropdownMenu: FC<DropdownMenuProps> = ({\n text = '',\n isActive = false,\n dropdownItems = [],\n}) => {\n const { theme, releaseBranch, isLinkExternal } = useContext(HeaderContext)\n const { color, svgBgColor, hoverBgColor, activeBgColor } =\n selectHamburgerItemTheme(theme, isActive)\n const LinkComponent = isLinkExternal ? ExternalLink : InternalLink\n return (\n <>\n <div\n className={clsx(\n 'flex items-center justify-between cursor-pointer py-[8px] px-[32px]',\n '[&>svg]:transition-all [&>svg]:duration-300',\n svgBgColor,\n color,\n hoverBgColor,\n isActive ? `[&>svg]:-rotate-[180deg]` : '[&>svg]:rotate-[0deg]',\n isActive ? activeBgColor : ''\n )}\n >\n <P1 text={text} weight={P1.Weight.bold} />\n <Arrow direction=\"down\" releaseBranch={releaseBranch} />\n </div>\n <div\n className={clsx(\n 'overflow-hidden transition-all duration-300 ease-in-out',\n isActive ? 'max-h-[300px]' : 'max-h-0'\n )}\n >\n {dropdownItems.map((itme) => {\n return (\n <LinkComponent to={itme.to} target={itme.target} key={itme.label}>\n <DropdownMenuItem label={itme.label} />\n </LinkComponent>\n )\n })}\n </div>\n </>\n )\n}\n\nexport { DropdownMenu }\n"],"mappings":";;;;;;;;;;;;;;;;AAIA,MAAa,4BAA4B,UAAiB;AACxD,SAAQ,OAAR;EACE,KAAKA,oBAAM,YACT,QAAO;GACL,SAAS;GACT,gBAAgB;GACjB;EACH,QACE,QAAO;GACL,SAAS;GACT,gBAAgB;GACjB;;;AAIP,MAAa,kBAAkB,UAAiB;AAC9C,SAAQ,OAAR;EACE,KAAKA,oBAAM;EACX,KAAKA,oBAAM,YACT,QAAOC,mCAAiB;EAC1B,QACE,QAAOA,mCAAiB;;;AAI9B,MAAa,4BAA4B,OAAc,SAAS,UAAU;AACxE,SAAQ,OAAR;EACE,KAAKD,oBAAM,YACT,QAAO;GACL,OAAO,SAAS,2BAA2B;GAC3C,YAAY,SACR,iCACA;GACJ,cAAc;GACd,eAAe;GAChB;EACH,QACE,QAAO;GACL,OAAO,SAAS,qBAAqB;GACrC,YAAY,SAAS,2BAA2B;GAChD,cAAc;GACd,eAAe;GAChB;;;AAIP,MAAa,8BAA8B,UAAiB;AAC1D,SAAQ,OAAR;EACE,KAAKA,oBAAM,YACT,QAAO;GACL,OAAO;GACP,YAAY;GACZ,cAAc;GACd,iBAAiB;GACjB,YAAY;GACZ,aAAa;GACb,eAAe;GACf,kBAAkB;GACnB;EACH,QACE,QAAO;GACL,OAAO;GACP,YAAY;GACZ,cAAc;GACd,iBAAiB;GACjB,YAAY;GACZ,aAAa;GACb,eAAe;GACf,kBAAkB;GACnB;;;;;;ACjEP,MAAME,oBAEA,EAAE,YAAY;CAClB,MAAM,EAAE,gCAAqBC,8BAAc;CAC3C,MAAM,EAAE,OAAO,cAAc,kBAAkB,yBAAyB,MAAM;AAC9E,QACE,2CAAC;EACC,6BACE,+CACA,OACA,cACA,cACD;YAED,2CAACC;GAAG,MAAM;GAAO,QAAQA,qBAAG,OAAO;IAAQ;GACvC;;AAIV,iCAAe;;;;ACNf,MAAMC,gBAAuC,EAC3C,OAAO,IACP,WAAW,OACX,gBAAgB,EAAE,OACd;CACJ,MAAM,EAAE,OAAO,eAAe,yCAA8BC,8BAAc;CAC1E,MAAM,EAAE,OAAO,YAAY,cAAc,kBACvC,yBAAyB,OAAO,SAAS;CAC3C,MAAM,gBAAgB,iBAAiBC,8CAAeC;AACtD,QACE,qFACE,4CAAC;EACC,6BACE,uEACA,+CACA,YACA,OACA,cACA,WAAW,6BAA6B,yBACxC,WAAW,gBAAgB,GAC5B;aAED,2CAACC;GAAS;GAAM,QAAQA,qBAAG,OAAO;IAAQ,EAC1C,2CAACC;GAAM,WAAU;GAAsB;IAAiB;GACpD,EACN,2CAAC;EACC,6BACE,2DACA,WAAW,kBAAkB,UAC9B;YAEA,cAAc,KAAK,SAAS;AAC3B,UACE,2CAAC;IAAc,IAAI,KAAK;IAAI,QAAQ,KAAK;cACvC,2CAACC,8BAAiB,OAAO,KAAK,QAAS;MADa,KAAK,MAE3C;IAElB;GACE,IACL"}
|
|
@@ -9,9 +9,10 @@ const EXTERNAL_LINKS = {
|
|
|
9
9
|
youtube: "https://www.youtube.com/c/TwreporterOrg",
|
|
10
10
|
kidsReporter: "https://kids.twreporter.org/",
|
|
11
11
|
publicationAndMerchandise: "https://twreporter.waca.ec/",
|
|
12
|
-
lawmaker: "https://lawmaker.twreporter.org/"
|
|
12
|
+
lawmaker: "https://lawmaker.twreporter.org/",
|
|
13
|
+
threads: "https://www.threads.com/@twreporter"
|
|
13
14
|
};
|
|
14
15
|
|
|
15
16
|
//#endregion
|
|
16
17
|
export { EXTERNAL_LINKS };
|
|
17
|
-
//# sourceMappingURL=external-links-
|
|
18
|
+
//# sourceMappingURL=external-links-B-A17Osq.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-links-
|
|
1
|
+
{"version":3,"file":"external-links-B-A17Osq.mjs","names":[],"sources":["../src/constants/external-links.ts"],"sourcesContent":["export const EXTERNAL_LINKS = {\n monthlyDonation: 'https://www.twreporter.org/donation/period',\n onceDonation: 'https://www.twreporter.org/donation/one-time',\n openLab: 'https://medium.com/twreporter',\n facebook: 'https://www.facebook.com/twreporter/',\n instagram: 'https://www.instagram.com/twreporter/',\n twitter: 'https://twitter.com/tw_reporter_org',\n youtube: 'https://www.youtube.com/c/TwreporterOrg',\n kidsReporter: 'https://kids.twreporter.org/',\n publicationAndMerchandise: 'https://twreporter.waca.ec/',\n lawmaker: 'https://lawmaker.twreporter.org/',\n threads: 'https://www.threads.com/@twreporter',\n} as const\n"],"mappings":";AAAA,MAAa,iBAAiB;CAC5B,iBAAiB;CACjB,cAAc;CACd,SAAS;CACT,UAAU;CACV,WAAW;CACX,SAAS;CACT,SAAS;CACT,cAAc;CACd,2BAA2B;CAC3B,UAAU;CACV,SAAS;CACV"}
|
|
@@ -10,7 +10,8 @@ const EXTERNAL_LINKS = {
|
|
|
10
10
|
youtube: "https://www.youtube.com/c/TwreporterOrg",
|
|
11
11
|
kidsReporter: "https://kids.twreporter.org/",
|
|
12
12
|
publicationAndMerchandise: "https://twreporter.waca.ec/",
|
|
13
|
-
lawmaker: "https://lawmaker.twreporter.org/"
|
|
13
|
+
lawmaker: "https://lawmaker.twreporter.org/",
|
|
14
|
+
threads: "https://www.threads.com/@twreporter"
|
|
14
15
|
};
|
|
15
16
|
|
|
16
17
|
//#endregion
|
|
@@ -20,4 +21,4 @@ Object.defineProperty(exports, 'EXTERNAL_LINKS', {
|
|
|
20
21
|
return EXTERNAL_LINKS;
|
|
21
22
|
}
|
|
22
23
|
});
|
|
23
|
-
//# sourceMappingURL=external-links-
|
|
24
|
+
//# sourceMappingURL=external-links-DCn-uTD-.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-links-
|
|
1
|
+
{"version":3,"file":"external-links-DCn-uTD-.js","names":[],"sources":["../src/constants/external-links.ts"],"sourcesContent":["export const EXTERNAL_LINKS = {\n monthlyDonation: 'https://www.twreporter.org/donation/period',\n onceDonation: 'https://www.twreporter.org/donation/one-time',\n openLab: 'https://medium.com/twreporter',\n facebook: 'https://www.facebook.com/twreporter/',\n instagram: 'https://www.instagram.com/twreporter/',\n twitter: 'https://twitter.com/tw_reporter_org',\n youtube: 'https://www.youtube.com/c/TwreporterOrg',\n kidsReporter: 'https://kids.twreporter.org/',\n publicationAndMerchandise: 'https://twreporter.waca.ec/',\n lawmaker: 'https://lawmaker.twreporter.org/',\n threads: 'https://www.threads.com/@twreporter',\n} as const\n"],"mappings":";;AAAA,MAAa,iBAAiB;CAC5B,iBAAiB;CACjB,cAAc;CACd,SAAS;CACT,UAAU;CACV,WAAW;CACX,SAAS;CACT,SAAS;CACT,cAAc;CACd,2BAA2B;CAC3B,UAAU;CACV,SAAS;CACV"}
|
|
@@ -2,8 +2,8 @@ require('../constants-BmxSMOOn.js');
|
|
|
2
2
|
require('../constants-K2ObjToq.js');
|
|
3
3
|
require('../paragraph-CJvb0_cM.js');
|
|
4
4
|
require('../theme-DDBlIbeS.js');
|
|
5
|
-
require('../button-
|
|
6
|
-
require('../external-links-
|
|
5
|
+
require('../button-CS2fz7hm.js');
|
|
6
|
+
require('../external-links-DCn-uTD-.js');
|
|
7
7
|
require('../internal-links-CBkMU8cY.js');
|
|
8
8
|
require('../release-branch-CRZV4Ivz.js');
|
|
9
9
|
require('../external-link-CEDvlQYo.js');
|
|
@@ -12,11 +12,11 @@ require('../customized-link-CK7Xlgdt.js');
|
|
|
12
12
|
require('../constants-DRyQ6AuU.js');
|
|
13
13
|
require('../divider-b3Shh7FV.js');
|
|
14
14
|
require('../context-Bvr0Qj2x.js');
|
|
15
|
-
require('../constants-
|
|
16
|
-
require('../icons-
|
|
15
|
+
require('../constants-BxxTZn8I.js');
|
|
16
|
+
require('../icons-_Vt_HeKY.js');
|
|
17
17
|
require('../constants-2TRY2zTK.js');
|
|
18
|
-
require('../dropdown-menu-
|
|
19
|
-
const require_hamburger_menu = require('../hamburger-menu-
|
|
20
|
-
require('../logo-
|
|
18
|
+
require('../dropdown-menu-DPQvVa7J.js');
|
|
19
|
+
const require_hamburger_menu = require('../hamburger-menu-Bi0MDOgC.js');
|
|
20
|
+
require('../logo-Dz8Mm84n.js');
|
|
21
21
|
|
|
22
22
|
module.exports = require_hamburger_menu.hamburger_menu_default;
|
|
@@ -3,8 +3,8 @@ import "../constants-oTHAnh6r.mjs";
|
|
|
3
3
|
import "../constants-BWFuBApI.mjs";
|
|
4
4
|
import "../paragraph-BWXQNQtX.mjs";
|
|
5
5
|
import "../theme-BG6yZVj-.mjs";
|
|
6
|
-
import "../button-
|
|
7
|
-
import "../external-links-
|
|
6
|
+
import "../button-KtEMUa_S.mjs";
|
|
7
|
+
import "../external-links-B-A17Osq.mjs";
|
|
8
8
|
import "../internal-links-BF-974mA.mjs";
|
|
9
9
|
import "../release-branch-DNCD1uH_.mjs";
|
|
10
10
|
import "../external-link-Cx9S31Ye.mjs";
|
|
@@ -12,11 +12,11 @@ import "../customized-link-BkuKVCKQ.mjs";
|
|
|
12
12
|
import "../constants-t0lkfgqP.mjs";
|
|
13
13
|
import "../divider-Bb3tebJO.mjs";
|
|
14
14
|
import "../context-BCesW3fW.mjs";
|
|
15
|
-
import "../constants-
|
|
16
|
-
import "../icons-
|
|
15
|
+
import "../constants-CeM93YWF.mjs";
|
|
16
|
+
import "../icons-DJMi42DI.mjs";
|
|
17
17
|
import "../constants-BqeEbkVD.mjs";
|
|
18
|
-
import "../dropdown-menu-
|
|
19
|
-
import { hamburger_menu_default } from "../hamburger-menu-
|
|
20
|
-
import "../logo-
|
|
18
|
+
import "../dropdown-menu-CrEAe1Td.mjs";
|
|
19
|
+
import { hamburger_menu_default } from "../hamburger-menu-BxO_YWHd.mjs";
|
|
20
|
+
import "../logo-Caqpr_8x.mjs";
|
|
21
21
|
|
|
22
22
|
export { hamburger_menu_default as default };
|
|
@@ -2,17 +2,17 @@ const require_chunk = require('./chunk-BxBTb9qk.js');
|
|
|
2
2
|
const require_constants = require('./constants-BmxSMOOn.js');
|
|
3
3
|
const require_paragraph = require('./paragraph-CJvb0_cM.js');
|
|
4
4
|
const require_theme = require('./theme-DDBlIbeS.js');
|
|
5
|
-
const require_button = require('./button-
|
|
6
|
-
const require_external_links = require('./external-links-
|
|
5
|
+
const require_button = require('./button-CS2fz7hm.js');
|
|
6
|
+
const require_external_links = require('./external-links-DCn-uTD-.js');
|
|
7
7
|
const require_internal_links = require('./internal-links-CBkMU8cY.js');
|
|
8
8
|
const require_external_link = require('./external-link-CEDvlQYo.js');
|
|
9
9
|
const require_internal_link = require('./internal-link-CqTu3Yi5.js');
|
|
10
10
|
const require_divider = require('./divider-b3Shh7FV.js');
|
|
11
11
|
const require_context = require('./context-Bvr0Qj2x.js');
|
|
12
|
-
const require_constants$1 = require('./constants-
|
|
13
|
-
const require_icons = require('./icons-
|
|
14
|
-
const require_dropdown_menu = require('./dropdown-menu-
|
|
15
|
-
const require_logo = require('./logo-
|
|
12
|
+
const require_constants$1 = require('./constants-BxxTZn8I.js');
|
|
13
|
+
const require_icons = require('./icons-_Vt_HeKY.js');
|
|
14
|
+
const require_dropdown_menu = require('./dropdown-menu-DPQvVa7J.js');
|
|
15
|
+
const require_logo = require('./logo-Dz8Mm84n.js');
|
|
16
16
|
let react = require("react");
|
|
17
17
|
react = require_chunk.__toESM(react);
|
|
18
18
|
let clsx = require("clsx");
|
|
@@ -20,31 +20,6 @@ clsx = require_chunk.__toESM(clsx);
|
|
|
20
20
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
21
21
|
react_jsx_runtime = require_chunk.__toESM(react_jsx_runtime);
|
|
22
22
|
|
|
23
|
-
//#region src/header/constants/action-links.ts
|
|
24
|
-
const HEADER_ACTION_LINKS = [{
|
|
25
|
-
label: "電子報",
|
|
26
|
-
to: require_internal_links.INTERNAL_LINKS.account.emailSubscription,
|
|
27
|
-
target: "_self",
|
|
28
|
-
type: require_constants.TYPE.secondary
|
|
29
|
-
}, {
|
|
30
|
-
label: "贊助",
|
|
31
|
-
to: require_external_links.EXTERNAL_LINKS.monthlyDonation,
|
|
32
|
-
target: "_blank",
|
|
33
|
-
type: require_constants.TYPE.primary
|
|
34
|
-
}];
|
|
35
|
-
const HAMBURGER_MENU_ACION_LINKS = [{
|
|
36
|
-
label: "訂閱電子報",
|
|
37
|
-
to: require_internal_links.INTERNAL_LINKS.account.emailSubscription,
|
|
38
|
-
target: "_self",
|
|
39
|
-
type: require_constants.TYPE.secondary
|
|
40
|
-
}, {
|
|
41
|
-
label: "贊助我們",
|
|
42
|
-
to: require_external_links.EXTERNAL_LINKS.monthlyDonation,
|
|
43
|
-
target: "_blank",
|
|
44
|
-
type: require_constants.TYPE.primary
|
|
45
|
-
}];
|
|
46
|
-
|
|
47
|
-
//#endregion
|
|
48
23
|
//#region src/hamburger-menu/constants/channels.ts
|
|
49
24
|
const CHANNEL_TYPE = {
|
|
50
25
|
link: "link",
|
|
@@ -263,8 +238,8 @@ const SocialMedias = [
|
|
|
263
238
|
target: "_blank"
|
|
264
239
|
},
|
|
265
240
|
{
|
|
266
|
-
icon: require_constants$1.MEDIA_TYPE.
|
|
267
|
-
link: require_external_links.EXTERNAL_LINKS.
|
|
241
|
+
icon: require_constants$1.MEDIA_TYPE.threads,
|
|
242
|
+
link: require_external_links.EXTERNAL_LINKS.threads,
|
|
268
243
|
target: "_blank"
|
|
269
244
|
},
|
|
270
245
|
{
|
|
@@ -274,6 +249,31 @@ const SocialMedias = [
|
|
|
274
249
|
}
|
|
275
250
|
];
|
|
276
251
|
|
|
252
|
+
//#endregion
|
|
253
|
+
//#region src/header/constants/action-links.ts
|
|
254
|
+
const HEADER_ACTION_LINKS = [{
|
|
255
|
+
label: "電子報",
|
|
256
|
+
to: require_internal_links.INTERNAL_LINKS.account.emailSubscription,
|
|
257
|
+
target: "_self",
|
|
258
|
+
type: require_constants.TYPE.secondary
|
|
259
|
+
}, {
|
|
260
|
+
label: "贊助",
|
|
261
|
+
to: require_external_links.EXTERNAL_LINKS.monthlyDonation,
|
|
262
|
+
target: "_blank",
|
|
263
|
+
type: require_constants.TYPE.primary
|
|
264
|
+
}];
|
|
265
|
+
const HAMBURGER_MENU_ACION_LINKS = [{
|
|
266
|
+
label: "訂閱電子報",
|
|
267
|
+
to: require_internal_links.INTERNAL_LINKS.account.emailSubscription,
|
|
268
|
+
target: "_self",
|
|
269
|
+
type: require_constants.TYPE.secondary
|
|
270
|
+
}, {
|
|
271
|
+
label: "贊助我們",
|
|
272
|
+
to: require_external_links.EXTERNAL_LINKS.monthlyDonation,
|
|
273
|
+
target: "_blank",
|
|
274
|
+
type: require_constants.TYPE.primary
|
|
275
|
+
}];
|
|
276
|
+
|
|
277
277
|
//#endregion
|
|
278
278
|
//#region src/hamburger-menu/components/icon-link.tsx
|
|
279
279
|
const IconLink$1 = ({ label, icon, to, target }) => {
|
|
@@ -339,7 +339,7 @@ const HamburgerMenu = () => {
|
|
|
339
339
|
const [activeKey, setActiveKey] = (0, react.useState)("");
|
|
340
340
|
const LinkComponent = isLinkExternal ? require_external_link.external_link_default : require_internal_link.internal_link_default;
|
|
341
341
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
342
|
-
className: (0, clsx.default)("w-screen h-screen overflow-scroll overscroll-contain", bgColor, `pb-[calc(48px+48px)]`, "tablet:w-[320px] tablet:max-h-screen", "desktop:w-[280px]",
|
|
342
|
+
className: (0, clsx.default)("w-screen h-screen overflow-scroll overscroll-contain", bgColor, `pb-[calc(48px+48px)]`, "tablet:w-[320px] tablet:max-h-screen", "desktop:w-[280px]", "[&::-webkit-scrollbar]:w-[4px]", "[&::-webkit-scrollbar]:bg-transparent", "[&::-webkit-scrollbar-thumb]:rounded-[2px]", scrollBarColor),
|
|
343
343
|
children: [
|
|
344
344
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
345
345
|
className: (0, clsx.default)("hidden items-center justify-end pt-[24px] pr-[32px] pb-[16px]", "tablet:flex"),
|
|
@@ -390,7 +390,7 @@ const HamburgerMenu = () => {
|
|
|
390
390
|
})]
|
|
391
391
|
}),
|
|
392
392
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
393
|
-
className: "px-[32px] pt-[24px] pb-[8px]",
|
|
393
|
+
className: "px-[32px] pt-[24px] pb-[8px] desktop:hidden",
|
|
394
394
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
395
395
|
type: "text",
|
|
396
396
|
className: (0, clsx.default)("w-full h-[40px] rounded-[20px] px-[16px]", "focus:outline-none"),
|
|
@@ -484,4 +484,4 @@ Object.defineProperty(exports, 'hamburger_menu_default', {
|
|
|
484
484
|
return hamburger_menu_default;
|
|
485
485
|
}
|
|
486
486
|
});
|
|
487
|
-
//# sourceMappingURL=hamburger-menu-
|
|
487
|
+
//# sourceMappingURL=hamburger-menu-Bi0MDOgC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hamburger-menu-Bi0MDOgC.js","names":["INTERNAL_LINKS","EXTERNAL_LINKS","SocialMedias: SocialMediaType[]","MEDIA_TYPE","EXTERNAL_LINKS","HEADER_ACTION_LINKS: ActionLink[]","INTERNAL_LINKS","TYPE","EXTERNAL_LINKS","HAMBURGER_MENU_ACION_LINKS: ActionLink[]","IconLink: FC<IconLinkProps>","HeaderContext","THEME","ExternalLink","InternalLink","selectHamburgerFooterTheme","Icon","P2","IconLink","IconLink: FC<IconLinkProps>","HeaderContext","THEME","selectHamburgerFooterTheme","ExternalLink","InternalLink","P2","SocialMedia: FC<SocialMediaProps>","HeaderContext","THEME","IconButton","SocialMediaIcon","SocialMedia","HamburgerMenu: FC","HeaderContext","HamburgerContext","THEME","selectHamburgerMenuTheme","selectLogoType","ExternalLink","InternalLink","IconButton","Cross","INTERNAL_LINKS","LogoSymbol","LogoHeader","EXTERNAL_LINKS","PillButton","TextButton","selectHamburgerItemTheme","MenuButton","Divider","DropdownMenu","IconLink","LightLink","SocialMedia"],"sources":["../src/hamburger-menu/constants/channels.ts","../src/hamburger-menu/constants/social-media.ts","../src/header/constants/action-links.ts","../src/hamburger-menu/components/icon-link.tsx","../src/hamburger-menu/components/light-link.tsx","../src/hamburger-menu/components/social-media.tsx","../src/hamburger-menu/index.tsx"],"sourcesContent":["import { INTERNAL_LINKS } from '../../constants/internal-links'\nimport { EXTERNAL_LINKS } from '../../constants/external-links'\nimport type { LinkTarget } from '../../customized-link/type'\n\nexport const CHANNEL_TYPE = {\n link: 'link',\n divider: 'divider',\n dropdown: 'dropdown',\n iconLink: 'icon-link',\n lightLink: 'light-link',\n} as const\n\nexport const Channels = [\n {\n type: CHANNEL_TYPE.link,\n label: '最新',\n to: INTERNAL_LINKS.latest,\n target: '_self' as LinkTarget,\n },\n {\n type: CHANNEL_TYPE.divider,\n },\n {\n type: CHANNEL_TYPE.link,\n label: '深度專題',\n to: INTERNAL_LINKS.topics,\n target: '_self' as LinkTarget,\n },\n {\n type: CHANNEL_TYPE.dropdown,\n label: '議題',\n dropdownItems: [\n {\n label: '國際兩岸',\n to: INTERNAL_LINKS.categories.world,\n target: '_self' as LinkTarget,\n },\n {\n label: '人權司法',\n to: INTERNAL_LINKS.categories.humanRights,\n target: '_self' as LinkTarget,\n },\n {\n label: '政治社會',\n to: INTERNAL_LINKS.categories.politicsAndSociety,\n target: '_self' as LinkTarget,\n },\n {\n label: '醫療健康',\n to: INTERNAL_LINKS.categories.health,\n target: '_self' as LinkTarget,\n },\n {\n label: '環境永續',\n to: INTERNAL_LINKS.categories.environment,\n target: '_self' as LinkTarget,\n },\n {\n label: '經濟產業',\n to: INTERNAL_LINKS.categories.econ,\n target: '_self' as LinkTarget,\n },\n {\n label: '文化生活',\n to: INTERNAL_LINKS.categories.culture,\n target: '_self' as LinkTarget,\n },\n {\n label: '教育校園',\n to: INTERNAL_LINKS.categories.education,\n target: '_self' as LinkTarget,\n },\n ],\n },\n {\n type: CHANNEL_TYPE.dropdown,\n label: '評論',\n dropdownItems: [\n {\n label: '書摘與書評',\n to: INTERNAL_LINKS.categories.opinion.bookReview,\n target: '_self' as LinkTarget,\n },\n {\n label: '讀者投書',\n to: INTERNAL_LINKS.categories.opinion.letter,\n target: '_self' as LinkTarget,\n },\n {\n label: '全部',\n to: INTERNAL_LINKS.categories.opinion.index,\n target: '_self' as LinkTarget,\n },\n ],\n },\n {\n type: CHANNEL_TYPE.link,\n label: '人物故事',\n to: INTERNAL_LINKS.humanStory,\n target: '_self' as LinkTarget,\n },\n {\n type: CHANNEL_TYPE.divider,\n },\n {\n type: CHANNEL_TYPE.link,\n label: '影像',\n to: INTERNAL_LINKS.photography,\n target: '_self' as LinkTarget,\n },\n {\n type: CHANNEL_TYPE.dropdown,\n label: 'Podcast',\n dropdownItems: [\n {\n label: '關於報導者 Podcast',\n to: INTERNAL_LINKS.podcast.aboutPodcast,\n target: '_self' as LinkTarget,\n },\n {\n label: 'The Real Story',\n to: INTERNAL_LINKS.categories.podcast.theRealStory,\n target: '_self' as LinkTarget,\n },\n {\n label: 'On the Ground 路邊攤計劃',\n to: INTERNAL_LINKS.categories.podcast.onTheGround,\n target: '_self' as LinkTarget,\n },\n ],\n },\n {\n type: CHANNEL_TYPE.link,\n label: '少年報導者',\n to: EXTERNAL_LINKS.kidsReporter,\n target: '_blank' as LinkTarget,\n },\n {\n type: CHANNEL_TYPE.link,\n label: '報導者觀測站',\n to: EXTERNAL_LINKS.lawmaker,\n target: '_blank' as LinkTarget,\n },\n {\n type: CHANNEL_TYPE.link,\n label: '數位敘事',\n to: INTERNAL_LINKS.infographic,\n target: '_self' as LinkTarget,\n },\n {\n type: CHANNEL_TYPE.divider,\n },\n {\n type: CHANNEL_TYPE.iconLink,\n label: '個人專區',\n icon: 'member',\n to: INTERNAL_LINKS.account.index,\n target: '_self' as LinkTarget,\n },\n {\n type: CHANNEL_TYPE.iconLink,\n label: '我的閱讀',\n icon: 'kid_star',\n to: INTERNAL_LINKS.myReading.index,\n target: '_self' as LinkTarget,\n },\n {\n type: CHANNEL_TYPE.iconLink,\n label: '已收藏',\n icon: 'bookmark_basic',\n to: INTERNAL_LINKS.myReading.savedBookmarks,\n target: '_self' as LinkTarget,\n },\n {\n type: CHANNEL_TYPE.iconLink,\n label: '造訪紀錄',\n icon: 'history',\n to: INTERNAL_LINKS.myReading.browsingHistory,\n target: '_self' as LinkTarget,\n },\n {\n type: CHANNEL_TYPE.divider,\n },\n {\n type: CHANNEL_TYPE.lightLink,\n label: '基金會消息',\n to: INTERNAL_LINKS.categories.foundation.index,\n target: '_self' as LinkTarget,\n },\n {\n type: CHANNEL_TYPE.lightLink,\n label: '關於我們',\n to: INTERNAL_LINKS.about,\n target: '_blank' as LinkTarget,\n },\n {\n type: CHANNEL_TYPE.lightLink,\n label: '影響力報告',\n to: INTERNAL_LINKS.influenceReport,\n target: '_self' as LinkTarget,\n },\n {\n type: CHANNEL_TYPE.lightLink,\n label: '報導者開放實驗室',\n to: EXTERNAL_LINKS.openLab,\n target: '_blank' as LinkTarget,\n },\n {\n type: CHANNEL_TYPE.lightLink,\n label: '出版品與周邊',\n to: EXTERNAL_LINKS.publicationAndMerchandise,\n target: '_blank' as LinkTarget,\n },\n {\n type: CHANNEL_TYPE.divider,\n },\n]\n","import { MEDIA_TYPE, type MediaType } from '../../icons/constants'\nimport { EXTERNAL_LINKS } from '../../constants/external-links'\nimport type { LinkTarget } from '../../customized-link/type'\n\ntype SocialMediaType = {\n icon: MediaType\n link: string\n target: LinkTarget\n}\nexport const SocialMedias: SocialMediaType[] = [\n {\n icon: MEDIA_TYPE.facebook,\n link: EXTERNAL_LINKS.facebook,\n target: '_blank',\n },\n {\n icon: MEDIA_TYPE.instagram,\n link: EXTERNAL_LINKS.instagram,\n target: '_blank',\n },\n {\n icon: MEDIA_TYPE.threads,\n link: EXTERNAL_LINKS.threads,\n target: '_blank',\n },\n {\n icon: MEDIA_TYPE.youtube,\n link: EXTERNAL_LINKS.youtube,\n target: '_blank',\n },\n]\n","import { INTERNAL_LINKS } from '../../constants/internal-links'\nimport { EXTERNAL_LINKS } from '../../constants/external-links'\nimport type { LinkTarget } from '../../customized-link/type'\nimport { TYPE, type Type } from '../../button/constants'\n\ntype ActionLink = {\n label: string\n to: string\n target: LinkTarget\n type: Type\n}\n\nexport const HEADER_ACTION_LINKS: ActionLink[] = [\n {\n label: '電子報',\n to: INTERNAL_LINKS.account.emailSubscription,\n target: '_self' as LinkTarget,\n type: TYPE.secondary,\n },\n {\n label: '贊助',\n to: EXTERNAL_LINKS.monthlyDonation,\n target: '_blank',\n type: TYPE.primary,\n },\n]\n\nexport const HAMBURGER_MENU_ACION_LINKS: ActionLink[] = [\n {\n label: '訂閱電子報',\n to: INTERNAL_LINKS.account.emailSubscription,\n target: '_self',\n type: TYPE.secondary,\n },\n {\n label: '贊助我們',\n to: EXTERNAL_LINKS.monthlyDonation,\n target: '_blank',\n type: TYPE.primary,\n },\n]\n","import { useContext, type FC } from 'react'\nimport clsx from 'clsx'\n// context\nimport { HeaderContext } from '../../header/context'\n// theme\nimport { THEME } from '../../constants/theme'\n// utils\nimport { selectHamburgerFooterTheme } from '../utils/theme'\n// icon\nimport { Icon } from '../../icons'\n// text\nimport { P2 } from '../../text/paragraph'\n// link\nimport { ExternalLink, InternalLink } from '../../customized-link'\nimport type { LinkTarget } from '../../customized-link/type'\n\ntype IconLinkProps = {\n label: string\n icon: string\n to: string\n target: LinkTarget\n}\nconst IconLink: FC<IconLinkProps> = ({ label, icon, to, target }) => {\n const { theme, releaseBranch, isLinkExternal } = useContext(HeaderContext)\n const footerTheme = theme === THEME.transparent ? THEME.normal : theme\n const LinkComponent = isLinkExternal ? ExternalLink : InternalLink\n const {\n color,\n hoverColor,\n hoverBgColor,\n svgHoverBgColor,\n svgBgColor,\n activeColor,\n activeBgColor,\n svgActiveBgColor,\n } = selectHamburgerFooterTheme(footerTheme)\n return (\n <LinkComponent to={to} target={target}>\n <div\n className={clsx(\n 'py-[8px] px-[32px] flex items-center',\n '[&>svg]:h-[18px] [&>svg]:w-[18px] [&>svg]:mr-[4px]',\n color,\n hoverColor,\n hoverBgColor,\n svgHoverBgColor,\n svgBgColor,\n activeColor,\n activeBgColor,\n svgActiveBgColor\n )}\n >\n <Icon filename={icon} releaseBranch={releaseBranch} />\n <P2 text={label} />\n </div>\n </LinkComponent>\n )\n}\n\nexport default IconLink\n","import { useContext, type FC } from 'react'\nimport clsx from 'clsx'\n// context\nimport { HeaderContext } from '../../header/context'\n// theme\nimport { THEME } from '../../constants/theme'\n// utils\nimport { selectHamburgerFooterTheme } from '../utils/theme'\n// text\nimport { P2 } from '../../text/paragraph'\n// link\nimport { ExternalLink, InternalLink } from '../../customized-link'\nimport type { LinkTarget } from '../../customized-link/type'\n\ntype IconLinkProps = {\n label: string\n to: string\n target: LinkTarget\n}\nconst IconLink: FC<IconLinkProps> = ({ label, to, target }) => {\n const { theme, isLinkExternal } = useContext(HeaderContext)\n const footerTheme = theme === THEME.transparent ? THEME.normal : theme\n const { color, hoverColor, hoverBgColor, activeColor, activeBgColor } =\n selectHamburgerFooterTheme(footerTheme)\n const LinkComponent = isLinkExternal ? ExternalLink : InternalLink\n return (\n <LinkComponent to={to} target={target}>\n <div\n className={clsx(\n 'py-[8px] px-[32px] flex items-center',\n '[&>svg]:h-[18px] [&>svg]:w-[18px] [&>svg]:mr-[4px]',\n color,\n hoverColor,\n hoverBgColor,\n activeColor,\n activeBgColor\n )}\n >\n <P2 text={label} />\n </div>\n </LinkComponent>\n )\n}\n\nexport default IconLink\n","import { useContext, type FC } from 'react'\nimport clsx from 'clsx'\n// context\nimport { HeaderContext } from '../../header/context'\n// icon\nimport { SocialMedia as SocialMediaIcon } from '../../icons'\n// type\nimport type { MediaType } from '../../icons/constants'\n// theme\nimport { THEME } from '../../constants/theme'\n// button\nimport { IconButton } from '../../button'\n\ntype SocialMediaProps = {\n mediaType: MediaType\n}\nconst SocialMedia: FC<SocialMediaProps> = ({ mediaType }) => {\n const { theme, releaseBranch } = useContext(HeaderContext)\n const footerTheme = theme === THEME.transparent ? THEME.normal : theme\n const Icon = (\n <SocialMediaIcon mediaType={mediaType} releaseBranch={releaseBranch} />\n )\n return (\n <IconButton\n iconComponent={Icon}\n theme={footerTheme}\n className={clsx(\n '[&>svg]:h-[32px] [&>svg]:w-[32px]',\n '[&>svg]:tablet:h-[24px] [&>svg]:tablet:w-[24px]'\n )}\n />\n )\n}\n\nexport default SocialMedia\n","import { useContext, useState, type FC } from 'react'\nimport clsx from 'clsx'\n// context\nimport { HeaderContext, HamburgerContext } from '../header/context'\n// constants\nimport { THEME } from '../constants/theme'\nimport { Channels, CHANNEL_TYPE } from './constants/channels'\nimport { SocialMedias } from './constants/social-media'\nimport { HAMBURGER_MENU_ACION_LINKS } from '../header/constants/action-links'\nimport { INTERNAL_LINKS } from '../constants/internal-links'\nimport { EXTERNAL_LINKS } from '../constants/external-links'\n// utils\nimport {\n selectHamburgerMenuTheme,\n selectHamburgerItemTheme,\n} from './utils/theme'\n// buttons\nimport { IconButton, MenuButton, PillButton, TextButton } from '../button'\n// icons\nimport { Cross } from '../icons'\n// logo\nimport { LogoSymbol, LogoHeader } from '../logo'\n// utils\nimport { selectLogoType } from './utils/theme'\n// divider\nimport Divider from '../divider'\n// components\nimport { DropdownMenu } from '../dropdown-menu'\nimport IconLink from './components/icon-link'\nimport LightLink from './components/light-link'\nimport SocialMedia from './components/social-media'\n// link\nimport { ExternalLink, InternalLink } from '../customized-link'\n\nconst HamburgerMenu: FC = () => {\n const { theme, releaseBranch, isLinkExternal } = useContext(HeaderContext)\n const { closeHamburgerMenu } = useContext(HamburgerContext)\n\n const menuTheme = theme === THEME.photography ? theme : THEME.normal\n const { bgColor, scrollBarColor } = selectHamburgerMenuTheme(menuTheme)\n const logoType = selectLogoType(menuTheme)\n const [activeKey, setActiveKey] = useState('')\n const LinkComponent = isLinkExternal ? ExternalLink : InternalLink\n\n return (\n <div\n className={clsx(\n 'w-screen h-screen overflow-scroll overscroll-contain',\n bgColor,\n // reserveHeightForIos15 is 48px\n `pb-[calc(48px+48px)]`,\n 'tablet:w-[320px] tablet:max-h-screen',\n 'desktop:w-[280px]',\n '[&::-webkit-scrollbar]:w-[4px]',\n '[&::-webkit-scrollbar]:bg-transparent',\n '[&::-webkit-scrollbar-thumb]:rounded-[2px]',\n scrollBarColor\n )}\n >\n {/* close icon */}\n <div\n className={clsx(\n 'hidden items-center justify-end pt-[24px] pr-[32px] pb-[16px]',\n 'tablet:flex'\n )}\n >\n <IconButton\n iconComponent={Cross(releaseBranch)}\n theme={menuTheme}\n onClick={closeHamburgerMenu}\n />\n </div>\n {/* logo */}\n <LinkComponent to={INTERNAL_LINKS.home}>\n <div\n className={clsx(\n 'hidden justify-center [&>img]:h-[24px] [&>img]:w-[24px]',\n 'tablet:flex'\n )}\n >\n <LogoSymbol type={logoType} releaseBranch={releaseBranch} />\n </div>\n </LinkComponent>\n {/* mobile hamburger header */}\n <div\n className={clsx(\n 'flex items-center justify-between px-[24px] py-[16px]',\n 'tablet:hidden'\n )}\n >\n <LinkComponent to={INTERNAL_LINKS.home}>\n <LogoHeader\n type={logoType}\n releaseBranch={releaseBranch}\n className=\"h-[21px]\"\n />\n </LinkComponent>\n <div className=\"flex items-center gap-[16px]\">\n <LinkComponent to={EXTERNAL_LINKS.monthlyDonation}>\n <PillButton\n text=\"贊助\"\n theme={PillButton.Theme.normal}\n type={PillButton.Type.primary}\n style={PillButton.Style.brand}\n />\n </LinkComponent>\n <LinkComponent to={INTERNAL_LINKS.account.index}>\n <TextButton\n text=\"登入\"\n theme={TextButton.Theme.normal}\n style={TextButton.Style.dark}\n size={TextButton.Size.s}\n />\n </LinkComponent>\n </div>\n </div>\n {/* search bar (visible on mobile and tablet) */}\n <div className=\"px-[32px] pt-[24px] pb-[8px] desktop:hidden\">\n <input\n type=\"text\"\n className={clsx(\n 'w-full h-[40px] rounded-[20px] px-[16px]',\n 'focus:outline-none'\n )}\n placeholder=\"搜尋\"\n />\n </div>\n {/* menu buttons */}\n <div className=\"flex flex-col pt-[16px]\">\n {Channels.map((channel, idx) => {\n if (channel.type === CHANNEL_TYPE.link) {\n const { color, hoverBgColor, activeBgColor } =\n selectHamburgerItemTheme(theme)\n return (\n <LinkComponent\n to={channel.to}\n target={channel.target}\n key={channel.label}\n >\n <MenuButton\n key={channel.label}\n text={channel.label}\n fontWeight={MenuButton.FontWeight.bold}\n color={color}\n p1ClassName={`${hoverBgColor} ${activeBgColor} pl-[32px] pr-[32px]`}\n />\n </LinkComponent>\n )\n }\n if (channel.type === CHANNEL_TYPE.divider) {\n return (\n <div className=\"py-[16px] px-[32px]\" key={`divider-${idx}`}>\n <Divider direction={Divider.Direction.horizontal} />\n </div>\n )\n }\n if (channel.type === CHANNEL_TYPE.dropdown) {\n const isActive = activeKey === channel.label\n const toggleFunc = (key: string) => {\n const nextActiveKey = activeKey === key ? '' : key\n setActiveKey(nextActiveKey)\n }\n return (\n <button\n onClick={() => toggleFunc(channel.label)}\n key={channel.label}\n type=\"button\"\n >\n <DropdownMenu\n text={channel.label}\n isActive={isActive}\n dropdownItems={channel.dropdownItems}\n />\n </button>\n )\n }\n if (channel.type === CHANNEL_TYPE.iconLink) {\n return (\n <IconLink\n label={channel.label}\n to={channel.to}\n target={channel.target}\n icon={channel.icon}\n key={channel.label}\n />\n )\n }\n if (channel.type === CHANNEL_TYPE.lightLink) {\n return (\n <LightLink\n label={channel.label}\n to={channel.to}\n target={channel.target}\n key={channel.label}\n />\n )\n }\n })}\n </div>\n {/* social media */}\n <div className=\"flex flex-row gap-[16px] justify-center\">\n {SocialMedias.map((socialMedia) => (\n <LinkComponent\n to={socialMedia.link}\n target={socialMedia.target}\n key={socialMedia.icon}\n >\n <SocialMedia mediaType={socialMedia.icon} />\n </LinkComponent>\n ))}\n </div>\n {/* action butoons */}\n <div\n className={clsx(\n 'hidden flex-col gap-[16px] px-[32px] pt-[40px] pb-[32px]',\n 'tablet:flex'\n )}\n >\n {HAMBURGER_MENU_ACION_LINKS.map((link) => (\n <LinkComponent to={link.to} target={link.target} key={link.label}>\n <PillButton\n text={link.label}\n theme={theme}\n type={link.type}\n className=\"w-full justify-center\"\n />\n </LinkComponent>\n ))}\n </div>\n </div>\n )\n}\n\nexport default HamburgerMenu\n"],"mappings":"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"}
|
|
@@ -2,45 +2,20 @@ import { internal_link_default } from "./internal-link-NQb751uB.mjs";
|
|
|
2
2
|
import { TYPE } from "./constants-oTHAnh6r.mjs";
|
|
3
3
|
import { P2 } from "./paragraph-BWXQNQtX.mjs";
|
|
4
4
|
import { THEME } from "./theme-BG6yZVj-.mjs";
|
|
5
|
-
import { icon_button_default, menu_button_default, pill_button_default, text_button_default } from "./button-
|
|
6
|
-
import { EXTERNAL_LINKS } from "./external-links-
|
|
5
|
+
import { icon_button_default, menu_button_default, pill_button_default, text_button_default } from "./button-KtEMUa_S.mjs";
|
|
6
|
+
import { EXTERNAL_LINKS } from "./external-links-B-A17Osq.mjs";
|
|
7
7
|
import { INTERNAL_LINKS } from "./internal-links-BF-974mA.mjs";
|
|
8
8
|
import { external_link_default } from "./external-link-Cx9S31Ye.mjs";
|
|
9
9
|
import { divider_default } from "./divider-Bb3tebJO.mjs";
|
|
10
10
|
import { HamburgerContext, HeaderContext } from "./context-BCesW3fW.mjs";
|
|
11
|
-
import { MEDIA_TYPE } from "./constants-
|
|
12
|
-
import { Cross, Icon, SocialMedia } from "./icons-
|
|
13
|
-
import { DropdownMenu, selectHamburgerFooterTheme, selectHamburgerItemTheme, selectHamburgerMenuTheme, selectLogoType } from "./dropdown-menu-
|
|
14
|
-
import { logo_header_default, logo_symbol_default } from "./logo-
|
|
11
|
+
import { MEDIA_TYPE } from "./constants-CeM93YWF.mjs";
|
|
12
|
+
import { Cross, Icon, SocialMedia } from "./icons-DJMi42DI.mjs";
|
|
13
|
+
import { DropdownMenu, selectHamburgerFooterTheme, selectHamburgerItemTheme, selectHamburgerMenuTheme, selectLogoType } from "./dropdown-menu-CrEAe1Td.mjs";
|
|
14
|
+
import { logo_header_default, logo_symbol_default } from "./logo-Caqpr_8x.mjs";
|
|
15
15
|
import { useContext, useState } from "react";
|
|
16
16
|
import clsx from "clsx";
|
|
17
17
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
18
18
|
|
|
19
|
-
//#region src/header/constants/action-links.ts
|
|
20
|
-
const HEADER_ACTION_LINKS = [{
|
|
21
|
-
label: "電子報",
|
|
22
|
-
to: INTERNAL_LINKS.account.emailSubscription,
|
|
23
|
-
target: "_self",
|
|
24
|
-
type: TYPE.secondary
|
|
25
|
-
}, {
|
|
26
|
-
label: "贊助",
|
|
27
|
-
to: EXTERNAL_LINKS.monthlyDonation,
|
|
28
|
-
target: "_blank",
|
|
29
|
-
type: TYPE.primary
|
|
30
|
-
}];
|
|
31
|
-
const HAMBURGER_MENU_ACION_LINKS = [{
|
|
32
|
-
label: "訂閱電子報",
|
|
33
|
-
to: INTERNAL_LINKS.account.emailSubscription,
|
|
34
|
-
target: "_self",
|
|
35
|
-
type: TYPE.secondary
|
|
36
|
-
}, {
|
|
37
|
-
label: "贊助我們",
|
|
38
|
-
to: EXTERNAL_LINKS.monthlyDonation,
|
|
39
|
-
target: "_blank",
|
|
40
|
-
type: TYPE.primary
|
|
41
|
-
}];
|
|
42
|
-
|
|
43
|
-
//#endregion
|
|
44
19
|
//#region src/hamburger-menu/constants/channels.ts
|
|
45
20
|
const CHANNEL_TYPE = {
|
|
46
21
|
link: "link",
|
|
@@ -259,8 +234,8 @@ const SocialMedias = [
|
|
|
259
234
|
target: "_blank"
|
|
260
235
|
},
|
|
261
236
|
{
|
|
262
|
-
icon: MEDIA_TYPE.
|
|
263
|
-
link: EXTERNAL_LINKS.
|
|
237
|
+
icon: MEDIA_TYPE.threads,
|
|
238
|
+
link: EXTERNAL_LINKS.threads,
|
|
264
239
|
target: "_blank"
|
|
265
240
|
},
|
|
266
241
|
{
|
|
@@ -270,6 +245,31 @@ const SocialMedias = [
|
|
|
270
245
|
}
|
|
271
246
|
];
|
|
272
247
|
|
|
248
|
+
//#endregion
|
|
249
|
+
//#region src/header/constants/action-links.ts
|
|
250
|
+
const HEADER_ACTION_LINKS = [{
|
|
251
|
+
label: "電子報",
|
|
252
|
+
to: INTERNAL_LINKS.account.emailSubscription,
|
|
253
|
+
target: "_self",
|
|
254
|
+
type: TYPE.secondary
|
|
255
|
+
}, {
|
|
256
|
+
label: "贊助",
|
|
257
|
+
to: EXTERNAL_LINKS.monthlyDonation,
|
|
258
|
+
target: "_blank",
|
|
259
|
+
type: TYPE.primary
|
|
260
|
+
}];
|
|
261
|
+
const HAMBURGER_MENU_ACION_LINKS = [{
|
|
262
|
+
label: "訂閱電子報",
|
|
263
|
+
to: INTERNAL_LINKS.account.emailSubscription,
|
|
264
|
+
target: "_self",
|
|
265
|
+
type: TYPE.secondary
|
|
266
|
+
}, {
|
|
267
|
+
label: "贊助我們",
|
|
268
|
+
to: EXTERNAL_LINKS.monthlyDonation,
|
|
269
|
+
target: "_blank",
|
|
270
|
+
type: TYPE.primary
|
|
271
|
+
}];
|
|
272
|
+
|
|
273
273
|
//#endregion
|
|
274
274
|
//#region src/hamburger-menu/components/icon-link.tsx
|
|
275
275
|
const IconLink$1 = ({ label, icon, to, target }) => {
|
|
@@ -335,7 +335,7 @@ const HamburgerMenu = () => {
|
|
|
335
335
|
const [activeKey, setActiveKey] = useState("");
|
|
336
336
|
const LinkComponent = isLinkExternal ? external_link_default : internal_link_default;
|
|
337
337
|
return /* @__PURE__ */ jsxs("div", {
|
|
338
|
-
className: clsx("w-screen h-screen overflow-scroll overscroll-contain", bgColor, `pb-[calc(48px+48px)]`, "tablet:w-[320px] tablet:max-h-screen", "desktop:w-[280px]",
|
|
338
|
+
className: clsx("w-screen h-screen overflow-scroll overscroll-contain", bgColor, `pb-[calc(48px+48px)]`, "tablet:w-[320px] tablet:max-h-screen", "desktop:w-[280px]", "[&::-webkit-scrollbar]:w-[4px]", "[&::-webkit-scrollbar]:bg-transparent", "[&::-webkit-scrollbar-thumb]:rounded-[2px]", scrollBarColor),
|
|
339
339
|
children: [
|
|
340
340
|
/* @__PURE__ */ jsx("div", {
|
|
341
341
|
className: clsx("hidden items-center justify-end pt-[24px] pr-[32px] pb-[16px]", "tablet:flex"),
|
|
@@ -386,7 +386,7 @@ const HamburgerMenu = () => {
|
|
|
386
386
|
})]
|
|
387
387
|
}),
|
|
388
388
|
/* @__PURE__ */ jsx("div", {
|
|
389
|
-
className: "px-[32px] pt-[24px] pb-[8px]",
|
|
389
|
+
className: "px-[32px] pt-[24px] pb-[8px] desktop:hidden",
|
|
390
390
|
children: /* @__PURE__ */ jsx("input", {
|
|
391
391
|
type: "text",
|
|
392
392
|
className: clsx("w-full h-[40px] rounded-[20px] px-[16px]", "focus:outline-none"),
|
|
@@ -469,4 +469,4 @@ var hamburger_menu_default = HamburgerMenu;
|
|
|
469
469
|
|
|
470
470
|
//#endregion
|
|
471
471
|
export { HEADER_ACTION_LINKS, hamburger_menu_default };
|
|
472
|
-
//# sourceMappingURL=hamburger-menu-
|
|
472
|
+
//# sourceMappingURL=hamburger-menu-BxO_YWHd.mjs.map
|