@twreporter/react-typescript-components 0.1.0-beta.17 → 0.1.0-beta.19

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 (206) hide show
  1. package/lib/button/constants.d.mts +2 -2
  2. package/lib/button/index.d.mts +12 -12
  3. package/lib/constants/release-branch.d.mts +2 -2
  4. package/lib/constants/theme.d.mts +2 -2
  5. package/lib/constants-0fgvpoyZ.js +171 -0
  6. package/lib/constants-0fgvpoyZ.js.map +1 -0
  7. package/lib/{constants-BnVX84Yl.d.mts → constants-B5th6nHM.d.mts} +2 -2
  8. package/lib/{constants-Cg4dfRV_.d.mts → constants-B95_A0GY.d.mts} +2 -2
  9. package/lib/{constants-91DoZaeP.js → constants-BV86fOLv.js} +1 -1
  10. package/lib/{constants-91DoZaeP.js.map → constants-BV86fOLv.js.map} +1 -1
  11. package/lib/{constants-BYqJQzQQ.mjs → constants-BZGBDC2T.mjs} +1 -1
  12. package/lib/{constants-BYqJQzQQ.mjs.map → constants-BZGBDC2T.mjs.map} +1 -1
  13. package/lib/{constants-CzHmv07x.d.ts → constants-C86Q6QlO.d.ts} +1 -1
  14. package/lib/{constants-C2kTkuiJ.d.mts → constants-D2OTwBsV.d.mts} +2 -2
  15. package/lib/{constants-P65Nafg1.d.mts → constants-DZWOFPZT.d.mts} +2 -2
  16. package/lib/constants-DyO2QpJk.mjs +154 -0
  17. package/lib/constants-DyO2QpJk.mjs.map +1 -0
  18. package/lib/{constants-oX1rftqQ.d.mts → constants-IzZ4bWWt.d.mts} +2 -2
  19. package/lib/{constants-BuIUKM2c.js → constants-nmH6p6-y.js} +1 -1
  20. package/lib/{constants-BuIUKM2c.js.map → constants-nmH6p6-y.js.map} +1 -1
  21. package/lib/{constants-Cz7n-nLz.mjs → constants-z9Q8ph_H.mjs} +1 -1
  22. package/lib/{constants-Cz7n-nLz.mjs.map → constants-z9Q8ph_H.mjs.map} +1 -1
  23. package/lib/customized-link/external-link.d.mts +2 -2
  24. package/lib/customized-link/external-link.d.ts +2 -2
  25. package/lib/customized-link/external-link.js +1 -1
  26. package/lib/customized-link/external-link.mjs +1 -1
  27. package/lib/customized-link/index.d.mts +6 -6
  28. package/lib/customized-link/index.d.ts +3 -3
  29. package/lib/customized-link/index.js +3 -3
  30. package/lib/customized-link/index.mjs +3 -3
  31. package/lib/customized-link/internal-link.d.mts +2 -2
  32. package/lib/customized-link/internal-link.d.ts +2 -2
  33. package/lib/customized-link/internal-link.js +1 -1
  34. package/lib/customized-link/internal-link.mjs +1 -1
  35. package/lib/customized-link/type.d.mts +1 -1
  36. package/lib/customized-link/type.d.ts +1 -1
  37. package/lib/{customized-link-DNKmWI0u.mjs → customized-link-BacydHK_.mjs} +3 -3
  38. package/lib/{customized-link-DNKmWI0u.mjs.map → customized-link-BacydHK_.mjs.map} +1 -1
  39. package/lib/{customized-link-XNoMkeYw.js → customized-link-CHH91yod.js} +3 -3
  40. package/lib/{customized-link-XNoMkeYw.js.map → customized-link-CHH91yod.js.map} +1 -1
  41. package/lib/divider/constants.d.mts +2 -2
  42. package/lib/divider/constants.js +1 -1
  43. package/lib/divider/constants.mjs +1 -1
  44. package/lib/divider/index.d.mts +2 -2
  45. package/lib/divider/index.js +2 -2
  46. package/lib/divider/index.mjs +2 -2
  47. package/lib/{divider-Db3AhImD.js → divider-B1zvSjNJ.js} +2 -2
  48. package/lib/{divider-Db3AhImD.js.map → divider-B1zvSjNJ.js.map} +1 -1
  49. package/lib/{divider-CEIxmAsH.mjs → divider-CE4u6SR5.mjs} +2 -2
  50. package/lib/{divider-CEIxmAsH.mjs.map → divider-CE4u6SR5.mjs.map} +1 -1
  51. package/lib/dropdown-menu/index.d.mts +1 -1
  52. package/lib/dropdown-menu/index.d.ts +1 -1
  53. package/lib/dropdown-menu/index.js +4 -4
  54. package/lib/dropdown-menu/index.mjs +4 -4
  55. package/lib/{dropdown-menu-tbV9rhnw.js → dropdown-menu-D4XjLl7G.js} +3 -3
  56. package/lib/{dropdown-menu-tbV9rhnw.js.map → dropdown-menu-D4XjLl7G.js.map} +1 -1
  57. package/lib/{dropdown-menu-CuyS5r71.mjs → dropdown-menu-jbg-kt3s.mjs} +3 -3
  58. package/lib/{dropdown-menu-CuyS5r71.mjs.map → dropdown-menu-jbg-kt3s.mjs.map} +1 -1
  59. package/lib/{external-link-khVeTReZ.d.mts → external-link-0t606cM_.d.mts} +2 -2
  60. package/lib/{external-link-2XoC1_oL.d.ts → external-link-B3tELAVU.d.ts} +2 -2
  61. package/lib/{external-link-BykRRwmY.mjs → external-link-Diro-q37.mjs} +4 -2
  62. package/lib/external-link-Diro-q37.mjs.map +1 -0
  63. package/lib/{external-link-BMrkjNyi.js → external-link-afU9uFB6.js} +4 -2
  64. package/lib/external-link-afU9uFB6.js.map +1 -0
  65. package/lib/footer/constants.d.mts +51 -0
  66. package/lib/footer/constants.d.ts +51 -0
  67. package/lib/footer/constants.js +7 -0
  68. package/lib/footer/constants.mjs +5 -0
  69. package/lib/footer/index.d.mts +12 -0
  70. package/lib/footer/index.d.ts +11 -0
  71. package/lib/footer/index.js +103 -0
  72. package/lib/footer/index.js.map +1 -0
  73. package/lib/footer/index.mjs +100 -0
  74. package/lib/footer/index.mjs.map +1 -0
  75. package/lib/footer/links.d.mts +23 -0
  76. package/lib/footer/links.d.ts +23 -0
  77. package/lib/footer/links.js +19 -0
  78. package/lib/footer/links.mjs +17 -0
  79. package/lib/footer/logo.d.mts +12 -0
  80. package/lib/footer/logo.d.ts +11 -0
  81. package/lib/footer/logo.js +9 -0
  82. package/lib/footer/logo.mjs +9 -0
  83. package/lib/hamburger-menu/index.js +10 -11
  84. package/lib/hamburger-menu/index.mjs +10 -11
  85. package/lib/{hamburger-menu-Ca6QMgF9.mjs → hamburger-menu-MQgF0vLX.mjs} +9 -9
  86. package/lib/{hamburger-menu-Ca6QMgF9.mjs.map → hamburger-menu-MQgF0vLX.mjs.map} +1 -1
  87. package/lib/{hamburger-menu-qrLPGpHF.js → hamburger-menu-baCi46g2.js} +9 -9
  88. package/lib/{hamburger-menu-qrLPGpHF.js.map → hamburger-menu-baCi46g2.js.map} +1 -1
  89. package/lib/header/index.d.mts +3 -3
  90. package/lib/header/index.js +19 -19
  91. package/lib/header/index.js.map +1 -1
  92. package/lib/header/index.mjs +18 -18
  93. package/lib/header/index.mjs.map +1 -1
  94. package/lib/{heading-BWuXn7wB.mjs → heading-Cljxy-62.mjs} +1 -1
  95. package/lib/{heading-BWuXn7wB.mjs.map → heading-Cljxy-62.mjs.map} +1 -1
  96. package/lib/{heading-DJepEhoE.js → heading-Dnpw_s7U.js} +1 -1
  97. package/lib/{heading-DJepEhoE.js.map → heading-Dnpw_s7U.js.map} +1 -1
  98. package/lib/hooks/index.d.mts +3 -3
  99. package/lib/hooks/index.js +2 -2
  100. package/lib/hooks/index.mjs +2 -2
  101. package/lib/hooks/use-outside-click.d.mts +1 -1
  102. package/lib/hooks/use-outside-click.js +1 -1
  103. package/lib/hooks/use-outside-click.mjs +1 -1
  104. package/lib/{hooks-Mt5N4Z2W.js → hooks-BxlKOoQu.js} +2 -2
  105. package/lib/{hooks-Mt5N4Z2W.js.map → hooks-BxlKOoQu.js.map} +1 -1
  106. package/lib/{hooks-DFV2v01e.mjs → hooks-DmImq-Z7.mjs} +2 -2
  107. package/lib/{hooks-DFV2v01e.mjs.map → hooks-DmImq-Z7.mjs.map} +1 -1
  108. package/lib/icons/constants.d.mts +2 -2
  109. package/lib/icons/index.d.mts +12 -12
  110. package/lib/{index-DaRD2S-9.d.mts → index-DegwO8ei.d.mts} +1 -1
  111. package/lib/input/constants.d.mts +17 -3
  112. package/lib/input/constants.d.ts +17 -3
  113. package/lib/input/constants.js +15 -4
  114. package/lib/input/constants.js.map +1 -0
  115. package/lib/input/constants.mjs +13 -2
  116. package/lib/input/constants.mjs.map +1 -0
  117. package/lib/input/index.d.mts +7 -10
  118. package/lib/input/index.d.ts +2 -5
  119. package/lib/input/index.js +2 -3
  120. package/lib/input/index.mjs +2 -3
  121. package/lib/input/theme.d.mts +2 -2
  122. package/lib/input/theme.js +1 -1
  123. package/lib/input/theme.mjs +1 -1
  124. package/lib/{input-czWOItrW.js → input-DaMbsNrg.js} +6 -8
  125. package/lib/input-DaMbsNrg.js.map +1 -0
  126. package/lib/{input-_Hl5B4_K.mjs → input-DvriSZ9o.mjs} +6 -8
  127. package/lib/input-DvriSZ9o.mjs.map +1 -0
  128. package/lib/{internal-link-BLXTBMRq.js → internal-link-Bq4yp13E.js} +4 -2
  129. package/lib/{internal-link-BLXTBMRq.js.map → internal-link-Bq4yp13E.js.map} +1 -1
  130. package/lib/{internal-link-NQb751uB.mjs → internal-link-DCXJvzgx.mjs} +4 -2
  131. package/lib/{internal-link-NQb751uB.mjs.map → internal-link-DCXJvzgx.mjs.map} +1 -1
  132. package/lib/{internal-link-BSb3__eR.d.mts → internal-link-Daag4Lrv.d.mts} +2 -2
  133. package/lib/{internal-link-DCSEl1jM.d.ts → internal-link-DtMsmfE9.d.ts} +2 -2
  134. package/lib/links-DO97xw7S.mjs +89 -0
  135. package/lib/links-DO97xw7S.mjs.map +1 -0
  136. package/lib/links-Xuo8pb4a.js +110 -0
  137. package/lib/links-Xuo8pb4a.js.map +1 -0
  138. package/lib/logo/constants.d.mts +2 -2
  139. package/lib/logo/constants.d.ts +1 -1
  140. package/lib/logo/index.d.mts +26 -11
  141. package/lib/logo/index.d.ts +19 -4
  142. package/lib/logo/index.js +2 -1
  143. package/lib/logo/index.mjs +2 -2
  144. package/lib/{logo-BTNfdxTv.js → logo-B3GSkN1O.js} +28 -5
  145. package/lib/logo-B3GSkN1O.js.map +1 -0
  146. package/lib/logo-C5NgKyYa.js +32 -0
  147. package/lib/logo-C5NgKyYa.js.map +1 -0
  148. package/lib/logo-CumKSrK5.mjs +24 -0
  149. package/lib/logo-CumKSrK5.mjs.map +1 -0
  150. package/lib/{logo-D68VZ-fc.mjs → logo-NfYCtrtN.mjs} +22 -6
  151. package/lib/logo-NfYCtrtN.mjs.map +1 -0
  152. package/lib/{release-branch-8qGtkKtd.d.mts → release-branch-CaxOk9Rq.d.mts} +2 -2
  153. package/lib/styles.css +135 -0
  154. package/lib/tab-bar/constants.d.mts +3 -3
  155. package/lib/tab-bar/constants.d.ts +1 -1
  156. package/lib/tab-bar/constants.js +1 -1
  157. package/lib/tab-bar/constants.mjs +1 -1
  158. package/lib/tab-bar/index.js +6 -6
  159. package/lib/tab-bar/index.mjs +6 -6
  160. package/lib/tab-bar/theme.d.mts +2 -2
  161. package/lib/tab-bar/theme.js +1 -1
  162. package/lib/tab-bar/theme.mjs +1 -1
  163. package/lib/{tab-bar-BqiC7-Lw.mjs → tab-bar-CQjgjdkW.mjs} +5 -5
  164. package/lib/{tab-bar-BqiC7-Lw.mjs.map → tab-bar-CQjgjdkW.mjs.map} +1 -1
  165. package/lib/{tab-bar-Binq1EhQ.js → tab-bar-Dq0ewfWA.js} +5 -5
  166. package/lib/{tab-bar-Binq1EhQ.js.map → tab-bar-Dq0ewfWA.js.map} +1 -1
  167. package/lib/text/constants.d.mts +2 -2
  168. package/lib/text/heading.d.mts +2 -2
  169. package/lib/text/heading.js +1 -1
  170. package/lib/text/heading.mjs +1 -1
  171. package/lib/text/paragraph.d.mts +2 -2
  172. package/lib/{theme-BOMyqC4d.js → theme-BQQzAfHb.js} +1 -1
  173. package/lib/{theme-BOMyqC4d.js.map → theme-BQQzAfHb.js.map} +1 -1
  174. package/lib/{theme-PhMjSVv9.mjs → theme-CDCgzSJw.mjs} +1 -1
  175. package/lib/{theme-PhMjSVv9.mjs.map → theme-CDCgzSJw.mjs.map} +1 -1
  176. package/lib/{theme-B9CWW8U9.d.mts → theme-Cx5oFufE.d.mts} +2 -2
  177. package/lib/{theme-CkSx7UX3.mjs → theme-D_LHh2_S.mjs} +1 -1
  178. package/lib/{theme-CkSx7UX3.mjs.map → theme-D_LHh2_S.mjs.map} +1 -1
  179. package/lib/{theme-CIEkzycI.js → theme-LkZX5giH.js} +1 -1
  180. package/lib/{theme-CIEkzycI.js.map → theme-LkZX5giH.js.map} +1 -1
  181. package/lib/title-bar/index.d.mts +4 -4
  182. package/lib/title-bar/index.d.ts +4 -4
  183. package/lib/title-bar/index.js +4 -4
  184. package/lib/title-bar/index.mjs +4 -4
  185. package/lib/{type-C4hJK9H9.d.ts → type-DGvbr3Rm.d.mts} +3 -1
  186. package/lib/{type-4zpM3Fk5.d.mts → type-ubTUOk6A.d.ts} +3 -1
  187. package/lib/types/index.d.mts +1 -1
  188. package/lib/{use-outside-click-Bz_v9VCq.mjs → use-outside-click-Br_ste4n.mjs} +1 -1
  189. package/lib/{use-outside-click-Bz_v9VCq.mjs.map → use-outside-click-Br_ste4n.mjs.map} +1 -1
  190. package/lib/{use-outside-click-436PXIeY.js → use-outside-click-Cl1QlhTH.js} +1 -1
  191. package/lib/{use-outside-click-436PXIeY.js.map → use-outside-click-Cl1QlhTH.js.map} +1 -1
  192. package/lib/use-outside-click-Diz2B7wx.d.mts +7 -0
  193. package/package.json +2 -2
  194. package/lib/constants-BGUGvo1A.d.ts +0 -22
  195. package/lib/constants-BP47D2l7.js +0 -36
  196. package/lib/constants-BP47D2l7.js.map +0 -1
  197. package/lib/constants-CxHP9dkH.d.mts +0 -22
  198. package/lib/constants-Dfgyc0ND.mjs +0 -18
  199. package/lib/constants-Dfgyc0ND.mjs.map +0 -1
  200. package/lib/external-link-BMrkjNyi.js.map +0 -1
  201. package/lib/external-link-BykRRwmY.mjs.map +0 -1
  202. package/lib/input-_Hl5B4_K.mjs.map +0 -1
  203. package/lib/input-czWOItrW.js.map +0 -1
  204. package/lib/logo-BTNfdxTv.js.map +0 -1
  205. package/lib/logo-D68VZ-fc.mjs.map +0 -1
  206. package/lib/use-outside-click-DToGSYRk.d.mts +0 -7
@@ -0,0 +1,103 @@
1
+ const require_chunk = require('../chunk-BxBTb9qk.js');
2
+ require('../constants-BmxSMOOn.js');
3
+ require('../constants-Cndhv6qr.js');
4
+ const require_paragraph = require('../paragraph-iuz3jP0Q.js');
5
+ require('../theme-DDBlIbeS.js');
6
+ const require_button = require('../button-Dk0MxlKd.js');
7
+ const require_external_links = require('../external-links-DCn-uTD-.js');
8
+ require('../internal-links-DxtMobuI.js');
9
+ require('../release-branch-CRZV4Ivz.js');
10
+ require('../request-origins-BDXulkK9.js');
11
+ const require_external_link = require('../external-link-afU9uFB6.js');
12
+ require('../internal-link-Bq4yp13E.js');
13
+ require('../customized-link-CHH91yod.js');
14
+ require('../constants-nmH6p6-y.js');
15
+ const require_divider = require('../divider-B1zvSjNJ.js');
16
+ require('../constants-D8wNUvoZ.js');
17
+ require('../icons-qP5oNB0W.js');
18
+ require('../constants-C2moxnps.js');
19
+ const require_constants$5 = require('../constants-0fgvpoyZ.js');
20
+ require('../logo-B3GSkN1O.js');
21
+ const require_logo$1 = require('../logo-C5NgKyYa.js');
22
+ const require_links = require('../links-Xuo8pb4a.js');
23
+ let clsx = require("clsx");
24
+ clsx = require_chunk.__toESM(clsx);
25
+ let react_jsx_runtime = require("react/jsx-runtime");
26
+ react_jsx_runtime = require_chunk.__toESM(react_jsx_runtime);
27
+
28
+ //#region src/footer/index.tsx
29
+ const Footer = ({ releaseBranch }) => {
30
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("footer", {
31
+ className: (0, clsx.default)("w-full bg-gray-white"),
32
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
33
+ className: (0, clsx.default)("flex flex-col mx-auto justify-center max-w-[400px] px-[24px] pt-[48px] pb-[96px]", "desktop:max-w-[1200px] desktop:px-[48px] desktop:py-[48px]"),
34
+ children: [
35
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
36
+ className: (0, clsx.default)("w-full flex flex-col justify-center", "desktop:flex-row desktop:justify-between"),
37
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
38
+ className: (0, clsx.default)("flex flex-col w-full gap-[32px] mb-[48px] items-center text-center", "desktop:max-w-[320px] desktop:mb-0 desktop:text-start desktop:items-start"),
39
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
40
+ className: (0, clsx.default)("w-full flex flex-col gap-[16px] items-center", "desktop:gap-[24px] desktop:items-start"),
41
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_logo$1.logo_default, { releaseBranch }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_paragraph.P2, {
42
+ className: "text-gray-600",
43
+ text: "台灣第一個由公益基金會成立的網路媒體,致力於公共領域調查報導,打造多元進步的媒體環境。"
44
+ })]
45
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_external_link.external_link_default, {
46
+ to: require_external_links.EXTERNAL_LINKS.monthlyDonation,
47
+ target: "_blank",
48
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_button.pill_button_default, {
49
+ className: "w-[280px]! justify-center!",
50
+ type: require_button.pill_button_default.Type.secondary,
51
+ size: require_button.pill_button_default.Size.l,
52
+ text: "贊助我們"
53
+ })
54
+ })]
55
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
56
+ className: (0, clsx.default)("flex mb-[16px] gap-[16px]", "desktop:gap-[24px]"),
57
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_links.LinkButtonGroups, { releaseBranch })
58
+ })]
59
+ }),
60
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_divider.divider_default, { className: "w-full my-[24px]" }),
61
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
62
+ className: (0, clsx.default)("flex flex-col-reverse gap-[24px] items-center text-center", "desktop:flex-row desktop:justify-between desktop:gap-0"),
63
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
64
+ className: (0, clsx.default)("flex flex-col items-center", "desktop:flex-row"),
65
+ children: [
66
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_paragraph.P3, {
67
+ className: "text-gray-600",
68
+ text: require_constants$5.FUNDRAISING_ID
69
+ }),
70
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
71
+ className: "hidden desktop:flex",
72
+ children: [
73
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_paragraph.P3, {
74
+ className: "text-gray-600",
75
+ text: "|"
76
+ }),
77
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_links.InfoLinks, { releaseBranch }),
78
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_paragraph.P3, {
79
+ className: "text-gray-600",
80
+ text: "|"
81
+ })
82
+ ]
83
+ }),
84
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
85
+ className: "flex desktop:hidden",
86
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_links.InfoLinks, { releaseBranch })
87
+ }),
88
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_paragraph.P3, {
89
+ className: "text-gray-600",
90
+ text: `Copyright © ${(/* @__PURE__ */ new Date()).getFullYear()} The Reporter.`
91
+ })
92
+ ]
93
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_links.SocialLinks, { releaseBranch })]
94
+ })
95
+ ]
96
+ })
97
+ });
98
+ };
99
+ var footer_default = Footer;
100
+
101
+ //#endregion
102
+ module.exports = footer_default;
103
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["Footer: FC<FooterProps>","Logo","P2","ExternalLink","EXTERNAL_LINKS","PillButton","LinkButtonGroups","Divider","P3","FUNDRAISING_ID","InfoLinks","SocialLinks"],"sources":["../../src/footer/index.tsx"],"sourcesContent":["import type { FC } from 'react'\nimport clsx from 'clsx'\n// text\nimport { P2, P3 } from '../text/paragraph'\n// divider\nimport Divider from '../divider'\n// constants\nimport type { ReleaseBranch } from '../constants/release-branch'\nimport { FUNDRAISING_ID } from './constants'\nimport { EXTERNAL_LINKS } from '../constants/external-links'\n// components\nimport Logo from './logo'\nimport { SocialLinks, InfoLinks, LinkButtonGroups } from './links'\n// button\nimport { PillButton } from '../button'\n// link\nimport { ExternalLink } from '../customized-link'\n\ntype FooterProps = {\n releaseBranch: ReleaseBranch\n}\nconst Footer: FC<FooterProps> = ({ releaseBranch }) => {\n return (\n <footer className={clsx('w-full bg-gray-white')}>\n <div\n className={clsx(\n 'flex flex-col mx-auto justify-center max-w-[400px] px-[24px] pt-[48px] pb-[96px]',\n 'desktop:max-w-[1200px] desktop:px-[48px] desktop:py-[48px]'\n )}\n >\n {/* upper content */}\n <div\n className={clsx(\n 'w-full flex flex-col justify-center',\n 'desktop:flex-row desktop:justify-between'\n )}\n >\n {/* information content */}\n <div\n className={clsx(\n 'flex flex-col w-full gap-[32px] mb-[48px] items-center text-center',\n 'desktop:max-w-[320px] desktop:mb-0 desktop:text-start desktop:items-start'\n )}\n >\n {/* logo */}\n <div\n className={clsx(\n 'w-full flex flex-col gap-[16px] items-center',\n 'desktop:gap-[24px] desktop:items-start'\n )}\n >\n <Logo releaseBranch={releaseBranch} />\n <P2\n className=\"text-gray-600\"\n text=\"台灣第一個由公益基金會成立的網路媒體,致力於公共領域調查報導,打造多元進步的媒體環境。\"\n />\n </div>\n {/* donation button */}\n <ExternalLink to={EXTERNAL_LINKS.monthlyDonation} target=\"_blank\">\n <PillButton\n className=\"w-[280px]! justify-center!\"\n type={PillButton.Type.secondary}\n size={PillButton.Size.l}\n text={'贊助我們'}\n />\n </ExternalLink>\n </div>\n {/* links content */}\n <div\n className={clsx('flex mb-[16px] gap-[16px]', 'desktop:gap-[24px]')}\n >\n <LinkButtonGroups releaseBranch={releaseBranch} />\n </div>\n </div>\n <Divider className=\"w-full my-[24px]\" />\n {/* lower content */}\n <div\n className={clsx(\n 'flex flex-col-reverse gap-[24px] items-center text-center',\n 'desktop:flex-row desktop:justify-between desktop:gap-0'\n )}\n >\n {/* info */}\n <div\n className={clsx('flex flex-col items-center', 'desktop:flex-row')}\n >\n <P3 className=\"text-gray-600\" text={FUNDRAISING_ID} />\n <div className=\"hidden desktop:flex\">\n <P3 className=\"text-gray-600\" text=\"|\" />\n <InfoLinks releaseBranch={releaseBranch} />\n <P3 className=\"text-gray-600\" text=\"|\" />\n </div>\n <div className=\"flex desktop:hidden\">\n <InfoLinks releaseBranch={releaseBranch} />\n </div>\n <P3\n className=\"text-gray-600\"\n text={`Copyright © ${new Date().getFullYear()} The Reporter.`}\n />\n </div>\n {/* social links */}\n <SocialLinks releaseBranch={releaseBranch} />\n </div>\n </div>\n </footer>\n )\n}\n\nexport default Footer\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAMA,UAA2B,EAAE,oBAAoB;AACrD,QACE,2CAAC;EAAO,6BAAgB,uBAAuB;YAC7C,4CAAC;GACC,6BACE,oFACA,6DACD;;IAGD,4CAAC;KACC,6BACE,uCACA,2CACD;gBAGD,4CAAC;MACC,6BACE,sEACA,4EACD;iBAGD,4CAAC;OACC,6BACE,gDACA,yCACD;kBAED,2CAACC,+BAAoB,gBAAiB,EACtC,2CAACC;QACC,WAAU;QACV,MAAK;SACL;QACE,EAEN,2CAACC;OAAa,IAAIC,sCAAe;OAAiB,QAAO;iBACvD,2CAACC;QACC,WAAU;QACV,MAAMA,mCAAW,KAAK;QACtB,MAAMA,mCAAW,KAAK;QACtB,MAAM;SACN;QACW;OACX,EAEN,2CAAC;MACC,6BAAgB,6BAA6B,qBAAqB;gBAElE,2CAACC,kCAAgC,gBAAiB;OAC9C;MACF;IACN,2CAACC,mCAAQ,WAAU,qBAAqB;IAExC,4CAAC;KACC,6BACE,6DACA,yDACD;gBAGD,4CAAC;MACC,6BAAgB,8BAA8B,mBAAmB;;OAEjE,2CAACC;QAAG,WAAU;QAAgB,MAAMC;SAAkB;OACtD,4CAAC;QAAI,WAAU;;SACb,2CAACD;UAAG,WAAU;UAAgB,MAAK;WAAM;SACzC,2CAACE,2BAAyB,gBAAiB;SAC3C,2CAACF;UAAG,WAAU;UAAgB,MAAK;WAAM;;SACrC;OACN,2CAAC;QAAI,WAAU;kBACb,2CAACE,2BAAyB,gBAAiB;SACvC;OACN,2CAACF;QACC,WAAU;QACV,MAAM,gCAAe,IAAI,MAAM,EAAC,aAAa,CAAC;SAC9C;;OACE,EAEN,2CAACG,6BAA2B,gBAAiB;MACzC;;IACF;GACC;;AAIb,qBAAe"}
@@ -0,0 +1,100 @@
1
+ import "../internal-link-DCXJvzgx.mjs";
2
+ import "../constants-oTHAnh6r.mjs";
3
+ import "../constants-CBSEPx91.mjs";
4
+ import { P2, P3 } from "../paragraph-Cf9jr8RF.mjs";
5
+ import "../theme-BG6yZVj-.mjs";
6
+ import { pill_button_default } from "../button-D_AWI7r9.mjs";
7
+ import { EXTERNAL_LINKS } from "../external-links-B-A17Osq.mjs";
8
+ import "../internal-links-CP3dqmrz.mjs";
9
+ import "../release-branch-DNCD1uH_.mjs";
10
+ import "../request-origins-CGkNWg8R.mjs";
11
+ import { external_link_default } from "../external-link-Diro-q37.mjs";
12
+ import "../customized-link-BacydHK_.mjs";
13
+ import "../constants-z9Q8ph_H.mjs";
14
+ import { divider_default } from "../divider-CE4u6SR5.mjs";
15
+ import "../constants-5phfWHvb.mjs";
16
+ import "../icons-I7T-auOQ.mjs";
17
+ import "../constants-DRxdMM_X.mjs";
18
+ import { FUNDRAISING_ID } from "../constants-DyO2QpJk.mjs";
19
+ import "../logo-NfYCtrtN.mjs";
20
+ import { logo_default } from "../logo-CumKSrK5.mjs";
21
+ import { InfoLinks, LinkButtonGroups, SocialLinks } from "../links-DO97xw7S.mjs";
22
+ import clsx from "clsx";
23
+ import { jsx, jsxs } from "react/jsx-runtime";
24
+
25
+ //#region src/footer/index.tsx
26
+ const Footer = ({ releaseBranch }) => {
27
+ return /* @__PURE__ */ jsx("footer", {
28
+ className: clsx("w-full bg-gray-white"),
29
+ children: /* @__PURE__ */ jsxs("div", {
30
+ className: clsx("flex flex-col mx-auto justify-center max-w-[400px] px-[24px] pt-[48px] pb-[96px]", "desktop:max-w-[1200px] desktop:px-[48px] desktop:py-[48px]"),
31
+ children: [
32
+ /* @__PURE__ */ jsxs("div", {
33
+ className: clsx("w-full flex flex-col justify-center", "desktop:flex-row desktop:justify-between"),
34
+ children: [/* @__PURE__ */ jsxs("div", {
35
+ className: clsx("flex flex-col w-full gap-[32px] mb-[48px] items-center text-center", "desktop:max-w-[320px] desktop:mb-0 desktop:text-start desktop:items-start"),
36
+ children: [/* @__PURE__ */ jsxs("div", {
37
+ className: clsx("w-full flex flex-col gap-[16px] items-center", "desktop:gap-[24px] desktop:items-start"),
38
+ children: [/* @__PURE__ */ jsx(logo_default, { releaseBranch }), /* @__PURE__ */ jsx(P2, {
39
+ className: "text-gray-600",
40
+ text: "台灣第一個由公益基金會成立的網路媒體,致力於公共領域調查報導,打造多元進步的媒體環境。"
41
+ })]
42
+ }), /* @__PURE__ */ jsx(external_link_default, {
43
+ to: EXTERNAL_LINKS.monthlyDonation,
44
+ target: "_blank",
45
+ children: /* @__PURE__ */ jsx(pill_button_default, {
46
+ className: "w-[280px]! justify-center!",
47
+ type: pill_button_default.Type.secondary,
48
+ size: pill_button_default.Size.l,
49
+ text: "贊助我們"
50
+ })
51
+ })]
52
+ }), /* @__PURE__ */ jsx("div", {
53
+ className: clsx("flex mb-[16px] gap-[16px]", "desktop:gap-[24px]"),
54
+ children: /* @__PURE__ */ jsx(LinkButtonGroups, { releaseBranch })
55
+ })]
56
+ }),
57
+ /* @__PURE__ */ jsx(divider_default, { className: "w-full my-[24px]" }),
58
+ /* @__PURE__ */ jsxs("div", {
59
+ className: clsx("flex flex-col-reverse gap-[24px] items-center text-center", "desktop:flex-row desktop:justify-between desktop:gap-0"),
60
+ children: [/* @__PURE__ */ jsxs("div", {
61
+ className: clsx("flex flex-col items-center", "desktop:flex-row"),
62
+ children: [
63
+ /* @__PURE__ */ jsx(P3, {
64
+ className: "text-gray-600",
65
+ text: FUNDRAISING_ID
66
+ }),
67
+ /* @__PURE__ */ jsxs("div", {
68
+ className: "hidden desktop:flex",
69
+ children: [
70
+ /* @__PURE__ */ jsx(P3, {
71
+ className: "text-gray-600",
72
+ text: "|"
73
+ }),
74
+ /* @__PURE__ */ jsx(InfoLinks, { releaseBranch }),
75
+ /* @__PURE__ */ jsx(P3, {
76
+ className: "text-gray-600",
77
+ text: "|"
78
+ })
79
+ ]
80
+ }),
81
+ /* @__PURE__ */ jsx("div", {
82
+ className: "flex desktop:hidden",
83
+ children: /* @__PURE__ */ jsx(InfoLinks, { releaseBranch })
84
+ }),
85
+ /* @__PURE__ */ jsx(P3, {
86
+ className: "text-gray-600",
87
+ text: `Copyright © ${(/* @__PURE__ */ new Date()).getFullYear()} The Reporter.`
88
+ })
89
+ ]
90
+ }), /* @__PURE__ */ jsx(SocialLinks, { releaseBranch })]
91
+ })
92
+ ]
93
+ })
94
+ });
95
+ };
96
+ var footer_default = Footer;
97
+
98
+ //#endregion
99
+ export { footer_default as default };
100
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":["Footer: FC<FooterProps>","Logo","ExternalLink","PillButton","Divider"],"sources":["../../src/footer/index.tsx"],"sourcesContent":["import type { FC } from 'react'\nimport clsx from 'clsx'\n// text\nimport { P2, P3 } from '../text/paragraph'\n// divider\nimport Divider from '../divider'\n// constants\nimport type { ReleaseBranch } from '../constants/release-branch'\nimport { FUNDRAISING_ID } from './constants'\nimport { EXTERNAL_LINKS } from '../constants/external-links'\n// components\nimport Logo from './logo'\nimport { SocialLinks, InfoLinks, LinkButtonGroups } from './links'\n// button\nimport { PillButton } from '../button'\n// link\nimport { ExternalLink } from '../customized-link'\n\ntype FooterProps = {\n releaseBranch: ReleaseBranch\n}\nconst Footer: FC<FooterProps> = ({ releaseBranch }) => {\n return (\n <footer className={clsx('w-full bg-gray-white')}>\n <div\n className={clsx(\n 'flex flex-col mx-auto justify-center max-w-[400px] px-[24px] pt-[48px] pb-[96px]',\n 'desktop:max-w-[1200px] desktop:px-[48px] desktop:py-[48px]'\n )}\n >\n {/* upper content */}\n <div\n className={clsx(\n 'w-full flex flex-col justify-center',\n 'desktop:flex-row desktop:justify-between'\n )}\n >\n {/* information content */}\n <div\n className={clsx(\n 'flex flex-col w-full gap-[32px] mb-[48px] items-center text-center',\n 'desktop:max-w-[320px] desktop:mb-0 desktop:text-start desktop:items-start'\n )}\n >\n {/* logo */}\n <div\n className={clsx(\n 'w-full flex flex-col gap-[16px] items-center',\n 'desktop:gap-[24px] desktop:items-start'\n )}\n >\n <Logo releaseBranch={releaseBranch} />\n <P2\n className=\"text-gray-600\"\n text=\"台灣第一個由公益基金會成立的網路媒體,致力於公共領域調查報導,打造多元進步的媒體環境。\"\n />\n </div>\n {/* donation button */}\n <ExternalLink to={EXTERNAL_LINKS.monthlyDonation} target=\"_blank\">\n <PillButton\n className=\"w-[280px]! justify-center!\"\n type={PillButton.Type.secondary}\n size={PillButton.Size.l}\n text={'贊助我們'}\n />\n </ExternalLink>\n </div>\n {/* links content */}\n <div\n className={clsx('flex mb-[16px] gap-[16px]', 'desktop:gap-[24px]')}\n >\n <LinkButtonGroups releaseBranch={releaseBranch} />\n </div>\n </div>\n <Divider className=\"w-full my-[24px]\" />\n {/* lower content */}\n <div\n className={clsx(\n 'flex flex-col-reverse gap-[24px] items-center text-center',\n 'desktop:flex-row desktop:justify-between desktop:gap-0'\n )}\n >\n {/* info */}\n <div\n className={clsx('flex flex-col items-center', 'desktop:flex-row')}\n >\n <P3 className=\"text-gray-600\" text={FUNDRAISING_ID} />\n <div className=\"hidden desktop:flex\">\n <P3 className=\"text-gray-600\" text=\"|\" />\n <InfoLinks releaseBranch={releaseBranch} />\n <P3 className=\"text-gray-600\" text=\"|\" />\n </div>\n <div className=\"flex desktop:hidden\">\n <InfoLinks releaseBranch={releaseBranch} />\n </div>\n <P3\n className=\"text-gray-600\"\n text={`Copyright © ${new Date().getFullYear()} The Reporter.`}\n />\n </div>\n {/* social links */}\n <SocialLinks releaseBranch={releaseBranch} />\n </div>\n </div>\n </footer>\n )\n}\n\nexport default Footer\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAMA,UAA2B,EAAE,oBAAoB;AACrD,QACE,oBAAC;EAAO,WAAW,KAAK,uBAAuB;YAC7C,qBAAC;GACC,WAAW,KACT,oFACA,6DACD;;IAGD,qBAAC;KACC,WAAW,KACT,uCACA,2CACD;gBAGD,qBAAC;MACC,WAAW,KACT,sEACA,4EACD;iBAGD,qBAAC;OACC,WAAW,KACT,gDACA,yCACD;kBAED,oBAACC,gBAAoB,gBAAiB,EACtC,oBAAC;QACC,WAAU;QACV,MAAK;SACL;QACE,EAEN,oBAACC;OAAa,IAAI,eAAe;OAAiB,QAAO;iBACvD,oBAACC;QACC,WAAU;QACV,MAAMA,oBAAW,KAAK;QACtB,MAAMA,oBAAW,KAAK;QACtB,MAAM;SACN;QACW;OACX,EAEN,oBAAC;MACC,WAAW,KAAK,6BAA6B,qBAAqB;gBAElE,oBAAC,oBAAgC,gBAAiB;OAC9C;MACF;IACN,oBAACC,mBAAQ,WAAU,qBAAqB;IAExC,qBAAC;KACC,WAAW,KACT,6DACA,yDACD;gBAGD,qBAAC;MACC,WAAW,KAAK,8BAA8B,mBAAmB;;OAEjE,oBAAC;QAAG,WAAU;QAAgB,MAAM;SAAkB;OACtD,qBAAC;QAAI,WAAU;;SACb,oBAAC;UAAG,WAAU;UAAgB,MAAK;WAAM;SACzC,oBAAC,aAAyB,gBAAiB;SAC3C,oBAAC;UAAG,WAAU;UAAgB,MAAK;WAAM;;SACrC;OACN,oBAAC;QAAI,WAAU;kBACb,oBAAC,aAAyB,gBAAiB;SACvC;OACN,oBAAC;QACC,WAAU;QACV,MAAM,gCAAe,IAAI,MAAM,EAAC,aAAa,CAAC;SAC9C;;OACE,EAEN,oBAAC,eAA2B,gBAAiB;MACzC;;IACF;GACC;;AAIb,qBAAe"}
@@ -0,0 +1,23 @@
1
+ import "../index-DegwO8ei.mjs";
2
+ import { ReleaseBranch } from "../release-branch-CaxOk9Rq.mjs";
3
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
4
+
5
+ //#region src/footer/links.d.ts
6
+ declare const SocialLinks: ({
7
+ releaseBranch
8
+ }: {
9
+ releaseBranch: ReleaseBranch;
10
+ }) => react_jsx_runtime0.JSX.Element;
11
+ declare const InfoLinks: ({
12
+ releaseBranch
13
+ }: {
14
+ releaseBranch: ReleaseBranch;
15
+ }) => react_jsx_runtime0.JSX.Element;
16
+ declare const LinkButtonGroups: ({
17
+ releaseBranch
18
+ }: {
19
+ releaseBranch: ReleaseBranch;
20
+ }) => react_jsx_runtime0.JSX.Element[];
21
+ //#endregion
22
+ export { InfoLinks, LinkButtonGroups, SocialLinks };
23
+ //# sourceMappingURL=links.d.mts.map
@@ -0,0 +1,23 @@
1
+ import "../index-H3peA2d_.js";
2
+ import { ReleaseBranch } from "../release-branch-CsBbhuYE.js";
3
+ import * as react_jsx_runtime7 from "react/jsx-runtime";
4
+
5
+ //#region src/footer/links.d.ts
6
+ declare const SocialLinks: ({
7
+ releaseBranch
8
+ }: {
9
+ releaseBranch: ReleaseBranch;
10
+ }) => react_jsx_runtime7.JSX.Element;
11
+ declare const InfoLinks: ({
12
+ releaseBranch
13
+ }: {
14
+ releaseBranch: ReleaseBranch;
15
+ }) => react_jsx_runtime7.JSX.Element;
16
+ declare const LinkButtonGroups: ({
17
+ releaseBranch
18
+ }: {
19
+ releaseBranch: ReleaseBranch;
20
+ }) => react_jsx_runtime7.JSX.Element[];
21
+ //#endregion
22
+ export { InfoLinks, LinkButtonGroups, SocialLinks };
23
+ //# sourceMappingURL=links.d.ts.map
@@ -0,0 +1,19 @@
1
+ require('../constants-BmxSMOOn.js');
2
+ require('../constants-Cndhv6qr.js');
3
+ require('../paragraph-iuz3jP0Q.js');
4
+ require('../theme-DDBlIbeS.js');
5
+ require('../button-Dk0MxlKd.js');
6
+ require('../internal-links-DxtMobuI.js');
7
+ require('../release-branch-CRZV4Ivz.js');
8
+ require('../request-origins-BDXulkK9.js');
9
+ require('../external-link-afU9uFB6.js');
10
+ require('../internal-link-Bq4yp13E.js');
11
+ require('../customized-link-CHH91yod.js');
12
+ require('../constants-D8wNUvoZ.js');
13
+ require('../icons-qP5oNB0W.js');
14
+ require('../constants-0fgvpoyZ.js');
15
+ const require_links = require('../links-Xuo8pb4a.js');
16
+
17
+ exports.InfoLinks = require_links.InfoLinks;
18
+ exports.LinkButtonGroups = require_links.LinkButtonGroups;
19
+ exports.SocialLinks = require_links.SocialLinks;
@@ -0,0 +1,17 @@
1
+ import "../internal-link-DCXJvzgx.mjs";
2
+ import "../constants-oTHAnh6r.mjs";
3
+ import "../constants-CBSEPx91.mjs";
4
+ import "../paragraph-Cf9jr8RF.mjs";
5
+ import "../theme-BG6yZVj-.mjs";
6
+ import "../button-D_AWI7r9.mjs";
7
+ import "../internal-links-CP3dqmrz.mjs";
8
+ import "../release-branch-DNCD1uH_.mjs";
9
+ import "../request-origins-CGkNWg8R.mjs";
10
+ import "../external-link-Diro-q37.mjs";
11
+ import "../customized-link-BacydHK_.mjs";
12
+ import "../constants-5phfWHvb.mjs";
13
+ import "../icons-I7T-auOQ.mjs";
14
+ import "../constants-DyO2QpJk.mjs";
15
+ import { InfoLinks, LinkButtonGroups, SocialLinks } from "../links-DO97xw7S.mjs";
16
+
17
+ export { InfoLinks, LinkButtonGroups, SocialLinks };
@@ -0,0 +1,12 @@
1
+ import "../index-DegwO8ei.mjs";
2
+ import { ReleaseBranch } from "../release-branch-CaxOk9Rq.mjs";
3
+ import { FC } from "react";
4
+
5
+ //#region src/footer/logo.d.ts
6
+ type LogoProps = {
7
+ releaseBranch?: ReleaseBranch;
8
+ };
9
+ declare const Logo: FC<LogoProps>;
10
+ //#endregion
11
+ export { Logo as default };
12
+ //# sourceMappingURL=logo.d.mts.map
@@ -0,0 +1,11 @@
1
+ import "../index-H3peA2d_.js";
2
+ import { ReleaseBranch } from "../release-branch-CsBbhuYE.js";
3
+ import { FC } from "react";
4
+
5
+ //#region src/footer/logo.d.ts
6
+ type LogoProps = {
7
+ releaseBranch?: ReleaseBranch;
8
+ };
9
+ declare const Logo: FC<LogoProps>;
10
+ export = Logo;
11
+ //# sourceMappingURL=logo.d.ts.map
@@ -0,0 +1,9 @@
1
+ require('../release-branch-CRZV4Ivz.js');
2
+ require('../external-link-afU9uFB6.js');
3
+ require('../internal-link-Bq4yp13E.js');
4
+ require('../customized-link-CHH91yod.js');
5
+ require('../constants-C2moxnps.js');
6
+ require('../logo-B3GSkN1O.js');
7
+ const require_logo$1 = require('../logo-C5NgKyYa.js');
8
+
9
+ module.exports = require_logo$1.logo_default;
@@ -0,0 +1,9 @@
1
+ import "../internal-link-DCXJvzgx.mjs";
2
+ import "../release-branch-DNCD1uH_.mjs";
3
+ import "../external-link-Diro-q37.mjs";
4
+ import "../customized-link-BacydHK_.mjs";
5
+ import "../constants-DRxdMM_X.mjs";
6
+ import "../logo-NfYCtrtN.mjs";
7
+ import { logo_default } from "../logo-CumKSrK5.mjs";
8
+
9
+ export { logo_default as default };
@@ -6,20 +6,19 @@ require('../button-Dk0MxlKd.js');
6
6
  require('../external-links-DCn-uTD-.js');
7
7
  require('../internal-links-DxtMobuI.js');
8
8
  require('../release-branch-CRZV4Ivz.js');
9
- require('../constants-BuIUKM2c.js');
10
- require('../divider-Db3AhImD.js');
11
- require('../external-link-BMrkjNyi.js');
12
- require('../internal-link-BLXTBMRq.js');
13
- require('../customized-link-XNoMkeYw.js');
9
+ require('../external-link-afU9uFB6.js');
10
+ require('../internal-link-Bq4yp13E.js');
11
+ require('../customized-link-CHH91yod.js');
12
+ require('../constants-nmH6p6-y.js');
13
+ require('../divider-B1zvSjNJ.js');
14
14
  require('../context-I1lTR5SO.js');
15
15
  require('../constants-D8wNUvoZ.js');
16
16
  require('../icons-qP5oNB0W.js');
17
17
  require('../constants-C2moxnps.js');
18
- require('../dropdown-menu-tbV9rhnw.js');
19
- const require_hamburger_menu = require('../hamburger-menu-qrLPGpHF.js');
20
- require('../logo-BTNfdxTv.js');
21
- require('../constants-BP47D2l7.js');
22
- require('../theme-CIEkzycI.js');
23
- require('../input-czWOItrW.js');
18
+ require('../dropdown-menu-D4XjLl7G.js');
19
+ require('../logo-B3GSkN1O.js');
20
+ const require_hamburger_menu = require('../hamburger-menu-baCi46g2.js');
21
+ require('../theme-LkZX5giH.js');
22
+ require('../input-DaMbsNrg.js');
24
23
 
25
24
  module.exports = require_hamburger_menu.hamburger_menu_default;
@@ -1,4 +1,4 @@
1
- import "../internal-link-NQb751uB.mjs";
1
+ import "../internal-link-DCXJvzgx.mjs";
2
2
  import "../constants-oTHAnh6r.mjs";
3
3
  import "../constants-CBSEPx91.mjs";
4
4
  import "../paragraph-Cf9jr8RF.mjs";
@@ -7,19 +7,18 @@ import "../button-D_AWI7r9.mjs";
7
7
  import "../external-links-B-A17Osq.mjs";
8
8
  import "../internal-links-CP3dqmrz.mjs";
9
9
  import "../release-branch-DNCD1uH_.mjs";
10
- import "../constants-Cz7n-nLz.mjs";
11
- import "../divider-CEIxmAsH.mjs";
12
- import "../external-link-BykRRwmY.mjs";
13
- import "../customized-link-DNKmWI0u.mjs";
10
+ import "../external-link-Diro-q37.mjs";
11
+ import "../customized-link-BacydHK_.mjs";
12
+ import "../constants-z9Q8ph_H.mjs";
13
+ import "../divider-CE4u6SR5.mjs";
14
14
  import "../context-BgdqM3zA.mjs";
15
15
  import "../constants-5phfWHvb.mjs";
16
16
  import "../icons-I7T-auOQ.mjs";
17
17
  import "../constants-DRxdMM_X.mjs";
18
- import "../dropdown-menu-CuyS5r71.mjs";
19
- import { hamburger_menu_default } from "../hamburger-menu-Ca6QMgF9.mjs";
20
- import "../logo-D68VZ-fc.mjs";
21
- import "../constants-Dfgyc0ND.mjs";
22
- import "../theme-CkSx7UX3.mjs";
23
- import "../input-_Hl5B4_K.mjs";
18
+ import "../dropdown-menu-jbg-kt3s.mjs";
19
+ import "../logo-NfYCtrtN.mjs";
20
+ import { hamburger_menu_default } from "../hamburger-menu-MQgF0vLX.mjs";
21
+ import "../theme-D_LHh2_S.mjs";
22
+ import "../input-DvriSZ9o.mjs";
24
23
 
25
24
  export { hamburger_menu_default as default };
@@ -1,18 +1,18 @@
1
- import { internal_link_default } from "./internal-link-NQb751uB.mjs";
1
+ import { internal_link_default } from "./internal-link-DCXJvzgx.mjs";
2
2
  import { TYPE } from "./constants-oTHAnh6r.mjs";
3
3
  import { P2 } from "./paragraph-Cf9jr8RF.mjs";
4
4
  import { THEME } from "./theme-BG6yZVj-.mjs";
5
5
  import { icon_button_default, menu_button_default, pill_button_default, text_button_default } from "./button-D_AWI7r9.mjs";
6
6
  import { EXTERNAL_LINKS } from "./external-links-B-A17Osq.mjs";
7
7
  import { INTERNAL_LINKS } from "./internal-links-CP3dqmrz.mjs";
8
- import { divider_default } from "./divider-CEIxmAsH.mjs";
9
- import { external_link_default } from "./external-link-BykRRwmY.mjs";
8
+ import { external_link_default } from "./external-link-Diro-q37.mjs";
9
+ import { divider_default } from "./divider-CE4u6SR5.mjs";
10
10
  import { HamburgerContext, HeaderContext } from "./context-BgdqM3zA.mjs";
11
11
  import { MEDIA_TYPE } from "./constants-5phfWHvb.mjs";
12
12
  import { Cross, Icon, Member, SocialMedia } from "./icons-I7T-auOQ.mjs";
13
- import { DropdownMenu, selectHamburgerFooterTheme, selectHamburgerItemTheme, selectHamburgerMenuTheme, selectLogoType } from "./dropdown-menu-CuyS5r71.mjs";
14
- import { logo_header_default, logo_symbol_default } from "./logo-D68VZ-fc.mjs";
15
- import { search_bar_default } from "./input-_Hl5B4_K.mjs";
13
+ import { DropdownMenu, selectHamburgerFooterTheme, selectHamburgerItemTheme, selectHamburgerMenuTheme, selectLogoType } from "./dropdown-menu-jbg-kt3s.mjs";
14
+ import { logo_header_default, logo_symbol_default } from "./logo-NfYCtrtN.mjs";
15
+ import { search_bar_default } from "./input-DvriSZ9o.mjs";
16
16
  import { useContext, useState } from "react";
17
17
  import clsx from "clsx";
18
18
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -395,10 +395,10 @@ const HamburgerMenu = () => {
395
395
  children: /* @__PURE__ */ jsx(search_bar_default, {
396
396
  onSearch,
397
397
  autoFocus: false,
398
- widthType: search_bar_default.WidthType.stretch,
399
398
  placeholder: "關鍵字搜尋",
400
399
  theme: menuTheme,
401
- releaseBranch
400
+ releaseBranch,
401
+ searchBarWidth: "w-full"
402
402
  })
403
403
  }),
404
404
  /* @__PURE__ */ jsx("div", {
@@ -479,4 +479,4 @@ var hamburger_menu_default = HamburgerMenu;
479
479
 
480
480
  //#endregion
481
481
  export { HEADER_ACTION_LINKS, hamburger_menu_default };
482
- //# sourceMappingURL=hamburger-menu-Ca6QMgF9.mjs.map
482
+ //# sourceMappingURL=hamburger-menu-MQgF0vLX.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"hamburger-menu-Ca6QMgF9.mjs","names":["SocialMedias: SocialMediaType[]","HEADER_ACTION_LINKS: ActionLink[]","HAMBURGER_MENU_ACION_LINKS: ActionLink[]","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","SearchBar","MenuButton","Divider","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, Member } 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// search bar\nimport { SearchBar } from '../input'\n\nconst HamburgerMenu: FC = () => {\n const { theme, releaseBranch, isLinkExternal, isAuthed } =\n 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 const onSearch = (keywords: string) => {\n if (typeof window === 'undefined') {\n return\n }\n window.location.href = `${INTERNAL_LINKS.search}?q=${encodeURIComponent(keywords)}`\n }\n\n return (\n <div\n className={clsx(\n 'w-screen h-screen overflow-y-scroll overscroll-contain',\n bgColor,\n // reserveHeightForIos15 is 48px\n `pb-[calc(48px+48px)]`,\n 'tablet:w-[320px] tablet:max-h-screen tablet:pb-0',\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 {isAuthed ? (\n <IconButton iconComponent={Member(releaseBranch)} />\n ) : (\n <TextButton\n text=\"登入\"\n theme={TextButton.Theme.normal}\n style={TextButton.Style.dark}\n size={TextButton.Size.s}\n />\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 <SearchBar\n onSearch={onSearch}\n autoFocus={false}\n widthType={SearchBar.WidthType.stretch}\n placeholder=\"關鍵字搜尋\"\n theme={menuTheme}\n releaseBranch={releaseBranch}\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 'flex flex-row gap-[16px] px-[32px] pt-[40px] pb-[32px]',\n 'tablet:flex-col'\n )}\n >\n {HAMBURGER_MENU_ACION_LINKS.map((link) => (\n <LinkComponent\n to={link.to}\n target={link.target}\n key={link.label}\n className=\"flex-1\"\n >\n <PillButton\n text={link.label}\n theme={theme}\n type={link.type}\n className=\"w-full justify-center\"\n size={PillButton.Size.l}\n />\n </LinkComponent>\n ))}\n </div>\n </div>\n )\n}\n\nexport default HamburgerMenu\n"],"mappings":"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"}
1
+ {"version":3,"file":"hamburger-menu-MQgF0vLX.mjs","names":["SocialMedias: SocialMediaType[]","HEADER_ACTION_LINKS: ActionLink[]","HAMBURGER_MENU_ACION_LINKS: ActionLink[]","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","SearchBar","MenuButton","Divider","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, Member } 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// search bar\nimport { SearchBar } from '../input'\n\nconst HamburgerMenu: FC = () => {\n const { theme, releaseBranch, isLinkExternal, isAuthed } =\n 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 const onSearch = (keywords: string) => {\n if (typeof window === 'undefined') {\n return\n }\n window.location.href = `${INTERNAL_LINKS.search}?q=${encodeURIComponent(keywords)}`\n }\n\n return (\n <div\n className={clsx(\n 'w-screen h-screen overflow-y-scroll overscroll-contain',\n bgColor,\n // reserveHeightForIos15 is 48px\n `pb-[calc(48px+48px)]`,\n 'tablet:w-[320px] tablet:max-h-screen tablet:pb-0',\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 {isAuthed ? (\n <IconButton iconComponent={Member(releaseBranch)} />\n ) : (\n <TextButton\n text=\"登入\"\n theme={TextButton.Theme.normal}\n style={TextButton.Style.dark}\n size={TextButton.Size.s}\n />\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 <SearchBar\n onSearch={onSearch}\n autoFocus={false}\n placeholder=\"關鍵字搜尋\"\n theme={menuTheme}\n releaseBranch={releaseBranch}\n searchBarWidth=\"w-full\"\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 'flex flex-row gap-[16px] px-[32px] pt-[40px] pb-[32px]',\n 'tablet:flex-col'\n )}\n >\n {HAMBURGER_MENU_ACION_LINKS.map((link) => (\n <LinkComponent\n to={link.to}\n target={link.target}\n key={link.label}\n className=\"flex-1\"\n >\n <PillButton\n text={link.label}\n theme={theme}\n type={link.type}\n className=\"w-full justify-center\"\n size={PillButton.Size.l}\n />\n </LinkComponent>\n ))}\n </div>\n </div>\n )\n}\n\nexport default HamburgerMenu\n"],"mappings":"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"}