@twreporter/react-typescript-components 0.1.0-beta.10

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 (240) hide show
  1. package/README.md +74 -0
  2. package/lib/button/constants.d.mts +3 -0
  3. package/lib/button/constants.d.ts +3 -0
  4. package/lib/button/constants.js +5 -0
  5. package/lib/button/constants.mjs +3 -0
  6. package/lib/button/index.d.mts +160 -0
  7. package/lib/button/index.d.ts +160 -0
  8. package/lib/button/index.js +13 -0
  9. package/lib/button/index.mjs +7 -0
  10. package/lib/button-DFLYlJJW.js +630 -0
  11. package/lib/button-DFLYlJJW.js.map +1 -0
  12. package/lib/button-DyUYGG90.mjs +591 -0
  13. package/lib/button-DyUYGG90.mjs.map +1 -0
  14. package/lib/chunk-BxBTb9qk.js +39 -0
  15. package/lib/constants/external-links.d.mts +16 -0
  16. package/lib/constants/external-links.d.ts +16 -0
  17. package/lib/constants/external-links.js +3 -0
  18. package/lib/constants/external-links.mjs +3 -0
  19. package/lib/constants/internal-links.d.mts +51 -0
  20. package/lib/constants/internal-links.d.ts +51 -0
  21. package/lib/constants/internal-links.js +3 -0
  22. package/lib/constants/internal-links.mjs +3 -0
  23. package/lib/constants/release-branch.d.mts +3 -0
  24. package/lib/constants/release-branch.d.ts +3 -0
  25. package/lib/constants/release-branch.js +3 -0
  26. package/lib/constants/release-branch.mjs +3 -0
  27. package/lib/constants/request-origins.d.mts +68 -0
  28. package/lib/constants/request-origins.d.ts +68 -0
  29. package/lib/constants/request-origins.js +47 -0
  30. package/lib/constants/request-origins.js.map +1 -0
  31. package/lib/constants/request-origins.mjs +46 -0
  32. package/lib/constants/request-origins.mjs.map +1 -0
  33. package/lib/constants/theme.d.mts +3 -0
  34. package/lib/constants/theme.d.ts +3 -0
  35. package/lib/constants/theme.js +3 -0
  36. package/lib/constants/theme.mjs +3 -0
  37. package/lib/constants-2TRY2zTK.js +38 -0
  38. package/lib/constants-2TRY2zTK.js.map +1 -0
  39. package/lib/constants-BS3rPbaX.d.ts +17 -0
  40. package/lib/constants-BWFuBApI.mjs +14 -0
  41. package/lib/constants-BWFuBApI.mjs.map +1 -0
  42. package/lib/constants-B_NgWFML.d.ts +24 -0
  43. package/lib/constants-BmxSMOOn.js +36 -0
  44. package/lib/constants-BmxSMOOn.js.map +1 -0
  45. package/lib/constants-BqeEbkVD.mjs +20 -0
  46. package/lib/constants-BqeEbkVD.mjs.map +1 -0
  47. package/lib/constants-BswaTS-y.d.mts +29 -0
  48. package/lib/constants-Bz-ufaJ2.js +39 -0
  49. package/lib/constants-Bz-ufaJ2.js.map +1 -0
  50. package/lib/constants-CEyUZ-jZ.d.mts +11 -0
  51. package/lib/constants-CMMcn0f-.d.ts +11 -0
  52. package/lib/constants-CQscYQcW.mjs +25 -0
  53. package/lib/constants-CQscYQcW.mjs.map +1 -0
  54. package/lib/constants-DF_II8Fz.js +43 -0
  55. package/lib/constants-DF_II8Fz.js.map +1 -0
  56. package/lib/constants-DNr36wyK.d.mts +24 -0
  57. package/lib/constants-DQxcqnYL.d.ts +29 -0
  58. package/lib/constants-DRyQ6AuU.js +15 -0
  59. package/lib/constants-DRyQ6AuU.js.map +1 -0
  60. package/lib/constants-K2ObjToq.js +26 -0
  61. package/lib/constants-K2ObjToq.js.map +1 -0
  62. package/lib/constants-OhAETTiQ.d.mts +17 -0
  63. package/lib/constants-QF71lY6v.mjs +34 -0
  64. package/lib/constants-QF71lY6v.mjs.map +1 -0
  65. package/lib/constants-gCmka4Fp.d.ts +22 -0
  66. package/lib/constants-jYAxSTFp.d.mts +22 -0
  67. package/lib/constants-oTHAnh6r.mjs +18 -0
  68. package/lib/constants-oTHAnh6r.mjs.map +1 -0
  69. package/lib/constants-t0lkfgqP.mjs +9 -0
  70. package/lib/constants-t0lkfgqP.mjs.map +1 -0
  71. package/lib/context-BCesW3fW.mjs +24 -0
  72. package/lib/context-BCesW3fW.mjs.map +1 -0
  73. package/lib/context-Bvr0Qj2x.js +37 -0
  74. package/lib/context-Bvr0Qj2x.js.map +1 -0
  75. package/lib/customized-link/external-link.d.mts +3 -0
  76. package/lib/customized-link/external-link.d.ts +3 -0
  77. package/lib/customized-link/external-link.js +3 -0
  78. package/lib/customized-link/external-link.mjs +3 -0
  79. package/lib/customized-link/index.d.mts +13 -0
  80. package/lib/customized-link/index.d.ts +13 -0
  81. package/lib/customized-link/index.js +8 -0
  82. package/lib/customized-link/index.mjs +5 -0
  83. package/lib/customized-link/internal-link.d.mts +3 -0
  84. package/lib/customized-link/internal-link.d.ts +3 -0
  85. package/lib/customized-link/internal-link.js +6 -0
  86. package/lib/customized-link/internal-link.mjs +6 -0
  87. package/lib/customized-link/type.d.mts +2 -0
  88. package/lib/customized-link/type.d.ts +2 -0
  89. package/lib/customized-link/type.js +0 -0
  90. package/lib/customized-link/type.mjs +1 -0
  91. package/lib/customized-link-BkuKVCKQ.mjs +12 -0
  92. package/lib/customized-link-BkuKVCKQ.mjs.map +1 -0
  93. package/lib/customized-link-CK7Xlgdt.js +17 -0
  94. package/lib/customized-link-CK7Xlgdt.js.map +1 -0
  95. package/lib/divider/constants.d.mts +3 -0
  96. package/lib/divider/constants.d.ts +3 -0
  97. package/lib/divider/constants.js +3 -0
  98. package/lib/divider/constants.mjs +3 -0
  99. package/lib/divider/index.d.mts +15 -0
  100. package/lib/divider/index.d.ts +15 -0
  101. package/lib/divider/index.js +6 -0
  102. package/lib/divider/index.mjs +4 -0
  103. package/lib/divider-Bb3tebJO.mjs +15 -0
  104. package/lib/divider-Bb3tebJO.mjs.map +1 -0
  105. package/lib/divider-b3Shh7FV.js +29 -0
  106. package/lib/divider-b3Shh7FV.js.map +1 -0
  107. package/lib/dropdown-menu/index.d.mts +17 -0
  108. package/lib/dropdown-menu/index.d.ts +17 -0
  109. package/lib/dropdown-menu/index.js +14 -0
  110. package/lib/dropdown-menu/index.mjs +14 -0
  111. package/lib/dropdown-menu-CCtPuYyJ.js +150 -0
  112. package/lib/dropdown-menu-CCtPuYyJ.js.map +1 -0
  113. package/lib/dropdown-menu-Cil4RtSK.mjs +117 -0
  114. package/lib/dropdown-menu-Cil4RtSK.mjs.map +1 -0
  115. package/lib/external-link-2XoC1_oL.d.ts +9 -0
  116. package/lib/external-link-BUhvS4ry.d.mts +9 -0
  117. package/lib/external-link-CEDvlQYo.js +23 -0
  118. package/lib/external-link-CEDvlQYo.js.map +1 -0
  119. package/lib/external-link-Cx9S31Ye.mjs +16 -0
  120. package/lib/external-link-Cx9S31Ye.mjs.map +1 -0
  121. package/lib/external-links-2b4M_rcA.mjs +17 -0
  122. package/lib/external-links-2b4M_rcA.mjs.map +1 -0
  123. package/lib/external-links-SfJjb48j.js +23 -0
  124. package/lib/external-links-SfJjb48j.js.map +1 -0
  125. package/lib/hamburger-menu/index.d.mts +7 -0
  126. package/lib/hamburger-menu/index.d.ts +6 -0
  127. package/lib/hamburger-menu/index.js +22 -0
  128. package/lib/hamburger-menu/index.mjs +22 -0
  129. package/lib/hamburger-menu-BZ1hA7l5.mjs +472 -0
  130. package/lib/hamburger-menu-BZ1hA7l5.mjs.map +1 -0
  131. package/lib/hamburger-menu-Bd_wmcAB.js +487 -0
  132. package/lib/hamburger-menu-Bd_wmcAB.js.map +1 -0
  133. package/lib/header/index.d.mts +26 -0
  134. package/lib/header/index.d.ts +25 -0
  135. package/lib/header/index.js +465 -0
  136. package/lib/header/index.js.map +1 -0
  137. package/lib/header/index.mjs +459 -0
  138. package/lib/header/index.mjs.map +1 -0
  139. package/lib/heading-CFSkTbdH.mjs +37 -0
  140. package/lib/heading-CFSkTbdH.mjs.map +1 -0
  141. package/lib/heading-DFzj2z0V.js +75 -0
  142. package/lib/heading-DFzj2z0V.js.map +1 -0
  143. package/lib/icons/constants.d.mts +3 -0
  144. package/lib/icons/constants.d.ts +3 -0
  145. package/lib/icons/constants.js +5 -0
  146. package/lib/icons/constants.mjs +3 -0
  147. package/lib/icons/index.d.mts +43 -0
  148. package/lib/icons/index.d.ts +43 -0
  149. package/lib/icons/index.js +15 -0
  150. package/lib/icons/index.mjs +5 -0
  151. package/lib/icons-DF-7dKxN.js +128 -0
  152. package/lib/icons-DF-7dKxN.js.map +1 -0
  153. package/lib/icons-DguoV48M.mjs +60 -0
  154. package/lib/icons-DguoV48M.mjs.map +1 -0
  155. package/lib/index-BmIgLA0K.d.mts +5 -0
  156. package/lib/index-H3peA2d_.d.ts +5 -0
  157. package/lib/internal-link-CqTu3Yi5.js +2278 -0
  158. package/lib/internal-link-CqTu3Yi5.js.map +1 -0
  159. package/lib/internal-link-D8jJal8P.d.mts +9 -0
  160. package/lib/internal-link-DCSEl1jM.d.ts +9 -0
  161. package/lib/internal-link-NQb751uB.mjs +2299 -0
  162. package/lib/internal-link-NQb751uB.mjs.map +1 -0
  163. package/lib/internal-links-BF-974mA.mjs +52 -0
  164. package/lib/internal-links-BF-974mA.mjs.map +1 -0
  165. package/lib/internal-links-CBkMU8cY.js +58 -0
  166. package/lib/internal-links-CBkMU8cY.js.map +1 -0
  167. package/lib/logo/constants.d.mts +3 -0
  168. package/lib/logo/constants.d.ts +3 -0
  169. package/lib/logo/constants.js +5 -0
  170. package/lib/logo/constants.mjs +3 -0
  171. package/lib/logo/index.d.mts +42 -0
  172. package/lib/logo/index.d.ts +42 -0
  173. package/lib/logo/index.js +8 -0
  174. package/lib/logo/index.mjs +5 -0
  175. package/lib/logo-CC5oU9Qb.mjs +64 -0
  176. package/lib/logo-CC5oU9Qb.mjs.map +1 -0
  177. package/lib/logo-D4M-1sGD.js +83 -0
  178. package/lib/logo-D4M-1sGD.js.map +1 -0
  179. package/lib/paragraph-BWXQNQtX.mjs +30 -0
  180. package/lib/paragraph-BWXQNQtX.mjs.map +1 -0
  181. package/lib/paragraph-CJvb0_cM.js +56 -0
  182. package/lib/paragraph-CJvb0_cM.js.map +1 -0
  183. package/lib/release-branch-CRZV4Ivz.js +18 -0
  184. package/lib/release-branch-CRZV4Ivz.js.map +1 -0
  185. package/lib/release-branch-CsBbhuYE.d.ts +14 -0
  186. package/lib/release-branch-DNCD1uH_.mjs +12 -0
  187. package/lib/release-branch-DNCD1uH_.mjs.map +1 -0
  188. package/lib/release-branch-DZwlCiWD.d.mts +14 -0
  189. package/lib/styles.css +1599 -0
  190. package/lib/tab-bar/constants.d.mts +16 -0
  191. package/lib/tab-bar/constants.d.ts +16 -0
  192. package/lib/tab-bar/constants.js +7 -0
  193. package/lib/tab-bar/constants.mjs +7 -0
  194. package/lib/tab-bar/index.d.mts +10 -0
  195. package/lib/tab-bar/index.d.ts +9 -0
  196. package/lib/tab-bar/index.js +18 -0
  197. package/lib/tab-bar/index.mjs +18 -0
  198. package/lib/tab-bar/theme.d.mts +10 -0
  199. package/lib/tab-bar/theme.d.ts +10 -0
  200. package/lib/tab-bar/theme.js +4 -0
  201. package/lib/tab-bar/theme.mjs +4 -0
  202. package/lib/tab-bar-CBL2tDXk.mjs +62 -0
  203. package/lib/tab-bar-CBL2tDXk.mjs.map +1 -0
  204. package/lib/tab-bar-ZRrpziiN.js +78 -0
  205. package/lib/tab-bar-ZRrpziiN.js.map +1 -0
  206. package/lib/text/constants.d.mts +3 -0
  207. package/lib/text/constants.d.ts +3 -0
  208. package/lib/text/constants.js +4 -0
  209. package/lib/text/constants.mjs +3 -0
  210. package/lib/text/heading.d.mts +31 -0
  211. package/lib/text/heading.d.ts +31 -0
  212. package/lib/text/heading.js +9 -0
  213. package/lib/text/heading.mjs +4 -0
  214. package/lib/text/paragraph.d.mts +25 -0
  215. package/lib/text/paragraph.d.ts +25 -0
  216. package/lib/text/paragraph.js +7 -0
  217. package/lib/text/paragraph.mjs +4 -0
  218. package/lib/theme-BDGfJ8n-.d.ts +13 -0
  219. package/lib/theme-BErS2Qs6.mjs +13 -0
  220. package/lib/theme-BErS2Qs6.mjs.map +1 -0
  221. package/lib/theme-BG6yZVj-.mjs +11 -0
  222. package/lib/theme-BG6yZVj-.mjs.map +1 -0
  223. package/lib/theme-BPB1kPtQ.js +18 -0
  224. package/lib/theme-BPB1kPtQ.js.map +1 -0
  225. package/lib/theme-ClamfAy8.d.mts +13 -0
  226. package/lib/theme-DDBlIbeS.js +17 -0
  227. package/lib/theme-DDBlIbeS.js.map +1 -0
  228. package/lib/title-bar/index.d.mts +58 -0
  229. package/lib/title-bar/index.d.ts +58 -0
  230. package/lib/title-bar/index.js +153 -0
  231. package/lib/title-bar/index.js.map +1 -0
  232. package/lib/title-bar/index.mjs +145 -0
  233. package/lib/title-bar/index.mjs.map +1 -0
  234. package/lib/type-C4hJK9H9.d.ts +11 -0
  235. package/lib/type-FR-fOZvz.d.mts +11 -0
  236. package/lib/types/index.d.mts +2 -0
  237. package/lib/types/index.d.ts +2 -0
  238. package/lib/types/index.js +0 -0
  239. package/lib/types/index.mjs +1 -0
  240. package/package.json +53 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hamburger-menu-BZ1hA7l5.mjs","names":["HEADER_ACTION_LINKS: ActionLink[]","HAMBURGER_MENU_ACION_LINKS: ActionLink[]","SocialMedias: SocialMediaType[]","IconLink: FC<IconLinkProps>","ExternalLink","InternalLink","IconLink","IconLink: FC<IconLinkProps>","ExternalLink","InternalLink","SocialMedia: FC<SocialMediaProps>","IconButton","SocialMediaIcon","SocialMedia","HamburgerMenu: FC","ExternalLink","InternalLink","IconButton","LogoSymbol","LogoHeader","PillButton","TextButton","MenuButton","Divider","IconLink","LightLink","SocialMedia"],"sources":["../src/header/constants/action-links.ts","../src/hamburger-menu/constants/channels.ts","../src/hamburger-menu/constants/social-media.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'\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 { 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.twitter,\n link: EXTERNAL_LINKS.twitter,\n target: '_blank',\n },\n {\n icon: MEDIA_TYPE.youtube,\n link: EXTERNAL_LINKS.youtube,\n target: '_blank',\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 scrollBarColor,\n 'scrollbar-w-1',\n 'scrollbar-thumb-rounded-xs'\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 {/* mobile search bar */}\n <div className=\"px-[32px] pt-[24px] pb-[8px]\">\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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"}
@@ -0,0 +1,487 @@
1
+ const require_chunk = require('./chunk-BxBTb9qk.js');
2
+ const require_constants = require('./constants-BmxSMOOn.js');
3
+ const require_paragraph = require('./paragraph-CJvb0_cM.js');
4
+ const require_theme = require('./theme-DDBlIbeS.js');
5
+ const require_button = require('./button-DFLYlJJW.js');
6
+ const require_external_links = require('./external-links-SfJjb48j.js');
7
+ const require_internal_links = require('./internal-links-CBkMU8cY.js');
8
+ const require_external_link = require('./external-link-CEDvlQYo.js');
9
+ const require_internal_link = require('./internal-link-CqTu3Yi5.js');
10
+ const require_divider = require('./divider-b3Shh7FV.js');
11
+ const require_context = require('./context-Bvr0Qj2x.js');
12
+ const require_constants$1 = require('./constants-DF_II8Fz.js');
13
+ const require_icons = require('./icons-DF-7dKxN.js');
14
+ const require_dropdown_menu = require('./dropdown-menu-CCtPuYyJ.js');
15
+ const require_logo = require('./logo-D4M-1sGD.js');
16
+ let react = require("react");
17
+ react = require_chunk.__toESM(react);
18
+ let clsx = require("clsx");
19
+ clsx = require_chunk.__toESM(clsx);
20
+ let react_jsx_runtime = require("react/jsx-runtime");
21
+ react_jsx_runtime = require_chunk.__toESM(react_jsx_runtime);
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
+ //#region src/hamburger-menu/constants/channels.ts
49
+ const CHANNEL_TYPE = {
50
+ link: "link",
51
+ divider: "divider",
52
+ dropdown: "dropdown",
53
+ iconLink: "icon-link",
54
+ lightLink: "light-link"
55
+ };
56
+ const Channels = [
57
+ {
58
+ type: CHANNEL_TYPE.link,
59
+ label: "最新",
60
+ to: require_internal_links.INTERNAL_LINKS.latest,
61
+ target: "_self"
62
+ },
63
+ { type: CHANNEL_TYPE.divider },
64
+ {
65
+ type: CHANNEL_TYPE.link,
66
+ label: "深度專題",
67
+ to: require_internal_links.INTERNAL_LINKS.topics,
68
+ target: "_self"
69
+ },
70
+ {
71
+ type: CHANNEL_TYPE.dropdown,
72
+ label: "議題",
73
+ dropdownItems: [
74
+ {
75
+ label: "國際兩岸",
76
+ to: require_internal_links.INTERNAL_LINKS.categories.world,
77
+ target: "_self"
78
+ },
79
+ {
80
+ label: "人權司法",
81
+ to: require_internal_links.INTERNAL_LINKS.categories.humanRights,
82
+ target: "_self"
83
+ },
84
+ {
85
+ label: "政治社會",
86
+ to: require_internal_links.INTERNAL_LINKS.categories.politicsAndSociety,
87
+ target: "_self"
88
+ },
89
+ {
90
+ label: "醫療健康",
91
+ to: require_internal_links.INTERNAL_LINKS.categories.health,
92
+ target: "_self"
93
+ },
94
+ {
95
+ label: "環境永續",
96
+ to: require_internal_links.INTERNAL_LINKS.categories.environment,
97
+ target: "_self"
98
+ },
99
+ {
100
+ label: "經濟產業",
101
+ to: require_internal_links.INTERNAL_LINKS.categories.econ,
102
+ target: "_self"
103
+ },
104
+ {
105
+ label: "文化生活",
106
+ to: require_internal_links.INTERNAL_LINKS.categories.culture,
107
+ target: "_self"
108
+ },
109
+ {
110
+ label: "教育校園",
111
+ to: require_internal_links.INTERNAL_LINKS.categories.education,
112
+ target: "_self"
113
+ }
114
+ ]
115
+ },
116
+ {
117
+ type: CHANNEL_TYPE.dropdown,
118
+ label: "評論",
119
+ dropdownItems: [
120
+ {
121
+ label: "書摘與書評",
122
+ to: require_internal_links.INTERNAL_LINKS.categories.opinion.bookReview,
123
+ target: "_self"
124
+ },
125
+ {
126
+ label: "讀者投書",
127
+ to: require_internal_links.INTERNAL_LINKS.categories.opinion.letter,
128
+ target: "_self"
129
+ },
130
+ {
131
+ label: "全部",
132
+ to: require_internal_links.INTERNAL_LINKS.categories.opinion.index,
133
+ target: "_self"
134
+ }
135
+ ]
136
+ },
137
+ {
138
+ type: CHANNEL_TYPE.link,
139
+ label: "人物故事",
140
+ to: require_internal_links.INTERNAL_LINKS.humanStory,
141
+ target: "_self"
142
+ },
143
+ { type: CHANNEL_TYPE.divider },
144
+ {
145
+ type: CHANNEL_TYPE.link,
146
+ label: "影像",
147
+ to: require_internal_links.INTERNAL_LINKS.photography,
148
+ target: "_self"
149
+ },
150
+ {
151
+ type: CHANNEL_TYPE.dropdown,
152
+ label: "Podcast",
153
+ dropdownItems: [
154
+ {
155
+ label: "關於報導者 Podcast",
156
+ to: require_internal_links.INTERNAL_LINKS.podcast.aboutPodcast,
157
+ target: "_self"
158
+ },
159
+ {
160
+ label: "The Real Story",
161
+ to: require_internal_links.INTERNAL_LINKS.categories.podcast.theRealStory,
162
+ target: "_self"
163
+ },
164
+ {
165
+ label: "On the Ground 路邊攤計劃",
166
+ to: require_internal_links.INTERNAL_LINKS.categories.podcast.onTheGround,
167
+ target: "_self"
168
+ }
169
+ ]
170
+ },
171
+ {
172
+ type: CHANNEL_TYPE.link,
173
+ label: "少年報導者",
174
+ to: require_external_links.EXTERNAL_LINKS.kidsReporter,
175
+ target: "_blank"
176
+ },
177
+ {
178
+ type: CHANNEL_TYPE.link,
179
+ label: "報導者觀測站",
180
+ to: require_external_links.EXTERNAL_LINKS.lawmaker,
181
+ target: "_blank"
182
+ },
183
+ {
184
+ type: CHANNEL_TYPE.link,
185
+ label: "數位敘事",
186
+ to: require_internal_links.INTERNAL_LINKS.infographic,
187
+ target: "_self"
188
+ },
189
+ { type: CHANNEL_TYPE.divider },
190
+ {
191
+ type: CHANNEL_TYPE.iconLink,
192
+ label: "個人專區",
193
+ icon: "member",
194
+ to: require_internal_links.INTERNAL_LINKS.account.index,
195
+ target: "_self"
196
+ },
197
+ {
198
+ type: CHANNEL_TYPE.iconLink,
199
+ label: "我的閱讀",
200
+ icon: "kid_star",
201
+ to: require_internal_links.INTERNAL_LINKS.myReading.index,
202
+ target: "_self"
203
+ },
204
+ {
205
+ type: CHANNEL_TYPE.iconLink,
206
+ label: "已收藏",
207
+ icon: "bookmark_basic",
208
+ to: require_internal_links.INTERNAL_LINKS.myReading.savedBookmarks,
209
+ target: "_self"
210
+ },
211
+ {
212
+ type: CHANNEL_TYPE.iconLink,
213
+ label: "造訪紀錄",
214
+ icon: "history",
215
+ to: require_internal_links.INTERNAL_LINKS.myReading.browsingHistory,
216
+ target: "_self"
217
+ },
218
+ { type: CHANNEL_TYPE.divider },
219
+ {
220
+ type: CHANNEL_TYPE.lightLink,
221
+ label: "基金會消息",
222
+ to: require_internal_links.INTERNAL_LINKS.categories.foundation.index,
223
+ target: "_self"
224
+ },
225
+ {
226
+ type: CHANNEL_TYPE.lightLink,
227
+ label: "關於我們",
228
+ to: require_internal_links.INTERNAL_LINKS.about,
229
+ target: "_blank"
230
+ },
231
+ {
232
+ type: CHANNEL_TYPE.lightLink,
233
+ label: "影響力報告",
234
+ to: require_internal_links.INTERNAL_LINKS.influenceReport,
235
+ target: "_self"
236
+ },
237
+ {
238
+ type: CHANNEL_TYPE.lightLink,
239
+ label: "報導者開放實驗室",
240
+ to: require_external_links.EXTERNAL_LINKS.openLab,
241
+ target: "_blank"
242
+ },
243
+ {
244
+ type: CHANNEL_TYPE.lightLink,
245
+ label: "出版品與周邊",
246
+ to: require_external_links.EXTERNAL_LINKS.publicationAndMerchandise,
247
+ target: "_blank"
248
+ },
249
+ { type: CHANNEL_TYPE.divider }
250
+ ];
251
+
252
+ //#endregion
253
+ //#region src/hamburger-menu/constants/social-media.ts
254
+ const SocialMedias = [
255
+ {
256
+ icon: require_constants$1.MEDIA_TYPE.facebook,
257
+ link: require_external_links.EXTERNAL_LINKS.facebook,
258
+ target: "_blank"
259
+ },
260
+ {
261
+ icon: require_constants$1.MEDIA_TYPE.instagram,
262
+ link: require_external_links.EXTERNAL_LINKS.instagram,
263
+ target: "_blank"
264
+ },
265
+ {
266
+ icon: require_constants$1.MEDIA_TYPE.twitter,
267
+ link: require_external_links.EXTERNAL_LINKS.twitter,
268
+ target: "_blank"
269
+ },
270
+ {
271
+ icon: require_constants$1.MEDIA_TYPE.youtube,
272
+ link: require_external_links.EXTERNAL_LINKS.youtube,
273
+ target: "_blank"
274
+ }
275
+ ];
276
+
277
+ //#endregion
278
+ //#region src/hamburger-menu/components/icon-link.tsx
279
+ const IconLink$1 = ({ label, icon, to, target }) => {
280
+ const { theme, releaseBranch, isLinkExternal } = (0, react.useContext)(require_context.HeaderContext);
281
+ const footerTheme = theme === require_theme.THEME.transparent ? require_theme.THEME.normal : theme;
282
+ const LinkComponent = isLinkExternal ? require_external_link.external_link_default : require_internal_link.internal_link_default;
283
+ const { color, hoverColor, hoverBgColor, svgHoverBgColor, svgBgColor, activeColor, activeBgColor, svgActiveBgColor } = require_dropdown_menu.selectHamburgerFooterTheme(footerTheme);
284
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LinkComponent, {
285
+ to,
286
+ target,
287
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
288
+ className: (0, clsx.default)("py-[8px] px-[32px] flex items-center", "[&>svg]:h-[18px] [&>svg]:w-[18px] [&>svg]:mr-[4px]", color, hoverColor, hoverBgColor, svgHoverBgColor, svgBgColor, activeColor, activeBgColor, svgActiveBgColor),
289
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.Icon, {
290
+ filename: icon,
291
+ releaseBranch
292
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_paragraph.P2, { text: label })]
293
+ })
294
+ });
295
+ };
296
+ var icon_link_default = IconLink$1;
297
+
298
+ //#endregion
299
+ //#region src/hamburger-menu/components/light-link.tsx
300
+ const IconLink = ({ label, to, target }) => {
301
+ const { theme, isLinkExternal } = (0, react.useContext)(require_context.HeaderContext);
302
+ const footerTheme = theme === require_theme.THEME.transparent ? require_theme.THEME.normal : theme;
303
+ const { color, hoverColor, hoverBgColor, activeColor, activeBgColor } = require_dropdown_menu.selectHamburgerFooterTheme(footerTheme);
304
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(isLinkExternal ? require_external_link.external_link_default : require_internal_link.internal_link_default, {
305
+ to,
306
+ target,
307
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
308
+ className: (0, clsx.default)("py-[8px] px-[32px] flex items-center", "[&>svg]:h-[18px] [&>svg]:w-[18px] [&>svg]:mr-[4px]", color, hoverColor, hoverBgColor, activeColor, activeBgColor),
309
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_paragraph.P2, { text: label })
310
+ })
311
+ });
312
+ };
313
+ var light_link_default = IconLink;
314
+
315
+ //#endregion
316
+ //#region src/hamburger-menu/components/social-media.tsx
317
+ const SocialMedia$1 = ({ mediaType }) => {
318
+ const { theme, releaseBranch } = (0, react.useContext)(require_context.HeaderContext);
319
+ const footerTheme = theme === require_theme.THEME.transparent ? require_theme.THEME.normal : theme;
320
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_button.icon_button_default, {
321
+ iconComponent: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.SocialMedia, {
322
+ mediaType,
323
+ releaseBranch
324
+ }),
325
+ theme: footerTheme,
326
+ className: (0, clsx.default)("[&>svg]:h-[32px] [&>svg]:w-[32px]", "[&>svg]:tablet:h-[24px] [&>svg]:tablet:w-[24px]")
327
+ });
328
+ };
329
+ var social_media_default = SocialMedia$1;
330
+
331
+ //#endregion
332
+ //#region src/hamburger-menu/index.tsx
333
+ const HamburgerMenu = () => {
334
+ const { theme, releaseBranch, isLinkExternal } = (0, react.useContext)(require_context.HeaderContext);
335
+ const { closeHamburgerMenu } = (0, react.useContext)(require_context.HamburgerContext);
336
+ const menuTheme = theme === require_theme.THEME.photography ? theme : require_theme.THEME.normal;
337
+ const { bgColor, scrollBarColor } = require_dropdown_menu.selectHamburgerMenuTheme(menuTheme);
338
+ const logoType = require_dropdown_menu.selectLogoType(menuTheme);
339
+ const [activeKey, setActiveKey] = (0, react.useState)("");
340
+ const LinkComponent = isLinkExternal ? require_external_link.external_link_default : require_internal_link.internal_link_default;
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]", scrollBarColor, "scrollbar-w-1", "scrollbar-thumb-rounded-xs"),
343
+ children: [
344
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
345
+ className: (0, clsx.default)("hidden items-center justify-end pt-[24px] pr-[32px] pb-[16px]", "tablet:flex"),
346
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_button.icon_button_default, {
347
+ iconComponent: require_icons.Cross(releaseBranch),
348
+ theme: menuTheme,
349
+ onClick: closeHamburgerMenu
350
+ })
351
+ }),
352
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LinkComponent, {
353
+ to: require_internal_links.INTERNAL_LINKS.home,
354
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
355
+ className: (0, clsx.default)("hidden justify-center [&>img]:h-[24px] [&>img]:w-[24px]", "tablet:flex"),
356
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_logo.logo_symbol_default, {
357
+ type: logoType,
358
+ releaseBranch
359
+ })
360
+ })
361
+ }),
362
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
363
+ className: (0, clsx.default)("flex items-center justify-between px-[24px] py-[16px]", "tablet:hidden"),
364
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(LinkComponent, {
365
+ to: require_internal_links.INTERNAL_LINKS.home,
366
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_logo.logo_header_default, {
367
+ type: logoType,
368
+ releaseBranch,
369
+ className: "h-[21px]"
370
+ })
371
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
372
+ className: "flex items-center gap-[16px]",
373
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(LinkComponent, {
374
+ to: require_external_links.EXTERNAL_LINKS.monthlyDonation,
375
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_button.pill_button_default, {
376
+ text: "贊助",
377
+ theme: require_button.pill_button_default.Theme.normal,
378
+ type: require_button.pill_button_default.Type.primary,
379
+ style: require_button.pill_button_default.Style.brand
380
+ })
381
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LinkComponent, {
382
+ to: require_internal_links.INTERNAL_LINKS.account.index,
383
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_button.text_button_default, {
384
+ text: "登入",
385
+ theme: require_button.text_button_default.Theme.normal,
386
+ style: require_button.text_button_default.Style.dark,
387
+ size: require_button.text_button_default.Size.s
388
+ })
389
+ })]
390
+ })]
391
+ }),
392
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
393
+ className: "px-[32px] pt-[24px] pb-[8px]",
394
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
395
+ type: "text",
396
+ className: (0, clsx.default)("w-full h-[40px] rounded-[20px] px-[16px]", "focus:outline-none"),
397
+ placeholder: "搜尋"
398
+ })
399
+ }),
400
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
401
+ className: "flex flex-col pt-[16px]",
402
+ children: Channels.map((channel, idx) => {
403
+ if (channel.type === CHANNEL_TYPE.link) {
404
+ const { color, hoverBgColor, activeBgColor } = require_dropdown_menu.selectHamburgerItemTheme(theme);
405
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LinkComponent, {
406
+ to: channel.to,
407
+ target: channel.target,
408
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_button.menu_button_default, {
409
+ text: channel.label,
410
+ fontWeight: require_button.menu_button_default.FontWeight.bold,
411
+ color,
412
+ p1ClassName: `${hoverBgColor} ${activeBgColor} pl-[32px] pr-[32px]`
413
+ }, channel.label)
414
+ }, channel.label);
415
+ }
416
+ if (channel.type === CHANNEL_TYPE.divider) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
417
+ className: "py-[16px] px-[32px]",
418
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_divider.divider_default, { direction: require_divider.divider_default.Direction.horizontal })
419
+ }, `divider-${idx}`);
420
+ if (channel.type === CHANNEL_TYPE.dropdown) {
421
+ const isActive = activeKey === channel.label;
422
+ const toggleFunc = (key) => {
423
+ setActiveKey(activeKey === key ? "" : key);
424
+ };
425
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
426
+ onClick: () => toggleFunc(channel.label),
427
+ type: "button",
428
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_dropdown_menu.DropdownMenu, {
429
+ text: channel.label,
430
+ isActive,
431
+ dropdownItems: channel.dropdownItems
432
+ })
433
+ }, channel.label);
434
+ }
435
+ if (channel.type === CHANNEL_TYPE.iconLink) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(icon_link_default, {
436
+ label: channel.label,
437
+ to: channel.to,
438
+ target: channel.target,
439
+ icon: channel.icon
440
+ }, channel.label);
441
+ if (channel.type === CHANNEL_TYPE.lightLink) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(light_link_default, {
442
+ label: channel.label,
443
+ to: channel.to,
444
+ target: channel.target
445
+ }, channel.label);
446
+ })
447
+ }),
448
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
449
+ className: "flex flex-row gap-[16px] justify-center",
450
+ children: SocialMedias.map((socialMedia) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LinkComponent, {
451
+ to: socialMedia.link,
452
+ target: socialMedia.target,
453
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(social_media_default, { mediaType: socialMedia.icon })
454
+ }, socialMedia.icon))
455
+ }),
456
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
457
+ className: (0, clsx.default)("hidden flex-col gap-[16px] px-[32px] pt-[40px] pb-[32px]", "tablet:flex"),
458
+ children: HAMBURGER_MENU_ACION_LINKS.map((link) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LinkComponent, {
459
+ to: link.to,
460
+ target: link.target,
461
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_button.pill_button_default, {
462
+ text: link.label,
463
+ theme,
464
+ type: link.type,
465
+ className: "w-full justify-center"
466
+ })
467
+ }, link.label))
468
+ })
469
+ ]
470
+ });
471
+ };
472
+ var hamburger_menu_default = HamburgerMenu;
473
+
474
+ //#endregion
475
+ Object.defineProperty(exports, 'HEADER_ACTION_LINKS', {
476
+ enumerable: true,
477
+ get: function () {
478
+ return HEADER_ACTION_LINKS;
479
+ }
480
+ });
481
+ Object.defineProperty(exports, 'hamburger_menu_default', {
482
+ enumerable: true,
483
+ get: function () {
484
+ return hamburger_menu_default;
485
+ }
486
+ });
487
+ //# sourceMappingURL=hamburger-menu-Bd_wmcAB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hamburger-menu-Bd_wmcAB.js","names":["HEADER_ACTION_LINKS: ActionLink[]","INTERNAL_LINKS","TYPE","EXTERNAL_LINKS","HAMBURGER_MENU_ACION_LINKS: ActionLink[]","INTERNAL_LINKS","EXTERNAL_LINKS","SocialMedias: SocialMediaType[]","MEDIA_TYPE","EXTERNAL_LINKS","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/header/constants/action-links.ts","../src/hamburger-menu/constants/channels.ts","../src/hamburger-menu/constants/social-media.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'\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 { 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.twitter,\n link: EXTERNAL_LINKS.twitter,\n target: '_blank',\n },\n {\n icon: MEDIA_TYPE.youtube,\n link: EXTERNAL_LINKS.youtube,\n target: '_blank',\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 scrollBarColor,\n 'scrollbar-w-1',\n 'scrollbar-thumb-rounded-xs'\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 {/* mobile search bar */}\n <div className=\"px-[32px] pt-[24px] pb-[8px]\">\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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"}
@@ -0,0 +1,26 @@
1
+ import "../index-BmIgLA0K.mjs";
2
+ import { Theme } from "../theme-ClamfAy8.mjs";
3
+ import { ReleaseBranch } from "../release-branch-DZwlCiWD.mjs";
4
+ import { FC } from "react";
5
+
6
+ //#region src/header/context/index.d.ts
7
+
8
+ type HamburgerContextType = {
9
+ toggleHamburger: () => void;
10
+ closeHamburgerMenu: () => void;
11
+ isHamburgerMenuOpen: boolean;
12
+ };
13
+ //#endregion
14
+ //#region src/header/index.d.ts
15
+ type HeaderProps = {
16
+ releaseBranch: ReleaseBranch;
17
+ isLinkExternal: boolean;
18
+ theme: Theme;
19
+ pathname: string;
20
+ referrerPath: string;
21
+ hamburgerContext: HamburgerContextType;
22
+ };
23
+ declare const Header: FC<HeaderProps>;
24
+ //#endregion
25
+ export { Header as default };
26
+ //# sourceMappingURL=index.d.mts.map