@payloadcms/ui 3.15.2-canary.de7619e → 3.16.0

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/LICENSE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2018-2024 Payload CMS, Inc. <info@payloadcms.com>
3
+ Copyright (c) 2018-2025 Payload CMS, Inc. <info@payloadcms.com>
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining
6
6
  a copy of this software and associated documentation files (the
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Localizer/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAkDA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Localizer/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAQvC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAgEA,CAAA"}
@@ -5,9 +5,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import { getTranslation } from '@payloadcms/translations';
6
6
  import { useSearchParams } from 'next/navigation.js';
7
7
  import * as qs from 'qs-esm';
8
- import React from 'react';
8
+ import React, { Fragment } from 'react';
9
9
  import { useConfig } from '../../providers/Config/index.js';
10
- import { useLocale } from '../../providers/Locale/index.js';
10
+ import { useLocale, useLocaleLoading } from '../../providers/Locale/index.js';
11
11
  import { useTranslation } from '../../providers/Translation/index.js';
12
12
  import { parseSearchParams } from '../../utilities/parseSearchParams.js';
13
13
  import { Popup, PopupList } from '../Popup/index.js';
@@ -15,7 +15,7 @@ import { LocalizerLabel } from './LocalizerLabel/index.js';
15
15
  import './index.scss';
16
16
  const baseClass = 'localizer';
17
17
  export const Localizer = props => {
18
- const $ = _c(13);
18
+ const $ = _c(15);
19
19
  const {
20
20
  className
21
21
  } = props;
@@ -26,6 +26,9 @@ export const Localizer = props => {
26
26
  localization
27
27
  } = config;
28
28
  const searchParams = useSearchParams();
29
+ const {
30
+ setLocaleIsLoading
31
+ } = useLocaleLoading();
29
32
  const {
30
33
  i18n
31
34
  } = useTranslation();
@@ -44,9 +47,9 @@ export const Localizer = props => {
44
47
  }
45
48
  const t1 = t0.join(" ");
46
49
  let t2;
47
- if ($[2] !== i18n || $[3] !== locale.code || $[4] !== locales || $[5] !== searchParams || $[6] !== t1) {
50
+ if ($[2] !== i18n || $[3] !== locale.code || $[4] !== locales || $[5] !== searchParams || $[6] !== setLocaleIsLoading || $[7] !== t1) {
48
51
  let t3;
49
- if ($[8] !== i18n || $[9] !== locale.code || $[10] !== locales || $[11] !== searchParams) {
52
+ if ($[9] !== i18n || $[10] !== locale.code || $[11] !== locales || $[12] !== searchParams || $[13] !== setLocaleIsLoading) {
50
53
  t3 = t4 => {
51
54
  const {
52
55
  close
@@ -54,27 +57,40 @@ export const Localizer = props => {
54
57
  return _jsx(PopupList.ButtonGroup, {
55
58
  children: locales.map(localeOption => {
56
59
  const localeOptionLabel = getTranslation(localeOption.label, i18n);
57
- return _jsxs(PopupList.Button, {
60
+ return _jsx(PopupList.Button, {
58
61
  active: locale.code === localeOption.code,
62
+ disabled: locale.code === localeOption.code,
59
63
  href: qs.stringify({
60
64
  ...parseSearchParams(searchParams),
61
65
  locale: localeOption.code
62
66
  }, {
63
67
  addQueryPrefix: true
64
68
  }),
65
- onClick: close,
66
- children: [localeOptionLabel, localeOptionLabel !== localeOption.code && ` (${localeOption.code})`]
69
+ onClick: () => {
70
+ setLocaleIsLoading(true);
71
+ close();
72
+ },
73
+ children: localeOptionLabel !== localeOption.code ? _jsxs(Fragment, {
74
+ children: [localeOptionLabel, "\xA0", _jsx("span", {
75
+ className: `${baseClass}__locale-code`,
76
+ children: `(${localeOption.code})`
77
+ })]
78
+ }) : _jsx("span", {
79
+ className: `${baseClass}__locale-code`,
80
+ children: localeOptionLabel
81
+ })
67
82
  }, localeOption.code);
68
83
  })
69
84
  });
70
85
  };
71
- $[8] = i18n;
72
- $[9] = locale.code;
73
- $[10] = locales;
74
- $[11] = searchParams;
75
- $[12] = t3;
86
+ $[9] = i18n;
87
+ $[10] = locale.code;
88
+ $[11] = locales;
89
+ $[12] = searchParams;
90
+ $[13] = setLocaleIsLoading;
91
+ $[14] = t3;
76
92
  } else {
77
- t3 = $[12];
93
+ t3 = $[14];
78
94
  }
79
95
  t2 = _jsx("div", {
80
96
  className: t1,
@@ -90,10 +106,11 @@ export const Localizer = props => {
90
106
  $[3] = locale.code;
91
107
  $[4] = locales;
92
108
  $[5] = searchParams;
93
- $[6] = t1;
94
- $[7] = t2;
109
+ $[6] = setLocaleIsLoading;
110
+ $[7] = t1;
111
+ $[8] = t2;
95
112
  } else {
96
- t2 = $[7];
113
+ t2 = $[8];
97
114
  }
98
115
  return t2;
99
116
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","useSearchParams","qs","React","useConfig","useLocale","useTranslation","parseSearchParams","Popup","PopupList","LocalizerLabel","baseClass","Localizer","props","$","className","config","localization","searchParams","i18n","locale","locales","t0","filter","Boolean","t1","join","t2","code","t3","t4","close","_jsx","ButtonGroup","children","map","localeOption","localeOptionLabel","label","_jsxs","Button","active","href","stringify","addQueryPrefix","onClick","button","horizontalAlign","render"],"sources":["../../../src/elements/Localizer/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useSearchParams } from 'next/navigation.js'\nimport * as qs from 'qs-esm'\nimport React from 'react'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { LocalizerLabel } from './LocalizerLabel/index.js'\nimport './index.scss'\n\nconst baseClass = 'localizer'\n\nexport const Localizer: React.FC<{\n className?: string\n}> = (props) => {\n const { className } = props\n const { config } = useConfig()\n const { localization } = config\n const searchParams = useSearchParams()\n\n const { i18n } = useTranslation()\n const locale = useLocale()\n\n if (localization) {\n const { locales } = localization\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <Popup\n button={<LocalizerLabel />}\n horizontalAlign=\"right\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n {locales.map((localeOption) => {\n const localeOptionLabel = getTranslation(localeOption.label, i18n)\n\n return (\n <PopupList.Button\n active={locale.code === localeOption.code}\n href={qs.stringify(\n {\n ...parseSearchParams(searchParams),\n locale: localeOption.code,\n },\n { addQueryPrefix: true },\n )}\n key={localeOption.code}\n onClick={close}\n >\n {localeOptionLabel}\n {localeOptionLabel !== localeOption.code && ` (${localeOption.code})`}\n </PopupList.Button>\n )\n })}\n </PopupList.ButtonGroup>\n )}\n showScrollbar\n size=\"large\"\n />\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,SAASC,cAAc,QAAQ;AAC/B,SAASC,eAAe,QAAQ;AAChC,YAAYC,EAAA,MAAQ;AACpB,OAAOC,KAAA,MAAW;AAElB,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,KAAK,EAAEC,SAAS,QAAQ;AACjC,SAASC,cAAc,QAAQ;AAC/B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,SAAA,GAERC,KAAA;EAAA,MAAAC,CAAA,GAAAf,EAAA;EACH;IAAAgB;EAAA,IAAsBF,KAAA;EACtB;IAAAG;EAAA,IAAmBZ,SAAA;EACnB;IAAAa;EAAA,IAAyBD,MAAA;EACzB,MAAAE,YAAA,GAAqBjB,eAAA;EAErB;IAAAkB;EAAA,IAAiBb,cAAA;EACjB,MAAAc,MAAA,GAAef,SAAA;EAAA,IAEXY,YAAA;IACF;MAAAI;IAAA,IAAoBJ,YAAA;IAAA,IAAAK,EAAA;IAAA,IAAAR,CAAA,QAAAC,SAAA;MAGFO,EAAA,IAAAX,SAAA,EAAYI,SAAA,EAAAQ,MAAA,CAAAC,OAAkB;MAAAV,CAAA,MAAAC,SAAA;MAAAD,CAAA,MAAAQ,EAAA;IAAA;MAAAA,EAAA,GAAAR,CAAA;IAAA;IAA9B,MAAAW,EAAA,GAAAH,EAA8B,CAAAI,IAAA,CAAc;IAAA,IAAAC,EAAA;IAAA,IAAAb,CAAA,QAAAK,IAAA,IAAAL,CAAA,QAAAM,MAAA,CAAAQ,IAAA,IAAAd,CAAA,QAAAO,OAAA,IAAAP,CAAA,QAAAI,YAAA,IAAAJ,CAAA,QAAAW,EAAA;MAAA,IAAAI,EAAA;MAAA,IAAAf,CAAA,QAAAK,IAAA,IAAAL,CAAA,QAAAM,MAAA,CAAAQ,IAAA,IAAAd,CAAA,SAAAO,OAAA,IAAAP,CAAA,SAAAI,YAAA;QAIhDW,EAAA,GAAAC,EAAA;UAAC;YAAAC;UAAA,IAAAD,EAAS;UAAA,OAChBE,IAAA,CAAAvB,SAAA,CAAAwB,WAAA;YAAAC,QAAA,EACGb,OAAA,CAAAc,GAAA,CAAAC,YAAA;cACC,MAAAC,iBAAA,GAA0BrC,cAAA,CAAeoC,YAAA,CAAAE,KAAA,EAAoBnB,IAAA;cAAA,OAG3DoB,KAAA,CAAA9B,SAAA,CAAA+B,MAAA;gBAAAC,MAAA,EACUrB,MAAA,CAAAQ,IAAA,KAAgBQ,YAAA,CAAAR,IAAiB;gBAAAc,IAAA,EACnCxC,EAAA,CAAAyC,SAAA;kBAAA,GAECpC,iBAAA,CAAkBW,YAAA,CAAa;kBAAAE,MAAA,EAC1BgB,YAAA,CAAAR;gBAAA;kBAAAgB,cAAA;gBAAA,CAEa;gBAAAC,OAAA,EAGhBd,KAAA;gBAAAG,QAAA,GAERG,iBAAA,EACAA,iBAAA,KAAsBD,YAAA,CAAAR,IAAiB,IAAI,KAAKQ,YAAA,CAAAR,IAAA,GAAoB;cAAA,GAJhEQ,YAAA,CAAAR,IAAiB;YAAA,CAO5B;UAAA,C;;;;;;;;;;MA1BRD,EAAA,GAAAK,IAAA,CAAC;QAAAjB,SAAA,EAAeU,EAA4C;QAAAS,QAAA,EAC1DF,IAAA,CAAAxB,KAAA;UAAAsC,MAAA,EACUd,IAAA,CAAAtB,cAAA,IAAC;UAAAqC,eAAA,EACO;UAAAC,MAAA,EACRnB,E;;gBA0BH;QAAA,C;;;;;;;;;;;WA9BTF,E;;;CAqCN","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","useSearchParams","qs","React","Fragment","useConfig","useLocale","useLocaleLoading","useTranslation","parseSearchParams","Popup","PopupList","LocalizerLabel","baseClass","Localizer","props","$","className","config","localization","searchParams","setLocaleIsLoading","i18n","locale","locales","t0","filter","Boolean","t1","join","t2","code","t3","t4","close","_jsx","ButtonGroup","children","map","localeOption","localeOptionLabel","label","Button","active","disabled","href","stringify","addQueryPrefix","onClick","_jsxs","button","horizontalAlign","render"],"sources":["../../../src/elements/Localizer/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useSearchParams } from 'next/navigation.js'\nimport * as qs from 'qs-esm'\nimport React, { Fragment } from 'react'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale, useLocaleLoading } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { LocalizerLabel } from './LocalizerLabel/index.js'\nimport './index.scss'\n\nconst baseClass = 'localizer'\n\nexport const Localizer: React.FC<{\n className?: string\n}> = (props) => {\n const { className } = props\n const { config } = useConfig()\n const { localization } = config\n const searchParams = useSearchParams()\n const { setLocaleIsLoading } = useLocaleLoading()\n\n const { i18n } = useTranslation()\n const locale = useLocale()\n\n if (localization) {\n const { locales } = localization\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <Popup\n button={<LocalizerLabel />}\n horizontalAlign=\"right\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n {locales.map((localeOption) => {\n const localeOptionLabel = getTranslation(localeOption.label, i18n)\n\n return (\n <PopupList.Button\n active={locale.code === localeOption.code}\n disabled={locale.code === localeOption.code}\n href={qs.stringify(\n {\n ...parseSearchParams(searchParams),\n locale: localeOption.code,\n },\n { addQueryPrefix: true },\n )}\n key={localeOption.code}\n onClick={() => {\n setLocaleIsLoading(true)\n close()\n }}\n >\n {localeOptionLabel !== localeOption.code ? (\n <Fragment>\n {localeOptionLabel}\n &nbsp;\n <span className={`${baseClass}__locale-code`}>\n {`(${localeOption.code})`}\n </span>\n </Fragment>\n ) : (\n <span className={`${baseClass}__locale-code`}>{localeOptionLabel}</span>\n )}\n </PopupList.Button>\n )\n })}\n </PopupList.ButtonGroup>\n )}\n showScrollbar\n size=\"large\"\n />\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
@@ -11,6 +11,7 @@ type MenuButtonProps = {
11
11
  active?: boolean;
12
12
  children: React.ReactNode;
13
13
  className?: string;
14
+ disabled?: boolean;
14
15
  href?: LinkProps['href'];
15
16
  id?: string;
16
17
  onClick?: (e?: React.MouseEvent) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Popup/PopupButtonList/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAG7C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,cAAc,CAAA;AAMrB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,CAAA;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;CACxC,CAUA,CAAA;AAED,KAAK,eAAe,GAAG;IACrB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IACxB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAA;CACzC,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAoD5C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Popup/PopupButtonList/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAG7C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,cAAc,CAAA;AAMrB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,CAAA;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;CACxC,CAUA,CAAA;AAED,KAAK,eAAe,GAAG;IACrB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IACxB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAA;CACzC,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAuD5C,CAAA"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { jsx as _jsx } from "react/jsx-runtime";
4
4
  import LinkImport from 'next/link.js';
5
- import * as React from 'react'; // TODO: abstract this out to support all routers
5
+ import * as React from 'react';
6
6
  import './index.scss';
7
7
  const Link = LinkImport.default || LinkImport;
8
8
  const baseClass = 'popup-button-list';
@@ -23,36 +23,39 @@ export const Button = ({
23
23
  active,
24
24
  children,
25
25
  className,
26
+ disabled,
26
27
  href,
27
28
  onClick
28
29
  }) => {
29
30
  const classes = [`${baseClass}__button`, active && `${baseClass}__button--selected`, className].filter(Boolean).join(' ');
30
- if (href) {
31
- return /*#__PURE__*/_jsx(Link, {
32
- className: classes,
33
- href: href,
34
- id: id,
35
- onClick: e => {
36
- if (onClick) {
37
- onClick(e);
38
- }
39
- },
40
- prefetch: false,
41
- children: children
42
- });
43
- }
44
- if (onClick) {
45
- return /*#__PURE__*/_jsx("button", {
46
- className: classes,
47
- id: id,
48
- onClick: e => {
49
- if (onClick) {
50
- onClick(e);
51
- }
52
- },
53
- type: "button",
54
- children: children
55
- });
31
+ if (!disabled) {
32
+ if (href) {
33
+ return /*#__PURE__*/_jsx(Link, {
34
+ className: classes,
35
+ href: href,
36
+ id: id,
37
+ onClick: e => {
38
+ if (onClick) {
39
+ onClick(e);
40
+ }
41
+ },
42
+ prefetch: false,
43
+ children: children
44
+ });
45
+ }
46
+ if (onClick) {
47
+ return /*#__PURE__*/_jsx("button", {
48
+ className: classes,
49
+ id: id,
50
+ onClick: e => {
51
+ if (onClick) {
52
+ onClick(e);
53
+ }
54
+ },
55
+ type: "button",
56
+ children: children
57
+ });
58
+ }
56
59
  }
57
60
  return /*#__PURE__*/_jsx("div", {
58
61
  className: classes,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["LinkImport","React","Link","default","baseClass","ButtonGroup","buttonSize","children","className","textAlign","classes","filter","Boolean","join","_jsx","Button","id","active","href","onClick","e","prefetch","type"],"sources":["../../../../src/elements/Popup/PopupButtonList/index.tsx"],"sourcesContent":["'use client'\n// TODO: abstract the `next/link` dependency out from this component\nimport type { LinkProps } from 'next/link.js'\n\nimport LinkImport from 'next/link.js'\nimport * as React from 'react' // TODO: abstract this out to support all routers\n\nimport './index.scss'\n\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nconst baseClass = 'popup-button-list'\n\nexport const ButtonGroup: React.FC<{\n buttonSize?: 'default' | 'small'\n children: React.ReactNode\n className?: string\n textAlign?: 'center' | 'left' | 'right'\n}> = ({ buttonSize = 'default', children, className, textAlign = 'left' }) => {\n const classes = [\n baseClass,\n className,\n `${baseClass}__text-align--${textAlign}`,\n `${baseClass}__button-size--${buttonSize}`,\n ]\n .filter(Boolean)\n .join(' ')\n return <div className={classes}>{children}</div>\n}\n\ntype MenuButtonProps = {\n active?: boolean\n children: React.ReactNode\n className?: string\n href?: LinkProps['href']\n id?: string\n onClick?: (e?: React.MouseEvent) => void\n}\n\nexport const Button: React.FC<MenuButtonProps> = ({\n id,\n active,\n children,\n className,\n href,\n onClick,\n}) => {\n const classes = [`${baseClass}__button`, active && `${baseClass}__button--selected`, className]\n .filter(Boolean)\n .join(' ')\n\n if (href) {\n return (\n <Link\n className={classes}\n href={href}\n id={id}\n onClick={(e) => {\n if (onClick) {\n onClick(e)\n }\n }}\n prefetch={false}\n >\n {children}\n </Link>\n )\n }\n\n if (onClick) {\n return (\n <button\n className={classes}\n id={id}\n onClick={(e) => {\n if (onClick) {\n onClick(e)\n }\n }}\n type=\"button\"\n >\n {children}\n </button>\n )\n }\n\n return (\n <div className={classes} id={id}>\n {children}\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAIA,OAAOA,UAAA,MAAgB;AACvB,YAAYC,KAAA,MAAW,QAAO,CAAC;AAE/B,OAAO;AAEP,MAAMC,IAAA,GAAQF,UAAA,CAAWG,OAAO,IAAIH,UAAA;AAEpC,MAAMI,SAAA,GAAY;AAElB,OAAO,MAAMC,WAAA,GAKRA,CAAC;EAAEC,UAAA,GAAa,SAAS;EAAEC,QAAQ;EAAEC,SAAS;EAAEC,SAAA,GAAY;AAAM,CAAE;EACvE,MAAMC,OAAA,GAAU,CACdN,SAAA,EACAI,SAAA,EACA,GAAGJ,SAAA,iBAA0BK,SAAA,EAAW,EACxC,GAAGL,SAAA,kBAA2BE,UAAA,EAAY,CAC3C,CACEK,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;EACR,oBAAOC,IAAA,CAAC;IAAIN,SAAA,EAAWE,OAAA;cAAUH;;AACnC;AAWA,OAAO,MAAMQ,MAAA,GAAoCA,CAAC;EAChDC,EAAE;EACFC,MAAM;EACNV,QAAQ;EACRC,SAAS;EACTU,IAAI;EACJC;AAAO,CACR;EACC,MAAMT,OAAA,GAAU,CAAC,GAAGN,SAAA,UAAmB,EAAEa,MAAA,IAAU,GAAGb,SAAA,oBAA6B,EAAEI,SAAA,CAAU,CAC5FG,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;EAER,IAAIK,IAAA,EAAM;IACR,oBACEJ,IAAA,CAACZ,IAAA;MACCM,SAAA,EAAWE,OAAA;MACXQ,IAAA,EAAMA,IAAA;MACNF,EAAA,EAAIA,EAAA;MACJG,OAAA,EAAUC,CAAA;QACR,IAAID,OAAA,EAAS;UACXA,OAAA,CAAQC,CAAA;QACV;MACF;MACAC,QAAA,EAAU;gBAETd;;EAGP;EAEA,IAAIY,OAAA,EAAS;IACX,oBACEL,IAAA,CAAC;MACCN,SAAA,EAAWE,OAAA;MACXM,EAAA,EAAIA,EAAA;MACJG,OAAA,EAAUC,CAAA;QACR,IAAID,OAAA,EAAS;UACXA,OAAA,CAAQC,CAAA;QACV;MACF;MACAE,IAAA,EAAK;gBAEJf;;EAGP;EAEA,oBACEO,IAAA,CAAC;IAAIN,SAAA,EAAWE,OAAA;IAASM,EAAA,EAAIA,EAAA;cAC1BT;;AAGP","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["LinkImport","React","Link","default","baseClass","ButtonGroup","buttonSize","children","className","textAlign","classes","filter","Boolean","join","_jsx","Button","id","active","disabled","href","onClick","e","prefetch","type"],"sources":["../../../../src/elements/Popup/PopupButtonList/index.tsx"],"sourcesContent":["'use client'\nimport type { LinkProps } from 'next/link.js'\n\nimport LinkImport from 'next/link.js'\nimport * as React from 'react'\n\nimport './index.scss'\n\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nconst baseClass = 'popup-button-list'\n\nexport const ButtonGroup: React.FC<{\n buttonSize?: 'default' | 'small'\n children: React.ReactNode\n className?: string\n textAlign?: 'center' | 'left' | 'right'\n}> = ({ buttonSize = 'default', children, className, textAlign = 'left' }) => {\n const classes = [\n baseClass,\n className,\n `${baseClass}__text-align--${textAlign}`,\n `${baseClass}__button-size--${buttonSize}`,\n ]\n .filter(Boolean)\n .join(' ')\n return <div className={classes}>{children}</div>\n}\n\ntype MenuButtonProps = {\n active?: boolean\n children: React.ReactNode\n className?: string\n disabled?: boolean\n href?: LinkProps['href']\n id?: string\n onClick?: (e?: React.MouseEvent) => void\n}\n\nexport const Button: React.FC<MenuButtonProps> = ({\n id,\n active,\n children,\n className,\n disabled,\n href,\n onClick,\n}) => {\n const classes = [`${baseClass}__button`, active && `${baseClass}__button--selected`, className]\n .filter(Boolean)\n .join(' ')\n\n if (!disabled) {\n if (href) {\n return (\n <Link\n className={classes}\n href={href}\n id={id}\n onClick={(e) => {\n if (onClick) {\n onClick(e)\n }\n }}\n prefetch={false}\n >\n {children}\n </Link>\n )\n }\n\n if (onClick) {\n return (\n <button\n className={classes}\n id={id}\n onClick={(e) => {\n if (onClick) {\n onClick(e)\n }\n }}\n type=\"button\"\n >\n {children}\n </button>\n )\n }\n }\n\n return (\n <div className={classes} id={id}>\n {children}\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAGA,OAAOA,UAAA,MAAgB;AACvB,YAAYC,KAAA,MAAW;AAEvB,OAAO;AAEP,MAAMC,IAAA,GAAQF,UAAA,CAAWG,OAAO,IAAIH,UAAA;AAEpC,MAAMI,SAAA,GAAY;AAElB,OAAO,MAAMC,WAAA,GAKRA,CAAC;EAAEC,UAAA,GAAa,SAAS;EAAEC,QAAQ;EAAEC,SAAS;EAAEC,SAAA,GAAY;AAAM,CAAE;EACvE,MAAMC,OAAA,GAAU,CACdN,SAAA,EACAI,SAAA,EACA,GAAGJ,SAAA,iBAA0BK,SAAA,EAAW,EACxC,GAAGL,SAAA,kBAA2BE,UAAA,EAAY,CAC3C,CACEK,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;EACR,oBAAOC,IAAA,CAAC;IAAIN,SAAA,EAAWE,OAAA;cAAUH;;AACnC;AAYA,OAAO,MAAMQ,MAAA,GAAoCA,CAAC;EAChDC,EAAE;EACFC,MAAM;EACNV,QAAQ;EACRC,SAAS;EACTU,QAAQ;EACRC,IAAI;EACJC;AAAO,CACR;EACC,MAAMV,OAAA,GAAU,CAAC,GAAGN,SAAA,UAAmB,EAAEa,MAAA,IAAU,GAAGb,SAAA,oBAA6B,EAAEI,SAAA,CAAU,CAC5FG,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;EAER,IAAI,CAACK,QAAA,EAAU;IACb,IAAIC,IAAA,EAAM;MACR,oBACEL,IAAA,CAACZ,IAAA;QACCM,SAAA,EAAWE,OAAA;QACXS,IAAA,EAAMA,IAAA;QACNH,EAAA,EAAIA,EAAA;QACJI,OAAA,EAAUC,CAAA;UACR,IAAID,OAAA,EAAS;YACXA,OAAA,CAAQC,CAAA;UACV;QACF;QACAC,QAAA,EAAU;kBAETf;;IAGP;IAEA,IAAIa,OAAA,EAAS;MACX,oBACEN,IAAA,CAAC;QACCN,SAAA,EAAWE,OAAA;QACXM,EAAA,EAAIA,EAAA;QACJI,OAAA,EAAUC,CAAA;UACR,IAAID,OAAA,EAAS;YACXA,OAAA,CAAQC,CAAA;UACV;QACF;QACAE,IAAA,EAAK;kBAEJhB;;IAGP;EACF;EAEA,oBACEO,IAAA,CAAC;IAAIN,SAAA,EAAWE,OAAA;IAASM,EAAA,EAAIA,EAAA;cAC1BT;;AAGP","ignoreList":[]}