@twreporter/react-typescript-components 0.1.0-beta.20 → 0.1.0-beta.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/{constants-BG4oRMD_.mjs → constants-B8QkNSRh.mjs} +2 -2
- package/lib/{constants-BG4oRMD_.mjs.map → constants-B8QkNSRh.mjs.map} +1 -1
- package/lib/{constants-Dt5HD0aL.js → constants-CUzusjTU.js} +2 -2
- package/lib/{constants-Dt5HD0aL.js.map → constants-CUzusjTU.js.map} +1 -1
- package/lib/{constants-DRxdMM_X.mjs → constants-DKqcALfv.mjs} +1 -1
- package/lib/{constants-DRxdMM_X.mjs.map → constants-DKqcALfv.mjs.map} +1 -1
- package/lib/{constants-5phfWHvb.mjs → constants-Npoq7yu0.mjs} +1 -1
- package/lib/{constants-5phfWHvb.mjs.map → constants-Npoq7yu0.mjs.map} +1 -1
- package/lib/{constants-D8wNUvoZ.js → constants-R6EfY15A.js} +1 -1
- package/lib/{constants-D8wNUvoZ.js.map → constants-R6EfY15A.js.map} +1 -1
- package/lib/{constants-C2moxnps.js → constants-pqSeExjX.js} +1 -1
- package/lib/{constants-C2moxnps.js.map → constants-pqSeExjX.js.map} +1 -1
- package/lib/{context-BgdqM3zA.mjs → context-C9AuSZIE.mjs} +1 -1
- package/lib/{context-BgdqM3zA.mjs.map → context-C9AuSZIE.mjs.map} +1 -1
- package/lib/{context-I1lTR5SO.js → context-vBt5fnU9.js} +1 -1
- package/lib/{context-I1lTR5SO.js.map → context-vBt5fnU9.js.map} +1 -1
- package/lib/customized-link/index.d.ts +3 -3
- package/lib/dropdown-menu/index.js +5 -5
- package/lib/dropdown-menu/index.mjs +5 -5
- package/lib/{dropdown-menu-CKH3qADt.js → dropdown-menu-CTUg6MST.js} +4 -4
- package/lib/{dropdown-menu-CKH3qADt.js.map → dropdown-menu-CTUg6MST.js.map} +1 -1
- package/lib/{dropdown-menu-DMp_Bmo0.mjs → dropdown-menu-MOuxtoud.mjs} +4 -4
- package/lib/{dropdown-menu-DMp_Bmo0.mjs.map → dropdown-menu-MOuxtoud.mjs.map} +1 -1
- package/lib/footer/index.js +6 -6
- package/lib/footer/index.mjs +6 -6
- package/lib/footer/links.js +3 -3
- package/lib/footer/links.mjs +3 -3
- package/lib/footer/logo.js +3 -3
- package/lib/footer/logo.mjs +3 -3
- package/lib/hamburger-menu/index.js +8 -8
- package/lib/hamburger-menu/index.mjs +8 -8
- package/lib/{hamburger-menu-DoyJVziw.mjs → hamburger-menu-B-n_-t91.mjs} +7 -7
- package/lib/{hamburger-menu-DoyJVziw.mjs.map → hamburger-menu-B-n_-t91.mjs.map} +1 -1
- package/lib/{hamburger-menu-DJe2IBTm.js → hamburger-menu-CYiCx5_x.js} +7 -7
- package/lib/{hamburger-menu-DJe2IBTm.js.map → hamburger-menu-CYiCx5_x.js.map} +1 -1
- package/lib/header/index.js +12 -12
- package/lib/header/index.mjs +10 -10
- package/lib/hooks/index.d.mts +3 -3
- package/lib/hooks/index.d.ts +3 -3
- package/lib/hooks/use-outside-click.d.mts +1 -1
- package/lib/hooks/use-outside-click.d.ts +1 -1
- package/lib/icons/constants.js +1 -1
- package/lib/icons/constants.mjs +1 -1
- package/lib/icons/index.js +2 -2
- package/lib/icons/index.mjs +2 -2
- package/lib/{icons-qP5oNB0W.js → icons-BZI6_5JJ.js} +2 -2
- package/lib/{icons-qP5oNB0W.js.map → icons-BZI6_5JJ.js.map} +1 -1
- package/lib/{icons-I7T-auOQ.mjs → icons-C5UqghX2.mjs} +2 -2
- package/lib/{icons-I7T-auOQ.mjs.map → icons-C5UqghX2.mjs.map} +1 -1
- package/lib/input/index.d.mts +2 -2
- package/lib/input/index.d.ts +2 -2
- package/lib/input/index.js +3 -3
- package/lib/input/index.mjs +3 -3
- package/lib/{input-DH_jroRh.mjs → input-BJWcutA3.mjs} +2 -2
- package/lib/{input-DH_jroRh.mjs.map → input-BJWcutA3.mjs.map} +1 -1
- package/lib/{input-D29yD1k-.js → input-e0a-Wul_.js} +2 -2
- package/lib/{input-D29yD1k-.js.map → input-e0a-Wul_.js.map} +1 -1
- package/lib/{links-Buz2DUOO.mjs → links-CFjOQl4o.mjs} +2 -2
- package/lib/{links-Buz2DUOO.mjs.map → links-CFjOQl4o.mjs.map} +1 -1
- package/lib/{links-CPX07u-O.js → links-DMd-CuUJ.js} +2 -2
- package/lib/{links-CPX07u-O.js.map → links-DMd-CuUJ.js.map} +1 -1
- package/lib/logo/constants.js +1 -1
- package/lib/logo/constants.mjs +1 -1
- package/lib/logo/index.d.mts +7 -7
- package/lib/logo/index.js +2 -2
- package/lib/logo/index.mjs +2 -2
- package/lib/{logo-DzRRd4Y-.js → logo-B35M1BaX.js} +2 -2
- package/lib/{logo-DzRRd4Y-.js.map → logo-B35M1BaX.js.map} +1 -1
- package/lib/{logo-BSp7gsND.js → logo-CeaVUbIW.js} +2 -2
- package/lib/{logo-BSp7gsND.js.map → logo-CeaVUbIW.js.map} +1 -1
- package/lib/{logo-CBWWiQoO.mjs → logo-DkEpjnPV.mjs} +2 -2
- package/lib/{logo-CBWWiQoO.mjs.map → logo-DkEpjnPV.mjs.map} +1 -1
- package/lib/{logo-mBe4a2OP.mjs → logo-lPQ3Apwn.mjs} +2 -2
- package/lib/{logo-mBe4a2OP.mjs.map → logo-lPQ3Apwn.mjs.map} +1 -1
- package/lib/tab-bar/constants.js +3 -3
- package/lib/tab-bar/constants.mjs +3 -3
- package/lib/tab-bar/index.js +5 -5
- package/lib/tab-bar/index.mjs +5 -5
- package/lib/{tab-bar-jI3fYt_7.mjs → tab-bar-C_FxNWkG.mjs} +4 -4
- package/lib/{tab-bar-jI3fYt_7.mjs.map → tab-bar-C_FxNWkG.mjs.map} +1 -1
- package/lib/{tab-bar-CVPd5go9.js → tab-bar-USs-mSXE.js} +4 -4
- package/lib/{tab-bar-CVPd5go9.js.map → tab-bar-USs-mSXE.js.map} +1 -1
- package/lib/use-outside-click-BA-T3hJc.d.ts +7 -0
- package/lib/{use-outside-click-COJmPFYr.d.ts → use-outside-click-E-9eTkfz.d.mts} +1 -1
- package/package.json +6 -3
- package/lib/use-outside-click-B_hZCUDr.d.mts +0 -7
package/lib/input/index.mjs
CHANGED
|
@@ -4,9 +4,9 @@ import "../paragraph-Cf9jr8RF.mjs";
|
|
|
4
4
|
import "../theme-BG6yZVj-.mjs";
|
|
5
5
|
import "../button-D_AWI7r9.mjs";
|
|
6
6
|
import "../release-branch-DNCD1uH_.mjs";
|
|
7
|
-
import "../constants-
|
|
8
|
-
import "../icons-
|
|
7
|
+
import "../constants-Npoq7yu0.mjs";
|
|
8
|
+
import "../icons-C5UqghX2.mjs";
|
|
9
9
|
import "../theme-DURvzYaJ.mjs";
|
|
10
|
-
import { input_default, search_bar_default } from "../input-
|
|
10
|
+
import { input_default, search_bar_default } from "../input-BJWcutA3.mjs";
|
|
11
11
|
|
|
12
12
|
export { search_bar_default as SearchBar, input_default as default };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { THEME } from "./theme-BG6yZVj-.mjs";
|
|
2
2
|
import { icon_button_default } from "./button-D_AWI7r9.mjs";
|
|
3
3
|
import { RELEASE_BRANCH } from "./release-branch-DNCD1uH_.mjs";
|
|
4
|
-
import { Cross, Search } from "./icons-
|
|
4
|
+
import { Cross, Search } from "./icons-C5UqghX2.mjs";
|
|
5
5
|
import { selectThemeStyle } from "./theme-DURvzYaJ.mjs";
|
|
6
6
|
import { useState } from "react";
|
|
7
7
|
import clsx from "clsx";
|
|
@@ -68,4 +68,4 @@ var input_default = { SearchBar: search_bar_default };
|
|
|
68
68
|
|
|
69
69
|
//#endregion
|
|
70
70
|
export { input_default, search_bar_default };
|
|
71
|
-
//# sourceMappingURL=input-
|
|
71
|
+
//# sourceMappingURL=input-BJWcutA3.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-
|
|
1
|
+
{"version":3,"file":"input-BJWcutA3.mjs","names":["SearchBar: FC<SearchBarProps> & {\n Theme: typeof THEME\n}","IconButton"],"sources":["../src/input/components/search-bar.tsx","../src/input/index.ts"],"sourcesContent":["import { useState } from 'react'\nimport type { FC, FormEvent, ChangeEvent } from 'react'\nimport clsx from 'clsx'\n// constants\nimport { THEME, type Theme } from '../../constants/theme'\nimport {\n RELEASE_BRANCH,\n type ReleaseBranch,\n} from '../../constants/release-branch'\n// theme\nimport { selectThemeStyle } from '../theme'\n// icons\nimport { Cross, Search } from '../../icons'\n// button\nimport { IconButton } from '../../button'\n\nconst defaultFunc = () => {}\ntype SearchBarProps = {\n placeholder?: string\n theme?: Theme\n releaseBranch?: ReleaseBranch\n onSearch?: (keywords: string) => void\n onClose?: () => void\n handleBlur?: () => void\n autoFocus?: boolean\n className?: string\n searchBarWidth?: string\n}\nconst SearchBar: FC<SearchBarProps> & {\n Theme: typeof THEME\n} = ({\n placeholder = '',\n theme = THEME.normal,\n releaseBranch = RELEASE_BRANCH.master,\n onSearch = defaultFunc,\n onClose = defaultFunc,\n handleBlur = defaultFunc,\n autoFocus = true,\n className = '',\n searchBarWidth = 'w-fit',\n}) => {\n const [keywords, setKeywords] = useState('')\n const [focus, setFocus] = useState(false)\n const {\n bgColor,\n focusBgColor,\n desktopBgColor,\n borderColor,\n color,\n focusColor,\n placeholderColor,\n } = selectThemeStyle(theme)\n const onFocus = () => setFocus(true)\n const onBlur = () => {\n setFocus(false)\n handleBlur()\n }\n const onSubmit = (e: FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n onSearch(keywords)\n }\n const onChange = (e: ChangeEvent<HTMLInputElement>) => {\n const input = e.currentTarget.value\n setKeywords(input)\n }\n const onReset = (e: FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n setKeywords('')\n }\n\n return (\n <form\n className={clsx('flex items-center', className)}\n noValidate\n onSubmit={onSubmit}\n onReset={onReset}\n onFocus={onFocus}\n >\n <div\n className={clsx(\n 'flex items-center py-[8px] px-[16px] rounded-[40px] border-[1px] border-solid gap-[8px]',\n searchBarWidth,\n bgColor,\n focus\n ? clsx(focusBgColor, borderColor, desktopBgColor)\n : 'border-transparent'\n )}\n >\n <input\n type=\"search\"\n placeholder={placeholder}\n value={keywords}\n onChange={onChange}\n onBlur={onBlur}\n // biome-ignore lint/a11y/noAutofocus: autoFocus is intentionally used to focus the search input for better UX\n autoFocus={autoFocus}\n className={clsx(\n 'h-[24px] text-[14px] focus-visible:border-0 font-default w-[fill-available] w-[-webkit-fill-available]',\n 'focus-visible:outline-0 focus-visible:border-transparent [&::-webkit-search-cancel-button]:hidden',\n color,\n placeholderColor,\n focusColor\n )}\n />\n <IconButton\n theme={theme}\n iconComponent={Search(releaseBranch)}\n onClick={() => onSearch(keywords)}\n />\n </div>\n <IconButton\n theme={theme}\n iconComponent={Cross(releaseBranch)}\n onClick={onClose}\n className={clsx('ml-[8px] hidden', 'desktop:inline-flex')}\n />\n </form>\n )\n}\nSearchBar.Theme = THEME\n\nexport default SearchBar\n","import SearchBar from './components/search-bar'\n\nexport { SearchBar }\n\nexport default {\n SearchBar,\n}\n"],"mappings":";;;;;;;;;;AAgBA,MAAM,oBAAoB;AAY1B,MAAMA,aAED,EACH,cAAc,IACd,QAAQ,MAAM,QACd,gBAAgB,eAAe,QAC/B,WAAW,aACX,UAAU,aACV,aAAa,aACb,YAAY,MACZ,YAAY,IACZ,iBAAiB,cACb;CACJ,MAAM,CAAC,UAAU,eAAe,SAAS,GAAG;CAC5C,MAAM,CAAC,OAAO,YAAY,SAAS,MAAM;CACzC,MAAM,EACJ,SACA,cACA,gBACA,aACA,OACA,YACA,qBACE,iBAAiB,MAAM;CAC3B,MAAM,gBAAgB,SAAS,KAAK;CACpC,MAAM,eAAe;AACnB,WAAS,MAAM;AACf,cAAY;;CAEd,MAAM,YAAY,MAAkC;AAClD,IAAE,gBAAgB;AAClB,WAAS,SAAS;;CAEpB,MAAM,YAAY,MAAqC;EACrD,MAAM,QAAQ,EAAE,cAAc;AAC9B,cAAY,MAAM;;CAEpB,MAAM,WAAW,MAAkC;AACjD,IAAE,gBAAgB;AAClB,cAAY,GAAG;;AAGjB,QACE,qBAAC;EACC,WAAW,KAAK,qBAAqB,UAAU;EAC/C;EACU;EACD;EACA;aAET,qBAAC;GACC,WAAW,KACT,2FACA,gBACA,SACA,QACI,KAAK,cAAc,aAAa,eAAe,GAC/C,qBACL;cAED,oBAAC;IACC,MAAK;IACQ;IACb,OAAO;IACG;IACF;IAEG;IACX,WAAW,KACT,0GACA,qGACA,OACA,kBACA,WACD;KACD,EACF,oBAACC;IACQ;IACP,eAAe,OAAO,cAAc;IACpC,eAAe,SAAS,SAAS;KACjC;IACE,EACN,oBAACA;GACQ;GACP,eAAe,MAAM,cAAc;GACnC,SAAS;GACT,WAAW,KAAK,mBAAmB,sBAAsB;IACzD;GACG;;AAGX,UAAU,QAAQ;AAElB,yBAAe;;;;ACrHf,oBAAe,EACb,+BACD"}
|
|
@@ -2,7 +2,7 @@ const require_chunk = require('./chunk-BxBTb9qk.js');
|
|
|
2
2
|
const require_theme = require('./theme-DDBlIbeS.js');
|
|
3
3
|
const require_button = require('./button-Dk0MxlKd.js');
|
|
4
4
|
const require_release_branch = require('./release-branch-CRZV4Ivz.js');
|
|
5
|
-
const require_icons = require('./icons-
|
|
5
|
+
const require_icons = require('./icons-BZI6_5JJ.js');
|
|
6
6
|
const require_theme$1 = require('./theme-BLdi7Moc.js');
|
|
7
7
|
let react = require("react");
|
|
8
8
|
react = require_chunk.__toESM(react);
|
|
@@ -83,4 +83,4 @@ Object.defineProperty(exports, 'search_bar_default', {
|
|
|
83
83
|
return search_bar_default;
|
|
84
84
|
}
|
|
85
85
|
});
|
|
86
|
-
//# sourceMappingURL=input-
|
|
86
|
+
//# sourceMappingURL=input-e0a-Wul_.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-
|
|
1
|
+
{"version":3,"file":"input-e0a-Wul_.js","names":["SearchBar: FC<SearchBarProps> & {\n Theme: typeof THEME\n}","THEME","RELEASE_BRANCH","selectThemeStyle","IconButton","Search","Cross"],"sources":["../src/input/components/search-bar.tsx","../src/input/index.ts"],"sourcesContent":["import { useState } from 'react'\nimport type { FC, FormEvent, ChangeEvent } from 'react'\nimport clsx from 'clsx'\n// constants\nimport { THEME, type Theme } from '../../constants/theme'\nimport {\n RELEASE_BRANCH,\n type ReleaseBranch,\n} from '../../constants/release-branch'\n// theme\nimport { selectThemeStyle } from '../theme'\n// icons\nimport { Cross, Search } from '../../icons'\n// button\nimport { IconButton } from '../../button'\n\nconst defaultFunc = () => {}\ntype SearchBarProps = {\n placeholder?: string\n theme?: Theme\n releaseBranch?: ReleaseBranch\n onSearch?: (keywords: string) => void\n onClose?: () => void\n handleBlur?: () => void\n autoFocus?: boolean\n className?: string\n searchBarWidth?: string\n}\nconst SearchBar: FC<SearchBarProps> & {\n Theme: typeof THEME\n} = ({\n placeholder = '',\n theme = THEME.normal,\n releaseBranch = RELEASE_BRANCH.master,\n onSearch = defaultFunc,\n onClose = defaultFunc,\n handleBlur = defaultFunc,\n autoFocus = true,\n className = '',\n searchBarWidth = 'w-fit',\n}) => {\n const [keywords, setKeywords] = useState('')\n const [focus, setFocus] = useState(false)\n const {\n bgColor,\n focusBgColor,\n desktopBgColor,\n borderColor,\n color,\n focusColor,\n placeholderColor,\n } = selectThemeStyle(theme)\n const onFocus = () => setFocus(true)\n const onBlur = () => {\n setFocus(false)\n handleBlur()\n }\n const onSubmit = (e: FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n onSearch(keywords)\n }\n const onChange = (e: ChangeEvent<HTMLInputElement>) => {\n const input = e.currentTarget.value\n setKeywords(input)\n }\n const onReset = (e: FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n setKeywords('')\n }\n\n return (\n <form\n className={clsx('flex items-center', className)}\n noValidate\n onSubmit={onSubmit}\n onReset={onReset}\n onFocus={onFocus}\n >\n <div\n className={clsx(\n 'flex items-center py-[8px] px-[16px] rounded-[40px] border-[1px] border-solid gap-[8px]',\n searchBarWidth,\n bgColor,\n focus\n ? clsx(focusBgColor, borderColor, desktopBgColor)\n : 'border-transparent'\n )}\n >\n <input\n type=\"search\"\n placeholder={placeholder}\n value={keywords}\n onChange={onChange}\n onBlur={onBlur}\n // biome-ignore lint/a11y/noAutofocus: autoFocus is intentionally used to focus the search input for better UX\n autoFocus={autoFocus}\n className={clsx(\n 'h-[24px] text-[14px] focus-visible:border-0 font-default w-[fill-available] w-[-webkit-fill-available]',\n 'focus-visible:outline-0 focus-visible:border-transparent [&::-webkit-search-cancel-button]:hidden',\n color,\n placeholderColor,\n focusColor\n )}\n />\n <IconButton\n theme={theme}\n iconComponent={Search(releaseBranch)}\n onClick={() => onSearch(keywords)}\n />\n </div>\n <IconButton\n theme={theme}\n iconComponent={Cross(releaseBranch)}\n onClick={onClose}\n className={clsx('ml-[8px] hidden', 'desktop:inline-flex')}\n />\n </form>\n )\n}\nSearchBar.Theme = THEME\n\nexport default SearchBar\n","import SearchBar from './components/search-bar'\n\nexport { SearchBar }\n\nexport default {\n SearchBar,\n}\n"],"mappings":";;;;;;;;;;;;;;AAgBA,MAAM,oBAAoB;AAY1B,MAAMA,aAED,EACH,cAAc,IACd,QAAQC,oBAAM,QACd,gBAAgBC,sCAAe,QAC/B,WAAW,aACX,UAAU,aACV,aAAa,aACb,YAAY,MACZ,YAAY,IACZ,iBAAiB,cACb;CACJ,MAAM,CAAC,UAAU,mCAAwB,GAAG;CAC5C,MAAM,CAAC,OAAO,gCAAqB,MAAM;CACzC,MAAM,EACJ,SACA,cACA,gBACA,aACA,OACA,YACA,qBACEC,iCAAiB,MAAM;CAC3B,MAAM,gBAAgB,SAAS,KAAK;CACpC,MAAM,eAAe;AACnB,WAAS,MAAM;AACf,cAAY;;CAEd,MAAM,YAAY,MAAkC;AAClD,IAAE,gBAAgB;AAClB,WAAS,SAAS;;CAEpB,MAAM,YAAY,MAAqC;EACrD,MAAM,QAAQ,EAAE,cAAc;AAC9B,cAAY,MAAM;;CAEpB,MAAM,WAAW,MAAkC;AACjD,IAAE,gBAAgB;AAClB,cAAY,GAAG;;AAGjB,QACE,4CAAC;EACC,6BAAgB,qBAAqB,UAAU;EAC/C;EACU;EACD;EACA;aAET,4CAAC;GACC,6BACE,2FACA,gBACA,SACA,0BACS,cAAc,aAAa,eAAe,GAC/C,qBACL;cAED,2CAAC;IACC,MAAK;IACQ;IACb,OAAO;IACG;IACF;IAEG;IACX,6BACE,0GACA,qGACA,OACA,kBACA,WACD;KACD,EACF,2CAACC;IACQ;IACP,eAAeC,qBAAO,cAAc;IACpC,eAAe,SAAS,SAAS;KACjC;IACE,EACN,2CAACD;GACQ;GACP,eAAeE,oBAAM,cAAc;GACnC,SAAS;GACT,6BAAgB,mBAAmB,sBAAsB;IACzD;GACG;;AAGX,UAAU,QAAQL;AAElB,yBAAe;;;;ACrHf,oBAAe,EACb,+BACD"}
|
|
@@ -2,7 +2,7 @@ import { P2, P3 } from "./paragraph-Cf9jr8RF.mjs";
|
|
|
2
2
|
import { icon_button_default } from "./button-D_AWI7r9.mjs";
|
|
3
3
|
import { forClientSideRendering } from "./request-origins-CGkNWg8R.mjs";
|
|
4
4
|
import { external_link_default } from "./external-link-BMIFL3DE.mjs";
|
|
5
|
-
import { SocialMedia } from "./icons-
|
|
5
|
+
import { SocialMedia } from "./icons-C5UqghX2.mjs";
|
|
6
6
|
import clsx from "clsx";
|
|
7
7
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
import map from "lodash/map";
|
|
@@ -83,4 +83,4 @@ const LinkButtonGroups = ({ linksGroups }) => {
|
|
|
83
83
|
|
|
84
84
|
//#endregion
|
|
85
85
|
export { LinkButtonGroups, SocialLinks, StaticLinks };
|
|
86
|
-
//# sourceMappingURL=links-
|
|
86
|
+
//# sourceMappingURL=links-CFjOQl4o.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"links-
|
|
1
|
+
{"version":3,"file":"links-CFjOQl4o.mjs","names":["ExternalLink","IconButton"],"sources":["../src/footer/links.tsx"],"sourcesContent":["import clsx from 'clsx'\n// text\nimport { P2, P3 } from '../text/paragraph'\n// constants\nimport type { ReleaseBranch } from '../constants/release-branch'\nimport { forClientSideRendering } from '../constants/request-origins'\n// button\nimport { IconButton } from '../button'\n// link\nimport { ExternalLink } from '../customized-link'\n// icon\nimport { SocialMedia } from '../icons'\n// types\nimport type { LinkType, SocialMediaLink } from './types'\n// lodash\nimport map from 'lodash/map'\nconst _ = {\n map,\n}\n\nexport const SocialLinks = ({\n releaseBranch,\n links,\n}: {\n releaseBranch: ReleaseBranch\n links: SocialMediaLink[]\n}) => {\n return (\n <div className=\"flex gap-[16px]\">\n {_.map(links, (link) => {\n const iconComponent = (\n <SocialMedia mediaType={link.icon} releaseBranch={releaseBranch} />\n )\n return (\n <ExternalLink key={link.icon} to={link.link} target=\"_blank\">\n <IconButton iconComponent={iconComponent} />\n </ExternalLink>\n )\n })}\n </div>\n )\n}\n\nexport const StaticLinks = ({\n releaseBranch,\n}: {\n releaseBranch: ReleaseBranch\n}) => {\n const mainOrigin = forClientSideRendering[releaseBranch].main\n return (\n <>\n <ExternalLink to={`${mainOrigin}/a/license-footer`} target=\"_blank\">\n <P3\n className=\"text-gray-600 underline underline-offset-[4px]\"\n text=\"許可協議\"\n />\n </ExternalLink>\n <P3 className=\"text-gray-600\" text=\"|\" />\n <ExternalLink to={`${mainOrigin}/a/privacy-footer`} target=\"_blank\">\n <P3\n className=\"text-gray-600 underline underline-offset-[4px]\"\n text=\"隱私政策\"\n />\n </ExternalLink>\n <P3 className=\"text-gray-600\" text=\"|\" />\n <ExternalLink\n to={'https://twreporter.gitbook.io/the-reporter-brand-guidelines'}\n target=\"_blank\"\n >\n <P3\n className=\"text-gray-600 underline underline-offset-[4px]\"\n text=\"品牌規範\"\n />\n </ExternalLink>\n </>\n )\n}\n\nexport const LinkButtonGroups = ({\n linksGroups,\n}: {\n releaseBranch: ReleaseBranch\n linksGroups: LinkType[][]\n}) => {\n return _.map(linksGroups, (links, indexofGroup) => {\n return (\n <div\n key={indexofGroup}\n className={clsx(\n 'flex flex-col gap-[8px] basis-1/3',\n 'desktop:w-[120px] desktop:gap-[16px] desktop:basis-auto'\n )}\n >\n {_.map(links, (link, indexofLink) => {\n return (\n <ExternalLink\n key={indexofLink}\n to={link.link}\n target=\"_blank\"\n id={link.id}\n >\n <P2\n className=\"text-gray-600 hover:text-gray-800\"\n text={link.text}\n />\n </ExternalLink>\n )\n })}\n </div>\n )\n })\n}\n"],"mappings":";;;;;;;;;;AAgBA,MAAM,IAAI,EACR,KACD;AAED,MAAa,eAAe,EAC1B,eACA,YAII;AACJ,QACE,oBAAC;EAAI,WAAU;YACZ,EAAE,IAAI,QAAQ,SAAS;GACtB,MAAM,gBACJ,oBAAC;IAAY,WAAW,KAAK;IAAqB;KAAiB;AAErE,UACE,oBAACA;IAA6B,IAAI,KAAK;IAAM,QAAO;cAClD,oBAACC,uBAA0B,gBAAiB;MAD3B,KAAK,KAET;IAEjB;GACE;;AAIV,MAAa,eAAe,EAC1B,oBAGI;CACJ,MAAM,aAAa,uBAAuB,eAAe;AACzD,QACE;EACE,oBAACD;GAAa,IAAI,GAAG,WAAW;GAAoB,QAAO;aACzD,oBAAC;IACC,WAAU;IACV,MAAK;KACL;IACW;EACf,oBAAC;GAAG,WAAU;GAAgB,MAAK;IAAM;EACzC,oBAACA;GAAa,IAAI,GAAG,WAAW;GAAoB,QAAO;aACzD,oBAAC;IACC,WAAU;IACV,MAAK;KACL;IACW;EACf,oBAAC;GAAG,WAAU;GAAgB,MAAK;IAAM;EACzC,oBAACA;GACC,IAAI;GACJ,QAAO;aAEP,oBAAC;IACC,WAAU;IACV,MAAK;KACL;IACW;KACd;;AAIP,MAAa,oBAAoB,EAC/B,kBAII;AACJ,QAAO,EAAE,IAAI,cAAc,OAAO,iBAAiB;AACjD,SACE,oBAAC;GAEC,WAAW,KACT,qCACA,0DACD;aAEA,EAAE,IAAI,QAAQ,MAAM,gBAAgB;AACnC,WACE,oBAACA;KAEC,IAAI,KAAK;KACT,QAAO;KACP,IAAI,KAAK;eAET,oBAAC;MACC,WAAU;MACV,MAAM,KAAK;OACX;OARG,YASQ;KAEjB;KApBG,aAqBD;GAER"}
|
|
@@ -3,7 +3,7 @@ const require_paragraph = require('./paragraph-iuz3jP0Q.js');
|
|
|
3
3
|
const require_button = require('./button-Dk0MxlKd.js');
|
|
4
4
|
const require_request_origins = require('./request-origins-BDXulkK9.js');
|
|
5
5
|
const require_external_link = require('./external-link-Ce1_loKh.js');
|
|
6
|
-
const require_icons = require('./icons-
|
|
6
|
+
const require_icons = require('./icons-BZI6_5JJ.js');
|
|
7
7
|
let clsx = require("clsx");
|
|
8
8
|
clsx = require_chunk.__toESM(clsx);
|
|
9
9
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -104,4 +104,4 @@ Object.defineProperty(exports, 'StaticLinks', {
|
|
|
104
104
|
return StaticLinks;
|
|
105
105
|
}
|
|
106
106
|
});
|
|
107
|
-
//# sourceMappingURL=links-
|
|
107
|
+
//# sourceMappingURL=links-DMd-CuUJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"links-
|
|
1
|
+
{"version":3,"file":"links-DMd-CuUJ.js","names":["SocialMedia","ExternalLink","IconButton","forClientSideRendering","P3","P2"],"sources":["../src/footer/links.tsx"],"sourcesContent":["import clsx from 'clsx'\n// text\nimport { P2, P3 } from '../text/paragraph'\n// constants\nimport type { ReleaseBranch } from '../constants/release-branch'\nimport { forClientSideRendering } from '../constants/request-origins'\n// button\nimport { IconButton } from '../button'\n// link\nimport { ExternalLink } from '../customized-link'\n// icon\nimport { SocialMedia } from '../icons'\n// types\nimport type { LinkType, SocialMediaLink } from './types'\n// lodash\nimport map from 'lodash/map'\nconst _ = {\n map,\n}\n\nexport const SocialLinks = ({\n releaseBranch,\n links,\n}: {\n releaseBranch: ReleaseBranch\n links: SocialMediaLink[]\n}) => {\n return (\n <div className=\"flex gap-[16px]\">\n {_.map(links, (link) => {\n const iconComponent = (\n <SocialMedia mediaType={link.icon} releaseBranch={releaseBranch} />\n )\n return (\n <ExternalLink key={link.icon} to={link.link} target=\"_blank\">\n <IconButton iconComponent={iconComponent} />\n </ExternalLink>\n )\n })}\n </div>\n )\n}\n\nexport const StaticLinks = ({\n releaseBranch,\n}: {\n releaseBranch: ReleaseBranch\n}) => {\n const mainOrigin = forClientSideRendering[releaseBranch].main\n return (\n <>\n <ExternalLink to={`${mainOrigin}/a/license-footer`} target=\"_blank\">\n <P3\n className=\"text-gray-600 underline underline-offset-[4px]\"\n text=\"許可協議\"\n />\n </ExternalLink>\n <P3 className=\"text-gray-600\" text=\"|\" />\n <ExternalLink to={`${mainOrigin}/a/privacy-footer`} target=\"_blank\">\n <P3\n className=\"text-gray-600 underline underline-offset-[4px]\"\n text=\"隱私政策\"\n />\n </ExternalLink>\n <P3 className=\"text-gray-600\" text=\"|\" />\n <ExternalLink\n to={'https://twreporter.gitbook.io/the-reporter-brand-guidelines'}\n target=\"_blank\"\n >\n <P3\n className=\"text-gray-600 underline underline-offset-[4px]\"\n text=\"品牌規範\"\n />\n </ExternalLink>\n </>\n )\n}\n\nexport const LinkButtonGroups = ({\n linksGroups,\n}: {\n releaseBranch: ReleaseBranch\n linksGroups: LinkType[][]\n}) => {\n return _.map(linksGroups, (links, indexofGroup) => {\n return (\n <div\n key={indexofGroup}\n className={clsx(\n 'flex flex-col gap-[8px] basis-1/3',\n 'desktop:w-[120px] desktop:gap-[16px] desktop:basis-auto'\n )}\n >\n {_.map(links, (link, indexofLink) => {\n return (\n <ExternalLink\n key={indexofLink}\n to={link.link}\n target=\"_blank\"\n id={link.id}\n >\n <P2\n className=\"text-gray-600 hover:text-gray-800\"\n text={link.text}\n />\n </ExternalLink>\n )\n })}\n </div>\n )\n })\n}\n"],"mappings":";;;;;;;;;;;;;;AAgBA,MAAM,IAAI,EACR,yBACD;AAED,MAAa,eAAe,EAC1B,eACA,YAII;AACJ,QACE,2CAAC;EAAI,WAAU;YACZ,EAAE,IAAI,QAAQ,SAAS;GACtB,MAAM,gBACJ,2CAACA;IAAY,WAAW,KAAK;IAAqB;KAAiB;AAErE,UACE,2CAACC;IAA6B,IAAI,KAAK;IAAM,QAAO;cAClD,2CAACC,sCAA0B,gBAAiB;MAD3B,KAAK,KAET;IAEjB;GACE;;AAIV,MAAa,eAAe,EAC1B,oBAGI;CACJ,MAAM,aAAaC,+CAAuB,eAAe;AACzD,QACE;EACE,2CAACF;GAAa,IAAI,GAAG,WAAW;GAAoB,QAAO;aACzD,2CAACG;IACC,WAAU;IACV,MAAK;KACL;IACW;EACf,2CAACA;GAAG,WAAU;GAAgB,MAAK;IAAM;EACzC,2CAACH;GAAa,IAAI,GAAG,WAAW;GAAoB,QAAO;aACzD,2CAACG;IACC,WAAU;IACV,MAAK;KACL;IACW;EACf,2CAACA;GAAG,WAAU;GAAgB,MAAK;IAAM;EACzC,2CAACH;GACC,IAAI;GACJ,QAAO;aAEP,2CAACG;IACC,WAAU;IACV,MAAK;KACL;IACW;KACd;;AAIP,MAAa,oBAAoB,EAC/B,kBAII;AACJ,QAAO,EAAE,IAAI,cAAc,OAAO,iBAAiB;AACjD,SACE,2CAAC;GAEC,6BACE,qCACA,0DACD;aAEA,EAAE,IAAI,QAAQ,MAAM,gBAAgB;AACnC,WACE,2CAACH;KAEC,IAAI,KAAK;KACT,QAAO;KACP,IAAI,KAAK;eAET,2CAACI;MACC,WAAU;MACV,MAAM,KAAK;OACX;OARG,YASQ;KAEjB;KApBG,aAqBD;GAER"}
|
package/lib/logo/constants.js
CHANGED
package/lib/logo/constants.mjs
CHANGED
package/lib/logo/index.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "../index-CUE6zs36.mjs";
|
|
2
2
|
import { ReleaseBranch } from "../release-branch-uF0B5lcE.mjs";
|
|
3
3
|
import { LOGO_SYMBOL_TYPE, LOGO_TYPE, LogoSymbolType, LogoType } from "../constants-oNjXcfW2.mjs";
|
|
4
|
-
import * as
|
|
4
|
+
import * as react11 from "react";
|
|
5
5
|
import React from "react";
|
|
6
6
|
|
|
7
7
|
//#region src/logo/components/logo-header.d.ts
|
|
@@ -33,22 +33,22 @@ declare const LogoHeader: React.FC<LogoHeaderProps> & {
|
|
|
33
33
|
//#endregion
|
|
34
34
|
//#region src/logo/index.d.ts
|
|
35
35
|
declare const _default: {
|
|
36
|
-
LogoHeader:
|
|
36
|
+
LogoHeader: react11.FC<{
|
|
37
37
|
type: LogoType;
|
|
38
38
|
releaseBranch?: ReleaseBranch;
|
|
39
|
-
} &
|
|
39
|
+
} & react11.ImgHTMLAttributes<HTMLImageElement>> & {
|
|
40
40
|
Type: typeof LOGO_TYPE;
|
|
41
41
|
};
|
|
42
|
-
LogoSymbol:
|
|
42
|
+
LogoSymbol: react11.FC<{
|
|
43
43
|
type: LogoSymbolType;
|
|
44
44
|
releaseBranch?: ReleaseBranch;
|
|
45
|
-
} &
|
|
45
|
+
} & react11.ImgHTMLAttributes<HTMLImageElement>> & {
|
|
46
46
|
Type: typeof LOGO_SYMBOL_TYPE;
|
|
47
47
|
};
|
|
48
|
-
LogoFooter:
|
|
48
|
+
LogoFooter: react11.FC<{
|
|
49
49
|
type: LogoType;
|
|
50
50
|
releaseBranch?: ReleaseBranch;
|
|
51
|
-
} &
|
|
51
|
+
} & react11.ImgHTMLAttributes<HTMLImageElement>> & {
|
|
52
52
|
Type: typeof LOGO_TYPE;
|
|
53
53
|
};
|
|
54
54
|
};
|
package/lib/logo/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
2
2
|
require('../release-branch-CRZV4Ivz.js');
|
|
3
|
-
require('../
|
|
4
|
-
|
|
3
|
+
const require_logo = require('../logo-B35M1BaX.js');
|
|
4
|
+
require('../constants-pqSeExjX.js');
|
|
5
5
|
|
|
6
6
|
exports.LogoFooter = require_logo.logo_footer_default;
|
|
7
7
|
exports.LogoHeader = require_logo.logo_header_default;
|
package/lib/logo/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "../release-branch-DNCD1uH_.mjs";
|
|
2
|
-
import "../
|
|
3
|
-
import
|
|
2
|
+
import { logo_default, logo_footer_default, logo_header_default, logo_symbol_default } from "../logo-DkEpjnPV.mjs";
|
|
3
|
+
import "../constants-DKqcALfv.mjs";
|
|
4
4
|
|
|
5
5
|
export { logo_footer_default as LogoFooter, logo_header_default as LogoHeader, logo_symbol_default as LogoSymbol, logo_default as default };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const require_chunk = require('./chunk-BxBTb9qk.js');
|
|
2
2
|
const require_release_branch = require('./release-branch-CRZV4Ivz.js');
|
|
3
|
-
const require_constants = require('./constants-
|
|
3
|
+
const require_constants = require('./constants-pqSeExjX.js');
|
|
4
4
|
let clsx = require("clsx");
|
|
5
5
|
clsx = require_chunk.__toESM(clsx);
|
|
6
6
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -103,4 +103,4 @@ Object.defineProperty(exports, 'logo_symbol_default', {
|
|
|
103
103
|
return logo_symbol_default;
|
|
104
104
|
}
|
|
105
105
|
});
|
|
106
|
-
//# sourceMappingURL=logo-
|
|
106
|
+
//# sourceMappingURL=logo-B35M1BaX.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logo-
|
|
1
|
+
{"version":3,"file":"logo-B35M1BaX.js","names":["LogoHeader: React.FC<LogoHeaderProps> & { Type: typeof LOGO_TYPE }","LOGO_TYPE","RELEASE_BRANCH","pathUtil","LOGO","LogoHeader","LogoSymbol: React.FC<LogoSymbolProps> & {\n Type: typeof LOGO_SYMBOL_TYPE\n}","LOGO_SYMBOL_TYPE","RELEASE_BRANCH","pathUtil","LOGO","LogoHeader: React.FC<LogoHeaderProps> & { Type: typeof LOGO_TYPE }","LOGO_TYPE","RELEASE_BRANCH","pathUtil","LOGO"],"sources":["../src/logo/utils/path.ts","../src/logo/components/logo-header.tsx","../src/logo/components/logo-symbol.tsx","../src/logo/components/logo-footer.tsx","../src/logo/index.ts"],"sourcesContent":["import type { ReleaseBranch } from '../../constants/release-branch'\nimport type { Logo, LogoType, LogoSymbolType } from '../constants'\n\nconst baseGCSDir = 'https://www.twreporter.org/images/logo/'\n\nfunction selectLogoPath(\n logo: Logo,\n branch: ReleaseBranch,\n type: LogoType | LogoSymbolType\n) {\n switch (logo) {\n case 'header': {\n const defaultPath = `${baseGCSDir}logo-header.${branch}.svg`\n const whitePath = `${baseGCSDir}logo-header-white.${branch}.svg`\n return type === 'white' ? whitePath : defaultPath\n }\n case 'footer': {\n const path = {\n default: `${baseGCSDir}logo-footer.${branch}.svg`,\n white: `${baseGCSDir}logo-footer-white.${branch}.svg`,\n }\n return path[type as LogoType]\n }\n case 'symbol': {\n const path = {\n default: `${baseGCSDir}logo-symbol-default.${branch}.svg`,\n black: `${baseGCSDir}logo-symbol-black.${branch}.svg`,\n white: `${baseGCSDir}logo-symbol-white.${branch}.svg`,\n }\n return path[type]\n }\n case 'loading-fallback': {\n return `${baseGCSDir}logo-loading-fallback.${branch}.svg`\n }\n default: {\n return ''\n }\n }\n}\n\nexport default {\n selectLogoPath,\n}\n","import type React from 'react'\n// utils\nimport pathUtil from '../utils/path'\n// constants\nimport {\n RELEASE_BRANCH,\n type ReleaseBranch,\n} from '../../constants/release-branch'\nimport { LOGO, LOGO_TYPE, type LogoType } from '../constants'\n\ntype LogoHeaderProps = {\n type: LogoType\n releaseBranch?: ReleaseBranch\n} & React.ImgHTMLAttributes<HTMLImageElement>\n\nconst LogoHeader: React.FC<LogoHeaderProps> & { Type: typeof LOGO_TYPE } = ({\n type = LOGO_TYPE.default,\n releaseBranch = RELEASE_BRANCH.master,\n ...props\n}) => {\n const logoSrc = pathUtil.selectLogoPath(LOGO.header, releaseBranch, type)\n\n return (\n // biome-ignore lint/performance/noImgElement: use next image later\n <img alt=\"The Reporter Logo\" src={logoSrc} {...props} />\n )\n}\n\nLogoHeader.Type = LOGO_TYPE\n\nexport default LogoHeader\n","import type React from 'react'\n// utils\nimport pathUtil from '../utils/path'\n// constants\nimport {\n RELEASE_BRANCH,\n type ReleaseBranch,\n} from '../../constants/release-branch'\nimport { LOGO, LOGO_SYMBOL_TYPE, type LogoSymbolType } from '../constants'\n\ntype LogoSymbolProps = {\n type: LogoSymbolType\n releaseBranch?: ReleaseBranch\n} & React.ImgHTMLAttributes<HTMLImageElement>\n\nconst LogoSymbol: React.FC<LogoSymbolProps> & {\n Type: typeof LOGO_SYMBOL_TYPE\n} = ({\n type = LOGO_SYMBOL_TYPE.default,\n releaseBranch = RELEASE_BRANCH.master,\n ...props\n}) => {\n const logoSrc = pathUtil.selectLogoPath(LOGO.symbol, releaseBranch, type)\n\n return (\n // biome-ignore lint/performance/noImgElement: use next image later\n <img alt=\"The Reporter Logo\" src={logoSrc} {...props} />\n )\n}\n\nLogoSymbol.Type = LOGO_SYMBOL_TYPE\n\nexport default LogoSymbol\n","import type React from 'react'\nimport clsx from 'clsx'\n// utils\nimport pathUtil from '../utils/path'\n// constants\nimport {\n RELEASE_BRANCH,\n type ReleaseBranch,\n} from '../../constants/release-branch'\nimport { LOGO, LOGO_TYPE, type LogoType } from '../constants'\n\ntype LogoHeaderProps = {\n type: LogoType\n releaseBranch?: ReleaseBranch\n} & React.ImgHTMLAttributes<HTMLImageElement>\n\nconst LogoHeader: React.FC<LogoHeaderProps> & { Type: typeof LOGO_TYPE } = ({\n type = LOGO_TYPE.default,\n releaseBranch = RELEASE_BRANCH.master,\n ...props\n}) => {\n const logoSrc = pathUtil.selectLogoPath(LOGO.footer, releaseBranch, type)\n\n return (\n // biome-ignore lint/performance/noImgElement: use next image later\n <img\n className={clsx(\n 'w-[232px] h-[25px]',\n 'desktop:w-[272px] desktop:h-[29px]'\n )}\n alt=\"The Reporter Logo\"\n src={logoSrc}\n {...props}\n />\n )\n}\n\nLogoHeader.Type = LOGO_TYPE\n\nexport default LogoHeader\n","import LogoHeader from './components/logo-header'\nimport LogoSymbol from './components/logo-symbol'\nimport LogoFooter from './components/logo-footer'\n\nexport default {\n LogoHeader,\n LogoSymbol,\n LogoFooter,\n}\n\nexport { LogoHeader, LogoSymbol, LogoFooter }\n"],"mappings":";;;;;;;;;AAGA,MAAM,aAAa;AAEnB,SAAS,eACP,MACA,QACA,MACA;AACA,SAAQ,MAAR;EACE,KAAK,UAAU;GACb,MAAM,cAAc,GAAG,WAAW,cAAc,OAAO;GACvD,MAAM,YAAY,GAAG,WAAW,oBAAoB,OAAO;AAC3D,UAAO,SAAS,UAAU,YAAY;;EAExC,KAAK,SAKH,QAJa;GACX,SAAS,GAAG,WAAW,cAAc,OAAO;GAC5C,OAAO,GAAG,WAAW,oBAAoB,OAAO;GACjD,CACW;EAEd,KAAK,SAMH,QALa;GACX,SAAS,GAAG,WAAW,sBAAsB,OAAO;GACpD,OAAO,GAAG,WAAW,oBAAoB,OAAO;GAChD,OAAO,GAAG,WAAW,oBAAoB,OAAO;GACjD,CACW;EAEd,KAAK,mBACH,QAAO,GAAG,WAAW,wBAAwB,OAAO;EAEtD,QACE,QAAO;;;AAKb,mBAAe,EACb,gBACD;;;;AC3BD,MAAMA,gBAAsE,EAC1E,OAAOC,4BAAU,SACjB,gBAAgBC,sCAAe,OAC/B,GAAG,YACC;CACJ,MAAM,UAAUC,aAAS,eAAeC,uBAAK,QAAQ,eAAe,KAAK;AAEzE,QAEE,2CAAC;EAAI,KAAI;EAAoB,KAAK;EAAS,GAAI;GAAS;;AAI5D,aAAW,OAAOH;AAElB,0BAAeI;;;;ACff,MAAMC,cAED,EACH,OAAOC,mCAAiB,SACxB,gBAAgBC,sCAAe,OAC/B,GAAG,YACC;CACJ,MAAM,UAAUC,aAAS,eAAeC,uBAAK,QAAQ,eAAe,KAAK;AAEzE,QAEE,2CAAC;EAAI,KAAI;EAAoB,KAAK;EAAS,GAAI;GAAS;;AAI5D,WAAW,OAAOH;AAElB,0BAAe;;;;AChBf,MAAMI,cAAsE,EAC1E,OAAOC,4BAAU,SACjB,gBAAgBC,sCAAe,OAC/B,GAAG,YACC;CACJ,MAAM,UAAUC,aAAS,eAAeC,uBAAK,QAAQ,eAAe,KAAK;AAEzE,QAEE,2CAAC;EACC,6BACE,sBACA,qCACD;EACD,KAAI;EACJ,KAAK;EACL,GAAI;GACJ;;AAIN,WAAW,OAAOH;AAElB,0BAAe;;;;ACnCf,mBAAe;CACb;CACA;CACA;CACD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const require_chunk = require('./chunk-BxBTb9qk.js');
|
|
2
2
|
const require_release_branch = require('./release-branch-CRZV4Ivz.js');
|
|
3
3
|
const require_internal_link = require('./internal-link-Bq4yp13E.js');
|
|
4
|
-
const require_logo = require('./logo-
|
|
4
|
+
const require_logo = require('./logo-B35M1BaX.js');
|
|
5
5
|
let react = require("react");
|
|
6
6
|
react = require_chunk.__toESM(react);
|
|
7
7
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -29,4 +29,4 @@ Object.defineProperty(exports, 'logo_default', {
|
|
|
29
29
|
return logo_default;
|
|
30
30
|
}
|
|
31
31
|
});
|
|
32
|
-
//# sourceMappingURL=logo-
|
|
32
|
+
//# sourceMappingURL=logo-CeaVUbIW.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logo-
|
|
1
|
+
{"version":3,"file":"logo-CeaVUbIW.js","names":["Logo: FC<LogoProps>","RELEASE_BRANCH","InternalLink","LogoFooter"],"sources":["../src/footer/logo.tsx"],"sourcesContent":["import { useState, type FC } from 'react'\n// components\nimport { LogoFooter } from '../logo'\nimport { InternalLink } from '../customized-link'\n// constants\nimport { RELEASE_BRANCH, type ReleaseBranch } from '../constants/release-branch'\n\ntype LogoProps = {\n releaseBranch?: ReleaseBranch\n}\nconst Logo: FC<LogoProps> = ({ releaseBranch = RELEASE_BRANCH.master }) => {\n const [isHover, setIsHover] = useState(false)\n return (\n <InternalLink\n to=\"/\"\n onMouseEnter={() => setIsHover(true)}\n onMouseLeave={() => setIsHover(false)}\n >\n <LogoFooter\n releaseBranch={releaseBranch}\n type={isHover ? LogoFooter.Type.default : LogoFooter.Type.white}\n />\n </InternalLink>\n )\n}\n\nexport default Logo\n"],"mappings":";;;;;;;;;;AAUA,MAAMA,QAAuB,EAAE,gBAAgBC,sCAAe,aAAa;CACzE,MAAM,CAAC,SAAS,kCAAuB,MAAM;AAC7C,QACE,2CAACC;EACC,IAAG;EACH,oBAAoB,WAAW,KAAK;EACpC,oBAAoB,WAAW,MAAM;YAErC,2CAACC;GACgB;GACf,MAAM,UAAUA,iCAAW,KAAK,UAAUA,iCAAW,KAAK;IAC1D;GACW;;AAInB,mBAAe"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RELEASE_BRANCH } from "./release-branch-DNCD1uH_.mjs";
|
|
2
|
-
import { LOGO, LOGO_SYMBOL_TYPE, LOGO_TYPE } from "./constants-
|
|
2
|
+
import { LOGO, LOGO_SYMBOL_TYPE, LOGO_TYPE } from "./constants-DKqcALfv.mjs";
|
|
3
3
|
import clsx from "clsx";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
5
|
|
|
@@ -77,4 +77,4 @@ var logo_default = {
|
|
|
77
77
|
|
|
78
78
|
//#endregion
|
|
79
79
|
export { logo_default, logo_footer_default, logo_header_default, logo_symbol_default };
|
|
80
|
-
//# sourceMappingURL=logo-
|
|
80
|
+
//# sourceMappingURL=logo-DkEpjnPV.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logo-
|
|
1
|
+
{"version":3,"file":"logo-DkEpjnPV.mjs","names":["LogoHeader: React.FC<LogoHeaderProps> & { Type: typeof LOGO_TYPE }","pathUtil","LogoHeader","LogoSymbol: React.FC<LogoSymbolProps> & {\n Type: typeof LOGO_SYMBOL_TYPE\n}","pathUtil","LogoHeader: React.FC<LogoHeaderProps> & { Type: typeof LOGO_TYPE }","pathUtil"],"sources":["../src/logo/utils/path.ts","../src/logo/components/logo-header.tsx","../src/logo/components/logo-symbol.tsx","../src/logo/components/logo-footer.tsx","../src/logo/index.ts"],"sourcesContent":["import type { ReleaseBranch } from '../../constants/release-branch'\nimport type { Logo, LogoType, LogoSymbolType } from '../constants'\n\nconst baseGCSDir = 'https://www.twreporter.org/images/logo/'\n\nfunction selectLogoPath(\n logo: Logo,\n branch: ReleaseBranch,\n type: LogoType | LogoSymbolType\n) {\n switch (logo) {\n case 'header': {\n const defaultPath = `${baseGCSDir}logo-header.${branch}.svg`\n const whitePath = `${baseGCSDir}logo-header-white.${branch}.svg`\n return type === 'white' ? whitePath : defaultPath\n }\n case 'footer': {\n const path = {\n default: `${baseGCSDir}logo-footer.${branch}.svg`,\n white: `${baseGCSDir}logo-footer-white.${branch}.svg`,\n }\n return path[type as LogoType]\n }\n case 'symbol': {\n const path = {\n default: `${baseGCSDir}logo-symbol-default.${branch}.svg`,\n black: `${baseGCSDir}logo-symbol-black.${branch}.svg`,\n white: `${baseGCSDir}logo-symbol-white.${branch}.svg`,\n }\n return path[type]\n }\n case 'loading-fallback': {\n return `${baseGCSDir}logo-loading-fallback.${branch}.svg`\n }\n default: {\n return ''\n }\n }\n}\n\nexport default {\n selectLogoPath,\n}\n","import type React from 'react'\n// utils\nimport pathUtil from '../utils/path'\n// constants\nimport {\n RELEASE_BRANCH,\n type ReleaseBranch,\n} from '../../constants/release-branch'\nimport { LOGO, LOGO_TYPE, type LogoType } from '../constants'\n\ntype LogoHeaderProps = {\n type: LogoType\n releaseBranch?: ReleaseBranch\n} & React.ImgHTMLAttributes<HTMLImageElement>\n\nconst LogoHeader: React.FC<LogoHeaderProps> & { Type: typeof LOGO_TYPE } = ({\n type = LOGO_TYPE.default,\n releaseBranch = RELEASE_BRANCH.master,\n ...props\n}) => {\n const logoSrc = pathUtil.selectLogoPath(LOGO.header, releaseBranch, type)\n\n return (\n // biome-ignore lint/performance/noImgElement: use next image later\n <img alt=\"The Reporter Logo\" src={logoSrc} {...props} />\n )\n}\n\nLogoHeader.Type = LOGO_TYPE\n\nexport default LogoHeader\n","import type React from 'react'\n// utils\nimport pathUtil from '../utils/path'\n// constants\nimport {\n RELEASE_BRANCH,\n type ReleaseBranch,\n} from '../../constants/release-branch'\nimport { LOGO, LOGO_SYMBOL_TYPE, type LogoSymbolType } from '../constants'\n\ntype LogoSymbolProps = {\n type: LogoSymbolType\n releaseBranch?: ReleaseBranch\n} & React.ImgHTMLAttributes<HTMLImageElement>\n\nconst LogoSymbol: React.FC<LogoSymbolProps> & {\n Type: typeof LOGO_SYMBOL_TYPE\n} = ({\n type = LOGO_SYMBOL_TYPE.default,\n releaseBranch = RELEASE_BRANCH.master,\n ...props\n}) => {\n const logoSrc = pathUtil.selectLogoPath(LOGO.symbol, releaseBranch, type)\n\n return (\n // biome-ignore lint/performance/noImgElement: use next image later\n <img alt=\"The Reporter Logo\" src={logoSrc} {...props} />\n )\n}\n\nLogoSymbol.Type = LOGO_SYMBOL_TYPE\n\nexport default LogoSymbol\n","import type React from 'react'\nimport clsx from 'clsx'\n// utils\nimport pathUtil from '../utils/path'\n// constants\nimport {\n RELEASE_BRANCH,\n type ReleaseBranch,\n} from '../../constants/release-branch'\nimport { LOGO, LOGO_TYPE, type LogoType } from '../constants'\n\ntype LogoHeaderProps = {\n type: LogoType\n releaseBranch?: ReleaseBranch\n} & React.ImgHTMLAttributes<HTMLImageElement>\n\nconst LogoHeader: React.FC<LogoHeaderProps> & { Type: typeof LOGO_TYPE } = ({\n type = LOGO_TYPE.default,\n releaseBranch = RELEASE_BRANCH.master,\n ...props\n}) => {\n const logoSrc = pathUtil.selectLogoPath(LOGO.footer, releaseBranch, type)\n\n return (\n // biome-ignore lint/performance/noImgElement: use next image later\n <img\n className={clsx(\n 'w-[232px] h-[25px]',\n 'desktop:w-[272px] desktop:h-[29px]'\n )}\n alt=\"The Reporter Logo\"\n src={logoSrc}\n {...props}\n />\n )\n}\n\nLogoHeader.Type = LOGO_TYPE\n\nexport default LogoHeader\n","import LogoHeader from './components/logo-header'\nimport LogoSymbol from './components/logo-symbol'\nimport LogoFooter from './components/logo-footer'\n\nexport default {\n LogoHeader,\n LogoSymbol,\n LogoFooter,\n}\n\nexport { LogoHeader, LogoSymbol, LogoFooter }\n"],"mappings":";;;;;;AAGA,MAAM,aAAa;AAEnB,SAAS,eACP,MACA,QACA,MACA;AACA,SAAQ,MAAR;EACE,KAAK,UAAU;GACb,MAAM,cAAc,GAAG,WAAW,cAAc,OAAO;GACvD,MAAM,YAAY,GAAG,WAAW,oBAAoB,OAAO;AAC3D,UAAO,SAAS,UAAU,YAAY;;EAExC,KAAK,SAKH,QAJa;GACX,SAAS,GAAG,WAAW,cAAc,OAAO;GAC5C,OAAO,GAAG,WAAW,oBAAoB,OAAO;GACjD,CACW;EAEd,KAAK,SAMH,QALa;GACX,SAAS,GAAG,WAAW,sBAAsB,OAAO;GACpD,OAAO,GAAG,WAAW,oBAAoB,OAAO;GAChD,OAAO,GAAG,WAAW,oBAAoB,OAAO;GACjD,CACW;EAEd,KAAK,mBACH,QAAO,GAAG,WAAW,wBAAwB,OAAO;EAEtD,QACE,QAAO;;;AAKb,mBAAe,EACb,gBACD;;;;AC3BD,MAAMA,gBAAsE,EAC1E,OAAO,UAAU,SACjB,gBAAgB,eAAe,OAC/B,GAAG,YACC;CACJ,MAAM,UAAUC,aAAS,eAAe,KAAK,QAAQ,eAAe,KAAK;AAEzE,QAEE,oBAAC;EAAI,KAAI;EAAoB,KAAK;EAAS,GAAI;GAAS;;AAI5D,aAAW,OAAO;AAElB,0BAAeC;;;;ACff,MAAMC,cAED,EACH,OAAO,iBAAiB,SACxB,gBAAgB,eAAe,OAC/B,GAAG,YACC;CACJ,MAAM,UAAUC,aAAS,eAAe,KAAK,QAAQ,eAAe,KAAK;AAEzE,QAEE,oBAAC;EAAI,KAAI;EAAoB,KAAK;EAAS,GAAI;GAAS;;AAI5D,WAAW,OAAO;AAElB,0BAAe;;;;AChBf,MAAMC,cAAsE,EAC1E,OAAO,UAAU,SACjB,gBAAgB,eAAe,OAC/B,GAAG,YACC;CACJ,MAAM,UAAUC,aAAS,eAAe,KAAK,QAAQ,eAAe,KAAK;AAEzE,QAEE,oBAAC;EACC,WAAW,KACT,sBACA,qCACD;EACD,KAAI;EACJ,KAAK;EACL,GAAI;GACJ;;AAIN,WAAW,OAAO;AAElB,0BAAe;;;;ACnCf,mBAAe;CACb;CACA;CACA;CACD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { internal_link_default } from "./internal-link-DCXJvzgx.mjs";
|
|
2
2
|
import { RELEASE_BRANCH } from "./release-branch-DNCD1uH_.mjs";
|
|
3
|
-
import { logo_footer_default } from "./logo-
|
|
3
|
+
import { logo_footer_default } from "./logo-DkEpjnPV.mjs";
|
|
4
4
|
import { useState } from "react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
|
|
@@ -21,4 +21,4 @@ var logo_default = Logo;
|
|
|
21
21
|
|
|
22
22
|
//#endregion
|
|
23
23
|
export { logo_default };
|
|
24
|
-
//# sourceMappingURL=logo-
|
|
24
|
+
//# sourceMappingURL=logo-lPQ3Apwn.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logo-
|
|
1
|
+
{"version":3,"file":"logo-lPQ3Apwn.mjs","names":["Logo: FC<LogoProps>","InternalLink","LogoFooter"],"sources":["../src/footer/logo.tsx"],"sourcesContent":["import { useState, type FC } from 'react'\n// components\nimport { LogoFooter } from '../logo'\nimport { InternalLink } from '../customized-link'\n// constants\nimport { RELEASE_BRANCH, type ReleaseBranch } from '../constants/release-branch'\n\ntype LogoProps = {\n releaseBranch?: ReleaseBranch\n}\nconst Logo: FC<LogoProps> = ({ releaseBranch = RELEASE_BRANCH.master }) => {\n const [isHover, setIsHover] = useState(false)\n return (\n <InternalLink\n to=\"/\"\n onMouseEnter={() => setIsHover(true)}\n onMouseLeave={() => setIsHover(false)}\n >\n <LogoFooter\n releaseBranch={releaseBranch}\n type={isHover ? LogoFooter.Type.default : LogoFooter.Type.white}\n />\n </InternalLink>\n )\n}\n\nexport default Logo\n"],"mappings":";;;;;;;AAUA,MAAMA,QAAuB,EAAE,gBAAgB,eAAe,aAAa;CACzE,MAAM,CAAC,SAAS,cAAc,SAAS,MAAM;AAC7C,QACE,oBAACC;EACC,IAAG;EACH,oBAAoB,WAAW,KAAK;EACpC,oBAAoB,WAAW,MAAM;YAErC,oBAACC;GACgB;GACf,MAAM,UAAUA,oBAAW,KAAK,UAAUA,oBAAW,KAAK;IAC1D;GACW;;AAInB,mBAAe"}
|
package/lib/tab-bar/constants.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require('../internal-links-DxtMobuI.js');
|
|
2
2
|
require('../release-branch-CRZV4Ivz.js');
|
|
3
|
-
require('../constants-
|
|
4
|
-
require('../icons-
|
|
5
|
-
const require_constants$1 = require('../constants-
|
|
3
|
+
require('../constants-R6EfY15A.js');
|
|
4
|
+
require('../icons-BZI6_5JJ.js');
|
|
5
|
+
const require_constants$1 = require('../constants-CUzusjTU.js');
|
|
6
6
|
|
|
7
7
|
exports.TabBarItems = require_constants$1.TabBarItems;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "../internal-links-CP3dqmrz.mjs";
|
|
2
2
|
import "../release-branch-DNCD1uH_.mjs";
|
|
3
|
-
import "../constants-
|
|
4
|
-
import "../icons-
|
|
5
|
-
import { TabBarItems } from "../constants-
|
|
3
|
+
import "../constants-Npoq7yu0.mjs";
|
|
4
|
+
import "../icons-C5UqghX2.mjs";
|
|
5
|
+
import { TabBarItems } from "../constants-B8QkNSRh.mjs";
|
|
6
6
|
|
|
7
7
|
export { TabBarItems };
|
package/lib/tab-bar/index.js
CHANGED
|
@@ -8,11 +8,11 @@ require('../release-branch-CRZV4Ivz.js');
|
|
|
8
8
|
require('../external-link-Ce1_loKh.js');
|
|
9
9
|
require('../internal-link-Bq4yp13E.js');
|
|
10
10
|
require('../customized-link-BDKQVdcH.js');
|
|
11
|
-
require('../
|
|
12
|
-
require('../
|
|
13
|
-
require('../
|
|
14
|
-
const require_tab_bar = require('../tab-bar-
|
|
11
|
+
require('../constants-R6EfY15A.js');
|
|
12
|
+
require('../icons-BZI6_5JJ.js');
|
|
13
|
+
require('../context-vBt5fnU9.js');
|
|
14
|
+
const require_tab_bar = require('../tab-bar-USs-mSXE.js');
|
|
15
15
|
require('../theme-B9k1Udon.js');
|
|
16
|
-
require('../constants-
|
|
16
|
+
require('../constants-CUzusjTU.js');
|
|
17
17
|
|
|
18
18
|
module.exports = require_tab_bar.tab_bar_default;
|
package/lib/tab-bar/index.mjs
CHANGED
|
@@ -8,11 +8,11 @@ import "../internal-links-CP3dqmrz.mjs";
|
|
|
8
8
|
import "../release-branch-DNCD1uH_.mjs";
|
|
9
9
|
import "../external-link-BMIFL3DE.mjs";
|
|
10
10
|
import "../customized-link-D3p9rjEe.mjs";
|
|
11
|
-
import "../
|
|
12
|
-
import "../
|
|
13
|
-
import "../
|
|
14
|
-
import { tab_bar_default } from "../tab-bar-
|
|
11
|
+
import "../constants-Npoq7yu0.mjs";
|
|
12
|
+
import "../icons-C5UqghX2.mjs";
|
|
13
|
+
import "../context-C9AuSZIE.mjs";
|
|
14
|
+
import { tab_bar_default } from "../tab-bar-C_FxNWkG.mjs";
|
|
15
15
|
import "../theme-Cf9NG_eL.mjs";
|
|
16
|
-
import "../constants-
|
|
16
|
+
import "../constants-B8QkNSRh.mjs";
|
|
17
17
|
|
|
18
18
|
export { tab_bar_default as default };
|
|
@@ -2,10 +2,10 @@ import { internal_link_default } from "./internal-link-DCXJvzgx.mjs";
|
|
|
2
2
|
import { THEME } from "./theme-BG6yZVj-.mjs";
|
|
3
3
|
import { icon_with_text_button_default } from "./button-D_AWI7r9.mjs";
|
|
4
4
|
import { external_link_default } from "./external-link-BMIFL3DE.mjs";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { Hamburger } from "./icons-C5UqghX2.mjs";
|
|
6
|
+
import { HamburgerContext, HeaderContext } from "./context-C9AuSZIE.mjs";
|
|
7
7
|
import { selectTabBarTheme } from "./theme-Cf9NG_eL.mjs";
|
|
8
|
-
import { TabBarItems } from "./constants-
|
|
8
|
+
import { TabBarItems } from "./constants-B8QkNSRh.mjs";
|
|
9
9
|
import { useContext } from "react";
|
|
10
10
|
import clsx from "clsx";
|
|
11
11
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -59,4 +59,4 @@ var tab_bar_default = TabBar;
|
|
|
59
59
|
|
|
60
60
|
//#endregion
|
|
61
61
|
export { ZIndex, tab_bar_default };
|
|
62
|
-
//# sourceMappingURL=tab-bar-
|
|
62
|
+
//# sourceMappingURL=tab-bar-C_FxNWkG.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab-bar-
|
|
1
|
+
{"version":3,"file":"tab-bar-C_FxNWkG.mjs","names":["TabBar: FC<TabBarProps>","ExternalLink","InternalLink","IconWithTextButton"],"sources":["../src/header/constants/z-index.ts","../src/tab-bar/index.tsx"],"sourcesContent":["export const ZIndex = {\n tabBarMobile: 'z-10',\n tabBarTablet: 'tablet:z-3',\n hamburger: 'z-4',\n header: 'z-3',\n topRow: 'z-2',\n channel: 'z-1',\n} as const\n","import { useContext, type FC } from 'react'\nimport clsx from 'clsx'\n// context\nimport { HamburgerContext, HeaderContext } from '../header/context'\n// z-index\nimport { ZIndex } from '../header/constants/z-index'\n// button\nimport { IconWithTextButton } from '../button'\n// icons\nimport { Hamburger } from '../icons'\n// theme\nimport { THEME } from '../constants/theme'\nimport { selectTabBarTheme } from './theme'\n// constants\nimport { TabBarItems } from './constants'\n// links\nimport { InternalLink, ExternalLink } from '../customized-link'\n// lodash\nimport map from 'lodash/map'\nconst _ = {\n map,\n}\n\ntype TabBarProps = {\n className?: string\n}\nconst TabBar: FC<TabBarProps> = ({ className = '' }) => {\n const { theme, releaseBranch, isLinkExternal, pathname } =\n useContext(HeaderContext)\n const { toggleHamburger, isHamburgerMenuOpen } = useContext(HamburgerContext)\n const { bgColor } = selectTabBarTheme(theme)\n const iconTheme = theme === THEME.photography ? theme : THEME.normal\n const LinkComponent = isLinkExternal ? ExternalLink : InternalLink\n return (\n <div\n className={clsx(\n 'w-screen fixed left-0 bottom-0 flex justify-between px-[16px] pt-[8px] pb-[calc(8px+env(safe-area-inset-bottom,0))] shadow-[0_0_2px_rgba(0,0,0,0.15)]',\n 'desktop:hidden',\n bgColor,\n ZIndex.tabBarMobile,\n ZIndex.tabBarTablet,\n className\n )}\n >\n {_.map(TabBarItems(releaseBranch), (item) => {\n const isActive = !isHamburgerMenuOpen && pathname === item.link\n return (\n <LinkComponent\n key={item.text}\n to={item.link}\n target={item.target}\n className=\"flex justify-center flex-1\"\n >\n <IconWithTextButton\n text={item.text}\n iconComponent={item.icon}\n theme={iconTheme}\n active={isActive}\n />\n </LinkComponent>\n )\n })}\n <IconWithTextButton\n text=\"選單\"\n iconComponent={Hamburger(releaseBranch)}\n className=\"flex justify-center flex-1\"\n onClick={toggleHamburger}\n active={isHamburgerMenuOpen}\n theme={iconTheme}\n />\n </div>\n )\n}\nexport default TabBar\n"],"mappings":";;;;;;;;;;;;;;AAAA,MAAa,SAAS;CACpB,cAAc;CACd,cAAc;CACd,WAAW;CACX,QAAQ;CACR,QAAQ;CACR,SAAS;CACV;;;;ACYD,MAAM,IAAI,EACR,KACD;AAKD,MAAMA,UAA2B,EAAE,YAAY,SAAS;CACtD,MAAM,EAAE,OAAO,eAAe,gBAAgB,aAC5C,WAAW,cAAc;CAC3B,MAAM,EAAE,iBAAiB,wBAAwB,WAAW,iBAAiB;CAC7E,MAAM,EAAE,YAAY,kBAAkB,MAAM;CAC5C,MAAM,YAAY,UAAU,MAAM,cAAc,QAAQ,MAAM;CAC9D,MAAM,gBAAgB,iBAAiBC,wBAAeC;AACtD,QACE,qBAAC;EACC,WAAW,KACT,yJACA,kBACA,SACA,OAAO,cACP,OAAO,cACP,UACD;aAEA,EAAE,IAAI,YAAY,cAAc,GAAG,SAAS;GAC3C,MAAM,WAAW,CAAC,uBAAuB,aAAa,KAAK;AAC3D,UACE,oBAAC;IAEC,IAAI,KAAK;IACT,QAAQ,KAAK;IACb,WAAU;cAEV,oBAACC;KACC,MAAM,KAAK;KACX,eAAe,KAAK;KACpB,OAAO;KACP,QAAQ;MACR;MAVG,KAAK,KAWI;IAElB,EACF,oBAACA;GACC,MAAK;GACL,eAAe,UAAU,cAAc;GACvC,WAAU;GACV,SAAS;GACT,QAAQ;GACR,OAAO;IACP;GACE;;AAGV,sBAAe"}
|
|
@@ -3,10 +3,10 @@ const require_theme = require('./theme-DDBlIbeS.js');
|
|
|
3
3
|
const require_button = require('./button-Dk0MxlKd.js');
|
|
4
4
|
const require_external_link = require('./external-link-Ce1_loKh.js');
|
|
5
5
|
const require_internal_link = require('./internal-link-Bq4yp13E.js');
|
|
6
|
-
const
|
|
7
|
-
const
|
|
6
|
+
const require_icons = require('./icons-BZI6_5JJ.js');
|
|
7
|
+
const require_context = require('./context-vBt5fnU9.js');
|
|
8
8
|
const require_theme$1 = require('./theme-B9k1Udon.js');
|
|
9
|
-
const require_constants = require('./constants-
|
|
9
|
+
const require_constants = require('./constants-CUzusjTU.js');
|
|
10
10
|
let react = require("react");
|
|
11
11
|
react = require_chunk.__toESM(react);
|
|
12
12
|
let clsx = require("clsx");
|
|
@@ -75,4 +75,4 @@ Object.defineProperty(exports, 'tab_bar_default', {
|
|
|
75
75
|
return tab_bar_default;
|
|
76
76
|
}
|
|
77
77
|
});
|
|
78
|
-
//# sourceMappingURL=tab-bar-
|
|
78
|
+
//# sourceMappingURL=tab-bar-USs-mSXE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab-bar-
|
|
1
|
+
{"version":3,"file":"tab-bar-USs-mSXE.js","names":["TabBar: FC<TabBarProps>","HeaderContext","HamburgerContext","selectTabBarTheme","THEME","ExternalLink","InternalLink","TabBarItems","IconWithTextButton","Hamburger"],"sources":["../src/header/constants/z-index.ts","../src/tab-bar/index.tsx"],"sourcesContent":["export const ZIndex = {\n tabBarMobile: 'z-10',\n tabBarTablet: 'tablet:z-3',\n hamburger: 'z-4',\n header: 'z-3',\n topRow: 'z-2',\n channel: 'z-1',\n} as const\n","import { useContext, type FC } from 'react'\nimport clsx from 'clsx'\n// context\nimport { HamburgerContext, HeaderContext } from '../header/context'\n// z-index\nimport { ZIndex } from '../header/constants/z-index'\n// button\nimport { IconWithTextButton } from '../button'\n// icons\nimport { Hamburger } from '../icons'\n// theme\nimport { THEME } from '../constants/theme'\nimport { selectTabBarTheme } from './theme'\n// constants\nimport { TabBarItems } from './constants'\n// links\nimport { InternalLink, ExternalLink } from '../customized-link'\n// lodash\nimport map from 'lodash/map'\nconst _ = {\n map,\n}\n\ntype TabBarProps = {\n className?: string\n}\nconst TabBar: FC<TabBarProps> = ({ className = '' }) => {\n const { theme, releaseBranch, isLinkExternal, pathname } =\n useContext(HeaderContext)\n const { toggleHamburger, isHamburgerMenuOpen } = useContext(HamburgerContext)\n const { bgColor } = selectTabBarTheme(theme)\n const iconTheme = theme === THEME.photography ? theme : THEME.normal\n const LinkComponent = isLinkExternal ? ExternalLink : InternalLink\n return (\n <div\n className={clsx(\n 'w-screen fixed left-0 bottom-0 flex justify-between px-[16px] pt-[8px] pb-[calc(8px+env(safe-area-inset-bottom,0))] shadow-[0_0_2px_rgba(0,0,0,0.15)]',\n 'desktop:hidden',\n bgColor,\n ZIndex.tabBarMobile,\n ZIndex.tabBarTablet,\n className\n )}\n >\n {_.map(TabBarItems(releaseBranch), (item) => {\n const isActive = !isHamburgerMenuOpen && pathname === item.link\n return (\n <LinkComponent\n key={item.text}\n to={item.link}\n target={item.target}\n className=\"flex justify-center flex-1\"\n >\n <IconWithTextButton\n text={item.text}\n iconComponent={item.icon}\n theme={iconTheme}\n active={isActive}\n />\n </LinkComponent>\n )\n })}\n <IconWithTextButton\n text=\"選單\"\n iconComponent={Hamburger(releaseBranch)}\n className=\"flex justify-center flex-1\"\n onClick={toggleHamburger}\n active={isHamburgerMenuOpen}\n theme={iconTheme}\n />\n </div>\n )\n}\nexport default TabBar\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,MAAa,SAAS;CACpB,cAAc;CACd,cAAc;CACd,WAAW;CACX,QAAQ;CACR,QAAQ;CACR,SAAS;CACV;;;;ACYD,MAAM,IAAI,EACR,yBACD;AAKD,MAAMA,UAA2B,EAAE,YAAY,SAAS;CACtD,MAAM,EAAE,OAAO,eAAe,gBAAgB,mCACjCC,8BAAc;CAC3B,MAAM,EAAE,iBAAiB,8CAAmCC,iCAAiB;CAC7E,MAAM,EAAE,YAAYC,kCAAkB,MAAM;CAC5C,MAAM,YAAY,UAAUC,oBAAM,cAAc,QAAQA,oBAAM;CAC9D,MAAM,gBAAgB,iBAAiBC,8CAAeC;AACtD,QACE,4CAAC;EACC,6BACE,yJACA,kBACA,SACA,OAAO,cACP,OAAO,cACP,UACD;aAEA,EAAE,IAAIC,8BAAY,cAAc,GAAG,SAAS;GAC3C,MAAM,WAAW,CAAC,uBAAuB,aAAa,KAAK;AAC3D,UACE,2CAAC;IAEC,IAAI,KAAK;IACT,QAAQ,KAAK;IACb,WAAU;cAEV,2CAACC;KACC,MAAM,KAAK;KACX,eAAe,KAAK;KACpB,OAAO;KACP,QAAQ;MACR;MAVG,KAAK,KAWI;IAElB,EACF,2CAACA;GACC,MAAK;GACL,eAAeC,wBAAU,cAAc;GACvC,WAAU;GACV,SAAS;GACT,QAAQ;GACR,OAAO;IACP;GACE;;AAGV,sBAAe"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as react9 from "react";
|
|
2
|
+
|
|
3
|
+
//#region src/hooks/use-outside-click.d.ts
|
|
4
|
+
declare const useOutsideClick: (callback: () => void) => react9.RefObject<HTMLDivElement | null>;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { useOutsideClick };
|
|
7
|
+
//# sourceMappingURL=use-outside-click-BA-T3hJc.d.ts.map
|
|
@@ -4,4 +4,4 @@ import * as react8 from "react";
|
|
|
4
4
|
declare const useOutsideClick: (callback: () => void) => react8.RefObject<HTMLDivElement | null>;
|
|
5
5
|
//#endregion
|
|
6
6
|
export { useOutsideClick };
|
|
7
|
-
//# sourceMappingURL=use-outside-click-
|
|
7
|
+
//# sourceMappingURL=use-outside-click-E-9eTkfz.d.mts.map
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "React components using TypeScript and Tailwind CSS",
|
|
4
4
|
"author": "twreporter <developer@twreporter.org>",
|
|
5
5
|
"license": "MIT",
|
|
6
|
-
"version": "0.1.0-beta.
|
|
6
|
+
"version": "0.1.0-beta.21",
|
|
7
7
|
"type": "commonjs",
|
|
8
8
|
"scripts": {
|
|
9
9
|
"clean": "rm -rf lib",
|
|
@@ -12,7 +12,10 @@
|
|
|
12
12
|
"build": "yarn clean && yarn build:components && yarn build:styles",
|
|
13
13
|
"prepublishOnly": "yarn build",
|
|
14
14
|
"storybook": "storybook dev -p 6006",
|
|
15
|
-
"build-storybook": "storybook build"
|
|
15
|
+
"build-storybook": "storybook build",
|
|
16
|
+
"build-storybook:dev": "STORYBOOK_BASE_PATH=/www-public-monorepo/dev storybook build --output-dir ../../storybook-static-dev",
|
|
17
|
+
"build-storybook:staging": "STORYBOOK_BASE_PATH=/www-public-monorepo/staging storybook build --output-dir ../../storybook-static-staging",
|
|
18
|
+
"build-storybook:prod": "STORYBOOK_BASE_PATH=/www-public-monorepo storybook build --output-dir ../../storybook-static-prod"
|
|
16
19
|
},
|
|
17
20
|
"peerDependencies": {
|
|
18
21
|
"react": "^19.0.0",
|
|
@@ -50,5 +53,5 @@
|
|
|
50
53
|
"url": "git+https://github.com/twreporter/www-public-monorepo.git",
|
|
51
54
|
"directory": "packages/react-typescript-components"
|
|
52
55
|
},
|
|
53
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "65bb6102208271eff57d92119048621f0c986673"
|
|
54
57
|
}
|